0x60806040523480156200001157600080fd5b5060405162005e8538038062005e858339810160408190526200003491620002ba565b8083836200004233620000b8565b60008054921515600160b01b0260ff60b01b1990931692909217909155600180546001600160a01b039283166001600160a01b0319918216178255600680549490931693169290921790556007556008805460ff19169055620000a53362000108565b620000af620001d1565b5050506200030a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811660009081526009602052604090205460ff1615620001775760405162461bcd60e51b815260206004820152601960248201527f4163636f756e7420697320616c7265616479207061757365720000000000000060448201526064015b60405180910390fd5b6001600160a01b038116600081815260096020908152604091829020805460ff1916600117905590519182527f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f8910160405180910390a150565b600054600160a81b900460ff16156200023d5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016200016e565b60005460ff600160a01b909104811610156200029b576000805460ff60a01b191660ff60a01b17905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b0381168114620002b557600080fd5b919050565b600080600060608486031215620002d057600080fd5b83518015158114620002e157600080fd5b9250620002f1602085016200029d565b915062000301604085016200029d565b90509250925092565b615b6b806200031a6000396000f3fe6080604052600436106101f25760003560e01c80637228e5c41161010d5780639c649fdf116100a0578063cd9ea3421161006f578063cd9ea342146105cd578063d3ac0fbc146105ee578063dc107d7d1461060e578063eeaaa6511461063c578063f2fde38b1461067257600080fd5b80639c649fdf1461052c5780639e02c9f91461054c578063a1a227fa1461058d578063a591f97f146105ad57600080fd5b806382dc1ec4116100dc57806382dc1ec4146104b95780638456cb59146104d95780638da5cb5b146104ee578063918ead761461050c57600080fd5b80637228e5c4146104295780637a0f9356146104495780637ae267731461046957806380f51c121461048957600080fd5b806346fbf68e116101855780635c975abb116101545780635c975abb146103bc5780636b2c0f55146103d45780636c19e783146103f45780636ef8d66d1461041457600080fd5b806346fbf68e14610323578063478222c21461035c578063547cad121461037c5780635b5a66a71461039c57600080fd5b8063289774a9116101c1578063289774a9146102a5578063292e31ee146102b85780633f4ba83a146102ee578063457bfa2f1461030357600080fd5b806306b4771c146101fe5780631cfcc0fc1461022057806320be95f214610240578063238ac9331461026d57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021e610219366004614474565b610692565b005b34801561022c57600080fd5b5061021e61023b366004614612565b610829565b61025861024e3660046146d3565b6000949350505050565b60405190151581526020015b60405180910390f35b34801561027957600080fd5b5060045461028d906001600160a01b031681565b6040516001600160a01b039091168152602001610264565b61021e6102b33660046149d0565b61088a565b3480156102c457600080fd5b5061028d6102d3366004614b5c565b600a602052600090815260409020546001600160a01b031681565b3480156102fa57600080fd5b5061021e610acf565b34801561030f57600080fd5b5060065461028d906001600160a01b031681565b34801561032f57600080fd5b5061025861033e366004614474565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561036857600080fd5b5060055461028d906001600160a01b031681565b34801561038857600080fd5b5061021e610397366004614474565b610b2f565b3480156103a857600080fd5b5061021e6103b7366004614474565b610bdb565b3480156103c857600080fd5b5060085460ff16610258565b3480156103e057600080fd5b5061021e6103ef366004614474565b610c3b565b34801561040057600080fd5b5061021e61040f366004614474565b610c9b565b34801561042057600080fd5b5061021e610cfb565b34801561043557600080fd5b5061021e610444366004614bf8565b610d04565b34801561045557600080fd5b5061021e610464366004614c7f565b610d6b565b34801561047557600080fd5b5061021e610484366004614cdb565b611073565b34801561049557600080fd5b506102586104a4366004614474565b60096020526000908152604090205460ff1681565b3480156104c557600080fd5b5061021e6104d4366004614474565b6110df565b3480156104e557600080fd5b5061021e61113f565b3480156104fa57600080fd5b506000546001600160a01b031661028d565b34801561051857600080fd5b5061021e610527366004614d14565b61119d565b61053f61053a366004614d60565b6111fe565b6040516102649190614ddf565b34801561055857600080fd5b5061028d610567366004614e07565b60026020908152600092835260408084209091529082529020546001600160a01b031681565b34801561059957600080fd5b5060015461028d906001600160a01b031681565b3480156105b957600080fd5b5061021e6105c8366004614474565b6114dd565b3480156105d957600080fd5b5060005461025890600160b01b900460ff1681565b3480156105fa57600080fd5b5061021e610609366004614e42565b61153d565b34801561061a57600080fd5b5061062e610629366004614f68565b6116bc565b604051908152602001610264565b34801561064857600080fd5b5061028d610657366004614fb3565b6003602052600090815260409020546001600160a01b031681565b34801561067e57600080fd5b5061021e61068d366004614474565b61171c565b336106a56000546001600160a01b031690565b6001600160a01b0316146106ee5760405162461bcd60e51b81526020600482018190526024820152600080516020615b1683398151915260448201526064015b60405180910390fd5b6001600160a01b03811661079857600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610749576040519150601f19603f3d011682016040523d82523d6000602084013e61074e565b606091505b50509050806107945760405162461bcd60e51b81526020600482015260126024820152711cd95b99081b985d1a5d994819985a5b195960721b60448201526064016106e5565b5050565b6108266107ad6000546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156107f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108159190614fcc565b6001600160a01b03841691906117e1565b50565b3361083c6000546001600160a01b031690565b6001600160a01b0316146108805760405162461bcd60e51b81526020600482018190526024820152600080516020615b1683398151915260448201526064016106e5565b6107948282611859565b610892611983565b6002600754036108e45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106e5565b6002600755825161091d5760405162461bcd60e51b815260206004820152600360248201526206e6f760ec1b60448201526064016106e5565b600082606001511161095c5760405162461bcd60e51b81526020600482015260086024820152670c08185b5bdd5b9d60c21b60448201526064016106e5565b80516001600160a01b03166109a05760405162461bcd60e51b815260206004820152600a60248201526918103932b1b2b4bb32b960b11b60448201526064016106e5565b60006109b533836000015185600001516116bc565b90506000846000815181106109cc576109cc614fe5565b602002602001015190506001855111156109ea576109ea85856119d6565b6000806109f686611d34565b9150915060008211610a4a5760405162461bcd60e51b815260206004820152600f60248201527f616d6f756e74206d757374203e2030000000000000000000000000000000000060448201526064016106e5565b825151829082906001600160a01b031615610ab1578451600190610a6f908686611ea2565b9094509250905080610aaf5760405162461bcd60e51b81526020600482015260096024820152681cddd85c0819985a5b60ba1b60448201526064016106e5565b505b610abe868a898486612259565b505060016007555050505050505050565b3360009081526009602052604090205460ff16610b255760405162461bcd60e51b815260206004820152601460248201527321b0b63632b91034b9903737ba103830bab9b2b960611b60448201526064016106e5565b610b2d61254d565b565b33610b426000546001600160a01b031690565b6001600160a01b031614610b865760405162461bcd60e51b81526020600482018190526024820152600080516020615b1683398151915260448201526064016106e5565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f3f8223bcd8b3b875473e9f9e14e1ad075451a2b5ffd31591655da9a01516bf5e906020015b60405180910390a150565b33610bee6000546001600160a01b031690565b6001600160a01b031614610c325760405162461bcd60e51b81526020600482018190526024820152600080516020615b1683398151915260448201526064016106e5565b6108268161259f565b33610c4e6000546001600160a01b031690565b6001600160a01b031614610c925760405162461bcd60e51b81526020600482018190526024820152600080516020615b1683398151915260448201526064016106e5565b610826816125ed565b33610cae6000546001600160a01b031690565b6001600160a01b031614610cf25760405162461bcd60e51b81526020600482018190526024820152600080516020615b1683398151915260448201526064016106e5565b610826816126a6565b610b2d336125ed565b33610d176000546001600160a01b031690565b6001600160a01b031614610d5b5760405162461bcd60e51b81526020600482018190526024820152600080516020615b1683398151915260448201526064016106e5565b610d66838383612700565b505050565b610d73611983565b600260075403610dc55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106e5565b6002600755336001600160a01b03841614610e225760405162461bcd60e51b815260206004820152601760248201527f6f6e6c792072656365697665722063616e20636c61696d00000000000000000060448201526064016106e5565b6000610e2f8585856116bc565b9050600081604051610e40906143a7565b8190604051809103906000f5905080158015610e60573d6000803e3d6000fd5b506040516370a0823160e01b81526001600160a01b0380831660048301529192506000918516906370a0823190602401602060405180830381865afa158015610ead573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed19190614fcc565b90506001600160a01b0382163181151580610eec5750600081115b610f385760405162461bcd60e51b815260206004820152600f60248201527f706f636b657420697320656d707479000000000000000000000000000000000060448201526064016106e5565b610f438386846127df565b8115610f5d57610f5d6001600160a01b03861688846117e1565b801561100d576000876001600160a01b03168261c35090604051600060405180830381858888f193505050503d8060008114610fb5576040519150601f19603f3d011682016040523d82523d6000602084013e610fba565b606091505b505090508061100b5760405162461bcd60e51b815260206004820152601560248201527f6661696c656420746f2073656e64206e6174697665000000000000000000000060448201526064016106e5565b505b604080518581526001600160a01b038981166020830152818301859052871660608201526080810183905290517ffc5ab3e68077876a4f2913d03a9146cc3a613d19c94a53084f30122c2c5c2a6f9181900360a00190a150506001600755505050505050565b336110866000546001600160a01b031690565b6001600160a01b0316146110ca5760405162461bcd60e51b81526020600482018190526024820152600080516020615b1683398151915260448201526064016106e5565b6107946001600160a01b03831682600061297d565b336110f26000546001600160a01b031690565b6001600160a01b0316146111365760405162461bcd60e51b81526020600482018190526024820152600080516020615b1683398151915260448201526064016106e5565b61082681612a99565b3360009081526009602052604090205460ff166111955760405162461bcd60e51b815260206004820152601460248201527321b0b63632b91034b9903737ba103830bab9b2b960611b60448201526064016106e5565b610b2d612b56565b336111b06000546001600160a01b031690565b6001600160a01b0316146111f45760405162461bcd60e51b81526020600482018190526024820152600080516020615b1683398151915260448201526064016106e5565b6107948282612b93565b6000611208612ca6565b83856112148282612d11565b61121c611983565b60026007540361126e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106e5565b6002600755845160009061128b90870160209081019088016151a9565b90506000816020015151116112c85760405162461bcd60e51b815260206004820152600360248201526206e6f760ec1b60448201526064016106e5565b6000349050600082602001516000815181106112e6576112e6614fe5565b60200260200101519050600080611301856000015184612d84565b915091508160000361136e57845160408051918252600060208301526001600160a01b038316908201527f295612f9c20f128efb8df333990658b0f1b8083bc7b6dcf90750348cede4c299906060015b60405180910390a1611362846130d8565b975050505050506114ce565b82606001516001600160a01b0316816001600160a01b0316036113e8576113a081838760400151600001516000613197565b845160408051918252602082018490526001600160a01b038316908201527f295612f9c20f128efb8df333990658b0f1b8083bc7b6dcf90750348cede4c29990606001611351565b825151829082906001600160a01b03161561149157845160019061140d908686611ea2565b909450925090508061148f5761142e84868a60400151600001516000613197565b875160408051918252602082018790526001600160a01b03861682820152517f295612f9c20f128efb8df333990658b0f1b8083bc7b6dcf90750348cede4c2999181900360600190a1611480876130d8565b9a5050505050505050506114ce565b505b60006114ac886000015189602001518a604001518587612259565b90506114b8818861535e565b96506114c3876130d8565b9a5050505050505050505b50506001600755949350505050565b336114f06000546001600160a01b031690565b6001600160a01b0316146115345760405162461bcd60e51b81526020600482018190526024820152600080516020615b1683398151915260448201526064016106e5565b61082681613306565b600054600160a81b900460ff161580801561156557506000546001600160a01b90910460ff16105b806115865750303b1580156115865750600054600160a01b900460ff166001145b6115f85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106e5565b6000805460ff60a01b1916600160a01b1790558015611625576000805460ff60a81b1916600160a81b1790555b61162d613360565b6116378b8b6133c2565b611642868686613467565b61164c8383613490565b611655876134b9565b61165e886134e2565b6116678961350b565b80156116af576000805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b6040516bffffffffffffffffffffffff19606085811b8216602084015284901b1660348201526001600160c01b031960c083901b1660488201526000906050016040516020818303038152906040528051906020012090505b9392505050565b3361172f6000546001600160a01b031690565b6001600160a01b0316146117735760405162461bcd60e51b81526020600482018190526024820152600080516020615b1683398151915260448201526064016106e5565b6001600160a01b0381166117d85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e5565b61082681613534565b6040516001600160a01b038316602482015260448101829052610d6690849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b031990931692909217909152613584565b80518251146118aa5760405162461bcd60e51b815260206004820152601760248201527f72656d6f746573206c656e677468206d69736d6174636800000000000000000060448201526064016106e5565b60005b8251811015611945578181815181106118c8576118c8614fe5565b6020026020010151600a60008584815181106118e6576118e6614fe5565b60200260200101516001600160401b03166001600160401b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550808061193d90615375565b9150506118ad565b507fe000e6cd4a5421450046ea059588823e2c45d75255bc2ce0031a7c64d32f8c1682826040516119779291906153d2565b60405180910390a15050565b60085460ff1615610b2d5760405162461bcd60e51b815260206004820152601160248201527f4d53473a3a41424f52543a70617573656400000000000000000000000000000060448201526064016106e5565b4281602001516001600160401b031611611a325760405162461bcd60e51b815260206004820152601160248201527f646561646c696e6520657863656564656400000000000000000000000000000060448201526064016106e5565b600046826060015183608001518460200151604051602001611abc94939291907f63726f73736465782071756f7465000000000000000000000000000000000000815260c094851b6001600160c01b0319908116600e830152601682019490945260609290921b6bffffffffffffffffffffffff1916603683015290921b16604a82015260520190565b60408051601f19818403018152919052905060015b8351811015611cce576000848281518110611aee57611aee614fe5565b60200260200101519050600085600184611b08919061535e565b81518110611b1857611b18614fe5565b602002602001015160200151905060006001600160a01b031682604001516001600160a01b031614158015611b51575060008260800151115b8015611b61575060008260c00151115b611b9c5760405162461bcd60e51b815260206004820152600c60248201526b696e76616c6964206578656360a01b60448201526064016106e5565b60608201516001600160a01b03161580611bc9575060008260a00151118015611bc9575060008260e00151115b611c155760405162461bcd60e51b815260206004820152601060248201527f696e76616c69642066616c6c6261636b0000000000000000000000000000000060448201526064016106e5565b600081600001518360c0015184604001518560e001518660600151876020015160600151604051602001611c9a9695949392919060c09690961b6001600160c01b03191686526008860194909452606092831b6bffffffffffffffffffffffff199081166028870152603c86019290925290911b16605c830152607082015260900190565b60408051601f198184030181529190529050611cb68582613656565b94505050508080611cc690615375565b915050611ad1565b508051602080830191909120604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082019390935281518082039093018352605c0190528051910120611d2e81846040015161371d565b50505050565b6000808260a0015115611e695760065460808401516001600160a01b03908116911614611da35760405162461bcd60e51b815260206004820152601660248201527f746f6b656e496e206e6f74206e6174697665577261700000000000000000000060448201526064016106e5565b8260600151341015611df75760405162461bcd60e51b815260206004820152601a60248201527f696e73756666696369656e74206e617469766520616d6f756e7400000000000060448201526064016106e5565b600660009054906101000a90046001600160a01b03166001600160a01b031663d0e30db084606001516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611e4b57600080fd5b505af1158015611e5f573d6000803e3d6000fd5b5050505050611e91565b611e913330856060015186608001516001600160a01b0316613789909392919063ffffffff16565b505060608101516080909101519091565b8251600090819081906001600160a01b0316611ec657506001915083905082612250565b60008660200151611ed690615432565b90506000611ee88860000151836137c1565b90506000816001600160a01b031663358f0e1c8a6040518263ffffffff1660e01b8152600401611f1891906154bd565b606060405180830381865afa158015611f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5991906154d0565b95509150506001600160a01b0380821690881614611fb95760405162461bcd60e51b815260206004820152601260248201527f7377617020696e666f206d69736d61746368000000000000000000000000000060448201526064016106e5565b6020890151604051634c6da26960e01b81526000916001600160a01b03851691634c6da26991611fef918d903090600401615508565b600060405180830381865afa15801561200c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612034919081019061553a565b8a5190915061204e906001600160a01b038416908b61297d565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa158015612095573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b99190614fcc565b905060008b600001516001600160a01b0316836040516120d9919061556e565b6000604051808303816000865af19150503d8060008114612116576040519150601f19603f3d011682016040523d82523d6000602084013e61211b565b606091505b50508c51604051636eb1769f60e11b81523060048201526001600160a01b0391821660248201529192506000919086169063dd62ed3e90604401602060405180830381865afa158015612172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121969190614fcc565b11156121b4578b516121b4906001600160a01b03861690600061297d565b806121cb5760008098509850505050505050612250565b6040516370a0823160e01b81523060048201526000906001600160a01b038916906370a0823190602401602060405180830381865afa158015612212573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122369190614fcc565b90506001612244848361535e565b99509950505050505050505b93509350939050565b6000808560008151811061226f5761226f614fe5565b6020026020010151905061228286613874565b9550855160001480156122a157506020810151516001600160401b0316155b1561230c576122ba848487600001518860200151613197565b60408051888152602081018590526001600160a01b0386168183015290517f295612f9c20f128efb8df333990658b0f1b8083bc7b6dcf90750348cede4c2999181900360600190a16000915050612544565b84518651156124d257602080830151516001600160401b03166000908152600a90915260409020546001600160a01b03168061238a5760405162461bcd60e51b815260206004820152601060248201527f72656d6f7465206e6f7420666f756e640000000000000000000000000000000060448201526064016106e5565b61239d898285602001516000015161397e565b9150600060405180606001604052808b81526020018a8152602001898152506040516020016123cc919061558a565b60408051601f198184030181529082905260015463299aee5160e11b83529092506000916001600160a01b0390911690635335dca2906124109085906004016156d7565b602060405180830381865afa15801561242d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124519190614fcc565b600154602087015151604051634f9e72ad60e11b81529293506001600160a01b0390911691639f3ce55a91849161248e91889188906004016156ea565b6000604051808303818588803b1580156124a757600080fd5b505af11580156124bb573d6000803e3d6000fd5b505050505080866124cc919061571b565b95505050505b6124e28260200151828787613af4565b6020820151606001516124f5908461571b565b604080518a8152602081018790526001600160a01b0388168183015290519194507f295612f9c20f128efb8df333990658b0f1b8083bc7b6dcf90750348cede4c299919081900360600190a150505b95945050505050565b612555613bb6565b6008805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600680546001600160a01b0319166001600160a01b0383169081179091556040519081527fb878cd71628ac64b2df1872301925e01164824535b02e8601077749eeeb88c3d90602001610bd0565b6001600160a01b03811660009081526009602052604090205460ff166126555760405162461bcd60e51b815260206004820152601560248201527f4163636f756e74206973206e6f7420706175736572000000000000000000000060448201526064016106e5565b6001600160a01b038116600081815260096020908152604091829020805460ff1916905590519182527fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e9101610bd0565b600480546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f2d025324f0a785e8c12d0a0d91a9caa49df4ef20ff87e0df7213a1d4f3157beb9101611977565b81518351148015612712575080518351145b61275e5760405162461bcd60e51b815260206004820152601660248201527f636f646563206c656e67746873206d69736d617463680000000000000000000060448201526064016106e5565b60005b8351811015611d2e57600083828151811061277e5761277e614fe5565b60200260200101518051906020012090506127cc8583815181106127a4576127a4614fe5565b6020026020010151828585815181106127bf576127bf614fe5565b6020026020010151613c08565b50806127d781615375565b915050612761565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015612826573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284a9190614fcc565b604051635569f64b60e11b81526001600160a01b038581166004830152602482018590529192509085169063aad3ec9690604401600060405180830381600087803b15801561289857600080fd5b505af11580156128ac573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600092506001600160a01b03861691506370a0823190602401602060405180830381865afa1580156128f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061291b9190614fcc565b905082612928838361535e565b10156129765760405162461bcd60e51b815260206004820152601960248201527f696e73756666696369656e742066756e6420636c61696d65640000000000000060448201526064016106e5565b5050505050565b8015806129f75750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156129d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f59190614fcc565b155b612a695760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084016106e5565b6040516001600160a01b038316602482015260448101829052610d6690849063095ea7b360e01b9060640161180d565b6001600160a01b03811660009081526009602052604090205460ff1615612b025760405162461bcd60e51b815260206004820152601960248201527f4163636f756e7420697320616c7265616479207061757365720000000000000060448201526064016106e5565b6001600160a01b038116600081815260096020908152604091829020805460ff1916600117905590519182527f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f89101610bd0565b612b5e611983565b6008805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586125823390565b8051825114612be45760405162461bcd60e51b815260206004820152601460248201527f706172616d732073697a65206d69736d6174636800000000000000000000000060448201526064016106e5565b60005b8251811015612c7457818181518110612c0257612c02614fe5565b602002602001015160036000858481518110612c2057612c20614fe5565b602002602001015180519060200120815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508080612c6c90615375565b915050612be7565b507f68d2b5e14eb61b73f2dfa46a255dcba81a3b53259093a83c90da69c3ade70b968282604051611977929190615733565b600054600160b01b900460ff16610b2d576001546001600160a01b03163314610b2d5760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206973206e6f74206d657373616765206275730000000000000060448201526064016106e5565b6001600160401b0382166000908152600a60205260409020546001600160a01b038281169116146107945760405162461bcd60e51b815260206004820152600e60248201527f756e6b6e6f776e2072656d6f746500000000000000000000000000000000000060448201526064016106e5565b600080600084604051612d96906143a7565b8190604051809103906000f5905080158015612db6573d6000803e3d6000fd5b5060608501519091506000906001600160a01b031615612e435760608501516040516370a0823160e01b81526001600160a01b038481166004830152909116906370a0823190602401602060405180830381865afa158015612e1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e409190614fcc565b90505b60408086015190516370a0823160e01b81526001600160a01b03848116600483015260009216906370a0823190602401602060405180830381865afa158015612e90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eb49190614fcc565b60a08701519091506001600160a01b0384163190831115612eff57612ede848860600151856127df565b612ef1838860e001518960600151613cfa565b9550866060015194506130cd565b8660800151821115612f3b57612f1a848860400151846127df565b612f2d828860c001518960400151613cfa565b9550866040015194506130cd565b866080015181111561308557604051635569f64b60e11b815260006004820181905260248201526001600160a01b0385169063aad3ec9690604401600060405180830381600087803b158015612f9057600080fd5b505af1158015612fa4573d6000803e3d6000fd5b505060065460408a01516001600160a01b03908116911614915061300c90505760405162461bcd60e51b815260206004820152601d60248201527f6272696467654f7574546f6b656e206e6f74206e61746976655772617000000060448201526064016106e5565b61301f818860c001518960400151613cfa565b955086604001516001600160a01b031663d0e30db0876040518263ffffffff1660e01b81526004016000604051808303818588803b15801561306057600080fd5b505af1158015613074573d6000803e3d6000fd5b5050505050866040015194506130cd565b60405162461bcd60e51b815260206004820152601a60248201527f4d53473a3a41424f52543a706f636b657420697320656d70747900000000000060448201526064016106e5565b505050509250929050565b6000811561318f57604051600090329061c35090859084818181858888f193505050503d8060008114613127576040519150601f19603f3d011682016040523d82523d6000602084013e61312c565b606091505b505090508061318d5760405162461bcd60e51b815260206004820152602760248201527f6661696c656420746f20726566756e642072656d61696e696e67206e6174697660448201526632903a37b5b2b760c91b60648201526084016106e5565b505b506001919050565b80156132f2576006546001600160a01b038581169116146131fa5760405162461bcd60e51b815260206004820152601760248201527f746f6b656e206973206e6f74206e61746976655772617000000000000000000060448201526064016106e5565b600654604051632e1a7d4d60e01b8152600481018590526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561324057600080fd5b505af1158015613254573d6000803e3d6000fd5b505050506000826001600160a01b03168461c35090604051600060405180830381858888f193505050503d80600081146132aa576040519150601f19603f3d011682016040523d82523d6000602084013e6132af565b606091505b50509050806132ec5760405162461bcd60e51b81526020600482015260096024820152681cd95b990819985a5b60ba1b60448201526064016106e5565b50611d2e565b611d2e6001600160a01b03851683856117e1565b600580546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f47ffc4777a9849fd88ac272225845f7bbcfa9920f222b459c2e6b28156ce72499101611977565b6000546001600160a01b0316156133b95760405162461bcd60e51b815260206004820152601160248201527f6f776e657220616c72656164792073657400000000000000000000000000000060448201526064016106e5565b610b2d33613534565b600054600160a81b900460ff166133eb5760405162461bcd60e51b81526004016106e5906157a0565b8115806133f9575046617a69145b61340257600080fd5b6000805460ff60b01b1916600160b01b84151502179055600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f3f8223bcd8b3b875473e9f9e14e1ad075451a2b5ffd31591655da9a01516bf5e90602001611977565b600054600160a81b900460ff16610d5b5760405162461bcd60e51b81526004016106e5906157a0565b600054600160a81b900460ff166111f45760405162461bcd60e51b81526004016106e5906157a0565b600054600160a81b900460ff166115345760405162461bcd60e51b81526004016106e5906157a0565b600054600160a81b900460ff16610cf25760405162461bcd60e51b81526004016106e5906157a0565b600054600160a81b900460ff16610c325760405162461bcd60e51b81526004016106e5906157a0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006135d9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613df29092919063ffffffff16565b805190915015610d6657808060200190518101906135f791906157eb565b610d665760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106e5565b6060600082518451613668919061571b565b6001600160401b0381111561367f5761367f614491565b6040519080825280601f01601f1916602001820160405280156136a9576020820181803683370190505b5090506000806136bd868051602090910191565b915091506000806136d2878051602090910191565b9150915060006136e6868051602090910191565b50905060006136f5858361571b565b9050613702868387613e09565b61370d848285613e09565b5094955050505050505b92915050565b60006137298383613e87565b6004549091506001600160a01b03808316911614610d665760405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207369676e657200000000000000000000000000000000000060448201526064016106e5565b6040516001600160a01b0380851660248301528316604482015260648101829052611d2e9085906323b872dd60e01b9060840161180d565b6001600160a01b0382811660009081526002602090815260408083206001600160e01b03198616845290915281205490911661383f5760405162461bcd60e51b815260206004820152600f60248201527f756e737570706f7274656420646578000000000000000000000000000000000060448201526064016106e5565b506001600160a01b0391821660009081526002602090815260408083206001600160e01b031994909416835292905220541690565b606060008251116138b55760405162461bcd60e51b815260206004820152600b60248201526a656d70747920657865637360a81b60448201526064016106e5565b600182516138c3919061535e565b6001600160401b038111156138da576138da614491565b60405190808252806020026020018201604052801561391357816020015b6139006143b4565b8152602001906001900390816138f85790505b50905060015b82518110156139785782818151811061393457613934614fe5565b60200260200101518260018361394a919061535e565b8151811061395a5761395a614fe5565b6020026020010181905250808061397090615375565b915050613919565b50919050565b6000806000836001600160401b031661014414806139a65750836001600160401b0316610118145b15613a5d57604080517f2020dba91b30cc0006188af794c2fb30dd8520db7e2c088b7fc7c103c00ca49460208201526001600160a01b03871691810191909152606081018790527f01000035baded9e5353c4bceb7e4dc847b54f2bed0ebc4c55c23bb9dcd57f9fd608082018190527fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060a0830152925060c001604051602081830303815290604052805190602001209050612544565b6040517fff0000000000000000000000000000000000000000000000000000000000000060208201526bffffffffffffffffffffffff19606087901b166021820152603581018790527f82b6de7042f2cd8322bf2897323b63a909f2a8f74f74c0933efafa7752618a8460558201819052925060750160405160208183030381529060405280519060200120905095945050505050565b6020808501518051908201206000908152600390915260409020546001600160a01b0390811690613b289084168284613ea3565b6060850151855160408088015190516324c9401b60e01b81526001600160a01b038516936324c9401b939092613b67928a9189918b9190600401615808565b60006040518083038185885af1158015613b85573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052613bae919081019061553a565b505050505050565b60085460ff16610b2d5760405162461bcd60e51b815260206004820152601560248201527f4d53473a3a41424f52543a6e6f7420706175736564000000000000000000000060448201526064016106e5565b6001600160a01b0380841660009081526002602090815260408083206001600160e01b03198716845290915290205481169082168103613c705760405162461bcd60e51b815260206004820152600360248201526206e6f760ec1b60448201526064016106e5565b6001600160a01b0384811660008181526002602090815260408083206001600160e01b031989168085529083529281902080546001600160a01b03191695881695861790558051938452908301919091528101919091527f454003ca28aca3b395ad1720eedfe6ee23b22ae10af0a8bb39c206ca1ca5679b9060600160405180910390a150505050565b60008083851115613d1957613d0f848661535e565b9150839050613d1c565b50835b6006546001600160a01b0390811690841603613dd0576005546040516000916001600160a01b03169083908381818185875af1925050503d8060008114613d7f576040519150601f19603f3d011682016040523d82523d6000602084013e613d84565b606091505b5050905080613dca5760405162461bcd60e51b81526020600482015260126024820152711cd95b99081b985d1a5d994819985a5b195960721b60448201526064016106e5565b50613dea565b600554613dea906001600160a01b038581169116836117e1565b509392505050565b6060613e018484600085613f55565b949350505050565b60208110613e415782518252613e2060208361571b565b9150613e2d60208461571b565b9250613e3a60208261535e565b9050613e09565b80600003613e4e57505050565b60006001613e5d83602061535e565b613e699061010061592d565b613e73919061535e565b935183518516941916939093179091525050565b6000806000613e968585614086565b91509150613dea816140cb565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015613ef4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f189190614fcc565b613f22919061571b565b6040516001600160a01b038516602482015260448101829052909150611d2e90859063095ea7b360e01b9060640161180d565b606082471015613fb65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106e5565b6001600160a01b0385163b61400d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106e5565b600080866001600160a01b03168587604051614029919061556e565b60006040518083038185875af1925050503d8060008114614066576040519150601f19603f3d011682016040523d82523d6000602084013e61406b565b606091505b509150915061407b828286614281565b979650505050505050565b60008082516041036140bc5760208301516040840151606085015160001a6140b0878285856142ba565b945094505050506140c4565b506000905060025b9250929050565b60008160048111156140df576140df614dc9565b036140e75750565b60018160048111156140fb576140fb614dc9565b036141485760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106e5565b600281600481111561415c5761415c614dc9565b036141a95760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106e5565b60038160048111156141bd576141bd614dc9565b036142155760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016106e5565b600481600481111561422957614229614dc9565b036108265760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016106e5565b60608315614290575081611715565b8251156142a05782518084602001fd5b8160405162461bcd60e51b81526004016106e591906156d7565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142f1575060009050600361439e565b8460ff16601b1415801561430957508460ff16601c14155b1561431a575060009050600461439e565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561436e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166143975760006001925092505061439e565b9150600090505b94509492505050565b6101dc8061593a83390190565b6040805161014081019091526000610100820190815260606101208301528190815260200161440d604051806080016040528060006001600160401b031681526020016060815260200160608152602001600081525090565b815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461082657600080fd5b803561446f8161444f565b919050565b60006020828403121561448657600080fd5b81356117158161444f565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156144c9576144c9614491565b60405290565b604051608081016001600160401b03811182821017156144c9576144c9614491565b60405161010081016001600160401b03811182821017156144c9576144c9614491565b604051606081016001600160401b03811182821017156144c9576144c9614491565b604051601f8201601f191681016001600160401b038111828210171561455e5761455e614491565b604052919050565b60006001600160401b0382111561457f5761457f614491565b5060051b60200190565b6001600160401b038116811461082657600080fd5b600082601f8301126145af57600080fd5b813560206145c46145bf83614566565b614536565b82815260059290921b840181019181810190868411156145e357600080fd5b8286015b848110156146075780356145fa8161444f565b83529183019183016145e7565b509695505050505050565b6000806040838503121561462557600080fd5b82356001600160401b038082111561463c57600080fd5b818501915085601f83011261465057600080fd5b813560206146606145bf83614566565b82815260059290921b8401810191818101908984111561467f57600080fd5b948201945b838610156146a657853561469781614589565b82529482019490820190614684565b965050860135925050808211156146bc57600080fd5b506146c98582860161459e565b9150509250929050565b600080600080606085870312156146e957600080fd5b84356146f48161444f565b93506020850135925060408501356001600160401b038082111561471757600080fd5b818701915087601f83011261472b57600080fd5b81358181111561473a57600080fd5b88602082850101111561474c57600080fd5b95989497505060200194505050565b60006001600160401b0382111561477457614774614491565b50601f01601f191660200190565b600082601f83011261479357600080fd5b81356147a16145bf8261475b565b8181528460208386010111156147b657600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156147e557600080fd5b6147ed6144a7565b905081356147fa8161444f565b815260208201356001600160401b0381111561481557600080fd5b61482184828501614782565b60208301525092915050565b60006080828403121561483f57600080fd5b6148476144cf565b9050813561485481614589565b815260208201356001600160401b038082111561487057600080fd5b61487c85838601614782565b6020840152604084013591508082111561489557600080fd5b506148a284828501614782565b6040830152506060820135606082015292915050565b801515811461082657600080fd5b803561446f816148b8565b600060c082840312156148e357600080fd5b60405160c081016001600160401b03828210818311171561490657614906614491565b816040528293508435915061491a82614589565b90825260208401359061492c82614589565b816020840152604085013591508082111561494657600080fd5b5061495385828601614782565b6040830152506060830135606082015260808301356149718161444f565b608082015261498260a084016148c6565b60a08201525092915050565b6000604082840312156149a057600080fd5b6149a86144a7565b905081356149b58161444f565b815260208201356149c5816148b8565b602082015292915050565b6000806000608084860312156149e557600080fd5b83356001600160401b03808211156149fc57600080fd5b818601915086601f830112614a1057600080fd5b81356020614a206145bf83614566565b82815260059290921b8401810191818101908a841115614a3f57600080fd5b8286015b84811015614b1f57803586811115614a5a57600080fd5b8701610100818e03601f19011215614a7157600080fd5b614a796144f1565b8582013588811115614a8a57600080fd5b614a988f88838601016147d3565b825250604082013588811115614aad57600080fd5b614abb8f888386010161482d565b8783015250614acc60608301614464565b6040820152614add60808301614464565b606082015260a0820135608082015260c082013560a082015260e082013560c082015261010082013560e0820152808552505083830192508381019050614a43565b5097505087013592505080821115614b3657600080fd5b50614b43868287016148d1565b925050614b53856040860161498e565b90509250925092565b600060208284031215614b6e57600080fd5b813561171581614589565b600082601f830112614b8a57600080fd5b81356020614b9a6145bf83614566565b82815260059290921b84018101918181019086841115614bb957600080fd5b8286015b848110156146075780356001600160401b03811115614bdc5760008081fd5b614bea8986838b0101614782565b845250918301918301614bbd565b600080600060608486031215614c0d57600080fd5b83356001600160401b0380821115614c2457600080fd5b614c308783880161459e565b94506020860135915080821115614c4657600080fd5b614c5287838801614b79565b93506040860135915080821115614c6857600080fd5b50614c758682870161459e565b9150509250925092565b60008060008060808587031215614c9557600080fd5b8435614ca08161444f565b93506020850135614cb08161444f565b92506040850135614cc081614589565b91506060850135614cd08161444f565b939692955090935050565b60008060408385031215614cee57600080fd5b8235614cf98161444f565b91506020830135614d098161444f565b809150509250929050565b60008060408385031215614d2757600080fd5b82356001600160401b0380821115614d3e57600080fd5b614d4a86838701614b79565b935060208501359150808211156146bc57600080fd5b60008060008060808587031215614d7657600080fd5b8435614d818161444f565b93506020850135614d9181614589565b925060408501356001600160401b03811115614dac57600080fd5b614db887828801614782565b9250506060850135614cd08161444f565b634e487b7160e01b600052602160045260246000fd5b6020810160038310614e0157634e487b7160e01b600052602160045260246000fd5b91905290565b60008060408385031215614e1a57600080fd5b8235614e258161444f565b915060208301356001600160e01b031981168114614d0957600080fd5b6000806000806000806000806000806101408b8d031215614e6257600080fd5b614e6b8b6148c6565b9950614e7960208c01614464565b9850614e8760408c01614464565b9750614e9560608c01614464565b9650614ea360808c01614464565b955060a08b01356001600160401b0380821115614ebf57600080fd5b614ecb8e838f0161459e565b965060c08d0135915080821115614ee157600080fd5b614eed8e838f01614b79565b955060e08d0135915080821115614f0357600080fd5b614f0f8e838f0161459e565b94506101008d0135915080821115614f2657600080fd5b614f328e838f01614b79565b93506101208d0135915080821115614f4957600080fd5b50614f568d828e0161459e565b9150509295989b9194979a5092959850565b600080600060608486031215614f7d57600080fd5b8335614f888161444f565b92506020840135614f988161444f565b91506040840135614fa881614589565b809150509250925092565b600060208284031215614fc557600080fd5b5035919050565b600060208284031215614fde57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b805161446f8161444f565b60005b83811015615021578181015183820152602001615009565b83811115611d2e5750506000910152565b60006150406145bf8461475b565b905082815283838301111561505457600080fd5b611715836020830184615006565b600082601f83011261507357600080fd5b61171583835160208501615032565b60006040828403121561509457600080fd5b61509c6144a7565b905081516150a98161444f565b815260208201516001600160401b038111156150c457600080fd5b61482184828501615062565b6000608082840312156150e257600080fd5b6150ea6144cf565b905081516150f781614589565b815260208201516001600160401b038082111561511357600080fd5b818401915084601f83011261512757600080fd5b61513685835160208501615032565b6020840152604084015191508082111561514f57600080fd5b5061515c84828501615062565b6040830152506060820151606082015292915050565b60006040828403121561518457600080fd5b61518c6144a7565b905081516151998161444f565b815260208201516149c5816148b8565b600060208083850312156151bc57600080fd5b82516001600160401b03808211156151d357600080fd5b90840190608082870312156151e757600080fd5b6151ef614514565b82518152838301518281111561520457600080fd5b8301601f8101881361521557600080fd5b80516152236145bf82614566565b81815260059190911b8201860190868101908a83111561524257600080fd5b8784015b838110156153225780518781111561525d57600080fd5b8501610100818e03601f1901121561527457600080fd5b61527c6144f1565b8a8201518981111561528d57600080fd5b61529b8f8d83860101615082565b8252506040820151898111156152b057600080fd5b6152be8f8d838601016150d0565b8c830152506152cf60608301614ffb565b60408201526152e060808301614ffb565b606082015260a0820151608082015260c082015160a082015260e082015160c082015261010082015160e0820152808552505088830192508881019050615246565b508088860152505050506153398760408501615172565b60408201529695505050505050565b634e487b7160e01b600052601160045260246000fd5b60008282101561537057615370615348565b500390565b60006001820161538757615387615348565b5060010190565b600081518084526020808501945080840160005b838110156153c75781516001600160a01b0316875295820195908201906001016153a2565b509495945050505050565b604080825283519082018190526000906020906060840190828701845b828110156154145781516001600160401b0316845292840192908401906001016153ef565b50505083810382850152615428818661538e565b9695505050505050565b805160208201516001600160e01b031980821692919060048310156154615780818460040360031b1b83161693505b505050919050565b60008151808452615481816020860160208601615006565b601f01601f19169290920160200192915050565b6001600160a01b0381511682526000602082015160406020850152613e016040850182615469565b6020815260006117156020830184615495565b6000806000606084860312156154e557600080fd5b8351925060208401516154f78161444f565b6040850151909250614fa88161444f565b60608152600061551b6060830186615469565b90508360208301526001600160a01b0383166040830152949350505050565b60006020828403121561554c57600080fd5b81516001600160401b0381111561556257600080fd5b613e0184828501615062565b60008251615580818460208701615006565b9190910192915050565b6000602080835260a08084018551838601528286015160806040818189015283835180865260c09550858a019150858160051b8b0101888601955060005b828110156156a65760bf198c8303018452865161010081518185526155ef82860182615495565b9150508b8201518482038d8601526001600160401b0381511682528c810151898e84015261561f8a840182615469565b9050888201518382038a8501526156368282615469565b9150506060808301518185015289850151935061565d8a8801856001600160a01b03169052565b808501516001600160a01b031690870152898401518a8701528c8401518d8701528b8401518c87015260e0938401519390950192909252505095890195928901926001016155c8565b5092909a015180516001600160a01b031660608b015260200151151560809099019890985298975050505050505050565b6020815260006117156020830184615469565b6001600160a01b03841681526001600160401b03831660208201526060604082015260006125446060830184615469565b6000821982111561572e5761572e615348565b500190565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b8381101561578a57605f19888703018552615778868351615469565b9550938201939082019060010161575c565b505085840381870152505050612544818561538e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000602082840312156157fd57600080fd5b8151611715816148b8565b6001600160401b038616815260006001600160a01b03808716602084015285604084015280851660608401525060a0608083015261407b60a0830184615469565b600181815b8085111561588457816000190482111561586a5761586a615348565b8085161561587757918102915b93841c939080029061584e565b509250929050565b60008261589b57506001613717565b816158a857506000613717565b81600181146158be57600281146158c8576158e4565b6001915050613717565b60ff8411156158d9576158d9615348565b50506001821b613717565b5060208310610133831016604e8410600b8410161715615907575081810a613717565b6159118383615849565b806000190482111561592557615925615348565b029392505050565b6000611715838361588c56fe608060405234801561001057600080fd5b506101bc806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063aad3ec9614610030575b600080fd5b61004361003e366004610106565b610045565b005b604080513360248201819052604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b179052915173ffffffffffffffffffffffffffffffffffffffff8516916100bc9161014b565b6000604051808303816000865af19150503d80600081146100f9576040519150601f19603f3d011682016040523d82523d6000602084013e6100fe565b606091505b505050505050565b6000806040838503121561011957600080fd5b823573ffffffffffffffffffffffffffffffffffffffff8116811461013d57600080fd5b946020939093013593505050565b6000825160005b8181101561016c5760208186018101518583015201610152565b8181111561017b576000828501525b50919091019291505056fea264697066735822122058cdd1cc9dbb96f9a0b535c8c9d12baa21cbfb93ca19e16607ef617cf36d172564736f6c634300080f00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212203d9c028db63435199f61cfc4068a34f0d92e5adfd0f44dbf657277cc49b7164a64736f6c634300080f003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000004066d196a423b2b3b8b054f4f40efb47a74e200c000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2