{
  "_format": "hh-sol-artifact-1",
  "contractName": "VaultManagerRedemptionsSingleFacet",
  "sourceName": "contracts/VaultManagerDiamond/facets/VaultManagerRedemptionsSingleFacet.sol",
  "abi": [
    {
      "inputs": [],
      "name": "CollateralNotInVault",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "DiscountIsZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "actualFee",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxFee",
          "type": "uint256"
        }
      ],
      "name": "FeeExceedsMaxFee",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "VEUSDRedeemed",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "redemptionFee",
          "type": "uint256"
        }
      ],
      "name": "FeeExceedsRedemption",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "ICR",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "MCR",
          "type": "uint256"
        }
      ],
      "name": "ICRBelowMCR",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InsufficientVEUSDBalance",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InsufficientVaultsInSystem",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidAbsorptionParams",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "targetAICR",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "actualAICR",
          "type": "uint256"
        }
      ],
      "name": "InvalidHintAICR",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidInputLength",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidMinter",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidRedemptionHint",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "maxFeePercentage",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "decimalPrecision",
          "type": "uint256"
        }
      ],
      "name": "MaxFeeTooHigh",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "maxFeePercentage",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "redemptionFeeFloor",
          "type": "uint256"
        }
      ],
      "name": "MaxFeeTooLow",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NoCollateralDrawn",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "OnlyVaultedgeController",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "RedeemerBalanceTooHigh",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "RedemptionsNotEnabled",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "TCRBelowMCR",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "vaultDebt",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "minNetDebt",
          "type": "uint256"
        }
      ],
      "name": "VaultDebtBelowMinNetDebt",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "VaultNotActive",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ZeroAmount",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "borrower",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "interest",
          "type": "uint256"
        }
      ],
      "name": "InterestApplied",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_Coll_Address",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_L_Coll",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_L_VEUSDDebt",
          "type": "uint256"
        }
      ],
      "name": "LTermsUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "L_VEUSDInterest",
          "type": "uint256"
        }
      ],
      "name": "L_VEUSDInterestUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_lastFeeOpTime",
          "type": "uint256"
        }
      ],
      "name": "LastFeeOpTimeUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_attemptedVEUSDAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_actualVEUSDAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "VEUSDfee",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "tokens",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "Redemption",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bool",
          "name": "_enabled",
          "type": "bool"
        }
      ],
      "name": "RedemptionsEnabledUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_unix",
          "type": "uint256"
        }
      ],
      "name": "SystemSnapshotsUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_newTotalStakes",
          "type": "uint256"
        }
      ],
      "name": "TotalStakesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_borrower",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_newIndex",
          "type": "uint256"
        }
      ],
      "name": "VaultIndexUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_unix",
          "type": "uint256"
        }
      ],
      "name": "VaultSnapshotsUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_borrower",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_debt",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "_tokens",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "_amounts",
          "type": "uint256[]"
        },
        {
          "indexed": false,
          "internalType": "enum VaultManagerOperation",
          "name": "operation",
          "type": "uint8"
        }
      ],
      "name": "VaultUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "VeUsdBurned",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_VEUSDamount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_VEUSDMaxFee",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_target",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_upperHint",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_lowerHint",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_hintAICR",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_collToRedeem",
          "type": "address"
        }
      ],
      "name": "redeemCollateralSingle",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506155ff80620000216000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80634333837214610030575b600080fd5b61004361003e366004614ce6565b610045565b005b61004d6100e5565b7fb2a9aed63fa8af5108cdad021c723bfc52a9ea2912c1b7914d775521e91caa00805474010000000000000000000000000000000000000000900460ff166100c1576040517f7089fb6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100d1888888888888883361015d565b506100dc6001600555565b50505050505050565b600260055403610156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600555565b60008051602061558a83398151915260008051602061556a833981519152610183614b23565b61018b610f07565b60a082018190526101a1908c908c908790611024565b60048201546101b9906001600160a01b03168a6110f9565b6101ef576040517fcecdb49200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8a815282546001840154610210916001600160a01b0390811691168b611362565b610218614b8a565b8360020160009054906101000a90046001600160a01b03166001600160a01b0316637d92c3bb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561026d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102919190614d61565b606082015261029f8a611d4b565b60208401516040850191825260c08501929092529190528251606083015191516102d1926102cc91614d90565b611f4c565b81526020810151515160006101608301819052905b80836101600151101561035257876001600160a01b03168360200151600001518461016001518151811061031c5761031c614da3565b60200260200101516001600160a01b03160361033b5760019150610352565b8261016001805161034b90614db9565b90526102e6565b81610389576040517f30b4bf1700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028601546040517fd98bb5b10000000000000000000000000000000000000000000000000000000081526001600160a01b038a811660048301529091169063d98bb5b190602401602060405180830381865afa1580156103ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104129190614d61565b60e084015260028601546040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152909116906341976e0990602401602060405180830381865afa15801561047c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a09190614d61565b61010084015260006104b18d611f64565b90508660020160009054906101000a90046001600160a01b03166001600160a01b031663794e57246040518163ffffffff1660e01b8152600401602060405180830381865afa158015610508573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052c9190614d61565b8110156105dd57600287015460408051631e5395c960e21b8152905183926001600160a01b03169163794e57249160048083019260209291908290030181865afa15801561057e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a29190614d61565b6040517f80575fc70000000000000000000000000000000000000000000000000000000081526004810192909252602482015260440161014d565b6002870154604080517f5733d58f00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691635733d58f9160048083019260209291908290030181865afa158015610642573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106669190614d61565b905060008183101561069257670de0b6b3a76400006106858484614d90565b61068f9190614dd2565b90505b6000670de0b6b3a76400008760e0015110156106c25760e08701516106bf90670de0b6b3a7640000614d90565b90505b60006106de670de0b6b3a764000067058d15e176280000614dd2565b6106e88385614dd2565b6106f29190614dff565b90508060000361072e576040517f2520b03d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8567ffffffffffffffff81111561074757610747614e13565b604051908082528060200260200182016040528015610770578160200160208202803683370190505b506020808a015101526000670de0b6b3a764000061078e8382614d90565b8a610100015161079e9190614dd2565b6107a89190614dff565b9050670de0b6b3a7640000818a60c001518b6101600151815181106107cf576107cf614da3565b60200260200101516107e19190614dd2565b6107eb9190614dff565b6101208a0181905289516107ff9190611f4c565b808a52600090829061081a90670de0b6b3a764000090614dd2565b6108249190614dff565b9050808a60200151602001518b61016001518151811061084657610846614da3565b602002602001018181525050808a60c001518b61016001518151811061086e5761086e614da3565b602002602001018181516108829190614d90565b90525050505060028a015460408051632938253d60e11b815290516001600160a01b0390921695506352704a7a94506004808201945060209350908290030181865afa1580156108d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fa9190614d61565b60e0850181905283516109109189918f91611f8d565b825160408401516109219190614d90565b60408401819052606084015190036109c85761093e8c60046120f0565b61095a8c84606001518560200151600001518660c0015161254c565b604080516000808252602082019092526001600160a01b038e16917fe271bc17472b20d803bff415104ad56a96ce7671d274aacd82ecb65616868a839160408051600080825260208201909252905060036040516109bb9493929190614ed5565b60405180910390a2610caa565b6109f6604051806040016040528085602001516000015181526020018560c00151815250846040015161270c565b610100850152610a0d8966470de4df820000614f10565b846101000151101580610a355750610a2c66470de4df8200008a614d90565b84610100015111155b15610a7d576101008401516040517f587ce34400000000000000000000000000000000000000000000000000000000815261014d918b91600401918252602082015260400190565b8560020160009054906101000a90046001600160a01b03166001600160a01b031663969c24526040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af69190614d61565b610b03846040015161272c565b11610bc957610b15836040015161272c565b8660020160009054906101000a90046001600160a01b03166001600160a01b031663969c24526040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8e9190614d61565b6040517f940f320a0000000000000000000000000000000000000000000000000000000081526004810192909252602482015260440161014d565b8460040160009054906101000a90046001600160a01b03166001600160a01b0316632be212608d8661010001518e8e6040518563ffffffff1660e01b8152600401610c3d94939291906001600160a01b03948516815260208101939093529083166040830152909116606082015260800190565b600060405180830381600087803b158015610c5757600080fd5b505af1158015610c6b573d6000803e3d6000fd5b5050506040808501516001600160a01b038f166000908152600989016020908152929020600201558401515160c0850151610caa925087918f916127c4565b825160208086019190915283015160408501819052610cc89061290f565b610cfe576040517ffa7e2d6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d1084602001518560a00151612964565b50610d1e84602001516129e7565b60608501526020840151670de0b6b3a764000090610d43906611c37937e08000614dd2565b610d4d9190614dff565b610140840152600286015460408051632938253d60e11b81529051670de0b6b3a7640000926001600160a01b0316916352704a7a9160048083019260209291908290030181865afa158015610da6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca9190614d61565b846101400151610dda9190614dd2565b610de49190614dff565b6101408401819052855460608601518651610e22936001600160a01b03909316928b929091610e139190614f10565b610e1d9190614d90565b6129fa565b610e3084606001518e612aa4565b610e44878560600151856101400151612aec565b83516020808601516060870151604080890151805194015190517f7335fe3ff0d234203ba5c8aac0cb19ed9bc9651b015ffcbcca39e73531b32e8d95610e8f95909493929091614f23565b60405180910390a160208085015160408087015180519084015182516080810184528b546001600160a01b03908116825260018d015481169682019690965260028c015486169381019390935260038b01549094166060830152610ef7938b93928a90612d02565b5050505050505050505050505050565b7fa36e81d885900cc3916b87a733476f04e310966a6d75bff720cbf6a9b4729e0154604080516381b7f1bf60e01b8152905160009260008051602061558a833981519152926001600160a01b03909116916381b7f1bf916004808201926020929091908290030181865afa158015610f83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa79190614d61565b8154604080516381b7f1bf60e01b815290516001600160a01b03909216916381b7f1bf916004808201926020929091908290030181865afa158015610ff0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110149190614d61565b61101e9190614f10565b91505090565b61102e8484612e10565b611036612fbd565b61103f84613088565b8060008051602061556a833981519152546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a0823190602401602060405180830381865afa158015611097573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bb9190614d61565b11156110f3576040517f823eed4900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b600060008051602061558a8339815191526001600160a01b03831615806111a057506040517f5dbe47e80000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152851690635dbe47e890602401602060405180830381865afa15801561117a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119e9190614f66565b155b8061122a57508060020160009054906101000a90046001600160a01b03166001600160a01b031663794e57246040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121f9190614d61565b61122884611f64565b105b1561123957600091505061135c565b6040517f765e01590000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301526000919086169063765e015990602401602060405180830381865afa15801561129c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c09190614f88565b90506001600160a01b038116158061135757508160020160009054906101000a90046001600160a01b03166001600160a01b031663794e57246040518163ffffffff1660e01b8152600401602060405180830381865afa158015611328573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134c9190614d61565b61135582611f64565b105b925050505b92915050565b60008051602061556a83398151915261137b60006130c2565b611384826133a0565b156110f35761139282613505565b600061139d83613544565b905060008060006113ad866137b7565b6001600160a01b03891660009081526009890160209081526040918290208251808401845260608082528184015281548451818502810185019095528085529699509497509295509193909184919083018282801561143557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611417575b50505091835250506001820180546040805160208084028201810190925282815292919083018282801561148857602002820191906000526020600020905b815481526020019060010190808311611474575b505050505060208201526000805160206155aa83398151915254604051635799186760e01b815273__$dd008e7fdb676c23adfd59cbc2bd3a4768$__916357991867916114e5916001600160a01b03169085908b90600401615033565b600060405180830381865af4158015611502573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261152a9190810190615180565b8051805191925061154091849160200190614c0f565b5060208082015180516115599260018601920190614c81565b506000836115678688614f10565b11611573576000611588565b8361157e8688614f10565b6115889190614d90565b905080836002015461159a9190614f10565b600284015583158015906115ac575080155b15611abb578383600201541115611904576000805160206155aa83398151915254604080517f969c245200000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163969c24529160048083019260209291908290030181865afa15801561162d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116519190614d61565b90506000611662856002015461272c565b905060006116708783614d90565b9050828110611724578686600201546116899190614d90565b600287015561171f8e60008051602061558a83398151915260020160009054906101000a90046001600160a01b03166001600160a01b031663108433b56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117199190614f88565b89613bd6565b6118fc565b60008387600201546117369190614d90565b90506117c98f60008051602061558a83398151915260020160009054906101000a90046001600160a01b03166001600160a01b031663108433b56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561179f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c39190614f88565b83613bd6565b8087600201546117d99190614d90565b60028801556000805160206155aa833981519152546040805163108433b560e01b815290516001600160a01b039092169163108433b5916004808201926020929091908290030181865afa158015611835573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118599190614f88565b6001600160a01b031663a9059cbb8e611872848c614d90565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156118d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f99190614f66565b50505b505050611abb565b60008360020154856119169190614d90565b6000805160206155aa833981519152546040805163108433b560e01b815290519293506119a1928f926001600160a01b03169163108433b59160048083019260209291908290030181865afa158015611973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119979190614f88565b8660020154613bd6565b600060028501558015611ab9576000805160206155aa833981519152546040805163108433b560e01b815290516001600160a01b039092169163108433b5916004808201926020929091908290030181865afa158015611a05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a299190614f88565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038c8116600483015260248201849052919091169063a9059cbb906044016020604051808303816000875af1158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab79190614f66565b505b505b60058801546040517f56869930000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b0390911690635686993090602401600060405180830381600087803b158015611b1c57600080fd5b505af1158015611b30573d6000803e3d6000fd5b50505050600283015415611b4c57611b4789613c8d565b611b57565b611b578960056120f0565b604051632a7ba1f760e01b8152600481018790526001600160a01b038b1690632a7ba1f790602401600060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050506000811115611c2e576040517f2b7c7b11000000000000000000000000000000000000000000000000000000008152600481018290526001600160a01b038c1690632b7c7b1190602401600060405180830381600087803b158015611c1557600080fd5b505af1158015611c29573d6000803e3d6000fd5b505050505b865160208801516040517f116426ae0000000000000000000000000000000000000000000000000000000081526001600160a01b038d169263116426ae92611c7892600401615227565b600060405180830381600087803b158015611c9257600080fd5b505af1158015611ca6573d6000803e3d6000fd5b5050604080516001600160a01b038d168152602081018990527f11883dbbc997d02c733f213f8862794f7634669925e006376cee371143442ca1935001905060405180910390a160028301546040516001600160a01b038b16917fe271bc17472b20d803bff415104ad56a96ce7671d274aacd82ecb65616868a8391611d3691908790600182019060009061524c565b60405180910390a25050505050505050505050565b606080600060008051602061556a83398151915281611d6986613544565b90506000806000611d79896137b7565b6001600160a01b038c16600090815260098901602090815260409182902082518084018452606080825281840152815484518185028101850190955280855296995094975092955091939091849190830182828015611e0157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611de3575b505050918352505060018201805460408051602080840282018101909252828152929190830182828015611e5457602002820191906000526020600020905b815481526020019060010190808311611e40575b505050505060208201526000805160206155aa83398151915254604051635799186760e01b815273__$dd008e7fdb676c23adfd59cbc2bd3a4768$__91635799186791611eb1916001600160a01b03169085908b90600401615033565b600060405180830381865af4158015611ece573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ef69190810190615180565b905083858360020154611f099190614f10565b611f139190614f10565b9750828811611f23576000611f2d565b611f2d8389614d90565b97508060000151816020015199509950505050505050505b9193909250565b6000818310611f5b5781611f5d565b825b9392505050565b600080600080611f7385611d4b565b925092509250611f84838383613e22565b95945050505050565b60008051602061556a8339815191526000670de0b6b3a7640000611fb8856611c37937e08000614dd2565b611fc29190614dff565b9050670de0b6b3a7640000611fd78483614dd2565b611fe19190614dff565b825460028401546040516323b872dd60e01b81526001600160a01b038a8116600483015291821660248201526044810184905292935016906323b872dd906064016020604051808303816000875af1158015612041573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120659190614f66565b5060028201546040517f524a91e40000000000000000000000000000000000000000000000000000000081526001600160a01b038781166004830152602482018490529091169063524a91e4906044015b600060405180830381600087803b1580156120d057600080fd5b505af11580156120e4573d6000803e3d6000fd5b50505050505050505050565b60008051602061556a83398151915261210a836000613e3b565b6001600160a01b0383166000908152600982016020908152604080832080546012860184528285206013870190945291842090939192915b8381101561223757600085828154811061215e5761215e614da3565b60009182526020808320909101546001600160a01b039081168084528783526040808520859055600189018452808520859055600289018452808520859055918d16845260098b018352818420818552600301835281842054600b8c01909352922054919250906121d0908290614d90565b6001600160a01b039283166000818152600b8b016020908152604080832094909455948d16815260098b01855282812091815260039091018452818120819055858452818120819055600186019093528220919091555061223081614db9565b9050612142565b506000600282015560408051808201909152606080825260208201526001600160a01b03881660009081526009870160205260409020600401805488919060ff1916600183600581111561228d5761228d614e9d565b021790555080516001600160a01b0389166000908152600988016020908152604090912082516122c293919290910190614c0f565b506020808201516001600160a01b038a1660009081526009890183526040902081516122f79360019092019290910190614c81565b506001600160a01b0388166000908152600987016020526040812060020155600a86015461232481613ebb565b6001600160a01b038916600090815260098801602052604081206004015461010090046fffffffffffffffffffffffffffffffff1690600a8901612369600185614d90565b8154811061237957612379614da3565b600091825260209091200154600a8a0180546001600160a01b03909216925082916fffffffffffffffffffffffffffffffff85169081106123bc576123bc614da3565b6000918252602080832091909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0394851617905591831680825260098c01835260409182902060040180547fffffffffffffffffffffffffffffff00000000000000000000000000000000ff166101006fffffffffffffffffffffffffffffffff8816908102919091179091558251918252928101929092527f5108b30b1c08360822e1bfe7a4169b885b0a62765e9d04592cac9933f3879e46910160405180910390a188600a01805480612494576124946152e8565b6000828152602090206000199082018101805473ffffffffffffffffffffffffffffffffffffffff191690550190556004898101546040517f29092d0e0000000000000000000000000000000000000000000000000000000081526001600160a01b038e8116938201939093529116906329092d0e90602401600060405180830381600087803b15801561252757600080fd5b505af115801561253b573d6000803e3d6000fd5b505050505050505050505050505050565b600060008051602061558a8339815191529050600060008051602061556a83398151915280546003820154604051632770a7eb60e21b81526001600160a01b039182166004820152602481018990529293501690639dc29fac90604401600060405180830381600087803b1580156125c357600080fd5b505af11580156125d7573d6000803e3d6000fd5b50508354604051632a7ba1f760e01b8152600481018990526001600160a01b039091169250632a7ba1f79150602401600060405180830381600087803b15801561262057600080fd5b505af1158015612634573d6000803e3d6000fd5b50505060028201546040517f9efc9e200000000000000000000000000000000000000000000000000000000081526001600160a01b039091169150639efc9e2090612687908990889088906004016152fe565b600060405180830381600087803b1580156126a157600080fd5b505af11580156126b5573d6000803e3d6000fd5b5050835460028401546040517fd0d8c20d0000000000000000000000000000000000000000000000000000000081526001600160a01b03928316945063d0d8c20d93506120b69290911690889088906004016152fe565b60008061271884613ef5565b90506127248184613fa6565b949350505050565b6000805160206155aa8339815191525460408051637d92c3bb60e01b8152905160009260008051602061558a833981519152926001600160a01b0390911691637d92c3bb916004808201926020929091908290030181865afa158015612796573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ba9190614d61565b611f5d9084614d90565b6127d18151835114613fd6565b6001600160a01b0383166000908152600985016020908152604091829020805483518184028101840190945280845261284f9387939092919083018282801561284357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612825575b5050505050848461400d565b6001600160a01b03831660009081526009850160209081526040909120835161287a92850190614c0f565b506001600160a01b0383166000908152600985016020908152604090912082516128ac92600190920191840190614c81565b506001600160a01b0383166000818152600986016020526040908190206002015490517fe271bc17472b20d803bff415104ad56a96ce7671d274aacd82ecb65616868a83916129019186908690600390614ed5565b60405180910390a250505050565b6000805b82515181101561295b578260200151818151811061293357612933614da3565b602002602001015160001461294b5750600192915050565b61295481614db9565b9050612913565b50600092915050565b600060008051602061556a8339815191528161297e6140f0565b9050600084612995670de0b6b3a764000088614dd2565b61299f9190614dff565b905060006129ae600283614dff565b6129b89084614f10565b90506129cc81670de0b6b3a7640000611f4c565b6017850181905590506129dd61414d565b9695505050505050565b600061135c6129f46141cf565b8361420d565b6040516370a0823160e01b81526001600160a01b0383811660048301528291908516906370a0823190602401602060405180830381865afa158015612a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a679190614d61565b1015612a9f576040517f8ce9632b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b80821115612ae8576040517f8b034b0a000000000000000000000000000000000000000000000000000000008152600481018390526024810182905260440161014d565b5050565b6000805160206155aa83398151915254604080517f3b798fb2000000000000000000000000000000000000000000000000000000008152905160008051602061558a8339815191529260008051602061556a83398151915292600092839283926001600160a01b0390911691633b798fb2916004808201926060929091908290030181865afa158015612b83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ba79190615332565b919450925090506000670de0b6b3a7640000612bc38986614dd2565b612bcd9190614dff565b9050612bdd816102cc898b614d90565b9050600087612bec838b614d90565b612bf69190614d90565b86546040516323b872dd60e01b81526001600160a01b038d811660048301528781166024830152604482018690529293509116906323b872dd906064016020604051808303816000875af1158015612c52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c769190614f66565b5085546040516323b872dd60e01b81526001600160a01b038c81166004830152858116602483015260448201849052909116906323b872dd906064016020604051808303816000875af1158015612cd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cf59190614f66565b5050505050505050505050565b8154604051632770a7eb60e21b81526001600160a01b0388811660048301526024820188905290911690639dc29fac90604401600060405180830381600087803b158015612d4f57600080fd5b505af1158015612d63573d6000803e3d6000fd5b50508251604051632a7ba1f760e01b8152600481018990526001600160a01b039091169250632a7ba1f79150602401600060405180830381600087803b158015612dac57600080fd5b505af1158015612dc0573d6000803e3d6000fd5b505082516040517f564a5c2e0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116925063564a5c2e91506120b6908990889088906004016152fe565b60008051602061558a833981519152600083612e34670de0b6b3a764000085614dd2565b612e3e9190614dff565b90508160020160009054906101000a90046001600160a01b03166001600160a01b0316637e95d6646040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eb99190614d61565b811015612f6a57600282015460408051631fa5759960e21b8152905183926001600160a01b031691637e95d6649160048083019260209291908290030181865afa158015612f0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f2f9190614d61565b6040517f2e4b16340000000000000000000000000000000000000000000000000000000081526004810192909252602482015260440161014d565b670de0b6b3a76400008111156110f3576040517fed2bc1ea00000000000000000000000000000000000000000000000000000000815260048101829052670de0b6b3a7640000602482015260440161014d565b6000805160206155aa8339815191525460408051631e5395c960e21b8152905160008051602061558a833981519152926001600160a01b03169163794e57249160048083019260209291908290030181865afa158015613021573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130459190614d61565b61304d614272565b1015613085576040517fcfdf376500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b80600003613085576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda3085460008051602061556a8339815191529060008051602061558a833981519152906000906131119042614d90565b90508380613123575082600701548110155b156110f357600783015415613394576002820154604080517f9d6aea0a00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691639d6aea0a91600480830192869291908290030181865afa158015613196573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131be9190810190615375565b60028401546040517fbf21ad9c0000000000000000000000000000000000000000000000000000000081529192506000916001600160a01b039091169063bf21ad9c9061320f9085906004016153aa565b600060405180830381865afa15801561322c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261325491908101906153bd565b905060005b82518110156133905781818151811061327457613274614da3565b602002602001015160001461338057600083828151811061329757613297614da3565b6020026020010151905060008760070154868585815181106132bb576132bb614da3565b60200260200101516132cd9190614dd2565b6132d79190614dff565b6132e990670de0b6b3a7640000614f10565b6001600160a01b038316600090815260118a016020526040902054909150670de0b6b3a76400009061331c908390614dd2565b6133269190614dff565b6001600160a01b038316600081815260118b01602090815260409182902084905581519283528201929092527f52e4f8484d40265d451853e623ddb061dc0c032aed194312dfdd5ff5f92e855a910160405180910390a150505b61338981614db9565b9050613259565b5050505b42600884015550505050565b6001600160a01b03811660009081527f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda309602052604081206004015460008051602061556a8339815191529060019060ff16600581111561340257613402614e9d565b146134105750600092915050565b6001600160a01b038316600090815260098201602090815260408083206012850183528184206013860190935290832090925b83548110156134f857600084828154811061346057613460614da3565b60009182526020808320909101546001600160a01b0316808352600e890182526040808420548884528185205460118c018552828620548986528387205460108e0187528488205460028d019097529390962054939650109311911182806134c55750815b806134cd5750805b156134e3575060019a9950505050505050505050565b50505050806134f190614db9565b9050613443565b5060009695505050505050565b61350e8161432c565b613085576040517f1103b9d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820190915260608082526020820152600060008051602061556a833981519152905060016001600160a01b038416600090815260098301602052604090206004015460ff16600581111561359f5761359f614e9d565b146135bf5760408051808201909152606080825260208201529392505050565b6001600160a01b038316600090815260098201602090815260408083208054825181850281018501909352808352919290919083018282801561362b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161360d575b50508351939450839250505067ffffffffffffffff81111561364f5761364f614e13565b604051908082528060200260200182016040528015613678578160200160208202803683370190505b50602085015281845260005b818110156137ae5760008382815181106136a0576136a0614da3565b6020908102919091018101516001600160a01b03808a1660009081526012890184526040808220928416825291845281812054600e8a0190945290812054919350906136ed908390614d90565b9050806000036137235760008860200151858151811061370f5761370f614da3565b60200260200101818152505050505061379e565b61372c83614396565b61373790600a6154d6565b6001600160a01b03808b16600090815260098a0160209081526040808320938816835260039093019052205461376e908390614dd2565b6137789190614dff565b8860200151858151811061378e5761378e614da3565b6020026020010181815250505050505b6137a781614db9565b9050613684565b50505050919050565b6001600160a01b03811660009081527f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda30960205260408120600401548190819060008051602061558a8339815191529060008051602061556a8339815191529060019060ff16600581111561382d5761382d614e9d565b146138445760008060009450945094505050611f45565b6001600160a01b038087166000908152600983016020908152604080832060028701548251637d92c3bb60e01b8152925191951692637d92c3bb92600480820193918290030181865afa15801561389f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138c39190614d61565b6001600160a01b03891660009081526009850160205260409020600201546138eb9190614d90565b6001600160a01b0389166000908152601385016020526040812091925090815b8454811015613ba6576139636040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600086838154811061397757613977614da3565b60009182526020808320909101546001600160a01b031680835286825260408084205480875282855260118d01909352909220549192506139b791614d90565b60208301819052158015906139cc5750815115155b15613a1b5781516020808401516001600160a01b0384166000908152600188019092526040822054919291613a019190614dd2565b613a0b9190614dff565b9050613a178187614f10565b9550505b6001600160a01b03808e16600090815260128a01602090815260408083209385168084526001909401825280832054868201819052938352600f8c01909152902054613a679190614d90565b606083019081526001600160a01b03808f16600090815260098b0160209081526040808320938616835260039093019052205460808401525115613aeb57613aae81614396565b613ab990600a6154d6565b82606001518360800151613acd9190614dd2565b613ad79190614dff565b60a08301819052613ae8908d614f10565b9b505b6001600160a01b03808e16600090815260128a0160209081526040808320938516808452600290940182528083205460c0870181905293835260108c01909152902054613b389190614d90565b60e08301819052600003613b4d575050613b96565b613b5681614396565b613b6190600a6154d6565b8260e001518360800151613b759190614dd2565b613b7f9190614dff565b6101008301819052613b91908b614f10565b995050505b613b9f81614db9565b905061390b565b508115613bc9576002810154613bbc8484614dd2565b613bc69190614dff565b97505b5050505050509193909250565b604051632a7ba1f760e01b8152600481018290526001600160a01b03841690632a7ba1f790602401600060405180830381600087803b158015613c1857600080fd5b505af1158015613c2c573d6000803e3d6000fd5b5050604051632770a7eb60e21b8152306004820152602481018490526001600160a01b0385169250639dc29fac91506044015b600060405180830381600087803b158015613c7957600080fd5b505af11580156100dc573d6000803e3d6000fd5b6001600160a01b03811660009081527f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda30960209081526040808320805482518185028101850190935280835260008051602061556a8339815191529493830182828015613d2257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613d04575b505050506001600160a01b038516600090815260138501602090815260408083206012880190925282209394509291505b8351811015613de7576000848281518110613d7057613d70614da3565b6020908102919091018101516001600160a01b03166000908152600e8801825260408082205486845281832055600f8901835280822054600187018452818320556010890183528082205460028701845281832055601189018352808220549287905290205550613de081614db9565b9050613d53565b506040514281527f9bfce77ba2b67b7b6e0b412ddd847887ab3f997cd47753fcf246242a8b33f14f9060200160405180910390a15050505050565b600080613e2f8585614403565b9050611f848184613fa6565b7f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda304546040517f38b1696b0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152831515602483015260008051602061556a8339815191529216906338b1696b90604401613c5f565b60018111613085576040517fe4d78f0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805160206155aa83398151915254815160208301516040517f617ddfff00000000000000000000000000000000000000000000000000000000815260009360008051602061558a833981519152936001600160a01b039091169263617ddfff92613f65929190600401615227565b602060405180830381865afa158015613f82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5d9190614d61565b600081600003613fb9575060001961135c565b81613fcc84670de0b6b3a7640000614dd2565b611f5d9190614dff565b80613085576040517f7db491eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518060e00160405280866001600160a01b031681526020018581526020018481526020018381526020018451815260200160008152602001600067ffffffffffffffff81111561406357614063614e13565b60405190808252806020026020018201604052801561408c578160200160208202803683370190505b50905280516001600160a01b031660009081527f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda3136020526040902090915060008051602061556a833981519152906140e58383836144af565b6100dc838383614640565b600060008051602061556a8339815191528161410a614833565b90506000614120670de0976e8a6017008361487f565b9050670de0b6b3a764000081846017015461413b9190614dd2565b6141459190614dff565b935050505090565b7f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda3185460008051602061556a83398151915290603c9061418c9042614d90565b106130855742601882018190556040519081527f860f8d2f0c74dd487e89e2883e3b25b8159ce1e1b3433a291cba7b82c508f3bc9060200160405180910390a150565b7f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda3175460009060008051602061556a8339815191529061101e90614906565b600080670de0b6b3a76400006142238486614dd2565b61422d9190614dff565b9050828110611f5d576040517fd6ffa059000000000000000000000000000000000000000000000000000000008152600481018490526024810182905260440161014d565b60008051602061558a8339815191528054604080517f896a008900000000000000000000000000000000000000000000000000000000815290516000939284926001600160a01b039091169163896a00899160048082019286929091908290030181865afa1580156142e8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261431091908101906154e2565b5091505061432581614320610f07565b613fa6565b9250505090565b6001600160a01b03811660009081527f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda309602052604081206004015460008051602061556a8339815191529060019060ff16600581111561438e5761438e614e9d565b149392505050565b6000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156143d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143fa9190615532565b60ff1692915050565b6000805160206155aa833981519152546040517f97a4b9f700000000000000000000000000000000000000000000000000000000815260009160008051602061558a833981519152916001600160a01b03909116906397a4b9f79061446e9087908790600401615227565b602060405180830381865afa15801561448b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127249190614d61565b6000805b8460200151518110156146395760008560800151831015806145215750856020015182815181106144e6576144e6614da3565b60200260200101516001600160a01b03168660400151848151811061450d5761450d614da3565b60200260200101516001600160a01b031614155b9050801561461c5760008660200151838151811061454157614541614da3565b6020908102919091018101516001600160a01b03808216600081815260018a01855260408082208290558c518416825260098c0180875281832084845260039081018852828420548f519096168452908752818320938352929092018552818120819055600b8b01909452909220549092506145be908290614d90565b6001600160a01b0383166000818152600b8a01602090815260409182902084905581519283528201929092527fd5630907014190fb9340da1cf427c96f094dabfbf73d25506e4b0cda9e3a4ca0910160405180910390a15050614628565b61462583614db9565b92505b5061463281614db9565b90506144b3565b5050505050565b614652836040015184606001516149af565b60c084015260005b83608001518110156148205760008460400151828151811061467e5761467e614da3565b6020026020010151905060006146b182876060015185815181106146a4576146a4614da3565b6020026020010151614a5f565b86516001600160a01b039081166000908152600988016020818152604080842088861680865260039182018452828620548e519097168652938352818520938552929092018152818320859055600b8a019052902054919250908290614718908390614d90565b6147229190614f10565b6001600160a01b0384166000908152600b8801602052604090205560c087015180518590811061475457614754614da3565b6020026020010151856001016000856001600160a01b03166001600160a01b03168152602001908152602001600020819055508660c00151848151811061479d5761479d614da3565b60200260200101518760a001516147b49190614f10565b60a08801526001600160a01b0383166000818152600b88016020908152604091829020548251938452908301527fd5630907014190fb9340da1cf427c96f094dabfbf73d25506e4b0cda9e3a4ca0910160405180910390a15050508061481990614db9565b905061465a565b508260a001518160020181905550505050565b7f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda3185460009060008051602061556a83398151915290603c906148759042614d90565b61101e9190614dff565b6000631f54050082111561489557631f54050091505b816000036148ac5750670de0b6b3a764000061135c565b670de0b6b3a764000083835b60018111156148fc576148cc600282615555565b156148de576148db8284614af9565b92505b6148e88283614af9565b91506148f5600282614dff565b90506148b8565b6129dd8284614af9565b6000805160206155aa8339815191525460408051631fa5759960e21b8152905160009260008051602061558a83398151915292611f5d9286926001600160a01b031691637e95d6649160048083019260209291908290030181865afa158015614973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149979190614d61565b6149a19190614f10565b670de0b6b3a7640000611f4c565b6000805160206155aa833981519152546040517fa055852300000000000000000000000000000000000000000000000000000000815260609160008051602061558a833981519152916001600160a01b039091169063a055852390614a1a9087908790600401615227565b600060405180830381865afa158015614a37573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261272491908101906153bd565b6001600160a01b03821660009081527f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda30d602052604081205460008051602061556a833981519152908203614ab557829150614af2565b6001600160a01b0384166000908152600d82016020908152604080832054600c850190925290912054614ae89085614dd2565b6127249190614dff565b5092915050565b600080614b068385614dd2565b9050670de0b6b3a7640000614ae86706f05b59d3b2000083614f10565b6040518061012001604052806000815260200160008152602001614b5a604051806040016040528060608152602001606081525090565b81526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806101a0016040528060008152602001614bba604051806040016040528060608152602001606081525090565b8152602001600081526020016000815260200160001515815260200160608152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b828054828255906000526020600020908101928215614c71579160200282015b82811115614c71578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190614c2f565b50614c7d929150614cbc565b5090565b828054828255906000526020600020908101928215614c71579160200282015b82811115614c71578251825591602001919060010190614ca1565b5b80821115614c7d5760008155600101614cbd565b6001600160a01b038116811461308557600080fd5b600080600080600080600060e0888a031215614d0157600080fd5b87359650602088013595506040880135614d1a81614cd1565b94506060880135614d2a81614cd1565b93506080880135614d3a81614cd1565b925060a0880135915060c0880135614d5181614cd1565b8091505092959891949750929550565b600060208284031215614d7357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561135c5761135c614d7a565b634e487b7160e01b600052603260045260246000fd5b600060018201614dcb57614dcb614d7a565b5060010190565b808202811582820484141761135c5761135c614d7a565b634e487b7160e01b600052601260045260246000fd5b600082614e0e57614e0e614de9565b500490565b634e487b7160e01b600052604160045260246000fd5b600081518084526020808501945080840160005b83811015614e625781516001600160a01b031687529582019590820190600101614e3d565b509495945050505050565b600081518084526020808501945080840160005b83811015614e6257815187529582019590820190600101614e81565b634e487b7160e01b600052602160045260246000fd5b60048110614ed157634e487b7160e01b600052602160045260246000fd5b9052565b848152608060208201526000614eee6080830186614e29565b8281036040840152614f008186614e6d565b915050611f846060830184614eb3565b8082018082111561135c5761135c614d7a565b85815284602082015283604082015260a060608201526000614f4860a0830185614e29565b8281036080840152614f5a8185614e6d565b98975050505050505050565b600060208284031215614f7857600080fd5b81518015158114611f5d57600080fd5b600060208284031215614f9a57600080fd5b8151611f5d81614cd1565b805160408084528151908401819052600091602091908201906060860190845b81811015614fea5783516001600160a01b031683529284019291840191600101614fc5565b50508483015186820387850152805180835290840192506000918401905b808310156150285783518252928401926001929092019190840190615008565b509695505050505050565b6001600160a01b03841681526060602082015260006150556060830185614fa5565b82810360408401526129dd8185614fa5565b604051601f8201601f1916810167ffffffffffffffff8111828210171561509057615090614e13565b604052919050565b600067ffffffffffffffff8211156150b2576150b2614e13565b5060051b60200190565b600082601f8301126150cd57600080fd5b815160206150e26150dd83615098565b615067565b82815260059290921b8401810191818101908684111561510157600080fd5b8286015b8481101561502857805161511881614cd1565b8352918301918301615105565b600082601f83011261513657600080fd5b815160206151466150dd83615098565b82815260059290921b8401810191818101908684111561516557600080fd5b8286015b848110156150285780518352918301918301615169565b60006020828403121561519257600080fd5b815167ffffffffffffffff808211156151aa57600080fd5b90830190604082860312156151be57600080fd5b6040516040810181811083821117156151d9576151d9614e13565b6040528251828111156151eb57600080fd5b6151f7878286016150bc565b82525060208301518281111561520c57600080fd5b61521887828601615125565b60208301525095945050505050565b60408152600061523a6040830185614e29565b8281036020840152611f848185614e6d565b600060808201868352602060808185015281875480845260a08601915060009350888452828420845b8281101561529a5781546001600160a01b031684529284019260019182019101615275565b50505084810360408601528654808252878452828420918301905b808510156152d4578254825260019485019490920191908301906152b5565b509350611f84925050506060830184614eb3565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b03841681526060602082015260006153206060830185614e29565b82810360408401526129dd8185614e6d565b60008060006060848603121561534757600080fd5b83519250602084015161535981614cd1565b604085015190925061536a81614cd1565b809150509250925092565b60006020828403121561538757600080fd5b815167ffffffffffffffff81111561539e57600080fd5b612724848285016150bc565b602081526000611f5d6020830184614e29565b6000602082840312156153cf57600080fd5b815167ffffffffffffffff8111156153e657600080fd5b61272484828501615125565b600181815b8085111561542d57816000190482111561541357615413614d7a565b8085161561542057918102915b93841c93908002906153f7565b509250929050565b6000826154445750600161135c565b816154515750600061135c565b816001811461546757600281146154715761548d565b600191505061135c565b60ff84111561548257615482614d7a565b50506001821b61135c565b5060208310610133831016604e8410600b84101617156154b0575081810a61135c565b6154ba83836153f2565b80600019048211156154ce576154ce614d7a565b029392505050565b6000611f5d8383615435565b6000806000606084860312156154f757600080fd5b8351925060208401519150604084015167ffffffffffffffff81111561551c57600080fd5b61552886828701615125565b9150509250925092565b60006020828403121561554457600080fd5b815160ff81168114611f5d57600080fd5b60008261556457615564614de9565b50069056fe7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda300a36e81d885900cc3916b87a733476f04e310966a6d75bff720cbf6a9b4729e00a36e81d885900cc3916b87a733476f04e310966a6d75bff720cbf6a9b4729e02a2646970667358221220a653a9015187a6cdfd33abeab1e2c3e3488d271c78d4f956ed9ed3d8d919c8e664736f6c63430008130033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80634333837214610030575b600080fd5b61004361003e366004614ce6565b610045565b005b61004d6100e5565b7fb2a9aed63fa8af5108cdad021c723bfc52a9ea2912c1b7914d775521e91caa00805474010000000000000000000000000000000000000000900460ff166100c1576040517f7089fb6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100d1888888888888883361015d565b506100dc6001600555565b50505050505050565b600260055403610156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600555565b60008051602061558a83398151915260008051602061556a833981519152610183614b23565b61018b610f07565b60a082018190526101a1908c908c908790611024565b60048201546101b9906001600160a01b03168a6110f9565b6101ef576040517fcecdb49200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8a815282546001840154610210916001600160a01b0390811691168b611362565b610218614b8a565b8360020160009054906101000a90046001600160a01b03166001600160a01b0316637d92c3bb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561026d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102919190614d61565b606082015261029f8a611d4b565b60208401516040850191825260c08501929092529190528251606083015191516102d1926102cc91614d90565b611f4c565b81526020810151515160006101608301819052905b80836101600151101561035257876001600160a01b03168360200151600001518461016001518151811061031c5761031c614da3565b60200260200101516001600160a01b03160361033b5760019150610352565b8261016001805161034b90614db9565b90526102e6565b81610389576040517f30b4bf1700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028601546040517fd98bb5b10000000000000000000000000000000000000000000000000000000081526001600160a01b038a811660048301529091169063d98bb5b190602401602060405180830381865afa1580156103ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104129190614d61565b60e084015260028601546040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152909116906341976e0990602401602060405180830381865afa15801561047c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a09190614d61565b61010084015260006104b18d611f64565b90508660020160009054906101000a90046001600160a01b03166001600160a01b031663794e57246040518163ffffffff1660e01b8152600401602060405180830381865afa158015610508573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052c9190614d61565b8110156105dd57600287015460408051631e5395c960e21b8152905183926001600160a01b03169163794e57249160048083019260209291908290030181865afa15801561057e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a29190614d61565b6040517f80575fc70000000000000000000000000000000000000000000000000000000081526004810192909252602482015260440161014d565b6002870154604080517f5733d58f00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691635733d58f9160048083019260209291908290030181865afa158015610642573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106669190614d61565b905060008183101561069257670de0b6b3a76400006106858484614d90565b61068f9190614dd2565b90505b6000670de0b6b3a76400008760e0015110156106c25760e08701516106bf90670de0b6b3a7640000614d90565b90505b60006106de670de0b6b3a764000067058d15e176280000614dd2565b6106e88385614dd2565b6106f29190614dff565b90508060000361072e576040517f2520b03d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8567ffffffffffffffff81111561074757610747614e13565b604051908082528060200260200182016040528015610770578160200160208202803683370190505b506020808a015101526000670de0b6b3a764000061078e8382614d90565b8a610100015161079e9190614dd2565b6107a89190614dff565b9050670de0b6b3a7640000818a60c001518b6101600151815181106107cf576107cf614da3565b60200260200101516107e19190614dd2565b6107eb9190614dff565b6101208a0181905289516107ff9190611f4c565b808a52600090829061081a90670de0b6b3a764000090614dd2565b6108249190614dff565b9050808a60200151602001518b61016001518151811061084657610846614da3565b602002602001018181525050808a60c001518b61016001518151811061086e5761086e614da3565b602002602001018181516108829190614d90565b90525050505060028a015460408051632938253d60e11b815290516001600160a01b0390921695506352704a7a94506004808201945060209350908290030181865afa1580156108d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fa9190614d61565b60e0850181905283516109109189918f91611f8d565b825160408401516109219190614d90565b60408401819052606084015190036109c85761093e8c60046120f0565b61095a8c84606001518560200151600001518660c0015161254c565b604080516000808252602082019092526001600160a01b038e16917fe271bc17472b20d803bff415104ad56a96ce7671d274aacd82ecb65616868a839160408051600080825260208201909252905060036040516109bb9493929190614ed5565b60405180910390a2610caa565b6109f6604051806040016040528085602001516000015181526020018560c00151815250846040015161270c565b610100850152610a0d8966470de4df820000614f10565b846101000151101580610a355750610a2c66470de4df8200008a614d90565b84610100015111155b15610a7d576101008401516040517f587ce34400000000000000000000000000000000000000000000000000000000815261014d918b91600401918252602082015260400190565b8560020160009054906101000a90046001600160a01b03166001600160a01b031663969c24526040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af69190614d61565b610b03846040015161272c565b11610bc957610b15836040015161272c565b8660020160009054906101000a90046001600160a01b03166001600160a01b031663969c24526040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8e9190614d61565b6040517f940f320a0000000000000000000000000000000000000000000000000000000081526004810192909252602482015260440161014d565b8460040160009054906101000a90046001600160a01b03166001600160a01b0316632be212608d8661010001518e8e6040518563ffffffff1660e01b8152600401610c3d94939291906001600160a01b03948516815260208101939093529083166040830152909116606082015260800190565b600060405180830381600087803b158015610c5757600080fd5b505af1158015610c6b573d6000803e3d6000fd5b5050506040808501516001600160a01b038f166000908152600989016020908152929020600201558401515160c0850151610caa925087918f916127c4565b825160208086019190915283015160408501819052610cc89061290f565b610cfe576040517ffa7e2d6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d1084602001518560a00151612964565b50610d1e84602001516129e7565b60608501526020840151670de0b6b3a764000090610d43906611c37937e08000614dd2565b610d4d9190614dff565b610140840152600286015460408051632938253d60e11b81529051670de0b6b3a7640000926001600160a01b0316916352704a7a9160048083019260209291908290030181865afa158015610da6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca9190614d61565b846101400151610dda9190614dd2565b610de49190614dff565b6101408401819052855460608601518651610e22936001600160a01b03909316928b929091610e139190614f10565b610e1d9190614d90565b6129fa565b610e3084606001518e612aa4565b610e44878560600151856101400151612aec565b83516020808601516060870151604080890151805194015190517f7335fe3ff0d234203ba5c8aac0cb19ed9bc9651b015ffcbcca39e73531b32e8d95610e8f95909493929091614f23565b60405180910390a160208085015160408087015180519084015182516080810184528b546001600160a01b03908116825260018d015481169682019690965260028c015486169381019390935260038b01549094166060830152610ef7938b93928a90612d02565b5050505050505050505050505050565b7fa36e81d885900cc3916b87a733476f04e310966a6d75bff720cbf6a9b4729e0154604080516381b7f1bf60e01b8152905160009260008051602061558a833981519152926001600160a01b03909116916381b7f1bf916004808201926020929091908290030181865afa158015610f83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa79190614d61565b8154604080516381b7f1bf60e01b815290516001600160a01b03909216916381b7f1bf916004808201926020929091908290030181865afa158015610ff0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110149190614d61565b61101e9190614f10565b91505090565b61102e8484612e10565b611036612fbd565b61103f84613088565b8060008051602061556a833981519152546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a0823190602401602060405180830381865afa158015611097573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bb9190614d61565b11156110f3576040517f823eed4900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b600060008051602061558a8339815191526001600160a01b03831615806111a057506040517f5dbe47e80000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152851690635dbe47e890602401602060405180830381865afa15801561117a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119e9190614f66565b155b8061122a57508060020160009054906101000a90046001600160a01b03166001600160a01b031663794e57246040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121f9190614d61565b61122884611f64565b105b1561123957600091505061135c565b6040517f765e01590000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301526000919086169063765e015990602401602060405180830381865afa15801561129c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c09190614f88565b90506001600160a01b038116158061135757508160020160009054906101000a90046001600160a01b03166001600160a01b031663794e57246040518163ffffffff1660e01b8152600401602060405180830381865afa158015611328573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134c9190614d61565b61135582611f64565b105b925050505b92915050565b60008051602061556a83398151915261137b60006130c2565b611384826133a0565b156110f35761139282613505565b600061139d83613544565b905060008060006113ad866137b7565b6001600160a01b03891660009081526009890160209081526040918290208251808401845260608082528184015281548451818502810185019095528085529699509497509295509193909184919083018282801561143557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611417575b50505091835250506001820180546040805160208084028201810190925282815292919083018282801561148857602002820191906000526020600020905b815481526020019060010190808311611474575b505050505060208201526000805160206155aa83398151915254604051635799186760e01b815273__$dd008e7fdb676c23adfd59cbc2bd3a4768$__916357991867916114e5916001600160a01b03169085908b90600401615033565b600060405180830381865af4158015611502573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261152a9190810190615180565b8051805191925061154091849160200190614c0f565b5060208082015180516115599260018601920190614c81565b506000836115678688614f10565b11611573576000611588565b8361157e8688614f10565b6115889190614d90565b905080836002015461159a9190614f10565b600284015583158015906115ac575080155b15611abb578383600201541115611904576000805160206155aa83398151915254604080517f969c245200000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163969c24529160048083019260209291908290030181865afa15801561162d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116519190614d61565b90506000611662856002015461272c565b905060006116708783614d90565b9050828110611724578686600201546116899190614d90565b600287015561171f8e60008051602061558a83398151915260020160009054906101000a90046001600160a01b03166001600160a01b031663108433b56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117199190614f88565b89613bd6565b6118fc565b60008387600201546117369190614d90565b90506117c98f60008051602061558a83398151915260020160009054906101000a90046001600160a01b03166001600160a01b031663108433b56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561179f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c39190614f88565b83613bd6565b8087600201546117d99190614d90565b60028801556000805160206155aa833981519152546040805163108433b560e01b815290516001600160a01b039092169163108433b5916004808201926020929091908290030181865afa158015611835573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118599190614f88565b6001600160a01b031663a9059cbb8e611872848c614d90565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156118d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f99190614f66565b50505b505050611abb565b60008360020154856119169190614d90565b6000805160206155aa833981519152546040805163108433b560e01b815290519293506119a1928f926001600160a01b03169163108433b59160048083019260209291908290030181865afa158015611973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119979190614f88565b8660020154613bd6565b600060028501558015611ab9576000805160206155aa833981519152546040805163108433b560e01b815290516001600160a01b039092169163108433b5916004808201926020929091908290030181865afa158015611a05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a299190614f88565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038c8116600483015260248201849052919091169063a9059cbb906044016020604051808303816000875af1158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab79190614f66565b505b505b60058801546040517f56869930000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b0390911690635686993090602401600060405180830381600087803b158015611b1c57600080fd5b505af1158015611b30573d6000803e3d6000fd5b50505050600283015415611b4c57611b4789613c8d565b611b57565b611b578960056120f0565b604051632a7ba1f760e01b8152600481018790526001600160a01b038b1690632a7ba1f790602401600060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050506000811115611c2e576040517f2b7c7b11000000000000000000000000000000000000000000000000000000008152600481018290526001600160a01b038c1690632b7c7b1190602401600060405180830381600087803b158015611c1557600080fd5b505af1158015611c29573d6000803e3d6000fd5b505050505b865160208801516040517f116426ae0000000000000000000000000000000000000000000000000000000081526001600160a01b038d169263116426ae92611c7892600401615227565b600060405180830381600087803b158015611c9257600080fd5b505af1158015611ca6573d6000803e3d6000fd5b5050604080516001600160a01b038d168152602081018990527f11883dbbc997d02c733f213f8862794f7634669925e006376cee371143442ca1935001905060405180910390a160028301546040516001600160a01b038b16917fe271bc17472b20d803bff415104ad56a96ce7671d274aacd82ecb65616868a8391611d3691908790600182019060009061524c565b60405180910390a25050505050505050505050565b606080600060008051602061556a83398151915281611d6986613544565b90506000806000611d79896137b7565b6001600160a01b038c16600090815260098901602090815260409182902082518084018452606080825281840152815484518185028101850190955280855296995094975092955091939091849190830182828015611e0157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611de3575b505050918352505060018201805460408051602080840282018101909252828152929190830182828015611e5457602002820191906000526020600020905b815481526020019060010190808311611e40575b505050505060208201526000805160206155aa83398151915254604051635799186760e01b815273__$dd008e7fdb676c23adfd59cbc2bd3a4768$__91635799186791611eb1916001600160a01b03169085908b90600401615033565b600060405180830381865af4158015611ece573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ef69190810190615180565b905083858360020154611f099190614f10565b611f139190614f10565b9750828811611f23576000611f2d565b611f2d8389614d90565b97508060000151816020015199509950505050505050505b9193909250565b6000818310611f5b5781611f5d565b825b9392505050565b600080600080611f7385611d4b565b925092509250611f84838383613e22565b95945050505050565b60008051602061556a8339815191526000670de0b6b3a7640000611fb8856611c37937e08000614dd2565b611fc29190614dff565b9050670de0b6b3a7640000611fd78483614dd2565b611fe19190614dff565b825460028401546040516323b872dd60e01b81526001600160a01b038a8116600483015291821660248201526044810184905292935016906323b872dd906064016020604051808303816000875af1158015612041573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120659190614f66565b5060028201546040517f524a91e40000000000000000000000000000000000000000000000000000000081526001600160a01b038781166004830152602482018490529091169063524a91e4906044015b600060405180830381600087803b1580156120d057600080fd5b505af11580156120e4573d6000803e3d6000fd5b50505050505050505050565b60008051602061556a83398151915261210a836000613e3b565b6001600160a01b0383166000908152600982016020908152604080832080546012860184528285206013870190945291842090939192915b8381101561223757600085828154811061215e5761215e614da3565b60009182526020808320909101546001600160a01b039081168084528783526040808520859055600189018452808520859055600289018452808520859055918d16845260098b018352818420818552600301835281842054600b8c01909352922054919250906121d0908290614d90565b6001600160a01b039283166000818152600b8b016020908152604080832094909455948d16815260098b01855282812091815260039091018452818120819055858452818120819055600186019093528220919091555061223081614db9565b9050612142565b506000600282015560408051808201909152606080825260208201526001600160a01b03881660009081526009870160205260409020600401805488919060ff1916600183600581111561228d5761228d614e9d565b021790555080516001600160a01b0389166000908152600988016020908152604090912082516122c293919290910190614c0f565b506020808201516001600160a01b038a1660009081526009890183526040902081516122f79360019092019290910190614c81565b506001600160a01b0388166000908152600987016020526040812060020155600a86015461232481613ebb565b6001600160a01b038916600090815260098801602052604081206004015461010090046fffffffffffffffffffffffffffffffff1690600a8901612369600185614d90565b8154811061237957612379614da3565b600091825260209091200154600a8a0180546001600160a01b03909216925082916fffffffffffffffffffffffffffffffff85169081106123bc576123bc614da3565b6000918252602080832091909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0394851617905591831680825260098c01835260409182902060040180547fffffffffffffffffffffffffffffff00000000000000000000000000000000ff166101006fffffffffffffffffffffffffffffffff8816908102919091179091558251918252928101929092527f5108b30b1c08360822e1bfe7a4169b885b0a62765e9d04592cac9933f3879e46910160405180910390a188600a01805480612494576124946152e8565b6000828152602090206000199082018101805473ffffffffffffffffffffffffffffffffffffffff191690550190556004898101546040517f29092d0e0000000000000000000000000000000000000000000000000000000081526001600160a01b038e8116938201939093529116906329092d0e90602401600060405180830381600087803b15801561252757600080fd5b505af115801561253b573d6000803e3d6000fd5b505050505050505050505050505050565b600060008051602061558a8339815191529050600060008051602061556a83398151915280546003820154604051632770a7eb60e21b81526001600160a01b039182166004820152602481018990529293501690639dc29fac90604401600060405180830381600087803b1580156125c357600080fd5b505af11580156125d7573d6000803e3d6000fd5b50508354604051632a7ba1f760e01b8152600481018990526001600160a01b039091169250632a7ba1f79150602401600060405180830381600087803b15801561262057600080fd5b505af1158015612634573d6000803e3d6000fd5b50505060028201546040517f9efc9e200000000000000000000000000000000000000000000000000000000081526001600160a01b039091169150639efc9e2090612687908990889088906004016152fe565b600060405180830381600087803b1580156126a157600080fd5b505af11580156126b5573d6000803e3d6000fd5b5050835460028401546040517fd0d8c20d0000000000000000000000000000000000000000000000000000000081526001600160a01b03928316945063d0d8c20d93506120b69290911690889088906004016152fe565b60008061271884613ef5565b90506127248184613fa6565b949350505050565b6000805160206155aa8339815191525460408051637d92c3bb60e01b8152905160009260008051602061558a833981519152926001600160a01b0390911691637d92c3bb916004808201926020929091908290030181865afa158015612796573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ba9190614d61565b611f5d9084614d90565b6127d18151835114613fd6565b6001600160a01b0383166000908152600985016020908152604091829020805483518184028101840190945280845261284f9387939092919083018282801561284357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612825575b5050505050848461400d565b6001600160a01b03831660009081526009850160209081526040909120835161287a92850190614c0f565b506001600160a01b0383166000908152600985016020908152604090912082516128ac92600190920191840190614c81565b506001600160a01b0383166000818152600986016020526040908190206002015490517fe271bc17472b20d803bff415104ad56a96ce7671d274aacd82ecb65616868a83916129019186908690600390614ed5565b60405180910390a250505050565b6000805b82515181101561295b578260200151818151811061293357612933614da3565b602002602001015160001461294b5750600192915050565b61295481614db9565b9050612913565b50600092915050565b600060008051602061556a8339815191528161297e6140f0565b9050600084612995670de0b6b3a764000088614dd2565b61299f9190614dff565b905060006129ae600283614dff565b6129b89084614f10565b90506129cc81670de0b6b3a7640000611f4c565b6017850181905590506129dd61414d565b9695505050505050565b600061135c6129f46141cf565b8361420d565b6040516370a0823160e01b81526001600160a01b0383811660048301528291908516906370a0823190602401602060405180830381865afa158015612a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a679190614d61565b1015612a9f576040517f8ce9632b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b80821115612ae8576040517f8b034b0a000000000000000000000000000000000000000000000000000000008152600481018390526024810182905260440161014d565b5050565b6000805160206155aa83398151915254604080517f3b798fb2000000000000000000000000000000000000000000000000000000008152905160008051602061558a8339815191529260008051602061556a83398151915292600092839283926001600160a01b0390911691633b798fb2916004808201926060929091908290030181865afa158015612b83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ba79190615332565b919450925090506000670de0b6b3a7640000612bc38986614dd2565b612bcd9190614dff565b9050612bdd816102cc898b614d90565b9050600087612bec838b614d90565b612bf69190614d90565b86546040516323b872dd60e01b81526001600160a01b038d811660048301528781166024830152604482018690529293509116906323b872dd906064016020604051808303816000875af1158015612c52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c769190614f66565b5085546040516323b872dd60e01b81526001600160a01b038c81166004830152858116602483015260448201849052909116906323b872dd906064016020604051808303816000875af1158015612cd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cf59190614f66565b5050505050505050505050565b8154604051632770a7eb60e21b81526001600160a01b0388811660048301526024820188905290911690639dc29fac90604401600060405180830381600087803b158015612d4f57600080fd5b505af1158015612d63573d6000803e3d6000fd5b50508251604051632a7ba1f760e01b8152600481018990526001600160a01b039091169250632a7ba1f79150602401600060405180830381600087803b158015612dac57600080fd5b505af1158015612dc0573d6000803e3d6000fd5b505082516040517f564a5c2e0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116925063564a5c2e91506120b6908990889088906004016152fe565b60008051602061558a833981519152600083612e34670de0b6b3a764000085614dd2565b612e3e9190614dff565b90508160020160009054906101000a90046001600160a01b03166001600160a01b0316637e95d6646040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eb99190614d61565b811015612f6a57600282015460408051631fa5759960e21b8152905183926001600160a01b031691637e95d6649160048083019260209291908290030181865afa158015612f0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f2f9190614d61565b6040517f2e4b16340000000000000000000000000000000000000000000000000000000081526004810192909252602482015260440161014d565b670de0b6b3a76400008111156110f3576040517fed2bc1ea00000000000000000000000000000000000000000000000000000000815260048101829052670de0b6b3a7640000602482015260440161014d565b6000805160206155aa8339815191525460408051631e5395c960e21b8152905160008051602061558a833981519152926001600160a01b03169163794e57249160048083019260209291908290030181865afa158015613021573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130459190614d61565b61304d614272565b1015613085576040517fcfdf376500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b80600003613085576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda3085460008051602061556a8339815191529060008051602061558a833981519152906000906131119042614d90565b90508380613123575082600701548110155b156110f357600783015415613394576002820154604080517f9d6aea0a00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691639d6aea0a91600480830192869291908290030181865afa158015613196573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131be9190810190615375565b60028401546040517fbf21ad9c0000000000000000000000000000000000000000000000000000000081529192506000916001600160a01b039091169063bf21ad9c9061320f9085906004016153aa565b600060405180830381865afa15801561322c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261325491908101906153bd565b905060005b82518110156133905781818151811061327457613274614da3565b602002602001015160001461338057600083828151811061329757613297614da3565b6020026020010151905060008760070154868585815181106132bb576132bb614da3565b60200260200101516132cd9190614dd2565b6132d79190614dff565b6132e990670de0b6b3a7640000614f10565b6001600160a01b038316600090815260118a016020526040902054909150670de0b6b3a76400009061331c908390614dd2565b6133269190614dff565b6001600160a01b038316600081815260118b01602090815260409182902084905581519283528201929092527f52e4f8484d40265d451853e623ddb061dc0c032aed194312dfdd5ff5f92e855a910160405180910390a150505b61338981614db9565b9050613259565b5050505b42600884015550505050565b6001600160a01b03811660009081527f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda309602052604081206004015460008051602061556a8339815191529060019060ff16600581111561340257613402614e9d565b146134105750600092915050565b6001600160a01b038316600090815260098201602090815260408083206012850183528184206013860190935290832090925b83548110156134f857600084828154811061346057613460614da3565b60009182526020808320909101546001600160a01b0316808352600e890182526040808420548884528185205460118c018552828620548986528387205460108e0187528488205460028d019097529390962054939650109311911182806134c55750815b806134cd5750805b156134e3575060019a9950505050505050505050565b50505050806134f190614db9565b9050613443565b5060009695505050505050565b61350e8161432c565b613085576040517f1103b9d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820190915260608082526020820152600060008051602061556a833981519152905060016001600160a01b038416600090815260098301602052604090206004015460ff16600581111561359f5761359f614e9d565b146135bf5760408051808201909152606080825260208201529392505050565b6001600160a01b038316600090815260098201602090815260408083208054825181850281018501909352808352919290919083018282801561362b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161360d575b50508351939450839250505067ffffffffffffffff81111561364f5761364f614e13565b604051908082528060200260200182016040528015613678578160200160208202803683370190505b50602085015281845260005b818110156137ae5760008382815181106136a0576136a0614da3565b6020908102919091018101516001600160a01b03808a1660009081526012890184526040808220928416825291845281812054600e8a0190945290812054919350906136ed908390614d90565b9050806000036137235760008860200151858151811061370f5761370f614da3565b60200260200101818152505050505061379e565b61372c83614396565b61373790600a6154d6565b6001600160a01b03808b16600090815260098a0160209081526040808320938816835260039093019052205461376e908390614dd2565b6137789190614dff565b8860200151858151811061378e5761378e614da3565b6020026020010181815250505050505b6137a781614db9565b9050613684565b50505050919050565b6001600160a01b03811660009081527f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda30960205260408120600401548190819060008051602061558a8339815191529060008051602061556a8339815191529060019060ff16600581111561382d5761382d614e9d565b146138445760008060009450945094505050611f45565b6001600160a01b038087166000908152600983016020908152604080832060028701548251637d92c3bb60e01b8152925191951692637d92c3bb92600480820193918290030181865afa15801561389f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138c39190614d61565b6001600160a01b03891660009081526009850160205260409020600201546138eb9190614d90565b6001600160a01b0389166000908152601385016020526040812091925090815b8454811015613ba6576139636040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600086838154811061397757613977614da3565b60009182526020808320909101546001600160a01b031680835286825260408084205480875282855260118d01909352909220549192506139b791614d90565b60208301819052158015906139cc5750815115155b15613a1b5781516020808401516001600160a01b0384166000908152600188019092526040822054919291613a019190614dd2565b613a0b9190614dff565b9050613a178187614f10565b9550505b6001600160a01b03808e16600090815260128a01602090815260408083209385168084526001909401825280832054868201819052938352600f8c01909152902054613a679190614d90565b606083019081526001600160a01b03808f16600090815260098b0160209081526040808320938616835260039093019052205460808401525115613aeb57613aae81614396565b613ab990600a6154d6565b82606001518360800151613acd9190614dd2565b613ad79190614dff565b60a08301819052613ae8908d614f10565b9b505b6001600160a01b03808e16600090815260128a0160209081526040808320938516808452600290940182528083205460c0870181905293835260108c01909152902054613b389190614d90565b60e08301819052600003613b4d575050613b96565b613b5681614396565b613b6190600a6154d6565b8260e001518360800151613b759190614dd2565b613b7f9190614dff565b6101008301819052613b91908b614f10565b995050505b613b9f81614db9565b905061390b565b508115613bc9576002810154613bbc8484614dd2565b613bc69190614dff565b97505b5050505050509193909250565b604051632a7ba1f760e01b8152600481018290526001600160a01b03841690632a7ba1f790602401600060405180830381600087803b158015613c1857600080fd5b505af1158015613c2c573d6000803e3d6000fd5b5050604051632770a7eb60e21b8152306004820152602481018490526001600160a01b0385169250639dc29fac91506044015b600060405180830381600087803b158015613c7957600080fd5b505af11580156100dc573d6000803e3d6000fd5b6001600160a01b03811660009081527f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda30960209081526040808320805482518185028101850190935280835260008051602061556a8339815191529493830182828015613d2257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613d04575b505050506001600160a01b038516600090815260138501602090815260408083206012880190925282209394509291505b8351811015613de7576000848281518110613d7057613d70614da3565b6020908102919091018101516001600160a01b03166000908152600e8801825260408082205486845281832055600f8901835280822054600187018452818320556010890183528082205460028701845281832055601189018352808220549287905290205550613de081614db9565b9050613d53565b506040514281527f9bfce77ba2b67b7b6e0b412ddd847887ab3f997cd47753fcf246242a8b33f14f9060200160405180910390a15050505050565b600080613e2f8585614403565b9050611f848184613fa6565b7f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda304546040517f38b1696b0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152831515602483015260008051602061556a8339815191529216906338b1696b90604401613c5f565b60018111613085576040517fe4d78f0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805160206155aa83398151915254815160208301516040517f617ddfff00000000000000000000000000000000000000000000000000000000815260009360008051602061558a833981519152936001600160a01b039091169263617ddfff92613f65929190600401615227565b602060405180830381865afa158015613f82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5d9190614d61565b600081600003613fb9575060001961135c565b81613fcc84670de0b6b3a7640000614dd2565b611f5d9190614dff565b80613085576040517f7db491eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518060e00160405280866001600160a01b031681526020018581526020018481526020018381526020018451815260200160008152602001600067ffffffffffffffff81111561406357614063614e13565b60405190808252806020026020018201604052801561408c578160200160208202803683370190505b50905280516001600160a01b031660009081527f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda3136020526040902090915060008051602061556a833981519152906140e58383836144af565b6100dc838383614640565b600060008051602061556a8339815191528161410a614833565b90506000614120670de0976e8a6017008361487f565b9050670de0b6b3a764000081846017015461413b9190614dd2565b6141459190614dff565b935050505090565b7f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda3185460008051602061556a83398151915290603c9061418c9042614d90565b106130855742601882018190556040519081527f860f8d2f0c74dd487e89e2883e3b25b8159ce1e1b3433a291cba7b82c508f3bc9060200160405180910390a150565b7f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda3175460009060008051602061556a8339815191529061101e90614906565b600080670de0b6b3a76400006142238486614dd2565b61422d9190614dff565b9050828110611f5d576040517fd6ffa059000000000000000000000000000000000000000000000000000000008152600481018490526024810182905260440161014d565b60008051602061558a8339815191528054604080517f896a008900000000000000000000000000000000000000000000000000000000815290516000939284926001600160a01b039091169163896a00899160048082019286929091908290030181865afa1580156142e8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261431091908101906154e2565b5091505061432581614320610f07565b613fa6565b9250505090565b6001600160a01b03811660009081527f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda309602052604081206004015460008051602061556a8339815191529060019060ff16600581111561438e5761438e614e9d565b149392505050565b6000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156143d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143fa9190615532565b60ff1692915050565b6000805160206155aa833981519152546040517f97a4b9f700000000000000000000000000000000000000000000000000000000815260009160008051602061558a833981519152916001600160a01b03909116906397a4b9f79061446e9087908790600401615227565b602060405180830381865afa15801561448b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127249190614d61565b6000805b8460200151518110156146395760008560800151831015806145215750856020015182815181106144e6576144e6614da3565b60200260200101516001600160a01b03168660400151848151811061450d5761450d614da3565b60200260200101516001600160a01b031614155b9050801561461c5760008660200151838151811061454157614541614da3565b6020908102919091018101516001600160a01b03808216600081815260018a01855260408082208290558c518416825260098c0180875281832084845260039081018852828420548f519096168452908752818320938352929092018552818120819055600b8b01909452909220549092506145be908290614d90565b6001600160a01b0383166000818152600b8a01602090815260409182902084905581519283528201929092527fd5630907014190fb9340da1cf427c96f094dabfbf73d25506e4b0cda9e3a4ca0910160405180910390a15050614628565b61462583614db9565b92505b5061463281614db9565b90506144b3565b5050505050565b614652836040015184606001516149af565b60c084015260005b83608001518110156148205760008460400151828151811061467e5761467e614da3565b6020026020010151905060006146b182876060015185815181106146a4576146a4614da3565b6020026020010151614a5f565b86516001600160a01b039081166000908152600988016020818152604080842088861680865260039182018452828620548e519097168652938352818520938552929092018152818320859055600b8a019052902054919250908290614718908390614d90565b6147229190614f10565b6001600160a01b0384166000908152600b8801602052604090205560c087015180518590811061475457614754614da3565b6020026020010151856001016000856001600160a01b03166001600160a01b03168152602001908152602001600020819055508660c00151848151811061479d5761479d614da3565b60200260200101518760a001516147b49190614f10565b60a08801526001600160a01b0383166000818152600b88016020908152604091829020548251938452908301527fd5630907014190fb9340da1cf427c96f094dabfbf73d25506e4b0cda9e3a4ca0910160405180910390a15050508061481990614db9565b905061465a565b508260a001518160020181905550505050565b7f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda3185460009060008051602061556a83398151915290603c906148759042614d90565b61101e9190614dff565b6000631f54050082111561489557631f54050091505b816000036148ac5750670de0b6b3a764000061135c565b670de0b6b3a764000083835b60018111156148fc576148cc600282615555565b156148de576148db8284614af9565b92505b6148e88283614af9565b91506148f5600282614dff565b90506148b8565b6129dd8284614af9565b6000805160206155aa8339815191525460408051631fa5759960e21b8152905160009260008051602061558a83398151915292611f5d9286926001600160a01b031691637e95d6649160048083019260209291908290030181865afa158015614973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149979190614d61565b6149a19190614f10565b670de0b6b3a7640000611f4c565b6000805160206155aa833981519152546040517fa055852300000000000000000000000000000000000000000000000000000000815260609160008051602061558a833981519152916001600160a01b039091169063a055852390614a1a9087908790600401615227565b600060405180830381865afa158015614a37573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261272491908101906153bd565b6001600160a01b03821660009081527f7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda30d602052604081205460008051602061556a833981519152908203614ab557829150614af2565b6001600160a01b0384166000908152600d82016020908152604080832054600c850190925290912054614ae89085614dd2565b6127249190614dff565b5092915050565b600080614b068385614dd2565b9050670de0b6b3a7640000614ae86706f05b59d3b2000083614f10565b6040518061012001604052806000815260200160008152602001614b5a604051806040016040528060608152602001606081525090565b81526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806101a0016040528060008152602001614bba604051806040016040528060608152602001606081525090565b8152602001600081526020016000815260200160001515815260200160608152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b828054828255906000526020600020908101928215614c71579160200282015b82811115614c71578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190614c2f565b50614c7d929150614cbc565b5090565b828054828255906000526020600020908101928215614c71579160200282015b82811115614c71578251825591602001919060010190614ca1565b5b80821115614c7d5760008155600101614cbd565b6001600160a01b038116811461308557600080fd5b600080600080600080600060e0888a031215614d0157600080fd5b87359650602088013595506040880135614d1a81614cd1565b94506060880135614d2a81614cd1565b93506080880135614d3a81614cd1565b925060a0880135915060c0880135614d5181614cd1565b8091505092959891949750929550565b600060208284031215614d7357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561135c5761135c614d7a565b634e487b7160e01b600052603260045260246000fd5b600060018201614dcb57614dcb614d7a565b5060010190565b808202811582820484141761135c5761135c614d7a565b634e487b7160e01b600052601260045260246000fd5b600082614e0e57614e0e614de9565b500490565b634e487b7160e01b600052604160045260246000fd5b600081518084526020808501945080840160005b83811015614e625781516001600160a01b031687529582019590820190600101614e3d565b509495945050505050565b600081518084526020808501945080840160005b83811015614e6257815187529582019590820190600101614e81565b634e487b7160e01b600052602160045260246000fd5b60048110614ed157634e487b7160e01b600052602160045260246000fd5b9052565b848152608060208201526000614eee6080830186614e29565b8281036040840152614f008186614e6d565b915050611f846060830184614eb3565b8082018082111561135c5761135c614d7a565b85815284602082015283604082015260a060608201526000614f4860a0830185614e29565b8281036080840152614f5a8185614e6d565b98975050505050505050565b600060208284031215614f7857600080fd5b81518015158114611f5d57600080fd5b600060208284031215614f9a57600080fd5b8151611f5d81614cd1565b805160408084528151908401819052600091602091908201906060860190845b81811015614fea5783516001600160a01b031683529284019291840191600101614fc5565b50508483015186820387850152805180835290840192506000918401905b808310156150285783518252928401926001929092019190840190615008565b509695505050505050565b6001600160a01b03841681526060602082015260006150556060830185614fa5565b82810360408401526129dd8185614fa5565b604051601f8201601f1916810167ffffffffffffffff8111828210171561509057615090614e13565b604052919050565b600067ffffffffffffffff8211156150b2576150b2614e13565b5060051b60200190565b600082601f8301126150cd57600080fd5b815160206150e26150dd83615098565b615067565b82815260059290921b8401810191818101908684111561510157600080fd5b8286015b8481101561502857805161511881614cd1565b8352918301918301615105565b600082601f83011261513657600080fd5b815160206151466150dd83615098565b82815260059290921b8401810191818101908684111561516557600080fd5b8286015b848110156150285780518352918301918301615169565b60006020828403121561519257600080fd5b815167ffffffffffffffff808211156151aa57600080fd5b90830190604082860312156151be57600080fd5b6040516040810181811083821117156151d9576151d9614e13565b6040528251828111156151eb57600080fd5b6151f7878286016150bc565b82525060208301518281111561520c57600080fd5b61521887828601615125565b60208301525095945050505050565b60408152600061523a6040830185614e29565b8281036020840152611f848185614e6d565b600060808201868352602060808185015281875480845260a08601915060009350888452828420845b8281101561529a5781546001600160a01b031684529284019260019182019101615275565b50505084810360408601528654808252878452828420918301905b808510156152d4578254825260019485019490920191908301906152b5565b509350611f84925050506060830184614eb3565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b03841681526060602082015260006153206060830185614e29565b82810360408401526129dd8185614e6d565b60008060006060848603121561534757600080fd5b83519250602084015161535981614cd1565b604085015190925061536a81614cd1565b809150509250925092565b60006020828403121561538757600080fd5b815167ffffffffffffffff81111561539e57600080fd5b612724848285016150bc565b602081526000611f5d6020830184614e29565b6000602082840312156153cf57600080fd5b815167ffffffffffffffff8111156153e657600080fd5b61272484828501615125565b600181815b8085111561542d57816000190482111561541357615413614d7a565b8085161561542057918102915b93841c93908002906153f7565b509250929050565b6000826154445750600161135c565b816154515750600061135c565b816001811461546757600281146154715761548d565b600191505061135c565b60ff84111561548257615482614d7a565b50506001821b61135c565b5060208310610133831016604e8410600b84101617156154b0575081810a61135c565b6154ba83836153f2565b80600019048211156154ce576154ce614d7a565b029392505050565b6000611f5d8383615435565b6000806000606084860312156154f757600080fd5b8351925060208401519150604084015167ffffffffffffffff81111561551c57600080fd5b61552886828701615125565b9150509250925092565b60006020828403121561554457600080fd5b815160ff81168114611f5d57600080fd5b60008261556457615564614de9565b50069056fe7239b4459c1d3d68b96734eb0e6596f63b4a77b9c14e0d863e63dc6fa6bda300a36e81d885900cc3916b87a733476f04e310966a6d75bff720cbf6a9b4729e00a36e81d885900cc3916b87a733476f04e310966a6d75bff720cbf6a9b4729e02a2646970667358221220a653a9015187a6cdfd33abeab1e2c3e3488d271c78d4f956ed9ed3d8d919c8e664736f6c63430008130033",
  "linkReferences": {
    "contracts/Dependencies_v0_8/SumCollateralsLib.sol": {
      "SumCollateralsLib": [
        {
          "length": 20,
          "start": 5330
        },
        {
          "length": 20,
          "start": 7838
        }
      ]
    }
  },
  "deployedLinkReferences": {
    "contracts/Dependencies_v0_8/SumCollateralsLib.sol": {
      "SumCollateralsLib": [
        {
          "length": 20,
          "start": 5297
        },
        {
          "length": 20,
          "start": 7805
        }
      ]
    }
  }
}
