0x608060405234801561001057600080fd5b50610840806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806357c9778214610030575b600080fd5b61004361003e366004610620565b610057565b604051901515815260200160405180910390f35b6000602085901c63ffffffff164681146100a95760405162461bcd60e51b815260206004820152600e60248201526d636861696e2069642077726f6e6760901b60448201526064015b60405180910390fd5b604080516060810182526000808252602082018190529181019190915273c3e4eb6254c5fb6c563fd0fff6125dd9737025d163d9f1afad6100ee60206000898b610773565b6040518363ffffffff1660e01b815260040161010b9291906106ea565b60606040518083038186803b15801561012357600080fd5b505af4158015610137573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015b919061049d565b60ff1660408401819052600114159150610296905057600061017f8682818a610773565b81019061018c9190610529565b8051909250905060005b818110156102925760006001600160a01b03168382815181106101bb576101bb6107c6565b6020026020010151600001516001600160a01b03161461023c576102378382815181106101ea576101ea6107c6565b602002602001015160000151848381518110610208576102086107c6565b602002602001015160200151858481518110610226576102266107c6565b6020026020010151604001516102a3565b610280565b610280838281518110610251576102516107c6565b60200260200101516020015184838151811061026f5761026f6107c6565b6020026020010151604001516103be565b8061028a8161079d565b915050610196565b5050505b5060019695505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916102ff91906106af565b6000604051808303816000865af19150503d806000811461033c576040519150601f19603f3d011682016040523d82523d6000602084013e610341565b606091505b509150915081801561036b57508051158061036b57508080602001905181019061036b9190610500565b6103b75760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c45440060448201526064016100a0565b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040516103e891906106af565b60006040518083038185875af1925050503d8060008114610425576040519150601f19603f3d011682016040523d82523d6000602084013e61042a565b606091505b50509050806104985760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b60648201526084016100a0565b505050565b6000806000606084860312156104b257600080fd5b83516104bd816107f2565b60208501519093506affffffffffffffffffffff811681146104de57600080fd5b604085015190925060ff811681146104f557600080fd5b809150509250925092565b60006020828403121561051257600080fd5b8151801515811461052257600080fd5b9392505050565b600080604080848603121561053d57600080fd5b8335925060208085013567ffffffffffffffff8082111561055d57600080fd5b818701915087601f83011261057157600080fd5b813581811115610583576105836107dc565b610591848260051b01610742565b81815284810192508385016060808402860187018c10156105b157600080fd5b60009550855b8481101561060d5781838e0312156105cd578687fd5b6105d5610719565b83356105e0816107f2565b8152838901356105ef816107f2565b818a0152838a01358a820152865294870194918101916001016105b7565b5050508096505050505050509250929050565b6000806000806060858703121561063657600080fd5b84359350602085013567ffffffffffffffff8082111561065557600080fd5b818701915087601f83011261066957600080fd5b81358181111561067857600080fd5b88602082850101111561068a57600080fd5b60208301955080945050505060408501356106a4816107f2565b939692955090935050565b6000825160005b818110156106d057602081860181015185830152016106b6565b818111156106df576000828501525b509190910192915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b6040516060810167ffffffffffffffff8111828210171561073c5761073c6107dc565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561076b5761076b6107dc565b604052919050565b6000808585111561078357600080fd5b8386111561079057600080fd5b5050820193919092039150565b60006000198214156107bf57634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461080757600080fd5b5056fea2646970667358221220d08fa72a7c94be2553605597f27d888c359d056f66e01e68060ea1fe5632e2ec64736f6c63430008070033