Loading
[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AuthorizationExpired", "type": "error" }, { "inputs": [], "name": "AuthorizationNotYetValid", "type": "error" }, { "inputs": [], "name": "AuthorizationUsedOrInsufficient", "type": "error" }, { "inputs": [], "name": "CancelAuthorizationFailed", "type": "error" }, { "inputs": [], "name": "InsufficientDeposit", "type": "error" }, { "inputs": [], "name": "InsufficientFunds", "type": "error" }, { "inputs": [], "name": "Matured", "type": "error" }, { "inputs": [], "name": "PrematureRedeem", "type": "error" }, { "inputs": [], "name": "UnauthorizedCaller", "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": "authorizer", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "nonce", "type": "bytes32" } ], "name": "AuthorizationCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "authorizer", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "nonce", "type": "bytes32" } ], "name": "AuthorizationUsed", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "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": "DOMAIN_SEPARATOR", "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": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "authorizer", "type": "address" }, { "internalType": "bytes32", "name": "nonce", "type": "bytes32" } ], "name": "authorizationState", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "authorizer", "type": "address" }, { "internalType": "bytes32", "name": "nonce", "type": "bytes32" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "cancelAuthorization", "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": [], "name": "depositor", "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": [ { "internalType": "bytes32", "name": "structHash", "type": "bytes32" } ], "name": "hashTypedDataV4", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "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": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint8", "name": "__decimals", "type": "uint8" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "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": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "validAfter", "type": "uint256" }, { "internalType": "uint256", "name": "validBefore", "type": "uint256" }, { "internalType": "bytes32", "name": "nonce", "type": "bytes32" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "receiveWithAuthorization", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "transferFromWithPermit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "validAfter", "type": "uint256" }, { "internalType": "uint256", "name": "validBefore", "type": "uint256" }, { "internalType": "bytes32", "name": "nonce", "type": "bytes32" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "transferWithAuthorization", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608080604052346100bf575f549060ff8260081c1661006d575060ff80821603610033575b6040516129db90816100c48239f35b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f610024565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b5f80fdfe6080806040526004361015610012575f80fd5b60e05f35811c91826306fdde0314611ccb57508163095ea7b314611c875781631624f6c61461126157816318160ddd1461122657816323b872dd14611109578163313ce567146110c85781633644e51514611090578163395093511461101757816340c10f1914610f075781634980f28814610ec057816370a0823114610e5d5781637ecebe0014610dfa57816384b0196e14610c8557816388b7ab6314610bba57816395d89b4114610a9b5781639dc29fac146108d65781639fd5a6cf1461085b578163a457c2d71461075b578163a9059cbb1461070c578163b7b728991461054b578163c7c4ff46146104fa578163cf092995146102f657508063dd62ed3e1461027d578063e69ee1d2146101a95763e94a010214610131575f80fd5b346101a55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a55773ffffffffffffffffffffffffffffffffffffffff61017d611de5565b165f52609a60205260405f206024355f52602052602060ff60405f2054166040519015158152f35b5f80fd5b346101a55760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a5576101e0611de5565b6101e8611e08565b60443573ffffffffffffffffffffffffffffffffffffffff9283821682036101a5576064359260a43567ffffffffffffffff81116101a55761022e903690600401611e2b565b90953390831603610253576102519561024c928660843591866128e8565b612140565b005b60046040517f5c427cd9000000000000000000000000000000000000000000000000000000008152fd5b346101a55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a5576102b4611de5565b6102bc611e08565b9073ffffffffffffffffffffffffffffffffffffffff8091165f52603460205260405f2091165f52602052602060405f2054604051908152f35b346101a55761030436611e59565b91939790889795974211156104d057834210156104a65773ffffffffffffffffffffffffffffffffffffffff93848716998a5f52609a60205260405f20875f5260205260ff60405f20541661047c5761040b95610404946103fc938d936040519360208501957f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a2267875260408601528d1660608501528d608085015260a084015260c0830152888183015281526103b981611f37565b5190206103c46125bc565b604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9236916124fb565b90846126a3565b156102535784610251955f52609a60205260405f20825f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a55f80a3612140565b60046040517faba01284000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0f05f5bf000000000000000000000000000000000000000000000000000000008152fd5b60046040517fdf8e4372000000000000000000000000000000000000000000000000000000008152fd5b346101a5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a557602073ffffffffffffffffffffffffffffffffffffffff60995416604051908152f35b346101a55760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a557610582611de5565b6024359067ffffffffffffffff6044358181116101a5576105a7903690600401611e2b565b73ffffffffffffffffffffffffffffffffffffffff8492941693845f52609a60205260405f20865f5260205260ff60405f2054166106e2576040519060208201947f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a15974298652866040840152876060840152606083526080830190838210908211176106b55761064b95610645936103fc926040525190206103c46125bc565b916126a3565b1561025357805f52609a60205260405f20825f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f1cdd46ff242716cdaa72d159d339a485b3438398348d68f09d7c8c0a59353d815f80a3005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60046040517fa0861e64000000000000000000000000000000000000000000000000000000008152fd5b346101a55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a557610750610746611de5565b6024359033612140565b602060405160018152f35b346101a55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a557610792611de5565b60243590335f52603460205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f5260205260405f2054918083106107d75761075092039033612350565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152fd5b346101a55760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a557610892611de5565b61089a611e08565b604435906084359267ffffffffffffffff84116101a5576108d16108c5610251953690600401611e2b565b906064358686866128e8565b612350565b346101a55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a55761090d611de5565b6024359073ffffffffffffffffffffffffffffffffffffffff908160995416330361025357168015610a1757805f52603360205260405f205491808310610993576020817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef925f95858752603384520360408620558060355403603555604051908152a3005b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152fd5b346101a5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a5576040515f603754610ad981611ee6565b80845290600190818116908115610b755750600114610b1b575b610b1784610b0381860382611f54565b604051918291602083526020830190611d89565b0390f35b60375f90815292507f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae5b828410610b5d575050508101602001610b0382610af3565b80546020858701810191909152909301928101610b45565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208087019190915292151560051b85019092019250610b039150839050610af3565b346101a557610bc836611e59565b9193979073ffffffffffffffffffffffffffffffffffffffff9795979384881694853303610253578a4211156104d057814210156104a6578716998a5f52609a60205260405f20875f5260205260ff60405f20541661047c5761040b95610404946103fc938d936040519360208501957fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de88752604086015260608501528d608085015260a084015260c0830152888183015281526103b981611f37565b346101a5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a5576065541580610df0575b15610d9257610cca611f95565b610cd261206f565b604051906020908183019383851067ffffffffffffffff8611176106b55794939290610d478391856040525f8452610d396040519889987f0f000000000000000000000000000000000000000000000000000000000000008a5280868b0152890190611d89565b908782036040890152611d89565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b828110610d7b57505050500390f35b835185528695509381019392810192600101610d6c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152fd5b5060665415610cbd565b346101a55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a55773ffffffffffffffffffffffffffffffffffffffff610e46611de5565b165f52609b602052602060405f2054604051908152f35b346101a55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a55773ffffffffffffffffffffffffffffffffffffffff610ea9611de5565b165f526033602052602060405f2054604051908152f35b346101a55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a5576020610eff6004356103c46125bc565b604051908152f35b346101a55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a557610f3e611de5565b6024359073ffffffffffffffffffffffffffffffffffffffff90816099541633036102535716908115610fb9577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082610f9c5f94603554612106565b6035558484526033825260408420818154019055604051908152a3005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b346101a55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a557610750611051611de5565b335f52603460205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f5260205261108960243560405f2054612106565b9033612350565b346101a5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a5576020610eff6125bc565b346101a5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a557602060ff60995460a01c16604051908152f35b346101a55760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a557611140611de5565b611148611e08565b6044359073ffffffffffffffffffffffffffffffffffffffff83165f52603460205260405f20335f5260205260405f2054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84036111ac575b6107509350612140565b8284106111c8576111c38361075095033383612350565b6111a2565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b346101a5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a5576020603554604051908152f35b346101a55760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a55760043567ffffffffffffffff81116101a5576112b0903690600401611e2b565b60243567ffffffffffffffff81116101a5576112d0903690600401611e2b565b92909160ff60443516604435036101a5575f5460ff8160081c161593848095611c7a575b8015611c63575b15611bdf57818560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006113469516175f55611bb1575b5061133e3684866124fb565b9536916124fb565b9361136060ff5f5460081c1661135b81612531565b612531565b80519067ffffffffffffffff82116106b557819061137f603654611ee6565b601f8111611b09575b50602090601f8311600114611a27575f92611a1c575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176036555b835167ffffffffffffffff81116106b5576113ed603754611ee6565b601f811161197b575b506020601f821160011461189857819061144c95965f9261188d575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176037555b36916124fb565b90604051906040820182811067ffffffffffffffff8211176106b557604052600182527f310000000000000000000000000000000000000000000000000000000000000060208301526114a960ff5f5460081c1661135b81612531565b825167ffffffffffffffff81116106b5576114c5606754611ee6565b601f811161182a575b506020601f821160011461176c57819293945f92611761575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176067555b815167ffffffffffffffff81116106b557611536606854611ee6565b601f81116116fe575b50602092601f821160011461164257928192935f92611637575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176068555b5f6065555f60665560995433907fffffffffffffffffffffff00000000000000000000000000000000000000000074ff000000000000000000000000000000000000000060443560a01b16911617176099556115e457005b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff5f54165f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a1005b015190508380611559565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082169360685f527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c22097753915f5b8681106116e657508360019596106116af575b505050811b0160685561158c565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690558380806116a1565b9192602060018192868501518155019401920161168e565b60685f527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c22097753601f830160051c81019160208410611757575b601f0160051c01905b81811061174c575061153f565b5f815560010161173f565b9091508190611736565b0151905084806114e7565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082169060675f527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae915f5b818110611812575095836001959697106117db575b505050811b0160675561151a565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690558480806117cd565b9192602060018192868b0151815501940192016117b8565b60675f527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae601f830160051c81019160208410611883575b601f0160051c01905b81811061187857506114ce565b5f815560010161186b565b9091508190611862565b015190508680611412565b60375f527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae955f5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084168110611963575095829161144c9697837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0600196161061192c575b505050811b01603755611445565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c1916905586808061191e565b828201518855600190970196602092830192016118c0565b60375f52601f820160051c7f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae0190602083106119f4575b601f0160051c7f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae01905b8181106119e957506113f6565b5f81556001016119dc565b7f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae91506119b2565b01519050868061139e565b925060365f527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8905f935b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084168510611aee5760019450837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0811610611ab7575b505050811b016036556113d1565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055868080611aa9565b81810151835560209485019460019093019290910190611a52565b90915060365f52601f830160051c7f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b80160208410611b8a575b908392915b601f820160051c7f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8018110611b7c5750611388565b5f8155849350600101611b47565b507f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8611b42565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016610101175f5586611332565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b1580156112fb5750600160ff8316146112fb565b50600160ff8316106112f4565b346101a55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a557610750611cc1611de5565b6024359033612350565b346101a5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a5575f603654611d0681611ee6565b80845290600190818116908115610b755750600114611d2f57610b1784610b0381860382611f54565b60365f90815292507f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b85b828410611d71575050508101602001610b0382610af3565b80546020858701810191909152909301928101611d59565b91908251928382525f5b848110611dd15750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f845f6020809697860101520116010190565b602081830181015184830182015201611d93565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101a557565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101a557565b9181601f840112156101a55782359167ffffffffffffffff83116101a557602083818601950101116101a557565b60e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126101a55773ffffffffffffffffffffffffffffffffffffffff9160043583811681036101a5579260243590811681036101a5579160443591606435916084359160a4359160c4359067ffffffffffffffff82116101a557611ee291600401611e2b565b9091565b90600182811c92168015611f2d575b6020831014611f0057565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611ef5565b610100810190811067ffffffffffffffff8211176106b557604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106b557604052565b604051905f8260675491611fa883611ee6565b8083529260019081811690811561202f5750600114611fd1575b50611fcf92500383611f54565b565b60675f90815291507f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae5b8483106120145750611fcf93505081016020015f611fc2565b81935090816020925483858a01015201910190918592611ffb565b60209350611fcf9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f611fc2565b604051905f826068549161208283611ee6565b8083529260019081811690811561202f57506001146120a85750611fcf92500383611f54565b60685f90815291507fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977535b8483106120eb5750611fcf93505081016020015f611fc2565b81935090816020925483858a010152019101909185926120d2565b9190820180921161211357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff8091169182156122cc5716918215612248575f82815260336020526040812054918083106121c457604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95876020965260338652038282205586815220818154019055604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff80911691821561243e57169182156123ba5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f526034825260405f20855f5282528060405f2055604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152fd5b67ffffffffffffffff81116106b557601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192612507826124c1565b916125156040519384611f54565b8294818452818301116101a5578281602093845f960137010152565b1561253857565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b6125c4612632565b6125cc61267d565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176106b55760405251902090565b61263a611f95565b805190811561264a576020012090565b505060655480156126585790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b61268561206f565b8051908115612695576020012090565b505060665480156126585790565b906126ae838261281d565b60058195929510156127f0571593846127cd575b5083156126d0575b50505090565b9091925060405161274a8161271e60208201947f1626ba7e00000000000000000000000000000000000000000000000000000000968787526024840152604060448401526064830190611d89565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611f54565b5f938492839251915afa913d156127c5573d90612766826124c1565b916127746040519384611f54565b82523d81602084013e5b836127b7575b83612795575b5050505f80806126ca565b909192506020828051810103126127b4575060200151145f808061278a565b80fd5b925060208151101592612784565b60609061277e565b73ffffffffffffffffffffffffffffffffffffffff84811691161493505f6126c2565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9060418151145f1461284557611ee291602082015190606060408401519301515f1a9061284e565b50505f90600290565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083116128dd5791608094939160ff6020946040519485521684840152604083015260608201525f93849182805260015afa156128d057815173ffffffffffffffffffffffffffffffffffffffff8116156128ca579190565b50600190565b50604051903d90823e3d90fd5b505050505f90600390565b93909194928042116104a65773ffffffffffffffffffffffffffffffffffffffff80861696875f52609b60205260405f20918254926001840190556040519560208701997f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98b526040880152166060860152608085015260a084015260c083015260c0825260e0820182811067ffffffffffffffff8211176106b55761299e95610645936103fc926040525190206103c46125bc565b156102535756fea2646970667358221220be417a6a851c3ec9a9cef87bea2e669cc1abf6493b731369f315c942de37fb5464736f6c63430008140033