0x60a060405234801561001057600080fd5b50604051610e07380380610e0783398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610d7661009160003960008181607801526104de0152610d766000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806371dcac86146100465780637aa19d221461006c578063f30878c114610073575b600080fd5b6100596100543660046109e5565b6100b2565b6040519081526020015b60405180910390f35b6002610059565b61009a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610063565b8660005b848110156104415760008686838181106100d2576100d2610ab6565b90506020020160208101906100e79190610ae4565b905060008989848181106100fd576100fd610ab6565b90506020020160208101906101129190610ae4565b905060008a8a610123866001610b1e565b81811061013257610132610ab6565b90506020020160208101906101479190610ae4565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018890529192509083169063095ea7b3906044016020604051808303816000875af11580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610b37565b506040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561021f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102439190610b59565b9050600080600061025587878761044d565b92509250925060006102698a858585610629565b9050600080876001600160a01b0316896001600160a01b03161061028f57826000610293565b6000835b90925090506102ac6001600160a01b038a168b8e610685565b604080516000815260208101918290527f022c0d9f000000000000000000000000000000000000000000000000000000009091526001600160a01b038b169063022c0d9f906103049085908590309060248101610bc2565b600060405180830381600087803b15801561031e57600080fd5b505af1158015610332573d6000803e3d6000fd5b50506040516370a0823160e01b81523060048201528992506001600160a01b038b1691506370a0823190602401602060405180830381865afa15801561037c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a09190610b59565b6103aa9190610bfa565b9b50818c146104265760405162461bcd60e51b815260206004820152602660248201527f556e69737761705632416461707465723a207377617020616d6f756e74206d6960448201527f736d61746368000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b505050505050505050508061043a90610c0d565b90506100b6565b50979650505050505050565b6000806000806000876001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610493573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b79190610c5d565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663faaebd21896001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610549573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056d9190610ca0565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156105c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ed9190610cbd565b63ffffffff169250856001600160a01b0316876001600160a01b031610610615578082610618565b81815b909990985092965091945050505050565b60008061063983620f4240610bfa565b6106439087610cd8565b905060006106518583610cd8565b9050600082610663620f424089610cd8565b61066d9190610b1e565b90506106798183610cef565b98975050505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261070590849061070a565b505050565b600061075f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166107f29092919063ffffffff16565b90508051600014806107805750808060200190518101906107809190610b37565b6107055760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161041d565b60606108018484600085610809565b949350505050565b6060824710156108815760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161041d565b600080866001600160a01b0316858760405161089d9190610d11565b60006040518083038185875af1925050503d80600081146108da576040519150601f19603f3d011682016040523d82523d6000602084013e6108df565b606091505b50915091506108f0878383876108fb565b979650505050505050565b6060831561096a578251600003610963576001600160a01b0385163b6109635760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161041d565b5081610801565b610801838381511561097f5781518083602001fd5b8060405162461bcd60e51b815260040161041d9190610d2d565b60008083601f8401126109ab57600080fd5b50813567ffffffffffffffff8111156109c357600080fd5b6020830191508360208260051b85010111156109de57600080fd5b9250929050565b60008060008060008060006080888a031215610a0057600080fd5b87359650602088013567ffffffffffffffff80821115610a1f57600080fd5b610a2b8b838c01610999565b909850965060408a0135915080821115610a4457600080fd5b610a508b838c01610999565b909650945060608a0135915080821115610a6957600080fd5b818a0191508a601f830112610a7d57600080fd5b813581811115610a8c57600080fd5b8b6020828501011115610a9e57600080fd5b60208301945080935050505092959891949750929550565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610ae157600080fd5b50565b600060208284031215610af657600080fd5b8135610b0181610acc565b9392505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610b3157610b31610b08565b92915050565b600060208284031215610b4957600080fd5b81518015158114610b0157600080fd5b600060208284031215610b6b57600080fd5b5051919050565b60005b83811015610b8d578181015183820152602001610b75565b50506000910152565b60008151808452610bae816020860160208601610b72565b601f01601f19169290920160200192915050565b8481528360208201526001600160a01b0383166040820152608060608201526000610bf06080830184610b96565b9695505050505050565b81810381811115610b3157610b31610b08565b600060018201610c1f57610c1f610b08565b5060010190565b80516dffffffffffffffffffffffffffff81168114610c4457600080fd5b919050565b805163ffffffff81168114610c4457600080fd5b600080600060608486031215610c7257600080fd5b610c7b84610c26565b9250610c8960208501610c26565b9150610c9760408501610c49565b90509250925092565b600060208284031215610cb257600080fd5b8151610b0181610acc565b600060208284031215610ccf57600080fd5b610b0182610c49565b8082028115828204841417610b3157610b31610b08565b600082610d0c57634e487b7160e01b600052601260045260246000fd5b500490565b60008251610d23818460208701610b72565b9190910192915050565b602081526000610b016020830184610b9656fea26469706673582212207e05508bc14267c2c883bc4d71445ccfd8258f49725e3749ff68b658a7ce088464736f6c634300081100330000000000000000000000004a1bd7a5ba116bca6bf30d865cc31a9657942bba