0x60a060405234801561001057600080fd5b50604051610e14380380610e1483398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610d8361009160003960008181608501526104eb0152610d836000f3fe6080604052600436106100345760003560e01c806371dcac86146100395780637aa19d221461005f578063f30878c114610073575b600080fd5b61004c6100473660046109f2565b6100bf565b6040519081526020015b60405180910390f35b34801561006b57600080fd5b50600261004c565b34801561007f57600080fd5b506100a77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610056565b8660005b8481101561044e5760008686838181106100df576100df610ac3565b90506020020160208101906100f49190610af1565b9050600089898481811061010a5761010a610ac3565b905060200201602081019061011f9190610af1565b905060008a8a610130866001610b2b565b81811061013f5761013f610ac3565b90506020020160208101906101549190610af1565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018890529192509083169063095ea7b3906044016020604051808303816000875af11580156101c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e49190610b44565b506040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561022c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102509190610b66565b9050600080600061026287878761045a565b92509250925060006102768a858585610636565b9050600080876001600160a01b0316896001600160a01b03161061029c578260006102a0565b6000835b90925090506102b96001600160a01b038a168b8e610692565b604080516000815260208101918290527f022c0d9f000000000000000000000000000000000000000000000000000000009091526001600160a01b038b169063022c0d9f906103119085908590309060248101610bcf565b600060405180830381600087803b15801561032b57600080fd5b505af115801561033f573d6000803e3d6000fd5b50506040516370a0823160e01b81523060048201528992506001600160a01b038b1691506370a0823190602401602060405180830381865afa158015610389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ad9190610b66565b6103b79190610c07565b9b50818c146104335760405162461bcd60e51b815260206004820152602660248201527f556e69737761705632416461707465723a207377617020616d6f756e74206d6960448201527f736d61746368000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b505050505050505050508061044790610c1a565b90506100c3565b50979650505050505050565b6000806000806000876001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156104a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c49190610c6a565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663faaebd21896001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057a9190610cad565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156105d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fa9190610cca565b63ffffffff169250856001600160a01b0316876001600160a01b031610610622578082610625565b81815b909990985092965091945050505050565b60008061064683620f4240610c07565b6106509087610ce5565b9050600061065e8583610ce5565b9050600082610670620f424089610ce5565b61067a9190610b2b565b90506106868183610cfc565b98975050505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610712908490610717565b505050565b600061076c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166107ff9092919063ffffffff16565b905080516000148061078d57508080602001905181019061078d9190610b44565b6107125760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161042a565b606061080e8484600085610816565b949350505050565b60608247101561088e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161042a565b600080866001600160a01b031685876040516108aa9190610d1e565b60006040518083038185875af1925050503d80600081146108e7576040519150601f19603f3d011682016040523d82523d6000602084013e6108ec565b606091505b50915091506108fd87838387610908565b979650505050505050565b60608315610977578251600003610970576001600160a01b0385163b6109705760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161042a565b508161080e565b61080e838381511561098c5781518083602001fd5b8060405162461bcd60e51b815260040161042a9190610d3a565b60008083601f8401126109b857600080fd5b50813567ffffffffffffffff8111156109d057600080fd5b6020830191508360208260051b85010111156109eb57600080fd5b9250929050565b60008060008060008060006080888a031215610a0d57600080fd5b87359650602088013567ffffffffffffffff80821115610a2c57600080fd5b610a388b838c016109a6565b909850965060408a0135915080821115610a5157600080fd5b610a5d8b838c016109a6565b909650945060608a0135915080821115610a7657600080fd5b818a0191508a601f830112610a8a57600080fd5b813581811115610a9957600080fd5b8b6020828501011115610aab57600080fd5b60208301945080935050505092959891949750929550565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610aee57600080fd5b50565b600060208284031215610b0357600080fd5b8135610b0e81610ad9565b9392505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610b3e57610b3e610b15565b92915050565b600060208284031215610b5657600080fd5b81518015158114610b0e57600080fd5b600060208284031215610b7857600080fd5b5051919050565b60005b83811015610b9a578181015183820152602001610b82565b50506000910152565b60008151808452610bbb816020860160208601610b7f565b601f01601f19169290920160200192915050565b8481528360208201526001600160a01b0383166040820152608060608201526000610bfd6080830184610ba3565b9695505050505050565b81810381811115610b3e57610b3e610b15565b600060018201610c2c57610c2c610b15565b5060010190565b80516dffffffffffffffffffffffffffff81168114610c5157600080fd5b919050565b805163ffffffff81168114610c5157600080fd5b600080600060608486031215610c7f57600080fd5b610c8884610c33565b9250610c9660208501610c33565b9150610ca460408501610c56565b90509250925092565b600060208284031215610cbf57600080fd5b8151610b0e81610ad9565b600060208284031215610cdc57600080fd5b610b0e82610c56565b8082028115828204841417610b3e57610b3e610b15565b600082610d1957634e487b7160e01b600052601260045260246000fd5b500490565b60008251610d30818460208701610b7f565b9190910192915050565b602081526000610b0e6020830184610ba356fea26469706673582212201503a13ac357627d5ea6120a332ff72d267c3588f4107afd5c482d8f6847e93464736f6c634300081100330000000000000000000000004a1bd7a5ba116bca6bf30d865cc31a9657942bba