6080604052600a805462ffffff60a01b191690556000600d819055600e553480156200002a57600080fd5b506040805180820182526012815271151a194814d958dc995d08141c9bda9958dd60721b60208083019182528351808501909452600684526514d150d4915560d21b908401528151919291620000839160009162000112565b5080516200009990600190602084019062000112565b505050620000b6620000b0620000bc60201b60201c565b620000c0565b620001f5565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200012090620001b8565b90600052602060002090601f0160209004810192826200014457600085556200018f565b82601f106200015f57805160ff19168380011785556200018f565b828001600101855582156200018f579182015b828111156200018f57825182559160200191906001019062000172565b506200019d929150620001a1565b5090565b5b808211156200019d5760008155600101620001a2565b600181811c90821680620001cd57607f821691505b60208210811415620001ef57634e487b7160e01b600052602260045260246000fd5b50919050565b612ee380620002056000396000f3fe6080604052600436106102345760003560e01c806365bc136511610138578063a22cb465116100b0578063ccd151ef1161007f578063e222c7f911610064578063e222c7f91461060f578063e985e9c514610624578063f2fde38b1461066d57600080fd5b8063ccd151ef146105e4578063db2e21bc146105fa57600080fd5b8063a22cb46514610563578063b88d4fde14610583578063bc8893b4146105a3578063c87b56dd146105c457600080fd5b80638da5cb5b1161010757806395d89b41116100ec57806395d89b4114610523578063989bdbb6146105385780639faf7da21461054d57600080fd5b80638da5cb5b146104d85780638e8e3554146104f657600080fd5b806365bc13651461046f57806369d2ceb11461048257806370a08231146104a3578063715018a6146104c357600080fd5b806334393743116101cb57806353135ca01161019a57806357b4742c1161017f57806357b4742c1461041c5780636352211e1461042f57806363bc312a1461044f57600080fd5b806353135ca0146103db57806355f804b3146103fc57600080fd5b806334393743146103715780633ccfd60b1461038657806342842e0e1461039b5780634f6ccce7146103bb57600080fd5b806318160ddd1161020757806318160ddd146102ea578063238ac9331461030957806323b872dd146103315780632f745c591461035157600080fd5b806301ffc9a71461023957806306fdde031461026e578063081812fc14610290578063095ea7b3146102c8575b600080fd5b34801561024557600080fd5b50610259610254366004612992565b61068d565b60405190151581526020015b60405180910390f35b34801561027a57600080fd5b506102836106d1565b6040516102659190612a07565b34801561029c57600080fd5b506102b06102ab366004612a1a565b610763565b6040516001600160a01b039091168152602001610265565b3480156102d457600080fd5b506102e86102e3366004612a4f565b61080e565b005b3480156102f657600080fd5b506008545b604051908152602001610265565b34801561031557600080fd5b506102b073be83b7a2eb9217a571189831a5a832804c1485de81565b34801561033d57600080fd5b506102e861034c366004612a79565b610940565b34801561035d57600080fd5b506102fb61036c366004612a4f565b6109c7565b34801561037d57600080fd5b506102e8610a6f565b34801561039257600080fd5b506102e8610b05565b3480156103a757600080fd5b506102e86103b6366004612a79565b610d10565b3480156103c757600080fd5b506102fb6103d6366004612a1a565b610d2b565b3480156103e757600080fd5b50600a5461025990600160a01b900460ff1681565b34801561040857600080fd5b506102e8610417366004612b41565b610dcf565b6102e861042a366004612a1a565b610e9a565b34801561043b57600080fd5b506102b061044a366004612a1a565b611053565b34801561045b57600080fd5b506102e861046a366004612a1a565b6110de565b6102e861047d366004612b8a565b611254565b34801561048e57600080fd5b50600a5461025990600160b01b900460ff1681565b3480156104af57600080fd5b506102fb6104be366004612bd9565b6116dc565b3480156104cf57600080fd5b506102e8611776565b3480156104e457600080fd5b50600a546001600160a01b03166102b0565b34801561050257600080fd5b506102fb610511366004612bd9565b600c6020526000908152604090205481565b34801561052f57600080fd5b506102836117dc565b34801561054457600080fd5b506102e86117eb565b34801561055957600080fd5b506102fb600e5481565b34801561056f57600080fd5b506102e861057e366004612bf4565b611875565b34801561058f57600080fd5b506102e861059e366004612c30565b61193a565b3480156105af57600080fd5b50600a5461025990600160a81b900460ff1681565b3480156105d057600080fd5b506102836105df366004612a1a565b6119c8565b3480156105f057600080fd5b506102fb600d5481565b34801561060657600080fd5b506102e8611ab1565b34801561061b57600080fd5b506102e8611b75565b34801561063057600080fd5b5061025961063f366004612cac565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561067957600080fd5b506102e8610688366004612bd9565b611c0b565b60006001600160e01b031982167f780e9d630000000000000000000000000000000000000000000000000000000014806106cb57506106cb82611cea565b92915050565b6060600080546106e090612cdf565b80601f016020809104026020016040519081016040528092919081815260200182805461070c90612cdf565b80156107595780601f1061072e57610100808354040283529160200191610759565b820191906000526020600020905b81548152906001019060200180831161073c57829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b03166107f25760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e000000000000000000000000000000000000000060648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b600061081982611053565b9050806001600160a01b0316836001600160a01b031614156108a35760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016107e9565b336001600160a01b03821614806108bf57506108bf813361063f565b6109315760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016107e9565b61093b8383611d85565b505050565b61094a3382611e00565b6109bc5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016107e9565b61093b838383611f08565b60006109d2836116dc565b8210610a465760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e647300000000000000000000000000000000000000000060648201526084016107e9565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600a546001600160a01b03163314610ac95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107e9565b600a80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8116600160a01b9182900460ff1615909102179055565b600a546001600160a01b03163314610b5f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107e9565b4773d3d104a6759051e0b0fc3d2d902678a983fb7fb46108fc610b90612710610b8a85610d066120ed565b906120f9565b6040518115909202916000818181858888f19350505050610bf35760405162461bcd60e51b815260206004820152600c60248201527f6164647231206661696c6564000000000000000000000000000000000000000060448201526064016107e9565b73d66254f9925d0b7bf16583593bab2002a28d695f6108fc610c1d612710610b8a85610d056120ed565b6040518115909202916000818181858888f19350505050610c805760405162461bcd60e51b815260206004820152600c60248201527f6164647232206661696c6564000000000000000000000000000000000000000060448201526064016107e9565b73021937711a434644cee08b1db08d313ef6fbd4a36108fc610caa612710610b8a85610d056120ed565b6040518115909202916000818181858888f19350505050610d0d5760405162461bcd60e51b815260206004820152600c60248201527f6164647233206661696c6564000000000000000000000000000000000000000060448201526064016107e9565b50565b61093b8383836040518060200160405280600081525061193a565b6000610d3660085490565b8210610daa5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e6473000000000000000000000000000000000000000060648201526084016107e9565b60088281548110610dbd57610dbd612d1a565b90600052602060002001549050919050565b600a546001600160a01b03163314610e295760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107e9565b600a54600160b01b900460ff1615610e835760405162461bcd60e51b815260206004820152601360248201527f4d65746164617461206973206c6f636b65642e0000000000000000000000000060448201526064016107e9565b8051610e9690600b9060208401906128e3565b5050565b600a54600160a81b900460ff16610ef35760405162461bcd60e51b815260206004820152601260248201527f53616c65206973206e6f7420616374697665000000000000000000000000000060448201526064016107e9565b6008811115610f445760405162461bcd60e51b815260206004820152601060248201527f4d6178207365637265747320697320380000000000000000000000000000000060448201526064016107e9565b6122b8610f5a82610f5460085490565b90612105565b1115610fa85760405162461bcd60e51b815260206004820152601c60248201527f545820776f756c64206d696e74206f7665722074686520746f74616c0000000060448201526064016107e9565b34610fba66b1a2bc2ec50000836120ed565b146110075760405162461bcd60e51b815260206004820152601160248201527f4f766572206f7220756e6465727061696400000000000000000000000000000060448201526064016107e9565b60005b81811015610e965760006110226001610f5460085490565b90506122b861103060085490565b1015611040576110403382612111565b508061104b81612d46565b91505061100a565b6000818152600260205260408120546001600160a01b0316806106cb5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e000000000000000000000000000000000000000000000060648201526084016107e9565b600a546001600160a01b031633146111385760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107e9565b600e546064906111489083612105565b11156111965760405162461bcd60e51b815260206004820152601360248201527f576f756c64206d696e7420746f6f206d616e790000000000000000000000000060448201526064016107e9565b6122b86111a682610f5460085490565b11156111f45760405162461bcd60e51b815260206004820152601c60248201527f545820776f756c64206d696e74206f7665722074686520746f74616c0000000060448201526064016107e9565b60005b8181101561124057600061120f6001610f5460085490565b90506122b861121d60085490565b101561122d5761122d3382612111565b508061123881612d46565b9150506111f7565b50600e5461124e9082612105565b600e5550565b838383836112a8604080513360601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602080830191909152825160148184030181526034909201909252805191012090565b84146112f65760405162461bcd60e51b815260206004820152600c60248201527f496e76616c69642068617368000000000000000000000000000000000000000060448201526064016107e9565b60006040518060400160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250905060008186604051602001611345929190612d61565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff89169284019290925260608301879052608083018690529092509060019060a0016020604051602081039080840390855afa1580156113b0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811673be83b7a2eb9217a571189831a5a832804c1485de146114295760405162461bcd60e51b815260206004820152601460248201527f4e6f74207369676e6564206279207369676e657200000000000000000000000060448201526064016107e9565b600a54600160a01b900460ff166114a85760405162461bcd60e51b815260206004820152602760248201527f50726573616c6520686173206e6f74206265656e2073746172746564206f722060448201527f6973206f7665720000000000000000000000000000000000000000000000000060648201526084016107e9565b60018c11156114f95760405162461bcd60e51b815260206004820152601260248201527f416d6f756e7420697320746f6f2068696768000000000000000000000000000060448201526064016107e9565b336000908152600c6020526040902054600190611516908e612105565b111561158a5760405162461bcd60e51b815260206004820152603c60248201527f416d6f756e7420697320746f6f20686967682028776974682074686520616d6f60448201527f756e7420796f75206861766520616c7265616479206d696e746564290000000060648201526084016107e9565b6122b861159a8d610f5460085490565b11156115e85760405162461bcd60e51b815260206004820152601c60248201527f545820776f756c64206d696e74206f7665722074686520746f74616c0000000060448201526064016107e9565b346115fa66b1a2bc2ec500008e6120ed565b146116475760405162461bcd60e51b815260206004820152601160248201527f4f766572206f7220756e6465727061696400000000000000000000000000000060448201526064016107e9565b60005b8c8110156116935760006116626001610f5460085490565b90506122b861167060085490565b1015611680576116803382612111565b508061168b81612d46565b91505061164a565b50336000908152600c60205260409020546116ae908d612105565b336000908152600c6020526040902055600d546116cb908d612105565b600d55505050505050505050505050565b60006001600160a01b03821661175a5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f20616464726573730000000000000000000000000000000000000000000060648201526084016107e9565b506001600160a01b031660009081526003602052604090205490565b600a546001600160a01b031633146117d05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107e9565b6117da600061212b565b565b6060600180546106e090612cdf565b600a546001600160a01b031633146118455760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107e9565b600a80547fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16600160b01b179055565b6001600160a01b0382163314156118ce5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016107e9565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6119443383611e00565b6119b65760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016107e9565b6119c28484848461218a565b50505050565b6000818152600260205260409020546060906001600160a01b0316611a555760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e000000000000000000000000000000000060648201526084016107e9565b6000611a5f612213565b90506000815111611a7f5760405180602001604052806000815250611aaa565b80611a8984612222565b604051602001611a9a929190612d83565b6040516020818303038152906040525b9392505050565b600a546001600160a01b03163314611b0b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107e9565b6040514790339082156108fc029083906000818181858888f19350505050610d0d5760405162461bcd60e51b815260206004820152600f60248201527f7769746864726177206661696c6564000000000000000000000000000000000060448201526064016107e9565b600a546001600160a01b03163314611bcf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107e9565b600a80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff8116600160a81b9182900460ff1615909102179055565b600a546001600160a01b03163314611c655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107e9565b6001600160a01b038116611ce15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107e9565b610d0d8161212b565b60006001600160e01b031982167f80ac58cd000000000000000000000000000000000000000000000000000000001480611d4d57506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b806106cb57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316146106cb565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091558190611dc782611053565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b0316611e8a5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e000000000000000000000000000000000000000060648201526084016107e9565b6000611e9583611053565b9050806001600160a01b0316846001600160a01b03161480611ed05750836001600160a01b0316611ec584610763565b6001600160a01b0316145b80611f0057506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316611f1b82611053565b6001600160a01b031614611f975760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e000000000000000000000000000000000000000000000060648201526084016107e9565b6001600160a01b0382166120125760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016107e9565b61201d838383612354565b612028600082611d85565b6001600160a01b0383166000908152600360205260408120805460019290612051908490612db2565b90915550506001600160a01b038216600090815260036020526040812080546001929061207f908490612dc9565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000611aaa8284612de1565b6000611aaa8284612e16565b6000611aaa8284612dc9565b610e9682826040518060200160405280600081525061240c565b600a80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612195848484611f08565b6121a184848484612495565b6119c25760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016107e9565b6060600b80546106e090612cdf565b60608161226257505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b811561228c578061227681612d46565b91506122859050600a83612e16565b9150612266565b60008167ffffffffffffffff8111156122a7576122a7612ab5565b6040519080825280601f01601f1916602001820160405280156122d1576020820181803683370190505b5090505b8415611f00576122e6600183612db2565b91506122f3600a86612e2a565b6122fe906030612dc9565b60f81b81838151811061231357612313612d1a565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061234d600a86612e16565b94506122d5565b6001600160a01b0383166123af576123aa81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6123d2565b816001600160a01b0316836001600160a01b0316146123d2576123d283826125f8565b6001600160a01b0382166123e95761093b81612695565b826001600160a01b0316826001600160a01b03161461093b5761093b8282612744565b6124168383612788565b6124236000848484612495565b61093b5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016107e9565b60006001600160a01b0384163b156125ed57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906124d9903390899088908890600401612e3e565b602060405180830381600087803b1580156124f357600080fd5b505af1925050508015612523575060408051601f3d908101601f1916820190925261252091810190612e7a565b60015b6125d3573d808015612551576040519150601f19603f3d011682016040523d82523d6000602084013e612556565b606091505b5080516125cb5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016107e9565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611f00565b506001949350505050565b60006001612605846116dc565b61260f9190612db2565b600083815260076020526040902054909150808214612662576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906126a790600190612db2565b600083815260096020526040812054600880549394509092849081106126cf576126cf612d1a565b9060005260206000200154905080600883815481106126f0576126f0612d1a565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061272857612728612e97565b6001900381819060005260206000200160009055905550505050565b600061274f836116dc565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160a01b0382166127de5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016107e9565b6000818152600260205260409020546001600160a01b0316156128435760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016107e9565b61284f60008383612354565b6001600160a01b0382166000908152600360205260408120805460019290612878908490612dc9565b9091555050600081815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8280546128ef90612cdf565b90600052602060002090601f0160209004810192826129115760008555612957565b82601f1061292a57805160ff1916838001178555612957565b82800160010185558215612957579182015b8281111561295757825182559160200191906001019061293c565b50612963929150612967565b5090565b5b808211156129635760008155600101612968565b6001600160e01b031981168114610d0d57600080fd5b6000602082840312156129a457600080fd5b8135611aaa8161297c565b60005b838110156129ca5781810151838201526020016129b2565b838111156119c25750506000910152565b600081518084526129f38160208601602086016129af565b601f01601f19169290920160200192915050565b602081526000611aaa60208301846129db565b600060208284031215612a2c57600080fd5b5035919050565b80356001600160a01b0381168114612a4a57600080fd5b919050565b60008060408385031215612a6257600080fd5b612a6b83612a33565b946020939093013593505050565b600080600060608486031215612a8e57600080fd5b612a9784612a33565b9250612aa560208501612a33565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115612ae657612ae6612ab5565b604051601f8501601f19908116603f01168101908282118183101715612b0e57612b0e612ab5565b81604052809350858152868686011115612b2757600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215612b5357600080fd5b813567ffffffffffffffff811115612b6a57600080fd5b8201601f81018413612b7b57600080fd5b611f0084823560208401612acb565b600080600080600060a08688031215612ba257600080fd5b8535945060208601359350604086013560ff81168114612bc157600080fd5b94979396509394606081013594506080013592915050565b600060208284031215612beb57600080fd5b611aaa82612a33565b60008060408385031215612c0757600080fd5b612c1083612a33565b915060208301358015158114612c2557600080fd5b809150509250929050565b60008060008060808587031215612c4657600080fd5b612c4f85612a33565b9350612c5d60208601612a33565b925060408501359150606085013567ffffffffffffffff811115612c8057600080fd5b8501601f81018713612c9157600080fd5b612ca087823560208401612acb565b91505092959194509250565b60008060408385031215612cbf57600080fd5b612cc883612a33565b9150612cd660208401612a33565b90509250929050565b600181811c90821680612cf357607f821691505b60208210811415612d1457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612d5a57612d5a612d30565b5060010190565b60008351612d738184602088016129af565b9190910191825250602001919050565b60008351612d958184602088016129af565b835190830190612da98183602088016129af565b01949350505050565b600082821015612dc457612dc4612d30565b500390565b60008219821115612ddc57612ddc612d30565b500190565b6000816000190483118215151615612dfb57612dfb612d30565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612e2557612e25612e00565b500490565b600082612e3957612e39612e00565b500690565b60006001600160a01b03808716835280861660208401525083604083015260806060830152612e7060808301846129db565b9695505050505050565b600060208284031215612e8c57600080fd5b8151611aaa8161297c565b634e487b7160e01b600052603160045260246000fdfea26469706673582212209ea2209cc2e35f9e630e8cfc7c807c3aca58954319e24f03e0153f406848a32364736f6c63430008090033