0x60806040526003805460ff60a01b1916905534801561001d57600080fd5b5060405161105c38038061105c83398101604081905261003c9161006f565b60038054336001600160a01b031991821617909155600080549091166001600160a01b039290921691909117905561009d565b600060208284031215610080578081fd5b81516001600160a01b0381168114610096578182fd5b9392505050565b610fb0806100ac6000396000f3fe6080604052600436106100695760003560e01c8063c5ecfed711610043578063c5ecfed7146100ff578063f3e0547e1461011f578063fce0f9281461013f57600080fd5b8063150b7a021461007557806365153c4b146100ca578063af8fa617146100df57600080fd5b3661007057005b600080fd5b34801561008157600080fd5b50610095610090366004610b84565b61015f565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200160405180910390f35b6100dd6100d8366004610d74565b610348565b005b3480156100eb57600080fd5b506100dd6100fa366004610cf5565b6104df565b34801561010b57600080fd5b506100dd61011a366004610c77565b610671565b34801561012b57600080fd5b506100dd61013a366004610c77565b610764565b34801561014b57600080fd5b506100dd61015a366004610b6a565b610831565b60035460009074010000000000000000000000000000000000000000900460ff1615156001141561023f57600454600580546102399273ffffffffffffffffffffffffffffffffffffffff1691906101b690610e68565b80601f01602080910402602001604051908101604052809291908181526020018280546101e290610e68565b801561022f5780601f106102045761010080835404028352916020019161022f565b820191906000526020600020905b81548152906001019060200180831161021257829003601f168201915b50505050506108f9565b50610340565b6001600260008282546102529190610e24565b90915550506001546002541061028957507f150b7a0200000000000000000000000000000000000000000000000000000000610340565b6000546040517fc17d46760000000000000000000000000000000000000000000000000000000081526001600482015273ffffffffffffffffffffffffffffffffffffffff9091169063c17d46769067016345785d8a0000906024016000604051808303818588803b1580156102fe57600080fd5b505af1158015610312573d6000803e3d6000fd5b507f150b7a020000000000000000000000000000000000000000000000000000000094506103409350505050565b949350505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633146103ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e4121000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6001811515141561044957600380547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055600454600580546104449273ffffffffffffffffffffffffffffffffffffffff1691906101b690610e68565b505050565b60018281556000546040517fc17d4676000000000000000000000000000000000000000000000000000000008152600481019290925273ffffffffffffffffffffffffffffffffffffffff169063c17d46769067016345785d8a0000906024016000604051808303818588803b1580156104c257600080fd5b505af11580156104d6573d6000803e3d6000fd5b50505050505050565b60035473ffffffffffffffffffffffffffffffffffffffff163314610560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e4121000000000000000000000000000000000000000000000000000000000060448201526064016103c5565b60005b8281101561066b5760005473ffffffffffffffffffffffffffffffffffffffff166323b872dd30848787868181106105c4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b16815273ffffffffffffffffffffffffffffffffffffffff958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b15801561064057600080fd5b505af1158015610654573d6000803e3d6000fd5b50505050808061066390610ebc565b915050610563565b50505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633146106f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e4121000000000000000000000000000000000000000000000000000000000060448201526064016103c5565b8273ffffffffffffffffffffffffffffffffffffffff1647838360405161071a929190610da7565b60006040518083038185875af1925050503d8060008114610757576040519150601f19603f3d011682016040523d82523d6000602084013e61075c565b606091505b505050505050565b60035473ffffffffffffffffffffffffffffffffffffffff1633146107e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e4121000000000000000000000000000000000000000000000000000000000060448201526064016103c5565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff851617905561066b60058383610a8a565b60035473ffffffffffffffffffffffffffffffffffffffff1633146108b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e4121000000000000000000000000000000000000000000000000000000000060448201526064016103c5565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b606061091e8383604051806060016040528060278152602001610f5460279139610925565b9392505050565b6060833b6109b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016103c5565b6000808573ffffffffffffffffffffffffffffffffffffffff16856040516109dd9190610db7565b600060405180830381855af49150503d8060008114610a18576040519150601f19603f3d011682016040523d82523d6000602084013e610a1d565b606091505b5091509150610a2d828286610a37565b9695505050505050565b60608315610a4657508161091e565b825115610a565782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c59190610dd3565b828054610a9690610e68565b90600052602060002090601f016020900481019282610ab85760008555610b1c565b82601f10610aef578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555610b1c565b82800160010185558215610b1c579182015b82811115610b1c578235825591602001919060010190610b01565b50610b28929150610b2c565b5090565b5b80821115610b285760008155600101610b2d565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b6557600080fd5b919050565b600060208284031215610b7b578081fd5b61091e82610b41565b60008060008060808587031215610b99578283fd5b610ba285610b41565b9350610bb060208601610b41565b925060408501359150606085013567ffffffffffffffff80821115610bd3578283fd5b818701915087601f830112610be6578283fd5b813581811115610bf857610bf8610f24565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610c3e57610c3e610f24565b816040528281528a6020848701011115610c56578586fd5b82602086016020830137918201602001949094529598949750929550505050565b600080600060408486031215610c8b578283fd5b610c9484610b41565b9250602084013567ffffffffffffffff80821115610cb0578384fd5b818601915086601f830112610cc3578384fd5b813581811115610cd1578485fd5b876020828501011115610ce2578485fd5b6020830194508093505050509250925092565b600080600060408486031215610d09578283fd5b833567ffffffffffffffff80821115610d20578485fd5b818601915086601f830112610d33578485fd5b813581811115610d41578586fd5b8760208260051b8501011115610d55578586fd5b602092830195509350610d6b9186019050610b41565b90509250925092565b60008060408385031215610d86578182fd5b8235915060208301358015158114610d9c578182fd5b809150509250929050565b8183823760009101908152919050565b60008251610dc9818460208701610e3c565b9190910192915050565b6020815260008251806020840152610df2816040850160208701610e3c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60008219821115610e3757610e37610ef5565b500190565b60005b83811015610e57578181015183820152602001610e3f565b8381111561066b5750506000910152565b600181811c90821680610e7c57607f821691505b60208210811415610eb6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610eee57610eee610ef5565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220abf9067e2f9b0ddfaaaaf4abd5771216bb7756f2cf4d8d123bb3dc6d64d341d464736f6c63430008040033000000000000000000000000df3407636bbf3a015a8e48a079ef7ba49e687fd3