6080604052620000126009600a62000548565b6200002190620f424062000607565b600855600980546001600160a01b0319908116736b6d959d7b67c8e66b7d8b726dbd403a810595f5178255600a8054821673bb4bee472c78828ac4eab49f10ee872646b91789178155600b8054909216737a250d5630b4cf539739df2c5dacb4c659f2488d1790915562000096919062000548565b620000a690633b9aca0062000607565b600c819055600d819055600e55620000c16009600a62000548565b620000d0906298968062000607565b600f5560146011556001601255348015620000ea57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c54336000818152600160209081526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600b54601480546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b158015620001cb57600080fd5b505afa158015620001e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002069190620004ae565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200026457600080fd5b505afa15801562000279573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029f9190620004ae565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002e857600080fd5b505af1158015620002fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003239190620004ae565b601380546001600160a01b0392909216660100000000000002600160301b600160d01b03199092169190911790556032620003616009600a62000548565b6200037190633b9aca0062000607565b6200037d9190620004de565b600d556064620003906009600a62000548565b620003a090633b9aca0062000607565b620003ac9190620004de565b600e5560006018556013805465ffffffffffff191665461e000f0f0a179055600954620003f1906004906001600160a01b03166200043c602090811b620022ed17901c565b50600a5462000418906004906001600160a01b03166200043c602090811b620022ed17901c565b50620004343360046200043c60201b620022ed1790919060201c565b50506200063f565b600062000453836001600160a01b0384166200045c565b90505b92915050565b6000818152600183016020526040812054620004a55750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000456565b50600062000456565b600060208284031215620004c0578081fd5b81516001600160a01b0381168114620004d7578182fd5b9392505050565b600082620004fa57634e487b7160e01b81526012600452602481fd5b500490565b600181815b808511156200054057816000190482111562000524576200052462000629565b808516156200053257918102915b93841c939080029062000504565b509250929050565b60006200045360ff841683600082620005645750600162000456565b81620005735750600062000456565b81600181146200058c57600281146200059757620005b7565b600191505062000456565b60ff841115620005ab57620005ab62000629565b50506001821b62000456565b5060208310610133831016604e8410600b8410161715620005dc575081810a62000456565b620005e88383620004ff565b8060001904821115620005ff57620005ff62000629565b029392505050565b600081600019048311821515161562000624576200062462000629565b500290565b634e487b7160e01b600052601160045260246000fd5b613963806200064f6000396000f3fe6080604052600436106103605760003560e01c8063677a8870116101c45780639fa62d5f116100f6578063d8902ff51161009a578063e803050c1161006c578063e803050c14610a77578063f2c816ae14610a97578063f2fde38b14610ab7578063f9ab736614610ad757005b8063d8902ff5146109d1578063daf9a47a146109f1578063dd62ed3e14610a11578063e2fd002a14610a5757005b8063b766a386116100d3578063b766a38614610967578063c3a3c03214610987578063c3f4f54f1461099c578063d11edf74146109b157005b80639fa62d5f14610907578063a457c2d714610927578063a9059cbb1461094757005b8063828e8b7e11610168578063929dffda1161013a578063929dffda1461087357806395d89b41146108935780639bc845fb146108c75780639bf65770146108e757005b8063828e8b7e1461082657806386d0ada81461083b578063893d20e8146108555780638da5cb5b1461085557005b806370a08231116101a157806370a08231146107b0578063715018a6146107e6578063762bb282146107fb5780637b9e987a1461081157005b8063677a8870146107465780636eb8c7f1146107665780636f89e4091461078657005b806335e82f3a1161029d5780634cbf8e241161024157806358e1df921161021357806358e1df92146106e657806358e55365146106fb5780635c69f6901461071157806361cb27481461072657005b80634cbf8e241461067b5780634cdaf0ae146106905780634f91e48c146106b057806357ad67d1146106c657005b80633cc39b7a1161027a5780633cc39b7a146106105780634476f35a1461062657806344f3c83a146106465780634ada218b1461065c57005b806335e82f3a1461059c57806339509351146105bc5780633c7a309b146105dc57005b806323b872dd116103045780632973ef2d116102e15780632973ef2d146104d75780633054f8a314610542578063311a869714610561578063313ce5671461058857005b806323b872dd1461046a578063243b529a1461048a5780632594b3431461049f57005b80630fd99e161161033d5780630fd99e161461040357806314ddc0951461042b57806318160ddd146104405780631eb25d131461045557005b806306fdde0314610369578063095ea7b3146103b05780630fa5b215146103e057005b3661036757005b005b34801561037557600080fd5b5060408051808201909152600c81526b26b7bd3d30a1b432b23230b960a11b60208201525b6040516103a791906135ba565b60405180910390f35b3480156103bc57600080fd5b506103d06103cb36600461342b565b610af7565b60405190151581526020016103a7565b3480156103ec57600080fd5b506103f5610b0e565b6040519081526020016103a7565b34801561040f57600080fd5b50610418606481565b60405161ffff90911681526020016103a7565b34801561043757600080fd5b506018546103f5565b34801561044c57600080fd5b50600c546103f5565b34801561046157600080fd5b506103f5610d69565b34801561047657600080fd5b506103d06104853660046133eb565b610d86565b34801561049657600080fd5b50610367610e1d565b3480156104ab57600080fd5b50600a546104bf906001600160a01b031681565b6040516001600160a01b0390911681526020016103a7565b3480156104e357600080fd5b506013546040805160ff63010000008404811682526401000000008404811660208301526501000000000084048116928201929092528183166060820152610100830482166080820152620100009092041660a082015260c0016103a7565b34801561054e57600080fd5b506017546103d090610100900460ff1681565b34801561056d57600080fd5b50610576603281565b60405160ff90911681526020016103a7565b34801561059457600080fd5b506009610576565b3480156105a857600080fd5b506103676105b736600461337b565b610e60565b3480156105c857600080fd5b506103d06105d736600461342b565b610eca565b3480156105e857600080fd5b506105f1610f01565b604080516001600160a01b0390931683526020830191909152016103a7565b34801561061c57600080fd5b506103f560165481565b34801561063257600080fd5b5061036761064136600461348e565b6110b4565b34801561065257600080fd5b506103f560185481565b34801561066857600080fd5b506019546103d090610100900460ff1681565b34801561068757600080fd5b506103676112a9565b34801561069c57600080fd5b506103676106ab36600461337b565b61139d565b3480156106bc57600080fd5b506103f5600e5481565b3480156106d257600080fd5b506103676106e136600461350c565b611426565b3480156106f257600080fd5b506103676117bb565b34801561070757600080fd5b506103f560155481565b34801561071d57600080fd5b50610418600981565b34801561073257600080fd5b5061036761074136600461337b565b611819565b34801561075257600080fd5b506009546104bf906001600160a01b031681565b34801561077257600080fd5b5061036761078136600461348e565b61185d565b34801561079257600080fd5b5061079b6118cc565b604080519283526020830191909152016103a7565b3480156107bc57600080fd5b506103f56107cb36600461337b565b6001600160a01b031660009081526001602052604090205490565b3480156107f257600080fd5b50610367611909565b34801561080757600080fd5b506103f5600d5481565b34801561081d57600080fd5b5061036761198c565b34801561083257600080fd5b506103676119da565b34801561084757600080fd5b506019546103d09060ff1681565b34801561086157600080fd5b506000546001600160a01b03166104bf565b34801561087f57600080fd5b5061036761088e36600461337b565b6119fe565b34801561089f57600080fd5b5060408051808201909152600b81526a52415441544f55494c4c4560a81b602082015261039a565b3480156108d357600080fd5b506103676108e236600461337b565b611a95565b3480156108f357600080fd5b50610367610902366004613456565b611b2c565b34801561091357600080fd5b506103676109223660046134be565b611baa565b34801561093357600080fd5b506103d061094236600461342b565b611dc3565b34801561095357600080fd5b506103d061096236600461342b565b611e3f565b34801561097357600080fd5b50610367610982366004613456565b611e4c565b34801561099357600080fd5b506103f5611ed4565b3480156109a857600080fd5b506103f5611ef4565b3480156109bd57600080fd5b506103676109cc36600461348e565b611f33565b3480156109dd57600080fd5b506103676109ec36600461337b565b611f8d565b3480156109fd57600080fd5b50610367610a0c36600461348e565b612024565b348015610a1d57600080fd5b506103f5610a2c3660046133b3565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b348015610a6357600080fd5b50610367610a7236600461348e565b612092565b348015610a8357600080fd5b506103f5610a9236600461337b565b612136565b348015610aa357600080fd5b50610367610ab236600461337b565b612170565b348015610ac357600080fd5b50610367610ad236600461337b565b6121b4565b348015610ae357600080fd5b50610367610af236600461337b565b6122ad565b6000610b04338484612302565b5060015b92915050565b600033610b236000546001600160a01b031690565b6001600160a01b031614610b525760405162461bcd60e51b8152600401610b4990613637565b60405180910390fd5b601a54421015610b745760405162461bcd60e51b8152600401610b499061360d565b6019546040516370a0823160e01b8152306004820152620100009091046001600160a01b03169060009082906370a082319060240160206040518083038186803b158015610bc157600080fd5b505afa158015610bd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf991906134a6565b60145460405163095ea7b360e01b81526001600160a01b0391821660048201526024810183905291925083169063095ea7b390604401602060405180830381600087803b158015610c4957600080fd5b505af1158015610c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c819190613472565b5060145447906001600160a01b031663af2979eb30846064610ca482604b61385e565b610cae9190613750565b6064610cbb88604b61385e565b610cc59190613750565b30426040518763ffffffff1660e01b8152600401610ce89695949392919061357f565b602060405180830381600087803b158015610d0257600080fd5b505af1158015610d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3a91906134a6565b506000610d47824761387d565b90508060156000828254610d5b9190613713565b909155509094505050505090565b610d756009600a6137b3565b610d8390633b9aca0061385e565b81565b6000610d938484846123f5565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610dfe5760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610b49565b610e128533610e0d868561387d565b612302565b506001949350505050565b33610e306000546001600160a01b031690565b6001600160a01b031614610e565760405162461bcd60e51b8152600401610b4990613637565b610e5e612652565b565b33610e736000546001600160a01b031690565b6001600160a01b031614610e995760405162461bcd60e51b8152600401610b4990613637565b610ea46006826127a5565b506040516001600160a01b0382169060008051602061390e83398151915290600090a250565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610b04918590610e0d908690613713565b60008033610f176000546001600160a01b031690565b6001600160a01b031614610f3d5760405162461bcd60e51b8152600401610b4990613637565b601a54421015610f5f5760405162461bcd60e51b8152600401610b499061360d565b6019546040516370a0823160e01b8152306004820152620100009091046001600160a01b03169060009082906370a082319060240160206040518083038186803b158015610fac57600080fd5b505afa158015610fc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe491906134a6565b60095460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb90604401602060405180830381600087803b15801561103457600080fd5b505af1158015611048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106c9190613472565b506009546040518281526001600160a01b039091169030906000805160206138ee8339815191529060200160405180910390a36009546001600160a01b031693509150509091565b336110c76000546001600160a01b031690565b6001600160a01b0316146110ed5760405162461bcd60e51b8152600401610b4990613637565b6015548111156111555760405162461bcd60e51b815260206004820152602d60248201527f4572726f723a20416d6f756e742067726561746572207468616e20617661696c60448201526c30b13632903130b630b731b29760991b6064820152608401610b49565b8060156000828254611167919061387d565b90915550506009546001600160a01b03166108fc606461118884603261385e565b6111929190613750565b6040518115909202916000818181858888f193505050501580156111ba573d6000803e3d6000fd5b50600a546001600160a01b03166108fc60646111d784603261385e565b6111e19190613750565b6111eb908461387d565b6040518115909202916000818181858888f19350505050158015611213573d6000803e3d6000fd5b506009546001600160a01b0316306000805160206138ee833981519152606461123d85603261385e565b6112479190613750565b60405190815260200160405180910390a3600a546001600160a01b0316306000805160206138ee833981519152606461128185603261385e565b61128b9190613750565b611295908561387d565b60405190815260200160405180910390a350565b336112bc6000546001600160a01b031690565b6001600160a01b0316146112e25760405162461bcd60e51b8152600401610b4990613637565b601a544210156113045760405162461bcd60e51b8152600401610b499061360d565b6009546040516000916001600160a01b03169047908381818185875af1925050503d8060008114611351576040519150601f19603f3d011682016040523d82523d6000602084013e611356565b606091505b505090508061139a5760405162461bcd60e51b815260206004820152601060248201526f22b93937b91d102737ba1039b2b73a1760811b6044820152606401610b49565b50565b336113b06000546001600160a01b031690565b6001600160a01b0316146113d65760405162461bcd60e51b8152600401610b4990613637565b6001600160a01b0381166113fc5760405162461bcd60e51b8152600401610b499061366c565b601980546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b336114396000546001600160a01b031690565b6001600160a01b03161461145f5760405162461bcd60e51b8152600401610b4990613637565b60008461146c878961372b565b611476919061372b565b90508060ff166064146114da5760405162461bcd60e51b815260206004820152602660248201527f6275726e2b6c69712b6d61726b6574696e67206e6565647320746f20657175616044820152656c203130302560d01b6064820152608401610b49565b60148460ff1611156115545760405162461bcd60e51b815260206004820152603d60248201527f4572726f723a20486f6e6579706f742070726576656e74696f6e20707265766560448201527f6e7473206275795461782066726f6d20657863656564696e672032302e0000006064820152608401610b49565b60148360ff1611156115ce5760405162461bcd60e51b815260206004820152603e60248201527f4572726f723a20486f6e6579706f742070726576656e74696f6e20707265766560448201527f6e74732073656c6c5461782066726f6d20657863656564696e672032302e00006064820152608401610b49565b60148260ff1611156116535760405162461bcd60e51b815260206004820152604260248201527f4572726f723a20486f6e6579706f742070726576656e74696f6e20707265766560448201527f6e7473207472616e736665725461782066726f6d20657863656564696e672032606482015261181760f11b608482015260a401610b49565b86601360036101000a81548160ff021916908360ff16021790555085601360046101000a81548160ff021916908360ff16021790555084601360056101000a81548160ff021916908360ff16021790555083601360006101000a81548160ff021916908360ff16021790555082601360016101000a81548160ff021916908360ff16021790555081601360026101000a81548160ff021916908360ff160217905550601360039054906101000a900460ff1660ff166000805160206138ce83398151915260405160405180910390a260135460405164010000000090910460ff16906000805160206138ce83398151915290600090a260135460405160ff909116906000805160206138ce83398151915290600090a260135460405161010090910460ff16906000805160206138ce83398151915290600090a26013546040516201000090910460ff16906000805160206138ce83398151915290600090a250505050505050565b336117ce6000546001600160a01b031690565b6001600160a01b0316146117f45760405162461bcd60e51b8152600401610b4990613637565b6015805460009091556009546001600160a01b03166108fc606461118884603261385e565b3361182c6000546001600160a01b031690565b6001600160a01b0316146118525760405162461bcd60e51b8152600401610b4990613637565b610ea46004826127a5565b336118706000546001600160a01b031690565b6001600160a01b0316146118965760405162461bcd60e51b8152600401610b4990613637565b6118a86118a34283613713565b6127ba565b6118b24282613713565b6040516000805160206138ce83398151915290600090a250565b6000806118db6009600a6137b3565b600d546118e89190613750565b6118f46009600a6137b3565b600e546119019190613750565b915091509091565b3361191c6000546001600160a01b031690565b6001600160a01b0316146119425760405162461bcd60e51b8152600401610b4990613637565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b3361199f6000546001600160a01b031690565b6001600160a01b0316146119c55760405162461bcd60e51b8152600401610b4990613637565b6019805461ff00191661010017905542601055565b6018546119e79042613713565b33600090815260036020526040902055565b905090565b33611a116000546001600160a01b031690565b6001600160a01b031614611a375760405162461bcd60e51b8152600401610b4990613637565b6001600160a01b038116611a5d5760405162461bcd60e51b8152600401610b499061366c565b600b80546001600160a01b0319166001600160a01b03831690811790915560405160008051602061390e83398151915290600090a250565b33611aa86000546001600160a01b031690565b6001600160a01b031614611ace5760405162461bcd60e51b8152600401610b4990613637565b6001600160a01b038116611af45760405162461bcd60e51b8152600401610b499061366c565b600980546001600160a01b0319166001600160a01b03831690811790915560405160008051602061390e83398151915290600090a250565b33611b3f6000546001600160a01b031690565b6001600160a01b031614611b655760405162461bcd60e51b8152600401610b4990613637565b6019805460ff191682151590811790915560405160ff9091161515907f669a6418e904a59fab89972d5ce42429cb380f287efcaef65dace33212fda0d990600090a250565b33611bbd6000546001600160a01b031690565b6001600160a01b031614611be35760405162461bcd60e51b8152600401610b4990613637565b6064600c54611bf29190613750565b8110611c5e5760405162461bcd60e51b815260206004820152603560248201527f4572726f723a204e65772073656c6c206c696d69742061626f7665203125206f604482015274331031b4b931bab630ba34b7339039bab838363c9760591b6064820152608401610b49565b611c6a6009600a6137b3565b611c74908361385e565b9150611c826009600a6137b3565b611c8c908261385e565b90506000603260ff16600c54611ca29190613750565b90506000606461ffff16600c54611cb99190613750565b905081841015611d1f5760405162461bcd60e51b815260206004820152602b60248201527f6e657742616c616e63654c696d6974206e6565647320746f206265206174206c60448201526a19585cdd081d185c99d95d60aa1b6064820152608401610b49565b80831015611d805760405162461bcd60e51b815260206004820152602860248201527f6e657753656c6c4c696d6974206e6565647320746f206265206174206c6561736044820152671d081d185c99d95d60c21b6064820152608401610b49565b600d849055600e83905560405184906000805160206138ce83398151915290600090a2600e546040516000805160206138ce83398151915290600090a250505050565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015611e265760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610b49565b611e353385610e0d868561387d565b5060019392505050565b6000610b043384846123f5565b33611e5f6000546001600160a01b031690565b6001600160a01b031614611e855760405162461bcd60e51b8152600401610b4990613637565b6017805461ff0019166101008315158102919091179182905560405160ff91909204161515907f669a6418e904a59fab89972d5ce42429cb380f287efcaef65dace33212fda0d990600090a250565b6000601a54421015611eee5742601a546119f9919061387d565b50600090565b6000611f026009600a6137b3565b600c54611f116009600a6137b3565b611f1f90633b9aca0061385e565b611f29919061387d565b6119f99190613750565b33611f466000546001600160a01b031690565b6001600160a01b031614611f6c5760405162461bcd60e51b8152600401610b4990613637565b600881905560405181906000805160206138ce83398151915290600090a250565b33611fa06000546001600160a01b031690565b6001600160a01b031614611fc65760405162461bcd60e51b8152600401610b4990613637565b6001600160a01b038116611fec5760405162461bcd60e51b8152600401610b499061366c565b600a80546001600160a01b0319166001600160a01b03831690811790915560405160008051602061390e83398151915290600090a250565b336120376000546001600160a01b031690565b6001600160a01b03161461205d5760405162461bcd60e51b8152600401610b4990613637565b6120696009600a6137b3565b612073908261385e565b600f8190556040516000805160206138ce83398151915290600090a250565b336120a56000546001600160a01b031690565b6001600160a01b0316146120cb5760405162461bcd60e51b8152600401610b4990613637565b60098111156121155760405162461bcd60e51b8152602060048201526016602482015275084eaf24098dec6d640e8d2daca40e8dede40d0d2ced60531b6044820152606401610b49565b601881905560405181906000805160206138ce83398151915290600090a250565b6001600160a01b03811660009081526003602052604081205442811161215f5750600092915050565b612169428261387d565b9392505050565b336121836000546001600160a01b031690565b6001600160a01b0316146121a95760405162461bcd60e51b8152600401610b4990613637565b610ea46006826122ed565b336121c76000546001600160a01b031690565b6001600160a01b0316146121ed5760405162461bcd60e51b8152600401610b4990613637565b6001600160a01b0381166122525760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b49565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b336122c06000546001600160a01b031690565b6001600160a01b0316146122e65760405162461bcd60e51b8152600401610b4990613637565b610ea46004825b6000612169836001600160a01b038416612844565b6001600160a01b03831661234c5760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610b49565b6001600160a01b0382166123945760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610b49565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166124405760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610b49565b6001600160a01b0382166124895760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610b49565b6000612496600485612893565b806124a757506124a7600484612893565b905060006001600160a01b0385163014806124ca57506001600160a01b03841630145b6014546013549192506001600160a01b0390811691600091888116600160301b9092041614801561250c5750816001600160a01b0316866001600160a01b0316145b8061254757506013546001600160a01b03878116600160301b909204161480156125475750816001600160a01b0316876001600160a01b0316145b6013549091506000906001600160a01b03898116600160301b9092041614806125815750826001600160a01b0316886001600160a01b0316145b6013549091506000906001600160a01b03898116600160301b9092041614806125bb5750836001600160a01b0316886001600160a01b0316145b905084806125c65750825b806125ce5750855b156125e3576125de8989896128b5565b612647565b601954610100900460ff1661263a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610b49565b612647898989858561296e565b505050505050505050565b6017805460ff19166001908117909155306000908152602091909152604081205460135490919061269a90640100000000810460ff908116916501000000000090041661372b565b60ff16905060006008549050808310806126b6575061ffff8216155b156126c357505050612799565b60135460009061ffff8416906126e490640100000000900460ff168461385e565b6126ee9190613750565b905060006126fc828461387d565b9050600061270b600284613750565b90506000612719828561387d565b905060006127278483613713565b90504761273382612f28565b600061273f824761387d565b905060008361274e868461385e565b6127589190613750565b905061276486826130ac565b5060009050612773844761387d565b905080601560008282546127879190613713565b90915550505050505050505050505050505b6017805460ff19169055565b6000612169836001600160a01b0384166131b1565b601a5481116128235760405162461bcd60e51b815260206004820152602f60248201527f4572726f723a204e657720756e6c6f636b2074696d652069732073686f72746560448201526e39103a3430b71037b6321037b7329760891b6064820152608401610b49565b601a81905560405181906000805160206138ce83398151915290600090a250565b600081815260018301602052604081205461288b57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b08565b506000610b08565b6001600160a01b03811660009081526001830160205260408120541515612169565b6001600160a01b038316600090815260016020526040902054818110156129195760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610b49565b61292384836132c8565b61292d838361330d565b826001600160a01b0316846001600160a01b03166000805160206138ee8339815191528460405161296091815260200190565b60405180910390a350505050565b6001600160a01b03808516600090815260016020526040808220549288168252902054848110156129dc5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610b49565b60008315612aef57600e54861115612a285760405162461bcd60e51b815260206004820152600f60248201526e223ab6b810383937ba32b1ba34b7b760891b6044820152606401610b49565b612a33600689612893565b15612a775760405162461bcd60e51b81526020600482015260146024820152734164647265737320626c61636b6c69737465642160601b6044820152606401610b49565b601154601054612a879190613713565b4211158015612a9857506012546001145b15612ade57612aa86006896122ed565b506040516001600160a01b038916907f8c21268f4379683ad2b81c32b4357f44a17e83e73d741ba6e8c23e085e57135190600090a25b50601354610100900460ff16612dd5565b8415612c6257600d54612b028785613713565b1115612b435760405162461bcd60e51b815260206004820152601060248201526f3bb430b63290383937ba32b1ba34b7b760811b6044820152606401610b49565b600f54861115612ba05760405162461bcd60e51b815260206004820152602260248201527f547820616d6f756e7420657863656564696e67206d61782062757920616d6f756044820152611b9d60f21b6064820152608401610b49565b612bab600688612893565b15612bef5760405162461bcd60e51b81526020600482015260146024820152734164647265737320626c61636b6c69737465642160601b6044820152606401610b49565b601154601054612bff9190613713565b4211158015612c1057506012546001145b15612c5657612c206006886122ed565b506040516001600160a01b038816907f8c21268f4379683ad2b81c32b4357f44a17e83e73d741ba6e8c23e085e57135190600090a25b5060135460ff16612dd5565b612c6d600689612893565b15612cba5760405162461bcd60e51b815260206004820152601b60248201527f53656e646572206164647265737320626c61636b6c69737465642100000000006044820152606401610b49565b612cc5600688612893565b15612d125760405162461bcd60e51b815260206004820152601e60248201527f526563697069656e74206164647265737320626c61636b6c69737465642100006044820152606401610b49565b600d54612d1f8785613713565b1115612d605760405162461bcd60e51b815260206004820152601060248201526f3bb430b63290383937ba32b1ba34b7b760811b6044820152606401610b49565b601154601054612d709190613713565b4211158015612d8157506012546001145b15612dc757612d916006896122ed565b506040516001600160a01b038916907f8c21268f4379683ad2b81c32b4357f44a17e83e73d741ba6e8c23e085e57135190600090a25b5060135462010000900460ff165b6013546001600160a01b03898116600160301b9092041614801590612dfd575060195460ff16155b8015612e0c575060175460ff16155b8015612e155750835b15612e2257612e22612652565b6000612e3e8783601360039054906101000a900460ff16613331565b601354909150600090612e749089908590612e6f9060ff64010000000082048116916501000000000090041661372b565b613331565b90506000612e828284613713565b612e8c908a61387d565b9050612e988b8a6132c8565b3060009081526001602052604081208054849290612eb7908490613713565b9250508190555082600c6000828254612ed0919061387d565b90915550612ee090508a8261330d565b896001600160a01b03168b6001600160a01b03166000805160206138ee83398151915283604051612f1391815260200190565b60405180910390a35050505050505050505050565b601454612f409030906001600160a01b031683612302565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612f8357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015612fd757600080fd5b505afa158015612feb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061300f9190613397565b8160018151811061303057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac947906130769085906000908690309042906004016136a3565b600060405180830381600087803b15801561309057600080fd5b505af11580156130a4573d6000803e3d6000fd5b505050505050565b60008082601660008282546130c19190613713565b909155506000905060646130d685604b61385e565b6130e09190613750565b9050600060646130f187604b61385e565b6130fb9190613750565b6014549091506131169030906001600160a01b031688612302565b60145460405163f305d71960e01b81526001600160a01b039091169063f305d7199087906131529030908b90879089908490429060040161357f565b6060604051808303818588803b15801561316b57600080fd5b505af115801561317f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131a491906134df565b5096979596505050505050565b600081815260018301602052604081205480156132be5760006131d560018361387d565b85549091506000906131e99060019061387d565b9050600086600001828154811061321057634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508087600001848154811061324157634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101929092558281526001890190915260409020849055865487908061328257634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610b08565b6000915050610b08565b6001600160a01b0382166000908152600160205260408120546132ec90839061387d565b6001600160a01b039093166000908152600160205260409020929092555050565b6001600160a01b0382166000908152600160205260408120546132ec908390613713565b60006127108260ff168460ff1686613349919061385e565b613353919061385e565b61335d9190613750565b949350505050565b803560ff8116811461337657600080fd5b919050565b60006020828403121561338c578081fd5b8135612169816138aa565b6000602082840312156133a8578081fd5b8151612169816138aa565b600080604083850312156133c5578081fd5b82356133d0816138aa565b915060208301356133e0816138aa565b809150509250929050565b6000806000606084860312156133ff578081fd5b833561340a816138aa565b9250602084013561341a816138aa565b929592945050506040919091013590565b6000806040838503121561343d578182fd5b8235613448816138aa565b946020939093013593505050565b600060208284031215613467578081fd5b8135612169816138bf565b600060208284031215613483578081fd5b8151612169816138bf565b60006020828403121561349f578081fd5b5035919050565b6000602082840312156134b7578081fd5b5051919050565b600080604083850312156134d0578182fd5b50508035926020909101359150565b6000806000606084860312156134f3578283fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c08789031215613524578182fd5b61352d87613365565b955061353b60208801613365565b945061354960408801613365565b935061355760608801613365565b925061356560808801613365565b915061357360a08801613365565b90509295509295509295565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6000602080835283518082850152825b818110156135e6578581018301518582016040015282016135ca565b818111156135f75783604083870101525b50601f01601f1916929092016040019392505050565b60208082526010908201526f139bdd081e595d081d5b9b1bd8dad95960821b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601b908201527f4572726f723a2043616e6e6f74206265203020616464726573732e0000000000604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156136f25784516001600160a01b0316835293830193918301916001016136cd565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561372657613726613894565b500190565b600060ff821660ff84168060ff0382111561374857613748613894565b019392505050565b60008261376b57634e487b7160e01b81526012600452602481fd5b500490565b600181815b808511156137ab57816000190482111561379157613791613894565b8085161561379e57918102915b93841c9390800290613775565b509250929050565b600061216960ff8416836000826137cc57506001610b08565b816137d957506000610b08565b81600181146137ef57600281146137f957613815565b6001915050610b08565b60ff84111561380a5761380a613894565b50506001821b610b08565b5060208310610133831016604e8410600b8410161715613838575081810a610b08565b6138428383613770565b806000190482111561385657613856613894565b029392505050565b600081600019048311821515161561387857613878613894565b500290565b60008282101561388f5761388f613894565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461139a57600080fd5b801515811461139a57600080fdfefb60e050a21ad73ac014de3ac7e8beec47ce0426c74545f9eded8135493e8e02ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef156f82350b7972f1821f0b3cc744ecec05d5c0893150eccf16174dbc4bf8d8dda26469706673582212201f2db35be5ff83326a9abb2f77e409ee16c1e4f8df0818992f4ce9c0003ee4c764736f6c63430008040033