[ { "inputs": [ { "internalType": "contract IRoyalties", "name": "_royalties", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "AlreadyActivatedCannotReactivate", "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": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "IDsDoNotMatchValuesLength", "type": "error" }, { "inputs": [], "name": "InsufficientBalance", "type": "error" }, { "inputs": [], "name": "Invalid20zTransfer", "type": "error" }, { "inputs": [], "name": "InvalidAmount20z", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "InvalidParams", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "OnlySaleStrategy", "type": "error" }, { "inputs": [], "name": "OnlySupportReceivingERC1155AssociatedZoraNFT", "type": "error" }, { "inputs": [], "name": "OnlySupportReceivingERC721UniswapPoolNFTs", "type": "error" }, { "inputs": [], "name": "PoolCreationFailed", "type": "error" }, { "inputs": [], "name": "RecipientAddressZero", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "inputs": [], "name": "SecondaryMarketHasNotYetStarted", "type": "error" }, { "inputs": [], "name": "TokenIdNotValidToSwap", "type": "error" }, { "inputs": [], "name": "UnknownReceiveActionDataCall", "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": "erc20z", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount20z", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "collection", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1155", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" } ], "name": "ConvertedTo1155", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "erc20z", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount20z", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "collection", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1155", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" } ], "name": "ConvertedTo20z", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "ReceivedAdminMintNFTs", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "token0", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "token1", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "fee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "positionId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "lpLiquidity", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "erc20Excess", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "erc1155Excess", "type": "uint256" } ], "name": "SecondaryMarketActivated", "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": "WETH", "outputs": [ { "internalType": "contract IWETH", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "erc20TotalSupply", "type": "uint256" }, { "internalType": "uint256", "name": "erc20Reserve", "type": "uint256" }, { "internalType": "uint256", "name": "erc20Liquidity", "type": "uint256" }, { "internalType": "uint256", "name": "erc20Excess", "type": "uint256" }, { "internalType": "uint256", "name": "erc1155Excess", "type": "uint256" } ], "name": "activate", "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": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "collection", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" } ], "name": "initialize", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nonfungiblePositionManager", "outputs": [ { "internalType": "contract INonfungiblePositionManager", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "onERC1155BatchReceived", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "onERC1155Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "onERC721Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "royalties", "outputs": [ { "internalType": "contract IRoyalties", "name": "", "type": "address" } ], "stateMutability": "view", "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": "tokenInfo", "outputs": [ { "components": [ { "internalType": "address", "name": "collection", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "creator", "type": "address" } ], "internalType": "struct IERC20Z.TokenInfo", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenLiquidityInfo", "outputs": [ { "internalType": "address", "name": "pool", "type": "address" }, { "internalType": "uint256", "name": "initialLiquidityPositionId", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenURI", "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": "uint256", "name": "amount20z", "type": "uint256" }, { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "unwrap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount1155", "type": "uint256" }, { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "wrap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60e060409080825234620002ba578062003c7d8038038091620000238285620002bf565b8339602092839181010312620002ba57516001600160a01b039190828116808203620002ba577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054909481871c60ff16159390916001600160401b03811680159081620002b1575b6001149081620002a6575b1590816200029c575b506200028b576001600160401b031981166001178755846200026d575b5060c05285516315ab88c960e31b81528481600481600080975af19081156200026357839162000222575b5060805281848260c051166004895180968193635a25139160e11b83525af192831562000216578193620001cd575b50505060a0526200018c575b82516139839081620002fa823960805181818161055a0152818161094d0152611f19015260a0518181816104eb015281816109e201528181610a2301528181610cdd01528181610d4a01528181610e090152611fb4015260c0518181816102880152610db40152f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29168ff0000000000000000198154169055825160018152a1388062000123565b909192508481813d83116200020e575b620001e98183620002bf565b810103126200020a5751918216820362000207575038808062000117565b80fd5b5080fd5b503d620001dd565b508651903d90823e3d90fd5b90508481813d83116200025b575b6200023c8183620002bf565b810103126200025757518181168103620002575738620000e8565b8280fd5b503d62000230565b87513d85823e3d90fd5b6001600160481b0319166801000000000000000117865538620000bd565b875163f92ee8a960e01b8152600490fd5b90501538620000a0565b303b15915062000097565b8691506200008c565b600080fd5b601f909101601f19168101906001600160401b03821190821017620002e357604052565b634e487b7160e01b600052604160045260246000fdfe6080806040526004361015610085575b50361561001b57600080fd5b73ffffffffffffffffffffffffffffffffffffffff7feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d035416330361005b57005b60046040517f792ad84d000000000000000000000000000000000000000000000000000000008152fd5b600090813560e01c90816301ffc9a7146127bf5750806306fdde03146126d4578063095ea7b31461258757806313bac820146123fb578063148f51f314611c3b578063150b7a0214611b4657806318160ddd14611aeb57806323b872dd146118f3578063313ce567146118b95780633c130d90146102ac5780636addb6631461176c57806370a08231146116ea5780637647691d14611441578063956447d8146107b157806395d89b411461066e578063a4990fa6146105ce578063a9059cbb1461057e578063ad5c46481461050f578063b44a2722146104a0578063bc197c8114610367578063dd62ed3e146102b1578063e8a3d485146102ac578063f053dc5c1461023d5763f23a6e610361000f573461023a5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a576101cd6128e3565b6101d5612906565b6084359267ffffffffffffffff841161023a57506101fa610210933690600401612a39565b91610203613074565b60643591604435916130de565b60206040517ff23a6e61000000000000000000000000000000000000000000000000000000008152f35b80fd5b503461023a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b612a57565b503461023a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a576102e96128e3565b73ffffffffffffffffffffffffffffffffffffffff61034f610309612906565b9273ffffffffffffffffffffffffffffffffffffffff166000527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01602052604060002090565b91166000526020526020604060002054604051908152f35b503461023a5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a5761039f6128e3565b906103a8612906565b9167ffffffffffffffff9160443583811161049c576103cb903690600401612bb8565b91606435848111610498576103e4903690600401612bb8565b93608435908111610498576103fd903690600401612a39565b91610406613074565b835185510361046e575b8351811015610444578061043e8461042a60019488612cda565b51610435848a612cda565b51908a876130de565b01610410565b60206040517fbc197c81000000000000000000000000000000000000000000000000000000008152f35b60046040517f2cab14e3000000000000000000000000000000000000000000000000000000008152fd5b8280fd5b5080fd5b503461023a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461023a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461023a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a576105c36105b96128e3565b6024359033612d1d565b602060405160018152f35b503461023a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a577feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d02547feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d04546040805173ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915290f35b0390f35b503461023a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a576040519080827f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049283546106d081612c1f565b938484526020956001928760018216918260001461076e575050600114610715575b50505061070192500383612987565b61066a6040519282849384528301906128a0565b8152859250907f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa5b85831061075657505061070193508201013880806106f2565b8054838901850152879450869390920191810161073d565b92509450506107019592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201013880806106f2565b503461023a5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a576004356044359060027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054146114175760027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005573ffffffffffffffffffffffffffffffffffffffff7feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d035416330361005b5761088a60643561088584602435612c9e565b612c9e565b81036113ed577feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d04546113c3573015611392577f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace026108e8828254612c9e565b9055306000527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604060002081815401905560405190815260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203093a37f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1647813b1561138e57836040517fd0e30db0000000000000000000000000000000000000000000000000000000008152818160048186885af18015610fd35761137a575b5050610a088173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001684612e80565b610a498373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630612e80565b3082109081156113735782915b1561136d5730925b73ffffffffffffffffffffffffffffffffffffffff83161490811561135a576c5eea71d7496394000000000000915b156113545793905b73ffffffffffffffffffffffffffffffffffffffff8116906401000276a39283831115968760001461123f57610acb91506136d0565b6fffffffffffffffffffffffffffffffff811690810361123a57915b8788976000146110f9575050507bffffffffffffffffffffffffffffffff000000000000000000000000610b1e9160601b1661375b565b04925b6040518061016081011067ffffffffffffffff6101608301111761104957610160810160405273ffffffffffffffffffffffffffffffffffffffff8316815273ffffffffffffffffffffffffffffffffffffffff8416602082015261271060408201527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276606060820152620d89a060808201528460a08201528160c08201528560e0820152856101008201523061012082015242610140820152610140604051917f8831645600000000000000000000000000000000000000000000000000000000835273ffffffffffffffffffffffffffffffffffffffff815116600484015273ffffffffffffffffffffffffffffffffffffffff602082015116602484015262ffffff6040820151166044840152606081015160020b6064840152608081015160020b608484015260a081015160a484015260c081015160c484015260e081015160e484015261010081015161010484015273ffffffffffffffffffffffffffffffffffffffff610120820151166101248401520151610144820152608081610164818973ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af19182156110ee5786918793611094575b50817feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d045573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163b1561109057866040517fb88d4fde00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016602482015283604482015260806064820152816084820152818160a4818373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af18015610fd357611078575b5050926fffffffffffffffffffffffffffffffff60e09373ffffffffffffffffffffffffffffffffffffffff937fcdfae23ab73652b197b1d3756f9ec1ea5bf4b7af041fd45a5682e1349cda4d6c96856040519916895260208901526127106040890152606088015216608086015260643560a086015260843560c08601521692a3606435610fe2575b608435610eef575b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005580f35b8073ffffffffffffffffffffffffffffffffffffffff7feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d0054167feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d0154813b15610fde57829160c4839260405194859384927ff242432a00000000000000000000000000000000000000000000000000000000845230600485015261dead60248501526044840152608435606484015260a06084840152600060a48401525af18015610fd357610fbf575b5050610ec8565b610fc890612957565b61023a578038610fb8565b6040513d84823e3d90fd5b5050fd5b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015261dead6024820152606435604482015260448152608081019080821067ffffffffffffffff8311176110495761104491604052306133a0565b610ec0565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61108490959295612957565b61109057928638610e36565b8680fd5b915091506080813d6080116110e6575b816110b160809383612987565b810103126110e25760208151910151906fffffffffffffffffffffffffffffffff8216820361109057909138610d0f565b8580fd5b3d91506110a4565b6040513d88823e3d90fd5b919650929073fffd8963efd218a4c550641cdaba7bbbbc8ebe70908185101561121a575086908080861161120d575b506111798173ffffffffffffffffffffffffffffffffffffffff8061114e868296613469565b169116907bffffffffffffffffffffffffffffffff0000000000000000000000008760601b16613819565b91169081156111de576111ce946fffffffffffffffffffffffffffffffff9373ffffffffffffffffffffffffffffffffffffffff936111c69304998091809381116111d3575b5050613469565b16911661366d565b610b21565b9150915038806111bf565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b9150879050611179611128565b965050506111ce91506fffffffffffffffffffffffffffffffff166135eb565b600080fd5b73fffd8963efd218a4c550641cdaba7bbbbc8ebe708085101561132957906112a091848180881161131c575b5061129973ffffffffffffffffffffffffffffffffffffffff9161129383851684831661366d565b93613469565b1691613819565b906fffffffffffffffffffffffffffffffff9081831692830361123a576112f1908685878211611312575b73ffffffffffffffffffffffffffffffffffffffff916112ea91613469565b1690613539565b90811690810361123a578082101561130b57505b91610ae7565b9050611305565b50859050876112cb565b869250905061129961126b565b50506113349061348f565b6fffffffffffffffffffffffffffffffff811690810361123a5791610ae7565b90610a95565b6b02b276f04f7bc29956eab09791610a8d565b82610a5e565b3091610a56565b61138390612957565b61138e5783386109c5565b8380fd5b602483604051907fec442f050000000000000000000000000000000000000000000000000000000082526004820152fd5b60046040517faf78f99c000000000000000000000000000000000000000000000000000000008152fd5b60046040517fa86b6512000000000000000000000000000000000000000000000000000000008152fd5b60046040517f3ee5aeb5000000000000000000000000000000000000000000000000000000008152fd5b503461023a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a5760043561147c612906565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254156116c05773ffffffffffffffffffffffffffffffffffffffff9081811690811561169657670de0b6b3a764000080850661166c577feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d0080547feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d018054604080518a815273ffffffffffffffffffffffffffffffffffffffff948a1685166020820152908101919091529388046060850181905294909116608084015292949130907f2bc5ff59b619fea2f63be6093c01af451e26379374842c7021d5a36a5b30c0d89060a090a2604051957f23b872dd00000000000000000000000000000000000000000000000000000000602088015233602488015230604488015260648701526064865260a0860186811067ffffffffffffffff8211176110495787966115e991604052306133a0565b5416905490803b156116685784928360c49260405196879586947ff242432a00000000000000000000000000000000000000000000000000000000865230600487015260248601526044850152606484015260a06084840152600060a48401525af18015610fd3576116585750f35b61166190612957565b61023a5780f35b8480fd5b60046040517ff5b5ae2c000000000000000000000000000000000000000000000000000000008152fd5b60046040517f66736f63000000000000000000000000000000000000000000000000000000008152fd5b60046040517fd043524f000000000000000000000000000000000000000000000000000000008152fd5b503461023a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a57604060209173ffffffffffffffffffffffffffffffffffffffff61173c6128e3565b1681527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0083522054604051908152f35b503461023a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a576040516117a78161296b565b8181528160406020928284820152015273ffffffffffffffffffffffffffffffffffffffff807feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d005416917feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d015490604051917f5e4e04040000000000000000000000000000000000000000000000000000000083528060048401528183602481885afa9283156110ee576060969361188a575b5083604080516118688161296b565b8781528481019384520193168352604051948552519084015251166040820152f35b6118ab919350823d84116118b2575b6118a38183612987565b810190612c72565b9138611859565b503d611899565b503461023a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a57602060405160128152f35b503461023a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a5761192b6128e3565b611933612906565b604435906119808373ffffffffffffffffffffffffffffffffffffffff166000527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01602052604060002090565b33600052602052604060002054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84036119c0575b6105c39350612d1d565b828410611aac5773ffffffffffffffffffffffffffffffffffffffff811615611a7b573315611a4a57826105c394611a378373ffffffffffffffffffffffffffffffffffffffff166000527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01602052604060002090565b33600052602052036040600020556119b6565b60246040517f94280d6200000000000000000000000000000000000000000000000000000000815260006004820152fd5b60246040517fe602df0500000000000000000000000000000000000000000000000000000000815260006004820152fd5b6040517ffb8f41b20000000000000000000000000000000000000000000000000000000081523360048201526024810185905260448101849052606490fd5b503461023a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a5760207f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254604051908152f35b503461023a5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a57611b7e6128e3565b50611b87612906565b5060643567ffffffffffffffff811161049c57611ba8903690600401612a39565b5073ffffffffffffffffffffffffffffffffffffffff7feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d0254163303611c115760206040517f150b7a02000000000000000000000000000000000000000000000000000000008152f35b60046040517f6c0dfac8000000000000000000000000000000000000000000000000000000008152fd5b503461023a5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a57611c736128e3565b67ffffffffffffffff60443581811161138e57611c94903690600401612929565b90916064358181116110e257611cae903690600401612929565b90917ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009384549360ff8560401c161594838116978815806123f4575b6001809a1490816123ea575b1590816123e1575b506123b757611d489382888b7fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000611d409616178b55612382575b503691612a02565b933691612a02565b91611d5161332f565b611d5961332f565b805182811161235557807f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0392611d8f8454612c1f565b601f81116122e6575b50602090601f831160011461222e578b92612223575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82891b9260031b1c19161790555b81519081116121f657807f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0492611e158454612c1f565b601f8111612187575b50602090601f83116001146120cf5789926120c4575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82871b9260031b1c19161790555b7fffffffffffffffffffffffff0000000000000000000000000000000000000000937feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d03338682541617905573ffffffffffffffffffffffffffffffffffffffff90817feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d009116868254161790556024357feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d0155807f00000000000000000000000000000000000000000000000000000000000000001681308210806000146120bd5782905b156120b5578130915b169283036120a157816c5eea71d7496394000000000000915b604051947f13ead562000000000000000000000000000000000000000000000000000000008652600486015216602484015261271060448401521660648201526020816084818a867f0000000000000000000000000000000000000000000000000000000000000000165af19081156120965760209791612079575b501693847feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d0291825416179055612021575b5050604051908152f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291817fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff869354169055604051908152a13880612017565b6120909150873d89116118b2576118a38183612987565b38611fe6565b6040513d89823e3d90fd5b816b02b276f04f7bc29956eab09791611f6a565b818391611f51565b3090611f48565b015190503880611e34565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe088941691858b527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa928b5b81811061216f57508411612138575b505050811b019055611e65565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c1916905538808061212b565b8284015185558a96909401936020938401930161211c565b9091508389527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f840160051c810191602085106121ec575b84939291601f8a920160051c01915b8281106121de575050611e1e565b8b81558594508991016121d0565b90915081906121c1565b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b015190503880611dae565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08a941691858d527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0928d5b8181106122ce57508411612297575b505050811b019055611ddf565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c1916905538808061228a565b8284015185558c96909401936020938401930161227b565b909150838b527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f840160051c8101916020851061234b575b84939291601f8c920160051c01915b82811061233d575050611d98565b8d81558594508b910161232f565b9091508190612320565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b7fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000166801000000000000000117895538611d38565b60046040517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b90501538611cfe565b303b159150611cf6565b5086611cea565b503461023a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a57612433612906565b73ffffffffffffffffffffffffffffffffffffffff90817feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d0054167feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d0154926040519216602083015260208252604082019282841067ffffffffffffffff85111761255a579084929184604052813b1561138e57837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0869485937ff242432a000000000000000000000000000000000000000000000000000000008552336044830152306064830152608482015260043560a482015260a060c482015261253b60e48201826128a0565b0301925af18015610fd35761254e575080f35b61255790612957565b80f35b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b503461023a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a576125bf6128e3565b6024359033156126a35773ffffffffffffffffffffffffffffffffffffffff1691821561267257604082916126333373ffffffffffffffffffffffffffffffffffffffff166000527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01602052604060002090565b85825260205220556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b602490604051907f94280d620000000000000000000000000000000000000000000000000000000082526004820152fd5b602483604051907fe602df050000000000000000000000000000000000000000000000000000000082526004820152fd5b503461023a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a576040519080827f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0392835461273681612c1f565b938484526020956001928760018216918260001461076e5750506001146127665750505061070192500383612987565b8152859250907f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab05b8583106127a757505061070193508201013880806106f2565b8054838901850152879450869390920191810161278e565b90503461049c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261049c576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361049857602092507f4e2312e0000000000000000000000000000000000000000000000000000000008114908115612853575b5015158152f35b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150143861284c565b60005b8381106128905750506000910152565b8181015183820152602001612880565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f6020936128dc8151809281875287808801910161287d565b0116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361123a57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361123a57565b9181601f8401121561123a5782359167ffffffffffffffff831161123a576020838186019501011161123a57565b67ffffffffffffffff811161104957604052565b6060810190811067ffffffffffffffff82111761104957604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761104957604052565b67ffffffffffffffff811161104957601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192612a0e826129c8565b91612a1c6040519384612987565b82948184528183011161123a578281602093846000960137010152565b9080601f8301121561123a57816020612a5493359101612a02565b90565b3461123a576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023a5773ffffffffffffffffffffffffffffffffffffffff7feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d005416817feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d01546024604051809481937f0e89341c00000000000000000000000000000000000000000000000000000000835260048301525afa908115610fd3578291612b39575b6040516020808252819061066a908201856128a0565b90503d8083833e612b4a8183612987565b8101906020818303126104985780519067ffffffffffffffff821161138e570181601f8201121561049857805192612b81846129c8565b92612b8f6040519485612987565b8484526020858401011161023a575061066a92612bb2916020808501910161287d565b38612b23565b81601f8201121561123a5780359160209167ffffffffffffffff8411611049578360051b9060405194612bed85840187612987565b8552838086019282010192831161123a578301905b828210612c10575050505090565b81358152908301908301612c02565b90600182811c92168015612c68575b6020831014612c3957565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691612c2e565b9081602091031261123a575173ffffffffffffffffffffffffffffffffffffffff8116810361123a5790565b91908201809211612cab57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8051821015612cee5760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9173ffffffffffffffffffffffffffffffffffffffff808416928315612e4f5716928315612e1e576000908382527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0080602052604083205491848310612dc5575082847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef959360409388602097528652038282205586815220818154019055604051908152a3565b6040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91909116600482015260248101929092525060448101839052606490fd5b60246040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152fd5b60246040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152fd5b73ffffffffffffffffffffffffffffffffffffffff80821692604051917fdd62ed3e0000000000000000000000000000000000000000000000000000000083523060048401528116918260248201526020958682604481895afa801561306857600090613039575b612ef29250612c9e565b9360008060405196612f8288612f568b8201937f095ea7b30000000000000000000000000000000000000000000000000000000098898652602484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018a5289612987565b87519082855af190612f92613439565b82613006575b5081612ffb575b5015612fad575b5050505050565b60405194850152602484015260006044840152604483526080830183811067ffffffffffffffff82111761104957612ff193612fec91604052826133a0565b6133a0565b3880808080612fa6565b90503b151538612f9f565b809192505190878215928315613021575b5050509038612f98565b6130319350820181019101613388565b388781613017565b508682813d8311613061575b61304f8183612987565b8101031261123a57612ef29151612ee8565b503d613045565b6040513d6000823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff7feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d00541633036130b457565b60046040517f0e7d3d78000000000000000000000000000000000000000000000000000000008152fd5b939291907feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d01918254036133055773ffffffffffffffffffffffffffffffffffffffff9485807feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d035416911614806132fb575b6132c9577f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254156116c057928051806132a3575b50508383161561169657670de0b6b3a764000093848302948386041483151715612cab576040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff85166024820152604480820187905281527fb412afd8f0671f3dd710666d2630defaa5a8383b2e4afbe18be3833932b8bee59461329e9290916132339061322d606482612987565b306133a0565b7feefd27cc0d91b24ef31e7ac9cedd39e394575798761a28c0ac33d509617d9d005416925493604051948594309886936080939695919660a0860197865273ffffffffffffffffffffffffffffffffffffffff80941660208701526040860152606085015216910152565b0390a2565b81929450906020918101031261123a576020015183811680910361123a57913880613183565b50507fdc3566211008e860f7cb40d46544914ecc46926071a72eeab65553571df5c87c925060209150604051908152a1565b508481161561314f565b60046040517f32891a7f000000000000000000000000000000000000000000000000000000008152fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561335e57565b60046040517fd7e6bcf8000000000000000000000000000000000000000000000000000000008152fd5b9081602091031261123a5751801515810361123a5790565b60008073ffffffffffffffffffffffffffffffffffffffff6133d793169360208151910182865af16133d0613439565b90836138ad565b805190811515918261341e575b50506133ed5750565b602490604051907f5274afe70000000000000000000000000000000000000000000000000000000082526004820152fd5b6134319250602080918301019101613388565b1538806133e4565b3d15613464573d9061344a826129c8565b916134586040519384612987565b82523d6000602084013e565b606090565b73ffffffffffffffffffffffffffffffffffffffff9182169082160391908211612cab57565b6c010000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183098260601b918280831092039180831461351b5773fffd8963efd218a4c550641cdaba7bbabc8c47cd920382111561123a577f3d25fdf4a42f9a73bc26242f1f85c5028238f18f47f93228ee3b25218081fd05930990030290565b50505073fffd8963efd218a4c550641cdaba7bbabc8c47cd91500490565b906c01000000000000000000000000907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff828409928060601b928380861095039480860395146135dd578483111561123a578291096001821901821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b50508092501561123a570490565b73fffd8963efd218a4c550641cdaba7bbabc8c47cd907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8282099082810292838084109303928084039314613664576c01000000000000000000000000918383111561123a570990828211900360a01b910360601c1790565b50505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8282099082810292838084109303928084039314613664576c01000000000000000000000000918383111561123a570990828211900360a01b910360601c1790565b6c0100000000de5c837580bb929a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818309818302918280831092039180831461351b5773fffd8963efd218a4c550641cdaba7bbabc8c47cd920382111561123a577f3d25fdf4a42f9a73bc26242f1f85c5028238f18f47f93228ee3b25218081fd05930990030290565b73fffd8963efd218a4c550641cdaba7bbabc8c47cd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818309818302918280831092039180830392146137fc5773fffd8963efd218a4c550641cdaba7bbbbc8ebe70908282111561123a577fbba5abf874bed4681c30403aee609b77b6f646a5016c66f538c618c5176af7d7940990828211900360fc1b910360041c170290565b505073fffd8963efd218a4c550641cdaba7bbbbc8ebe7091500490565b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82840992828102928380861095039480860395146135dd578483111561123a578291096001821901821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b906138ec57508051156138c257805190602001fd5b60046040517f1425ea42000000000000000000000000000000000000000000000000000000008152fd5b81511580613944575b6138fd575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b156138f556fea264697066735822122021becb8c517fefa5631622867f78a8c715ba3a8136c4c212ef7edf898511e1ef64736f6c6343000817003300000000000000000000000077777771df91c56c5468746e80dfa8b880f9719f