[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Mint", "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": false, "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "prevEggssScalingFactor", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newEggssScalingFactor", "type": "uint256" } ], "name": "Rebase", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "BASE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMIT_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "REBASER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "who", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "who", "type": "address" } ], "name": "balanceOfUnderlying", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "fragmentToYoda", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "internalDecimals", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxScalingFactor", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mintUnderlying", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "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": [ { "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "internalType": "uint256", "name": "indexDelta", "type": "uint256" }, { "internalType": "bool", "name": "positive", "type": "bool" } ], "name": "rebase", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "rescueTokens", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "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": [ { "internalType": "uint256", "name": "yoda", "type": "uint256" } ], "name": "yodaToFragment", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "yodasScalingFactor", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
60806040526b204fce5e3e25026110000000600e5534801562000020575f80fd5b506040518060400160405280600981526020017f4261627920596f646100000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f594f44410000000000000000000000000000000000000000000000000000000081525081818160059081620000a0919062000880565b508060069081620000b2919062000880565b505050620000d85f801b620000cc6200026f60201b60201c565b6200027660201b60201c565b620001197f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66200010d6200026f60201b60201c565b6200027660201b60201c565b6200015a7f5fde63b561377d1441afa201ff619faac2ff8fed70a7fbdbe7a5cb07768c0b756200014e6200026f60201b60201c565b6200027660201b60201c565b50506200017c620001706200026f60201b60201c565b620002b260201b60201c565b670de0b6b3a76400006008819055506200019e600e546200037560201b60201c565b600b81905550600e54600f81905550600b5460095f620001c3620003b260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405162000261919062000975565b60405180910390a362000a6b565b5f33905090565b620002888282620003da60201b60201c565b620002ad8160015f8581526020019081526020015f20620004c560201b90919060201c565b505050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f620003ab6008546200039c69d3c21bcecceda100000085620004fa60201b90919060201c565b6200051160201b90919060201c565b9050919050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620003ec82826200052860201b60201c565b620004c15760015f808481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004666200026f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b5f620004f2835f018373ffffffffffffffffffffffffffffffffffffffff165f1b6200058b60201b60201c565b905092915050565b5f8183620005099190620009bd565b905092915050565b5f818362000520919062000a34565b905092915050565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f6200059e8383620005fc60201b60201c565b620005f257825f0182908060018154018082558091505060019003905f5260205f20015f9091909190915055825f0180549050836001015f8481526020019081526020015f208190555060019050620005f6565b5f90505b92915050565b5f80836001015f8481526020019081526020015f20541415905092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200069857607f821691505b602082108103620006ae57620006ad62000653565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620007127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620006d5565b6200071e8683620006d5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000768620007626200075c8462000736565b6200073f565b62000736565b9050919050565b5f819050919050565b620007838362000748565b6200079b62000792826200076f565b848454620006e1565b825550505050565b5f90565b620007b1620007a3565b620007be81848462000778565b505050565b5b81811015620007e557620007d95f82620007a7565b600181019050620007c4565b5050565b601f8211156200083457620007fe81620006b4565b6200080984620006c6565b8101602085101562000819578190505b620008316200082885620006c6565b830182620007c3565b50505b505050565b5f82821c905092915050565b5f620008565f198460080262000839565b1980831691505092915050565b5f62000870838362000845565b9150826002028217905092915050565b6200088b826200061c565b67ffffffffffffffff811115620008a757620008a662000626565b5b620008b3825462000680565b620008c0828285620007e9565b5f60209050601f831160018114620008f6575f8415620008e1578287015190505b620008ed858262000863565b8655506200095c565b601f1984166200090686620006b4565b5f5b828110156200092f5784890151825560018201915060208501945060208101905062000908565b868310156200094f57848901516200094b601f89168262000845565b8355505b6001600288020188555050505b505050505050565b6200096f8162000736565b82525050565b5f6020820190506200098a5f83018462000964565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620009c98262000736565b9150620009d68362000736565b9250828202620009e68162000736565b9150828204841483151762000a0057620009ff62000990565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000a408262000736565b915062000a4d8362000736565b92508262000a605762000a5f62000a07565b5b828204905092915050565b6148f68062000a795f395ff3fe608060405234801561000f575f80fd5b5060043610610272575f3560e01c80637ecebe001161014f578063a98a4921116100c1578063d547741f11610085578063d547741f14610810578063dadc9d221461082c578063dd62ed3e1461084a578063ec342ad01461087a578063edb208e214610898578063f2fde38b146108c857610272565b8063a98a492114610746578063ca15c87314610776578063cea9d26f146107a6578063d505accf146107d6578063d5391393146107f257610272565b806391d148541161011357806391d148541461065c57806395d89b411461068c57806397d63f93146106aa578063a217fddf146106c8578063a457c2d7146106e6578063a9059cbb1461071657610272565b80637ecebe001461059057806383eb70e5146105c05780638da5cb5b146105de5780639010d07c146105fc578063917505f41461062c57610272565b80633644e515116101e857806342966c68116101ac57806342966c68146104d057806364dd48f5146104ec57806370a082311461050a578063715018a61461053a57806379cc6790146105445780637af548c11461056057610272565b80633644e5151461040657806336568abe1461042457806339509351146104405780633af9e6691461047057806340c10f19146104a057610272565b806320606b701161023a57806320606b701461033057806323b872dd1461034e578063248a9ca31461037e5780632f2ff15d146103ae57806330adf81f146103ca578063313ce567146103e857610272565b806301ffc9a71461027657806306fdde03146102a6578063095ea7b3146102c457806311d3e6c4146102f457806318160ddd14610312575b5f80fd5b610290600480360381019061028b9190613501565b6108e4565b60405161029d9190613546565b60405180910390f35b6102ae61095d565b6040516102bb91906135e9565b60405180910390f35b6102de60048036038101906102d99190613696565b6109ed565b6040516102eb9190613546565b60405180910390f35b6102fc610ada565b60405161030991906136e3565b60405180910390f35b61031a610ae8565b60405161032791906136e3565b60405180910390f35b610338610af1565b6040516103459190613714565b60405180910390f35b6103686004803603810190610363919061372d565b610b15565b6040516103759190613546565b60405180910390f35b610398600480360381019061039391906137a7565b610c36565b6040516103a59190613714565b60405180910390f35b6103c860048036038101906103c391906137d2565b610c52565b005b6103d2610c73565b6040516103df9190613714565b60405180910390f35b6103f0610c99565b6040516103fd919061382b565b60405180910390f35b61040e610ca1565b60405161041b9190613714565b60405180910390f35b61043e600480360381019061043991906137d2565b610ca7565b005b61045a60048036038101906104559190613696565b610d2a565b6040516104679190613546565b60405180910390f35b61048a60048036038101906104859190613844565b610f19565b60405161049791906136e3565b60405180910390f35b6104ba60048036038101906104b59190613696565b610f5f565b6040516104c79190613546565b60405180910390f35b6104ea60048036038101906104e5919061386f565b610fe4565b005b6104f4610ff0565b60405161050191906136e3565b60405180910390f35b610524600480360381019061051f9190613844565b610ffe565b60405161053191906136e3565b60405180910390f35b61054261104c565b005b61055e60048036038101906105599190613696565b61105f565b005b61057a600480360381019061057591906138c4565b61107f565b60405161058791906136e3565b60405180910390f35b6105aa60048036038101906105a59190613844565b611273565b6040516105b791906136e3565b60405180910390f35b6105c8611288565b6040516105d59190613714565b60405180910390f35b6105e66112ac565b6040516105f39190613923565b60405180910390f35b6106166004803603810190610611919061393c565b6112d4565b6040516106239190613923565b60405180910390f35b61064660048036038101906106419190613696565b611300565b6040516106539190613546565b60405180910390f35b610676600480360381019061067191906137d2565b611385565b6040516106839190613546565b60405180910390f35b6106946113e8565b6040516106a191906135e9565b60405180910390f35b6106b2611478565b6040516106bf91906136e3565b60405180910390f35b6106d061147e565b6040516106dd9190613714565b60405180910390f35b61070060048036038101906106fb9190613696565b611484565b60405161070d9190613546565b60405180910390f35b610730600480360381019061072b9190613696565b611702565b60405161073d9190613546565b60405180910390f35b610760600480360381019061075b919061386f565b61171b565b60405161076d91906136e3565b60405180910390f35b610790600480360381019061078b91906137a7565b61172c565b60405161079d91906136e3565b60405180910390f35b6107c060048036038101906107bb919061372d565b61174d565b6040516107cd9190613546565b60405180910390f35b6107f060048036038101906107eb91906139a4565b61176c565b005b6107fa611a92565b6040516108079190613714565b60405180910390f35b61082a600480360381019061082591906137d2565b611ab6565b005b610834611ad7565b60405161084191906136e3565b60405180910390f35b610864600480360381019061085f9190613a41565b611add565b60405161087191906136e3565b60405180910390f35b610882611b5f565b60405161088f91906136e3565b60405180910390f35b6108b260048036038101906108ad919061386f565b611b6b565b6040516108bf91906136e3565b60405180910390f35b6108e260048036038101906108dd9190613844565b611b7c565b005b5f7f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610956575061095582611bfe565b5b9050919050565b60606005805461096c90613aac565b80601f016020809104026020016040519081016040528092919081815260200182805461099890613aac565b80156109e35780601f106109ba576101008083540402835291602001916109e3565b820191905f5260205f20905b8154815290600101906020018083116109c657829003601f168201915b5050505050905090565b5f81600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ac891906136e3565b60405180910390a36001905092915050565b5f610ae3611c77565b905090565b5f600f54905090565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b5f610ba182600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cab90919063ffffffff16565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f610c29858585611cc0565b9050809150509392505050565b5f805f8381526020019081526020015f20600101549050919050565b610c5b82610c36565b610c6481611ed0565b610c6e8383611ee4565b505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c95f1b81565b5f6012905090565b600c5481565b610caf611f16565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1390613b4c565b60405180910390fd5b610d268282611f1d565b5050565b5f610db682600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4f90919063ffffffff16565b600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054604051610f0791906136e3565b60405180910390a36001905092915050565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f610f917f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610f8c611f16565b611385565b610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc790613bb4565b60405180910390fd5b610fda8383611f64565b6001905092915050565b610fed81612126565b50565b69d3c21bcecceda100000081565b5f61104560095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461229b565b9050919050565b6110546122d4565b61105d5f612352565b565b6110718261106b611f16565b83612415565b61107b82826124a0565b5050565b5f6110b17f5fde63b561377d1441afa201ff619faac2ff8fed70a7fbdbe7a5cb07768c0b756110ac611f16565b611385565b6110f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e790613c1c565b60405180910390fd5b5f8303611140577fc6642d24d84e7f3d36ca39f5cce10e75639d9b158d5193aa350e2f900653e4c08460085460085460405161112e93929190613c3a565b60405180910390a1600f54905061126c565b5f60085490508261119f57611194670de0b6b3a764000061118661117587670de0b6b3a7640000611cab90919063ffffffff16565b60085461266590919063ffffffff16565b61267a90919063ffffffff16565b600881905550611217565b5f6111e9670de0b6b3a76400006111db6111ca88670de0b6b3a7640000611f4f90919063ffffffff16565b60085461266590919063ffffffff16565b61267a90919063ffffffff16565b90506111f3611c77565b8110156112065780600881905550611215565b61120e611c77565b6008819055505b505b611222600b5461229b565b600f819055507fc6642d24d84e7f3d36ca39f5cce10e75639d9b158d5193aa350e2f900653e4c0858260085460405161125d93929190613c3a565b60405180910390a1600f549150505b9392505050565b600d602052805f5260405f205f915090505481565b7f5fde63b561377d1441afa201ff619faac2ff8fed70a7fbdbe7a5cb07768c0b7581565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f6112f88260015f8681526020019081526020015f2061268f90919063ffffffff16565b905092915050565b5f6113327f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661132d611f16565b611385565b611371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136890613bb4565b60405180910390fd5b61137b83836126a6565b6001905092915050565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b6060600680546113f790613aac565b80601f016020809104026020016040519081016040528092919081815260200182805461142390613aac565b801561146e5780601f106114455761010080835404028352916020019161146e565b820191905f5260205f20905b81548152906001019060200180831161145157829003601f168201915b5050505050905090565b600b5481565b5f801b81565b5f80600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905080831061158a575f600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061161a565b61159d8382611cab90919063ffffffff16565b600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516116ef91906136e3565b60405180910390a3600191505092915050565b5f8061170f338585611cc0565b90508091505092915050565b5f61172582612868565b9050919050565b5f61174660015f8481526020019081526020015f206128a1565b9050919050565b5f6117566122d4565b6117618484846128b4565b600190509392505050565b834211156117af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a690613cb9565b60405180910390fd5b5f600c547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c95f1b898989600d5f8e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f81548092919061182690613d04565b919050558a60405160200161184096959493929190613d4b565b60405160208183030381529060405280519060200120604051602001611867929190613e1e565b6040516020818303038152906040528051906020012090505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16036118ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e490613e9e565b60405180910390fd5b6001818585856040515f815260200160405260405161190f9493929190613ebc565b6020604051602081039080840390855afa15801561192f573d5f803e3d5ffd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d90613f49565b60405180910390fd5b85600a5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92588604051611a8091906136e3565b60405180910390a35050505050505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b611abf82610c36565b611ac881611ed0565b611ad28383611f1d565b505050565b60085481565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b670de0b6b3a764000081565b5f611b758261229b565b9050919050565b611b846122d4565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be990613fd7565b60405180910390fd5b611bfb81612352565b50565b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611c705750611c6f8261293a565b5b9050919050565b5f600b547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ca69190614022565b905090565b5f8183611cb89190614052565b905092915050565b5f825f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cf9575f80fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d30575f80fd5b5f611d3a84612868565b9050611d8c8160095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cab90919063ffffffff16565b60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e1d8160095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4f90919063ffffffff16565b60095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611ebb91906136e3565b60405180910390a36001925050509392505050565b611ee181611edc611f16565b6129a3565b50565b611eee8282612a27565b611f118160015f8581526020019081526020015f20612b0190919063ffffffff16565b505050565b5f33905090565b611f278282612b2e565b611f4a8160015f8581526020019081526020015f20612c0890919063ffffffff16565b505050565b5f8183611f5c9190614085565b905092915050565b611f7981600f54611f4f90919063ffffffff16565b600f819055505f611f8982612868565b9050611fa081600b54611f4f90919063ffffffff16565b600b81905550611fae611c77565b6008541115611ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe990614102565b60405180910390fd5b6120428160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4f90919063ffffffff16565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688583836040516120b4929190614120565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161211991906136e3565b60405180910390a3505050565b61213b81600f54611cab90919063ffffffff16565b600f819055505f61214b82612868565b905061216281600b54611cab90919063ffffffff16565b600b819055506121b88160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cab90919063ffffffff16565b60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5338360405161222a929190614120565b60405180910390a15f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161228f91906136e3565b60405180910390a35050565b5f6122cd69d3c21bcecceda10000006122bf6008548561266590919063ffffffff16565b61267a90919063ffffffff16565b9050919050565b6122dc611f16565b73ffffffffffffffffffffffffffffffffffffffff166122fa6112ac565b73ffffffffffffffffffffffffffffffffffffffff1614612350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234790614191565b60405180910390fd5b565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6124208484611add565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461249a578181101561248c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612483906141f9565b60405180910390fd5b6124998484848403612c35565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361250e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250590614287565b60405180910390fd5b612519825f83612df8565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561259d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259490614315565b60405180910390fd5b81810360025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160045f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161264d91906136e3565b60405180910390a3612660835f84612dfd565b505050565b5f81836126729190614333565b905092915050565b5f81836126879190614022565b905092915050565b5f61269c835f0183612e02565b5f1c905092915050565b6126bb81600b54611f4f90919063ffffffff16565b600b819055505f6126cb8261229b565b90506126e281600f54611f4f90919063ffffffff16565b600f819055506126f0611c77565b6008541115612734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272b90614102565b60405180910390fd5b6127848260095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4f90919063ffffffff16565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688583826040516127f6929190614120565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161285b91906136e3565b60405180910390a3505050565b5f61289a60085461288c69d3c21bcecceda10000008561266590919063ffffffff16565b61267a90919063ffffffff16565b9050919050565b5f6128ad825f01612e29565b9050919050565b6129358363a9059cbb60e01b84846040516024016128d3929190614120565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e38565b505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6129ad8282611385565b612a23576129ba81612efe565b6129c7835f1c6020612f2b565b6040516020016129d8929190614438565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1a91906135e9565b60405180910390fd5b5050565b612a318282611385565b612afd5760015f808481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550612aa2611f16565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b5f612b26835f018373ffffffffffffffffffffffffffffffffffffffff165f1b613160565b905092915050565b612b388282611385565b15612c04575f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550612ba9611f16565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b5f612c2d835f018373ffffffffffffffffffffffffffffffffffffffff165f1b6131c7565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9a906144e1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d089061456f565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612deb91906136e3565b60405180910390a3505050565b505050565b505050565b5f825f018281548110612e1857612e1761458d565b5b905f5260205f200154905092915050565b5f815f01805490509050919050565b5f612e99826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166132c39092919063ffffffff16565b90505f81511480612eba575080806020019051810190612eb991906145ce565b5b612ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef090614669565b60405180910390fd5b505050565b6060612f248273ffffffffffffffffffffffffffffffffffffffff16601460ff16612f2b565b9050919050565b60605f6002836002612f3d9190614333565b612f479190614085565b67ffffffffffffffff811115612f6057612f5f614687565b5b6040519080825280601f01601f191660200182016040528015612f925781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f81518110612fc957612fc861458d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061302c5761302b61458d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f600184600261306a9190614333565b6130749190614085565b90505b6001811115613113577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106130b6576130b561458d565b5b1a60f81b8282815181106130cd576130cc61458d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600485901c94508061310c906146b4565b9050613077565b505f8414613156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314d90614725565b60405180910390fd5b8091505092915050565b5f61316b83836132da565b6131bd57825f0182908060018154018082558091505060019003905f5260205f20015f9091909190915055825f0180549050836001015f8481526020019081526020015f2081905550600190506131c1565b5f90505b92915050565b5f80836001015f8481526020019081526020015f205490505f81146132b8575f6001826131f49190614052565b90505f6001865f018054905061320a9190614052565b9050818114613270575f865f0182815481106132295761322861458d565b5b905f5260205f200154905080875f01848154811061324a5761324961458d565b5b905f5260205f20018190555083876001015f8381526020019081526020015f2081905550505b855f0180548061328357613282614743565b5b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506132bd565b5f9150505b92915050565b60606132d184845f856132fa565b90509392505050565b5f80836001015f8481526020019081526020015f20541415905092915050565b60608247101561333f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613336906147e0565b60405180910390fd5b5f808673ffffffffffffffffffffffffffffffffffffffff1685876040516133679190614842565b5f6040518083038185875af1925050503d805f81146133a1576040519150601f19603f3d011682016040523d82523d5f602084013e6133a6565b606091505b50915091506133b7878383876133c3565b92505050949350505050565b60608315613424575f83510361341c576133dc85613437565b61341b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613412906148a2565b60405180910390fd5b5b82905061342f565b61342e8383613459565b5b949350505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f8251111561346b5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161349f91906135e9565b60405180910390fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6134e0816134ac565b81146134ea575f80fd5b50565b5f813590506134fb816134d7565b92915050565b5f60208284031215613516576135156134a8565b5b5f613523848285016134ed565b91505092915050565b5f8115159050919050565b6135408161352c565b82525050565b5f6020820190506135595f830184613537565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561359657808201518184015260208101905061357b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6135bb8261355f565b6135c58185613569565b93506135d5818560208601613579565b6135de816135a1565b840191505092915050565b5f6020820190508181035f83015261360181846135b1565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61363282613609565b9050919050565b61364281613628565b811461364c575f80fd5b50565b5f8135905061365d81613639565b92915050565b5f819050919050565b61367581613663565b811461367f575f80fd5b50565b5f813590506136908161366c565b92915050565b5f80604083850312156136ac576136ab6134a8565b5b5f6136b98582860161364f565b92505060206136ca85828601613682565b9150509250929050565b6136dd81613663565b82525050565b5f6020820190506136f65f8301846136d4565b92915050565b5f819050919050565b61370e816136fc565b82525050565b5f6020820190506137275f830184613705565b92915050565b5f805f60608486031215613744576137436134a8565b5b5f6137518682870161364f565b93505060206137628682870161364f565b925050604061377386828701613682565b9150509250925092565b613786816136fc565b8114613790575f80fd5b50565b5f813590506137a18161377d565b92915050565b5f602082840312156137bc576137bb6134a8565b5b5f6137c984828501613793565b91505092915050565b5f80604083850312156137e8576137e76134a8565b5b5f6137f585828601613793565b92505060206138068582860161364f565b9150509250929050565b5f60ff82169050919050565b61382581613810565b82525050565b5f60208201905061383e5f83018461381c565b92915050565b5f60208284031215613859576138586134a8565b5b5f6138668482850161364f565b91505092915050565b5f60208284031215613884576138836134a8565b5b5f61389184828501613682565b91505092915050565b6138a38161352c565b81146138ad575f80fd5b50565b5f813590506138be8161389a565b92915050565b5f805f606084860312156138db576138da6134a8565b5b5f6138e886828701613682565b93505060206138f986828701613682565b925050604061390a868287016138b0565b9150509250925092565b61391d81613628565b82525050565b5f6020820190506139365f830184613914565b92915050565b5f8060408385031215613952576139516134a8565b5b5f61395f85828601613793565b925050602061397085828601613682565b9150509250929050565b61398381613810565b811461398d575f80fd5b50565b5f8135905061399e8161397a565b92915050565b5f805f805f805f60e0888a0312156139bf576139be6134a8565b5b5f6139cc8a828b0161364f565b97505060206139dd8a828b0161364f565b96505060406139ee8a828b01613682565b95505060606139ff8a828b01613682565b9450506080613a108a828b01613990565b93505060a0613a218a828b01613793565b92505060c0613a328a828b01613793565b91505092959891949750929550565b5f8060408385031215613a5757613a566134a8565b5b5f613a648582860161364f565b9250506020613a758582860161364f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613ac357607f821691505b602082108103613ad657613ad5613a7f565b5b50919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e63655f8201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b5f613b36602f83613569565b9150613b4182613adc565b604082019050919050565b5f6020820190508181035f830152613b6381613b2a565b9050919050565b7f4d7573742068617665206d696e74657220726f6c6500000000000000000000005f82015250565b5f613b9e601583613569565b9150613ba982613b6a565b602082019050919050565b5f6020820190508181035f830152613bcb81613b92565b9050919050565b7f4d7573742068617665207265626173657220726f6c65000000000000000000005f82015250565b5f613c06601683613569565b9150613c1182613bd2565b602082019050919050565b5f6020820190508181035f830152613c3381613bfa565b9050919050565b5f606082019050613c4d5f8301866136d4565b613c5a60208301856136d4565b613c6760408301846136d4565b949350505050565b7f594f44412f7065726d69742d65787069726564000000000000000000000000005f82015250565b5f613ca3601383613569565b9150613cae82613c6f565b602082019050919050565b5f6020820190508181035f830152613cd081613c97565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613d0e82613663565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d4057613d3f613cd7565b5b600182019050919050565b5f60c082019050613d5e5f830189613705565b613d6b6020830188613914565b613d786040830187613914565b613d8560608301866136d4565b613d9260808301856136d4565b613d9f60a08301846136d4565b979650505050505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f613de8600283613daa565b9150613df382613db4565b600282019050919050565b5f819050919050565b613e18613e13826136fc565b613dfe565b82525050565b5f613e2882613ddc565b9150613e348285613e07565b602082019150613e448284613e07565b6020820191508190509392505050565b7f594f44412f696e76616c69642d616464726573732d30000000000000000000005f82015250565b5f613e88601683613569565b9150613e9382613e54565b602082019050919050565b5f6020820190508181035f830152613eb581613e7c565b9050919050565b5f608082019050613ecf5f830187613705565b613edc602083018661381c565b613ee96040830185613705565b613ef66060830184613705565b95945050505050565b7f594f44412f696e76616c69642d7065726d6974000000000000000000000000005f82015250565b5f613f33601383613569565b9150613f3e82613eff565b602082019050919050565b5f6020820190508181035f830152613f6081613f27565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613fc1602683613569565b9150613fcc82613f67565b604082019050919050565b5f6020820190508181035f830152613fee81613fb5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61402c82613663565b915061403783613663565b92508261404757614046613ff5565b5b828204905092915050565b5f61405c82613663565b915061406783613663565b925082820390508181111561407f5761407e613cd7565b5b92915050565b5f61408f82613663565b915061409a83613663565b92508282019050808211156140b2576140b1613cd7565b5b92915050565b7f6d6178207363616c696e6720666163746f7220746f6f206c6f770000000000005f82015250565b5f6140ec601a83613569565b91506140f7826140b8565b602082019050919050565b5f6020820190508181035f830152614119816140e0565b9050919050565b5f6040820190506141335f830185613914565b61414060208301846136d4565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61417b602083613569565b915061418682614147565b602082019050919050565b5f6020820190508181035f8301526141a88161416f565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6141e3601d83613569565b91506141ee826141af565b602082019050919050565b5f6020820190508181035f830152614210816141d7565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f614271602183613569565b915061427c82614217565b604082019050919050565b5f6020820190508181035f83015261429e81614265565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6142ff602283613569565b915061430a826142a5565b604082019050919050565b5f6020820190508181035f83015261432c816142f3565b9050919050565b5f61433d82613663565b915061434883613663565b925082820261435681613663565b9150828204841483151761436d5761436c613cd7565b5b5092915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000005f82015250565b5f6143a8601783613daa565b91506143b382614374565b601782019050919050565b5f6143c88261355f565b6143d28185613daa565b93506143e2818560208601613579565b80840191505092915050565b7f206973206d697373696e6720726f6c65200000000000000000000000000000005f82015250565b5f614422601183613daa565b915061442d826143ee565b601182019050919050565b5f6144428261439c565b915061444e82856143be565b915061445982614416565b915061446582846143be565b91508190509392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6144cb602483613569565b91506144d682614471565b604082019050919050565b5f6020820190508181035f8301526144f8816144bf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614559602283613569565b9150614564826144ff565b604082019050919050565b5f6020820190508181035f8301526145868161454d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506145c88161389a565b92915050565b5f602082840312156145e3576145e26134a8565b5b5f6145f0848285016145ba565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e5f8201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b5f614653602a83613569565b915061465e826145f9565b604082019050919050565b5f6020820190508181035f83015261468081614647565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f6146be82613663565b91505f82036146d0576146cf613cd7565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e745f82015250565b5f61470f602083613569565b915061471a826146db565b602082019050919050565b5f6020820190508181035f83015261473c81614703565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f416464726573733a20696e73756666696369656e742062616c616e636520666f5f8201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b5f6147ca602683613569565b91506147d582614770565b604082019050919050565b5f6020820190508181035f8301526147f7816147be565b9050919050565b5f81519050919050565b5f81905092915050565b5f61481c826147fe565b6148268185614808565b9350614836818560208601613579565b80840191505092915050565b5f61484d8284614812565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000005f82015250565b5f61488c601d83613569565b915061489782614858565b602082019050919050565b5f6020820190508181035f8301526148b981614880565b905091905056fea26469706673582212204bb502f17c85dd90306a4f34af9746c4123c0e8a79dc8ecdc884767055626a9564736f6c63430008160033