[ { "inputs": [ { "internalType": "address", "name": "initialHolder", "type": "address" }, { "internalType": "address", "name": "vestingWalletAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "CheckpointUnorderedInsertion", "type": "error" }, { "inputs": [], "name": "ECDSAInvalidSignature", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "ECDSAInvalidSignatureLength", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "ECDSAInvalidSignatureS", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "increasedSupply", "type": "uint256" }, { "internalType": "uint256", "name": "cap", "type": "uint256" } ], "name": "ERC20ExceededSafeSupply", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "ERC2612ExpiredSignature", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "signer", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC2612InvalidSigner", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "timepoint", "type": "uint256" }, { "internalType": "uint48", "name": "clock", "type": "uint48" } ], "name": "ERC5805FutureLookup", "type": "error" }, { "inputs": [], "name": "ERC6372InconsistentClock", "type": "error" }, { "inputs": [], "name": "IdenticalValue", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "currentNonce", "type": "uint256" } ], "name": "InvalidAccountNonce", "type": "error" }, { "inputs": [], "name": "InvalidShortString", "type": "error" }, { "inputs": [], "name": "NotAllowed", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "expiry", "type": "uint256" } ], "name": "VotesExpiredSignature", "type": "error" }, { "inputs": [], "name": "ZeroAddress", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "fromDelegate", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toDelegate", "type": "address" } ], "name": "DelegateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "previousVotes", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newVotes", "type": "uint256" } ], "name": "DelegateVotesChanged", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferStarted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "VestingWalletUpdated", "type": "event" }, { "inputs": [], "name": "CLOCK_MODE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "acceptOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newVestingWallet", "type": "address" } ], "name": "changeVestingWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint32", "name": "pos", "type": "uint32" } ], "name": "checkpoints", "outputs": [ { "components": [ { "internalType": "uint48", "name": "_key", "type": "uint48" }, { "internalType": "uint208", "name": "_value", "type": "uint208" } ], "internalType": "struct Checkpoints.Checkpoint208", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "clock", "outputs": [ { "internalType": "uint48", "name": "", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "expiry", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "delegateBySig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "emissionDetails", "outputs": [ { "internalType": "uint256", "name": "lastMinted", "type": "uint256" }, { "internalType": "uint256", "name": "nextMintTime", "type": "uint256" }, { "internalType": "uint256", "name": "amountToMint", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastTotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "numCheckpoints", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenEmission", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "vestingWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
61016080604052346100915760409061446790813803918291610021836100ac565b39126100915761004061003261011f565b61003a610136565b906101c2565b60405161334090816110e7823960805181611e22015260a05181611edd015260c05181611df3015260e05181611e7101526101005181611e9701526101205181610ce901526101405181610d130152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b601f01601f1916610160908101906001600160401b038211908210176100d157604052565b610096565b604081019081106001600160401b038211176100d157604052565b60405190606082016001600160401b038111838210176100d157604052565b6040519061011d826100d6565b565b61016051906001600160a01b038216820361009157565b61018051906001600160a01b038216820361009157565b6040519061015a826100d6565b60018252565b6040519061016d826100d6565b6004825263544f4d4960e01b6020830152565b634e487b7160e01b600052601160045260246000fd5b906005820291808304600514901517156101ac57565b610180565b906301e1338082018092116101ac57565b906101cb610160565b6101d3610160565b6101db610160565b916101e461014d565b906020820192603160f81b845260018060a01b039485871680156103255761025692610251918860018060a01b031980600154166001558260005491821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a36104d0565b6105be565b61025f81610781565b6101205261026c82610882565b610140526020815191012060e052519020610100524660a05261028d610980565b6080523060c052821615610313576102a76102c9926106a0565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b61011d6102d5426101b1565b6102ea6102e3600454610196565b6064900490565b6102f26100f1565b42808252602082018490526040909101829052600e55600f91909155601055565b60405163d92e233d60e01b8152600490fd5b604051631e4fbdf760e01b815260006004820152602490fd5b90600182811c9216801561036e575b602083101461035857565b634e487b7160e01b600052602260045260246000fd5b91607f169161034d565b601f8111610384575050565b60009060056000526020600020906020601f850160051c830194106103c4575b601f0160051c01915b8281106103b957505050565b8181556001016103ad565b90925082906103a4565b601f81116103da575050565b60009060066000526020600020906020601f850160051c8301941061041a575b601f0160051c01915b82811061040f57505050565b818155600101610403565b90925082906103fa565b601f8111610430575050565b60009060076000526020600020906020601f850160051c83019410610470575b601f0160051c01915b82811061046557505050565b818155600101610459565b9092508290610450565b601f8111610486575050565b60009060086000526020600020906020601f850160051c830194106104c6575b601f0160051c01915b8281106104bb57505050565b8181556001016104af565b90925082906104a6565b80519091906001600160401b0381116100d1576104f7816104f260055461033e565b610378565b602080601f831160011461053a5750819061052a939460009261052f575b50508160011b916000199060031b1c19161790565b600555565b015190503880610515565b6005600052601f198316949091907f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0926000905b8782106105a657505083600195961061058d575b505050811b01600555565b015160001960f88460031b161c19169055388080610582565b8060018596829496860151815501950193019061056e565b80519091906001600160401b0381116100d1576105e5816105e060065461033e565b6103ce565b602080601f831160011461061c57508190610617939460009261052f5750508160011b916000199060031b1c19161790565b600655565b6006600052601f198316949091907ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f926000905b87821061068857505083600195961061066f575b505050811b01600655565b015160001960f88460031b161c19169055388080610664565b80600185968294968601518155019501930190610650565b6001600160a01b0381168015610768576004546b02b990905bece77075300000908181018091116101ac57600455816000526002602052604060002090815401905560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6040518061072381906b02b990905bece77075300000602083019252565b0390a36004546001600160d01b038111610741575061011d90610a86565b604051630e58ae9360e11b815260048101919091526001600160d01b036024820152604490fd5b60405163ec442f0560e01b815260006004820152602490fd5b908151602080821060001461079f5750509061079c90610a0e565b90565b6001600160401b0382116100d1576107c1826107bc60075461033e565b610424565b602090601f83116001146107fb575081906107f3939460009261052f5750508160011b916000199060031b1c19161790565b60075560ff90565b6007600052601f198316949091907fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688926000905b87821061086a575050836001959610610851575b505050811b0160075560ff90565b015160001960f88460031b161c19169055388080610843565b8060018596829496860151815501950193019061082f565b908151602080821060001461089d5750509061079c90610a0e565b6001600160401b0382116100d1576108bf826108ba60085461033e565b61047a565b602090601f83116001146108f9575081906108f1939460009261052f5750508160011b916000199060031b1c19161790565b60085560ff90565b6008600052601f198316949091907ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3926000905b87821061096857505083600195961061094f575b505050811b0160085560ff90565b015160001960f88460031b161c19169055388080610941565b8060018596829496860151815501950193019061092d565b60e051610100516040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c0810181811060018060401b038211176100d15760405251902090565b6020815191015190602081106109ff575090565b6000199060200360031b1b1690565b601f815111610a2657610a20816109eb565b90511790565b6040519063305a27a960e01b82528160208060048301528251908160248401526000935b828510610a6d575050604492506000838284010152601f80199101168101030190fd5b8481018201518686016044015293810193859350610a4a565b65ffffffffffff90814311610b4457600c5480610b165750610ab761011d92610aaf600061109f565b904316610e95565b50506001600160a01b03908116908115610b07575b600a6020527f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e354600092835260409092205481169116610c42565b610b0f610b63565b5050610acc565b916000199083828101116101ac57610aaf610ab79261011d95600c600052602060002001015460301c61109f565b6040516306dfcc6560e41b815260306004820152436024820152604490fd5b65ffffffffffff804311610b4457600c5480610bad575060005b6001600160d01b039081166b02b990905bece770752fffff19019081116101ac57610ba9914316610e95565b9091565b6000199080828101116101ac57600c60005201600080516020614427833981519152015460301c610b7d565b65ffffffffffff90814311610b4457805480610c2057506000905b6001600160d01b039182166b02b990905bece77075300000019182116101ac57610ba992431690610fbd565b6000199080828101116101ac5782600052602060002001015460301c90610bf4565b6001600160a01b038083169291908116908184141580610d7f575b610c68575b50505050565b81610ccf575b505081610c7d575b8080610c62565b6001600160a01b03166000908152600b6020526040902060008051602061444783398151915290610cad90610bd9565b604080516001600160d01b039384168152919092166020820152a23880610c76565b6001600160a01b03166000908152600b6020526040902065ffffffffffff90814311610b4457805480610d46575060008051602061444783398151915291610d2491610d1b60006110c2565b91431690610fbd565b604080516001600160d01b039384168152919092166020820152a23880610c6e565b916000199183838101116101ac57610d1b610d24936000805160206144478339815191529583600052602060002001015460301c6110c2565b506001610c5d565b6000198101919082116101ac57565b600c5490680100000000000000008210156100d1576001820180600c55821015610df557600c60005280516020919091015160301b65ffffffffffff191665ffffffffffff919091161760008051602061442783398151915290910155565b634e487b7160e01b600052603260045260246000fd5b908154680100000000000000008110156100d15760018101808455811015610df55760009283526020928390208251929093015160301b65ffffffffffff191665ffffffffffff9290921691909117910155565b604080519192919081016001600160401b038111828210176100d157604052915465ffffffffffff8116835260301c6020830152565b600c54919291908115610f9357610ece610ec9610eb184610d87565b600c6000526000805160206144278339815191520190565b610e5f565b805165ffffffffffff8381169491168410610f815785602093610f4595610f09610efe865165ffffffffffff1690565b65ffffffffffff1690565b03610f495750610f1e610eb1610f3793610d87565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b9190565b9050610f7c9150610f69610f5b610110565b65ffffffffffff9092168252565b6001600160d01b03871681850152610d96565b610f37565b604051632520601d60e01b8152600490fd5b610fb79150610fa3610f5b610110565b6001600160d01b0384166020820152610d96565b60009190565b80549293929190821561107b57610fe6610ec9610fd985610d87565b8360005260206000200190565b90610ff7825165ffffffffffff1690565b65ffffffffffff84811691168110610f8157610f45946020948892611025610efe875165ffffffffffff1690565b036110485750610f379261103b610f1e92610d87565b9060005260206000200190565b915050610f7c9161106861105a610110565b65ffffffffffff9093168352565b6001600160d01b03881682860152610e0b565b610fb7925061108b61105a610110565b6001600160d01b0385166020830152610e0b565b6001600160d01b039081166b02b990905bece77075300000019081116101ac5790565b6001600160d01b039081166b02b990905bece770752fffff19019081116101ac579056fe6080604052600436101561001257600080fd5b60003560e01c806306fdde0314610237578063095ea7b3146102325780630a5ab11d1461022d57806318160ddd1461022857806323b872dd14610223578063313ce5671461021e5780633644e515146102195780633a46b1a81461021457806342966c681461020f5780634bf5d7e91461020a578063587cde1e146102055780635c19a95c146102005780636fcfff45146101fb57806370a08231146101f6578063715018a6146101f157806374912463146101ec57806379ba5097146101e757806379cc6790146101e25780637ecebe00146101dd57806384b0196e146101d85780638da5cb5b146101d35780638dc34b9a146101ce5780638e539e8c146101c957806391ddadf4146101c457806395d89b41146101bf5780639ab24eb0146101ba578063a9059cbb146101b5578063c3cda520146101b0578063d505accf146101ab578063dd62ed3e146101a6578063e30c3978146101a1578063f1127ed81461019c578063f2fde38b146101975763fdbbd81c1461019257600080fd5b611812565b611765565b611696565b611644565b6115af565b6113c0565b6112b3565b61124f565b6111c7565b611101565b6110b7565b610f6b565b610e37565b610de5565b610cb0565b610c4b565b610bfd565b610b21565b610a25565b61097f565b61091c565b610870565b610830565b6107ca565b610702565b6106c5565b6105cc565b61058b565b610551565b6104fb565b6104bf565b61046d565b61041e565b6102ae565b919082519283825260005b8481106102865750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b602081830181015184830182015201610247565b9060206102ab92818152019061023c565b90565b346103d3576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d0576040519080600554906102f08261188e565b80855291602091600191828116908115610385575060011461032d575b6103298661031d818803826119a1565b6040519182918261029a565b0390f35b9350600584527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b8385106103725750505050810160200161031d826103293861030d565b8054868601840152938201938101610355565b8796506103299794506020935061031d9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b82010192933861030d565b80fd5b600080fd5b6004359073ffffffffffffffffffffffffffffffffffffffff821682036103d357565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036103d357565b346103d35760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d3576104626104586103d8565b60243590336124ff565b602060405160018152f35b346103d35760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d357602073ffffffffffffffffffffffffffffffffffffffff600d5416604051908152f35b346103d35760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d3576020600454604051908152f35b346103d35760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d3576104626105356103d8565b61053d6103fb565b6044359161054c833383611a85565b611c34565b346103d35760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d357602060405160128152f35b346103d35760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d35760206105c4611ddc565b604051908152f35b346103d35760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d3576106036103d8565b60243561060f43611f03565b65ffffffffffff81168210156106855761032979ffffffffffffffffffffffffffffffffffffffffffffffffffff6106748473ffffffffffffffffffffffffffffffffffffffff8716600052600b60205261066e604060002091611f03565b90611f7b565b604051911681529081906020820190565b6040517fecd3f81e000000000000000000000000000000000000000000000000000000008152600481019290925265ffffffffffff166024820152604490fd5b346103d35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d3576107006004353361205a565b005b346103d35760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d35761073a43611f03565b65ffffffffffff8061074b43611f03565b169116036107a05761032960405161076281611931565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015260405191829160208352602083019061023c565b60046040517f6ff07140000000000000000000000000000000000000000000000000000000008152fd5b346103d35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d357602073ffffffffffffffffffffffffffffffffffffffff806108196103d8565b16600052600a825260406000205416604051908152f35b346103d35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d35761070061086a6103d8565b336121a0565b346103d35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d35773ffffffffffffffffffffffffffffffffffffffff6108bc6103d8565b16600052600b60205260406000205463ffffffff908181116108e45760209160405191168152f35b604490604051907f6dfcc650000000000000000000000000000000000000000000000000000000008252602060048301526024820152fd5b346103d35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d35760206105c46109586103d8565b73ffffffffffffffffffffffffffffffffffffffff16600052600260205260406000205490565b346103d3576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d0576109b7612255565b8073ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff0000000000000000000000000000000000000000806001541660015582549081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b346103d35760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d357604051610a6081611910565b600e548152600f546020820190808252604060105493019283524210610af757610aae61070092610aa6600d5473ffffffffffffffffffffffffffffffffffffffff1690565b905190612276565b51610ab8816119fe565b610acd610ac6600454611a1d565b6064900490565b90610ad66119e2565b83815260208101829052604001829052600e92909255600f91909155601055565b60046040517f3d693ada000000000000000000000000000000000000000000000000000000008152fd5b346103d3576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d05760015473ffffffffffffffffffffffffffffffffffffffff3381831603610bcd577fffffffffffffffffffffffff0000000000000000000000000000000000000000809216600155825491339083161783553391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b346103d35760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d357610700610c376103d8565b60243590610c46823383611a85565b61205a565b346103d35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d35773ffffffffffffffffffffffffffffffffffffffff610c976103d8565b1660005260096020526020604060002054604051908152f35b346103d3576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d057610d8890610d0d7f00000000000000000000000000000000000000000000000000000000000000006128e9565b90610d377f0000000000000000000000000000000000000000000000000000000000000000612a21565b9060405191610d458361194d565b818352610d966020916040519687967f0f00000000000000000000000000000000000000000000000000000000000000885260e0602089015260e088019061023c565b90868203604088015261023c565b904660608601523060808601528260a086015284820360c0860152602080855193848152019401925b828110610dce57505050500390f35b835185528695509381019392810192600101610dbf565b346103d35760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d357602073ffffffffffffffffffffffffffffffffffffffff60005416604051908152f35b346103d35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d357610e6e6103d8565b610e76612255565b73ffffffffffffffffffffffffffffffffffffffff90818116918215610f4157600d54908116838114610f17576040805173ffffffffffffffffffffffffffffffffffffffff92831681529390911660208401527fffffffffffffffffffffffff0000000000000000000000000000000000000000927fbf33f78989fc8fb85c196844387d85a99f16411204b7bdc60cd0097521d8f8789190a11617600d55005b60046040517f2620eb3a000000000000000000000000000000000000000000000000000000008152fd5b60046040517fd92e233d000000000000000000000000000000000000000000000000000000008152fd5b346103d35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d357600435610fa643611f03565b9065ffffffffffff918281168210156106855750610fc390611f03565b600c54906000908260058111611049575b50610fdf93506126c5565b8061100e5750602060005b79ffffffffffffffffffffffffffffffffffffffffffffffffffff60405191168152f35b611019602091611f4e565b600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7015460301c610fea565b909261105482612585565b82039182116110b257610fdf94600c60005280837fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7015416908516106000146110a05750915b38610fd4565b9291506110ac90611a0f565b9061109a565b61185f565b346103d35760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d35760206110f143611f03565b65ffffffffffff60405191168152f35b346103d3576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d0576040519080600654906111438261188e565b80855291602091600191828116908115610385575060011461116f576103298661031d818803826119a1565b9350600684527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b8385106111b45750505050810160200161031d826103293861030d565b8054868601840152938201938101611197565b346103d35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d35773ffffffffffffffffffffffffffffffffffffffff6112136103d8565b16600052600b602052602079ffffffffffffffffffffffffffffffffffffffffffffffffffff61124660406000206123d0565b16604051908152f35b346103d35760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d3576104626112896103d8565b6024359033611c34565b6064359060ff821682036103d357565b6084359060ff821682036103d357565b346103d35760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d3576112ea6103d8565b604435906024356112f9611293565b83421161138f576113836107009461138a926040519060208201927fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf845273ffffffffffffffffffffffffffffffffffffffff8816604084015286606084015260808301526080825261136b82611969565b61137e60a435936084359351902061241a565b61245b565b9182612473565b6121a0565b602484604051907f4683af0e0000000000000000000000000000000000000000000000000000000082526004820152fd5b346103d35760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d3576113f76103d8565b6113ff6103fb565b6044359060643561140e6112a3565b81421161157e57906114c5611504926114f16114538873ffffffffffffffffffffffffffffffffffffffff166000526009602052604060002080549060018201905590565b9360405193849160208301968a8a8d8a91959493909260a09360c08401977f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9855273ffffffffffffffffffffffffffffffffffffffff8092166020860152166040840152606083015260808201520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018452836119a1565b61137e60c4359360a4359351902061241a565b73ffffffffffffffffffffffffffffffffffffffff8085169082160361152e5750610700926124ff565b6040517f4b800e4600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529084166024820152604490fd5b602482604051907f627913020000000000000000000000000000000000000000000000000000000082526004820152fd5b346103d35760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d357602061163b6115eb6103d8565b73ffffffffffffffffffffffffffffffffffffffff6116086103fb565b91166000526003835260406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54604051908152f35b346103d35760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d357602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346103d35760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d3576116cd6103d8565b60243563ffffffff811681036103d35761172961172f9173ffffffffffffffffffffffffffffffffffffffff604094611704611a6c565b5061170d611a6c565b5016600052600b60205283600020611723611a6c565b50612c8e565b50612cd5565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff602083519265ffffffffffff81511684520151166020820152f35b346103d35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d35761179c6103d8565b6117a4612255565b73ffffffffffffffffffffffffffffffffffffffff80911690817fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155600054167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700600080a3005b346103d35760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d3576060600e54600f546010549060405192835260208301526040820152f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b90600182811c921680156118d7575b60208310146118a857565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f169161189d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761192c57604052565b6118e1565b6040810190811067ffffffffffffffff82111761192c57604052565b6020810190811067ffffffffffffffff82111761192c57604052565b60a0810190811067ffffffffffffffff82111761192c57604052565b60c0810190811067ffffffffffffffff82111761192c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761192c57604052565b604051906119ef82611910565b565b604051906119ef82611931565b906301e1338082018092116110b257565b90600182018092116110b257565b906005820291808304600514901517156110b257565b8115611a3d570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60405190611a7982611931565b60006020838281520152565b919073ffffffffffffffffffffffffffffffffffffffff80841690816000526003602052611ad78360406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8303611b09575b505050505050565b848310611bdf5715611bae57821615611b7d57611b7192611b4c91039373ffffffffffffffffffffffffffffffffffffffff166000526003602052604060002090565b9073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b55388080808080611b01565b60246040517f94280d6200000000000000000000000000000000000000000000000000000000815260006004820152fd5b60246040517fe602df0500000000000000000000000000000000000000000000000000000000815260006004820152fd5b6040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024810184905260448101869052606490fd5b92919073ffffffffffffffffffffffffffffffffffffffff93848116948515611dab5782168015611d7a57611c898273ffffffffffffffffffffffffffffffffffffffff166000526002602052604060002090565b5495848710611d2557846119ef969703611cc38473ffffffffffffffffffffffffffffffffffffffff166000526002602052604060002090565b55611cee8473ffffffffffffffffffffffffffffffffffffffff166000526002602052604060002090565b8054860190556040518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3612ec2565b6040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810188905260448101869052606490fd5b60246040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152fd5b60246040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152fd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016301480611eda575b15611e44577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152611ed481611985565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611e1b565b65ffffffffffff90818111611f16571690565b604490604051907f6dfcc650000000000000000000000000000000000000000000000000000000008252603060048301526024820152fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116110b257565b90815490600091806005811161200e575b50915b828110611fbe57505080611fa4575050600090565b611fad90611f4e565b906000526020600020015460301c90565b90918082169080831860011c82018092116110b2578460005265ffffffffffff8083602060002001541690851610600014611ffc5750915b90611f8f565b92915061200890611a0f565b90611ff6565b9061201882612585565b82039182116110b2578460005265ffffffffffff808360206000200154169084161060001461204957505b38611f8c565b925061205490611a0f565b91612043565b919073ffffffffffffffffffffffffffffffffffffffff8084168015611dab576120a48573ffffffffffffffffffffffffffffffffffffffff166000526002602052604060002090565b54948386106121495790602092916120e3856119ef9798039173ffffffffffffffffffffffffffffffffffffffff166000526002602052604060002090565b558360045403600455604051848152817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000958693a361212b61212685612d0b565b612df7565b50508252600a60205260408181842054169280805220541690612740565b6040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9190911660048201526024810186905260448101849052606490fd5b6119ef9161224f73ffffffffffffffffffffffffffffffffffffffff927fffffffffffffffffffffffff00000000000000000000000000000000000000008482169485600052600a6020526040600020958654968288169788938816948591161790557f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f600080a473ffffffffffffffffffffffffffffffffffffffff16600052600260205260406000205490565b91612740565b73ffffffffffffffffffffffffffffffffffffffff600054163303610bcd57565b919073ffffffffffffffffffffffffffffffffffffffff83168015611d7a576004548281018091116110b2576004556122cf8473ffffffffffffffffffffffffffffffffffffffff166000526002602052604060002090565b82815401905560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051858152a36004549279ffffffffffffffffffffffffffffffffffffffffffffffffffff9384811161233457506119ef929350612e3c565b60449085604051917f1cb15d2600000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b600c54806123795750600090565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101116110b257600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c90565b8054806123de575050600090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9181838101116110b257600052602060002001015460301c90565b604290612425611ddc565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b916102ab939161246a93612ae1565b90929192612bb7565b906124a78273ffffffffffffffffffffffffffffffffffffffff166000526009602052604060002080549060018201905590565b8091036124b2575050565b6044925073ffffffffffffffffffffffffffffffffffffffff604051927f752d88c00000000000000000000000000000000000000000000000000000000084521660048301526024820152fd5b9073ffffffffffffffffffffffffffffffffffffffff91828116928315611bae578216938415611b7d578061257b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92594611b4c60209573ffffffffffffffffffffffffffffffffffffffff166000526003602052604060002090565b55604051908152a3565b80156126bf578061265861265161264761263d61263361262961261f61261560016102ab9a6000908b60801c806126b3575b508060401c806126a6575b508060201c80612699575b508060101c8061268c575b508060081c8061267f575b508060041c80612672575b508060021c80612665575b50821c61265e575b811c1b61260e818b611a33565b0160011c90565b61260e818a611a33565b61260e8189611a33565b61260e8188611a33565b61260e8187611a33565b61260e8186611a33565b61260e8185611a33565b8092611a33565b90612cf9565b8101612601565b60029150910190386125f9565b60049150910190386125ee565b60089150910190386125e3565b60109150910190386125d8565b60209150910190386125cd565b60409150910190386125c2565b915050608090386125b7565b50600090565b905b8281106126d357505090565b90918082169080831860011c82018092116110b257600c60005265ffffffffffff80837fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70154169085161060001461272e5750915b906126c7565b92915061273a90611a0f565b90612728565b919073ffffffffffffffffffffffffffffffffffffffff928382169381169084821415806128e0575b612775575b5050505050565b8161281e575b50508261278a575b808061276e565b7fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724916127e26127dc6127e89373ffffffffffffffffffffffffffffffffffffffff16600052600b602052604060002090565b91612d0b565b90612d6a565b6040805179ffffffffffffffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152a2388080612783565b6128489073ffffffffffffffffffffffffffffffffffffffff16600052600b602052604060002090565b61285184612d0b565b61285a43611f03565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff918280612881866123d0565b1691169003928284116110b2577fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724936128d6926128bd92613202565b6040805192851683529316602082015291829190820190565b0390a2388061277b565b50831515612769565b60ff811461293f5760ff811690601f8211612915576040519161290b83611931565b8252602082015290565b60046040517fb3512b0c000000000000000000000000000000000000000000000000000000008152fd5b506040516007548160006129528361188e565b808352926020906001908181169081156129de575060011461297d575b50506102ab925003826119a1565b91509260076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688936000925b8284106129c657506102ab945050508101602001388061296f565b855487850183015294850194869450928101926129ab565b9050602093506102ab9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b820101388061296f565b60ff8114612a435760ff811690601f8211612915576040519161290b83611931565b50604051600854816000612a568361188e565b808352926020906001908181169081156129de5750600114612a805750506102ab925003826119a1565b91509260086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3936000925b828410612ac957506102ab945050508101602001388061296f565b85548785018301529485019486945092810192612aae565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612b7257926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15612b6657805173ffffffffffffffffffffffffffffffffffffffff811615612b5d57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b60041115612b8857565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b612bc081612b7e565b80612bc9575050565b612bd281612b7e565b60018103612c045760046040517ff645eedf000000000000000000000000000000000000000000000000000000008152fd5b612c0d81612b7e565b60028103612c47576040517ffce698f700000000000000000000000000000000000000000000000000000000815260048101839052602490fd5b80612c53600392612b7e565b14612c5b5750565b6040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004810191909152602490fd5b8054821015612ca65760005260206000200190600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90604051612ce281611931565b915465ffffffffffff8116835260301c6020830152565b9080821015612d06575090565b905090565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff90818111612d32571690565b604490604051907f6dfcc65000000000000000000000000000000000000000000000000000000000825260d060048301526024820152fd5b90612d7443611f03565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff918280612d9b866123d0565b169116019182116110b257612daf92613202565b9091565b612dbc43611f03565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff908180612de361236b565b169116019081116110b257612daf91613059565b612e0043611f03565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff908180612e2761236b565b16911690039081116110b257612daf91613059565b906119ef91612e52612e4d83612d0b565b612db3565b505073ffffffffffffffffffffffffffffffffffffffff809116908115612eaf575b600a6020527f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e354600092835260409092205481169116612740565b612ebb61212684612d0b565b5050612e74565b906119ef929173ffffffffffffffffffffffffffffffffffffffff80809216928315612f26575b16918215612f13575b600052600a6020528060406000205416916000526040600020541690612740565b612f1f61212685612d0b565b5050612ef2565b612f32612e4d86612d0b565b5050612ee9565b600c54906801000000000000000082101561192c576001820180600c55821015612ca657600c60005280516020919091015160301b7fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff91909116177fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c790910155565b80546801000000000000000081101561192c57612fe591600182018155612c8e565b61302a5781516020929092015160301b7fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff92909216919091179055565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b600c549192919081156131c5576130a461309f61307584611f4e565b600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70190565b612cd5565b805165ffffffffffff838116949116841061319b578560209361314c956130df6130d4865165ffffffffffff1690565b65ffffffffffff1690565b0361315057506130f461307561312b93611f4e565b9065ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000083549260301b169116179055565b015179ffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b9190565b905061319691506131706131626119f1565b65ffffffffffff9092168252565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff871681850152612f39565b61312b565b60046040517f2520601d000000000000000000000000000000000000000000000000000000008152fd5b6131fc91506131d56131626119f1565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff84166020820152612f39565b60009190565b8054929392919082156132d35761322b61309f61321e85611f4e565b8360005260206000200190565b9061323c825165ffffffffffff1690565b65ffffffffffff8481169116811061319b5761314c94602094889261326a6130d4875165ffffffffffff1690565b0361328d575061312b926132806130f492611f4e565b9060005260206000200190565b915050613196916132ad61329f6119f1565b65ffffffffffff9093168352565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff881682860152612fc3565b6131fc92506132e361329f6119f1565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff85166020830152612fc356fea2646970667358221220696fefe21da4ea9e7cfe999afb60937ca50d328c61eb79519f14418ef645abbd64736f6c63430008190033df6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72400000000000000000000000007ba4892dafeb11f6d09f68d7f94ca0473d1e89d00000000000000000000000007ba4892dafeb11f6d09f68d7f94ca0473d1e89d