0x6080604052600436106103035760003560e01c80636f4ce42811610190578063bf56b371116100dc578063e96fada211610095578063f84ba65d1161006f578063f84ba65d14610932578063f8821a6214610952578063f887ea4014610968578063fabb0b4f1461098857600080fd5b8063e96fada2146108d2578063f1f3bca3146108f2578063f2fde38b1461091257600080fd5b8063bf56b371146107e9578063bfa21d6a146107ff578063c1adf7bc1461081f578063c287184e1461084c578063d68601421461086c578063dd62ed3e1461088c57600080fd5b806395d89b4111610149578063a8aa1b3111610123578063a8aa1b3114610774578063a9059cbb14610794578063abe57e70146107b4578063bafe446b146107d457600080fd5b806395d89b41146107115780639b02c4021461073e578063a4b45c001461075457600080fd5b80636f4ce428146106295780636fcba3771461065657806370a0823114610676578063715018a6146106ac578063893d20e8146106c15780638da5cb5b146106f357600080fd5b8063492a937b1161024f578063584f969a1161020857806363a803e1116101e257806363a803e1146105ba578063658d4b7f146105cf57806367243482146105ef5780636ddd17131461060f57600080fd5b8063584f969a1461056f57806360bba03d1461058457806361e08e72146105a457600080fd5b8063492a937b146104b957806350713935146104d957806354a1dfc9146104f957806356a227f214610519578063571ac8b0146105395780635804f1e41461055957600080fd5b8063234e9494116102bc578063313ce56711610296578063313ce5671461043b57806334848b9a14610457578063421dd7c71461047757806346d7edaa1461048c57600080fd5b8063234e9494146103f157806323b872dd146104065780632b112e491461042657600080fd5b80630445b6671461030f57806306fdde0314610338578063095db78f14610375578063095ea7b3146103975780631031e36e146103c757806318160ddd146103dc57600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032560245481565b6040519081526020015b60405180910390f35b34801561034457600080fd5b5060408051808201909152600b81526a474f42424c455220494e5560a81b60208201525b60405161032f919061290c565b34801561038157600080fd5b50610395610390366004612728565b61099e565b005b3480156103a357600080fd5b506103b76103b2366004612690565b610b5a565b604051901515815260200161032f565b3480156103d357600080fd5b50610395610bc7565b3480156103e857600080fd5b50600354610325565b3480156103fd57600080fd5b50610325610c2c565b34801561041257600080fd5b506103b761042136600461261a565b610c4c565b34801561043257600080fd5b50610325610ce1565b34801561044757600080fd5b506040516009815260200161032f565b34801561046357600080fd5b50610395610472366004612855565b610d22565b34801561048357600080fd5b50610395610dc3565b34801561049857600080fd5b506103256104a73660046125a7565b60186020526000908152604090205481565b3480156104c557600080fd5b506103956104d436600461265b565b610e18565b3480156104e557600080fd5b506103956104f4366004612855565b610ed6565b34801561050557600080fd5b50610395610514366004612797565b610f71565b34801561052557600080fd5b5061039561053436600461280e565b610ff4565b34801561054557600080fd5b506103b76105543660046125a7565b611084565b34801561056557600080fd5b50610325601f5481565b34801561057b57600080fd5b50610395611092565b34801561059057600080fd5b5061039561059f36600461265b565b6110e7565b3480156105b057600080fd5b5061032560225481565b3480156105c657600080fd5b5061032561113c565b3480156105db57600080fd5b506103956105ea36600461265b565b611157565b3480156105fb57600080fd5b5061039561060a3660046126bc565b6111ac565b34801561061b57600080fd5b506023546103b79060ff1681565b34801561063557600080fd5b506103256106443660046125a7565b60096020526000908152604090205481565b34801561066257600080fd5b506103956106713660046128af565b611313565b34801561068257600080fd5b506103256106913660046125a7565b6001600160a01b031660009081526007602052604090205490565b3480156106b857600080fd5b50610395611376565b3480156106cd57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161032f565b3480156106ff57600080fd5b506000546001600160a01b03166106db565b34801561071d57600080fd5b5060408051808201909152600481526347494e5560e01b6020820152610368565b34801561074a57600080fd5b50610325601b5481565b34801561076057600080fd5b5061039561076f3660046125e1565b6113ea565b34801561078057600080fd5b50601d546106db906001600160a01b031681565b3480156107a057600080fd5b506103b76107af366004612690565b611442565b3480156107c057600080fd5b506103956107cf366004612833565b61144f565b3480156107e057600080fd5b506103256114c0565b3480156107f557600080fd5b50610325601e5481565b34801561080b57600080fd5b506013546106db906001600160a01b031681565b34801561082b57600080fd5b5061032561083a3660046125a7565b600a6020526000908152604090205481565b34801561085857600080fd5b506103956108673660046127f5565b6114db565b34801561087857600080fd5b506103956108873660046127d9565b611518565b34801561089857600080fd5b506103256108a73660046125e1565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156108de57600080fd5b506014546106db906001600160a01b031681565b3480156108fe57600080fd5b5061032561090d36600461277c565b6115a9565b34801561091e57600080fd5b5061039561092d3660046125a7565b6115f6565b34801561093e57600080fd5b5061039561094d36600461265b565b6116e0565b34801561095e57600080fd5b5061032560255481565b34801561097457600080fd5b506015546106db906001600160a01b031681565b34801561099457600080fd5b5061032560205481565b3360009081526027602052604090205460ff16806109c657506000546001600160a01b031633145b6109eb5760405162461bcd60e51b81526004016109e290612961565b60405180910390fd5b8015610a005760195460ff16610a0057600080fd5b60005b82811015610b54578115610a8f57601b8054906000610a2183612bb3565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea32858584818110610a5a57610a5a612be4565b9050602002016020810190610a6f91906125a7565b436002604051610a8294939291906128e1565b60405180910390a1610aef565b60186000858584818110610aa557610aa5612be4565b9050602002016020810190610aba91906125a7565b6001600160a01b0316815260208101919091526040016000205415610aef57601b8054906000610ae983612b9c565b91905055505b81610afb576000610afd565b435b60186000868685818110610b1357610b13612be4565b9050602002016020810190610b2891906125a7565b6001600160a01b0316815260208101919091526040016000205580610b4c81612bb3565b915050610a03565b50505050565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610bb59086815260200190565b60405180910390a35060015b92915050565b3360009081526027602052604090205460ff1680610bef57506000546001600160a01b031633145b610c0b5760405162461bcd60e51b81526004016109e290612961565b602154610100900460ff1615610c2057600080fd5b6021805460ff19169055565b6000610c3a6009600a612abb565b600554610c479190612a56565b905090565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610ccc576001600160a01b0384166000908152600860209081526040808320338452909152902054610ca7908390612b85565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610cd7848484611735565b90505b9392505050565b6002546001600160a01b039081166000908152600760205260408082205460015490931682528120549091610d1591612a3e565b600354610c479190612b85565b3360009081526027602052604090205460ff1680610d4a57506000546001600160a01b031633145b610d665760405162461bcd60e51b81526004016109e290612961565b60215460ff16158015610d795750600a83105b610d8257600080fd5b60208390556021805460ff1916600117905543601e55610da28242612a3e565b601c55610db16009600a612abb565b610dbb9082612b66565b601a55505050565b3360009081526027602052604090205460ff1680610deb57506000546001600160a01b031633145b610e075760405162461bcd60e51b81526004016109e290612961565b6019805461ffff1916610100179055565b6000546001600160a01b03163314610e425760405162461bcd60e51b81526004016109e290612998565b601d546001600160a01b0383811691161415610eab5760405162461bcd60e51b815260206004820152602260248201527f43616e277420616c7465722063757272656e74206c697175696469747920706160448201526134b960f11b60648201526084016109e2565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f005760405162461bcd60e51b81526004016109e290612998565b600083118015610f105750600082115b8015610f1c5750600081115b8015610f2a57506127108111155b610f3357600080fd5b8083600354610f429190612b66565b610f4c9190612a56565b6004556003548190610f5f908490612b66565b610f699190612a56565b600555505050565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b81526004016109e290612998565b60008211610fa857600080fd5b6023805461ffff191685151561ff0019161761010085151502179055600354610fd2908390612a56565b602455610fe16009600a612abb565b610feb9082612b66565b60255550505050565b3360009081526027602052604090205460ff168061101c57506000546001600160a01b031633145b6110385760405162461bcd60e51b81526004016109e290612961565b476001600160a01b0382166108fc60646110528685612b66565b61105c9190612a56565b6040518115909202916000818181858888f19350505050158015610b54573d6000803e3d6000fd5b6000610bc182600019610b5a565b3360009081526027602052604090205460ff16806110ba57506000546001600160a01b031633145b6110d65760405162461bcd60e51b81526004016109e290612961565b6021805461ffff1916610101179055565b6000546001600160a01b031633146111115760405162461bcd60e51b81526004016109e290612998565b6001600160a01b03919091166000908152602760205260409020805460ff1916911515919091179055565b600061114a6009600a612abb565b600654610c479190612a56565b6000546001600160a01b031633146111815760405162461bcd60e51b81526004016109e290612998565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111d65760405162461bcd60e51b81526004016109e290612998565b82158015906111e457508083145b6111ed57600080fd5b3360005b8481101561130b576017600087878481811061120f5761120f612be4565b905060200201602081019061122491906125a7565b6001600160a01b0316815260208101919091526040016000205460ff161580156112935750600d600087878481811061125f5761125f612be4565b905060200201602081019061127491906125a7565b6001600160a01b0316815260208101919091526040016000205460ff16155b156112f9576112f7828787848181106112ae576112ae612be4565b90506020020160208101906112c391906125a7565b6112cf6009600a612abb565b8787868181106112e1576112e1612be4565b905060200201356112f29190612b66565b611c37565b505b8061130381612bb3565b9150506111f1565b505050505050565b6000546001600160a01b0316331461133d5760405162461bcd60e51b81526004016109e290612998565b600f849055600e8390556113518484612a3e565b60105560118290556012819055611369600282612a56565b60105410610b5457600080fd5b6000546001600160a01b031633146113a05760405162461bcd60e51b81526004016109e290612998565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146114145760405162461bcd60e51b81526004016109e290612998565b601380546001600160a01b039384166001600160a01b03199182161790915560148054929093169116179055565b6000610cda338484611735565b6000546001600160a01b031633146114795760405162461bcd60e51b81526004016109e290612998565b6000821180156114895750600081115b801561149757506127108111155b6114a057600080fd5b80826003546114af9190612b66565b6114b99190612a56565b6006555050565b60006114ce6009600a612abb565b600454610c479190612a56565b6000546001600160a01b031633146115055760405162461bcd60e51b81526004016109e290612998565b603c81111561151357600080fd5b602255565b3360009081526027602052604090205460ff168061154057506000546001600160a01b031633145b61155c5760405162461bcd60e51b81526004016109e290612961565b601954610100900460ff161561157157600080fd5b6019805460ff191683151517905562015180811061158e57600080fd5b80601c60008282546115a09190612a3e565b90915550505050565b600043602054601e546115bc9190612a3e565b106115d0576001601254610bc19190612b85565b81156115e657601154601054610bc19190612a3e565b601154601054610bc19190612b85565b6000546001600160a01b031633146116205760405162461bcd60e51b81526004016109e290612998565b6001600160a01b0381166116855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109e2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461170a5760405162461bcd60e51b81526004016109e290612998565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60006001600160a01b03841661178d5760405162461bcd60e51b815260206004820152601860248201527f42455032303a207472616e736665722066726f6d20307830000000000000000060448201526064016109e2565b6001600160a01b0383166117dc5760405162461bcd60e51b8152602060048201526016602482015275042455032303a207472616e7366657220746f203078360541b60448201526064016109e2565b600082116118245760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206d757374206265203e207a65726f60581b60448201526064016109e2565b6001600160a01b0384166000908152600760205260409020548211156118835760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016109e2565b601e541580156118ab57506001600160a01b03831660009081526017602052604090205460ff165b15611932576001600160a01b0384166000908152600d602052604090205460ff166119185760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206e6f74206164646564207965742e000000000000000060448201526064016109e2565b61193243601e5542601f556023805460ff19166001179055565b60215460ff166119bf576001600160a01b0384166000908152600d602052604090205460ff168061197b57506001600160a01b0383166000908152600d602052604090205460ff165b6119bf5760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b60448201526064016109e2565b6119ca848484611cf1565b6001600160a01b03831660009081526017602052604090205460ff16158015611a0157506001546001600160a01b03848116911614155b15611a30576001600160a01b0383166000908152600c602052604090205460ff16611a3057611a308383612046565b60195460ff168015611a43575042601c54115b15611b0d576001600160a01b03841660009081526017602052604090205460ff168015611a795750326001600160a01b03841614155b8015611a9b57506001600160a01b038316600090815260186020526040902054155b15611b0d576001600160a01b0383166000908152601860205260408120439055601b805491611ac983612bb3565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea3284436000604051611b0494939291906128e1565b60405180910390a15b60265460ff1615611b2a57611b23848484611c37565b9050610cda565b6001600160a01b038416600090815260076020526040902054611b4e908390612b85565b6001600160a01b038516600090815260076020908152604080832093909355600b90529081205460ff1615611b835782611b8d565b611b8d84846120cb565b9050611b9884612149565b15611bac578215611bac57611bac836121c0565b6001600160a01b038416600090815260076020526040902054611bd0908290612a3e565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c249085815260200190565b60405180910390a3506001949350505050565b6001600160a01b038316600090815260076020526040812054611c5b908390612b85565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611c8b908390612a3e565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cdf9086815260200190565b60405180910390a35060019392505050565b6001600160a01b0383166000908152600c602052604090205460ff1680611d4357506001600160a01b03831660009081526017602052604090205460ff16611d3b57600554611d3f565b6004545b8111155b611d835760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109e2565b6001600160a01b0383166000908152600c602052604090205460ff1680611dcf57506022546001600160a01b0383166000908152600a60205260409020544391611dcc91612a3e565b11155b611e1b5760405162461bcd60e51b815260206004820152601d60248201527f5472616e736665722072617465206c696d69742065786365656465642e00000060448201526064016109e2565b6001600160a01b03831660009081526018602052604090205415611efe57611e456009600a612abb565b601a54611e529190612b66565b8111158015611e7757506001600160a01b038316600090815260096020526040902054155b8015611e84575042601c54115b611ee25760405162461bcd60e51b815260206004820152602960248201527f57616c6c65742070726f7465637465642c20706c6561736520636f6e746163746044820152681039bab83837b93a1760b91b60648201526084016109e2565b6001600160a01b03831660009081526009602052604090204390555b6001600160a01b03821660009081526017602052604090205460ff1615611f3d5750506001600160a01b03166000908152600960205260409020439055565b6001600160a01b0383166000908152600b602052604090205460ff166120415760195460ff168015611f70575042601c54115b8015611f8a5750326000908152600a602052604090205443145b8015611fac57506001600160a01b038216600090815260186020526040902054155b1561200d576001600160a01b03821660009081526018602052604090819020439081905590517f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea9161200491329186916001906128e1565b60405180910390a15b6001600160a01b0382166000818152600a60205260409020439055321461204157326000908152600a602052604090204390555b505050565b6006546001600160a01b038316600090815260076020526040902054819061206f908490612a3e565b11156120415760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016109e2565b6001600160a01b03821660009081526017602052604081205460125460ff9091169082906120f8836115a9565b6121029086612b66565b61210c9190612a56565b30600090815260076020526040812080549293508392909190612130908490612a3e565b9091555061214090508185612b85565b95945050505050565b3360009081526017602052604081205460ff1615801561216c575060265460ff16155b801561217a575060235460ff165b801561219e57506001600160a01b03821660009081526017602052604090205460ff165b8015610bc1575060255430600090815260076020526040902054101592915050565b6026805460ff1916600117905560245460009082106121e1576024546121e3565b815b3060009081526007602052604090205490915081111561220f5750306000908152600760205260409020545b60006010546002600f54846122249190612b66565b61222e9190612a56565b6122389190612a56565b90506122448183612b85565b6040805160028082526060820183529294506000929091602083019080368337019050509050308160008151811061227e5761227e612be4565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156122d257600080fd5b505afa1580156122e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230a91906125c4565b8160018151811061231d5761231d612be4565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b81524792919091169063791ac947906123679087906000908790309042906004016129cd565b600060405180830381600087803b15801561238157600080fd5b505af1158015612395573d6000803e3d6000fd5b50505050600081476123a79190612b85565b905060006002600f546123ba9190612a56565b6010546123c79190612b85565b90506000816002600f54856123dc9190612b66565b6123e69190612a56565b6123f09190612a56565b905060006123fe8285612b85565b90508015612442576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612440573d6000803e3d6000fd5b505b86156124f05760155460135460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c4016060604051808303818588803b1580156124b357600080fd5b505af11580156124c7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124ec9190612881565b5050505b60408051828152602081018490529081018890527fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df99060600160405180910390a150506026805460ff1916905550505050505050565b60008083601f84011261255857600080fd5b50813567ffffffffffffffff81111561257057600080fd5b6020830191508360208260051b850101111561258b57600080fd5b9250929050565b803580151581146125a257600080fd5b919050565b6000602082840312156125b957600080fd5b8135610cda81612bfa565b6000602082840312156125d657600080fd5b8151610cda81612bfa565b600080604083850312156125f457600080fd5b82356125ff81612bfa565b9150602083013561260f81612bfa565b809150509250929050565b60008060006060848603121561262f57600080fd5b833561263a81612bfa565b9250602084013561264a81612bfa565b929592945050506040919091013590565b6000806040838503121561266e57600080fd5b823561267981612bfa565b915061268760208401612592565b90509250929050565b600080604083850312156126a357600080fd5b82356126ae81612bfa565b946020939093013593505050565b600080600080604085870312156126d257600080fd5b843567ffffffffffffffff808211156126ea57600080fd5b6126f688838901612546565b9096509450602087013591508082111561270f57600080fd5b5061271c87828801612546565b95989497509550505050565b60008060006040848603121561273d57600080fd5b833567ffffffffffffffff81111561275457600080fd5b61276086828701612546565b9094509250612773905060208501612592565b90509250925092565b60006020828403121561278e57600080fd5b610cda82612592565b600080600080608085870312156127ad57600080fd5b6127b685612592565b93506127c460208601612592565b93969395505050506040820135916060013590565b600080604083850312156127ec57600080fd5b6126ae83612592565b60006020828403121561280757600080fd5b5035919050565b6000806040838503121561282157600080fd5b82359150602083013561260f81612bfa565b6000806040838503121561284657600080fd5b50508035926020909101359150565b60008060006060848603121561286a57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561289657600080fd5b8351925060208401519150604084015190509250925092565b600080600080608085870312156128c557600080fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b039485168152929093166020830152604082015260ff909116606082015260800190565b600060208083528351808285015260005b818110156129395785810183015185820160400152820161291d565b8181111561294b576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a1d5784516001600160a01b0316835293830193918301916001016129f8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612a5157612a51612bce565b500190565b600082612a7357634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115612ab3578160001904821115612a9957612a99612bce565b80851615612aa657918102915b93841c9390800290612a7d565b509250929050565b6000610cda60ff841683600082612ad457506001610bc1565b81612ae157506000610bc1565b8160018114612af75760028114612b0157612b1d565b6001915050610bc1565b60ff841115612b1257612b12612bce565b50506001821b610bc1565b5060208310610133831016604e8410600b8410161715612b40575081810a610bc1565b612b4a8383612a78565b8060001904821115612b5e57612b5e612bce565b029392505050565b6000816000190483118215151615612b8057612b80612bce565b500290565b600082821015612b9757612b97612bce565b500390565b600081612bab57612bab612bce565b506000190190565b6000600019821415612bc757612bc7612bce565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114612c0f57600080fd5b5056fea2646970667358221220d19c778d207557b7b3c900efc9d40468e8477d7fac78318361443c7df27ca98364736f6c63430008070033
0x6080604052600180546001600160a01b031990811661dead17909155600280549091169055620000326009600a6200059c565b6200004290633b9aca006200065d565b6003556101f460035460016200005991906200065d565b62000065919062000530565b6004556101f460035460016200007c91906200065d565b62000088919062000530565b600555606460035460026200009e91906200065d565b620000aa919062000530565b6006556064600e81905560c8600f819055620000c69162000515565b6010556000601155612710601255601380546001600160a01b031990811673e0b845b835005b4012ab9410c43efd7bbce2696190811790925560148054821690921790915560168054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790556019805461ffff19908116600117909155602180548216905560026022556023805490911661010017905560035462000167906103e89062000530565b6024556127106003546200017c919062000530565b6025553480156200018c57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601654601580546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200022657600080fd5b505afa1580156200023b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002619190620004e3565b6001600160a01b031663c9c65396601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002be57600080fd5b505afa158015620002d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f99190620004e3565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b1580156200034157600080fd5b505af115801562000356573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037c9190620004e3565b601d80546001600160a01b0319166001600160a01b039290921691821790556000908152601760205260408120805460ff1916600117905560001990600890620003ce6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120601680548416835290855283822095909555308082526008855283822086548416835285528382206000199055815483168252600b85528382208054600160ff199182168117909255835485168452600d87528584208054821683179055918352600c865284832080548316821790558254841683528483208054831682179055955483168252838220805482168717905585548316825283822080549091169095179094556003548454821685526007845282852081905584549251908152911692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000695565b600060208284031215620004f657600080fd5b81516001600160a01b03811681146200050e57600080fd5b9392505050565b600082198211156200052b576200052b6200067f565b500190565b6000826200054e57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620005945781600019048211156200057857620005786200067f565b808516156200058657918102915b93841c939080029062000558565b509250929050565b60006200050e60ff841683600082620005b85750600162000657565b81620005c75750600062000657565b8160018114620005e05760028114620005eb576200060b565b600191505062000657565b60ff841115620005ff57620005ff6200067f565b50506001821b62000657565b5060208310610133831016604e8410600b841016171562000630575081810a62000657565b6200063c838362000553565b80600019048211156200065357620006536200067f565b0290505b92915050565b60008160001904831182151516156200067a576200067a6200067f565b500290565b634e487b7160e01b600052601160045260246000fd5b612c4880620006a56000396000f3fe6080604052600436106103035760003560e01c80636f4ce42811610190578063bf56b371116100dc578063e96fada211610095578063f84ba65d1161006f578063f84ba65d14610932578063f8821a6214610952578063f887ea4014610968578063fabb0b4f1461098857600080fd5b8063e96fada2146108d2578063f1f3bca3146108f2578063f2fde38b1461091257600080fd5b8063bf56b371146107e9578063bfa21d6a146107ff578063c1adf7bc1461081f578063c287184e1461084c578063d68601421461086c578063dd62ed3e1461088c57600080fd5b806395d89b4111610149578063a8aa1b3111610123578063a8aa1b3114610774578063a9059cbb14610794578063abe57e70146107b4578063bafe446b146107d457600080fd5b806395d89b41146107115780639b02c4021461073e578063a4b45c001461075457600080fd5b80636f4ce428146106295780636fcba3771461065657806370a0823114610676578063715018a6146106ac578063893d20e8146106c15780638da5cb5b146106f357600080fd5b8063492a937b1161024f578063584f969a1161020857806363a803e1116101e257806363a803e1146105ba578063658d4b7f146105cf57806367243482146105ef5780636ddd17131461060f57600080fd5b8063584f969a1461056f57806360bba03d1461058457806361e08e72146105a457600080fd5b8063492a937b146104b957806350713935146104d957806354a1dfc9146104f957806356a227f214610519578063571ac8b0146105395780635804f1e41461055957600080fd5b8063234e9494116102bc578063313ce56711610296578063313ce5671461043b57806334848b9a14610457578063421dd7c71461047757806346d7edaa1461048c57600080fd5b8063234e9494146103f157806323b872dd146104065780632b112e491461042657600080fd5b80630445b6671461030f57806306fdde0314610338578063095db78f14610375578063095ea7b3146103975780631031e36e146103c757806318160ddd146103dc57600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032560245481565b6040519081526020015b60405180910390f35b34801561034457600080fd5b5060408051808201909152600b81526a474f42424c455220494e5560a81b60208201525b60405161032f919061290c565b34801561038157600080fd5b50610395610390366004612728565b61099e565b005b3480156103a357600080fd5b506103b76103b2366004612690565b610b5a565b604051901515815260200161032f565b3480156103d357600080fd5b50610395610bc7565b3480156103e857600080fd5b50600354610325565b3480156103fd57600080fd5b50610325610c2c565b34801561041257600080fd5b506103b761042136600461261a565b610c4c565b34801561043257600080fd5b50610325610ce1565b34801561044757600080fd5b506040516009815260200161032f565b34801561046357600080fd5b50610395610472366004612855565b610d22565b34801561048357600080fd5b50610395610dc3565b34801561049857600080fd5b506103256104a73660046125a7565b60186020526000908152604090205481565b3480156104c557600080fd5b506103956104d436600461265b565b610e18565b3480156104e557600080fd5b506103956104f4366004612855565b610ed6565b34801561050557600080fd5b50610395610514366004612797565b610f71565b34801561052557600080fd5b5061039561053436600461280e565b610ff4565b34801561054557600080fd5b506103b76105543660046125a7565b611084565b34801561056557600080fd5b50610325601f5481565b34801561057b57600080fd5b50610395611092565b34801561059057600080fd5b5061039561059f36600461265b565b6110e7565b3480156105b057600080fd5b5061032560225481565b3480156105c657600080fd5b5061032561113c565b3480156105db57600080fd5b506103956105ea36600461265b565b611157565b3480156105fb57600080fd5b5061039561060a3660046126bc565b6111ac565b34801561061b57600080fd5b506023546103b79060ff1681565b34801561063557600080fd5b506103256106443660046125a7565b60096020526000908152604090205481565b34801561066257600080fd5b506103956106713660046128af565b611313565b34801561068257600080fd5b506103256106913660046125a7565b6001600160a01b031660009081526007602052604090205490565b3480156106b857600080fd5b50610395611376565b3480156106cd57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161032f565b3480156106ff57600080fd5b506000546001600160a01b03166106db565b34801561071d57600080fd5b5060408051808201909152600481526347494e5560e01b6020820152610368565b34801561074a57600080fd5b50610325601b5481565b34801561076057600080fd5b5061039561076f3660046125e1565b6113ea565b34801561078057600080fd5b50601d546106db906001600160a01b031681565b3480156107a057600080fd5b506103b76107af366004612690565b611442565b3480156107c057600080fd5b506103956107cf366004612833565b61144f565b3480156107e057600080fd5b506103256114c0565b3480156107f557600080fd5b50610325601e5481565b34801561080b57600080fd5b506013546106db906001600160a01b031681565b34801561082b57600080fd5b5061032561083a3660046125a7565b600a6020526000908152604090205481565b34801561085857600080fd5b506103956108673660046127f5565b6114db565b34801561087857600080fd5b506103956108873660046127d9565b611518565b34801561089857600080fd5b506103256108a73660046125e1565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156108de57600080fd5b506014546106db906001600160a01b031681565b3480156108fe57600080fd5b5061032561090d36600461277c565b6115a9565b34801561091e57600080fd5b5061039561092d3660046125a7565b6115f6565b34801561093e57600080fd5b5061039561094d36600461265b565b6116e0565b34801561095e57600080fd5b5061032560255481565b34801561097457600080fd5b506015546106db906001600160a01b031681565b34801561099457600080fd5b5061032560205481565b3360009081526027602052604090205460ff16806109c657506000546001600160a01b031633145b6109eb5760405162461bcd60e51b81526004016109e290612961565b60405180910390fd5b8015610a005760195460ff16610a0057600080fd5b60005b82811015610b54578115610a8f57601b8054906000610a2183612bb3565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea32858584818110610a5a57610a5a612be4565b9050602002016020810190610a6f91906125a7565b436002604051610a8294939291906128e1565b60405180910390a1610aef565b60186000858584818110610aa557610aa5612be4565b9050602002016020810190610aba91906125a7565b6001600160a01b0316815260208101919091526040016000205415610aef57601b8054906000610ae983612b9c565b91905055505b81610afb576000610afd565b435b60186000868685818110610b1357610b13612be4565b9050602002016020810190610b2891906125a7565b6001600160a01b0316815260208101919091526040016000205580610b4c81612bb3565b915050610a03565b50505050565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610bb59086815260200190565b60405180910390a35060015b92915050565b3360009081526027602052604090205460ff1680610bef57506000546001600160a01b031633145b610c0b5760405162461bcd60e51b81526004016109e290612961565b602154610100900460ff1615610c2057600080fd5b6021805460ff19169055565b6000610c3a6009600a612abb565b600554610c479190612a56565b905090565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610ccc576001600160a01b0384166000908152600860209081526040808320338452909152902054610ca7908390612b85565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610cd7848484611735565b90505b9392505050565b6002546001600160a01b039081166000908152600760205260408082205460015490931682528120549091610d1591612a3e565b600354610c479190612b85565b3360009081526027602052604090205460ff1680610d4a57506000546001600160a01b031633145b610d665760405162461bcd60e51b81526004016109e290612961565b60215460ff16158015610d795750600a83105b610d8257600080fd5b60208390556021805460ff1916600117905543601e55610da28242612a3e565b601c55610db16009600a612abb565b610dbb9082612b66565b601a55505050565b3360009081526027602052604090205460ff1680610deb57506000546001600160a01b031633145b610e075760405162461bcd60e51b81526004016109e290612961565b6019805461ffff1916610100179055565b6000546001600160a01b03163314610e425760405162461bcd60e51b81526004016109e290612998565b601d546001600160a01b0383811691161415610eab5760405162461bcd60e51b815260206004820152602260248201527f43616e277420616c7465722063757272656e74206c697175696469747920706160448201526134b960f11b60648201526084016109e2565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f005760405162461bcd60e51b81526004016109e290612998565b600083118015610f105750600082115b8015610f1c5750600081115b8015610f2a57506127108111155b610f3357600080fd5b8083600354610f429190612b66565b610f4c9190612a56565b6004556003548190610f5f908490612b66565b610f699190612a56565b600555505050565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b81526004016109e290612998565b60008211610fa857600080fd5b6023805461ffff191685151561ff0019161761010085151502179055600354610fd2908390612a56565b602455610fe16009600a612abb565b610feb9082612b66565b60255550505050565b3360009081526027602052604090205460ff168061101c57506000546001600160a01b031633145b6110385760405162461bcd60e51b81526004016109e290612961565b476001600160a01b0382166108fc60646110528685612b66565b61105c9190612a56565b6040518115909202916000818181858888f19350505050158015610b54573d6000803e3d6000fd5b6000610bc182600019610b5a565b3360009081526027602052604090205460ff16806110ba57506000546001600160a01b031633145b6110d65760405162461bcd60e51b81526004016109e290612961565b6021805461ffff1916610101179055565b6000546001600160a01b031633146111115760405162461bcd60e51b81526004016109e290612998565b6001600160a01b03919091166000908152602760205260409020805460ff1916911515919091179055565b600061114a6009600a612abb565b600654610c479190612a56565b6000546001600160a01b031633146111815760405162461bcd60e51b81526004016109e290612998565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111d65760405162461bcd60e51b81526004016109e290612998565b82158015906111e457508083145b6111ed57600080fd5b3360005b8481101561130b576017600087878481811061120f5761120f612be4565b905060200201602081019061122491906125a7565b6001600160a01b0316815260208101919091526040016000205460ff161580156112935750600d600087878481811061125f5761125f612be4565b905060200201602081019061127491906125a7565b6001600160a01b0316815260208101919091526040016000205460ff16155b156112f9576112f7828787848181106112ae576112ae612be4565b90506020020160208101906112c391906125a7565b6112cf6009600a612abb565b8787868181106112e1576112e1612be4565b905060200201356112f29190612b66565b611c37565b505b8061130381612bb3565b9150506111f1565b505050505050565b6000546001600160a01b0316331461133d5760405162461bcd60e51b81526004016109e290612998565b600f849055600e8390556113518484612a3e565b60105560118290556012819055611369600282612a56565b60105410610b5457600080fd5b6000546001600160a01b031633146113a05760405162461bcd60e51b81526004016109e290612998565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146114145760405162461bcd60e51b81526004016109e290612998565b601380546001600160a01b039384166001600160a01b03199182161790915560148054929093169116179055565b6000610cda338484611735565b6000546001600160a01b031633146114795760405162461bcd60e51b81526004016109e290612998565b6000821180156114895750600081115b801561149757506127108111155b6114a057600080fd5b80826003546114af9190612b66565b6114b99190612a56565b6006555050565b60006114ce6009600a612abb565b600454610c479190612a56565b6000546001600160a01b031633146115055760405162461bcd60e51b81526004016109e290612998565b603c81111561151357600080fd5b602255565b3360009081526027602052604090205460ff168061154057506000546001600160a01b031633145b61155c5760405162461bcd60e51b81526004016109e290612961565b601954610100900460ff161561157157600080fd5b6019805460ff191683151517905562015180811061158e57600080fd5b80601c60008282546115a09190612a3e565b90915550505050565b600043602054601e546115bc9190612a3e565b106115d0576001601254610bc19190612b85565b81156115e657601154601054610bc19190612a3e565b601154601054610bc19190612b85565b6000546001600160a01b031633146116205760405162461bcd60e51b81526004016109e290612998565b6001600160a01b0381166116855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109e2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461170a5760405162461bcd60e51b81526004016109e290612998565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60006001600160a01b03841661178d5760405162461bcd60e51b815260206004820152601860248201527f42455032303a207472616e736665722066726f6d20307830000000000000000060448201526064016109e2565b6001600160a01b0383166117dc5760405162461bcd60e51b8152602060048201526016602482015275042455032303a207472616e7366657220746f203078360541b60448201526064016109e2565b600082116118245760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206d757374206265203e207a65726f60581b60448201526064016109e2565b6001600160a01b0384166000908152600760205260409020548211156118835760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016109e2565b601e541580156118ab57506001600160a01b03831660009081526017602052604090205460ff165b15611932576001600160a01b0384166000908152600d602052604090205460ff166119185760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206e6f74206164646564207965742e000000000000000060448201526064016109e2565b61193243601e5542601f556023805460ff19166001179055565b60215460ff166119bf576001600160a01b0384166000908152600d602052604090205460ff168061197b57506001600160a01b0383166000908152600d602052604090205460ff165b6119bf5760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b60448201526064016109e2565b6119ca848484611cf1565b6001600160a01b03831660009081526017602052604090205460ff16158015611a0157506001546001600160a01b03848116911614155b15611a30576001600160a01b0383166000908152600c602052604090205460ff16611a3057611a308383612046565b60195460ff168015611a43575042601c54115b15611b0d576001600160a01b03841660009081526017602052604090205460ff168015611a795750326001600160a01b03841614155b8015611a9b57506001600160a01b038316600090815260186020526040902054155b15611b0d576001600160a01b0383166000908152601860205260408120439055601b805491611ac983612bb3565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea3284436000604051611b0494939291906128e1565b60405180910390a15b60265460ff1615611b2a57611b23848484611c37565b9050610cda565b6001600160a01b038416600090815260076020526040902054611b4e908390612b85565b6001600160a01b038516600090815260076020908152604080832093909355600b90529081205460ff1615611b835782611b8d565b611b8d84846120cb565b9050611b9884612149565b15611bac578215611bac57611bac836121c0565b6001600160a01b038416600090815260076020526040902054611bd0908290612a3e565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c249085815260200190565b60405180910390a3506001949350505050565b6001600160a01b038316600090815260076020526040812054611c5b908390612b85565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611c8b908390612a3e565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cdf9086815260200190565b60405180910390a35060019392505050565b6001600160a01b0383166000908152600c602052604090205460ff1680611d4357506001600160a01b03831660009081526017602052604090205460ff16611d3b57600554611d3f565b6004545b8111155b611d835760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016109e2565b6001600160a01b0383166000908152600c602052604090205460ff1680611dcf57506022546001600160a01b0383166000908152600a60205260409020544391611dcc91612a3e565b11155b611e1b5760405162461bcd60e51b815260206004820152601d60248201527f5472616e736665722072617465206c696d69742065786365656465642e00000060448201526064016109e2565b6001600160a01b03831660009081526018602052604090205415611efe57611e456009600a612abb565b601a54611e529190612b66565b8111158015611e7757506001600160a01b038316600090815260096020526040902054155b8015611e84575042601c54115b611ee25760405162461bcd60e51b815260206004820152602960248201527f57616c6c65742070726f7465637465642c20706c6561736520636f6e746163746044820152681039bab83837b93a1760b91b60648201526084016109e2565b6001600160a01b03831660009081526009602052604090204390555b6001600160a01b03821660009081526017602052604090205460ff1615611f3d5750506001600160a01b03166000908152600960205260409020439055565b6001600160a01b0383166000908152600b602052604090205460ff166120415760195460ff168015611f70575042601c54115b8015611f8a5750326000908152600a602052604090205443145b8015611fac57506001600160a01b038216600090815260186020526040902054155b1561200d576001600160a01b03821660009081526018602052604090819020439081905590517f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea9161200491329186916001906128e1565b60405180910390a15b6001600160a01b0382166000818152600a60205260409020439055321461204157326000908152600a602052604090204390555b505050565b6006546001600160a01b038316600090815260076020526040902054819061206f908490612a3e565b11156120415760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016109e2565b6001600160a01b03821660009081526017602052604081205460125460ff9091169082906120f8836115a9565b6121029086612b66565b61210c9190612a56565b30600090815260076020526040812080549293508392909190612130908490612a3e565b9091555061214090508185612b85565b95945050505050565b3360009081526017602052604081205460ff1615801561216c575060265460ff16155b801561217a575060235460ff165b801561219e57506001600160a01b03821660009081526017602052604090205460ff165b8015610bc1575060255430600090815260076020526040902054101592915050565b6026805460ff1916600117905560245460009082106121e1576024546121e3565b815b3060009081526007602052604090205490915081111561220f5750306000908152600760205260409020545b60006010546002600f54846122249190612b66565b61222e9190612a56565b6122389190612a56565b90506122448183612b85565b6040805160028082526060820183529294506000929091602083019080368337019050509050308160008151811061227e5761227e612be4565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156122d257600080fd5b505afa1580156122e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230a91906125c4565b8160018151811061231d5761231d612be4565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b81524792919091169063791ac947906123679087906000908790309042906004016129cd565b600060405180830381600087803b15801561238157600080fd5b505af1158015612395573d6000803e3d6000fd5b50505050600081476123a79190612b85565b905060006002600f546123ba9190612a56565b6010546123c79190612b85565b90506000816002600f54856123dc9190612b66565b6123e69190612a56565b6123f09190612a56565b905060006123fe8285612b85565b90508015612442576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612440573d6000803e3d6000fd5b505b86156124f05760155460135460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c4016060604051808303818588803b1580156124b357600080fd5b505af11580156124c7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124ec9190612881565b5050505b60408051828152602081018490529081018890527fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df99060600160405180910390a150506026805460ff1916905550505050505050565b60008083601f84011261255857600080fd5b50813567ffffffffffffffff81111561257057600080fd5b6020830191508360208260051b850101111561258b57600080fd5b9250929050565b803580151581146125a257600080fd5b919050565b6000602082840312156125b957600080fd5b8135610cda81612bfa565b6000602082840312156125d657600080fd5b8151610cda81612bfa565b600080604083850312156125f457600080fd5b82356125ff81612bfa565b9150602083013561260f81612bfa565b809150509250929050565b60008060006060848603121561262f57600080fd5b833561263a81612bfa565b9250602084013561264a81612bfa565b929592945050506040919091013590565b6000806040838503121561266e57600080fd5b823561267981612bfa565b915061268760208401612592565b90509250929050565b600080604083850312156126a357600080fd5b82356126ae81612bfa565b946020939093013593505050565b600080600080604085870312156126d257600080fd5b843567ffffffffffffffff808211156126ea57600080fd5b6126f688838901612546565b9096509450602087013591508082111561270f57600080fd5b5061271c87828801612546565b95989497509550505050565b60008060006040848603121561273d57600080fd5b833567ffffffffffffffff81111561275457600080fd5b61276086828701612546565b9094509250612773905060208501612592565b90509250925092565b60006020828403121561278e57600080fd5b610cda82612592565b600080600080608085870312156127ad57600080fd5b6127b685612592565b93506127c460208601612592565b93969395505050506040820135916060013590565b600080604083850312156127ec57600080fd5b6126ae83612592565b60006020828403121561280757600080fd5b5035919050565b6000806040838503121561282157600080fd5b82359150602083013561260f81612bfa565b6000806040838503121561284657600080fd5b50508035926020909101359150565b60008060006060848603121561286a57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561289657600080fd5b8351925060208401519150604084015190509250925092565b600080600080608085870312156128c557600080fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b039485168152929093166020830152604082015260ff909116606082015260800190565b600060208083528351808285015260005b818110156129395785810183015185820160400152820161291d565b8181111561294b576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a1d5784516001600160a01b0316835293830193918301916001016129f8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612a5157612a51612bce565b500190565b600082612a7357634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115612ab3578160001904821115612a9957612a99612bce565b80851615612aa657918102915b93841c9390800290612a7d565b509250929050565b6000610cda60ff841683600082612ad457506001610bc1565b81612ae157506000610bc1565b8160018114612af75760028114612b0157612b1d565b6001915050610bc1565b60ff841115612b1257612b12612bce565b50506001821b610bc1565b5060208310610133831016604e8410600b8410161715612b40575081810a610bc1565b612b4a8383612a78565b8060001904821115612b5e57612b5e612bce565b029392505050565b6000816000190483118215151615612b8057612b80612bce565b500290565b600082821015612b9757612b97612bce565b500390565b600081612bab57612bab612bce565b506000190190565b6000600019821415612bc757612bc7612bce565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114612c0f57600080fd5b5056fea2646970667358221220d19c778d207557b7b3c900efc9d40468e8477d7fac78318361443c7df27ca98364736f6c63430008070033