0x6080604052600436106101f25760003560e01c8063715018a61161010d578063a9059cbb116100a0578063c492f0461161006f578063c492f046146105b7578063d2889fb0146105d7578063dd62ed3e146105ed578063e2f4560514610633578063f2fde38b1461064957600080fd5b8063a9059cbb14610531578063aa4bde2814610551578063b62496f514610567578063c02466681461059757600080fd5b806395d89b41116100dc57806395d89b41146104c65780639a7a23d6146104db578063a045bfef146104fb578063a457c2d71461051157600080fd5b8063715018a6146104585780638c0b5e221461046d5780638da5cb5b146104835780638f2076fd146104a657600080fd5b806346041832116101855780635130c164116101545780635130c164146103c25780635d098b38146103e257806365b8dbc01461040257806370a082311461042257600080fd5b8063460418321461033457806349bd5a5e146103495780634bf7fde1146103695780634fbee1931461038957600080fd5b806321ce72e5116101c157806321ce72e5146102b057806323b872dd146102d2578063313ce567146102f2578063395093511461031457600080fd5b806306fdde03146101fe578063095ea7b3146102295780631694505e1461025957806318160ddd1461029157600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b50610213610669565b6040516102209190611bea565b60405180910390f35b34801561023557600080fd5b50610249610244366004611c60565b6106fb565b6040519015158152602001610220565b34801561026557600080fd5b50600654610279906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b34801561029d57600080fd5b506002545b604051908152602001610220565b3480156102bc57600080fd5b506102d06102cb366004611c8c565b610712565b005b3480156102de57600080fd5b506102496102ed366004611cb8565b6107a6565b3480156102fe57600080fd5b5060055460405160ff9091168152602001610220565b34801561032057600080fd5b5061024961032f366004611c60565b61080f565b34801561034057600080fd5b506102d0610845565b34801561035557600080fd5b50600754610279906001600160a01b031681565b34801561037557600080fd5b506102d0610384366004611c8c565b61089c565b34801561039557600080fd5b506102496103a4366004611cf9565b6001600160a01b03166000908152600e602052604090205460ff1690565b3480156103ce57600080fd5b506102d06103dd366004611c8c565b610945565b3480156103ee57600080fd5b506102d06103fd366004611cf9565b6109e8565b34801561040e57600080fd5b506102d061041d366004611cf9565b610a3a565b34801561042e57600080fd5b506102a261043d366004611cf9565b6001600160a01b031660009081526020819052604090205490565b34801561046457600080fd5b506102d0610caa565b34801561047957600080fd5b506102a2600c5481565b34801561048f57600080fd5b5060055461010090046001600160a01b0316610279565b3480156104b257600080fd5b506102d06104c1366004611c8c565b610d2a565b3480156104d257600080fd5b50610213610db5565b3480156104e757600080fd5b506102d06104f6366004611d2f565b610dc4565b34801561050757600080fd5b506102a260095481565b34801561051d57600080fd5b5061024961052c366004611c60565b610e96565b34801561053d57600080fd5b5061024961054c366004611c60565b610ee5565b34801561055d57600080fd5b506102a2600d5481565b34801561057357600080fd5b50610249610582366004611cf9565b600f6020526000908152604090205460ff1681565b3480156105a357600080fd5b506102d06105b2366004611d2f565b610ef2565b3480156105c357600080fd5b506102d06105d2366004611d7e565b610f81565b3480156105e357600080fd5b506102a2600a5481565b3480156105f957600080fd5b506102a2610608366004611e55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561063f57600080fd5b506102a260085481565b34801561065557600080fd5b506102d0610664366004611cf9565b611056565b60606003805461067890611e83565b80601f01602080910402602001604051908101604052809291908181526020018280546106a490611e83565b80156106f15780601f106106c6576101008083540402835291602001916106f1565b820191906000526020600020905b8154815290600101906020018083116106d457829003601f168201915b5050505050905090565b60006107083384846111fa565b5060015b92915050565b6005546001600160a01b0361010090910416331461074b5760405162461bcd60e51b815260040161074290611ebd565b60405180910390fd5b6019831115801561075d575060098211155b801561076a575060098111155b61077357600080fd5b8061077f83600a611f08565b61078a856064611f08565b6107949190611f1f565b61079e9190611f1f565b600a55505050565b60006107b384848461131f565b61080584336108008560405180606001604052806028815260200161209b602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919061168f565b6111fa565b5060019392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610708918590610800908661119b565b6005546001600160a01b036101009091041633146108755760405162461bcd60e51b815260040161074290611ebd565b3060009081526020819052604090205461089a90600b546001600160a01b03166116c9565b565b6005546001600160a01b036101009091041633146108cc5760405162461bcd60e51b815260040161074290611ebd565b6064831080156108dd575060098211155b80156108ea575060098111155b6108f357600080fd5b61090861271061090260025490565b90611152565b8161091484600a611f08565b61091f866064611f08565b6109299190611f1f565b6109339190611f1f565b61093d9190611f08565b600c55505050565b6005546001600160a01b036101009091041633146109755760405162461bcd60e51b815260040161074290611ebd565b606483108015610986575060098211155b8015610993575060098111155b61099c57600080fd5b6109ab61271061090260025490565b816109b784600a611f08565b6109c2866064611f08565b6109cc9190611f1f565b6109d69190611f1f565b6109e09190611f08565b600d55505050565b6005546001600160a01b03610100909104163314610a185760405162461bcd60e51b815260040161074290611ebd565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03610100909104163314610a6a5760405162461bcd60e51b815260040161074290611ebd565b6006546001600160a01b0390811690821603610ad45760405162461bcd60e51b815260206004820152602360248201527f54686520726f7574657220616c7265616479206861732074686174206164647260448201526265737360e81b6064820152608401610742565b6006546040516001600160a01b03918216918316907f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e90600090a3600680546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b815290516000929163c45a01559160048083019260209291908290030181865afa158015610b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8f9190611f32565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c159190611f32565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c869190611f32565b600780546001600160a01b0319166001600160a01b03929092169190911790555050565b6005546001600160a01b03610100909104163314610cda5760405162461bcd60e51b815260040161074290611ebd565b60055460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b6005546001600160a01b03610100909104163314610d5a5760405162461bcd60e51b815260040161074290611ebd565b60198311158015610d6c575060098211155b8015610d79575060098111155b610d8257600080fd5b80610d8e83600a611f08565b610d99856064611f08565b610da39190611f1f565b610dad9190611f1f565b600955505050565b60606004805461067890611e83565b6005546001600160a01b03610100909104163314610df45760405162461bcd60e51b815260040161074290611ebd565b6007546001600160a01b0390811690831603610e885760405162461bcd60e51b815260206004820152604760248201527f5468652050616e5265776172645377617020706169722063616e6e6f7420626560448201527f2072656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b6064820152666572506169727360c81b608482015260a401610742565b610e92828261171f565b5050565b60006107083384610800856040518060600160405280602581526020016120c3602591393360009081526001602090815260408083206001600160a01b038d168452909152902054919061168f565b600061070833848461131f565b6005546001600160a01b03610100909104163314610f225760405162461bcd60e51b815260040161074290611ebd565b6001600160a01b0382166000818152600e6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03610100909104163314610fb15760405162461bcd60e51b815260040161074290611ebd565b60005b82518110156110185781600e6000858481518110610fd457610fd4611f4f565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061101081611f65565b915050610fb4565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b35828260405161104a929190611fc2565b60405180910390a15050565b6005546001600160a01b036101009091041633146110865760405162461bcd60e51b815260040161074290611ebd565b6001600160a01b0381166110eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610742565b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600061119483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611823565b9392505050565b6000806111a88385611f1f565b9050838110156111945760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610742565b6001600160a01b03831661125c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610742565b6001600160a01b0382166112bd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610742565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038216158061133f57506001600160a01b03821661dead145b8061138457506001600160a01b0383166000908152600e602052604090205460ff168061138457506001600160a01b0382166000908152600e602052604090205460ff165b8061138d575080155b156113a25761139d838383611851565b505050565b600c548111156114055760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610742565b6007546001600160a01b03838116911614611490576001600160a01b038216600090815260208190526040902054600d546114408383611f1f565b111561148e5760405162461bcd60e51b815260206004820152601d60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e740000006044820152606401610742565b505b30600090815260208190526040902054600854811080159081906114be5750600754600160a01b900460ff16155b80156114e357506001600160a01b0385166000908152600f602052604090205460ff16155b15611528576007805460ff60a01b1916600160a01b17905581801561151957600b546115199082906001600160a01b03166116c9565b506007805460ff60a01b191690555b6007546001600160a01b0386166000908152600e602052604090205460ff600160a01b90920482161591168061157657506001600160a01b0385166000908152600e602052604090205460ff165b1561157f575060005b801561167c5760006115a2612710610902600a54886119d490919063ffffffff16565b600b546040516323b872dd60e01b81526001600160a01b038a811660048301528981166024830152604482018490529293509116906323b872dd906064016020604051808303816000875af11580156115ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116239190611fe6565b506001600160a01b0386166000908152600f602052604090205460ff161561166357611660612710610902600954886119d490919063ffffffff16565b90505b61166d8582611a56565b945061167a873083611851565b505b611687868686611851565b505050505050565b600081848411156116b35760405162461bcd60e51b81526004016107429190611bea565b5060006116c08486612003565b95945050505050565b476116d383611a98565b60006116df4783611a56565b6040519091506001600160a01b0384169082156108fc029083906000818181858888f19350505050158015611718573d6000803e3d6000fd5b5050505050565b6001600160a01b0382166000908152600f602052604090205481151560ff9091161515036117b55760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c756500000000000000006064820152608401610742565b600b546117cf9083906001600160a01b03166000196111fa565b6001600160a01b0382166000818152600f6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b600081836118445760405162461bcd60e51b81526004016107429190611bea565b5060006116c08486612016565b6001600160a01b0383166118b55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610742565b6001600160a01b0382166119175760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610742565b61195481604051806060016040528060268152602001612075602691396001600160a01b038616600090815260208190526040902054919061168f565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611983908261119b565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611312565b6000826000036119e65750600061070c565b60006119f28385611f08565b9050826119ff8583612016565b146111945760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610742565b600061119483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061168f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611acd57611acd611f4f565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4a9190611f32565b81600181518110611b5d57611b5d611f4f565b6001600160a01b039283166020918202929092010152600654611b8391309116846111fa565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611bbc908590600090869030904290600401612038565b600060405180830381600087803b158015611bd657600080fd5b505af1158015611687573d6000803e3d6000fd5b600060208083528351808285015260005b81811015611c1757858101830151858201604001528201611bfb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611c4d57600080fd5b50565b8035611c5b81611c38565b919050565b60008060408385031215611c7357600080fd5b8235611c7e81611c38565b946020939093013593505050565b600080600060608486031215611ca157600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611ccd57600080fd5b8335611cd881611c38565b92506020840135611ce881611c38565b929592945050506040919091013590565b600060208284031215611d0b57600080fd5b813561119481611c38565b8015158114611c4d57600080fd5b8035611c5b81611d16565b60008060408385031215611d4257600080fd5b8235611d4d81611c38565b91506020830135611d5d81611d16565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611d9157600080fd5b823567ffffffffffffffff80821115611da957600080fd5b818501915085601f830112611dbd57600080fd5b8135602082821115611dd157611dd1611d68565b8160051b604051601f19603f83011681018181108682111715611df657611df6611d68565b604052928352818301935084810182019289841115611e1457600080fd5b948201945b83861015611e3957611e2a86611c50565b85529482019493820193611e19565b9650611e489050878201611d24565b9450505050509250929050565b60008060408385031215611e6857600080fd5b8235611e7381611c38565b91506020830135611d5d81611c38565b600181811c90821680611e9757607f821691505b602082108103611eb757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761070c5761070c611ef2565b8082018082111561070c5761070c611ef2565b600060208284031215611f4457600080fd5b815161119481611c38565b634e487b7160e01b600052603260045260246000fd5b600060018201611f7757611f77611ef2565b5060010190565b600081518084526020808501945080840160005b83811015611fb75781516001600160a01b031687529582019590820190600101611f92565b509495945050505050565b604081526000611fd56040830185611f7e565b905082151560208301529392505050565b600060208284031215611ff857600080fd5b815161119481611d16565b8181038181111561070c5761070c611ef2565b60008261203357634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a06040820152600061205760a0830186611f7e565b6001600160a01b039490941660608301525060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122093370830a2e472d8e2fcba1c913826c727e02b8028f97ac879499064fa1e436b64736f6c63430008120033
0x60806040523480156200001157600080fd5b5060405162002e9038038062002e90833981016040819052620000349162000961565b6040518060400160405280600d81526020016c4e657a756b6f204b616d61646f60981b815250604051806040016040528060068152602001654e455a554b4f60d01b8152508482600390816200008b919062000ab2565b5060046200009a838262000ab2565b506005805460ff191660ff929092169190911790555060009050620000bc3390565b60058054610100600160a81b0319166101006001600160a01b03841690810291909117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350604080830151600b80546001600160a01b039283166001600160a01b0319918216179091558451600a5560208086015160095560068054938616939092168317909155825163c45a015560e01b81529251919263c45a015592600482810193928290030181865afa1580156200018c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b2919062000b7e565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023b919062000b7e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000289573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002af919062000b7e565b600780546001600160a01b0319166001600160a01b03929092169182179055620002db90600162000446565b620002ff620002f760055461010090046001600160a01b031690565b600162000552565b600b5462000318906001600160a01b0316600162000552565b6200032530600162000552565b6006546200033e906001600160a01b0316600162000552565b6200034b83600a62000caf565b62000367611388866200061360201b620011521790919060201c565b6200037490600162000cc0565b62000380919062000cd6565b600855620003ab6127106200039785600a62000caf565b6200061360201b620011521790919060201c565b848360600151620003bd919062000cd6565b620003c9919062000cd6565b600c55620003e06127106200039785600a62000caf565b848360800151620003f2919062000cd6565b620003fe919062000cd6565b600d556200043c6200041d60055461010090046001600160a01b031690565b6200042a85600a62000caf565b62000436908762000cd6565b62000666565b5050505062000d63565b6001600160a01b0382166000908152600f602052604090205481151560ff909116151503620004e25760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c7565000000000000000060648201526084015b60405180910390fd5b600b54620004fe9083906001600160a01b031660001962000762565b6001600160a01b0382166000818152600f6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03610100909104163314620005b45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620004d9565b6001600160a01b0382166000818152600e6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b60006200065d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200088a60201b60201c565b90505b92915050565b6001600160a01b038216620006be5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004d9565b620006da81600254620008cb60201b6200119b1790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200070d9183906200119b620008cb821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038316620007c65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620004d9565b6001600160a01b038216620008295760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004d9565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008183620008ae5760405162461bcd60e51b8152600401620004d9919062000cf0565b506000620008bd848662000d40565b95945050505050565b505050565b600080620008da838562000cc0565b9050838110156200065d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401620004d9565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200095c57600080fd5b919050565b6000806000808486036101008112156200097a57600080fd5b85519450602086015160ff811681146200099357600080fd5b935060a0603f1982011215620009a857600080fd5b5060405160a081016001600160401b0381118282101715620009ce57620009ce6200092e565b6040908152860151815260608601516020820152620009f06080870162000944565b604082015260a0860151606082015260c08601516080820152915062000a1960e0860162000944565b905092959194509250565b600181811c9082168062000a3957607f821691505b60208210810362000a5a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620008c657600081815260208120601f850160051c8101602086101562000a895750805b601f850160051c820191505b8181101562000aaa5782815560010162000a95565b505050505050565b81516001600160401b0381111562000ace5762000ace6200092e565b62000ae68162000adf845462000a24565b8462000a60565b602080601f83116001811462000b1e576000841562000b055750858301515b600019600386901b1c1916600185901b17855562000aaa565b600085815260208120601f198616915b8281101562000b4f5788860151825594840194600190910190840162000b2e565b508582101562000b6e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000b9157600080fd5b6200065d8262000944565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000bf357816000190482111562000bd75762000bd762000b9c565b8085161562000be557918102915b93841c939080029062000bb7565b509250929050565b60008262000c0c5750600162000660565b8162000c1b5750600062000660565b816001811462000c34576002811462000c3f5762000c5f565b600191505062000660565b60ff84111562000c535762000c5362000b9c565b50506001821b62000660565b5060208310610133831016604e8410600b841016171562000c84575081810a62000660565b62000c90838362000bb2565b806000190482111562000ca75762000ca762000b9c565b029392505050565b60006200065d60ff84168362000bfb565b8082018082111562000660576200066062000b9c565b808202811582820484141762000660576200066062000b9c565b600060208083528351808285015260005b8181101562000d1f5785810183015185820160400152820162000d01565b506000604082860101526040601f19601f8301168501019250505092915050565b60008262000d5e57634e487b7160e01b600052601260045260246000fd5b500490565b61211d8062000d736000396000f3fe6080604052600436106101f25760003560e01c8063715018a61161010d578063a9059cbb116100a0578063c492f0461161006f578063c492f046146105b7578063d2889fb0146105d7578063dd62ed3e146105ed578063e2f4560514610633578063f2fde38b1461064957600080fd5b8063a9059cbb14610531578063aa4bde2814610551578063b62496f514610567578063c02466681461059757600080fd5b806395d89b41116100dc57806395d89b41146104c65780639a7a23d6146104db578063a045bfef146104fb578063a457c2d71461051157600080fd5b8063715018a6146104585780638c0b5e221461046d5780638da5cb5b146104835780638f2076fd146104a657600080fd5b806346041832116101855780635130c164116101545780635130c164146103c25780635d098b38146103e257806365b8dbc01461040257806370a082311461042257600080fd5b8063460418321461033457806349bd5a5e146103495780634bf7fde1146103695780634fbee1931461038957600080fd5b806321ce72e5116101c157806321ce72e5146102b057806323b872dd146102d2578063313ce567146102f2578063395093511461031457600080fd5b806306fdde03146101fe578063095ea7b3146102295780631694505e1461025957806318160ddd1461029157600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b50610213610669565b6040516102209190611bea565b60405180910390f35b34801561023557600080fd5b50610249610244366004611c60565b6106fb565b6040519015158152602001610220565b34801561026557600080fd5b50600654610279906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b34801561029d57600080fd5b506002545b604051908152602001610220565b3480156102bc57600080fd5b506102d06102cb366004611c8c565b610712565b005b3480156102de57600080fd5b506102496102ed366004611cb8565b6107a6565b3480156102fe57600080fd5b5060055460405160ff9091168152602001610220565b34801561032057600080fd5b5061024961032f366004611c60565b61080f565b34801561034057600080fd5b506102d0610845565b34801561035557600080fd5b50600754610279906001600160a01b031681565b34801561037557600080fd5b506102d0610384366004611c8c565b61089c565b34801561039557600080fd5b506102496103a4366004611cf9565b6001600160a01b03166000908152600e602052604090205460ff1690565b3480156103ce57600080fd5b506102d06103dd366004611c8c565b610945565b3480156103ee57600080fd5b506102d06103fd366004611cf9565b6109e8565b34801561040e57600080fd5b506102d061041d366004611cf9565b610a3a565b34801561042e57600080fd5b506102a261043d366004611cf9565b6001600160a01b031660009081526020819052604090205490565b34801561046457600080fd5b506102d0610caa565b34801561047957600080fd5b506102a2600c5481565b34801561048f57600080fd5b5060055461010090046001600160a01b0316610279565b3480156104b257600080fd5b506102d06104c1366004611c8c565b610d2a565b3480156104d257600080fd5b50610213610db5565b3480156104e757600080fd5b506102d06104f6366004611d2f565b610dc4565b34801561050757600080fd5b506102a260095481565b34801561051d57600080fd5b5061024961052c366004611c60565b610e96565b34801561053d57600080fd5b5061024961054c366004611c60565b610ee5565b34801561055d57600080fd5b506102a2600d5481565b34801561057357600080fd5b50610249610582366004611cf9565b600f6020526000908152604090205460ff1681565b3480156105a357600080fd5b506102d06105b2366004611d2f565b610ef2565b3480156105c357600080fd5b506102d06105d2366004611d7e565b610f81565b3480156105e357600080fd5b506102a2600a5481565b3480156105f957600080fd5b506102a2610608366004611e55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561063f57600080fd5b506102a260085481565b34801561065557600080fd5b506102d0610664366004611cf9565b611056565b60606003805461067890611e83565b80601f01602080910402602001604051908101604052809291908181526020018280546106a490611e83565b80156106f15780601f106106c6576101008083540402835291602001916106f1565b820191906000526020600020905b8154815290600101906020018083116106d457829003601f168201915b5050505050905090565b60006107083384846111fa565b5060015b92915050565b6005546001600160a01b0361010090910416331461074b5760405162461bcd60e51b815260040161074290611ebd565b60405180910390fd5b6019831115801561075d575060098211155b801561076a575060098111155b61077357600080fd5b8061077f83600a611f08565b61078a856064611f08565b6107949190611f1f565b61079e9190611f1f565b600a55505050565b60006107b384848461131f565b61080584336108008560405180606001604052806028815260200161209b602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919061168f565b6111fa565b5060019392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610708918590610800908661119b565b6005546001600160a01b036101009091041633146108755760405162461bcd60e51b815260040161074290611ebd565b3060009081526020819052604090205461089a90600b546001600160a01b03166116c9565b565b6005546001600160a01b036101009091041633146108cc5760405162461bcd60e51b815260040161074290611ebd565b6064831080156108dd575060098211155b80156108ea575060098111155b6108f357600080fd5b61090861271061090260025490565b90611152565b8161091484600a611f08565b61091f866064611f08565b6109299190611f1f565b6109339190611f1f565b61093d9190611f08565b600c55505050565b6005546001600160a01b036101009091041633146109755760405162461bcd60e51b815260040161074290611ebd565b606483108015610986575060098211155b8015610993575060098111155b61099c57600080fd5b6109ab61271061090260025490565b816109b784600a611f08565b6109c2866064611f08565b6109cc9190611f1f565b6109d69190611f1f565b6109e09190611f08565b600d55505050565b6005546001600160a01b03610100909104163314610a185760405162461bcd60e51b815260040161074290611ebd565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03610100909104163314610a6a5760405162461bcd60e51b815260040161074290611ebd565b6006546001600160a01b0390811690821603610ad45760405162461bcd60e51b815260206004820152602360248201527f54686520726f7574657220616c7265616479206861732074686174206164647260448201526265737360e81b6064820152608401610742565b6006546040516001600160a01b03918216918316907f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e90600090a3600680546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b815290516000929163c45a01559160048083019260209291908290030181865afa158015610b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8f9190611f32565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c159190611f32565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c869190611f32565b600780546001600160a01b0319166001600160a01b03929092169190911790555050565b6005546001600160a01b03610100909104163314610cda5760405162461bcd60e51b815260040161074290611ebd565b60055460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b6005546001600160a01b03610100909104163314610d5a5760405162461bcd60e51b815260040161074290611ebd565b60198311158015610d6c575060098211155b8015610d79575060098111155b610d8257600080fd5b80610d8e83600a611f08565b610d99856064611f08565b610da39190611f1f565b610dad9190611f1f565b600955505050565b60606004805461067890611e83565b6005546001600160a01b03610100909104163314610df45760405162461bcd60e51b815260040161074290611ebd565b6007546001600160a01b0390811690831603610e885760405162461bcd60e51b815260206004820152604760248201527f5468652050616e5265776172645377617020706169722063616e6e6f7420626560448201527f2072656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b6064820152666572506169727360c81b608482015260a401610742565b610e92828261171f565b5050565b60006107083384610800856040518060600160405280602581526020016120c3602591393360009081526001602090815260408083206001600160a01b038d168452909152902054919061168f565b600061070833848461131f565b6005546001600160a01b03610100909104163314610f225760405162461bcd60e51b815260040161074290611ebd565b6001600160a01b0382166000818152600e6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03610100909104163314610fb15760405162461bcd60e51b815260040161074290611ebd565b60005b82518110156110185781600e6000858481518110610fd457610fd4611f4f565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061101081611f65565b915050610fb4565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b35828260405161104a929190611fc2565b60405180910390a15050565b6005546001600160a01b036101009091041633146110865760405162461bcd60e51b815260040161074290611ebd565b6001600160a01b0381166110eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610742565b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600061119483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611823565b9392505050565b6000806111a88385611f1f565b9050838110156111945760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610742565b6001600160a01b03831661125c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610742565b6001600160a01b0382166112bd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610742565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038216158061133f57506001600160a01b03821661dead145b8061138457506001600160a01b0383166000908152600e602052604090205460ff168061138457506001600160a01b0382166000908152600e602052604090205460ff165b8061138d575080155b156113a25761139d838383611851565b505050565b600c548111156114055760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610742565b6007546001600160a01b03838116911614611490576001600160a01b038216600090815260208190526040902054600d546114408383611f1f565b111561148e5760405162461bcd60e51b815260206004820152601d60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e740000006044820152606401610742565b505b30600090815260208190526040902054600854811080159081906114be5750600754600160a01b900460ff16155b80156114e357506001600160a01b0385166000908152600f602052604090205460ff16155b15611528576007805460ff60a01b1916600160a01b17905581801561151957600b546115199082906001600160a01b03166116c9565b506007805460ff60a01b191690555b6007546001600160a01b0386166000908152600e602052604090205460ff600160a01b90920482161591168061157657506001600160a01b0385166000908152600e602052604090205460ff165b1561157f575060005b801561167c5760006115a2612710610902600a54886119d490919063ffffffff16565b600b546040516323b872dd60e01b81526001600160a01b038a811660048301528981166024830152604482018490529293509116906323b872dd906064016020604051808303816000875af11580156115ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116239190611fe6565b506001600160a01b0386166000908152600f602052604090205460ff161561166357611660612710610902600954886119d490919063ffffffff16565b90505b61166d8582611a56565b945061167a873083611851565b505b611687868686611851565b505050505050565b600081848411156116b35760405162461bcd60e51b81526004016107429190611bea565b5060006116c08486612003565b95945050505050565b476116d383611a98565b60006116df4783611a56565b6040519091506001600160a01b0384169082156108fc029083906000818181858888f19350505050158015611718573d6000803e3d6000fd5b5050505050565b6001600160a01b0382166000908152600f602052604090205481151560ff9091161515036117b55760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c756500000000000000006064820152608401610742565b600b546117cf9083906001600160a01b03166000196111fa565b6001600160a01b0382166000818152600f6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b600081836118445760405162461bcd60e51b81526004016107429190611bea565b5060006116c08486612016565b6001600160a01b0383166118b55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610742565b6001600160a01b0382166119175760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610742565b61195481604051806060016040528060268152602001612075602691396001600160a01b038616600090815260208190526040902054919061168f565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611983908261119b565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611312565b6000826000036119e65750600061070c565b60006119f28385611f08565b9050826119ff8583612016565b146111945760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610742565b600061119483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061168f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611acd57611acd611f4f565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4a9190611f32565b81600181518110611b5d57611b5d611f4f565b6001600160a01b039283166020918202929092010152600654611b8391309116846111fa565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611bbc908590600090869030904290600401612038565b600060405180830381600087803b158015611bd657600080fd5b505af1158015611687573d6000803e3d6000fd5b600060208083528351808285015260005b81811015611c1757858101830151858201604001528201611bfb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611c4d57600080fd5b50565b8035611c5b81611c38565b919050565b60008060408385031215611c7357600080fd5b8235611c7e81611c38565b946020939093013593505050565b600080600060608486031215611ca157600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611ccd57600080fd5b8335611cd881611c38565b92506020840135611ce881611c38565b929592945050506040919091013590565b600060208284031215611d0b57600080fd5b813561119481611c38565b8015158114611c4d57600080fd5b8035611c5b81611d16565b60008060408385031215611d4257600080fd5b8235611d4d81611c38565b91506020830135611d5d81611d16565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611d9157600080fd5b823567ffffffffffffffff80821115611da957600080fd5b818501915085601f830112611dbd57600080fd5b8135602082821115611dd157611dd1611d68565b8160051b604051601f19603f83011681018181108682111715611df657611df6611d68565b604052928352818301935084810182019289841115611e1457600080fd5b948201945b83861015611e3957611e2a86611c50565b85529482019493820193611e19565b9650611e489050878201611d24565b9450505050509250929050565b60008060408385031215611e6857600080fd5b8235611e7381611c38565b91506020830135611d5d81611c38565b600181811c90821680611e9757607f821691505b602082108103611eb757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761070c5761070c611ef2565b8082018082111561070c5761070c611ef2565b600060208284031215611f4457600080fd5b815161119481611c38565b634e487b7160e01b600052603260045260246000fd5b600060018201611f7757611f77611ef2565b5060010190565b600081518084526020808501945080840160005b83811015611fb75781516001600160a01b031687529582019590820190600101611f92565b509495945050505050565b604081526000611fd56040830185611f7e565b905082151560208301529392505050565b600060208284031215611ff857600080fd5b815161119481611d16565b8181038181111561070c5761070c611ef2565b60008261203357634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a06040820152600061205760a0830186611f7e565b6001600160a01b039490941660608301525060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122093370830a2e472d8e2fcba1c913826c727e02b8028f97ac879499064fa1e436b64736f6c63430008120033000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000076f9b12e155e9e3c1d34d3fb1514341de1ab595400000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000c80000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d