UNPKG

@arbitrum/nitro-contracts

Version:

Layer 2 precompiles and rollup for Arbitrum Nitro

215 lines (214 loc) 30.3 kB
{ "_format": "hh-sol-artifact-1", "contractName": "DeployHelper", "sourceName": "src/rollup/DeployHelper.sol", "abi": [ { "inputs": [], "name": "ERC1820_DEPLOYER", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ERC1820_PAYLOAD", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ERC1820_VALUE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ERC2470_DEPLOYER", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ERC2470_PAYLOAD", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ERC2470_VALUE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NICK_CREATE2_DEPLOYER", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NICK_CREATE2_PAYLOAD", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NICK_CREATE2_VALUE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ZOLTU_CREATE2_DEPLOYER", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ZOLTU_CREATE2_PAYLOAD", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ZOLTU_VALUE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IInboxBase", "name": "inbox", "type": "address" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" } ], "name": "getDeploymentTotalCost", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_inbox", "type": "address" }, { "internalType": "address", "name": "_nativeToken", "type": "address" }, { "internalType": "uint256", "name": "_maxFeePerGas", "type": "uint256" } ], "name": "perform", "outputs": [], "stateMutability": "payable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50611937806100206000396000f3fe6080604052600436106100dd5760003560e01c80639ed2c6f01161007f578063d7c641e711610059578063d7c641e714610240578063db633c3e14610255578063dd0c625a14610162578063ef77e71a1461027157600080fd5b80639ed2c6f0146101dd578063acd7d02a146101f8578063d3a3faab1461021857600080fd5b80634367d652116100bb5780634367d6521461016257806355e34a6b1461018b57806375ae22b5146101b357806389cf8ae6146101c857600080fd5b80631b9a680c146100e2578063290302ce1461010d5780632e7966411461014d575b600080fd5b3480156100ee57600080fd5b506100f7610299565b604051610104919061093e565b60405180910390f35b34801561011957600080fd5b5061013573a990077c3205cbdf861e17fa532eeb069ce9ff9681565b6040516001600160a01b039091168152602001610104565b34801561015957600080fd5b506100f76102b5565b34801561016e57600080fd5b5061017d662386f26fc1000081565b604051908152602001610104565b34801561019757600080fd5b5061013573bb6e024b9cffacb947a71991e386681b1cd1477d81565b3480156101bf57600080fd5b506100f76102d4565b3480156101d457600080fd5b506100f76102f0565b3480156101e957600080fd5b5061017d6657c084e5f3c00081565b34801561020457600080fd5b5061017d6102133660046109c2565b61030f565b34801561022457600080fd5b50610135734c8d290a1b368ac4728d83a9e8321fc3af2b39b181565b61025361024e3660046109ee565b610409565b005b34801561026157600080fd5b5061017d67011c37937e08000081565b34801561027d57600080fd5b50610135733fab184622dc19b6109349b94811493bf2a4536281565b6040518060e0016040528060a8815260200161185a60a8913981565b60405180610a600160405280610a3c8152602001610c2d610a3c913981565b6040518060c00160405280608181526020016116696081913981565b604051806101a0016040528061017081526020016116ea610170913981565b6040517fa66b327d0000000000000000000000000000000000000000000000000000000081526000600482018190524860248301529081906001600160a01b0385169063a66b327d90604401602060405180830381865afa158015610378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039c9190610a2f565b90506103aa83615208610a77565b6103b49082610a8e565b6103bf906004610a77565b67011c37937e080000662386f26fc100006103e16657c084e5f3c00082610a8e565b6103eb9190610a8e565b6103f59190610a8e565b6103ff9190610a8e565b9150505b92915050565b61044a83662386f26fc10000733fab184622dc19b6109349b94811493bf2a453626040518060e0016040528060a8815260200161185a60a891398686610555565b61048e836657c084e5f3c00073bb6e024b9cffacb947a71991e386681b1cd1477d604051806101a0016040528061017081526020016116ea61017091398686610555565b6104cf83662386f26fc10000734c8d290a1b368ac4728d83a9e8321fc3af2b39b16040518060c0016040528060818152602001611669608191398686610555565b6105148367011c37937e08000073a990077c3205cbdf861e17fa532eeb069ce9ff9660405180610a600160405280610a3c8152602001610c2d610a3c91398686610555565b6001600160a01b0382166105505760405133904780156108fc02916000818181858888f1935050505015801561054e573d6000803e3d6000fd5b505b505050565b6040517fa66b327d000000000000000000000000000000000000000000000000000000008152600060048201819052486024830152906001600160a01b0388169063a66b327d90604401602060405180830381865afa1580156105bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e09190610a2f565b905060006105f083615208610a77565b6105fa8389610a8e565b6106049190610a8e565b90506001600160a01b038416156107e75760008190506000856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561065a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067e9190610aa1565b905060128160ff1610156106e857610697816012610acb565b6106a290600a610bc8565b6106ac9084610bd7565b9150826106ba826012610acb565b6106c590600a610bc8565b6106cf9084610a77565b10156106e357816106df81610c12565b9250505b610717565b60128160ff161115610717576106ff601282610acb565b61070a90600a610bc8565b6107149084610a77565b91505b6040517f549e84260000000000000000000000000000000000000000000000000000000081526001600160a01b038981166004830152602482018b9052604482018690523360648301819052608483015261520860a483015260c4820187905260e4820184905261012061010483015260006101248301528b169063549e842690610144016020604051808303816000875af11580156107bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107df9190610a2f565b5050506108ab565b6040517f679b6ded0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201899052604482018490523360648301819052608483015261520860a483015260c4820185905261010060e4830152600061010483015289169063679b6ded9083906101240160206040518083038185885af1158015610884573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108a99190610a2f565b505b6040517fb75436bb0000000000000000000000000000000000000000000000000000000081526001600160a01b0389169063b75436bb906108f090889060040161093e565b6020604051808303816000875af115801561090f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109339190610a2f565b505050505050505050565b600060208083528351808285015260005b8181101561096b5785810183015185820160400152820161094f565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6001600160a01b03811681146109bf57600080fd5b50565b600080604083850312156109d557600080fd5b82356109e0816109aa565b946020939093013593505050565b600080600060608486031215610a0357600080fd5b8335610a0e816109aa565b92506020840135610a1e816109aa565b929592945050506040919091013590565b600060208284031215610a4157600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761040357610403610a48565b8082018082111561040357610403610a48565b600060208284031215610ab357600080fd5b815160ff81168114610ac457600080fd5b9392505050565b60ff828116828216039081111561040357610403610a48565b600181815b80851115610b1f578160001904821115610b0557610b05610a48565b80851615610b1257918102915b93841c9390800290610ae9565b509250929050565b600082610b3657506001610403565b81610b4357506000610403565b8160018114610b595760028114610b6357610b7f565b6001915050610403565b60ff841115610b7457610b74610a48565b50506001821b610403565b5060208310610133831016604e8410600b8410161715610ba2575081810a610403565b610bac8383610ae4565b8060001904821115610bc057610bc0610a48565b029392505050565b6000610ac460ff841683610b27565b600082610c0d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60006000198203610c2557610c25610a48565b506001019056fe04f90a388085174876e800830c35008080b909e5608060405234801561001057600080fd5b506109c5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a5576000357c010000000000000000000000000000000000000000000000000000000090048063a41e7d5111610078578063a41e7d51146101d4578063aabbb8ca1461020a578063b705676514610236578063f712f3e814610280576100a5565b806329965a1d146100aa5780633d584063146100e25780635df8122f1461012457806365ba36c114610152575b600080fd5b6100e0600480360360608110156100c057600080fd5b50600160a060020a038135811691602081013591604090910135166102b6565b005b610108600480360360208110156100f857600080fd5b5035600160a060020a0316610570565b60408051600160a060020a039092168252519081900360200190f35b6100e06004803603604081101561013a57600080fd5b50600160a060020a03813581169160200135166105bc565b6101c26004803603602081101561016857600080fd5b81019060208101813564010000000081111561018357600080fd5b82018360208201111561019557600080fd5b803590602001918460018302840111640100000000831117156101b757600080fd5b5090925090506106b3565b60408051918252519081900360200190f35b6100e0600480360360408110156101ea57600080fd5b508035600160a060020a03169060200135600160e060020a0319166106ee565b6101086004803603604081101561022057600080fd5b50600160a060020a038135169060200135610778565b61026c6004803603604081101561024c57600080fd5b508035600160a060020a03169060200135600160e060020a0319166107ef565b604080519115158252519081900360200190f35b61026c6004803603604081101561029657600080fd5b508035600160a060020a03169060200135600160e060020a0319166108aa565b6000600160a060020a038416156102cd57836102cf565b335b9050336102db82610570565b600160a060020a031614610339576040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f7420746865206d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b6103428361092a565b15610397576040805160e560020a62461bcd02815260206004820152601a60248201527f4d757374206e6f7420626520616e204552433136352068617368000000000000604482015290519081900360640190fd5b600160a060020a038216158015906103b85750600160a060020a0382163314155b156104ff5760405160200180807f455243313832305f4143434550545f4d4147494300000000000000000000000081525060140190506040516020818303038152906040528051906020012082600160a060020a031663249cb3fa85846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600160a060020a0316600160a060020a031681526020019250505060206040518083038186803b15801561047e57600080fd5b505afa158015610492573d6000803e3d6000fd5b505050506040513d60208110156104a857600080fd5b5051146104ff576040805160e560020a62461bcd02815260206004820181905260248201527f446f6573206e6f7420696d706c656d656e742074686520696e74657266616365604482015290519081900360640190fd5b600160a060020a03818116600081815260208181526040808320888452909152808220805473ffffffffffffffffffffffffffffffffffffffff19169487169485179055518692917f93baa6efbd2244243bfee6ce4cfdd1d04fc4c0e9a786abd3a41313bd352db15391a450505050565b600160a060020a03818116600090815260016020526040812054909116151561059a5750806105b7565b50600160a060020a03808216600090815260016020526040902054165b919050565b336105c683610570565b600160a060020a031614610624576040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f7420746865206d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b81600160a060020a031681600160a060020a0316146106435780610646565b60005b600160a060020a03838116600081815260016020526040808220805473ffffffffffffffffffffffffffffffffffffffff19169585169590951790945592519184169290917f605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a43509190a35050565b600082826040516020018083838082843780830192505050925050506040516020818303038152906040528051906020012090505b92915050565b6106f882826107ef565b610703576000610705565b815b600160a060020a03928316600081815260208181526040808320600160e060020a031996909616808452958252808320805473ffffffffffffffffffffffffffffffffffffffff19169590971694909417909555908152600284528181209281529190925220805460ff19166001179055565b600080600160a060020a038416156107905783610792565b335b905061079d8361092a565b156107c357826107ad82826108aa565b6107b85760006107ba565b815b925050506106e8565b600160a060020a0390811660009081526020818152604080832086845290915290205416905092915050565b6000808061081d857f01ffc9a70000000000000000000000000000000000000000000000000000000061094c565b909250905081158061082d575080155b1561083d576000925050506106e8565b61084f85600160e060020a031961094c565b909250905081158061086057508015155b15610870576000925050506106e8565b61087a858561094c565b909250905060018214801561088f5750806001145b1561089f576001925050506106e8565b506000949350505050565b600160a060020a0382166000908152600260209081526040808320600160e060020a03198516845290915281205460ff1615156108f2576108eb83836107ef565b90506106e8565b50600160a060020a03808316600081815260208181526040808320600160e060020a0319871684529091529020549091161492915050565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff161590565b6040517f01ffc9a7000000000000000000000000000000000000000000000000000000008082526004820183905260009182919060208160248189617530fa90519096909550935050505056fea165627a7a72305820377f4a2d4301ede9949f163f319021a6e9c687c292a5e2b2c4734c126b524e6c00291ba01820182018201820182018201820182018201820182018201820182018201820a0182018201820182018201820182018201820182018201820182018201820182004f87e8085174876e800830186a08080ad601f80600e600039806000f350fe60003681823780368234f58015156014578182fd5b80825250506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a0222222222222222222222222222222222222222222222222222222222222222204f9016c8085174876e8008303c4d88080b90154608060405234801561001057600080fd5b50610134806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80634af63f0214602d575b600080fd5b60cf60048036036040811015604157600080fd5b810190602081018135640100000000811115605b57600080fd5b820183602082011115606c57600080fd5b80359060200191846001830284011164010000000083111715608d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925060eb915050565b604080516001600160a01b039092168252519081900360200190f35b6000818351602085016000f5939250505056fea26469706673582212206b44f8a82cb6b156bfcc3dc6aadd6df4eefd204bc928a4397fd15dacf6d5320564736f6c634300060200331b8324700082247004f8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222a2646970667358221220e784bc252551b3e223c2941320d0eeb7ea0742daed4c163534ab61146f0ca94b64736f6c63430008110033", "deployedBytecode": "0x6080604052600436106100dd5760003560e01c80639ed2c6f01161007f578063d7c641e711610059578063d7c641e714610240578063db633c3e14610255578063dd0c625a14610162578063ef77e71a1461027157600080fd5b80639ed2c6f0146101dd578063acd7d02a146101f8578063d3a3faab1461021857600080fd5b80634367d652116100bb5780634367d6521461016257806355e34a6b1461018b57806375ae22b5146101b357806389cf8ae6146101c857600080fd5b80631b9a680c146100e2578063290302ce1461010d5780632e7966411461014d575b600080fd5b3480156100ee57600080fd5b506100f7610299565b604051610104919061093e565b60405180910390f35b34801561011957600080fd5b5061013573a990077c3205cbdf861e17fa532eeb069ce9ff9681565b6040516001600160a01b039091168152602001610104565b34801561015957600080fd5b506100f76102b5565b34801561016e57600080fd5b5061017d662386f26fc1000081565b604051908152602001610104565b34801561019757600080fd5b5061013573bb6e024b9cffacb947a71991e386681b1cd1477d81565b3480156101bf57600080fd5b506100f76102d4565b3480156101d457600080fd5b506100f76102f0565b3480156101e957600080fd5b5061017d6657c084e5f3c00081565b34801561020457600080fd5b5061017d6102133660046109c2565b61030f565b34801561022457600080fd5b50610135734c8d290a1b368ac4728d83a9e8321fc3af2b39b181565b61025361024e3660046109ee565b610409565b005b34801561026157600080fd5b5061017d67011c37937e08000081565b34801561027d57600080fd5b50610135733fab184622dc19b6109349b94811493bf2a4536281565b6040518060e0016040528060a8815260200161185a60a8913981565b60405180610a600160405280610a3c8152602001610c2d610a3c913981565b6040518060c00160405280608181526020016116696081913981565b604051806101a0016040528061017081526020016116ea610170913981565b6040517fa66b327d0000000000000000000000000000000000000000000000000000000081526000600482018190524860248301529081906001600160a01b0385169063a66b327d90604401602060405180830381865afa158015610378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039c9190610a2f565b90506103aa83615208610a77565b6103b49082610a8e565b6103bf906004610a77565b67011c37937e080000662386f26fc100006103e16657c084e5f3c00082610a8e565b6103eb9190610a8e565b6103f59190610a8e565b6103ff9190610a8e565b9150505b92915050565b61044a83662386f26fc10000733fab184622dc19b6109349b94811493bf2a453626040518060e0016040528060a8815260200161185a60a891398686610555565b61048e836657c084e5f3c00073bb6e024b9cffacb947a71991e386681b1cd1477d604051806101a0016040528061017081526020016116ea61017091398686610555565b6104cf83662386f26fc10000734c8d290a1b368ac4728d83a9e8321fc3af2b39b16040518060c0016040528060818152602001611669608191398686610555565b6105148367011c37937e08000073a990077c3205cbdf861e17fa532eeb069ce9ff9660405180610a600160405280610a3c8152602001610c2d610a3c91398686610555565b6001600160a01b0382166105505760405133904780156108fc02916000818181858888f1935050505015801561054e573d6000803e3d6000fd5b505b505050565b6040517fa66b327d000000000000000000000000000000000000000000000000000000008152600060048201819052486024830152906001600160a01b0388169063a66b327d90604401602060405180830381865afa1580156105bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e09190610a2f565b905060006105f083615208610a77565b6105fa8389610a8e565b6106049190610a8e565b90506001600160a01b038416156107e75760008190506000856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561065a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067e9190610aa1565b905060128160ff1610156106e857610697816012610acb565b6106a290600a610bc8565b6106ac9084610bd7565b9150826106ba826012610acb565b6106c590600a610bc8565b6106cf9084610a77565b10156106e357816106df81610c12565b9250505b610717565b60128160ff161115610717576106ff601282610acb565b61070a90600a610bc8565b6107149084610a77565b91505b6040517f549e84260000000000000000000000000000000000000000000000000000000081526001600160a01b038981166004830152602482018b9052604482018690523360648301819052608483015261520860a483015260c4820187905260e4820184905261012061010483015260006101248301528b169063549e842690610144016020604051808303816000875af11580156107bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107df9190610a2f565b5050506108ab565b6040517f679b6ded0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201899052604482018490523360648301819052608483015261520860a483015260c4820185905261010060e4830152600061010483015289169063679b6ded9083906101240160206040518083038185885af1158015610884573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108a99190610a2f565b505b6040517fb75436bb0000000000000000000000000000000000000000000000000000000081526001600160a01b0389169063b75436bb906108f090889060040161093e565b6020604051808303816000875af115801561090f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109339190610a2f565b505050505050505050565b600060208083528351808285015260005b8181101561096b5785810183015185820160400152820161094f565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6001600160a01b03811681146109bf57600080fd5b50565b600080604083850312156109d557600080fd5b82356109e0816109aa565b946020939093013593505050565b600080600060608486031215610a0357600080fd5b8335610a0e816109aa565b92506020840135610a1e816109aa565b929592945050506040919091013590565b600060208284031215610a4157600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761040357610403610a48565b8082018082111561040357610403610a48565b600060208284031215610ab357600080fd5b815160ff81168114610ac457600080fd5b9392505050565b60ff828116828216039081111561040357610403610a48565b600181815b80851115610b1f578160001904821115610b0557610b05610a48565b80851615610b1257918102915b93841c9390800290610ae9565b509250929050565b600082610b3657506001610403565b81610b4357506000610403565b8160018114610b595760028114610b6357610b7f565b6001915050610403565b60ff841115610b7457610b74610a48565b50506001821b610403565b5060208310610133831016604e8410600b8410161715610ba2575081810a610403565b610bac8383610ae4565b8060001904821115610bc057610bc0610a48565b029392505050565b6000610ac460ff841683610b27565b600082610c0d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60006000198203610c2557610c25610a48565b506001019056fe04f90a388085174876e800830c35008080b909e5608060405234801561001057600080fd5b506109c5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a5576000357c010000000000000000000000000000000000000000000000000000000090048063a41e7d5111610078578063a41e7d51146101d4578063aabbb8ca1461020a578063b705676514610236578063f712f3e814610280576100a5565b806329965a1d146100aa5780633d584063146100e25780635df8122f1461012457806365ba36c114610152575b600080fd5b6100e0600480360360608110156100c057600080fd5b50600160a060020a038135811691602081013591604090910135166102b6565b005b610108600480360360208110156100f857600080fd5b5035600160a060020a0316610570565b60408051600160a060020a039092168252519081900360200190f35b6100e06004803603604081101561013a57600080fd5b50600160a060020a03813581169160200135166105bc565b6101c26004803603602081101561016857600080fd5b81019060208101813564010000000081111561018357600080fd5b82018360208201111561019557600080fd5b803590602001918460018302840111640100000000831117156101b757600080fd5b5090925090506106b3565b60408051918252519081900360200190f35b6100e0600480360360408110156101ea57600080fd5b508035600160a060020a03169060200135600160e060020a0319166106ee565b6101086004803603604081101561022057600080fd5b50600160a060020a038135169060200135610778565b61026c6004803603604081101561024c57600080fd5b508035600160a060020a03169060200135600160e060020a0319166107ef565b604080519115158252519081900360200190f35b61026c6004803603604081101561029657600080fd5b508035600160a060020a03169060200135600160e060020a0319166108aa565b6000600160a060020a038416156102cd57836102cf565b335b9050336102db82610570565b600160a060020a031614610339576040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f7420746865206d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b6103428361092a565b15610397576040805160e560020a62461bcd02815260206004820152601a60248201527f4d757374206e6f7420626520616e204552433136352068617368000000000000604482015290519081900360640190fd5b600160a060020a038216158015906103b85750600160a060020a0382163314155b156104ff5760405160200180807f455243313832305f4143434550545f4d4147494300000000000000000000000081525060140190506040516020818303038152906040528051906020012082600160a060020a031663249cb3fa85846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600160a060020a0316600160a060020a031681526020019250505060206040518083038186803b15801561047e57600080fd5b505afa158015610492573d6000803e3d6000fd5b505050506040513d60208110156104a857600080fd5b5051146104ff576040805160e560020a62461bcd02815260206004820181905260248201527f446f6573206e6f7420696d706c656d656e742074686520696e74657266616365604482015290519081900360640190fd5b600160a060020a03818116600081815260208181526040808320888452909152808220805473ffffffffffffffffffffffffffffffffffffffff19169487169485179055518692917f93baa6efbd2244243bfee6ce4cfdd1d04fc4c0e9a786abd3a41313bd352db15391a450505050565b600160a060020a03818116600090815260016020526040812054909116151561059a5750806105b7565b50600160a060020a03808216600090815260016020526040902054165b919050565b336105c683610570565b600160a060020a031614610624576040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f7420746865206d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b81600160a060020a031681600160a060020a0316146106435780610646565b60005b600160a060020a03838116600081815260016020526040808220805473ffffffffffffffffffffffffffffffffffffffff19169585169590951790945592519184169290917f605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a43509190a35050565b600082826040516020018083838082843780830192505050925050506040516020818303038152906040528051906020012090505b92915050565b6106f882826107ef565b610703576000610705565b815b600160a060020a03928316600081815260208181526040808320600160e060020a031996909616808452958252808320805473ffffffffffffffffffffffffffffffffffffffff19169590971694909417909555908152600284528181209281529190925220805460ff19166001179055565b600080600160a060020a038416156107905783610792565b335b905061079d8361092a565b156107c357826107ad82826108aa565b6107b85760006107ba565b815b925050506106e8565b600160a060020a0390811660009081526020818152604080832086845290915290205416905092915050565b6000808061081d857f01ffc9a70000000000000000000000000000000000000000000000000000000061094c565b909250905081158061082d575080155b1561083d576000925050506106e8565b61084f85600160e060020a031961094c565b909250905081158061086057508015155b15610870576000925050506106e8565b61087a858561094c565b909250905060018214801561088f5750806001145b1561089f576001925050506106e8565b506000949350505050565b600160a060020a0382166000908152600260209081526040808320600160e060020a03198516845290915281205460ff1615156108f2576108eb83836107ef565b90506106e8565b50600160a060020a03808316600081815260208181526040808320600160e060020a0319871684529091529020549091161492915050565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff161590565b6040517f01ffc9a7000000000000000000000000000000000000000000000000000000008082526004820183905260009182919060208160248189617530fa90519096909550935050505056fea165627a7a72305820377f4a2d4301ede9949f163f319021a6e9c687c292a5e2b2c4734c126b524e6c00291ba01820182018201820182018201820182018201820182018201820182018201820a0182018201820182018201820182018201820182018201820182018201820182004f87e8085174876e800830186a08080ad601f80600e600039806000f350fe60003681823780368234f58015156014578182fd5b80825250506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a0222222222222222222222222222222222222222222222222222222222222222204f9016c8085174876e8008303c4d88080b90154608060405234801561001057600080fd5b50610134806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80634af63f0214602d575b600080fd5b60cf60048036036040811015604157600080fd5b810190602081018135640100000000811115605b57600080fd5b820183602082011115606c57600080fd5b80359060200191846001830284011164010000000083111715608d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925060eb915050565b604080516001600160a01b039092168252519081900360200190f35b6000818351602085016000f5939250505056fea26469706673582212206b44f8a82cb6b156bfcc3dc6aadd6df4eefd204bc928a4397fd15dacf6d5320564736f6c634300060200331b8324700082247004f8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222a2646970667358221220e784bc252551b3e223c2941320d0eeb7ea0742daed4c163534ab61146f0ca94b64736f6c63430008110033", "linkReferences": {}, "deployedLinkReferences": {} }