0 txs
0 calls
constructor
constructor()
functions
implementation
viewfunction implementation() view returns (address)
predictAddress
viewfunction predictAddress(bytes32 salt) view returns (address)
summon
nonpayablefunction summon(bytes32 salt, string name, string symbol) returns (address)
events
ShardwalletCreation
event ShardwalletCreation(address shardwallet, address owner)
errors
No errors.
creation bytecode
0x60a060405234801561001057600080fd5b5060405161001d906100bb565b604051809103906000f080158015610039573d6000803e3d6000fd5b506001600160a01b03166080818152604051639065714760e01b8152306004820152606060248201526000606482018190526044820192909252608481019190915263906571479060a401600060405180830381600087803b15801561009e57600080fd5b505af11580156100b2573d6000803e3d6000fd5b505050506100c8565b6144038061068b83390190565b60805161059c6100ef6000396000818160480152818160be0152610181015261059c6000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80635c60da1b146100465780639c76b65414610091578063d9ce6884146100a4575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61006861009f3660046103f2565b6100b7565b6100686100b2366004610454565b6100e9565b60006100e37f000000000000000000000000000000000000000000000000000000000000000083610291565b92915050565b60003360601b6bffffffffffffffffffffffff1916866bffffffffffffffffffffffff19161461017a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f536861726477616c6c6574466163746f72793a20756e617574686f72697a656460448201526064015b60405180910390fd5b60006101a67f000000000000000000000000000000000000000000000000000000000000000088610314565b6040517f90657147000000000000000000000000000000000000000000000000000000008152909150819073ffffffffffffffffffffffffffffffffffffffff8216906390657147906102059033908b908b908b908b90600401610517565b600060405180830381600087803b15801561021f57600080fd5b505af1158015610233573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff851681523360208201527fc18510dd0bb53f044b032fe0380f6c21414b6682da94de1a7b673a362a631ab3935001905060405180910390a1979650505050505050565b600061030d8383306040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000008152606093841b60148201527f5af43d82803e903d91602b57fd5bf3ff000000000000000000000000000000006028820152921b6038830152604c8201526037808220606c830152605591012090565b9392505050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528360601b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152826037826000f591505073ffffffffffffffffffffffffffffffffffffffff81166100e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401610171565b60006020828403121561040457600080fd5b5035919050565b60008083601f84011261041d57600080fd5b50813567ffffffffffffffff81111561043557600080fd5b60208301915083602082850101111561044d57600080fd5b9250929050565b60008060008060006060868803121561046c57600080fd5b85359450602086013567ffffffffffffffff8082111561048b57600080fd5b61049789838a0161040b565b909650945060408801359150808211156104b057600080fd5b506104bd8882890161040b565b969995985093965092949392505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff861681526060602082015260006105476060830186886104ce565b828103604084015261055a8185876104ce565b9897505050505050505056fea2646970667358221220cd5fe9dce8452fb8ed51d1cfa11122932d3784f9cecb7c4b2a70589320b67bc264736f6c6343000809003360806040523480156200001157600080fd5b506040805160208082018084526000808452845192830190945283825282519293919262000041929190620000da565b50805162000057906001906020840190620000da565b505050620000746200006e6200007a60201b60201c565b6200007e565b620001bd565b3390565b600680546001600160a01b038381166201000081810262010000600160b01b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620000e89062000180565b90600052602060002090601f0160209004810192826200010c576000855562000157565b82601f106200012757805160ff191683800117855562000157565b8280016001018555821562000157579182015b82811115620001575782518255916020019190600101906200013a565b506200016592915062000169565b5090565b5b808211156200016557600081556001016200016a565b600181811c908216806200019557607f821691505b60208210811415620001b757634e487b7160e01b600052602260045260246000fd5b50919050565b61423680620001cd6000396000f3fe6080604052600436106101bb5760003560e01c806370a08231116100ec578063c620c3fb1161008a578063de62d84211610064578063de62d8421461055d578063e985e9c514610596578063ef9b881a146105ec578063f2fde38b1461060c57600080fd5b8063c620c3fb146104e9578063c87b56dd14610509578063de4e61c31461052957600080fd5b806390657147116100c6578063906571471461047457806395d89b4114610494578063a22cb465146104a9578063b88d4fde146104c957600080fd5b806370a082311461040e578063715018a61461042e5780638da5cb5b1461044357600080fd5b8063242a00871161015957806342842e0e1161013357806342842e0e1461038357806342eb9d94146103a35780634dc2d4b4146103c35780636352211e146103ee57600080fd5b8063242a00871461031657806329c211761461034357806332902aef1461036357600080fd5b8063095ea7b311610195578063095ea7b31461026357806315fd06911461028557806323b872dd146102b357806323cdb5aa146102d357600080fd5b806301ffc9a7146101c757806306fdde03146101fc578063081812fc1461021e57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101e76101e2366004613663565b61062c565b60405190151581526020015b60405180910390f35b34801561020857600080fd5b50610211610711565b6040516101f391906136f6565b34801561022a57600080fd5b5061023e610239366004613709565b6107a3565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f3565b34801561026f57600080fd5b5061028361027e366004613744565b610882565b005b34801561029157600080fd5b506102a56102a03660046138e5565b610a0f565b6040519081526020016101f3565b3480156102bf57600080fd5b506102836102ce36600461392c565b610a66565b3480156102df57600080fd5b506102a56102ee36600461396d565b73ffffffffffffffffffffffffffffffffffffffff166000908152600a602052604090205490565b34801561032257600080fd5b50610336610331366004613709565b610b07565b6040516101f391906139c5565b34801561034f57600080fd5b506102a561035e366004613a33565b610c92565b34801561036f57600080fd5b506102a561037e366004613a8d565b6112e2565b34801561038f57600080fd5b5061028361039e36600461392c565b6116a7565b3480156103af57600080fd5b506102836103be366004613b09565b6116c2565b3480156103cf57600080fd5b50600b5473ffffffffffffffffffffffffffffffffffffffff1661023e565b3480156103fa57600080fd5b5061023e610409366004613709565b6116ce565b34801561041a57600080fd5b506102a561042936600461396d565b611780565b34801561043a57600080fd5b5061028361184e565b34801561044f57600080fd5b5060065462010000900473ffffffffffffffffffffffffffffffffffffffff1661023e565b34801561048057600080fd5b5061028361048f366004613b97565b6118e2565b3480156104a057600080fd5b50610211611ad0565b3480156104b557600080fd5b506102836104c4366004613c28565b611adf565b3480156104d557600080fd5b506102836104e4366004613c9c565b611aee565b3480156104f557600080fd5b5061028361050436600461396d565b611b96565b34801561051557600080fd5b50610211610524366004613709565b611c65565b34801561053557600080fd5b50610549610544366004613709565b611dee565b60405162ffffff90911681526020016101f3565b34801561056957600080fd5b5061057d610578366004613d46565b611e2f565b6040805192835262ffffff9091166020830152016101f3565b3480156105a257600080fd5b506101e76105b1366004613d7b565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b3480156105f857600080fd5b50610283610607366004613da9565b611f84565b34801561061857600080fd5b5061028361062736600461396d565b611fd9565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806106bf57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061070b57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600c805461072090613e08565b80601f016020809104026020016040519081016040528092919081815260200182805461074c90613e08565b80156107995780601f1061076e57610100808354040283529160200191610799565b820191906000526020600020905b81548152906001019060200180831161077c57829003601f168201915b5050505050905090565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16610859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061088d826116ce565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561094b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610850565b3373ffffffffffffffffffffffffffffffffffffffff82161480610974575061097481336105b1565b610a00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610850565b610a0a8383612110565b505050565b604080516001808252818301909252600091829190602080830190803683370190505090508381600081518110610a4857610a48613e5c565b602002602001018181525050610a5e8184610c92565b949350505050565b610a7033826121b0565b610afc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610850565b610a0a83838361231f565b60608167ffffffffffffffff81168114610b31575050604080516000815260208101909152919050565b67ffffffffffffffff8082166000908152600760209081526040808320546301000000900490931682526008815282822080548451818402810184019095528085529293929091830182828015610bdb57602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff1681526020019060080190602082600701049283019260010382029150808411610b965790505b505050505090506000815167ffffffffffffffff811115610bfe57610bfe613770565b604051908082528060200260200182016040528015610c27578160200160208202803683370190505b50905060005b8151811015610c8957828181518110610c4857610c48613e5c565b602002602001015167ffffffffffffffff16828281518110610c6c57610c6c613e5c565b602090810291909101015280610c8181613eba565b915050610c2d565b50949350505050565b6000825160001415610d00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536861726477616c6c65743a206e6f20706172656e74730000000000000000006044820152606401610850565b600654825176010000000000000000000000000000000000000000000090910467ffffffffffffffff1690600090610d389083613ef3565b905067ffffffffffffffff811115610d4f57600080fd5b600680547fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff1676010000000000000000000000000000000000000000000067ffffffffffffffff938416021790558451600091829190811115610db457610db4613770565b604051908082528060200260200182016040528015610ddd578160200160208202803683370190505b50905060005b8651811015610f03576000878281518110610e0057610e00613e5c565b60200260200101519050610e1433826121b0565b610e7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f536861726477616c6c65743a20756e617574686f72697a6564000000000000006044820152606401610850565b610e8381612586565b8067ffffffffffffffff81168114610e9d57610e9d613f0b565b80848481518110610eb057610eb0613e5c565b67ffffffffffffffff928316602091820292909201810191909152908216600090815260079091526040902054610eec9062ffffff1686613f3a565b945050508080610efb90613eba565b915050610de3565b5067ffffffffffffffff831660009081526008602090815260409091208251610f2e928401906134d3565b506000855167ffffffffffffffff811115610f4b57610f4b613770565b604051908082528060200260200182016040528015610f74578160200160208202803683370190505b5090508360005b87518110156111c4576000888281518110610f9857610f98613e5c565b60200260200101516000015190508062ffffff1660001415611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536861726477616c6c65743a206e756c6c2073686172650000000000000000006044820152606401610850565b8562ffffff168162ffffff16111561108a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f536861726477616c6c65743a20736861726520746f6f206c61726765000000006044820152606401610850565b6110948187613f61565b9550808483815181106110a9576110a9613e5c565b62ffffff909216602092830291909101909101526000836110c981613f85565b9450905060405180606001604052808362ffffff1681526020018967ffffffffffffffff1681526020018b5167ffffffffffffffff16815250600760008367ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548162ffffff021916908362ffffff16021790555060208201518160000160036101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550604082015181600001600b6101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050505080806111bc90613eba565b915050610f7b565b5062ffffff841615611232576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f536861726477616c6c65743a20736861726520746f6f20736d616c6c000000006044820152606401610850565b7fe3ac79fef3b280ad3daaef2cc74e5bdf501b73b95afb1fdc9eee0a4bf56f8d1e88868460405161126593929190613fad565b60405180910390a1508360005b87518110156112ca576112b888828151811061129057611290613e5c565b60200260200101516020015183806112a790613f85565b945067ffffffffffffffff16612653565b806112c281613eba565b915050611272565b505067ffffffffffffffff9093169695505050505050565b60008267ffffffffffffffff8116811461130057600091505061070b565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260096020908152604080832067ffffffffffffffff8516845290915290205480156113535761134a8161266d565b9250505061070b565b508067ffffffffffffffff166001141561137157600091505061070b565b67ffffffffffffffff8082166000908152600760209081526040918290208251606081018452905462ffffff8116808352630100000082048616938301939093526b0100000000000000000000009004909316918301919091526113da5760009250505061070b565b806020015167ffffffffffffffff168267ffffffffffffffff16101561140257611402613f0b565b6000816020015183611414919061401a565b67ffffffffffffffff169050816040015167ffffffffffffffff16811061143d5761143d613f0b565b60208083015167ffffffffffffffff16600090815260088252604080822080548251818602810186019093528083529293919290918301828280156114d557602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff16815260200190600801906020826007010492830192600103820291508084116114905790505b505050505090506000805b8251811015611534576115168382815181106114fe576114fe613e5c565b602002602001015167ffffffffffffffff16896112e2565b6115209083613ef3565b91508061152c81613eba565b9150506114e0565b506000846040015167ffffffffffffffff1667ffffffffffffffff81111561155e5761155e613770565b604051908082528060200260200182016040528015611587578160200160208202803683370190505b50905060005b856040015167ffffffffffffffff1681101561163f576000808288602001516115b6919061403b565b90508867ffffffffffffffff168167ffffffffffffffff1614156115dd57875191506115ff565b67ffffffffffffffff811660009081526007602052604090205462ffffff1691505b8184848151811061161257611612613e5c565b602002602001019062ffffff16908162ffffff16815250505050808061163790613eba565b91505061158d565b50600061164d83838761267a565b905061165881612836565b73ffffffffffffffffffffffffffffffffffffffff8a16600090815260096020908152604080832067ffffffffffffffff909b1683529990529790972096909655509394505050505092915050565b610a0a83838360405180602001604052806000815250611aee565b610a0a83838333611f84565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff168061070b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610850565b600073ffffffffffffffffffffffffffffffffffffffff8216611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610850565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b60065473ffffffffffffffffffffffffffffffffffffffff620100009091041633146118d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610850565b6118e06000612843565b565b60006118ee60016128c2565b9050801561192357600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61192c86612843565b611938600c868661358e565b50611945600d848461358e565b50600680547fffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffff1676020000000000000000000000000000000000000000000017905560408051606081018252620f42408152600160208083018281529383018281526000839052600790915291517fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82880549451935162ffffff9092167fffffffffffffffffffffffffffffffffffffffffff000000000000000000000090951694909417630100000067ffffffffffffffff94851602177fffffffffffffffffffffffffff0000000000000000ffffffffffffffffffffff166b010000000000000000000000939091169290920291909117909155611a65908790612653565b8015611ac857600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6060600d805461072090613e08565b611aea338383612a4a565b5050565b611af833836121b0565b611b84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610850565b611b9084848484612b78565b50505050565b60065473ffffffffffffffffffffffffffffffffffffffff62010000909104163314611c1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610850565b600b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008181526002602052604090205460609073ffffffffffffffffffffffffffffffffffffffff16611cf3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610850565b600b5473ffffffffffffffffffffffffffffffffffffffff1680611d27575050604080516020810190915260008152919050565b6040517fc87b56dd0000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff82169063c87b56dd9060240160006040518083038186803b158015611d8d57600080fd5b505afa158015611da1573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611de7919081019061405e565b9392505050565b60008167ffffffffffffffff81168114611e0b5750600092915050565b67ffffffffffffffff1660009081526007602052604090205462ffffff1692915050565b6000806000805b8451811015611e9d5760076000868381518110611e5557611e55613e5c565b60209081029190910181015167ffffffffffffffff16825281019190915260400160002054611e899062ffffff1683613ef3565b915080611e9581613eba565b915050611e36565b506040805160018082528183019092529192508291600091816020015b6040805180820190915260008082526020820152815260200190600190039081611eba5790505090503381600081518110611ef757611ef7613e5c565b60200260200101516020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508281600081518110611f4957611f49613e5c565b602090810291909101015162ffffff9091169052611f678582610c92565b93508262ffffff168214611f7d57611f7d613f0b565b5050915091565b60005b82811015611fd257611fc085858584818110611fa557611fa5613e5c565b9050602002016020810190611fba919061396d565b84612c1b565b80611fca81613eba565b915050611f87565b5050505050565b60065473ffffffffffffffffffffffffffffffffffffffff62010000909104163314612061576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610850565b73ffffffffffffffffffffffffffffffffffffffff8116612104576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610850565b61210d81612843565b50565b600081815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416908117909155819061216a826116ce565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16612261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e00000000000000000000000000000000000000006064820152608401610850565b600061226c836116ce565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806122da575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209388168352929052205460ff165b80610a5e57508373ffffffffffffffffffffffffffffffffffffffff16612300846107a3565b73ffffffffffffffffffffffffffffffffffffffff1614949350505050565b8273ffffffffffffffffffffffffffffffffffffffff1661233f826116ce565b73ffffffffffffffffffffffffffffffffffffffff16146123e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610850565b73ffffffffffffffffffffffffffffffffffffffff8216612484576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610850565b61248f600082612110565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081208054600192906124c59084906140d5565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000908152600360205260408120805460019290612500908490613ef3565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000612591826116ce565b905061259e600083612110565b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604081208054600192906125d49084906140d5565b909155505060008281526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555183919073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b611aea82826040518060200160405280600081525061306f565b600061070b6001836140d5565b815160009081805b85518110156126c95785818151811061269d5761269d613e5c565b602002602001015162ffffff16826126b59190613ef3565b9150806126c181613eba565b915050612682565b5060008585815181106126de576126de613e5c565b602002602001015162ffffff16876126f691906140ec565b905060006127048383614129565b9050600061271284836140ec565b61271c90846140d5565b90508061272f57509350611de792505050565b806000805b878110156127e95789811415612749576127d7565b60008b828151811061275d5761275d613e5c565b602002602001015162ffffff168d61277591906140ec565b905060006127838983614129565b905060006127918a836140ec565b61279b90846140d5565b90506127a78187613ef3565b9550868111806127c0575086811480156127c057508c84115b156127d357846127cf81613eba565b9550505b5050505b806127e181613eba565b915050612734565b5060006127f68784614129565b90508261280388836140ec565b1461281057612810613f0b565b80821015612826578461282281613eba565b9550505b50929a9950505050505050505050565b600061070b826001613ef3565b6006805473ffffffffffffffffffffffffffffffffffffffff838116620100008181027fffffffffffffffffffff0000000000000000000000000000000000000000ffff85161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600654600090610100900460ff161561297b578160ff1660011480156128e75750303b155b612973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610850565b506000919050565b60065460ff808416911610612a12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610850565b50600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff92909216919091179055600190565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ae0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610850565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612b8384848461231f565b612b8f84848484613112565b611b90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610850565b612c2533846121b0565b612c8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f536861726477616c6c65743a20756e617574686f72697a6564000000000000006044820152606401610850565b8267ffffffffffffffff81168114612ca557612ca5613f0b565b67ffffffffffffffff811660009081526007602052604081205462ffffff169073ffffffffffffffffffffffffffffffffffffffff8516612ce7575047612d87565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8616906370a082319060240160206040518083038186803b158015612d4c57600080fd5b505afa158015612d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d849190614164565b90505b73ffffffffffffffffffffffffffffffffffffffff85166000908152600a602052604081205490612db88284613ef3565b90506000620f4240612dcf62ffffff8716846140ec565b612dd99190614129565b90506000612df18767ffffffffffffffff168a6112e2565b9050600081831115612e1457612e0782846140d5565b905085811115612e145750845b8973ffffffffffffffffffffffffffffffffffffffff168867ffffffffffffffff167f3ed1528b0fdc7c5207c1bf935e34a667e13656b9ed165260c522be0bc544f30383604051612e6791815260200190565b60405180910390a380612e81575050505050505050505050565b6000612e8d8284613ef3565b9050612e9881612836565b73ffffffffffffffffffffffffffffffffffffffff8c16600090815260096020908152604080832067ffffffffffffffff8e168452909152902055612edd8287613ef3565b73ffffffffffffffffffffffffffffffffffffffff8c166000818152600a6020526040902091909155612f535760405173ffffffffffffffffffffffffffffffffffffffff8b169083156108fc029084906000818181858888f19350505050158015612f4d573d6000803e3d6000fd5b50613061565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b81166004830152602482018490528c169063a9059cbb90604401602060405180830381600087803b158015612fc357600080fd5b505af1158015612fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffb919061417d565b613061576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f536861726477616c6c65743a207472616e73666572206661696c6564000000006044820152606401610850565b505050505050505050505050565b6130798383613311565b6130866000848484613112565b610a0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610850565b600073ffffffffffffffffffffffffffffffffffffffff84163b15613306576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061318990339089908890889060040161419a565b602060405180830381600087803b1580156131a357600080fd5b505af19250505080156131f1575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526131ee918101906141e3565b60015b6132bb573d80801561321f576040519150601f19603f3d011682016040523d82523d6000602084013e613224565b606091505b5080516132b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610850565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610a5e565b506001949350505050565b73ffffffffffffffffffffffffffffffffffffffff821661338e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610850565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff161561341a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610850565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600360205260408120805460019290613450908490613ef3565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8280548282559060005260206000209060030160049004810192821561357e5791602002820160005b8382111561354857835183826101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555092602001926008016020816007010492830192600103026134fc565b801561357c5782816101000a81549067ffffffffffffffff0219169055600801602081600701049283019260010302613548565b505b5061358a929150613620565b5090565b82805461359a90613e08565b90600052602060002090601f0160209004810192826135bc576000855561357e565b82601f106135f3578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082351617855561357e565b8280016001018555821561357e579182015b8281111561357e578235825591602001919060010190613605565b5b8082111561358a5760008155600101613621565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461210d57600080fd5b60006020828403121561367557600080fd5b8135611de781613635565b60005b8381101561369b578181015183820152602001613683565b83811115611b905750506000910152565b600081518084526136c4816020860160208601613680565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611de760208301846136ac565b60006020828403121561371b57600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461210d57600080fd5b6000806040838503121561375757600080fd5b823561376281613722565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156137c2576137c2613770565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561380f5761380f613770565b604052919050565b600067ffffffffffffffff82111561383157613831613770565b5060051b60200190565b600082601f83011261384c57600080fd5b8135602061386161385c83613817565b6137c8565b82815260069290921b8401810191818101908684111561388057600080fd5b8286015b848110156138da576040818903121561389d5760008081fd5b6138a561379f565b813562ffffff811681146138b95760008081fd5b8152818501356138c881613722565b81860152835291830191604001613884565b509695505050505050565b600080604083850312156138f857600080fd5b82359150602083013567ffffffffffffffff81111561391657600080fd5b6139228582860161383b565b9150509250929050565b60008060006060848603121561394157600080fd5b833561394c81613722565b9250602084013561395c81613722565b929592945050506040919091013590565b60006020828403121561397f57600080fd5b8135611de781613722565b600081518084526020808501945080840160005b838110156139ba5781518752958201959082019060010161399e565b509495945050505050565b602081526000611de7602083018461398a565b600082601f8301126139e957600080fd5b813560206139f961385c83613817565b82815260059290921b84018101918181019086841115613a1857600080fd5b8286015b848110156138da5780358352918301918301613a1c565b60008060408385031215613a4657600080fd5b823567ffffffffffffffff80821115613a5e57600080fd5b613a6a868387016139d8565b93506020850135915080821115613a8057600080fd5b506139228582860161383b565b60008060408385031215613aa057600080fd5b823591506020830135613ab281613722565b809150509250929050565b60008083601f840112613acf57600080fd5b50813567ffffffffffffffff811115613ae757600080fd5b6020830191508360208260051b8501011115613b0257600080fd5b9250929050565b600080600060408486031215613b1e57600080fd5b83359250602084013567ffffffffffffffff811115613b3c57600080fd5b613b4886828701613abd565b9497909650939450505050565b60008083601f840112613b6757600080fd5b50813567ffffffffffffffff811115613b7f57600080fd5b602083019150836020828501011115613b0257600080fd5b600080600080600060608688031215613baf57600080fd5b8535613bba81613722565b9450602086013567ffffffffffffffff80821115613bd757600080fd5b613be389838a01613b55565b90965094506040880135915080821115613bfc57600080fd5b50613c0988828901613b55565b969995985093965092949392505050565b801515811461210d57600080fd5b60008060408385031215613c3b57600080fd5b8235613c4681613722565b91506020830135613ab281613c1a565b600067ffffffffffffffff821115613c7057613c70613770565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60008060008060808587031215613cb257600080fd5b8435613cbd81613722565b93506020850135613ccd81613722565b925060408501359150606085013567ffffffffffffffff811115613cf057600080fd5b8501601f81018713613d0157600080fd5b8035613d0f61385c82613c56565b818152886020838501011115613d2457600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b600060208284031215613d5857600080fd5b813567ffffffffffffffff811115613d6f57600080fd5b610a5e848285016139d8565b60008060408385031215613d8e57600080fd5b8235613d9981613722565b91506020830135613ab281613722565b60008060008060608587031215613dbf57600080fd5b84359350602085013567ffffffffffffffff811115613ddd57600080fd5b613de987828801613abd565b9094509250506040850135613dfd81613722565b939692955090935050565b600181811c90821680613e1c57607f821691505b60208210811415613e56577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613eec57613eec613e8b565b5060010190565b60008219821115613f0657613f06613e8b565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600062ffffff808316818516808303821115613f5857613f58613e8b565b01949350505050565b600062ffffff83811690831681811015613f7d57613f7d613e8b565b039392505050565b600067ffffffffffffffff80831681811415613fa357613fa3613e8b565b6001019392505050565b606081526000613fc0606083018661398a565b67ffffffffffffffff8516602084810191909152838203604085015284518083528582019282019060005b8181101561400c57845162ffffff1683529383019391830191600101613feb565b509098975050505050505050565b600067ffffffffffffffff83811690831681811015613f7d57613f7d613e8b565b600067ffffffffffffffff808316818516808303821115613f5857613f58613e8b565b60006020828403121561407057600080fd5b815167ffffffffffffffff81111561408757600080fd5b8201601f8101841361409857600080fd5b80516140a661385c82613c56565b8181528560208385010111156140bb57600080fd5b6140cc826020830160208601613680565b95945050505050565b6000828210156140e7576140e7613e8b565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561412457614124613e8b565b500290565b60008261415f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60006020828403121561417657600080fd5b5051919050565b60006020828403121561418f57600080fd5b8151611de781613c1a565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526141d960808301846136ac565b9695505050505050565b6000602082840312156141f557600080fd5b8151611de78161363556fea264697066735822122030039a592fe0ac077c7c668b3f61d89fcf14eba671b02d25f98df512443f8cf064736f6c63430008090033