Address Details
contract

0x8280929b7F6adcE1CfA15b63cbEC1A7FD8cAEf11

Creator
0x03232a–323a4e at 0x564246–b4f6db
Balance
0 CELO ( )
Locked CELO Balance
0.00 CELO
Voting CELO Balance
0.00 CELO
Pending Unlocked Gold
0.00 CELO
Tokens
Fetching tokens...
Transactions
Fetching transactions...
Transfers
Fetching transfers...
Gas Used
Fetching gas used...
Last Balance Update
26268092

Contract Creation Code

Verify & Publish
0x6101c0604052336101405263346916ef60e11b6101805234801561002257600080fd5b506040516162c23803806162c283398101604081905261004191610251565b81816040518060400160405280601f81526020017f696f2e7769746e65742e70726f786961626c652e66656564732e707269636500815250823360046040518060400160405280600681526020016550726963652d60d01b8152508160138111156100ae576100ae6102a5565b60808160138111156100c2576100c26102a5565b9052506100ce81610142565b60a05250506001600160a01b03811661010157604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61010a81610155565b503060c0521515610100526001600255610120919091528051602090910120610160525050506001600160a01b03166101a0526102e7565b600061014f826020610171565b92915050565b600180546001600160a01b031916905561016e81610201565b50565b600060208260ff161115610187576101876102bb565b60008260ff1684511161019b5783516101a0565b8260ff165b905060005b818110156101f957806008028582815181106101c3576101c36102d1565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016901c92909217916001016101a5565b505092915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060006060848603121561026657600080fd5b83516001600160a01b038116811461027d57600080fd5b6020850151909350801515811461029357600080fd5b80925050604084015190509250925092565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60805160a05160c05160e05161010051610120516101405161016051610180516101a051615ec2610400600039600081816105740152818161169101528181611726015281816118b801528181611b97015281816123570152818161272a01528181612aed01528181612e9d01528181613172015281816134da015281816135780152818161368e0152818161372b015281816137c00152613d19015260006109cb0152600061064d01526000610b2501526000611a4101526000818161067e0152611ab00152600050506000818161061701528181610961015281816115d10152818161164d0152818161180b015261182d015260008181611b6701526132760152600081816106f50152611e020152615ec26000f3fe6080604052600436106103505760003560e01c80638da5cb5b116101c6578063d5f39488116100f7578063f2fde38b11610095578063f9f34bb61161006f578063f9f34bb614610c7e578063fae91a5114610cab578063ff24fb4f14610ccb578063ff75890f14610ceb57610350565b8063f2fde38b14610c03578063f78eea8314610c23578063f9b4a27f14610c5e57610350565b8063e30c3978116100d1578063e30c397814610b7e578063eb92b29b14610b93578063ef1dff2b14610bb6578063f14cb81214610bd657610350565b8063d5f3948814610b13578063d6a3614f14610b47578063e1c9e3c014610b6957610350565b8063b411ee9411610164578063c064d3721161013e578063c064d37214610a79578063c3d98ea814610a99578063c5010d1714610ac6578063d3471e3414610ae657610350565b8063b411ee94146109ed578063b8d38c9614610a13578063bff852fa14610a3357610350565b8063a9e954b9116101a0578063a9e954b914610952578063abc86c6e14610986578063ac82c60814610999578063adb7c3f7146109b957610350565b80638da5cb5b146108f45780638df3fdfd14610912578063a55b471c1461093257610350565b80635be93984116102a057806379ba50971161023e57806384292f071161021857806384292f071461086557806386ac03e01461088557806389a87b16146108a55780638a416ea9146108d257610350565b806379ba50971461080e5780637b10399914610823578063806d7e8f1461083857610350565b80636b58960a1161027a5780636b58960a146107565780636d1178e514610776578063715018a6146107e457806375dadb32146107f957610350565b80635be93984146106c35780636175ff00146106e35780636ab221f81461072457610350565b806346d1d21a1161030d5780635001f3b5116102e75780635001f3b51461060857806352d1902d1461063b5780635479d9401461066f57806354fd4d50146106ae57610350565b806346d1d21a1461056257806349492ef1146105ae5780634efef9c0146105db57610350565b8063029db9581461048a5780630306732e146104bd57806303f3813d146104e1578063384ac938146105015780633e088e121461052f578063439fab9114610542575b34801561035c57600080fd5b506000356001600160e01b03191663e0d20f7360e01b14801561037e57503330145b156104365760006103a5602061039436846144ae565b6001600160c01b031916901b610d0b565b600601546001600160a01b03169050806104115760405162461bcd60e51b815260206004820152602260248201527f5769746e6574507269636546656564733a20756e736574746c656420736f6c7660448201526132b960f11b60648201526084015b60405180910390fd5b60405136600082376000803683855af43d806000843e818015610432578184f35b8184fd5b60405162461bcd60e51b815260206004820152602160248201527f5769746e6574507269636546656564733a206e6f7420696d706c656d656e74656044820152601960fa1b6064820152608401610408565b005b34801561049657600080fd5b506104aa6104a53660046144f2565b610d45565b6040519081526020015b60405180910390f35b3480156104c957600080fd5b506104d2610d56565b6040516104b4939291906145b9565b3480156104ed57600080fd5b506104886104fc3660046146f4565b610fb5565b34801561050d57600080fd5b5061052161051c3660046144f2565b6113ab565b6040516104b4929190614778565b6104aa61053d3660046144f2565b61147d565b34801561054e57600080fd5b5061048861055d3660046148d6565b6114b1565b34801561056e57600080fd5b506105967f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016104b4565b3480156105ba57600080fd5b506105ce6105c93660046144f2565b6118a1565b6040516104b49190614934565b3480156105e757600080fd5b506105fb6105f63660046144f2565b611951565b6040516104b4919061496b565b34801561061457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610596565b34801561064757600080fd5b506104aa7f000000000000000000000000000000000000000000000000000000000000000081565b34801561067b57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405190151581526020016104b4565b3480156106ba57600080fd5b506105fb611a3a565b3480156106cf57600080fd5b506104aa6106de3660046144f2565b611a6a565b3480156106ef57600080fd5b506107177f000000000000000000000000000000000000000000000000000000000000000081565b6040516104b49190614992565b34801561073057600080fd5b5061074461073f3660046144f2565b611a7f565b60405160ff90911681526020016104b4565b34801561076257600080fd5b5061069e6107713660046149a0565b611a97565b34801561078257600080fd5b5061078b611af2565b6040516104b49190600060a08201905060ff835116825260ff602084015116602083015260408301516001600160401b038082166040850152806060860151166060850152806080860151166080850152505092915050565b3480156107f057600080fd5b50610488611b4c565b34801561080557600080fd5b506105fb611b60565b34801561081a57600080fd5b50610488611b8b565b34801561082f57600080fd5b50610596611b93565b34801561084457600080fd5b506108586108533660046144f2565b611c17565b6040516104b49190614a53565b34801561087157600080fd5b50610488610880366004614b39565b611df8565b34801561089157600080fd5b506104886108a0366004614b84565b6120a6565b3480156108b157600080fd5b506108c56108c03660046144f2565b612311565b6040516104b49190614bc5565b3480156108de57600080fd5b506108e76123f0565b6040516104b49190614c54565b34801561090057600080fd5b506000546001600160a01b0316610596565b34801561091e57600080fd5b506104aa61092d3660046144f2565b6124aa565b34801561093e57600080fd5b5061059661094d366004614c69565b6124bf565b34801561095e57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000003f6104aa565b6104aa610994366004614ce6565b612598565b3480156109a557600080fd5b506104886109b4366004614d1c565b612652565b3480156109c557600080fd5b506108e77f000000000000000000000000000000000000000000000000000000000000000081565b3480156109f957600080fd5b506108e7610a083660046148d6565b805160209091012090565b348015610a1f57600080fd5b50610488610a2e366004614d72565b6126c6565b348015610a3f57600080fd5b5060408051808201909152601781527f5769746e65745072696365466565647344656661756c7400000000000000000060208201526105fb565b348015610a8557600080fd5b506104aa610a94366004614d96565b6126e6565b348015610aa557600080fd5b50610ab9610ab43660046144f2565b6127a9565b6040516104b49190614de9565b348015610ad257600080fd5b5061069e610ae1366004614b84565b6129bc565b348015610af257600080fd5b50610b06610b013660046144f2565b612abe565b6040516104b49190614df7565b348015610b1f57600080fd5b506105967f000000000000000000000000000000000000000000000000000000000000000081565b348015610b5357600080fd5b50600080516020615e6d833981519152546104aa565b348015610b7557600080fd5b50610488612b86565b348015610b8a57600080fd5b50610596612cfe565b348015610b9f57600080fd5b5060045460405161ffff90911681526020016104b4565b348015610bc257600080fd5b506105fb610bd13660046144f2565b612d12565b348015610be257600080fd5b50610bf6610bf13660046144f2565b612dad565b6040516104b49190614e51565b348015610c0f57600080fd5b50610488610c1e3660046149a0565b612dc0565b348015610c2f57600080fd5b50610c43610c3e366004614d96565b612dd4565b604080519384526020840192909252908201526060016104b4565b348015610c6a57600080fd5b50610b06610c793660046144f2565b612e6e565b348015610c8a57600080fd5b50610c9e610c99366004614e5f565b612ed3565b6040516104b49190614e94565b348015610cb757600080fd5b50610488610cc6366004614ee2565b612faa565b348015610cd757600080fd5b50610488610ce63660046146f4565b613051565b348015610cf757600080fd5b50610596610d06366004614c69565b6130b2565b6001600160e01b03191660009081527fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d2016020526040902090565b6000610d5082613141565b92915050565b600080516020615e6d83398151915280546040805160208084028201810190925282815260609384938493830182828015610ddd57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411610d9f5790505b5050505050925082516001600160401b03811115610dfd57610dfd61479c565b604051908082528060200260200182016040528015610e3057816020015b6060815260200190600190039081610e1b5790505b50915082516001600160401b03811115610e4c57610e4c61479c565b604051908082528060200260200182016040528015610e75578160200160208202803683370190505b50905060005b8351811015610faf576000610ea8858381518110610e9b57610e9b614efe565b6020026020010151610d0b565b9050806000018054610eb990614f14565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee590614f14565b8015610f325780601f10610f0757610100808354040283529160200191610f32565b820191906000526020600020905b815481529060010190602001808311610f1557829003601f168201915b5050505050848381518110610f4957610f49614efe565b602090810291909101015260068101546001600160a01b031615610f8357600681015460601b6bffffffffffffffffffffffff1916610f89565b80600501545b838381518110610f9b57610f9b614efe565b602090810291909101015250600101610e7b565b50909192565b610fbd613217565b6001600160a01b03831661101f5760405162461bcd60e51b815260206004820152602360248201527f5769746e6574507269636546656564733a206e6f20736f6c766572206164647260448201526265737360e81b6064820152608401610408565b600061106086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a0892505050565b9050600061106d82610d0b565b9050806002015460000361113d5780611087878983614f98565b506110928787613244565b60018201805460ff191660ff92909216919091179055600080516020615e4d8339815191526001908101546110c69161506d565b60028201556006810180546001600160a01b0319166001600160a01b038716179055600080516020615e4d8339815191526001908101805491820181556000908152602090206008820401805463ffffffff60079093166004026101000a928302191660e085901c92909202919091179055611179565b60068101546001600160a01b0386811691161461117957600060058201556006810180546001600160a01b0319166001600160a01b0387161790555b600080866001600160a01b031663e6f8715860e01b8588886040516024016111a3939291906150ee565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516111e1919061516a565b600060405180830381855af49150503d806000811461121c576040519150601f19603f3d011682016040523d82523d6000602084013e611221565b606091505b50915091508161127b576004810190508080602001905181019061124591906151de565b6040516020016112559190615212565b60408051601f198184030181529082905262461bcd60e51b82526104089160040161496b565b5050600080306001600160a01b031663e0d20f7360e01b856040516024016112a39190614c54565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516112e1919061516a565b600060405180830381855afa9150503d806000811461131c576040519150601f19603f3d011682016040523d82523d6000602084013e611321565b606091505b509150915081611355576004810190508080602001905181019061134591906151de565b6040516020016112559190615275565b5050604080516001600160e01b0319841681526001600160a01b03871660208201527f850802cc670161a9f185e45414c2fe7efb5e71b23a8e32a53caffb7dd000aca3910160405180910390a150505050505050565b600060606113b883610d0b565b600601546001600160a01b0316915060006113d28461332a565b905080516001600160401b038111156113ed576113ed61479c565b60405190808252806020026020018201604052801561142057816020015b606081526020019060019003908161140b5790505b50915060005b81518110156114765761145182828151811061144457611444614efe565b6020026020010151612d12565b83828151811061146357611463614efe565b6020908102919091010152600101611426565b5050915091565b6040805180820190915260035460ff8116825261010090046001600160401b03166020820152600090610d50908390613414565b6000546001600160a01b03168061152a57818060200190518101906114d691906152c8565b90506114e18161394f565b60408051808201909152600a808252630bebc2006020909201919091526003805468ffffffffffffffffff1916640bebc2000a1790556004805461ffff19169091179055611582565b336001600160a01b038216146115825760405162461bcd60e51b815260206004820152601f60248201527f5769746e6574507269636546656564733a206e6f7420746865206f776e6572006044820152606401610408565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe54158015906115f357507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe547f00000000000000000000000000000000000000000000000000000000000000003f145b1561164b5760405162461bcd60e51b815260206004820152602260248201527f5769746e6574507269636546656564733a20616c726561647920757067726164604482015261195960f21b6064820152608401610408565b7f00000000000000000000000000000000000000000000000000000000000000003f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b6117125760405162461bcd60e51b815260206004820152602360248201527f5769746e6574507269636546656564733a20696e6578697374656e74206f7261604482015262636c6560e81b6064820152608401610408565b63baeca88b60e01b6001600160e01b0319167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663adb7c3f76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611782573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a691906152e5565b6001600160e01b031916146118095760405162461bcd60e51b8152602060048201526024808201527f5769746e6574507269636546656564733a20756e636f6d706c69616e74206f7260448201526361636c6560e01b6064820152608401610408565b7f00000000000000000000000000000000000000000000000000000000000000003f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03167fe73e754121f0bad1327816970101955bfffdf53d270ac509d777c25be070d7f6611888611a3a565b604051611895919061496b565b60405180910390a45050565b6040805180820190915260008152606060208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a77fc1a46118ee84611a6a565b6040518263ffffffff1660e01b815260040161190c91815260200190565b600060405180830381865afa158015611929573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d509190810190615302565b6060600061195e83610d0b565b60058101549091506000036119b55760405162461bcd60e51b815260206004820152601d60248201527f5769746e6574507269636546656564733a206e6f2052414420686173680000006044820152606401610408565b6119bd611b93565b6001600160a01b0316632ebf5d5c82600501546040518263ffffffff1660e01b81526004016119ee91815260200190565b600060405180830381865afa158015611a0b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a3391908101906151de565b9392505050565b6060611a657f0000000000000000000000000000000000000000000000000000000000000000613968565b905090565b6000611a7582610d0b565b6004015492915050565b6000611a8a82610d0b565b6001015460ff1692915050565b600080611aac6000546001600160a01b031690565b90507f00000000000000000000000000000000000000000000000000000000000000008015611a335750826001600160a01b0316816001600160a01b0316149392505050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526040805180820190915260035460ff8116825261010090046001600160401b03166020820152611a6590613a0c565b611b54613217565b611b5e600061394f565b565b6060611a657f0000000000000000000000000000000000000000000000000000000000000000613ab3565b611b5e613b57565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637b1039996040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6591906152c8565b60606000611c23611b93565b6001600160a01b031663a83e942c611c3a856124aa565b6040518263ffffffff1660e01b8152600401611c5891815260200190565b600060405180830381865afa158015611c75573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c9d91908101906153ac565b905080516001600160401b03811115611cb857611cb861479c565b604051908082528060200260200182016040528015611d2a57816020015b611d176040805160e0810190915260008082526020820190815260200160008152602001606081526020016060815260200160608152602001606081525090565b815260200190600190039081611cd65790505b50915060005b8251811015611df157611d41611b93565b6001600160a01b0316639dd48757838381518110611d6157611d61614efe565b60200260200101516040518263ffffffff1660e01b8152600401611d8791815260200190565b600060405180830381865afa158015611da4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dcc9190810190615577565b838281518110611dde57611dde614efe565b6020908102919091010152600101611d30565b5050919050565b611e00613217565b7f00000000000000000000000000000000000000000000000000000000000000006013811115611e3257611e3261491e565b611e3a611b93565b6001600160a01b0316634c729104836040518263ffffffff1660e01b8152600401611e6791815260200190565b602060405180830381865afa158015611e84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea89190615682565b6013811115611eb957611eb961491e565b14611f155760405162461bcd60e51b815260206004820152602660248201527f5769746e6574507269636546656564733a2062616420726573756c742064617460448201526561207479706560d01b6064820152608401610408565b6000611f5684848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a0892505050565b90506000611f6382610d0b565b905080600201546000036120375780611f7d858783614f98565b50611f888585613244565b60018201805460ff191660ff92909216919091179055600080516020615e4d833981519152600190810154611fbc9161506d565b600282015560058101839055600080516020615e6d83398151915280546001810182556000919091527fb7ef506da7909f25321b247725840c95fced7275a59588a4236c0671ab1d82216008820401805463ffffffff60079093166004026101000a928302191660e085901c9290920291909117905561205c565b8281600501541461205c57600581018390556006810180546001600160a01b03191690555b604080516001600160e01b031984168152602081018590527f37206f9df7db3fe5c4edfea9c5ce9ea406912fc4133f5c67200273da0c09e7b1910160405180910390a15050505050565b6120ae613217565b60006120ef83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a0892505050565b9050600080516020615e6d833981519152600061210b83610d0b565b600281015490915060008190036121645760405162461bcd60e51b815260206004820152601e60248201527f5769746e6574507269636546656564733a20756e6b6e6f776e206665656400006044820152606401610408565b825460009084906121779060019061569d565b8154811061218757612187614efe565b6000918252602090912060088204015460079091166004026101000a900460e01b905080846121b760018561569d565b815481106121c7576121c7614efe565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555083805480612207576122076156b0565b600082815260209020600860001990920191820401805463ffffffff600460078516026101000a021916905590558161223f82610d0b565b600201556001600160e01b0319851660009081527fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d201602052604081209061228682826143fb565b5060018101805460ff191690556000600282018190556003820181905560048201819055600582018190556006820180546001600160a01b031916905560078201819055600890910155506040517f5296cc0e8dad8eeece6ce7d0928746294283b850d6261e03e7028a84de61f0b690612301908690614c54565b60405180910390a1505050505050565b6123556040805160c081018252600080825260208083018290528284018290526060808401526080830182905283518085019094528184528301529060a082015290565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630aa4112a61238d84611a6a565b6040518263ffffffff1660e01b81526004016123ab91815260200190565b600060405180830381865afa1580156123c8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d509190810190615750565b600080516020615e6d83398151915254600090156124a757612457600080516020615e4d83398151915260010160008154811061242f5761242f614efe565b90600052602060002090600891828204019190066004029054906101000a900460e01b613bd2565b905060015b600080516020615e6d833981519152548110156124a557612499600080516020615e4d833981519152600101828154811061242f5761242f614efe565b9091189060010161245c565b505b90565b60006124b582610d0b565b6005015492915050565b60006124c9613217565b604051632956d1c760e21b815273579b4ad5e67e5b491a33a033a02a70769d7af8379063a55b471c90612506908890889088908890600401615811565b602060405180830381865af4158015612523573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061254791906152c8565b90507f3c07c0cbdabca8310d65b09f79c58655b46c3035d57c452177e3d49972ff5cec81826001600160a01b03163f85856040516125889493929190615838565b60405180910390a1949350505050565b6040805180820190915260035460ff8116825261010090046001600160401b031660208201526000906125e4906125d436859003850185615860565b9051905160ff9182169116101590565b61263a5760405162461bcd60e51b815260206004820152602160248201527f5769746e6574507269636546656564733a20756e7365637572652075706461746044820152606560f81b6064820152608401610408565b611a338361264d36859003850185615860565b613414565b61265a613217565b6126c18383836001600160a01b0316631eef90526040518163ffffffff1660e01b8152600401602060405180830381865afa15801561269d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088091906158a5565b505050565b6126ce613217565b6004805461ffff191661ffff92909216919091179055565b6004546000906064906126fd9061ffff16826158be565b604051630f7b104360e31b8152600481018590526020602482015261ffff91909116906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637bd8821890604401602060405180830381865afa158015612771573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279591906158a5565b61279f91906158d9565b610d509190615906565b6127d16040805160808101825260008082526020820181905291810182905290606082015290565b60006127dc83613141565b9050801561285a5760006127ef84612e6e565b905060006128008260800151613c61565b9050604051806080016040528061281683613c7f565b8152602001836040015163ffffffff1681526020018360600151815260200161283e87612dad565b600581111561284f5761284f61491e565b905295945050505050565b600061286584610d0b565b600601546001600160a01b03169050801561297057600080306001600160a01b031663e0d20f7360e01b876040516024016128a09190614c54565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516128de919061516a565b600060405180830381855afa9150503d8060008114612919576040519150601f19603f3d011682016040523d82523d6000602084013e61291e565b606091505b509150915081612952576004810190508080602001905181019061294291906151de565b604051602001611255919061591a565b808060200190518101906129669190615963565b9695505050505050565b604051806080016040528060008152602001600081526020016000801b815260200161299b86612dad565b60058111156129ac576129ac61491e565b9052949350505050565b50919050565b6000806129fe84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a0892505050565b90506001600160e01b03198116612aab612a1783610d0b565b8054612a2290614f14565b80601f0160208091040260200160405190810160405280929190818152602001828054612a4e90614f14565b8015612a9b5780601f10612a7057610100808354040283529160200191612a9b565b820191906000526020600020905b815481529060010190602001808311612a7e57829003601f168201915b5050505050805160209091012090565b6001600160e01b03191614949350505050565b6040805160a08101825260008082526020820181905291810182905260608082019290925260808101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f61921b2612b2384611a6a565b6040518263ffffffff1660e01b8152600401612b4191815260200190565b600060405180830381865afa158015612b5e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d5091908101906159cc565b612b8e613217565b600080516020615e6d83398151915280545b8015612cfa57600082612bb460018461569d565b81548110612bc457612bc4614efe565b90600052602060002090600891828204019190066004029054906101000a900460e01b9050612bfe600080516020615e4d83398151915290565b6001600160e01b0319821660009081526002919091016020526040812090612c2682826143fb565b5060018101805460ff191690556000600282018190556003820181905560048201819055600582018190556006820180546001600160a01b0319169055600782018190556008909101558254839080612c8157612c816156b0565b600082815260209020600860001990920191820401805463ffffffff600460078516026101000a021916905590556040517f5296cc0e8dad8eeece6ce7d0928746294283b850d6261e03e7028a84de61f0b690612cdf908390614c54565b60405180910390a15080612cf281615a88565b915050612ba0565b5050565b6000611a656001546001600160a01b031690565b6060612d1d82610d0b565b8054612d2890614f14565b80601f0160208091040260200160405190810160405280929190818152602001828054612d5490614f14565b8015612da15780601f10612d7657610100808354040283529160200191612da1565b820191906000526020600020905b815481529060010190602001808311612d8457829003601f168201915b50505050509050919050565b6000610d50612dbb83611a6a565b613cfb565b612dc8613217565b612dd181613d94565b50565b600080600080612de3856127a9565b8051602082015191925090600283606001516005811115612e0657612e0661491e565b14612e5857600183606001516005811115612e2357612e2361491e565b1480612e445750600483606001516005811115612e4257612e4261491e565b145b612e5057610190612e5b565b610194612e5b565b60c85b919550935061ffff169150509193909250565b6040805160a08101825260008082526020820181905291810182905260608082019290925260808101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f61921b2612b2384613141565b6060816001600160401b03811115612eed57612eed61479c565b604051908082528060200260200182016040528015612f4657816020015b612f336040805160808101825260008082526020820181905291810182905290606082015290565b815260200190600190039081612f0b5790505b50905060005b82811015612fa357612f7e848483818110612f6957612f69614efe565b9050602002016020810190610ab491906144f2565b828281518110612f9057612f90614efe565b6020908102919091010152600101612f4c565b5092915050565b612fb2613217565b612fbb81613dc6565b6130075760405162461bcd60e51b815260206004820152601d60248201527f5769746e6574507269636546656564733a20696e76616c696420534c410000006044820152606401610408565b8060036130148282615a9f565b9050507f084efe053ac15af09a2db38bb176035f1d94cbc8a775c7761e662f7f11ae6940816040516130469190615af1565b60405180910390a150565b613059613217565b6130ab8585856001600160a01b031663bf7a0bd386866040518363ffffffff1660e01b815260040161308c929190615b7d565b6020604051808303816000875af115801561269d573d6000803e3d6000fd5b5050505050565b6040516001628a76f160e01b0319815260009073579b4ad5e67e5b491a33a033a02a70769d7af8379063ff75890f906130f5908890889088908890600401615811565b602060405180830381865af4158015613112573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313691906152c8565b90505b949350505050565b60008061314d83611a6a565b90506000811180156131f85750600260405163234fe6e360e01b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063234fe6e390602401602060405180830381865afa1580156131c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e59190615c0d565b60058111156131f6576131f661491e565b145b156132035792915050565b61320c83610d0b565b600301549392505050565b6000546001600160a01b03163314611b5e5760405163118cdaa760e01b8152336004820152602401610408565b60405163e78d44d960e01b815260009073579b4ad5e67e5b491a33a033a02a70769d7af8379063e78d44d9906132a2907f00000000000000000000000000000000000000000000000000000000000000009087908790600401615c28565b602060405180830381865af49250505080156132db575060408051601f3d908101601f191682019092526132d891810190615c42565b60015b613323576132e7615c5f565b806308c379a00361331757506132fb615c7a565b806133065750613319565b80604051602001611255919061591a565b505b3d6000803e3d6000fd5b9050610d50565b6001600160e01b0319811660009081527fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d201602090815260409182902060089081015483518281526101208101909452606093909290919082016101008036833701905050915060005b600881101561340c57818382815181106133af576133af614efe565b60200260200101906001600160e01b03191690816001600160e01b031916815250508281815181106133e3576133e3614efe565b60209081029190910101516001600160e01b0319161561340c57602082901b9150600101613393565b825250919050565b60008061342084610d0b565b600581015490915015613895576134363a6126e6565b9150813410156134965760405162461bcd60e51b815260206004820152602560248201527f5769746e6574507269636546656564733a20696e73756666696369656e742072604482015264195dd85c9960da1b6064820152608401610408565b600481015460006134a682613cfb565b905060018160058111156134bc576134bc61491e565b0361364f57604051630552089560e11b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630aa4112a90602401600060405180830381865afa158015613529573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135519190810190615750565b9050600085826040015160080b6135689190615d03565b90506000811315613643578095507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ec5946db87866040518363ffffffff1660e01b81526004016135c591815260200190565b6000604051808303818588803b1580156135de57600080fd5b505af11580156135f2573d6000803e3d6000fd5b505060408051888152602081018b90526001600160e01b03198d1694503293507fc75bbe35e1d3486439c776ccf0fb47aede3d28e1bf548e01357b57132974cd9692500160405180910390a3613648565b600095505b505061388e565b60028160058111156136635761366361491e565b036137155760038301541561370957600383015460405163045bf42f60e11b815260048101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906308b7e85e906024016000604051808303816000875af11580156136df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261370791908101906159cc565b505b600383018290556137a4565b60405163045bf42f60e11b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906308b7e85e906024016000604051808303816000875af192505050801561379d57506040513d6000823e601f3d908101601f1916820160405261379a91908101906159cc565b60015b156137a457505b6005830154604051631ee15bd160e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691633dc2b7a29187916137f7918a90600401615d23565b60206040518083038185885af1158015613815573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061383a91906158a5565b600484018190556040519092506001600160e01b031987169032907e9bd781be3a9c4660642983aa92bc7a7484c4b0cb0c2afa0f9174c74061d5039061388590869089908b90615d4d565b60405180910390a35b5050613909565b60068101546001600160a01b0316156138c1576138ba6138b48561332a565b84613e53565b9150613909565b60405162461bcd60e51b815260206004820152601e60248201527f5769746e6574507269636546656564733a20756e6b6e6f776e206665656400006044820152606401610408565b34821015612fa357336108fc61391f843461569d565b6040518115909202916000818181858888f19350505050158015613947573d6000803e3d6000fd5b505092915050565b600180546001600160a01b0319169055612dd181613f10565b6060600061397583613f60565b6001600160401b0381111561398c5761398c61479c565b6040519080825280601f01601f1916602001820160405280156139b6576020820181803683370190505b50905060005b8151811015612fa3578381602081106139d7576139d7614efe565b1a60f81b8282815181106139ed576139ed614efe565b60200101906001600160f81b031916908160001a9053506001016139bc565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526040518060a00160405280836000015160ff168152602001603360ff16815260200183602001516001600160401b0316815260200183602001516064613a7d9190615d7c565b6001600160401b03168152602001836000015160ff168460200151613aa29190615d9f565b6001600160401b0316905292915050565b60606000613ac083613f99565b6001600160401b03811115613ad757613ad761479c565b6040519080825280601f01601f191660200182016040528015613b01576020820181803683370190505b50905060005b8151811015612fa357838160208110613b2257613b22614efe565b1a60f81b828281518110613b3857613b38614efe565b60200101906001600160f81b031916908160001a905350600101613b07565b3380613b61612cfe565b6001600160a01b031614613bc95760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610408565b612dd18161394f565b600080613bde83610d0b565b6005015414613c2e5781613bf183610d0b565b60050154604080516001600160e01b031990931660208401528201526060015b604051602081830303815290604052805190602001209050919050565b81613c3883610d0b565b60080154604080516001600160e01b03199093166020840152820152606001613c11565b919050565b613c6961443a565b6000613c7483613fd2565b9050611a3381613ff7565b6000818060000151613cee5760405162461bcd60e51b815260206004820152603260248201527f5769746e65743a20747269656420746f206465636f64652076616c756520667260448201527137b69032b93937b932b2103932b9bab63a1760711b6064820152608401610408565b611a33836020015161402b565b60008115613d8c5760405163234fe6e360e01b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063234fe6e390602401602060405180830381865afa158015613d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d509190615c0d565b506002919050565b613d9c613217565b6001600160a01b038116613bc957604051631e4fbdf760e01b815260006004820152602401610408565b600080613dd96040840160208501615dc5565b6001600160401b0316118015613dfe57506000613df96020840184615de2565b60ff16115b8015613e1a5750607f613e146020840184615de2565b60ff1611155b8015610d5057506404a817c800613e376040840160208501615dc5565b613e42906064615d7c565b6001600160401b0316101592915050565b600080835134613e639190615906565b905060005b845181101561394757306001600160a01b031663abc86c6e83878481518110613e9357613e93614efe565b6020026020010151876040518463ffffffff1660e01b8152600401613eb9929190615dff565b60206040518083038185885af1158015613ed7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613efc91906158a5565b613f06908461506d565b9250600101613e68565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b6020811015613c5c57818160208110613f7e57613f7e614efe565b1a60f81b6001600160f81b03191615613c5c57600101613f63565b60005b6020811015613c5c57818160208110613fb757613fb7614efe565b1a60f81b6001600160f81b03191615613c5c57600101613f9c565b613fda614452565b6040805180820190915282815260006020820152611a338161408e565b613fff61443a565b5060a0810151604080518082019091526001600160401b03909116602714158152602081019190915290565b60008160008060ff16826040015160ff161461406b57604080830151905161800560e51b815260ff91821660048201529082166024820152604401610408565b61407d846000015185606001516141ae565b6001600160401b0316949350505050565b614096614452565b81515182906000036140bb576040516309036d4760e21b815260040160405180910390fd5b600060ff816001600160401b038160015b801561413e576140db8961426f565b9550816140e781615e33565b6007600589901c169650601f8816955092505060051985016141365760208901516141128a866141ae565b9350808a60200151614124919061569d565b61412e908461506d565b9250506140cc565b5060006140cc565b600760ff861611156141685760405163bd2ac87960e01b815260ff86166004820152602401610408565b506040805160c08101825298895260ff95861660208a015293851693880193909352921660608601526001600160401b0390811660808601521660a08401525090919050565b600060188260ff1610156141c6575060ff8116610d50565b8160ff166018036141e4576141da8361426f565b60ff169050610d50565b8160ff16601903614203576141f8836142d1565b61ffff169050610d50565b8160ff16601a03614224576142178361433d565b63ffffffff169050610d50565b8160ff16601b03614238576133238361439c565b8160ff16601f0361425157506001600160401b03610d50565b604051636d785b1360e01b815260ff83166004820152602401610408565b60008160200151826000015151808211156142a7576040516363a056dd60e01b81526004810183905260248101829052604401610408565b83516020850180518083016001015195509081906142c482615e33565b8152505050505050919050565b6000816020015160026142e4919061506d565b82515180821115614312576040516363a056dd60e01b81526004810183905260248101829052604401610408565b8351602085018051600281840181015196509091614330828461506d565b9052509395945050505050565b600081602001516004614350919061506d565b8251518082111561437e576040516363a056dd60e01b81526004810183905260248101829052604401610408565b8351602085018051600481840181015196509091614330828461506d565b6000816020015160086143af919061506d565b825151808211156143dd576040516363a056dd60e01b81526004810183905260248101829052604401610408565b8351602085018051600881840181015196509091614330828461506d565b50805461440790614f14565b6000825580601f10614417575050565b601f016020900490600052602060002090810190612dd19190614499565b905290565b60405180604001604052806000151581526020016144355b604080516101008101909152606060c08201908152600060e08301528190815260006020820181905260408201819052606082018190526080820181905260a09091015290565b5b808211156124a5576000815560010161449a565b6001600160c01b031981358181169160088510156139475760089490940360031b84901b1690921692915050565b6001600160e01b031981168114612dd157600080fd5b60006020828403121561450457600080fd5b8135611a33816144dc565b60005b8381101561452a578181015183820152602001614512565b50506000910152565b6000815180845261454b81602086016020860161450f565b601f01601f19169290920160200192915050565b60008282518085526020808601955060208260051b8401016020860160005b848110156145ac57601f1986840301895261459a838351614533565b9884019892509083019060010161457e565b5090979650505050505050565b606080825284519082018190526000906020906080840190828801845b828110156145fc5781516001600160e01b031916845292840192908401906001016145d6565b50505083810382850152614610818761455f565b8481036040860152855180825283870192509083019060005b8181101561464557835183529284019291840191600101614629565b509098975050505050505050565b60008083601f84011261466557600080fd5b5081356001600160401b0381111561467c57600080fd5b60208301915083602082850101111561469457600080fd5b9250929050565b6001600160a01b0381168114612dd157600080fd5b60008083601f8401126146c257600080fd5b5081356001600160401b038111156146d957600080fd5b6020830191508360208260051b850101111561469457600080fd5b60008060008060006060868803121561470c57600080fd5b85356001600160401b038082111561472357600080fd5b61472f89838a01614653565b9097509550602088013591506147448261469b565b9093506040870135908082111561475a57600080fd5b50614767888289016146b0565b969995985093965092949392505050565b6001600160a01b03831681526040602082018190526000906131399083018461455f565b634e487b7160e01b600052604160045260246000fd5b604081018181106001600160401b03821117156147d1576147d161479c565b60405250565b60c081018181106001600160401b03821117156147d1576147d161479c565b60a081018181106001600160401b03821117156147d1576147d161479c565b601f8201601f191681016001600160401b038111828210171561483a5761483a61479c565b6040525050565b60405160e081016001600160401b03811182821017156148635761486361479c565b60405290565b60006001600160401b038211156148825761488261479c565b50601f01601f191660200190565b600061489b83614869565b6040516148a88282614815565b8092508481528585850111156148bd57600080fd5b8484602083013760006020868301015250509392505050565b6000602082840312156148e857600080fd5b81356001600160401b038111156148fe57600080fd5b8201601f8101841361490f57600080fd5b61313984823560208401614890565b634e487b7160e01b600052602160045260246000fd5b602081526000825160ff811061494c5761494c61491e565b8060208401525060208301516040808401526131396060840182614533565b602081526000611a336020830184614533565b6014811061498e5761498e61491e565b9052565b60208101610d50828461497e565b6000602082840312156149b257600080fd5b8135611a338161469b565b6005811061498e5761498e61491e565b600082825180855260208086019550808260051b8401018186016000805b85811015614a4557868403601f19018a5282518460408101845b6002811015614a30578782038352614a1e828551614533565b93890193928901929150600101614a05565b509b87019b95505050918401916001016149eb565b509198975050505050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561464557603f19898403018552815160e060ff825116855288820151614aa88a8701826149bd565b5087820151614ab98987018261497e565b506060808301518282880152614ad183880182614533565b9250505060808083015186830382880152614aec8382614533565b9250505060a08083015186830382880152614b0783826149cd565b9250505060c08083015192508582038187015250614b258183614533565b968901969450505090860190600101614a7c565b600080600060408486031215614b4e57600080fd5b83356001600160401b03811115614b6457600080fd5b614b7086828701614653565b909790965060209590950135949350505050565b60008060208385031215614b9757600080fd5b82356001600160401b03811115614bad57600080fd5b614bb985828601614653565b90969095509350505050565b6020815260018060a01b03825116602082015262ffffff602083015116604082015268ffffffffffffffffff60408301511660608201526000606083015160e06080840152614c18610100840182614533565b9050608084015160a084015260a0840151614c4c60c0850182805160ff1682526020908101516001600160401b0316910152565b509392505050565b6001600160e01b031991909116815260200190565b60008060008060408587031215614c7f57600080fd5b84356001600160401b0380821115614c9657600080fd5b614ca288838901614653565b90965094506020870135915080821115614cbb57600080fd5b50614cc887828801614653565b95989497509550505050565b6000604082840312156129b657600080fd5b60008060608385031215614cf957600080fd5b8235614d04816144dc565b9150614d138460208501614cd4565b90509250929050565b600080600060408486031215614d3157600080fd5b83356001600160401b03811115614d4757600080fd5b614d5386828701614653565b9094509250506020840135614d678161469b565b809150509250925092565b600060208284031215614d8457600080fd5b813561ffff81168114611a3357600080fd5b600060208284031215614da857600080fd5b5035919050565b6006811061498e5761498e61491e565b80518252602081015160208301526040810151604083015260608101516126c16060840182614daf565b60808101610d508284614dbf565b6020815260018060a01b0382511660208201526001600160401b03602083015116604082015263ffffffff6040830151166060820152606082015160808201526000608083015160a08084015261313960c0840182614533565b60208101610d508284614daf565b60008060208385031215614e7257600080fd5b82356001600160401b03811115614e8857600080fd5b614bb9858286016146b0565b6020808252825182820181905260009190848201906040850190845b81811015614ed657614ec3838551614dbf565b9284019260809290920191600101614eb0565b50909695505050505050565b600060408284031215614ef457600080fd5b611a338383614cd4565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680614f2857607f821691505b6020821081036129b657634e487b7160e01b600052602260045260246000fd5b601f8211156126c1576000816000526020600020601f850160051c81016020861015614f715750805b601f850160051c820191505b81811015614f9057828155600101614f7d565b505050505050565b6001600160401b03831115614faf57614faf61479c565b614fc383614fbd8354614f14565b83614f48565b6000601f841160018114614ff75760008515614fdf5750838201355b600019600387901b1c1916600186901b1783556130ab565b600083815260209020601f19861690835b828110156150285786850135825560209485019460019092019101615008565b50868210156150455760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d5057610d50615057565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e198436030181126150c057600080fd5b83016020810192503590506001600160401b038111156150df57600080fd5b80360382131561469457600080fd5b60006040820163ffffffff60e01b861683526020604060208501528185835260608501905060608660051b86010192508660005b8781101561515c57868503605f1901835261513d828a6150a9565b615148878284615080565b965050509183019190830190600101615122565b509298975050505050505050565b6000825161517c81846020870161450f565b9190910192915050565b600082601f83011261519757600080fd5b81516151a281614869565b6040516151af8282614815565b8281528560208487010111156151c457600080fd5b6151d583602083016020880161450f565b95945050505050565b6000602082840312156151f057600080fd5b81516001600160401b0381111561520657600080fd5b61313984828501615186565b7f5769746e657450726963654665656455706772616461626c653a20736f6c7665815274039103b30b634b230ba34b7b7103330b4b632b21d1605d1b60208201526000825161526881603585016020870161450f565b9190910160350192915050565b7f5769746e6574507269636546656564733a20736d6f6b652d746573742066616981526403632b21d160dd1b6020820152600082516152bb81602585016020870161450f565b9190910160250192915050565b6000602082840312156152da57600080fd5b8151611a338161469b565b6000602082840312156152f757600080fd5b8151611a33816144dc565b60006020828403121561531457600080fd5b81516001600160401b038082111561532b57600080fd5b908301906040828603121561533f57600080fd5b60405161534b816147b2565b825160ff811061535a57600080fd5b815260208301518281111561536e57600080fd5b61537a87828601615186565b60208301525095945050505050565b60006001600160401b038211156153a2576153a261479c565b5060051b60200190565b600060208083850312156153bf57600080fd5b82516001600160401b038111156153d557600080fd5b8301601f810185136153e657600080fd5b80516153f181615389565b6040516153fe8282614815565b82815260059290921b830184019184810191508783111561541e57600080fd5b928401925b8284101561543c57835182529284019290840190615423565b979650505050505050565b60ff81168114612dd157600080fd5b8051613c5c81615447565b805160058110613c5c57600080fd5b805160148110613c5c57600080fd5b600082601f83011261549057600080fd5b8151602061549d82615389565b6040516154aa8282614815565b83815260059390931b85018201928281019150868411156154ca57600080fd5b8286015b8481101561556c5780516001600160401b03808211156154ee5760008081fd5b818901915089603f8301126155035760008081fd5b60405161550f816147b2565b80606084018c8111156155225760008081fd5b8885015b8181101561555a5780518581111561553e5760008081fd5b61554c8f8c838a0101615186565b845250918901918901615526565b505050855250509183019183016154ce565b509695505050505050565b60006020828403121561558957600080fd5b81516001600160401b03808211156155a057600080fd5b9083019060e082860312156155b457600080fd5b6155bc614841565b6155c583615456565b81526155d360208401615461565b60208201526155e460408401615470565b60408201526060830151828111156155fb57600080fd5b61560787828601615186565b60608301525060808301518281111561561f57600080fd5b61562b87828601615186565b60808301525060a08301518281111561564357600080fd5b61564f8782860161547f565b60a08301525060c08301518281111561566757600080fd5b61567387828601615186565b60c08301525095945050505050565b60006020828403121561569457600080fd5b611a3382615470565b81810381811115610d5057610d50615057565b634e487b7160e01b600052603160045260246000fd5b805162ffffff81168114613c5c57600080fd5b805168ffffffffffffffffff81168114613c5c57600080fd5b6001600160401b0381168114612dd157600080fd5b60006040828403121561571957600080fd5b604051615725816147b2565b809150825161573381615447565b81526020830151615743816156f2565b6020919091015292915050565b60006020828403121561576257600080fd5b81516001600160401b038082111561577957600080fd5b9083019060e0828603121561578d57600080fd5b604051615799816147d7565b82516157a48161469b565b81526157b2602084016156c6565b60208201526157c3604084016156d9565b60408201526060830151828111156157da57600080fd5b6157e687828601615186565b606083015250608083015160808201526158038660a08501615707565b60a082015295945050505050565b604081526000615825604083018688615080565b828103602084015261543c818587615080565b60018060a01b0385168152836020820152606060408201526000612966606083018486615080565b60006040828403121561587257600080fd5b60405161587e816147b2565b823561588981615447565b81526020830135615899816156f2565b60208201529392505050565b6000602082840312156158b757600080fd5b5051919050565b61ffff818116838216019080821115612fa357612fa3615057565b8082028115828204841417610d5057610d50615057565b634e487b7160e01b600052601260045260246000fd5b600082615915576159156158f0565b500490565b7102bb4ba3732ba283934b1b2a332b2b2399d160751b81526000825161594781601285016020870161450f565b9190910160120192915050565b805160068110613c5c57600080fd5b60006080828403121561597557600080fd5b604051608081018181106001600160401b03821117156159975761599761479c565b80604052508251815260208301516020820152604083015160408201526159c060608401615954565b60608201529392505050565b6000602082840312156159de57600080fd5b81516001600160401b03808211156159f557600080fd5b9083019060a08286031215615a0957600080fd5b604051615a15816147f6565b8251615a208161469b565b81526020830151615a30816156f2565b6020820152604083015163ffffffff81168114615a4c57600080fd5b604082015260608381015190820152608083015182811115615a6d57600080fd5b615a7987828601615186565b60808301525095945050505050565b600081615a9757615a97615057565b506000190190565b8135615aaa81615447565b60ff8116905081548160ff1982161783556020840135615ac9816156f2565b68ffffffffffffffff008160081b168368ffffffffffffffffff198416171784555050505050565b604081018235615b0081615447565b60ff1682526020830135615b13816156f2565b6001600160401b03811660208401525092915050565b6000838385526020808601955060208560051b8301018460005b878110156145ac57848303601f19018952615b5e82886150a9565b615b69858284615080565b9a86019a9450505090830190600101615b43565b6020808252818101839052600090600560408085019086831b86010187855b8881101561464557878303603f190184528135368b9003601e19018112615bc257600080fd5b8a0186810190356001600160401b03811115615bdd57600080fd5b80871b3603821315615bee57600080fd5b615bf9858284615b29565b958801959450505090850190600101615b9c565b600060208284031215615c1f57600080fd5b611a3382615954565b838152604060208201526000613136604083018486615080565b600060208284031215615c5457600080fd5b8151611a3381615447565b600060033d11156124a75760046000803e5060005160e01c90565b600060443d1015615c885790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715615cb757505050505090565b8285019150815181811115615ccf5750505050505090565b843d8701016020828501011115615ce95750505050505090565b615cf860208286010187614815565b509095945050505050565b8181036000831280158383131683831282161715612fa357612fa3615057565b82815260608101611a336020830184805160ff1682526020908101516001600160401b0316910152565b8381526020808201849052825160ff1660408301528201516001600160401b0316606082015260808101613139565b6001600160401b0381811683821602808216919082811461394757613947615057565b60006001600160401b0380841680615db957615db96158f0565b92169190910492915050565b600060208284031215615dd757600080fd5b8135611a33816156f2565b600060208284031215615df457600080fd5b8135611a3381615447565b6001600160e01b03198316815260608101611a336020830184805160ff1682526020908101516001600160401b0316910152565b600060018201615e4557615e45615057565b506001019056fee36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d1ffe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d200a26469706673582212200323fb8b972d3201c0ca285eb7b2dff0273fc4ebf93ab2c4f7a0b21304a964f964736f6c6343000819003300000000000000000000000077703ae126b971c9946d562f41dd47071da007770000000000000000000000000000000000000000000000000000000000000001322e302e31342d34386336646436000000000000000000000000000000000000

Deployed ByteCode

0x6080604052600436106103505760003560e01c80638da5cb5b116101c6578063d5f39488116100f7578063f2fde38b11610095578063f9f34bb61161006f578063f9f34bb614610c7e578063fae91a5114610cab578063ff24fb4f14610ccb578063ff75890f14610ceb57610350565b8063f2fde38b14610c03578063f78eea8314610c23578063f9b4a27f14610c5e57610350565b8063e30c3978116100d1578063e30c397814610b7e578063eb92b29b14610b93578063ef1dff2b14610bb6578063f14cb81214610bd657610350565b8063d5f3948814610b13578063d6a3614f14610b47578063e1c9e3c014610b6957610350565b8063b411ee9411610164578063c064d3721161013e578063c064d37214610a79578063c3d98ea814610a99578063c5010d1714610ac6578063d3471e3414610ae657610350565b8063b411ee94146109ed578063b8d38c9614610a13578063bff852fa14610a3357610350565b8063a9e954b9116101a0578063a9e954b914610952578063abc86c6e14610986578063ac82c60814610999578063adb7c3f7146109b957610350565b80638da5cb5b146108f45780638df3fdfd14610912578063a55b471c1461093257610350565b80635be93984116102a057806379ba50971161023e57806384292f071161021857806384292f071461086557806386ac03e01461088557806389a87b16146108a55780638a416ea9146108d257610350565b806379ba50971461080e5780637b10399914610823578063806d7e8f1461083857610350565b80636b58960a1161027a5780636b58960a146107565780636d1178e514610776578063715018a6146107e457806375dadb32146107f957610350565b80635be93984146106c35780636175ff00146106e35780636ab221f81461072457610350565b806346d1d21a1161030d5780635001f3b5116102e75780635001f3b51461060857806352d1902d1461063b5780635479d9401461066f57806354fd4d50146106ae57610350565b806346d1d21a1461056257806349492ef1146105ae5780634efef9c0146105db57610350565b8063029db9581461048a5780630306732e146104bd57806303f3813d146104e1578063384ac938146105015780633e088e121461052f578063439fab9114610542575b34801561035c57600080fd5b506000356001600160e01b03191663e0d20f7360e01b14801561037e57503330145b156104365760006103a5602061039436846144ae565b6001600160c01b031916901b610d0b565b600601546001600160a01b03169050806104115760405162461bcd60e51b815260206004820152602260248201527f5769746e6574507269636546656564733a20756e736574746c656420736f6c7660448201526132b960f11b60648201526084015b60405180910390fd5b60405136600082376000803683855af43d806000843e818015610432578184f35b8184fd5b60405162461bcd60e51b815260206004820152602160248201527f5769746e6574507269636546656564733a206e6f7420696d706c656d656e74656044820152601960fa1b6064820152608401610408565b005b34801561049657600080fd5b506104aa6104a53660046144f2565b610d45565b6040519081526020015b60405180910390f35b3480156104c957600080fd5b506104d2610d56565b6040516104b4939291906145b9565b3480156104ed57600080fd5b506104886104fc3660046146f4565b610fb5565b34801561050d57600080fd5b5061052161051c3660046144f2565b6113ab565b6040516104b4929190614778565b6104aa61053d3660046144f2565b61147d565b34801561054e57600080fd5b5061048861055d3660046148d6565b6114b1565b34801561056e57600080fd5b506105967f00000000000000000000000077703ae126b971c9946d562f41dd47071da0077781565b6040516001600160a01b0390911681526020016104b4565b3480156105ba57600080fd5b506105ce6105c93660046144f2565b6118a1565b6040516104b49190614934565b3480156105e757600080fd5b506105fb6105f63660046144f2565b611951565b6040516104b4919061496b565b34801561061457600080fd5b507f0000000000000000000000008280929b7f6adce1cfa15b63cbec1a7fd8caef11610596565b34801561064757600080fd5b506104aa7f688a557b3c9b52d2ba2301577897f3d892372d2d9be386db46c3ca9048c47f0b81565b34801561067b57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000015b60405190151581526020016104b4565b3480156106ba57600080fd5b506105fb611a3a565b3480156106cf57600080fd5b506104aa6106de3660046144f2565b611a6a565b3480156106ef57600080fd5b506107177f000000000000000000000000000000000000000000000000000000000000000481565b6040516104b49190614992565b34801561073057600080fd5b5061074461073f3660046144f2565b611a7f565b60405160ff90911681526020016104b4565b34801561076257600080fd5b5061069e6107713660046149a0565b611a97565b34801561078257600080fd5b5061078b611af2565b6040516104b49190600060a08201905060ff835116825260ff602084015116602083015260408301516001600160401b038082166040850152806060860151166060850152806080860151166080850152505092915050565b3480156107f057600080fd5b50610488611b4c565b34801561080557600080fd5b506105fb611b60565b34801561081a57600080fd5b50610488611b8b565b34801561082f57600080fd5b50610596611b93565b34801561084457600080fd5b506108586108533660046144f2565b611c17565b6040516104b49190614a53565b34801561087157600080fd5b50610488610880366004614b39565b611df8565b34801561089157600080fd5b506104886108a0366004614b84565b6120a6565b3480156108b157600080fd5b506108c56108c03660046144f2565b612311565b6040516104b49190614bc5565b3480156108de57600080fd5b506108e76123f0565b6040516104b49190614c54565b34801561090057600080fd5b506000546001600160a01b0316610596565b34801561091e57600080fd5b506104aa61092d3660046144f2565b6124aa565b34801561093e57600080fd5b5061059661094d366004614c69565b6124bf565b34801561095e57600080fd5b507f0000000000000000000000008280929b7f6adce1cfa15b63cbec1a7fd8caef113f6104aa565b6104aa610994366004614ce6565b612598565b3480156109a557600080fd5b506104886109b4366004614d1c565b612652565b3480156109c557600080fd5b506108e77f68d22dde0000000000000000000000000000000000000000000000000000000081565b3480156109f957600080fd5b506108e7610a083660046148d6565b805160209091012090565b348015610a1f57600080fd5b50610488610a2e366004614d72565b6126c6565b348015610a3f57600080fd5b5060408051808201909152601781527f5769746e65745072696365466565647344656661756c7400000000000000000060208201526105fb565b348015610a8557600080fd5b506104aa610a94366004614d96565b6126e6565b348015610aa557600080fd5b50610ab9610ab43660046144f2565b6127a9565b6040516104b49190614de9565b348015610ad257600080fd5b5061069e610ae1366004614b84565b6129bc565b348015610af257600080fd5b50610b06610b013660046144f2565b612abe565b6040516104b49190614df7565b348015610b1f57600080fd5b506105967f00000000000000000000000003232abe800d1638b30432feef300581de323a4e81565b348015610b5357600080fd5b50600080516020615e6d833981519152546104aa565b348015610b7557600080fd5b50610488612b86565b348015610b8a57600080fd5b50610596612cfe565b348015610b9f57600080fd5b5060045460405161ffff90911681526020016104b4565b348015610bc257600080fd5b506105fb610bd13660046144f2565b612d12565b348015610be257600080fd5b50610bf6610bf13660046144f2565b612dad565b6040516104b49190614e51565b348015610c0f57600080fd5b50610488610c1e3660046149a0565b612dc0565b348015610c2f57600080fd5b50610c43610c3e366004614d96565b612dd4565b604080519384526020840192909252908201526060016104b4565b348015610c6a57600080fd5b50610b06610c793660046144f2565b612e6e565b348015610c8a57600080fd5b50610c9e610c99366004614e5f565b612ed3565b6040516104b49190614e94565b348015610cb757600080fd5b50610488610cc6366004614ee2565b612faa565b348015610cd757600080fd5b50610488610ce63660046146f4565b613051565b348015610cf757600080fd5b50610596610d06366004614c69565b6130b2565b6001600160e01b03191660009081527fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d2016020526040902090565b6000610d5082613141565b92915050565b600080516020615e6d83398151915280546040805160208084028201810190925282815260609384938493830182828015610ddd57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411610d9f5790505b5050505050925082516001600160401b03811115610dfd57610dfd61479c565b604051908082528060200260200182016040528015610e3057816020015b6060815260200190600190039081610e1b5790505b50915082516001600160401b03811115610e4c57610e4c61479c565b604051908082528060200260200182016040528015610e75578160200160208202803683370190505b50905060005b8351811015610faf576000610ea8858381518110610e9b57610e9b614efe565b6020026020010151610d0b565b9050806000018054610eb990614f14565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee590614f14565b8015610f325780601f10610f0757610100808354040283529160200191610f32565b820191906000526020600020905b815481529060010190602001808311610f1557829003601f168201915b5050505050848381518110610f4957610f49614efe565b602090810291909101015260068101546001600160a01b031615610f8357600681015460601b6bffffffffffffffffffffffff1916610f89565b80600501545b838381518110610f9b57610f9b614efe565b602090810291909101015250600101610e7b565b50909192565b610fbd613217565b6001600160a01b03831661101f5760405162461bcd60e51b815260206004820152602360248201527f5769746e6574507269636546656564733a206e6f20736f6c766572206164647260448201526265737360e81b6064820152608401610408565b600061106086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a0892505050565b9050600061106d82610d0b565b9050806002015460000361113d5780611087878983614f98565b506110928787613244565b60018201805460ff191660ff92909216919091179055600080516020615e4d8339815191526001908101546110c69161506d565b60028201556006810180546001600160a01b0319166001600160a01b038716179055600080516020615e4d8339815191526001908101805491820181556000908152602090206008820401805463ffffffff60079093166004026101000a928302191660e085901c92909202919091179055611179565b60068101546001600160a01b0386811691161461117957600060058201556006810180546001600160a01b0319166001600160a01b0387161790555b600080866001600160a01b031663e6f8715860e01b8588886040516024016111a3939291906150ee565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516111e1919061516a565b600060405180830381855af49150503d806000811461121c576040519150601f19603f3d011682016040523d82523d6000602084013e611221565b606091505b50915091508161127b576004810190508080602001905181019061124591906151de565b6040516020016112559190615212565b60408051601f198184030181529082905262461bcd60e51b82526104089160040161496b565b5050600080306001600160a01b031663e0d20f7360e01b856040516024016112a39190614c54565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516112e1919061516a565b600060405180830381855afa9150503d806000811461131c576040519150601f19603f3d011682016040523d82523d6000602084013e611321565b606091505b509150915081611355576004810190508080602001905181019061134591906151de565b6040516020016112559190615275565b5050604080516001600160e01b0319841681526001600160a01b03871660208201527f850802cc670161a9f185e45414c2fe7efb5e71b23a8e32a53caffb7dd000aca3910160405180910390a150505050505050565b600060606113b883610d0b565b600601546001600160a01b0316915060006113d28461332a565b905080516001600160401b038111156113ed576113ed61479c565b60405190808252806020026020018201604052801561142057816020015b606081526020019060019003908161140b5790505b50915060005b81518110156114765761145182828151811061144457611444614efe565b6020026020010151612d12565b83828151811061146357611463614efe565b6020908102919091010152600101611426565b5050915091565b6040805180820190915260035460ff8116825261010090046001600160401b03166020820152600090610d50908390613414565b6000546001600160a01b03168061152a57818060200190518101906114d691906152c8565b90506114e18161394f565b60408051808201909152600a808252630bebc2006020909201919091526003805468ffffffffffffffffff1916640bebc2000a1790556004805461ffff19169091179055611582565b336001600160a01b038216146115825760405162461bcd60e51b815260206004820152601f60248201527f5769746e6574507269636546656564733a206e6f7420746865206f776e6572006044820152606401610408565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe54158015906115f357507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe547f0000000000000000000000008280929b7f6adce1cfa15b63cbec1a7fd8caef113f145b1561164b5760405162461bcd60e51b815260206004820152602260248201527f5769746e6574507269636546656564733a20616c726561647920757067726164604482015261195960f21b6064820152608401610408565b7f0000000000000000000000008280929b7f6adce1cfa15b63cbec1a7fd8caef113f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe557f00000000000000000000000077703ae126b971c9946d562f41dd47071da007776001600160a01b03163b6117125760405162461bcd60e51b815260206004820152602360248201527f5769746e6574507269636546656564733a20696e6578697374656e74206f7261604482015262636c6560e81b6064820152608401610408565b63baeca88b60e01b6001600160e01b0319167f00000000000000000000000077703ae126b971c9946d562f41dd47071da007776001600160a01b031663adb7c3f76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611782573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a691906152e5565b6001600160e01b031916146118095760405162461bcd60e51b8152602060048201526024808201527f5769746e6574507269636546656564733a20756e636f6d706c69616e74206f7260448201526361636c6560e01b6064820152608401610408565b7f0000000000000000000000008280929b7f6adce1cfa15b63cbec1a7fd8caef113f7f0000000000000000000000008280929b7f6adce1cfa15b63cbec1a7fd8caef116001600160a01b0316826001600160a01b03167fe73e754121f0bad1327816970101955bfffdf53d270ac509d777c25be070d7f6611888611a3a565b604051611895919061496b565b60405180910390a45050565b6040805180820190915260008152606060208201527f00000000000000000000000077703ae126b971c9946d562f41dd47071da007776001600160a01b031663a77fc1a46118ee84611a6a565b6040518263ffffffff1660e01b815260040161190c91815260200190565b600060405180830381865afa158015611929573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d509190810190615302565b6060600061195e83610d0b565b60058101549091506000036119b55760405162461bcd60e51b815260206004820152601d60248201527f5769746e6574507269636546656564733a206e6f2052414420686173680000006044820152606401610408565b6119bd611b93565b6001600160a01b0316632ebf5d5c82600501546040518263ffffffff1660e01b81526004016119ee91815260200190565b600060405180830381865afa158015611a0b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a3391908101906151de565b9392505050565b6060611a657f322e302e31342d34386336646436000000000000000000000000000000000000613968565b905090565b6000611a7582610d0b565b6004015492915050565b6000611a8a82610d0b565b6001015460ff1692915050565b600080611aac6000546001600160a01b031690565b90507f00000000000000000000000000000000000000000000000000000000000000018015611a335750826001600160a01b0316816001600160a01b0316149392505050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526040805180820190915260035460ff8116825261010090046001600160401b03166020820152611a6590613a0c565b611b54613217565b611b5e600061394f565b565b6060611a657f50726963652d0000000000000000000000000000000000000000000000000000613ab3565b611b5e613b57565b60007f00000000000000000000000077703ae126b971c9946d562f41dd47071da007776001600160a01b0316637b1039996040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6591906152c8565b60606000611c23611b93565b6001600160a01b031663a83e942c611c3a856124aa565b6040518263ffffffff1660e01b8152600401611c5891815260200190565b600060405180830381865afa158015611c75573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c9d91908101906153ac565b905080516001600160401b03811115611cb857611cb861479c565b604051908082528060200260200182016040528015611d2a57816020015b611d176040805160e0810190915260008082526020820190815260200160008152602001606081526020016060815260200160608152602001606081525090565b815260200190600190039081611cd65790505b50915060005b8251811015611df157611d41611b93565b6001600160a01b0316639dd48757838381518110611d6157611d61614efe565b60200260200101516040518263ffffffff1660e01b8152600401611d8791815260200190565b600060405180830381865afa158015611da4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dcc9190810190615577565b838281518110611dde57611dde614efe565b6020908102919091010152600101611d30565b5050919050565b611e00613217565b7f00000000000000000000000000000000000000000000000000000000000000046013811115611e3257611e3261491e565b611e3a611b93565b6001600160a01b0316634c729104836040518263ffffffff1660e01b8152600401611e6791815260200190565b602060405180830381865afa158015611e84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea89190615682565b6013811115611eb957611eb961491e565b14611f155760405162461bcd60e51b815260206004820152602660248201527f5769746e6574507269636546656564733a2062616420726573756c742064617460448201526561207479706560d01b6064820152608401610408565b6000611f5684848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a0892505050565b90506000611f6382610d0b565b905080600201546000036120375780611f7d858783614f98565b50611f888585613244565b60018201805460ff191660ff92909216919091179055600080516020615e4d833981519152600190810154611fbc9161506d565b600282015560058101839055600080516020615e6d83398151915280546001810182556000919091527fb7ef506da7909f25321b247725840c95fced7275a59588a4236c0671ab1d82216008820401805463ffffffff60079093166004026101000a928302191660e085901c9290920291909117905561205c565b8281600501541461205c57600581018390556006810180546001600160a01b03191690555b604080516001600160e01b031984168152602081018590527f37206f9df7db3fe5c4edfea9c5ce9ea406912fc4133f5c67200273da0c09e7b1910160405180910390a15050505050565b6120ae613217565b60006120ef83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a0892505050565b9050600080516020615e6d833981519152600061210b83610d0b565b600281015490915060008190036121645760405162461bcd60e51b815260206004820152601e60248201527f5769746e6574507269636546656564733a20756e6b6e6f776e206665656400006044820152606401610408565b825460009084906121779060019061569d565b8154811061218757612187614efe565b6000918252602090912060088204015460079091166004026101000a900460e01b905080846121b760018561569d565b815481106121c7576121c7614efe565b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555083805480612207576122076156b0565b600082815260209020600860001990920191820401805463ffffffff600460078516026101000a021916905590558161223f82610d0b565b600201556001600160e01b0319851660009081527fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d201602052604081209061228682826143fb565b5060018101805460ff191690556000600282018190556003820181905560048201819055600582018190556006820180546001600160a01b031916905560078201819055600890910155506040517f5296cc0e8dad8eeece6ce7d0928746294283b850d6261e03e7028a84de61f0b690612301908690614c54565b60405180910390a1505050505050565b6123556040805160c081018252600080825260208083018290528284018290526060808401526080830182905283518085019094528184528301529060a082015290565b7f00000000000000000000000077703ae126b971c9946d562f41dd47071da007776001600160a01b0316630aa4112a61238d84611a6a565b6040518263ffffffff1660e01b81526004016123ab91815260200190565b600060405180830381865afa1580156123c8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d509190810190615750565b600080516020615e6d83398151915254600090156124a757612457600080516020615e4d83398151915260010160008154811061242f5761242f614efe565b90600052602060002090600891828204019190066004029054906101000a900460e01b613bd2565b905060015b600080516020615e6d833981519152548110156124a557612499600080516020615e4d833981519152600101828154811061242f5761242f614efe565b9091189060010161245c565b505b90565b60006124b582610d0b565b6005015492915050565b60006124c9613217565b604051632956d1c760e21b815273579b4ad5e67e5b491a33a033a02a70769d7af8379063a55b471c90612506908890889088908890600401615811565b602060405180830381865af4158015612523573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061254791906152c8565b90507f3c07c0cbdabca8310d65b09f79c58655b46c3035d57c452177e3d49972ff5cec81826001600160a01b03163f85856040516125889493929190615838565b60405180910390a1949350505050565b6040805180820190915260035460ff8116825261010090046001600160401b031660208201526000906125e4906125d436859003850185615860565b9051905160ff9182169116101590565b61263a5760405162461bcd60e51b815260206004820152602160248201527f5769746e6574507269636546656564733a20756e7365637572652075706461746044820152606560f81b6064820152608401610408565b611a338361264d36859003850185615860565b613414565b61265a613217565b6126c18383836001600160a01b0316631eef90526040518163ffffffff1660e01b8152600401602060405180830381865afa15801561269d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088091906158a5565b505050565b6126ce613217565b6004805461ffff191661ffff92909216919091179055565b6004546000906064906126fd9061ffff16826158be565b604051630f7b104360e31b8152600481018590526020602482015261ffff91909116906001600160a01b037f00000000000000000000000077703ae126b971c9946d562f41dd47071da007771690637bd8821890604401602060405180830381865afa158015612771573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279591906158a5565b61279f91906158d9565b610d509190615906565b6127d16040805160808101825260008082526020820181905291810182905290606082015290565b60006127dc83613141565b9050801561285a5760006127ef84612e6e565b905060006128008260800151613c61565b9050604051806080016040528061281683613c7f565b8152602001836040015163ffffffff1681526020018360600151815260200161283e87612dad565b600581111561284f5761284f61491e565b905295945050505050565b600061286584610d0b565b600601546001600160a01b03169050801561297057600080306001600160a01b031663e0d20f7360e01b876040516024016128a09190614c54565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516128de919061516a565b600060405180830381855afa9150503d8060008114612919576040519150601f19603f3d011682016040523d82523d6000602084013e61291e565b606091505b509150915081612952576004810190508080602001905181019061294291906151de565b604051602001611255919061591a565b808060200190518101906129669190615963565b9695505050505050565b604051806080016040528060008152602001600081526020016000801b815260200161299b86612dad565b60058111156129ac576129ac61491e565b9052949350505050565b50919050565b6000806129fe84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a0892505050565b90506001600160e01b03198116612aab612a1783610d0b565b8054612a2290614f14565b80601f0160208091040260200160405190810160405280929190818152602001828054612a4e90614f14565b8015612a9b5780601f10612a7057610100808354040283529160200191612a9b565b820191906000526020600020905b815481529060010190602001808311612a7e57829003601f168201915b5050505050805160209091012090565b6001600160e01b03191614949350505050565b6040805160a08101825260008082526020820181905291810182905260608082019290925260808101919091527f00000000000000000000000077703ae126b971c9946d562f41dd47071da007776001600160a01b031663f61921b2612b2384611a6a565b6040518263ffffffff1660e01b8152600401612b4191815260200190565b600060405180830381865afa158015612b5e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d5091908101906159cc565b612b8e613217565b600080516020615e6d83398151915280545b8015612cfa57600082612bb460018461569d565b81548110612bc457612bc4614efe565b90600052602060002090600891828204019190066004029054906101000a900460e01b9050612bfe600080516020615e4d83398151915290565b6001600160e01b0319821660009081526002919091016020526040812090612c2682826143fb565b5060018101805460ff191690556000600282018190556003820181905560048201819055600582018190556006820180546001600160a01b0319169055600782018190556008909101558254839080612c8157612c816156b0565b600082815260209020600860001990920191820401805463ffffffff600460078516026101000a021916905590556040517f5296cc0e8dad8eeece6ce7d0928746294283b850d6261e03e7028a84de61f0b690612cdf908390614c54565b60405180910390a15080612cf281615a88565b915050612ba0565b5050565b6000611a656001546001600160a01b031690565b6060612d1d82610d0b565b8054612d2890614f14565b80601f0160208091040260200160405190810160405280929190818152602001828054612d5490614f14565b8015612da15780601f10612d7657610100808354040283529160200191612da1565b820191906000526020600020905b815481529060010190602001808311612d8457829003601f168201915b50505050509050919050565b6000610d50612dbb83611a6a565b613cfb565b612dc8613217565b612dd181613d94565b50565b600080600080612de3856127a9565b8051602082015191925090600283606001516005811115612e0657612e0661491e565b14612e5857600183606001516005811115612e2357612e2361491e565b1480612e445750600483606001516005811115612e4257612e4261491e565b145b612e5057610190612e5b565b610194612e5b565b60c85b919550935061ffff169150509193909250565b6040805160a08101825260008082526020820181905291810182905260608082019290925260808101919091527f00000000000000000000000077703ae126b971c9946d562f41dd47071da007776001600160a01b031663f61921b2612b2384613141565b6060816001600160401b03811115612eed57612eed61479c565b604051908082528060200260200182016040528015612f4657816020015b612f336040805160808101825260008082526020820181905291810182905290606082015290565b815260200190600190039081612f0b5790505b50905060005b82811015612fa357612f7e848483818110612f6957612f69614efe565b9050602002016020810190610ab491906144f2565b828281518110612f9057612f90614efe565b6020908102919091010152600101612f4c565b5092915050565b612fb2613217565b612fbb81613dc6565b6130075760405162461bcd60e51b815260206004820152601d60248201527f5769746e6574507269636546656564733a20696e76616c696420534c410000006044820152606401610408565b8060036130148282615a9f565b9050507f084efe053ac15af09a2db38bb176035f1d94cbc8a775c7761e662f7f11ae6940816040516130469190615af1565b60405180910390a150565b613059613217565b6130ab8585856001600160a01b031663bf7a0bd386866040518363ffffffff1660e01b815260040161308c929190615b7d565b6020604051808303816000875af115801561269d573d6000803e3d6000fd5b5050505050565b6040516001628a76f160e01b0319815260009073579b4ad5e67e5b491a33a033a02a70769d7af8379063ff75890f906130f5908890889088908890600401615811565b602060405180830381865af4158015613112573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313691906152c8565b90505b949350505050565b60008061314d83611a6a565b90506000811180156131f85750600260405163234fe6e360e01b8152600481018390527f00000000000000000000000077703ae126b971c9946d562f41dd47071da007776001600160a01b03169063234fe6e390602401602060405180830381865afa1580156131c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e59190615c0d565b60058111156131f6576131f661491e565b145b156132035792915050565b61320c83610d0b565b600301549392505050565b6000546001600160a01b03163314611b5e5760405163118cdaa760e01b8152336004820152602401610408565b60405163e78d44d960e01b815260009073579b4ad5e67e5b491a33a033a02a70769d7af8379063e78d44d9906132a2907f50726963652d00000000000000000000000000000000000000000000000000009087908790600401615c28565b602060405180830381865af49250505080156132db575060408051601f3d908101601f191682019092526132d891810190615c42565b60015b613323576132e7615c5f565b806308c379a00361331757506132fb615c7a565b806133065750613319565b80604051602001611255919061591a565b505b3d6000803e3d6000fd5b9050610d50565b6001600160e01b0319811660009081527fe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d201602090815260409182902060089081015483518281526101208101909452606093909290919082016101008036833701905050915060005b600881101561340c57818382815181106133af576133af614efe565b60200260200101906001600160e01b03191690816001600160e01b031916815250508281815181106133e3576133e3614efe565b60209081029190910101516001600160e01b0319161561340c57602082901b9150600101613393565b825250919050565b60008061342084610d0b565b600581015490915015613895576134363a6126e6565b9150813410156134965760405162461bcd60e51b815260206004820152602560248201527f5769746e6574507269636546656564733a20696e73756666696369656e742072604482015264195dd85c9960da1b6064820152608401610408565b600481015460006134a682613cfb565b905060018160058111156134bc576134bc61491e565b0361364f57604051630552089560e11b8152600481018390526000907f00000000000000000000000077703ae126b971c9946d562f41dd47071da007776001600160a01b031690630aa4112a90602401600060405180830381865afa158015613529573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135519190810190615750565b9050600085826040015160080b6135689190615d03565b90506000811315613643578095507f00000000000000000000000077703ae126b971c9946d562f41dd47071da007776001600160a01b031663ec5946db87866040518363ffffffff1660e01b81526004016135c591815260200190565b6000604051808303818588803b1580156135de57600080fd5b505af11580156135f2573d6000803e3d6000fd5b505060408051888152602081018b90526001600160e01b03198d1694503293507fc75bbe35e1d3486439c776ccf0fb47aede3d28e1bf548e01357b57132974cd9692500160405180910390a3613648565b600095505b505061388e565b60028160058111156136635761366361491e565b036137155760038301541561370957600383015460405163045bf42f60e11b815260048101919091527f00000000000000000000000077703ae126b971c9946d562f41dd47071da007776001600160a01b0316906308b7e85e906024016000604051808303816000875af11580156136df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261370791908101906159cc565b505b600383018290556137a4565b60405163045bf42f60e11b8152600481018390527f00000000000000000000000077703ae126b971c9946d562f41dd47071da007776001600160a01b0316906308b7e85e906024016000604051808303816000875af192505050801561379d57506040513d6000823e601f3d908101601f1916820160405261379a91908101906159cc565b60015b156137a457505b6005830154604051631ee15bd160e11b81526001600160a01b037f00000000000000000000000077703ae126b971c9946d562f41dd47071da007771691633dc2b7a29187916137f7918a90600401615d23565b60206040518083038185885af1158015613815573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061383a91906158a5565b600484018190556040519092506001600160e01b031987169032907e9bd781be3a9c4660642983aa92bc7a7484c4b0cb0c2afa0f9174c74061d5039061388590869089908b90615d4d565b60405180910390a35b5050613909565b60068101546001600160a01b0316156138c1576138ba6138b48561332a565b84613e53565b9150613909565b60405162461bcd60e51b815260206004820152601e60248201527f5769746e6574507269636546656564733a20756e6b6e6f776e206665656400006044820152606401610408565b34821015612fa357336108fc61391f843461569d565b6040518115909202916000818181858888f19350505050158015613947573d6000803e3d6000fd5b505092915050565b600180546001600160a01b0319169055612dd181613f10565b6060600061397583613f60565b6001600160401b0381111561398c5761398c61479c565b6040519080825280601f01601f1916602001820160405280156139b6576020820181803683370190505b50905060005b8151811015612fa3578381602081106139d7576139d7614efe565b1a60f81b8282815181106139ed576139ed614efe565b60200101906001600160f81b031916908160001a9053506001016139bc565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526040518060a00160405280836000015160ff168152602001603360ff16815260200183602001516001600160401b0316815260200183602001516064613a7d9190615d7c565b6001600160401b03168152602001836000015160ff168460200151613aa29190615d9f565b6001600160401b0316905292915050565b60606000613ac083613f99565b6001600160401b03811115613ad757613ad761479c565b6040519080825280601f01601f191660200182016040528015613b01576020820181803683370190505b50905060005b8151811015612fa357838160208110613b2257613b22614efe565b1a60f81b828281518110613b3857613b38614efe565b60200101906001600160f81b031916908160001a905350600101613b07565b3380613b61612cfe565b6001600160a01b031614613bc95760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610408565b612dd18161394f565b600080613bde83610d0b565b6005015414613c2e5781613bf183610d0b565b60050154604080516001600160e01b031990931660208401528201526060015b604051602081830303815290604052805190602001209050919050565b81613c3883610d0b565b60080154604080516001600160e01b03199093166020840152820152606001613c11565b919050565b613c6961443a565b6000613c7483613fd2565b9050611a3381613ff7565b6000818060000151613cee5760405162461bcd60e51b815260206004820152603260248201527f5769746e65743a20747269656420746f206465636f64652076616c756520667260448201527137b69032b93937b932b2103932b9bab63a1760711b6064820152608401610408565b611a33836020015161402b565b60008115613d8c5760405163234fe6e360e01b8152600481018390527f00000000000000000000000077703ae126b971c9946d562f41dd47071da007776001600160a01b03169063234fe6e390602401602060405180830381865afa158015613d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d509190615c0d565b506002919050565b613d9c613217565b6001600160a01b038116613bc957604051631e4fbdf760e01b815260006004820152602401610408565b600080613dd96040840160208501615dc5565b6001600160401b0316118015613dfe57506000613df96020840184615de2565b60ff16115b8015613e1a5750607f613e146020840184615de2565b60ff1611155b8015610d5057506404a817c800613e376040840160208501615dc5565b613e42906064615d7c565b6001600160401b0316101592915050565b600080835134613e639190615906565b905060005b845181101561394757306001600160a01b031663abc86c6e83878481518110613e9357613e93614efe565b6020026020010151876040518463ffffffff1660e01b8152600401613eb9929190615dff565b60206040518083038185885af1158015613ed7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613efc91906158a5565b613f06908461506d565b9250600101613e68565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b6020811015613c5c57818160208110613f7e57613f7e614efe565b1a60f81b6001600160f81b03191615613c5c57600101613f63565b60005b6020811015613c5c57818160208110613fb757613fb7614efe565b1a60f81b6001600160f81b03191615613c5c57600101613f9c565b613fda614452565b6040805180820190915282815260006020820152611a338161408e565b613fff61443a565b5060a0810151604080518082019091526001600160401b03909116602714158152602081019190915290565b60008160008060ff16826040015160ff161461406b57604080830151905161800560e51b815260ff91821660048201529082166024820152604401610408565b61407d846000015185606001516141ae565b6001600160401b0316949350505050565b614096614452565b81515182906000036140bb576040516309036d4760e21b815260040160405180910390fd5b600060ff816001600160401b038160015b801561413e576140db8961426f565b9550816140e781615e33565b6007600589901c169650601f8816955092505060051985016141365760208901516141128a866141ae565b9350808a60200151614124919061569d565b61412e908461506d565b9250506140cc565b5060006140cc565b600760ff861611156141685760405163bd2ac87960e01b815260ff86166004820152602401610408565b506040805160c08101825298895260ff95861660208a015293851693880193909352921660608601526001600160401b0390811660808601521660a08401525090919050565b600060188260ff1610156141c6575060ff8116610d50565b8160ff166018036141e4576141da8361426f565b60ff169050610d50565b8160ff16601903614203576141f8836142d1565b61ffff169050610d50565b8160ff16601a03614224576142178361433d565b63ffffffff169050610d50565b8160ff16601b03614238576133238361439c565b8160ff16601f0361425157506001600160401b03610d50565b604051636d785b1360e01b815260ff83166004820152602401610408565b60008160200151826000015151808211156142a7576040516363a056dd60e01b81526004810183905260248101829052604401610408565b83516020850180518083016001015195509081906142c482615e33565b8152505050505050919050565b6000816020015160026142e4919061506d565b82515180821115614312576040516363a056dd60e01b81526004810183905260248101829052604401610408565b8351602085018051600281840181015196509091614330828461506d565b9052509395945050505050565b600081602001516004614350919061506d565b8251518082111561437e576040516363a056dd60e01b81526004810183905260248101829052604401610408565b8351602085018051600481840181015196509091614330828461506d565b6000816020015160086143af919061506d565b825151808211156143dd576040516363a056dd60e01b81526004810183905260248101829052604401610408565b8351602085018051600881840181015196509091614330828461506d565b50805461440790614f14565b6000825580601f10614417575050565b601f016020900490600052602060002090810190612dd19190614499565b905290565b60405180604001604052806000151581526020016144355b604080516101008101909152606060c08201908152600060e08301528190815260006020820181905260408201819052606082018190526080820181905260a09091015290565b5b808211156124a5576000815560010161449a565b6001600160c01b031981358181169160088510156139475760089490940360031b84901b1690921692915050565b6001600160e01b031981168114612dd157600080fd5b60006020828403121561450457600080fd5b8135611a33816144dc565b60005b8381101561452a578181015183820152602001614512565b50506000910152565b6000815180845261454b81602086016020860161450f565b601f01601f19169290920160200192915050565b60008282518085526020808601955060208260051b8401016020860160005b848110156145ac57601f1986840301895261459a838351614533565b9884019892509083019060010161457e565b5090979650505050505050565b606080825284519082018190526000906020906080840190828801845b828110156145fc5781516001600160e01b031916845292840192908401906001016145d6565b50505083810382850152614610818761455f565b8481036040860152855180825283870192509083019060005b8181101561464557835183529284019291840191600101614629565b509098975050505050505050565b60008083601f84011261466557600080fd5b5081356001600160401b0381111561467c57600080fd5b60208301915083602082850101111561469457600080fd5b9250929050565b6001600160a01b0381168114612dd157600080fd5b60008083601f8401126146c257600080fd5b5081356001600160401b038111156146d957600080fd5b6020830191508360208260051b850101111561469457600080fd5b60008060008060006060868803121561470c57600080fd5b85356001600160401b038082111561472357600080fd5b61472f89838a01614653565b9097509550602088013591506147448261469b565b9093506040870135908082111561475a57600080fd5b50614767888289016146b0565b969995985093965092949392505050565b6001600160a01b03831681526040602082018190526000906131399083018461455f565b634e487b7160e01b600052604160045260246000fd5b604081018181106001600160401b03821117156147d1576147d161479c565b60405250565b60c081018181106001600160401b03821117156147d1576147d161479c565b60a081018181106001600160401b03821117156147d1576147d161479c565b601f8201601f191681016001600160401b038111828210171561483a5761483a61479c565b6040525050565b60405160e081016001600160401b03811182821017156148635761486361479c565b60405290565b60006001600160401b038211156148825761488261479c565b50601f01601f191660200190565b600061489b83614869565b6040516148a88282614815565b8092508481528585850111156148bd57600080fd5b8484602083013760006020868301015250509392505050565b6000602082840312156148e857600080fd5b81356001600160401b038111156148fe57600080fd5b8201601f8101841361490f57600080fd5b61313984823560208401614890565b634e487b7160e01b600052602160045260246000fd5b602081526000825160ff811061494c5761494c61491e565b8060208401525060208301516040808401526131396060840182614533565b602081526000611a336020830184614533565b6014811061498e5761498e61491e565b9052565b60208101610d50828461497e565b6000602082840312156149b257600080fd5b8135611a338161469b565b6005811061498e5761498e61491e565b600082825180855260208086019550808260051b8401018186016000805b85811015614a4557868403601f19018a5282518460408101845b6002811015614a30578782038352614a1e828551614533565b93890193928901929150600101614a05565b509b87019b95505050918401916001016149eb565b509198975050505050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561464557603f19898403018552815160e060ff825116855288820151614aa88a8701826149bd565b5087820151614ab98987018261497e565b506060808301518282880152614ad183880182614533565b9250505060808083015186830382880152614aec8382614533565b9250505060a08083015186830382880152614b0783826149cd565b9250505060c08083015192508582038187015250614b258183614533565b968901969450505090860190600101614a7c565b600080600060408486031215614b4e57600080fd5b83356001600160401b03811115614b6457600080fd5b614b7086828701614653565b909790965060209590950135949350505050565b60008060208385031215614b9757600080fd5b82356001600160401b03811115614bad57600080fd5b614bb985828601614653565b90969095509350505050565b6020815260018060a01b03825116602082015262ffffff602083015116604082015268ffffffffffffffffff60408301511660608201526000606083015160e06080840152614c18610100840182614533565b9050608084015160a084015260a0840151614c4c60c0850182805160ff1682526020908101516001600160401b0316910152565b509392505050565b6001600160e01b031991909116815260200190565b60008060008060408587031215614c7f57600080fd5b84356001600160401b0380821115614c9657600080fd5b614ca288838901614653565b90965094506020870135915080821115614cbb57600080fd5b50614cc887828801614653565b95989497509550505050565b6000604082840312156129b657600080fd5b60008060608385031215614cf957600080fd5b8235614d04816144dc565b9150614d138460208501614cd4565b90509250929050565b600080600060408486031215614d3157600080fd5b83356001600160401b03811115614d4757600080fd5b614d5386828701614653565b9094509250506020840135614d678161469b565b809150509250925092565b600060208284031215614d8457600080fd5b813561ffff81168114611a3357600080fd5b600060208284031215614da857600080fd5b5035919050565b6006811061498e5761498e61491e565b80518252602081015160208301526040810151604083015260608101516126c16060840182614daf565b60808101610d508284614dbf565b6020815260018060a01b0382511660208201526001600160401b03602083015116604082015263ffffffff6040830151166060820152606082015160808201526000608083015160a08084015261313960c0840182614533565b60208101610d508284614daf565b60008060208385031215614e7257600080fd5b82356001600160401b03811115614e8857600080fd5b614bb9858286016146b0565b6020808252825182820181905260009190848201906040850190845b81811015614ed657614ec3838551614dbf565b9284019260809290920191600101614eb0565b50909695505050505050565b600060408284031215614ef457600080fd5b611a338383614cd4565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680614f2857607f821691505b6020821081036129b657634e487b7160e01b600052602260045260246000fd5b601f8211156126c1576000816000526020600020601f850160051c81016020861015614f715750805b601f850160051c820191505b81811015614f9057828155600101614f7d565b505050505050565b6001600160401b03831115614faf57614faf61479c565b614fc383614fbd8354614f14565b83614f48565b6000601f841160018114614ff75760008515614fdf5750838201355b600019600387901b1c1916600186901b1783556130ab565b600083815260209020601f19861690835b828110156150285786850135825560209485019460019092019101615008565b50868210156150455760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d5057610d50615057565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e198436030181126150c057600080fd5b83016020810192503590506001600160401b038111156150df57600080fd5b80360382131561469457600080fd5b60006040820163ffffffff60e01b861683526020604060208501528185835260608501905060608660051b86010192508660005b8781101561515c57868503605f1901835261513d828a6150a9565b615148878284615080565b965050509183019190830190600101615122565b509298975050505050505050565b6000825161517c81846020870161450f565b9190910192915050565b600082601f83011261519757600080fd5b81516151a281614869565b6040516151af8282614815565b8281528560208487010111156151c457600080fd5b6151d583602083016020880161450f565b95945050505050565b6000602082840312156151f057600080fd5b81516001600160401b0381111561520657600080fd5b61313984828501615186565b7f5769746e657450726963654665656455706772616461626c653a20736f6c7665815274039103b30b634b230ba34b7b7103330b4b632b21d1605d1b60208201526000825161526881603585016020870161450f565b9190910160350192915050565b7f5769746e6574507269636546656564733a20736d6f6b652d746573742066616981526403632b21d160dd1b6020820152600082516152bb81602585016020870161450f565b9190910160250192915050565b6000602082840312156152da57600080fd5b8151611a338161469b565b6000602082840312156152f757600080fd5b8151611a33816144dc565b60006020828403121561531457600080fd5b81516001600160401b038082111561532b57600080fd5b908301906040828603121561533f57600080fd5b60405161534b816147b2565b825160ff811061535a57600080fd5b815260208301518281111561536e57600080fd5b61537a87828601615186565b60208301525095945050505050565b60006001600160401b038211156153a2576153a261479c565b5060051b60200190565b600060208083850312156153bf57600080fd5b82516001600160401b038111156153d557600080fd5b8301601f810185136153e657600080fd5b80516153f181615389565b6040516153fe8282614815565b82815260059290921b830184019184810191508783111561541e57600080fd5b928401925b8284101561543c57835182529284019290840190615423565b979650505050505050565b60ff81168114612dd157600080fd5b8051613c5c81615447565b805160058110613c5c57600080fd5b805160148110613c5c57600080fd5b600082601f83011261549057600080fd5b8151602061549d82615389565b6040516154aa8282614815565b83815260059390931b85018201928281019150868411156154ca57600080fd5b8286015b8481101561556c5780516001600160401b03808211156154ee5760008081fd5b818901915089603f8301126155035760008081fd5b60405161550f816147b2565b80606084018c8111156155225760008081fd5b8885015b8181101561555a5780518581111561553e5760008081fd5b61554c8f8c838a0101615186565b845250918901918901615526565b505050855250509183019183016154ce565b509695505050505050565b60006020828403121561558957600080fd5b81516001600160401b03808211156155a057600080fd5b9083019060e082860312156155b457600080fd5b6155bc614841565b6155c583615456565b81526155d360208401615461565b60208201526155e460408401615470565b60408201526060830151828111156155fb57600080fd5b61560787828601615186565b60608301525060808301518281111561561f57600080fd5b61562b87828601615186565b60808301525060a08301518281111561564357600080fd5b61564f8782860161547f565b60a08301525060c08301518281111561566757600080fd5b61567387828601615186565b60c08301525095945050505050565b60006020828403121561569457600080fd5b611a3382615470565b81810381811115610d5057610d50615057565b634e487b7160e01b600052603160045260246000fd5b805162ffffff81168114613c5c57600080fd5b805168ffffffffffffffffff81168114613c5c57600080fd5b6001600160401b0381168114612dd157600080fd5b60006040828403121561571957600080fd5b604051615725816147b2565b809150825161573381615447565b81526020830151615743816156f2565b6020919091015292915050565b60006020828403121561576257600080fd5b81516001600160401b038082111561577957600080fd5b9083019060e0828603121561578d57600080fd5b604051615799816147d7565b82516157a48161469b565b81526157b2602084016156c6565b60208201526157c3604084016156d9565b60408201526060830151828111156157da57600080fd5b6157e687828601615186565b606083015250608083015160808201526158038660a08501615707565b60a082015295945050505050565b604081526000615825604083018688615080565b828103602084015261543c818587615080565b60018060a01b0385168152836020820152606060408201526000612966606083018486615080565b60006040828403121561587257600080fd5b60405161587e816147b2565b823561588981615447565b81526020830135615899816156f2565b60208201529392505050565b6000602082840312156158b757600080fd5b5051919050565b61ffff818116838216019080821115612fa357612fa3615057565b8082028115828204841417610d5057610d50615057565b634e487b7160e01b600052601260045260246000fd5b600082615915576159156158f0565b500490565b7102bb4ba3732ba283934b1b2a332b2b2399d160751b81526000825161594781601285016020870161450f565b9190910160120192915050565b805160068110613c5c57600080fd5b60006080828403121561597557600080fd5b604051608081018181106001600160401b03821117156159975761599761479c565b80604052508251815260208301516020820152604083015160408201526159c060608401615954565b60608201529392505050565b6000602082840312156159de57600080fd5b81516001600160401b03808211156159f557600080fd5b9083019060a08286031215615a0957600080fd5b604051615a15816147f6565b8251615a208161469b565b81526020830151615a30816156f2565b6020820152604083015163ffffffff81168114615a4c57600080fd5b604082015260608381015190820152608083015182811115615a6d57600080fd5b615a7987828601615186565b60808301525095945050505050565b600081615a9757615a97615057565b506000190190565b8135615aaa81615447565b60ff8116905081548160ff1982161783556020840135615ac9816156f2565b68ffffffffffffffff008160081b168368ffffffffffffffffff198416171784555050505050565b604081018235615b0081615447565b60ff1682526020830135615b13816156f2565b6001600160401b03811660208401525092915050565b6000838385526020808601955060208560051b8301018460005b878110156145ac57848303601f19018952615b5e82886150a9565b615b69858284615080565b9a86019a9450505090830190600101615b43565b6020808252818101839052600090600560408085019086831b86010187855b8881101561464557878303603f190184528135368b9003601e19018112615bc257600080fd5b8a0186810190356001600160401b03811115615bdd57600080fd5b80871b3603821315615bee57600080fd5b615bf9858284615b29565b958801959450505090850190600101615b9c565b600060208284031215615c1f57600080fd5b611a3382615954565b838152604060208201526000613136604083018486615080565b600060208284031215615c5457600080fd5b8151611a3381615447565b600060033d11156124a75760046000803e5060005160e01c90565b600060443d1015615c885790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715615cb757505050505090565b8285019150815181811115615ccf5750505050505090565b843d8701016020828501011115615ce95750505050505090565b615cf860208286010187614815565b509095945050505050565b8181036000831280158383131683831282161715612fa357612fa3615057565b82815260608101611a336020830184805160ff1682526020908101516001600160401b0316910152565b8381526020808201849052825160ff1660408301528201516001600160401b0316606082015260808101613139565b6001600160401b0381811683821602808216919082811461394757613947615057565b60006001600160401b0380841680615db957615db96158f0565b92169190910492915050565b600060208284031215615dd757600080fd5b8135611a33816156f2565b600060208284031215615df457600080fd5b8135611a3381615447565b6001600160e01b03198316815260608101611a336020830184805160ff1682526020908101516001600160401b0316910152565b600060018201615e4557615e45615057565b506001019056fee36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d1ffe36ea87c48340f2c23c9e1c9f72f5c5165184e75683a4d2a19148e5964c1d200a26469706673582212200323fb8b972d3201c0ca285eb7b2dff0273fc4ebf93ab2c4f7a0b21304a964f964736f6c63430008190033