Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 24 from a total of 24 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Set_new_Modifier | 9656015 | 2139 days ago | IN | 0 ETH | 0.00102234 | ||||
| Set_new_blocks P... | 9630759 | 2142 days ago | IN | 0 ETH | 0.00022123 | ||||
| Set_new_blocks P... | 9630741 | 2143 days ago | IN | 0 ETH | 0.00022104 | ||||
| Set_new_blocks P... | 9629958 | 2143 days ago | IN | 0 ETH | 0.00016592 | ||||
| Set_new_blocks P... | 9629951 | 2143 days ago | IN | 0 ETH | 0.00022104 | ||||
| Set_new_blocks P... | 9610341 | 2146 days ago | IN | 0 ETH | 0.00022123 | ||||
| Set_new_blocks P... | 9610328 | 2146 days ago | IN | 0 ETH | 0.00022104 | ||||
| Set_new_blocks P... | 9605240 | 2146 days ago | IN | 0 ETH | 0.00022123 | ||||
| Set_new_Modifier | 9605221 | 2146 days ago | IN | 0 ETH | 0.00022104 | ||||
| Set_new_blocks P... | 9605211 | 2146 days ago | IN | 0 ETH | 0.00022123 | ||||
| Set_new_blocks P... | 9605203 | 2146 days ago | IN | 0 ETH | 0.00022123 | ||||
| Set_new_blocks P... | 9571260 | 2152 days ago | IN | 0 ETH | 0.00022123 | ||||
| Set_new_blocks P... | 9571251 | 2152 days ago | IN | 0 ETH | 0.00022123 | ||||
| Set_new_blocks P... | 9571244 | 2152 days ago | IN | 0 ETH | 0.00022123 | ||||
| Set_new_Modifier | 9552756 | 2154 days ago | IN | 0 ETH | 0.00022104 | ||||
| Set_new_blocks P... | 9547020 | 2155 days ago | IN | 0 ETH | 0.00022123 | ||||
| Set_new_blocks P... | 9547013 | 2155 days ago | IN | 0 ETH | 0.00022123 | ||||
| Set_new_Modifier | 9546999 | 2155 days ago | IN | 0 ETH | 0.00022104 | ||||
| Set_new_blocks P... | 9505852 | 2162 days ago | IN | 0 ETH | 0.00022123 | ||||
| Set_new_blocks P... | 9505836 | 2162 days ago | IN | 0 ETH | 0.00022123 | ||||
| Set_new_blocks P... | 9505830 | 2162 days ago | IN | 0 ETH | 0.00022123 | ||||
| Set_new_blocks P... | 9505819 | 2162 days ago | IN | 0 ETH | 0.00022123 | ||||
| Set_new_blocks P... | 9505808 | 2162 days ago | IN | 0 ETH | 0.00024888 | ||||
| Set_new_blocks P... | 9437696 | 2172 days ago | IN | 0 ETH | 0.00013827 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
APRWithPoolOracle
Compiler Version
v0.5.12+commit.7709ece9
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-02-07
*/
pragma solidity ^0.5.0;
pragma experimental ABIEncoderV2;
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function decimals() external view returns (uint8);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
contract Context {
constructor () internal { }
// solhint-disable-previous-line no-empty-blocks
function _msgSender() internal view returns (address payable) {
return msg.sender;
}
function _msgData() internal view returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () internal {
_owner = _msgSender();
emit OwnershipTransferred(address(0), _owner);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(isOwner(), "Ownable: caller is not the owner");
_;
}
function isOwner() public view returns (bool) {
return _msgSender() == _owner;
}
function renounceOwnership() public onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
function divCeil(
uint256 a,
uint256 b
)
internal
pure
returns (uint256)
{
uint256 quotient = div(a, b);
uint256 remainder = a - quotient * b;
if (remainder > 0) {
return quotient + 1;
} else {
return quotient;
}
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
library Decimal {
using SafeMath for uint256;
uint256 constant BASE = 10**18;
function one()
internal
pure
returns (uint256)
{
return BASE;
}
function onePlus(
uint256 d
)
internal
pure
returns (uint256)
{
return d.add(BASE);
}
function mulFloor(
uint256 target,
uint256 d
)
internal
pure
returns (uint256)
{
return target.mul(d) / BASE;
}
function mulCeil(
uint256 target,
uint256 d
)
internal
pure
returns (uint256)
{
return target.mul(d).divCeil(BASE);
}
function divFloor(
uint256 target,
uint256 d
)
internal
pure
returns (uint256)
{
return target.mul(BASE).div(d);
}
function divCeil(
uint256 target,
uint256 d
)
internal
pure
returns (uint256)
{
return target.mul(BASE).divCeil(d);
}
}
library Address {
function isContract(address account) internal view returns (bool) {
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
// solhint-disable-next-line no-inline-assembly
assembly { codehash := extcodehash(account) }
return (codehash != 0x0 && codehash != accountHash);
}
function toPayable(address account) internal pure returns (address payable) {
return address(uint160(account));
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
// solhint-disable-next-line avoid-call-value
(bool success, ) = recipient.call.value(amount)("");
require(success, "Address: unable to send value, recipient may have reverted");
}
}
// Compound
interface Compound {
function interestRateModel() external view returns (address);
function reserveFactorMantissa() external view returns (uint256);
function totalBorrows() external view returns (uint256);
function totalReserves() external view returns (uint256);
function supplyRatePerBlock() external view returns (uint);
function getCash() external view returns (uint256);
}
// Fulcrum
interface Fulcrum {
function supplyInterestRate() external view returns (uint256);
function nextSupplyInterestRate(uint256 supplyAmount) external view returns (uint256);
}
interface DyDx {
struct val {
uint256 value;
}
struct set {
uint128 borrow;
uint128 supply;
}
function getEarningsRate() external view returns (val memory);
function getMarketInterestRate(uint256 marketId) external view returns (val memory);
function getMarketTotalPar(uint256 marketId) external view returns (set memory);
}
interface LendingPoolAddressesProvider {
function getLendingPoolCore() external view returns (address);
}
interface LendingPoolCore {
function getReserveCurrentLiquidityRate(address _reserve)
external
view
returns (
uint256 liquidityRate
);
function getReserveInterestRateStrategyAddress(address _reserve) external view returns (address);
function getReserveTotalBorrows(address _reserve) external view returns (uint256);
function getReserveTotalBorrowsStable(address _reserve) external view returns (uint256);
function getReserveTotalBorrowsVariable(address _reserve) external view returns (uint256);
function getReserveCurrentAverageStableBorrowRate(address _reserve)
external
view
returns (uint256);
function getReserveAvailableLiquidity(address _reserve) external view returns (uint256);
}
interface IReserveInterestRateStrategy {
function getBaseVariableBorrowRate() external view returns (uint256);
function calculateInterestRates(
address _reserve,
uint256 _utilizationRate,
uint256 _totalBorrowsStable,
uint256 _totalBorrowsVariable,
uint256 _averageStableBorrowRate)
external
view
returns (uint256 liquidityRate, uint256 stableBorrowRate, uint256 variableBorrowRate);
}
interface InterestRateModel {
function getSupplyRate(uint cash, uint borrows, uint reserves, uint reserveFactorMantissa) external view returns (uint);
}
contract Structs {
struct Asset {
address lendingPool;
address priceOralce;
address interestModel;
}
}
contract IDDEX is Structs {
function getInterestRates(address token, uint256 extraBorrowAmount)
external
view
returns (uint256 borrowInterestRate, uint256 supplyInterestRate);
function getIndex(address token)
external
view
returns (uint256 supplyIndex, uint256 borrowIndex);
function getTotalSupply(address asset)
external
view
returns (uint256 amount);
function getTotalBorrow(address asset)
external
view
returns (uint256 amount);
function getAsset(address token)
external
view returns (Asset memory asset);
}
interface IDDEXModel {
function polynomialInterestModel(uint256 borrowRatio) external view returns (uint256);
}
interface ILendF {
function getSupplyBalance(address account, address token)
external
view
returns (uint256);
function supplyBalances(address account, address token)
external
view
returns (uint256 principal, uint256 interestIndex);
function supply(address asset, uint256 amount) external;
function withdraw(address asset, uint256 amount) external;
function markets(address asset) external view returns (
bool isSupported,
uint256 blockNumber,
address interestRateModel,
uint256 totalSupply,
uint256 supplyRateMantissa,
uint256 supplyIndex,
uint256 totalBorrows,
uint256 borrowRateMantissa,
uint256 borrowIndex
);
}
interface ICurveFi {
function get_virtual_price() external view returns (uint256);
}
interface ILendFModel {
function getSupplyRate(address asset, uint cash, uint borrows) external view returns (uint, uint);
}
contract APRWithPoolOracle is Ownable, Structs {
using SafeMath for uint256;
using Address for address;
uint256 DECIMAL = 10 ** 18;
address public DYDX;
address public AAVE;
address public DDEX;
address public LENDF;
address public CURVEFI;
uint256 public liquidationRatio;
uint256 public dydxModifier;
uint256 public blocksPerYear;
constructor() public {
DYDX = address(0x1E0447b19BB6EcFdAe1e4AE1694b0C3659614e4e);
AAVE = address(0x24a42fD28C976A61Df5D00D0599C34c4f90748c8);
DDEX = address(0x241e82C79452F51fbfc89Fac6d912e021dB1a3B7);
LENDF = address(0x0eEe3E3828A45f7601D5F54bF49bB01d1A9dF5ea);
CURVEFI = address(0x2e60CF74d81ac34eB21eEff58Db4D385920ef419);
liquidationRatio = 50000000000000000;
dydxModifier = 20;
// 3153600 seconds div 13 second blocks
blocksPerYear = 242584;
}
function set_new_AAVE(address _new_AAVE) public onlyOwner {
AAVE = _new_AAVE;
}
function set_new_CURVEFI(address _new_CURVEFI) public onlyOwner {
CURVEFI = _new_CURVEFI;
}
function set_new_DDEX(address _new_DDEX) public onlyOwner {
DDEX = _new_DDEX;
}
function set_new_DYDX(address _new_DYDX) public onlyOwner {
DYDX = _new_DYDX;
}
function set_new_LENDF(address _new_LENDF) public onlyOwner {
LENDF = _new_LENDF;
}
function set_new_Ratio(uint256 _new_Ratio) public onlyOwner {
liquidationRatio = _new_Ratio;
}
function set_new_Modifier(uint256 _new_Modifier) public onlyOwner {
dydxModifier = _new_Modifier;
}
function set_new_blocksPerYear(uint256 _new_blocksPerYear) public onlyOwner {
blocksPerYear = _new_blocksPerYear;
}
function getLENDFAPR(address token) public view returns (uint256) {
(,,,,uint256 supplyRateMantissa,,,,) = ILendF(LENDF).markets(token);
return supplyRateMantissa.mul(blocksPerYear);
}
function getLENDFAPRAdjusted(address token, uint256 supply) public view returns (uint256) {
if (token == address(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE)) {
return 0;
}
uint256 totalCash = IERC20(token).balanceOf(LENDF).add(supply);
(,, address interestRateModel,,,, uint256 totalBorrows,,) = ILendF(LENDF).markets(token);
if (interestRateModel == address(0)) {
return 0;
}
(, uint256 supplyRateMantissa) = ILendFModel(interestRateModel).getSupplyRate(token, totalCash, totalBorrows);
return supplyRateMantissa.mul(blocksPerYear);
}
function getDDEXAPR(address token) public view returns (uint256) {
if (token == address(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE)) {
token = address(0x000000000000000000000000000000000000000E);
}
(uint256 supplyIndex,) = IDDEX(DDEX).getIndex(token);
if (supplyIndex == 0) {
return 0;
}
(,uint256 supplyRate) = IDDEX(DDEX).getInterestRates(token, 0);
return supplyRate;
}
function getDDEXAPRAdjusted(address token, uint256 _supply) public view returns (uint256) {
if (token == address(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE)) {
token = address(0x000000000000000000000000000000000000000E);
}
(uint256 supplyIndex,) = IDDEX(DDEX).getIndex(token);
if (supplyIndex == 0) {
return 0;
}
uint256 supply = IDDEX(DDEX).getTotalSupply(token).add(_supply);
uint256 borrow = IDDEX(DDEX).getTotalBorrow(token);
uint256 borrowRatio = borrow.mul(Decimal.one()).div(supply);
address interestRateModel = IDDEX(DDEX).getAsset(token).interestModel;
uint256 borrowRate = IDDEXModel(interestRateModel).polynomialInterestModel(borrowRatio);
uint256 borrowInterest = Decimal.mulCeil(borrow, borrowRate);
uint256 supplyInterest = Decimal.mulFloor(borrowInterest, Decimal.one().sub(liquidationRatio));
return Decimal.divFloor(supplyInterest, supply);
}
function getCompoundAPR(address token) public view returns (uint256) {
return Compound(token).supplyRatePerBlock().mul(blocksPerYear);
}
function getCompoundAPRAdjusted(address token, uint256 _supply) public view returns (uint256) {
Compound c = Compound(token);
address model = Compound(token).interestRateModel();
if (model == address(0)) {
return c.supplyRatePerBlock().mul(blocksPerYear);
}
InterestRateModel i = InterestRateModel(model);
uint256 cashPrior = c.getCash().add(_supply);
return i.getSupplyRate(cashPrior, c.totalBorrows(), c.totalReserves().add(_supply), c.reserveFactorMantissa()).mul(blocksPerYear);
}
function getFulcrumAPR(address token) public view returns(uint256) {
return Fulcrum(token).supplyInterestRate().div(100);
}
function getFulcrumAPRAdjusted(address token, uint256 _supply) public view returns(uint256) {
return Fulcrum(token).nextSupplyInterestRate(_supply).div(100);
}
function getDyDxAPR(uint256 marketId) public view returns(uint256) {
uint256 rate = DyDx(DYDX).getMarketInterestRate(marketId).value;
uint256 aprBorrow = rate * 31622400;
uint256 borrow = DyDx(DYDX).getMarketTotalPar(marketId).borrow;
uint256 supply = DyDx(DYDX).getMarketTotalPar(marketId).supply;
uint256 usage = (borrow * DECIMAL) / supply;
uint256 apr = (((aprBorrow * usage) / DECIMAL) * DyDx(DYDX).getEarningsRate().value) / DECIMAL;
return apr;
}
function getCurveAPR(address curve) public view returns (uint256) {
uint256 blocks = block.number.sub(9325883);
uint256 price = ICurveFi(curve).get_virtual_price().sub(1e18);
return price.mul(blocksPerYear).div(blocks);
}
function getDyDxAPRAdjusted(uint256 marketId, uint256 _supply) public view returns(uint256) {
uint256 rate = DyDx(DYDX).getMarketInterestRate(marketId).value;
// Arbitrary value to offset calculations
_supply = _supply.mul(dydxModifier);
uint256 aprBorrow = rate * 31622400;
uint256 borrow = DyDx(DYDX).getMarketTotalPar(marketId).borrow;
uint256 supply = DyDx(DYDX).getMarketTotalPar(marketId).supply;
supply = supply.add(_supply);
uint256 usage = (borrow * DECIMAL) / supply;
uint256 apr = (((aprBorrow * usage) / DECIMAL) * DyDx(DYDX).getEarningsRate().value) / DECIMAL;
return apr;
}
function getAaveCore() public view returns (address) {
return address(LendingPoolAddressesProvider(AAVE).getLendingPoolCore());
}
function getAaveAPR(address token) public view returns (uint256) {
LendingPoolCore core = LendingPoolCore(LendingPoolAddressesProvider(AAVE).getLendingPoolCore());
return core.getReserveCurrentLiquidityRate(token).div(1e9);
}
function getAaveAPRAdjusted(address token, uint256 _supply) public view returns (uint256) {
LendingPoolCore core = LendingPoolCore(LendingPoolAddressesProvider(AAVE).getLendingPoolCore());
IReserveInterestRateStrategy apr = IReserveInterestRateStrategy(core.getReserveInterestRateStrategyAddress(token));
(uint256 newLiquidityRate,,) = apr.calculateInterestRates(
token,
core.getReserveAvailableLiquidity(token).add(_supply),
core.getReserveTotalBorrowsStable(token),
core.getReserveTotalBorrowsVariable(token),
core.getReserveCurrentAverageStableBorrowRate(token)
);
return newLiquidityRate.div(1e9);
}
// incase of half-way error
function inCaseTokenGetsStuck(IERC20 _TokenAddress) onlyOwner public {
uint qty = _TokenAddress.balanceOf(address(this));
_TokenAddress.transfer(msg.sender, qty);
}
// incase of half-way error
function inCaseETHGetsStuck() onlyOwner public{
(bool result, ) = msg.sender.call.value(address(this).balance)("");
require(result, "transfer of ETH failed");
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"constant":true,"inputs":[],"name":"AAVE","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CURVEFI","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DDEX","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DYDX","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LENDF","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"blocksPerYear","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dydxModifier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getAaveAPR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"_supply","type":"uint256"}],"name":"getAaveAPRAdjusted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAaveCore","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getCompoundAPR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"_supply","type":"uint256"}],"name":"getCompoundAPRAdjusted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"curve","type":"address"}],"name":"getCurveAPR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getDDEXAPR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"_supply","type":"uint256"}],"name":"getDDEXAPRAdjusted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getDyDxAPR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"_supply","type":"uint256"}],"name":"getDyDxAPRAdjusted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getFulcrumAPR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"_supply","type":"uint256"}],"name":"getFulcrumAPRAdjusted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getLENDFAPR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"supply","type":"uint256"}],"name":"getLENDFAPRAdjusted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"inCaseETHGetsStuck","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_TokenAddress","type":"address"}],"name":"inCaseTokenGetsStuck","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidationRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_new_AAVE","type":"address"}],"name":"set_new_AAVE","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_new_CURVEFI","type":"address"}],"name":"set_new_CURVEFI","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_new_DDEX","type":"address"}],"name":"set_new_DDEX","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_new_DYDX","type":"address"}],"name":"set_new_DYDX","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_new_LENDF","type":"address"}],"name":"set_new_LENDF","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_new_Modifier","type":"uint256"}],"name":"set_new_Modifier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_new_Ratio","type":"uint256"}],"name":"set_new_Ratio","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_new_blocksPerYear","type":"uint256"}],"name":"set_new_blocksPerYear","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6080604052670de0b6b3a76400006001553480156200001d57600080fd5b506200002e620002b860201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3731e0447b19bb6ecfdae1e4ae1694b0c3659614e4e600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507324a42fd28c976a61df5d00d0599c34c4f90748c8600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073241e82c79452f51fbfc89fac6d912e021db1a3b7600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730eee3e3828a45f7601d5f54bf49bb01d1a9df5ea600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732e60cf74d81ac34eb21eeff58db4d385920ef419600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555066b1a2bc2ec5000060078190555060146008819055506203b398600981905550620002c0565b600033905090565b613c5980620002d06000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c80638f32d59b11610125578063c043fca2116100ad578063f60a15ed1161007c578063f60a15ed14610663578063f78c98c21461066d578063f82ce27d14610689578063fb73c832146106a7578063fcc01c7b146106d75761021c565b8063c043fca2146105dd578063d9dc7399146105fb578063ddf1084214610617578063f2fde38b146106475761021c565b80639f71b462116100f45780639f71b46214610539578063a385fb9614610557578063ae600c4514610575578063baad1ad114610591578063bdaaff95146105c15761021c565b80638f32d59b146104af57806390ece0de146104cd57806393195e72146104eb578063989eaa9c146105095761021c565b80634f5dd969116101a8578063768528931161017757806376852893146103f9578063812adb061461041557806381d24d8d1461043157806383deca3d146104615780638da5cb5b146104915761021c565b80634f5dd969146103715780636d5ccd18146103a1578063715018a6146103bf57806373824dae146103c95761021c565b80632c7a5ae4116101ef5780632c7a5ae4146102bb5780632e8d6e18146102d757806344e258b4146102f357806348ccda3c146103235780634eff75d8146103415761021c565b80630e775fd5146102215780631775765f14610251578063192a98611461026f5780632a71abe31461029f575b600080fd5b61023b600480360361023691908101906132f2565b610707565b60405161024891906139ed565b60405180910390f35b6102596109c9565b60405161026691906139ed565b60405180910390f35b610289600480360361028491908101906132a0565b6109cf565b60405161029691906139ed565b60405180910390f35b6102b960048036036102b491908101906134c1565b610b1b565b005b6102d560048036036102d091908101906132a0565b610b6c565b005b6102f160048036036102ec919081019061341d565b610bf7565b005b61030d600480360361030891908101906132a0565b610d5d565b60405161031a91906139ed565b60405180910390f35b61032b610df8565b6040516103389190613819565b60405180910390f35b61035b600480360361035691908101906132f2565b610e1e565b60405161036891906139ed565b60405180910390f35b61038b600480360361038691908101906132a0565b610ec4565b60405161039891906139ed565b60405180910390f35b6103a9610f9a565b6040516103b69190613819565b60405180910390f35b6103c7610fc0565b005b6103e360048036036103de91908101906132f2565b6110c6565b6040516103f091906139ed565b60405180910390f35b610413600480360361040e91908101906132a0565b611509565b005b61042f600480360361042a91908101906132a0565b611594565b005b61044b600480360361044691908101906134c1565b61161f565b60405161045891906139ed565b60405180910390f35b61047b600480360361047691908101906132a0565b611948565b60405161048891906139ed565b60405180910390f35b6104996119e2565b6040516104a69190613819565b60405180910390f35b6104b7611a0b565b6040516104c49190613910565b60405180910390f35b6104d5611a69565b6040516104e29190613819565b60405180910390f35b6104f3611a8f565b6040516105009190613819565b60405180910390f35b610523600480360361051e91908101906132f2565b611ab5565b60405161053091906139ed565b60405180910390f35b610541611ed2565b60405161054e91906139ed565b60405180910390f35b61055f611ed8565b60405161056c91906139ed565b60405180910390f35b61058f600480360361058a91908101906132a0565b611ede565b005b6105ab60048036036105a691908101906132a0565b611f69565b6040516105b891906139ed565b60405180910390f35b6105db60048036036105d691908101906132a0565b612050565b005b6105e56120db565b6040516105f29190613819565b60405180910390f35b610615600480360361061091908101906134c1565b612101565b005b610631600480360361062c91908101906132a0565b612152565b60405161063e91906139ed565b60405180910390f35b610661600480360361065c91908101906132a0565b612320565b005b61066b612373565b005b610687600480360361068291908101906134c1565b612480565b005b6106916124d1565b60405161069e9190613819565b60405180910390f35b6106c160048036036106bc91908101906132f2565b612578565b6040516106ce91906139ed565b60405180910390f35b6106f160048036036106ec9190810190613513565b6129a2565b6040516106fe91906139ed565b60405180910390f35b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561075a57600090506109c3565b6000610819838573ffffffffffffffffffffffffffffffffffffffff166370a08231600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016107bb9190613819565b60206040518083038186803b1580156107d357600080fd5b505afa1580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061080b91908101906134ea565b612cf890919063ffffffff16565b9050600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638e8f294b876040518263ffffffff1660e01b81526004016108799190613819565b6101206040518083038186803b15801561089257600080fd5b505afa1580156108a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108ca9190810190613357565b5050965050505093505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561091657600093505050506109c3565b60008273ffffffffffffffffffffffffffffffffffffffff1663517cf73e8886856040518463ffffffff1660e01b815260040161095593929190613886565b604080518083038186803b15801561096c57600080fd5b505afa158015610980573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109a4919081019061354f565b9150506109bc60095482612d4d90919063ffffffff16565b9450505050505b92915050565b60075481565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ed6ff7606040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3a57600080fd5b505afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a7291908101906132c9565b9050610b13633b9aca008273ffffffffffffffffffffffffffffffffffffffff1663c540148e866040518263ffffffff1660e01b8152600401610ab59190613819565b60206040518083038186803b158015610acd57600080fd5b505afa158015610ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b0591908101906134ea565b612dbd90919063ffffffff16565b915050919050565b610b23611a0b565b610b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b59906139cd565b60405180910390fd5b8060078190555050565b610b74611a0b565b610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa906139cd565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610bff611a0b565b610c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c35906139cd565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c799190613819565b60206040518083038186803b158015610c9157600080fd5b505afa158015610ca5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cc991908101906134ea565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610d06929190613834565b602060405180830381600087803b158015610d2057600080fd5b505af1158015610d34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d58919081019061332e565b505050565b6000610df16009548373ffffffffffffffffffffffffffffffffffffffff1663ae9d70b06040518163ffffffff1660e01b815260040160206040518083038186803b158015610dab57600080fd5b505afa158015610dbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610de391908101906134ea565b612d4d90919063ffffffff16565b9050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ebc60648473ffffffffffffffffffffffffffffffffffffffff1663d65a5021856040518263ffffffff1660e01b8152600401610e5e91906139ed565b60206040518083038186803b158015610e7657600080fd5b505afa158015610e8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610eae91908101906134ea565b612dbd90919063ffffffff16565b905092915050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638e8f294b846040518263ffffffff1660e01b8152600401610f229190613819565b6101206040518083038186803b158015610f3b57600080fd5b505afa158015610f4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f739190810190613357565b50505050945050505050610f9260095482612d4d90919063ffffffff16565b915050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fc8611a0b565b611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe906139cd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561111557600e92505b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b31610db856040518263ffffffff1660e01b81526004016111729190613819565b604080518083038186803b15801561118957600080fd5b505afa15801561119d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111c1919081019061354f565b50905060008114156111d7576000915050611503565b600061129684600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166368da10ae886040518263ffffffff1660e01b81526004016112389190613819565b60206040518083038186803b15801561125057600080fd5b505afa158015611264573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061128891908101906134ea565b612cf890919063ffffffff16565b90506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638538d14e876040518263ffffffff1660e01b81526004016112f59190613819565b60206040518083038186803b15801561130d57600080fd5b505afa158015611321573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061134591908101906134ea565b9050600061137583611367611358612e07565b85612d4d90919063ffffffff16565b612dbd90919063ffffffff16565b90506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166330b8b2c6896040518263ffffffff1660e01b81526004016113d49190613819565b60606040518083038186803b1580156113ec57600080fd5b505afa158015611400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114249190810190613446565b60400151905060008173ffffffffffffffffffffffffffffffffffffffff166369e8a15f846040518263ffffffff1660e01b815260040161146591906139ed565b60206040518083038186803b15801561147d57600080fd5b505afa158015611491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114b591908101906134ea565b905060006114c38583612e17565b905060006114ec826114e76007546114d9612e07565b612e4e90919063ffffffff16565b612e98565b90506114f88188612ec6565b985050505050505050505b92915050565b611511611a0b565b611550576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611547906139cd565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61159c611a0b565b6115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d2906139cd565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fd47eda6846040518263ffffffff1660e01b815260040161167d91906139ed565b60206040518083038186803b15801561169557600080fd5b505afa1580156116a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116cd9190810190613498565b60000151905060006301e28500820290506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb04a34c866040518263ffffffff1660e01b815260040161173b91906139ed565b604080518083038186803b15801561175257600080fd5b505afa158015611766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061178a919081019061346f565b600001516fffffffffffffffffffffffffffffffff1690506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb04a34c876040518263ffffffff1660e01b81526004016117ff91906139ed565b604080518083038186803b15801561181657600080fd5b505afa15801561182a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061184e919081019061346f565b602001516fffffffffffffffffffffffffffffffff16905060008160015484028161187557fe5b0490506000600154600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e55202286040518163ffffffff1660e01b815260040160206040518083038186803b1580156118e557600080fd5b505afa1580156118f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061191d9190810190613498565b600001516001548488028161192e57fe5b04028161193757fe5b049050809650505050505050919050565b60006119db60648373ffffffffffffffffffffffffffffffffffffffff166309ec6b6b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561199557600080fd5b505afa1580156119a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119cd91908101906134ea565b612dbd90919063ffffffff16565b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a4d612efd565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ed6ff7606040518163ffffffff1660e01b815260040160206040518083038186803b158015611b2057600080fd5b505afa158015611b34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b5891908101906132c9565b905060008173ffffffffffffffffffffffffffffffffffffffff16636ae14416866040518263ffffffff1660e01b8152600401611b959190613819565b60206040518083038186803b158015611bad57600080fd5b505afa158015611bc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611be591908101906132c9565b905060008173ffffffffffffffffffffffffffffffffffffffff166357e37af087611ca1888773ffffffffffffffffffffffffffffffffffffffff1663e24030198c6040518263ffffffff1660e01b8152600401611c439190613819565b60206040518083038186803b158015611c5b57600080fd5b505afa158015611c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c9391908101906134ea565b612cf890919063ffffffff16565b8673ffffffffffffffffffffffffffffffffffffffff16637f90fec58b6040518263ffffffff1660e01b8152600401611cda9190613819565b60206040518083038186803b158015611cf257600080fd5b505afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d2a91908101906134ea565b8773ffffffffffffffffffffffffffffffffffffffff166398bd47378c6040518263ffffffff1660e01b8152600401611d639190613819565b60206040518083038186803b158015611d7b57600080fd5b505afa158015611d8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611db391908101906134ea565b8873ffffffffffffffffffffffffffffffffffffffff166346bc0f288d6040518263ffffffff1660e01b8152600401611dec9190613819565b60206040518083038186803b158015611e0457600080fd5b505afa158015611e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e3c91908101906134ea565b6040518663ffffffff1660e01b8152600401611e5c9594939291906138bd565b60606040518083038186803b158015611e7457600080fd5b505afa158015611e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611eac919081019061358b565b50509050611ec7633b9aca0082612dbd90919063ffffffff16565b935050505092915050565b60085481565b60095481565b611ee6611a0b565b611f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1c906139cd565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080611f82628e4d3b43612e4e90919063ffffffff16565b9050600061201e670de0b6b3a76400008573ffffffffffffffffffffffffffffffffffffffff1663bb7b8b806040518163ffffffff1660e01b815260040160206040518083038186803b158015611fd857600080fd5b505afa158015611fec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061201091908101906134ea565b612e4e90919063ffffffff16565b90506120478261203960095484612d4d90919063ffffffff16565b612dbd90919063ffffffff16565b92505050919050565b612058611a0b565b612097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208e906139cd565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612109611a0b565b612148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213f906139cd565b60405180910390fd5b8060088190555050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121a157600e91505b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b31610db846040518263ffffffff1660e01b81526004016121fe9190613819565b604080518083038186803b15801561221557600080fd5b505afa158015612229573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061224d919081019061354f565b509050600081141561226357600091505061231b565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166343239e9b8560006040518363ffffffff1660e01b81526004016122c392919061385d565b604080518083038186803b1580156122da57600080fd5b505afa1580156122ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612312919081019061354f565b91505080925050505b919050565b612328611a0b565b612367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235e906139cd565b60405180910390fd5b61237081612f05565b50565b61237b611a0b565b6123ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b1906139cd565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16316040516123f790613804565b60006040518083038185875af1925050503d8060008114612434576040519150601f19603f3d011682016040523d82523d6000602084013e612439565b606091505b505090508061247d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124749061398d565b60405180910390fd5b50565b612488611a0b565b6124c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124be906139cd565b60405180910390fd5b8060098190555050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ed6ff7606040518163ffffffff1660e01b815260040160206040518083038186803b15801561253b57600080fd5b505afa15801561254f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061257391908101906132c9565b905090565b60008083905060008473ffffffffffffffffffffffffffffffffffffffff1663f3fdb15a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156125c657600080fd5b505afa1580156125da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506125fe91908101906132c9565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156126d0576126c76009548373ffffffffffffffffffffffffffffffffffffffff1663ae9d70b06040518163ffffffff1660e01b815260040160206040518083038186803b15801561268157600080fd5b505afa158015612695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506126b991908101906134ea565b612d4d90919063ffffffff16565b9250505061299c565b60008190506000612767868573ffffffffffffffffffffffffffffffffffffffff16633b1d21a26040518163ffffffff1660e01b815260040160206040518083038186803b15801561272157600080fd5b505afa158015612735573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061275991908101906134ea565b612cf890919063ffffffff16565b90506129956009548373ffffffffffffffffffffffffffffffffffffffff1663b8168816848873ffffffffffffffffffffffffffffffffffffffff166347bd37186040518163ffffffff1660e01b815260040160206040518083038186803b1580156127d257600080fd5b505afa1580156127e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061280a91908101906134ea565b61289a8c8b73ffffffffffffffffffffffffffffffffffffffff16638f840ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561285457600080fd5b505afa158015612868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061288c91908101906134ea565b612cf890919063ffffffff16565b8a73ffffffffffffffffffffffffffffffffffffffff1663173b99046040518163ffffffff1660e01b815260040160206040518083038186803b1580156128e057600080fd5b505afa1580156128f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061291891908101906134ea565b6040518563ffffffff1660e01b81526004016129379493929190613a08565b60206040518083038186803b15801561294f57600080fd5b505afa158015612963573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061298791908101906134ea565b612d4d90919063ffffffff16565b9450505050505b92915050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fd47eda6856040518263ffffffff1660e01b8152600401612a0091906139ed565b60206040518083038186803b158015612a1857600080fd5b505afa158015612a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a509190810190613498565b600001519050612a6b60085484612d4d90919063ffffffff16565b925060006301e28500820290506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb04a34c876040518263ffffffff1660e01b8152600401612ad591906139ed565b604080518083038186803b158015612aec57600080fd5b505afa158015612b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612b24919081019061346f565b600001516fffffffffffffffffffffffffffffffff1690506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb04a34c886040518263ffffffff1660e01b8152600401612b9991906139ed565b604080518083038186803b158015612bb057600080fd5b505afa158015612bc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612be8919081019061346f565b602001516fffffffffffffffffffffffffffffffff169050612c138682612cf890919063ffffffff16565b9050600081600154840281612c2457fe5b0490506000600154600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e55202286040518163ffffffff1660e01b815260040160206040518083038186803b158015612c9457600080fd5b505afa158015612ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612ccc9190810190613498565b6000015160015484880281612cdd57fe5b040281612ce657fe5b04905080965050505050505092915050565b600080828401905083811015612d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3a9061396d565b60405180910390fd5b8091505092915050565b600080831415612d605760009050612db7565b6000828402905082848281612d7157fe5b0414612db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da9906139ad565b60405180910390fd5b809150505b92915050565b6000612dff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613033565b905092915050565b6000670de0b6b3a7640000905090565b6000612e46670de0b6b3a7640000612e388486612d4d90919063ffffffff16565b61309490919063ffffffff16565b905092915050565b6000612e9083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130ce565b905092915050565b6000670de0b6b3a7640000612eb68385612d4d90919063ffffffff16565b81612ebd57fe5b04905092915050565b6000612ef582612ee7670de0b6b3a764000086612d4d90919063ffffffff16565b612dbd90919063ffffffff16565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6c9061394d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808311829061307a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613071919061392b565b60405180910390fd5b50600083858161308657fe5b049050809150509392505050565b6000806130a18484612dbd565b905060008382028503905060008111156130c25760018201925050506130c8565b81925050505b92915050565b6000838311158290613116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161310d919061392b565b60405180910390fd5b5060008385039050809150509392505050565b60008135905061313881613ba3565b92915050565b60008151905061314d81613ba3565b92915050565b60008151905061316281613bba565b92915050565b60008135905061317781613bd1565b92915050565b60006060828403121561318f57600080fd5b6131996060613a4d565b905060006131a98482850161313e565b60008301525060206131bd8482850161313e565b60208301525060406131d18482850161313e565b60408301525092915050565b6000604082840312156131ef57600080fd5b6131f96040613a4d565b9050600061320984828501613261565b600083015250602061321d84828501613261565b60208301525092915050565b60006020828403121561323b57600080fd5b6132456020613a4d565b905060006132558482850161328b565b60008301525092915050565b60008151905061327081613be8565b92915050565b60008135905061328581613bff565b92915050565b60008151905061329a81613bff565b92915050565b6000602082840312156132b257600080fd5b60006132c084828501613129565b91505092915050565b6000602082840312156132db57600080fd5b60006132e98482850161313e565b91505092915050565b6000806040838503121561330557600080fd5b600061331385828601613129565b925050602061332485828601613276565b9150509250929050565b60006020828403121561334057600080fd5b600061334e84828501613153565b91505092915050565b60008060008060008060008060006101208a8c03121561337657600080fd5b60006133848c828d01613153565b99505060206133958c828d0161328b565b98505060406133a68c828d0161313e565b97505060606133b78c828d0161328b565b96505060806133c88c828d0161328b565b95505060a06133d98c828d0161328b565b94505060c06133ea8c828d0161328b565b93505060e06133fb8c828d0161328b565b92505061010061340d8c828d0161328b565b9150509295985092959850929598565b60006020828403121561342f57600080fd5b600061343d84828501613168565b91505092915050565b60006060828403121561345857600080fd5b60006134668482850161317d565b91505092915050565b60006040828403121561348157600080fd5b600061348f848285016131dd565b91505092915050565b6000602082840312156134aa57600080fd5b60006134b884828501613229565b91505092915050565b6000602082840312156134d357600080fd5b60006134e184828501613276565b91505092915050565b6000602082840312156134fc57600080fd5b600061350a8482850161328b565b91505092915050565b6000806040838503121561352657600080fd5b600061353485828601613276565b925050602061354585828601613276565b9150509250929050565b6000806040838503121561356257600080fd5b60006135708582860161328b565b92505060206135818582860161328b565b9150509250929050565b6000806000606084860312156135a057600080fd5b60006135ae8682870161328b565b93505060206135bf8682870161328b565b92505060406135d08682870161328b565b9150509250925092565b6135e381613b17565b82525050565b6135f281613aa1565b82525050565b61360181613ab3565b82525050565b61361081613b29565b82525050565b600061362182613a7a565b61362b8185613a90565b935061363b818560208601613b5f565b61364481613b92565b840191505092915050565b600061365c602683613a90565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006136c2601b83613a90565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000613702601683613a90565b91507f7472616e73666572206f6620455448206661696c6564000000000000000000006000830152602082019050919050565b6000613742602183613a90565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137a8602083613a90565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006137e8600083613a85565b9150600082019050919050565b6137fe81613b0d565b82525050565b600061380f826137db565b9150819050919050565b600060208201905061382e60008301846135e9565b92915050565b600060408201905061384960008301856135da565b61385660208301846137f5565b9392505050565b600060408201905061387260008301856135e9565b61387f6020830184613607565b9392505050565b600060608201905061389b60008301866135e9565b6138a860208301856137f5565b6138b560408301846137f5565b949350505050565b600060a0820190506138d260008301886135e9565b6138df60208301876137f5565b6138ec60408301866137f5565b6138f960608301856137f5565b61390660808301846137f5565b9695505050505050565b600060208201905061392560008301846135f8565b92915050565b600060208201905081810360008301526139458184613616565b905092915050565b600060208201905081810360008301526139668161364f565b9050919050565b60006020820190508181036000830152613986816136b5565b9050919050565b600060208201905081810360008301526139a6816136f5565b9050919050565b600060208201905081810360008301526139c681613735565b9050919050565b600060208201905081810360008301526139e68161379b565b9050919050565b6000602082019050613a0260008301846137f5565b92915050565b6000608082019050613a1d60008301876137f5565b613a2a60208301866137f5565b613a3760408301856137f5565b613a4460608301846137f5565b95945050505050565b6000604051905081810181811067ffffffffffffffff82111715613a7057600080fd5b8060405250919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000613aac82613aed565b9050919050565b60008115159050919050565b6000613aca82613aa1565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613b2282613b3b565b9050919050565b6000613b3482613b0d565b9050919050565b6000613b4682613b4d565b9050919050565b6000613b5882613aed565b9050919050565b60005b83811015613b7d578082015181840152602081019050613b62565b83811115613b8c576000848401525b50505050565b6000601f19601f8301169050919050565b613bac81613aa1565b8114613bb757600080fd5b50565b613bc381613ab3565b8114613bce57600080fd5b50565b613bda81613abf565b8114613be557600080fd5b50565b613bf181613ad1565b8114613bfc57600080fd5b50565b613c0881613b0d565b8114613c1357600080fd5b5056fea365627a7a7231582022e4198461842e1c0c2e8661c40a20c508c4f1bff183fb162998b499424116c86c6578706572696d656e74616cf564736f6c634300050c0040
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061021c5760003560e01c80638f32d59b11610125578063c043fca2116100ad578063f60a15ed1161007c578063f60a15ed14610663578063f78c98c21461066d578063f82ce27d14610689578063fb73c832146106a7578063fcc01c7b146106d75761021c565b8063c043fca2146105dd578063d9dc7399146105fb578063ddf1084214610617578063f2fde38b146106475761021c565b80639f71b462116100f45780639f71b46214610539578063a385fb9614610557578063ae600c4514610575578063baad1ad114610591578063bdaaff95146105c15761021c565b80638f32d59b146104af57806390ece0de146104cd57806393195e72146104eb578063989eaa9c146105095761021c565b80634f5dd969116101a8578063768528931161017757806376852893146103f9578063812adb061461041557806381d24d8d1461043157806383deca3d146104615780638da5cb5b146104915761021c565b80634f5dd969146103715780636d5ccd18146103a1578063715018a6146103bf57806373824dae146103c95761021c565b80632c7a5ae4116101ef5780632c7a5ae4146102bb5780632e8d6e18146102d757806344e258b4146102f357806348ccda3c146103235780634eff75d8146103415761021c565b80630e775fd5146102215780631775765f14610251578063192a98611461026f5780632a71abe31461029f575b600080fd5b61023b600480360361023691908101906132f2565b610707565b60405161024891906139ed565b60405180910390f35b6102596109c9565b60405161026691906139ed565b60405180910390f35b610289600480360361028491908101906132a0565b6109cf565b60405161029691906139ed565b60405180910390f35b6102b960048036036102b491908101906134c1565b610b1b565b005b6102d560048036036102d091908101906132a0565b610b6c565b005b6102f160048036036102ec919081019061341d565b610bf7565b005b61030d600480360361030891908101906132a0565b610d5d565b60405161031a91906139ed565b60405180910390f35b61032b610df8565b6040516103389190613819565b60405180910390f35b61035b600480360361035691908101906132f2565b610e1e565b60405161036891906139ed565b60405180910390f35b61038b600480360361038691908101906132a0565b610ec4565b60405161039891906139ed565b60405180910390f35b6103a9610f9a565b6040516103b69190613819565b60405180910390f35b6103c7610fc0565b005b6103e360048036036103de91908101906132f2565b6110c6565b6040516103f091906139ed565b60405180910390f35b610413600480360361040e91908101906132a0565b611509565b005b61042f600480360361042a91908101906132a0565b611594565b005b61044b600480360361044691908101906134c1565b61161f565b60405161045891906139ed565b60405180910390f35b61047b600480360361047691908101906132a0565b611948565b60405161048891906139ed565b60405180910390f35b6104996119e2565b6040516104a69190613819565b60405180910390f35b6104b7611a0b565b6040516104c49190613910565b60405180910390f35b6104d5611a69565b6040516104e29190613819565b60405180910390f35b6104f3611a8f565b6040516105009190613819565b60405180910390f35b610523600480360361051e91908101906132f2565b611ab5565b60405161053091906139ed565b60405180910390f35b610541611ed2565b60405161054e91906139ed565b60405180910390f35b61055f611ed8565b60405161056c91906139ed565b60405180910390f35b61058f600480360361058a91908101906132a0565b611ede565b005b6105ab60048036036105a691908101906132a0565b611f69565b6040516105b891906139ed565b60405180910390f35b6105db60048036036105d691908101906132a0565b612050565b005b6105e56120db565b6040516105f29190613819565b60405180910390f35b610615600480360361061091908101906134c1565b612101565b005b610631600480360361062c91908101906132a0565b612152565b60405161063e91906139ed565b60405180910390f35b610661600480360361065c91908101906132a0565b612320565b005b61066b612373565b005b610687600480360361068291908101906134c1565b612480565b005b6106916124d1565b60405161069e9190613819565b60405180910390f35b6106c160048036036106bc91908101906132f2565b612578565b6040516106ce91906139ed565b60405180910390f35b6106f160048036036106ec9190810190613513565b6129a2565b6040516106fe91906139ed565b60405180910390f35b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561075a57600090506109c3565b6000610819838573ffffffffffffffffffffffffffffffffffffffff166370a08231600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016107bb9190613819565b60206040518083038186803b1580156107d357600080fd5b505afa1580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061080b91908101906134ea565b612cf890919063ffffffff16565b9050600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638e8f294b876040518263ffffffff1660e01b81526004016108799190613819565b6101206040518083038186803b15801561089257600080fd5b505afa1580156108a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108ca9190810190613357565b5050965050505093505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561091657600093505050506109c3565b60008273ffffffffffffffffffffffffffffffffffffffff1663517cf73e8886856040518463ffffffff1660e01b815260040161095593929190613886565b604080518083038186803b15801561096c57600080fd5b505afa158015610980573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109a4919081019061354f565b9150506109bc60095482612d4d90919063ffffffff16565b9450505050505b92915050565b60075481565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ed6ff7606040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3a57600080fd5b505afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a7291908101906132c9565b9050610b13633b9aca008273ffffffffffffffffffffffffffffffffffffffff1663c540148e866040518263ffffffff1660e01b8152600401610ab59190613819565b60206040518083038186803b158015610acd57600080fd5b505afa158015610ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b0591908101906134ea565b612dbd90919063ffffffff16565b915050919050565b610b23611a0b565b610b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b59906139cd565b60405180910390fd5b8060078190555050565b610b74611a0b565b610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa906139cd565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610bff611a0b565b610c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c35906139cd565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c799190613819565b60206040518083038186803b158015610c9157600080fd5b505afa158015610ca5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cc991908101906134ea565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610d06929190613834565b602060405180830381600087803b158015610d2057600080fd5b505af1158015610d34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d58919081019061332e565b505050565b6000610df16009548373ffffffffffffffffffffffffffffffffffffffff1663ae9d70b06040518163ffffffff1660e01b815260040160206040518083038186803b158015610dab57600080fd5b505afa158015610dbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610de391908101906134ea565b612d4d90919063ffffffff16565b9050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ebc60648473ffffffffffffffffffffffffffffffffffffffff1663d65a5021856040518263ffffffff1660e01b8152600401610e5e91906139ed565b60206040518083038186803b158015610e7657600080fd5b505afa158015610e8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610eae91908101906134ea565b612dbd90919063ffffffff16565b905092915050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638e8f294b846040518263ffffffff1660e01b8152600401610f229190613819565b6101206040518083038186803b158015610f3b57600080fd5b505afa158015610f4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f739190810190613357565b50505050945050505050610f9260095482612d4d90919063ffffffff16565b915050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fc8611a0b565b611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe906139cd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561111557600e92505b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b31610db856040518263ffffffff1660e01b81526004016111729190613819565b604080518083038186803b15801561118957600080fd5b505afa15801561119d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111c1919081019061354f565b50905060008114156111d7576000915050611503565b600061129684600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166368da10ae886040518263ffffffff1660e01b81526004016112389190613819565b60206040518083038186803b15801561125057600080fd5b505afa158015611264573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061128891908101906134ea565b612cf890919063ffffffff16565b90506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638538d14e876040518263ffffffff1660e01b81526004016112f59190613819565b60206040518083038186803b15801561130d57600080fd5b505afa158015611321573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061134591908101906134ea565b9050600061137583611367611358612e07565b85612d4d90919063ffffffff16565b612dbd90919063ffffffff16565b90506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166330b8b2c6896040518263ffffffff1660e01b81526004016113d49190613819565b60606040518083038186803b1580156113ec57600080fd5b505afa158015611400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114249190810190613446565b60400151905060008173ffffffffffffffffffffffffffffffffffffffff166369e8a15f846040518263ffffffff1660e01b815260040161146591906139ed565b60206040518083038186803b15801561147d57600080fd5b505afa158015611491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114b591908101906134ea565b905060006114c38583612e17565b905060006114ec826114e76007546114d9612e07565b612e4e90919063ffffffff16565b612e98565b90506114f88188612ec6565b985050505050505050505b92915050565b611511611a0b565b611550576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611547906139cd565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61159c611a0b565b6115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d2906139cd565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fd47eda6846040518263ffffffff1660e01b815260040161167d91906139ed565b60206040518083038186803b15801561169557600080fd5b505afa1580156116a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116cd9190810190613498565b60000151905060006301e28500820290506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb04a34c866040518263ffffffff1660e01b815260040161173b91906139ed565b604080518083038186803b15801561175257600080fd5b505afa158015611766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061178a919081019061346f565b600001516fffffffffffffffffffffffffffffffff1690506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb04a34c876040518263ffffffff1660e01b81526004016117ff91906139ed565b604080518083038186803b15801561181657600080fd5b505afa15801561182a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061184e919081019061346f565b602001516fffffffffffffffffffffffffffffffff16905060008160015484028161187557fe5b0490506000600154600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e55202286040518163ffffffff1660e01b815260040160206040518083038186803b1580156118e557600080fd5b505afa1580156118f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061191d9190810190613498565b600001516001548488028161192e57fe5b04028161193757fe5b049050809650505050505050919050565b60006119db60648373ffffffffffffffffffffffffffffffffffffffff166309ec6b6b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561199557600080fd5b505afa1580156119a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119cd91908101906134ea565b612dbd90919063ffffffff16565b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a4d612efd565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ed6ff7606040518163ffffffff1660e01b815260040160206040518083038186803b158015611b2057600080fd5b505afa158015611b34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b5891908101906132c9565b905060008173ffffffffffffffffffffffffffffffffffffffff16636ae14416866040518263ffffffff1660e01b8152600401611b959190613819565b60206040518083038186803b158015611bad57600080fd5b505afa158015611bc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611be591908101906132c9565b905060008173ffffffffffffffffffffffffffffffffffffffff166357e37af087611ca1888773ffffffffffffffffffffffffffffffffffffffff1663e24030198c6040518263ffffffff1660e01b8152600401611c439190613819565b60206040518083038186803b158015611c5b57600080fd5b505afa158015611c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c9391908101906134ea565b612cf890919063ffffffff16565b8673ffffffffffffffffffffffffffffffffffffffff16637f90fec58b6040518263ffffffff1660e01b8152600401611cda9190613819565b60206040518083038186803b158015611cf257600080fd5b505afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d2a91908101906134ea565b8773ffffffffffffffffffffffffffffffffffffffff166398bd47378c6040518263ffffffff1660e01b8152600401611d639190613819565b60206040518083038186803b158015611d7b57600080fd5b505afa158015611d8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611db391908101906134ea565b8873ffffffffffffffffffffffffffffffffffffffff166346bc0f288d6040518263ffffffff1660e01b8152600401611dec9190613819565b60206040518083038186803b158015611e0457600080fd5b505afa158015611e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e3c91908101906134ea565b6040518663ffffffff1660e01b8152600401611e5c9594939291906138bd565b60606040518083038186803b158015611e7457600080fd5b505afa158015611e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611eac919081019061358b565b50509050611ec7633b9aca0082612dbd90919063ffffffff16565b935050505092915050565b60085481565b60095481565b611ee6611a0b565b611f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1c906139cd565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080611f82628e4d3b43612e4e90919063ffffffff16565b9050600061201e670de0b6b3a76400008573ffffffffffffffffffffffffffffffffffffffff1663bb7b8b806040518163ffffffff1660e01b815260040160206040518083038186803b158015611fd857600080fd5b505afa158015611fec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061201091908101906134ea565b612e4e90919063ffffffff16565b90506120478261203960095484612d4d90919063ffffffff16565b612dbd90919063ffffffff16565b92505050919050565b612058611a0b565b612097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208e906139cd565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612109611a0b565b612148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213f906139cd565b60405180910390fd5b8060088190555050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121a157600e91505b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b31610db846040518263ffffffff1660e01b81526004016121fe9190613819565b604080518083038186803b15801561221557600080fd5b505afa158015612229573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061224d919081019061354f565b509050600081141561226357600091505061231b565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166343239e9b8560006040518363ffffffff1660e01b81526004016122c392919061385d565b604080518083038186803b1580156122da57600080fd5b505afa1580156122ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612312919081019061354f565b91505080925050505b919050565b612328611a0b565b612367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235e906139cd565b60405180910390fd5b61237081612f05565b50565b61237b611a0b565b6123ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b1906139cd565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16316040516123f790613804565b60006040518083038185875af1925050503d8060008114612434576040519150601f19603f3d011682016040523d82523d6000602084013e612439565b606091505b505090508061247d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124749061398d565b60405180910390fd5b50565b612488611a0b565b6124c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124be906139cd565b60405180910390fd5b8060098190555050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ed6ff7606040518163ffffffff1660e01b815260040160206040518083038186803b15801561253b57600080fd5b505afa15801561254f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061257391908101906132c9565b905090565b60008083905060008473ffffffffffffffffffffffffffffffffffffffff1663f3fdb15a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156125c657600080fd5b505afa1580156125da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506125fe91908101906132c9565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156126d0576126c76009548373ffffffffffffffffffffffffffffffffffffffff1663ae9d70b06040518163ffffffff1660e01b815260040160206040518083038186803b15801561268157600080fd5b505afa158015612695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506126b991908101906134ea565b612d4d90919063ffffffff16565b9250505061299c565b60008190506000612767868573ffffffffffffffffffffffffffffffffffffffff16633b1d21a26040518163ffffffff1660e01b815260040160206040518083038186803b15801561272157600080fd5b505afa158015612735573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061275991908101906134ea565b612cf890919063ffffffff16565b90506129956009548373ffffffffffffffffffffffffffffffffffffffff1663b8168816848873ffffffffffffffffffffffffffffffffffffffff166347bd37186040518163ffffffff1660e01b815260040160206040518083038186803b1580156127d257600080fd5b505afa1580156127e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061280a91908101906134ea565b61289a8c8b73ffffffffffffffffffffffffffffffffffffffff16638f840ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561285457600080fd5b505afa158015612868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061288c91908101906134ea565b612cf890919063ffffffff16565b8a73ffffffffffffffffffffffffffffffffffffffff1663173b99046040518163ffffffff1660e01b815260040160206040518083038186803b1580156128e057600080fd5b505afa1580156128f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061291891908101906134ea565b6040518563ffffffff1660e01b81526004016129379493929190613a08565b60206040518083038186803b15801561294f57600080fd5b505afa158015612963573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061298791908101906134ea565b612d4d90919063ffffffff16565b9450505050505b92915050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fd47eda6856040518263ffffffff1660e01b8152600401612a0091906139ed565b60206040518083038186803b158015612a1857600080fd5b505afa158015612a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a509190810190613498565b600001519050612a6b60085484612d4d90919063ffffffff16565b925060006301e28500820290506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb04a34c876040518263ffffffff1660e01b8152600401612ad591906139ed565b604080518083038186803b158015612aec57600080fd5b505afa158015612b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612b24919081019061346f565b600001516fffffffffffffffffffffffffffffffff1690506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb04a34c886040518263ffffffff1660e01b8152600401612b9991906139ed565b604080518083038186803b158015612bb057600080fd5b505afa158015612bc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612be8919081019061346f565b602001516fffffffffffffffffffffffffffffffff169050612c138682612cf890919063ffffffff16565b9050600081600154840281612c2457fe5b0490506000600154600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e55202286040518163ffffffff1660e01b815260040160206040518083038186803b158015612c9457600080fd5b505afa158015612ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612ccc9190810190613498565b6000015160015484880281612cdd57fe5b040281612ce657fe5b04905080965050505050505092915050565b600080828401905083811015612d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3a9061396d565b60405180910390fd5b8091505092915050565b600080831415612d605760009050612db7565b6000828402905082848281612d7157fe5b0414612db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da9906139ad565b60405180910390fd5b809150505b92915050565b6000612dff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613033565b905092915050565b6000670de0b6b3a7640000905090565b6000612e46670de0b6b3a7640000612e388486612d4d90919063ffffffff16565b61309490919063ffffffff16565b905092915050565b6000612e9083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130ce565b905092915050565b6000670de0b6b3a7640000612eb68385612d4d90919063ffffffff16565b81612ebd57fe5b04905092915050565b6000612ef582612ee7670de0b6b3a764000086612d4d90919063ffffffff16565b612dbd90919063ffffffff16565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6c9061394d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808311829061307a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613071919061392b565b60405180910390fd5b50600083858161308657fe5b049050809150509392505050565b6000806130a18484612dbd565b905060008382028503905060008111156130c25760018201925050506130c8565b81925050505b92915050565b6000838311158290613116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161310d919061392b565b60405180910390fd5b5060008385039050809150509392505050565b60008135905061313881613ba3565b92915050565b60008151905061314d81613ba3565b92915050565b60008151905061316281613bba565b92915050565b60008135905061317781613bd1565b92915050565b60006060828403121561318f57600080fd5b6131996060613a4d565b905060006131a98482850161313e565b60008301525060206131bd8482850161313e565b60208301525060406131d18482850161313e565b60408301525092915050565b6000604082840312156131ef57600080fd5b6131f96040613a4d565b9050600061320984828501613261565b600083015250602061321d84828501613261565b60208301525092915050565b60006020828403121561323b57600080fd5b6132456020613a4d565b905060006132558482850161328b565b60008301525092915050565b60008151905061327081613be8565b92915050565b60008135905061328581613bff565b92915050565b60008151905061329a81613bff565b92915050565b6000602082840312156132b257600080fd5b60006132c084828501613129565b91505092915050565b6000602082840312156132db57600080fd5b60006132e98482850161313e565b91505092915050565b6000806040838503121561330557600080fd5b600061331385828601613129565b925050602061332485828601613276565b9150509250929050565b60006020828403121561334057600080fd5b600061334e84828501613153565b91505092915050565b60008060008060008060008060006101208a8c03121561337657600080fd5b60006133848c828d01613153565b99505060206133958c828d0161328b565b98505060406133a68c828d0161313e565b97505060606133b78c828d0161328b565b96505060806133c88c828d0161328b565b95505060a06133d98c828d0161328b565b94505060c06133ea8c828d0161328b565b93505060e06133fb8c828d0161328b565b92505061010061340d8c828d0161328b565b9150509295985092959850929598565b60006020828403121561342f57600080fd5b600061343d84828501613168565b91505092915050565b60006060828403121561345857600080fd5b60006134668482850161317d565b91505092915050565b60006040828403121561348157600080fd5b600061348f848285016131dd565b91505092915050565b6000602082840312156134aa57600080fd5b60006134b884828501613229565b91505092915050565b6000602082840312156134d357600080fd5b60006134e184828501613276565b91505092915050565b6000602082840312156134fc57600080fd5b600061350a8482850161328b565b91505092915050565b6000806040838503121561352657600080fd5b600061353485828601613276565b925050602061354585828601613276565b9150509250929050565b6000806040838503121561356257600080fd5b60006135708582860161328b565b92505060206135818582860161328b565b9150509250929050565b6000806000606084860312156135a057600080fd5b60006135ae8682870161328b565b93505060206135bf8682870161328b565b92505060406135d08682870161328b565b9150509250925092565b6135e381613b17565b82525050565b6135f281613aa1565b82525050565b61360181613ab3565b82525050565b61361081613b29565b82525050565b600061362182613a7a565b61362b8185613a90565b935061363b818560208601613b5f565b61364481613b92565b840191505092915050565b600061365c602683613a90565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006136c2601b83613a90565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000613702601683613a90565b91507f7472616e73666572206f6620455448206661696c6564000000000000000000006000830152602082019050919050565b6000613742602183613a90565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137a8602083613a90565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006137e8600083613a85565b9150600082019050919050565b6137fe81613b0d565b82525050565b600061380f826137db565b9150819050919050565b600060208201905061382e60008301846135e9565b92915050565b600060408201905061384960008301856135da565b61385660208301846137f5565b9392505050565b600060408201905061387260008301856135e9565b61387f6020830184613607565b9392505050565b600060608201905061389b60008301866135e9565b6138a860208301856137f5565b6138b560408301846137f5565b949350505050565b600060a0820190506138d260008301886135e9565b6138df60208301876137f5565b6138ec60408301866137f5565b6138f960608301856137f5565b61390660808301846137f5565b9695505050505050565b600060208201905061392560008301846135f8565b92915050565b600060208201905081810360008301526139458184613616565b905092915050565b600060208201905081810360008301526139668161364f565b9050919050565b60006020820190508181036000830152613986816136b5565b9050919050565b600060208201905081810360008301526139a6816136f5565b9050919050565b600060208201905081810360008301526139c681613735565b9050919050565b600060208201905081810360008301526139e68161379b565b9050919050565b6000602082019050613a0260008301846137f5565b92915050565b6000608082019050613a1d60008301876137f5565b613a2a60208301866137f5565b613a3760408301856137f5565b613a4460608301846137f5565b95945050505050565b6000604051905081810181811067ffffffffffffffff82111715613a7057600080fd5b8060405250919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000613aac82613aed565b9050919050565b60008115159050919050565b6000613aca82613aa1565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613b2282613b3b565b9050919050565b6000613b3482613b0d565b9050919050565b6000613b4682613b4d565b9050919050565b6000613b5882613aed565b9050919050565b60005b83811015613b7d578082015181840152602081019050613b62565b83811115613b8c576000848401525b50505050565b6000601f19601f8301169050919050565b613bac81613aa1565b8114613bb757600080fd5b50565b613bc381613ab3565b8114613bce57600080fd5b50565b613bda81613abf565b8114613be557600080fd5b50565b613bf181613ad1565b8114613bfc57600080fd5b50565b613c0881613b0d565b8114613c1357600080fd5b5056fea365627a7a7231582022e4198461842e1c0c2e8661c40a20c508c4f1bff183fb162998b499424116c86c6578706572696d656e74616cf564736f6c634300050c0040
Deployed Bytecode Sourcemap
10431:7802:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10431:7802:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12347:592;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10705:31;;;:::i;:::-;;;;;;;;;;;;;;;;16890:238;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11792:104;;;;;;;;;;;;;;;;:::i;:::-;;11602:89;;;;;;;;;;;;;;;;:::i;:::-;;17837:181;;;;;;;;;;;;;;;;:::i;:::-;;14322:144;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10603:19;;;:::i;:::-;;;;;;;;;;;;;;;;15144:167;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;12144:197;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10651:20;;;:::i;:::-;;;;;;;;;;;;;;;;1823:140;;;:::i;:::-;;13375:941;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11509:89;;;;;;;;;;;;;;;;:::i;:::-;;11311;;;;;;;;;;;;;;;;:::i;:::-;;15317:512;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;15007:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1526:79;;;:::i;:::-;;;;;;;;;;;;;;;;1723:94;;;:::i;:::-;;;;;;;;;;;;;;;;10627:19;;;:::i;:::-;;;;;;;;;;;;;;;;10676:22;;;:::i;:::-;;;;;;;;;;;;;;;;17134:666;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10741:27;;;:::i;:::-;;;;;;;;;;;;;;;;10773:28;;;:::i;:::-;;;;;;;;;;;;;;;;11695:93;;;;;;;;;;;;;;;;:::i;:::-;;15835:239;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11404:101;;;;;;;;;;;;;;;;:::i;:::-;;10579:19;;;:::i;:::-;;;;;;;;;;;;;;;;11900:109;;;;;;;;;;;;;;;;:::i;:::-;;12945:424;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1969:109;;;;;;;;;;;;;;;;:::i;:::-;;18053:177;;;:::i;:::-;;12013:125;;;;;;;;;;;;;;;;:::i;:::-;;16747:137;;;:::i;:::-;;;;;;;;;;;;;;;;14472:529;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;16080:661;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;12347:592;12428:7;12465:42;12448:60;;:5;:60;;;12444:91;;;12526:1;12519:8;;;;12444:91;12541:17;12561:42;12596:6;12568:5;12561:23;;;12585:5;;;;;;;;;;;12561:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12561:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12561:30:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12561:30:0;;;;;;;;;:34;;:42;;;;:::i;:::-;12541:62;;12614:25;12644:20;12677:5;;;;;;;;;;;12670:21;;;12692:5;12670:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12670:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12670:28:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12670:28:0;;;;;;;;;12610:88;;;;;;;;;;;12738:1;12709:31;;:17;:31;;;12705:62;;;12758:1;12751:8;;;;;;;12705:62;12776:26;12818:17;12806:44;;;12851:5;12858:9;12869:12;12806:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12806:76:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12806:76:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12806:76:0;;;;;;;;;12773:109;;;12896:37;12919:13;;12896:18;:22;;:37;;;;:::i;:::-;12889:44;;;;;;12347:592;;;;;:::o;10705:31::-;;;;:::o;16890:238::-;16946:7;16962:20;17030:4;;;;;;;;;;;17001:53;;;:55;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17001:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17001:55:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17001:55:0;;;;;;;;;16962:95;;17071:51;17118:3;17071:4;:35;;;17107:5;17071:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17071:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17071:42:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17071:42:0;;;;;;;;;:46;;:51;;;;:::i;:::-;17064:58;;;16890:238;;;:::o;11792:104::-;1651:9;:7;:9::i;:::-;1643:54;;;;;;;;;;;;;;;;;;;;;;11880:10;11861:16;:29;;;;11792:104;:::o;11602:89::-;1651:9;:7;:9::i;:::-;1643:54;;;;;;;;;;;;;;;;;;;;;;11676:9;11669:4;;:16;;;;;;;;;;;;;;;;;;11602:89;:::o;17837:181::-;1651:9;:7;:9::i;:::-;1643:54;;;;;;;;;;;;;;;;;;;;;;17915:8;17926:13;:23;;;17958:4;17926:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17926:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17926:38:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17926:38:0;;;;;;;;;17915:49;;17973:13;:22;;;17996:10;18008:3;17973:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17973:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17973:39:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17973:39:0;;;;;;;;;;1708:1;17837:181;:::o;14322:144::-;14382:7;14405:55;14446:13;;14414:5;14405:34;;;:36;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14405:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14405:36:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;14405:36:0;;;;;;;;;:40;;:55;;;;:::i;:::-;14398:62;;14322:144;;;:::o;10603:19::-;;;;;;;;;;;;;:::o;15144:167::-;15227:7;15250:55;15301:3;15258:5;15250:37;;;15288:7;15250:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15250:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15250:46:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15250:46:0;;;;;;;;;:50;;:55;;;;:::i;:::-;15243:62;;15144:167;;;;:::o;12144:197::-;12201:7;12222:26;12263:5;;;;;;;;;;;12256:21;;;12278:5;12256:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12256:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12256:28:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12256:28:0;;;;;;;;;12217:67;;;;;;;;;;12298:37;12321:13;;12298:18;:22;;:37;;;;:::i;:::-;12291:44;;;12144:197;;;:::o;10651:20::-;;;;;;;;;;;;;:::o;1823:140::-;1651:9;:7;:9::i;:::-;1643:54;;;;;;;;;;;;;;;;;;;;;;1922:1;1885:40;;1906:6;;;;;;;;;;;1885:40;;;;;;;;;;;;1953:1;1936:6;;:19;;;;;;;;;;;;;;;;;;1823:140::o;13375:941::-;13456:7;13493:42;13476:60;;:5;:60;;;13472:142;;;13563:42;13547:59;;13472:142;13621:19;13651:4;;;;;;;;;;;13645:20;;;13666:5;13645:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13645:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13645:27:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13645:27:0;;;;;;;;;13620:52;;;13698:1;13683:11;:16;13679:47;;;13717:1;13710:8;;;;;13679:47;13732:14;13749:46;13787:7;13755:4;;;;;;;;;;;13749:26;;;13776:5;13749:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13749:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13749:33:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13749:33:0;;;;;;;;;:37;;:46;;;;:::i;:::-;13732:63;;13802:14;13825:4;;;;;;;;;;;13819:26;;;13846:5;13819:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13819:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13819:33:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13819:33:0;;;;;;;;;13802:50;;13859:19;13881:37;13911:6;13881:25;13892:13;:11;:13::i;:::-;13881:6;:10;;:25;;;;:::i;:::-;:29;;:37;;;;:::i;:::-;13859:59;;13925:25;13959:4;;;;;;;;;;;13953:20;;;13974:5;13953:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13953:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13953:27:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13953:27:0;;;;;;;;;:41;;;13925:69;;14001:18;14033:17;14022:53;;;14076:11;14022:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14022:66:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14022:66:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;14022:66:0;;;;;;;;;14001:87;;14095:22;14120:35;14136:6;14144:10;14120:15;:35::i;:::-;14095:60;;14162:22;14187:69;14204:14;14220:35;14238:16;;14220:13;:11;:13::i;:::-;:17;;:35;;;;:::i;:::-;14187:16;:69::i;:::-;14162:94;;14270:40;14287:14;14303:6;14270:16;:40::i;:::-;14263:47;;;;;;;;;;13375:941;;;;;:::o;11509:89::-;1651:9;:7;:9::i;:::-;1643:54;;;;;;;;;;;;;;;;;;;;;;11583:9;11576:4;;:16;;;;;;;;;;;;;;;;;;11509:89;:::o;11311:::-;1651:9;:7;:9::i;:::-;1643:54;;;;;;;;;;;;;;;;;;;;;;11385:9;11378:4;;:16;;;;;;;;;;;;;;;;;;11311:89;:::o;15317:512::-;15375:7;15391:12;15416:4;;;;;;;;;;;15411:32;;;15444:8;15411:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15411:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15411:42:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15411:42:0;;;;;;;;;:48;;;15391:68;;15466:17;15493:8;15486:4;:15;15466:35;;15508:14;15533:4;;;;;;;;;;;15528:28;;;15557:8;15528:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15528:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15528:38:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15528:38:0;;;;;;;;;:45;;;15508:65;;;;15580:14;15605:4;;;;;;;;;;;15600:28;;;15629:8;15600:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15600:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15600:38:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15600:38:0;;;;;;;;;:45;;;15580:65;;;;15652:13;15693:6;15682:7;;15673:6;:16;15672:27;;;;;;15652:47;;15706:11;15799:7;;15766:4;;;;;;;;;;;15761:26;;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15761:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15761:28:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15761:28:0;;;;;;;;;:34;;;15750:7;;15741:5;15729:9;:17;15728:29;;;;;;15727:68;15726:80;;;;;;15706:100;;15820:3;15813:10;;;;;;;;15317:512;;;:::o;15007:131::-;15065:7;15088:44;15128:3;15096:5;15088:33;;;:35;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15088:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15088:35:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15088:35:0;;;;;;;;;:39;;:44;;;;:::i;:::-;15081:51;;15007:131;;;:::o;1526:79::-;1564:7;1591:6;;;;;;;;;;;1584:13;;1526:79;:::o;1723:94::-;1763:4;1803:6;;;;;;;;;;;1787:22;;:12;:10;:12::i;:::-;:22;;;1780:29;;1723:94;:::o;10627:19::-;;;;;;;;;;;;;:::o;10676:22::-;;;;;;;;;;;;;:::o;17134:666::-;17215:7;17231:20;17299:4;;;;;;;;;;;17270:53;;;:55;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17270:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17270:55:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17270:55:0;;;;;;;;;17231:95;;17333:32;17397:4;:42;;;17440:5;17397:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17397:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17397:49:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17397:49:0;;;;;;;;;17333:114;;17455:24;17485:3;:26;;;17520:5;17534:53;17579:7;17534:4;:33;;;17568:5;17534:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17534:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17534:40:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17534:40:0;;;;;;;;;:44;;:53;;;;:::i;:::-;17596:4;:33;;;17630:5;17596:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17596:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17596:40:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17596:40:0;;;;;;;;;17645:4;:35;;;17681:5;17645:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17645:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17645:42:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17645:42:0;;;;;;;;;17696:4;:45;;;17742:5;17696:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17696:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17696:52:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17696:52:0;;;;;;;;;17485:270;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17485:270:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17485:270:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17485:270:0;;;;;;;;;17454:301;;;;17769:25;17790:3;17769:16;:20;;:25;;;;:::i;:::-;17762:32;;;;;17134:666;;;;:::o;10741:27::-;;;;:::o;10773:28::-;;;;:::o;11695:93::-;1651:9;:7;:9::i;:::-;1643:54;;;;;;;;;;;;;;;;;;;;;;11772:10;11764:5;;:18;;;;;;;;;;;;;;;;;;11695:93;:::o;15835:239::-;15892:7;15908:14;15925:25;15942:7;15925:12;:16;;:25;;;;:::i;:::-;15908:42;;15957:13;15973:45;16013:4;15982:5;15973:33;;;:35;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15973:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15973:35:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15973:35:0;;;;;;;;;:39;;:45;;;;:::i;:::-;15957:61;;16032:36;16061:6;16032:24;16042:13;;16032:5;:9;;:24;;;;:::i;:::-;:28;;:36;;;;:::i;:::-;16025:43;;;;15835:239;;;:::o;11404:101::-;1651:9;:7;:9::i;:::-;1643:54;;;;;;;;;;;;;;;;;;;;;;11487:12;11477:7;;:22;;;;;;;;;;;;;;;;;;11404:101;:::o;10579:19::-;;;;;;;;;;;;;:::o;11900:109::-;1651:9;:7;:9::i;:::-;1643:54;;;;;;;;;;;;;;;;;;;;;;11990:13;11975:12;:28;;;;11900:109;:::o;12945:424::-;13001:7;13038:42;13021:60;;:5;:60;;;13017:142;;;13108:42;13092:59;;13017:142;13166:19;13196:4;;;;;;;;;;;13190:20;;;13211:5;13190:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13190:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13190:27:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13190:27:0;;;;;;;;;13165:52;;;13243:1;13228:11;:16;13224:47;;;13262:1;13255:8;;;;;13224:47;13279:18;13307:4;;;;;;;;;;;13301:28;;;13330:5;13337:1;13301:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13301:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13301:38:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13301:38:0;;;;;;;;;13277:62;;;13353:10;13346:17;;;;12945:424;;;;:::o;1969:109::-;1651:9;:7;:9::i;:::-;1643:54;;;;;;;;;;;;;;;;;;;;;;2042:28;2061:8;2042:18;:28::i;:::-;1969:109;:::o;18053:177::-;1651:9;:7;:9::i;:::-;1643:54;;;;;;;;;;;;;;;;;;;;;;18109:11;18126:10;:15;;18156:4;18148:21;;;18126:48;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;18108:66:0;;;18191:6;18183:41;;;;;;;;;;;;;;;;;;;;;;1708:1;18053:177::o;12013:125::-;1651:9;:7;:9::i;:::-;1643:54;;;;;;;;;;;;;;;;;;;;;;12114:18;12098:13;:34;;;;12013:125;:::o;16747:137::-;16791:7;16851:4;;;;;;;;;;;16822:53;;;:55;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16822:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16822:55:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;16822:55:0;;;;;;;;;16807:71;;16747:137;:::o;14472:529::-;14557:7;14573:10;14595:5;14573:28;;14608:13;14633:5;14624:33;;;:35;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14624:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14624:35:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;14624:35:0;;;;;;;;;14608:51;;14687:1;14670:19;;:5;:19;;;14666:90;;;14707:41;14734:13;;14707:1;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14707:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14707:22:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;14707:22:0;;;;;;;;;:26;;:41;;;;:::i;:::-;14700:48;;;;;;14666:90;14762:19;14802:5;14762:46;;14815:17;14835:24;14851:7;14835:1;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14835:11:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14835:11:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;14835:11:0;;;;;;;;;:15;;:24;;;;:::i;:::-;14815:44;;14873:122;14981:13;;14873:1;:15;;;14889:9;14900:1;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14900:16:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14900:16:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;14900:16:0;;;;;;;;;14918:30;14940:7;14918:1;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14918:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14918:17:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;14918:17:0;;;;;;;;;:21;;:30;;;;:::i;:::-;14950:1;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14950:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14950:25:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;14950:25:0;;;;;;;;;14873:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14873:103:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14873:103:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;14873:103:0;;;;;;;;;:107;;:122;;;;:::i;:::-;14866:129;;;;;;14472:529;;;;;:::o;16080:661::-;16163:7;16179:12;16204:4;;;;;;;;;;;16199:32;;;16232:8;16199:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16199:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16199:42:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;16199:42:0;;;;;;;;;:48;;;16179:68;;16311:25;16323:12;;16311:7;:11;;:25;;;;:::i;:::-;16301:35;;16343:17;16370:8;16363:4;:15;16343:35;;16385:14;16410:4;;;;;;;;;;;16405:28;;;16434:8;16405:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16405:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16405:38:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;16405:38:0;;;;;;;;;:45;;;16385:65;;;;16457:14;16482:4;;;;;;;;;;;16477:28;;;16506:8;16477:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16477:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16477:38:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;16477:38:0;;;;;;;;;:45;;;16457:65;;;;16538:19;16549:7;16538:6;:10;;:19;;;;:::i;:::-;16529:28;;16564:13;16605:6;16594:7;;16585:6;:16;16584:27;;;;;;16564:47;;16618:11;16711:7;;16678:4;;;;;;;;;;;16673:26;;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16673:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16673:28:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;16673:28:0;;;;;;;;;:34;;;16662:7;;16653:5;16641:9;:17;16640:29;;;;;;16639:68;16638:80;;;;;;16618:100;;16732:3;16725:10;;;;;;;;16080:661;;;;:::o;2344:181::-;2402:7;2422:9;2438:1;2434;:5;2422:17;;2463:1;2458;:6;;2450:46;;;;;;;;;;;;;;;;;;;;;;2516:1;2509:8;;;2344:181;;;;:::o;2871:250::-;2929:7;2958:1;2953;:6;2949:47;;;2983:1;2976:8;;;;2949:47;3008:9;3024:1;3020;:5;3008:17;;3053:1;3048;3044;:5;;;;;;:10;3036:56;;;;;;;;;;;;;;;;;;;;;;3112:1;3105:8;;;2871:250;;;;;:::o;3127:132::-;3185:7;3212:39;3216:1;3219;3212:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3205:46;;3127:132;;;;:::o;4219:109::-;4284:7;4204:6;4309:11;;4219:109;:::o;4677:186::-;4796:7;4828:27;4204:6;4828:13;4839:1;4828:6;:10;;:13;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;4821:34;;4677:186;;;;:::o;2531:136::-;2589:7;2616:43;2620:1;2623;2616:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2609:50;;2531:136;;;;:::o;4489:180::-;4609:7;4204:6;4641:13;4652:1;4641:6;:10;;:13;;;;:::i;:::-;:20;;;;;;4634:27;;4489:180;;;;:::o;4871:183::-;4991:7;5023:23;5044:1;5023:16;4204:6;5023;:10;;:16;;;;:::i;:::-;:20;;:23;;;;:::i;:::-;5016:30;;4871:183;;;;:::o;908:98::-;953:15;988:10;981:17;;908:98;:::o;2084:229::-;2178:1;2158:22;;:8;:22;;;;2150:73;;;;;;;;;;;;;;;;;;;;;;2268:8;2239:38;;2260:6;;;;;;;;;;;2239:38;;;;;;;;;;;;2297:8;2288:6;;:17;;;;;;;;;;;;;;;;;;2084:229;:::o;3265:191::-;3351:7;3383:1;3379;:5;3386:12;3371:28;;;;;;;;;;;;;;;;;;;;;;;;;3410:9;3426:1;3422;:5;;;;;;3410:17;;3447:1;3440:8;;;3265:191;;;;;:::o;3462:345::-;3576:7;3601:16;3620:9;3624:1;3627;3620:3;:9::i;:::-;3601:28;;3640:17;3675:1;3664:8;:12;3660:1;:16;3640:36;;3703:1;3691:9;:13;3687:113;;;3739:1;3728:8;:12;3721:19;;;;;;3687:113;3780:8;3773:15;;;;3462:345;;;;;:::o;2673:192::-;2759:7;2792:1;2787;:6;;2795:12;2779:29;;;;;;;;;;;;;;;;;;;;;;;;;2819:9;2835:1;2831;:5;2819:17;;2856:1;2849:8;;;2673:192;;;;;:::o;5:130:-1:-;;85:6;72:20;63:29;;97:33;124:5;97:33;;;57:78;;;;;142:134;;226:6;220:13;211:22;;238:33;265:5;238:33;;;205:71;;;;;283:128;;364:6;358:13;349:22;;376:30;400:5;376:30;;;343:68;;;;;418:156;;511:6;498:20;489:29;;523:46;563:5;523:46;;;483:91;;;;;608:674;;730:4;718:9;713:3;709:19;705:30;702:2;;;748:1;745;738:12;702:2;766:20;781:4;766:20;;;757:29;;843:1;874:60;930:3;921:6;910:9;906:22;874:60;;;868:3;861:5;857:15;850:85;796:150;1003:2;1036:60;1092:3;1083:6;1072:9;1068:22;1036:60;;;1029:4;1022:5;1018:16;1011:86;956:152;1167:2;1200:60;1256:3;1247:6;1236:9;1232:22;1200:60;;;1193:4;1186:5;1182:16;1175:86;1118:154;696:586;;;;;1311:498;;1431:4;1419:9;1414:3;1410:19;1406:30;1403:2;;;1449:1;1446;1439:12;1403:2;1467:20;1482:4;1467:20;;;1458:29;;1539:1;1570:60;1626:3;1617:6;1606:9;1602:22;1570:60;;;1564:3;1557:5;1553:15;1546:85;1497:145;1694:2;1727:60;1783:3;1774:6;1763:9;1759:22;1727:60;;;1720:4;1713:5;1709:16;1702:86;1652:147;1397:412;;;;;1838:340;;1958:4;1946:9;1941:3;1937:19;1933:30;1930:2;;;1976:1;1973;1966:12;1930:2;1994:20;2009:4;1994:20;;;1985:29;;2065:1;2096:60;2152:3;2143:6;2132:9;2128:22;2096:60;;;2090:3;2083:5;2079:15;2072:85;2024:144;1924:254;;;;;2185:134;;2269:6;2263:13;2254:22;;2281:33;2308:5;2281:33;;;2248:71;;;;;2326:130;;2406:6;2393:20;2384:29;;2418:33;2445:5;2418:33;;;2378:78;;;;;2463:134;;2547:6;2541:13;2532:22;;2559:33;2586:5;2559:33;;;2526:71;;;;;2604:241;;2708:2;2696:9;2687:7;2683:23;2679:32;2676:2;;;2724:1;2721;2714:12;2676:2;2759:1;2776:53;2821:7;2812:6;2801:9;2797:22;2776:53;;;2766:63;;2738:97;2670:175;;;;;2852:263;;2967:2;2955:9;2946:7;2942:23;2938:32;2935:2;;;2983:1;2980;2973:12;2935:2;3018:1;3035:64;3091:7;3082:6;3071:9;3067:22;3035:64;;;3025:74;;2997:108;2929:186;;;;;3122:366;;;3243:2;3231:9;3222:7;3218:23;3214:32;3211:2;;;3259:1;3256;3249:12;3211:2;3294:1;3311:53;3356:7;3347:6;3336:9;3332:22;3311:53;;;3301:63;;3273:97;3401:2;3419:53;3464:7;3455:6;3444:9;3440:22;3419:53;;;3409:63;;3380:98;3205:283;;;;;;3495:257;;3607:2;3595:9;3586:7;3582:23;3578:32;3575:2;;;3623:1;3620;3613:12;3575:2;3658:1;3675:61;3728:7;3719:6;3708:9;3704:22;3675:61;;;3665:71;;3637:105;3569:183;;;;;3759:1351;;;;;;;;;;4007:3;3995:9;3986:7;3982:23;3978:33;3975:2;;;4024:1;4021;4014:12;3975:2;4059:1;4076:61;4129:7;4120:6;4109:9;4105:22;4076:61;;;4066:71;;4038:105;4174:2;4192:64;4248:7;4239:6;4228:9;4224:22;4192:64;;;4182:74;;4153:109;4293:2;4311:64;4367:7;4358:6;4347:9;4343:22;4311:64;;;4301:74;;4272:109;4412:2;4430:64;4486:7;4477:6;4466:9;4462:22;4430:64;;;4420:74;;4391:109;4531:3;4550:64;4606:7;4597:6;4586:9;4582:22;4550:64;;;4540:74;;4510:110;4651:3;4670:64;4726:7;4717:6;4706:9;4702:22;4670:64;;;4660:74;;4630:110;4771:3;4790:64;4846:7;4837:6;4826:9;4822:22;4790:64;;;4780:74;;4750:110;4891:3;4910:64;4966:7;4957:6;4946:9;4942:22;4910:64;;;4900:74;;4870:110;5011:3;5030:64;5086:7;5077:6;5066:9;5062:22;5030:64;;;5020:74;;4990:110;3969:1141;;;;;;;;;;;;5117:267;;5234:2;5222:9;5213:7;5209:23;5205:32;5202:2;;;5250:1;5247;5240:12;5202:2;5285:1;5302:66;5360:7;5351:6;5340:9;5336:22;5302:66;;;5292:76;;5264:110;5196:188;;;;;5391:307;;5528:2;5516:9;5507:7;5503:23;5499:32;5496:2;;;5544:1;5541;5534:12;5496:2;5579:1;5596:86;5674:7;5665:6;5654:9;5650:22;5596:86;;;5586:96;;5558:130;5490:208;;;;;5705:303;;5840:2;5828:9;5819:7;5815:23;5811:32;5808:2;;;5856:1;5853;5846:12;5808:2;5891:1;5908:84;5984:7;5975:6;5964:9;5960:22;5908:84;;;5898:94;;5870:128;5802:206;;;;;6015:303;;6150:2;6138:9;6129:7;6125:23;6121:32;6118:2;;;6166:1;6163;6156:12;6118:2;6201:1;6218:84;6294:7;6285:6;6274:9;6270:22;6218:84;;;6208:94;;6180:128;6112:206;;;;;6325:241;;6429:2;6417:9;6408:7;6404:23;6400:32;6397:2;;;6445:1;6442;6435:12;6397:2;6480:1;6497:53;6542:7;6533:6;6522:9;6518:22;6497:53;;;6487:63;;6459:97;6391:175;;;;;6573:263;;6688:2;6676:9;6667:7;6663:23;6659:32;6656:2;;;6704:1;6701;6694:12;6656:2;6739:1;6756:64;6812:7;6803:6;6792:9;6788:22;6756:64;;;6746:74;;6718:108;6650:186;;;;;6843:366;;;6964:2;6952:9;6943:7;6939:23;6935:32;6932:2;;;6980:1;6977;6970:12;6932:2;7015:1;7032:53;7077:7;7068:6;7057:9;7053:22;7032:53;;;7022:63;;6994:97;7122:2;7140:53;7185:7;7176:6;7165:9;7161:22;7140:53;;;7130:63;;7101:98;6926:283;;;;;;7216:399;;;7348:2;7336:9;7327:7;7323:23;7319:32;7316:2;;;7364:1;7361;7354:12;7316:2;7399:1;7416:64;7472:7;7463:6;7452:9;7448:22;7416:64;;;7406:74;;7378:108;7517:2;7535:64;7591:7;7582:6;7571:9;7567:22;7535:64;;;7525:74;;7496:109;7310:305;;;;;;7622:535;;;;7771:2;7759:9;7750:7;7746:23;7742:32;7739:2;;;7787:1;7784;7777:12;7739:2;7822:1;7839:64;7895:7;7886:6;7875:9;7871:22;7839:64;;;7829:74;;7801:108;7940:2;7958:64;8014:7;8005:6;7994:9;7990:22;7958:64;;;7948:74;;7919:109;8059:2;8077:64;8133:7;8124:6;8113:9;8109:22;8077:64;;;8067:74;;8038:109;7733:424;;;;;;8164:142;8255:45;8294:5;8255:45;;;8250:3;8243:58;8237:69;;;8313:113;8396:24;8414:5;8396:24;;;8391:3;8384:37;8378:48;;;8433:104;8510:21;8525:5;8510:21;;;8505:3;8498:34;8492:45;;;8544:142;8635:45;8674:5;8635:45;;;8630:3;8623:58;8617:69;;;8693:347;;8805:39;8838:5;8805:39;;;8856:71;8920:6;8915:3;8856:71;;;8849:78;;8932:52;8977:6;8972:3;8965:4;8958:5;8954:16;8932:52;;;9005:29;9027:6;9005:29;;;9000:3;8996:39;8989:46;;8785:255;;;;;;9048:465;;9208:67;9272:2;9267:3;9208:67;;;9201:74;;9308:66;9304:1;9299:3;9295:11;9288:87;9409:66;9404:2;9399:3;9395:12;9388:88;9504:2;9499:3;9495:12;9488:19;;9194:319;;;;9522:364;;9682:67;9746:2;9741:3;9682:67;;;9675:74;;9782:66;9778:1;9773:3;9769:11;9762:87;9877:2;9872:3;9868:12;9861:19;;9668:218;;;;9895:364;;10055:67;10119:2;10114:3;10055:67;;;10048:74;;10155:66;10151:1;10146:3;10142:11;10135:87;10250:2;10245:3;10241:12;10234:19;;10041:218;;;;10268:465;;10428:67;10492:2;10487:3;10428:67;;;10421:74;;10528:66;10524:1;10519:3;10515:11;10508:87;10629:66;10624:2;10619:3;10615:12;10608:88;10724:2;10719:3;10715:12;10708:19;;10414:319;;;;10742:364;;10902:67;10966:2;10961:3;10902:67;;;10895:74;;11002:66;10998:1;10993:3;10989:11;10982:87;11097:2;11092:3;11088:12;11081:19;;10888:218;;;;11115:296;;11292:83;11373:1;11368:3;11292:83;;;11285:90;;11403:1;11398:3;11394:11;11387:18;;11278:133;;;;11419:113;11502:24;11520:5;11502:24;;;11497:3;11490:37;11484:48;;;11539:370;;11737:147;11880:3;11737:147;;;11730:154;;11901:3;11894:10;;11718:191;;;;11916:213;;12034:2;12023:9;12019:18;12011:26;;12048:71;12116:1;12105:9;12101:17;12092:6;12048:71;;;12005:124;;;;;12136:340;;12290:2;12279:9;12275:18;12267:26;;12304:79;12380:1;12369:9;12365:17;12356:6;12304:79;;;12394:72;12462:2;12451:9;12447:18;12438:6;12394:72;;;12261:215;;;;;;12483:340;;12637:2;12626:9;12622:18;12614:26;;12651:71;12719:1;12708:9;12704:17;12695:6;12651:71;;;12733:80;12809:2;12798:9;12794:18;12785:6;12733:80;;;12608:215;;;;;;12830:435;;13004:2;12993:9;12989:18;12981:26;;13018:71;13086:1;13075:9;13071:17;13062:6;13018:71;;;13100:72;13168:2;13157:9;13153:18;13144:6;13100:72;;;13183;13251:2;13240:9;13236:18;13227:6;13183:72;;;12975:290;;;;;;;13272:659;;13502:3;13491:9;13487:19;13479:27;;13517:71;13585:1;13574:9;13570:17;13561:6;13517:71;;;13599:72;13667:2;13656:9;13652:18;13643:6;13599:72;;;13682;13750:2;13739:9;13735:18;13726:6;13682:72;;;13765;13833:2;13822:9;13818:18;13809:6;13765:72;;;13848:73;13916:3;13905:9;13901:19;13892:6;13848:73;;;13473:458;;;;;;;;;13938:201;;14050:2;14039:9;14035:18;14027:26;;14064:65;14126:1;14115:9;14111:17;14102:6;14064:65;;;14021:118;;;;;14146:301;;14284:2;14273:9;14269:18;14261:26;;14334:9;14328:4;14324:20;14320:1;14309:9;14305:17;14298:47;14359:78;14432:4;14423:6;14359:78;;;14351:86;;14255:192;;;;;14454:407;;14645:2;14634:9;14630:18;14622:26;;14695:9;14689:4;14685:20;14681:1;14670:9;14666:17;14659:47;14720:131;14846:4;14720:131;;;14712:139;;14616:245;;;;14868:407;;15059:2;15048:9;15044:18;15036:26;;15109:9;15103:4;15099:20;15095:1;15084:9;15080:17;15073:47;15134:131;15260:4;15134:131;;;15126:139;;15030:245;;;;15282:407;;15473:2;15462:9;15458:18;15450:26;;15523:9;15517:4;15513:20;15509:1;15498:9;15494:17;15487:47;15548:131;15674:4;15548:131;;;15540:139;;15444:245;;;;15696:407;;15887:2;15876:9;15872:18;15864:26;;15937:9;15931:4;15927:20;15923:1;15912:9;15908:17;15901:47;15962:131;16088:4;15962:131;;;15954:139;;15858:245;;;;16110:407;;16301:2;16290:9;16286:18;16278:26;;16351:9;16345:4;16341:20;16337:1;16326:9;16322:17;16315:47;16376:131;16502:4;16376:131;;;16368:139;;16272:245;;;;16524:213;;16642:2;16631:9;16627:18;16619:26;;16656:71;16724:1;16713:9;16709:17;16700:6;16656:71;;;16613:124;;;;;16744:547;;16946:3;16935:9;16931:19;16923:27;;16961:71;17029:1;17018:9;17014:17;17005:6;16961:71;;;17043:72;17111:2;17100:9;17096:18;17087:6;17043:72;;;17126;17194:2;17183:9;17179:18;17170:6;17126:72;;;17209;17277:2;17266:9;17262:18;17253:6;17209:72;;;16917:374;;;;;;;;17298:256;;17360:2;17354:9;17344:19;;17398:4;17390:6;17386:17;17497:6;17485:10;17482:22;17461:18;17449:10;17446:34;17443:62;17440:2;;;17518:1;17515;17508:12;17440:2;17538:10;17534:2;17527:22;17338:216;;;;;17561:122;;17655:5;17649:12;17639:22;;17620:63;;;;17691:144;;17826:3;17811:18;;17804:31;;;;;17844:163;;17959:6;17954:3;17947:19;17996:4;17991:3;17987:14;17972:29;;17940:67;;;;;18015:91;;18077:24;18095:5;18077:24;;;18066:35;;18060:46;;;;18113:85;;18186:5;18179:13;18172:21;18161:32;;18155:43;;;;18205:104;;18280:24;18298:5;18280:24;;;18269:35;;18263:46;;;;18316:113;;18389:34;18382:5;18378:46;18367:57;;18361:68;;;;18436:121;;18509:42;18502:5;18498:54;18487:65;;18481:76;;;;18564:72;;18626:5;18615:16;;18609:27;;;;18643:129;;18730:37;18761:5;18730:37;;;18717:50;;18711:61;;;;18779:116;;18866:24;18884:5;18866:24;;;18853:37;;18847:48;;;;18902:121;;18981:37;19012:5;18981:37;;;18968:50;;18962:61;;;;19030:108;;19109:24;19127:5;19109:24;;;19096:37;;19090:48;;;;19146:268;19211:1;19218:101;19232:6;19229:1;19226:13;19218:101;;;19308:1;19303:3;19299:11;19293:18;19289:1;19284:3;19280:11;19273:39;19254:2;19251:1;19247:10;19242:15;;19218:101;;;19334:6;19331:1;19328:13;19325:2;;;19399:1;19390:6;19385:3;19381:16;19374:27;19325:2;19195:219;;;;;19422:97;;19510:2;19506:7;19501:2;19494:5;19490:14;19486:28;19476:38;;19470:49;;;;19527:117;19596:24;19614:5;19596:24;;;19589:5;19586:35;19576:2;;19635:1;19632;19625:12;19576:2;19570:74;;19651:111;19717:21;19732:5;19717:21;;;19710:5;19707:32;19697:2;;19753:1;19750;19743:12;19697:2;19691:71;;19769:143;19851:37;19882:5;19851:37;;;19844:5;19841:48;19831:2;;19903:1;19900;19893:12;19831:2;19825:87;;19919:117;19988:24;20006:5;19988:24;;;19981:5;19978:35;19968:2;;20027:1;20024;20017:12;19968:2;19962:74;;20043:117;20112:24;20130:5;20112:24;;;20105:5;20102:35;20092:2;;20151:1;20148;20141:12;20092:2;20086:74;
Swarm Source
bzzr://22e4198461842e1c0c2e8661c40a20c508c4f1bff183fb162998b499424116c8
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.