0x6080604052600436106101c15760003560e01c8063715018a6116100f7578063b9912e0811610095578063e5975bdc11610064578063e5975bdc14610508578063ef78d4fd14610528578063f2fde38b1461053e578063fcce0ad41461055e57600080fd5b8063b9912e0814610486578063ba62fbe4146104a6578063c78b7795146104c8578063d6a15240146104e857600080fd5b80639be6390e116100d15780639be6390e1461041c578063a074815414610434578063b145a5b814610454578063b64ec00d1461047357600080fd5b8063715018a6146103c9578063884b5e9a146103de5780638da5cb5b146103fe57600080fd5b806342f6487a11610164578063525240c01161013e578063525240c01461035657806353ab615d1461037657806361d027b3146103895780636f9fdd66146103a957600080fd5b806342f6487a146102f65780634408fc5714610316578063448013a91461033657600080fd5b806329dcb0cf116101a057806329dcb0cf146102655780632d55feaf146102885780633f563e50146102a8578063415f1240146102c857600080fd5b8062dde10e146101c6578063195199f61461020b5780631d44810d1461022d575b600080fd5b3480156101d257600080fd5b506101f66101e1366004612f2d565b60009081526002602052604090205460ff1690565b60405190151581526020015b60405180910390f35b34801561021757600080fd5b5061022b610226366004612f2d565b610571565b005b34801561023957600080fd5b5060085461024d906001600160a01b031681565b6040516001600160a01b039091168152602001610202565b34801561027157600080fd5b5061027a610607565b604051908152602001610202565b34801561029457600080fd5b5061022b6102a3366004612f5b565b61061c565b3480156102b457600080fd5b50600c5461024d906001600160a01b031681565b3480156102d457600080fd5b506102e86102e3366004612f2d565b610645565b604051610202929190612ff3565b34801561030257600080fd5b50600a5461024d906001600160a01b031681565b34801561032257600080fd5b5061022b610331366004613021565b610c70565b34801561034257600080fd5b5060095461024d906001600160a01b031681565b34801561036257600080fd5b5061022b6103713660046130b0565b611032565b61022b610384366004613159565b6112f7565b34801561039557600080fd5b5060065461024d906001600160a01b031681565b3480156103b557600080fd5b5060075461024d906001600160a01b031681565b3480156103d557600080fd5b5061022b6116d8565b3480156103ea57600080fd5b50600b5461024d906001600160a01b031681565b34801561040a57600080fd5b506000546001600160a01b031661024d565b34801561042857600080fd5b5060035460ff166101f6565b34801561044057600080fd5b506101f661044f366004612f5b565b6116ec565b34801561046057600080fd5b506003546101f690610100900460ff1681565b61022b6104813660046134aa565b611728565b34801561049257600080fd5b5061022b6104a136600461358a565b611f5a565b3480156104b257600080fd5b506104bb612525565b60405161020291906135ac565b3480156104d457600080fd5b5061024d6104e3366004612f2d565b612587565b3480156104f457600080fd5b5060055461024d906001600160a01b031681565b34801561051457600080fd5b5061022b610523366004612f5b565b6125b1565b34801561053457600080fd5b5061027a60045481565b34801561054a57600080fd5b5061022b610559366004612f5b565b612623565b61022b61056c3660046135bf565b61269c565b60095460405163fd76282760e01b81523360048201526001600160a01b039091169063fd76282790602401602060405180830381865afa1580156105b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105dd919061360d565b6106025760405162461bcd60e51b81526004016105f99061362f565b60405180910390fd5b600455565b600060045442610617919061366a565b905090565b610624612909565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6003546060908190610100900460ff166106715760405162461bcd60e51b81526004016105f990613682565b8261067b81612963565b60095460405163fd76282760e01b81523360048201526001600160a01b039091169063fd76282790602401602060405180830381865afa1580156106c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e7919061360d565b6107035760405162461bcd60e51b81526004016105f99061362f565b60058054604051635a3607b760e11b8152600481018790526001600160a01b039091169063b46c0f6e90602401602060405180830381865afa15801561074d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077191906136bd565b6005811115610782576107826136a7565b146107bd5760405162461bcd60e51b815260206004820152600b60248201526a04652302d4c51302d3531360ac1b60448201526064016105f9565b6008546040516305bb107d60e31b8152600481018690526000916001600160a01b031690632dd883e890602401600060405180830381865afa158015610807573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082f9190810190613758565b9050600081516001610841919061366a565b6001600160401b0381111561085857610858613198565b604051908082528060200260200182016040528015610881578160200160208202803683370190505b50905060005b82518110156108f2578281815181106108a2576108a261378c565b6020026020010151828260016108b8919061366a565b815181106108c8576108c861378c565b6001600160a01b0390921660209283029190910190910152806108ea816137a2565b915050610887565b5060005b8151811015610bd75760085482516000916001600160a01b031690633a2ed09d908a9086908690811061092b5761092b61378c565b60200260200101516040518363ffffffff1660e01b81526004016109629291909182526001600160a01b0316602082015260400190565b602060405180830381865afa15801561097f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a391906137bd565b90508015610bc45760085483516001600160a01b039091169063e5476b02908a908690869081106109d6576109d661378c565b602090810291909101015160065460405160e085901b6001600160e01b03191681526004810193909352684c697175696461746560b81b60248401526001600160a01b0391821660448401521660648201526084810184905260a401600060405180830381600087803b158015610a4c57600080fd5b505af1158015610a60573d6000803e3d6000fd5b505060065485516001600160a01b039091169250639ea5b31391508a90869086908110610a8f57610a8f61378c565b6020026020010151846040518463ffffffff1660e01b8152600401610ae293929190928352684c697175696461746560b81b60208401526001600160a01b03919091166040830152606082015260800190565b600060405180830381600087803b158015610afc57600080fd5b505af1158015610b10573d6000803e3d6000fd5b505060085485516001600160a01b039091169250633a2ed09d91508a90869086908110610b3f57610b3f61378c565b60200260200101516040518363ffffffff1660e01b8152600401610b769291909182526001600160a01b0316602082015260400190565b602060405180830381865afa158015610b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb791906137bd565b15610bc457610bc46137d6565b5080610bcf816137a2565b9150506108f6565b50600654604051635fae8b3d60e01b81526004810188905233602482015260009182916001600160a01b0390911690635fae8b3d906044016000604051808303816000875af1158015610c2e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c5691908101906137ec565b91509150610c63886129f1565b9095509350505050915091565b600354610100900460ff16610c975760405162461bcd60e51b81526004016105f990613682565b84610ca181612963565b60095460405163fd76282760e01b81523360048201526001600160a01b039091169063fd76282790602401602060405180830381865afa158015610ce9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0d919061360d565b610d295760405162461bcd60e51b81526004016105f99061362f565b60008383610d386001826138a6565b818110610d4757610d4761378c565b9050602002016020810190610d5c9190612f5b565b6006546040516370a0823160e01b81526001600160a01b039182166004820152919250600091908316906370a0823190602401602060405180830381865afa158015610dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd091906137bd565b6006549091506000906001600160a01b03166343c002898a8a8a8a8a610df4610607565b6040518763ffffffff1660e01b8152600401610e15969594939291906138bd565b6020604051808303816000875af1158015610e34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5891906137bd565b6006546040516370a0823160e01b81526001600160a01b039182166004820152919250600091908516906370a0823190602401602060405180830381865afa158015610ea8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecc91906137bd565b90506000610eda84836138a6565b9050846001600160a01b0316600660009054906101000a90046001600160a01b03166001600160a01b031663b583ccda6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5d9190613930565b6001600160a01b03161480610f7157508281145b610fab5760405162461bcd60e51b815260206004820152600b60248201526a04652302d5357302d3531360ac1b60448201526064016105f9565b600654604051639ea5b31360e01b8152600481018d9052630537761760e41b60248201526001600160a01b0387811660448301526064820186905290911690639ea5b31390608401600060405180830381600087803b15801561100d57600080fd5b505af1158015611021573d6000803e3d6000fd5b505050505050505050505050505050565b61103a612909565b600354610100900460ff16156110805760405162461bcd60e51b815260206004820152600b60248201526a04652302d494e302d3530360ac1b60448201526064016105f9565b6001600160a01b0388163b151580156110a257506001600160a01b0387163b15155b80156110b757506001600160a01b0386163b15155b80156110cc57506001600160a01b0385163b15155b80156110e157506001600160a01b0384163b15155b80156110f657506001600160a01b0383163b15155b801561110b57506001600160a01b0382163b15155b801561112057506001600160a01b0381163b15155b61115a5760405162461bcd60e51b815260206004820152600b60248201526a04652302d494e302d3532360ac1b60448201526064016105f9565b600580546001600160a01b03199081166001600160a01b038b811691821784556006805484168c83161781556007805485168c84161781556008805486168c85161781556009805487168c8616178155600a805488168c8716178155600b805489168c8816178155600c80548a168c8916178155600d80546001818101835560008390527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb591820180548e16909c17909b5588548254808d01845582018054918c16918e1691909117905587548254808d01845582018054918c16918e16919091179055865482549b8c0190925599909901805499891699909a16989098179098556003805461010061ff001990911681179091559854945493549254915490549754965460408051968816875294871660208701529286169385019390935284166060840152908316608083015293821660a082015291811660c08301529190911660e08201527f252b675f4a0b4c77ae177b1af7ee08cf74c0b352f2257e963f50327b4005d8c8910160405180910390a15050505050505050565b600354610100900460ff1661131e5760405162461bcd60e51b81526004016105f990613682565b8361132881612963565b600a54604051634195a04360e11b81526004810187905260248101869052869186916001600160a01b039091169063832b408690604401600060405180830381865afa15801561137c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113a491908101906139ea565b602001516001600160a01b0316336001600160a01b0316146113f65760405162461bcd60e51b815260206004820152600b60248201526a23291816a6a223169a991960a91b60448201526064016105f9565b600a54604051630f82325360e31b815260048101899052602481018890526044810186905260009182916001600160a01b0390911690637c11929890606401600060405180830381865afa158015611452573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261147a91908101906137ec565b9150915061148787612a61565b1561153a578534146114c95760405162461bcd60e51b815260206004820152600b60248201526a04652302d4450302d3431360ac1b60448201526064016105f9565b60075460405163a3bce51760e01b81526001600160a01b039091169063a3bce517908890611503908d908d908d9089908990600401613ae9565b6000604051808303818588803b15801561151c57600080fd5b505af1158015611530573d6000803e3d6000fd5b50505050506115c1565b600754611556906001600160a01b038981169133911689612ab2565b60075460405163a3bce51760e01b81526001600160a01b039091169063a3bce5179061158e908c908c908c9088908890600401613ae9565b600060405180830381600087803b1580156115a857600080fd5b505af11580156115bc573d6000803e3d6000fd5b505050505b60065481516001600160a01b0390911690639ea5b313908b908a90859060019081106115ef576115ef61378c565b60200260200101516040518463ffffffff1660e01b815260040161161593929190613b34565b600060405180830381600087803b15801561162f57600080fd5b505af1158015611643573d6000803e3d6000fd5b505060085483516001600160a01b039091169250639ea5b31391508b908a90859060029081106116755761167561378c565b60200260200101516040518463ffffffff1660e01b815260040161169b93929190613b34565b600060405180830381600087803b1580156116b557600080fd5b505af11580156116c9573d6000803e3d6000fd5b50505050505050505050505050565b6116e0612909565b6116ea6000612bfb565b565b6001600160a01b038116600090815260016020819052604082205460ff161515148061172257506000546001600160a01b031633145b92915050565b600354610100900460ff1661174f5760405162461bcd60e51b81526004016105f990613682565b8461175981612963565b600554604051631c907c2160e01b8152600481018890526001600160a01b0390911690631c907c2190602401602060405180830381865afa1580156117a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c69190613930565b6001600160a01b0316336001600160a01b0316146118145760405162461bcd60e51b815260206004820152600b60248201526a04652302d5044302d3532360ac1b60448201526064016105f9565b600a54604051630d9eec5d60e11b815260048101889052602481018790526001600160a01b0390911690631b3dd8ba90604401602060405180830381865afa158015611864573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611888919061360d565b6118c25760405162461bcd60e51b815260206004820152600b60248201526a04652302d5044302d3035360ac1b60448201526064016105f9565b6080820151825160208401516040850151606086015160a087015160c08801516118ea612f0f565b8551815260208087015190820152600c54604051631162677d60e21b81526001600160a01b03909116906345899df490611930908a908a908a9089908990600401613c0a565b602060405180830381865afa15801561194d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611971919061360d565b6119ab5760405162461bcd60e51b815260206004820152600b60248201526a04652302d5044302d3039360ac1b60448201526064016105f9565b600c54604051639fa9233960e01b81526001600160a01b0390911690639fa92339906119dd9084908890600401613c60565b602060405180830381865afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e919061360d565b611a585760405162461bcd60e51b815260206004820152600b60248201526a4652302d5044302d30393160a81b60448201526064016105f9565b7fe818b56d953f648eadccd63bcdeb5618ed86da7613a25702b6d7af6a061a5025878787878c8888604051611a939796959493929190613c80565b60405180910390a1505060085460408051630241ebdb60e61b815290518e97508d96508c95508b9450600093506001600160a01b039092169163907af6c0916004808201926020929091908290030181865afa158015611af7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1b91906137bd565b90506000600860009054906101000a90046001600160a01b03166001600160a01b031663d391f67b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b9691906137bd565b90506000600860009054906101000a90046001600160a01b03166001600160a01b0316637a9c5be36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1191906137bd565b90506000600860009054906101000a90046001600160a01b03166001600160a01b0316633a2ed09d8987600081518110611c4d57611c4d61378c565b60200260200101516040518363ffffffff1660e01b8152600401611c849291909182526001600160a01b0316602082015260400190565b602060405180830381865afa158015611ca1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc591906137bd565b9050600081841115611cd5578193505b82611ce0868c613ce8565b11611f0e576005546040516309475c1d60e21b8152600481018b90526000916001600160a01b03169063251d707490602401600060405180830381865afa158015611d2f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d579190810190613d9e565b51516008549091506000906001600160a01b03166343c002898c888c8c611d7c610607565b6040518663ffffffff1660e01b8152600401611d9c959493929190613e95565b6020604051808303816000875af1158015611dbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ddf91906137bd565b600a54604051632b8a0a5f60e01b8152600481018e9052602481018d90526044810183905291925060009182916001600160a01b031690632b8a0a5f906064016040805180830381865afa158015611e3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5f9190613ecc565b91509150600860009054906101000a90046001600160a01b03166001600160a01b031663e7d63a878e868b86866040518663ffffffff1660e01b8152600401611ed39594939291909485526001600160a01b0393909316602085015260408401919091526060830152608082015260a00190565b600060405180830381600087803b158015611eed57600080fd5b505af1158015611f01573d6000803e3d6000fd5b5050505060019450505050505b604080518a815282151560208201527fe22855c8f88aefa14697b408a846c448175ac8b7a16e46f1f5ffc61ec766369a910160405180910390a150505050505050505050505050505050565b600354610100900460ff16611f815760405162461bcd60e51b81526004016105f990613682565b81611f8b81612963565b6005546001600160a01b031633148061200b575060095460405163fd76282760e01b81523360048201526001600160a01b039091169063fd76282790602401602060405180830381865afa158015611fe7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200b919061360d565b6120455760405162461bcd60e51b815260206004820152600b60248201526a04652302d5452302d3532360ac1b60448201526064016105f9565b600a54604051634195a04360e11b815260048101859052602481018490526000916001600160a01b03169063832b408690604401600060405180830381865afa158015612096573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120be91908101906139ea565b51600a54604051630d9eec5d60e11b815260048101879052602481018690529192506001600160a01b031690631b3dd8ba90604401602060405180830381865afa158015612110573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612134919061360d565b61216c5760405162461bcd60e51b81526020600482015260096024820152681a5b9d985b1a59195960ba1b60448201526064016105f9565b600a54604051634195a04360e11b815260048101869052602481018590526000916001600160a01b03169063832b408690604401600060405180830381865afa1580156121bd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121e591908101906139ea565b60e00151600a54604051638912cad360e01b81526004810188905260248101879052604481018390529192506000916001600160a01b0390911690638912cad390606401602060405180830381865afa158015612246573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226a91906137bd565b90506000612278828461366a565b600a54604051634195a04360e11b8152600481018a9052602481018990529192506000916001600160a01b039091169063832b408690604401600060405180830381865afa1580156122ce573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122f691908101906139ea565b60200151600554604051631759a25d60e01b81526001600160a01b03808416600483015292935060009290911690631759a25d90602401602060405180830381865afa15801561234a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236e91906137bd565b905060008161248d57506006546007546040516372a3b58160e11b8152600481018c905267427573696e65737360c01b602482018190526001600160a01b038a8116604484015292831660648301526084820187905292919091169063e5476b029060a401600060405180830381600087803b1580156123ed57600080fd5b505af1158015612401573d6000803e3d6000fd5b5050600754604051632e4756d360e01b8152600481018e9052602481018d90526001600160a01b038b811660448301528781166064830152608482018b905260a482018a90529091169250632e4756d3915060c401600060405180830381600087803b15801561247057600080fd5b505af1158015612484573d6000803e3d6000fd5b50505050612519565b506006546040516372a3b58160e11b8152600481018b9052694368617267655f47617360b01b602482018190526001600160a01b0389811660448401528581166064840152608483018790529092169063e5476b029060a401600060405180830381600087803b15801561250057600080fd5b505af1158015612514573d6000803e3d6000fd5b505050505b50505050505050505050565b6060600d80548060200260200160405190810160405280929190818152602001828054801561257d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161255f575b5050505050905090565b600d818154811061259757600080fd5b6000918252602090912001546001600160a01b0316905081565b6125b9612909565b6001600160a01b0381166125fc5760405162461bcd60e51b815260206004820152600a602482015269045522d4d44462d3032360b41b60448201526064016105f9565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b61262b612909565b6001600160a01b0381166126905760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105f9565b61269981612bfb565b50565b600354610100900460ff166126c35760405162461bcd60e51b81526004016105f990613682565b836126cd81612963565b6005546001600160a01b03163314806126f05750600b546001600160a01b031633145b61272a5760405162461bcd60e51b815260206004820152600b60248201526a04652302d4d44462d3532360ac1b60448201526064016105f9565b61273384612a61565b156127e2578234146127755760405162461bcd60e51b815260206004820152600b60248201526a04652302d5454302d3431360ac1b60448201526064016105f9565b600654604051639ea5b31360e01b81526001600160a01b0390911690639ea5b3139085906127ab90899089908490600401613ef0565b6000604051808303818588803b1580156127c457600080fd5b505af11580156127d8573d6000803e3d6000fd5b5050505050612865565b6006546127fe906001600160a01b038681169133911686612ab2565b600654604051639ea5b31360e01b81526001600160a01b0390911690639ea5b3139061283290889088908890600401613ef0565b600060405180830381600087803b15801561284c57600080fd5b505af1158015612860573d6000803e3d6000fd5b505050505b6000826001811115612879576128796136a7565b141561290257600a54604051637c64a8d160e01b815260048101879052600060248201819052916001600160a01b031690637c64a8d190604401602060405180830381865afa1580156128d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f491906137bd565b90506129008682611f5a565b505b5050505050565b6000546001600160a01b031633146116ea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f9565b60035460ff16156129a45760405162461bcd60e51b815260206004820152600b60248201526a04450302d524e302d3530360ac1b60448201526064016105f9565b60008181526002602052604090205460ff16156126995760405162461bcd60e51b815260206004820152600b60248201526a04450302d524e302d3531360ac1b60448201526064016105f9565b806129fb81612963565b6000828152600260205260409020805460ff191660011790557fabdb1c9133626eb4f8c5f2ec7e3c60a969a2fb148a0c341a3cf6597242c8f8f582612a3d3390565b604080519283526001600160a01b0390911660208301520160405180910390a15050565b6001600160a01b038116158015612aad5734612aad5760405162461bcd60e51b815260206004820152600b60248201526a04652302d4943302d3431360ac1b60448201526064016105f9565b919050565b6040516370a0823160e01b81526001600160a01b038381166004830152600091908616906370a0823190602401602060405180830381865afa158015612afc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2091906137bd565b9050612b376001600160a01b038616858585612c4b565b6040516370a0823160e01b81526001600160a01b038481166004830152600091908716906370a0823190602401602060405180830381865afa158015612b81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ba591906137bd565b90506000612bb383836138a6565b9050838114612bf25760405162461bcd60e51b815260206004820152600b60248201526a04345302d4354302d3030360ac1b60448201526064016105f9565b50505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052612ca5908590612cab565b50505050565b6000612d00826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612d829092919063ffffffff16565b805190915015612d7d5780806020019051810190612d1e919061360d565b612d7d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105f9565b505050565b6060612d918484600085612d99565b949350505050565b606082471015612dfa5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016105f9565b600080866001600160a01b03168587604051612e169190613f23565b60006040518083038185875af1925050503d8060008114612e53576040519150601f19603f3d011682016040523d82523d6000602084013e612e58565b606091505b5091509150612e6987838387612e74565b979650505050505050565b60608315612ee0578251612ed9576001600160a01b0385163b612ed95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105f9565b5081612d91565b612d918383815115612ef55781518083602001fd5b8060405162461bcd60e51b81526004016105f99190613f3f565b60405180604001604052806002906020820280368337509192915050565b600060208284031215612f3f57600080fd5b5035919050565b6001600160a01b038116811461269957600080fd5b600060208284031215612f6d57600080fd5b8135612f7881612f46565b9392505050565b600081518084526020808501945080840160005b83811015612fb85781516001600160a01b031687529582019590820190600101612f93565b509495945050505050565b600081518084526020808501945080840160005b83811015612fb857815187529582019590820190600101612fd7565b6040815260006130066040830185612f7f565b82810360208401526130188185612fc3565b95945050505050565b60008060008060006080868803121561303957600080fd5b85359450602086013593506040860135925060608601356001600160401b038082111561306557600080fd5b818801915088601f83011261307957600080fd5b81358181111561308857600080fd5b8960208260051b850101111561309d57600080fd5b9699959850939650602001949392505050565b600080600080600080600080610100898b0312156130cd57600080fd5b88356130d881612f46565b975060208901356130e881612f46565b965060408901356130f881612f46565b9550606089013561310881612f46565b9450608089013561311881612f46565b935060a089013561312881612f46565b925060c089013561313881612f46565b915060e089013561314881612f46565b809150509295985092959890939650565b6000806000806080858703121561316f57600080fd5b8435935060208501359250604085013561318881612f46565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156131d0576131d0613198565b60405290565b604051606081016001600160401b03811182821017156131d0576131d0613198565b6040516101a081016001600160401b03811182821017156131d0576131d0613198565b604080519081016001600160401b03811182821017156131d0576131d0613198565b60405160a081016001600160401b03811182821017156131d0576131d0613198565b604051601f8201601f191681016001600160401b038111828210171561328757613287613198565b604052919050565b60006001600160401b038211156132a8576132a8613198565b5060051b60200190565b600082601f8301126132c357600080fd5b604051604081018181106001600160401b03821117156132e5576132e5613198565b80604052508060408401858111156132fc57600080fd5b845b818110156133165780358352602092830192016132fe565b509195945050505050565b600082601f83011261333257600080fd5b604051608081018181106001600160401b038211171561335457613354613198565b6040528060808401858111156132fc57600080fd5b60006001600160401b0382111561338257613382613198565b50601f01601f191660200190565b600082601f8301126133a157600080fd5b81356133b46133af82613369565b61325f565b8181528460208386010111156133c957600080fd5b816020850160208301376000918101602001919091529392505050565b60006101e082840312156133f957600080fd5b6134016131ae565b905061340d83836132b2565b815261341c8360408401613321565b602082015260c08201356001600160401b038082111561343b57600080fd5b61344785838601613390565b604084015260e084013591508082111561346057600080fd5b5061346d84828501613390565b606083015250610100820135608082015261348c8361012084016132b2565b60a082015261349f836101608401613321565b60c082015292915050565b600080600080600060a086880312156134c257600080fd5b8535945060208087013594506040870135935060608701356001600160401b03808211156134ef57600080fd5b818901915089601f83011261350357600080fd5b81356135116133af8261328f565b81815260059190911b8301840190848101908c83111561353057600080fd5b938501935b8285101561355757843561354881612f46565b82529385019390850190613535565b96505050608089013592508083111561356f57600080fd5b505061357d888289016133e6565b9150509295509295909350565b6000806040838503121561359d57600080fd5b50508035926020909101359150565b602081526000612f786020830184612f7f565b600080600080608085870312156135d557600080fd5b8435935060208501356135e781612f46565b92506040850135915060608501356002811061360257600080fd5b939692955090935050565b60006020828403121561361f57600080fd5b81518015158114612f7857600080fd5b6020808252600b908201526a4652302d4d44462d35323160a81b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561367d5761367d613654565b500190565b6020808252600b908201526a04652302d4d44462d3530360ac1b604082015260600190565b634e487b7160e01b600052602160045260246000fd5b6000602082840312156136cf57600080fd5b815160068110612f7857600080fd5b8051612aad81612f46565b600082601f8301126136fa57600080fd5b8151602061370a6133af8361328f565b82815260059290921b8401810191818101908684111561372957600080fd5b8286015b8481101561374d57805161374081612f46565b835291830191830161372d565b509695505050505050565b60006020828403121561376a57600080fd5b81516001600160401b0381111561378057600080fd5b612d91848285016136e9565b634e487b7160e01b600052603260045260246000fd5b60006000198214156137b6576137b6613654565b5060010190565b6000602082840312156137cf57600080fd5b5051919050565b634e487b7160e01b600052600160045260246000fd5b600080604083850312156137ff57600080fd5b82516001600160401b038082111561381657600080fd5b613822868387016136e9565b935060209150818501518181111561383957600080fd5b85019050601f8101861361384c57600080fd5b805161385a6133af8261328f565b81815260059190911b8201830190838101908883111561387957600080fd5b928401925b828410156138975783518252928401929084019061387e565b80955050505050509250929050565b6000828210156138b8576138b8613654565b500390565b600060a082018883526020888185015287604085015260a060608501528186835260c08501905087925060005b878110156139185783356138fd81612f46565b6001600160a01b0316825292820192908201906001016138ea565b50809350505050826080830152979650505050505050565b60006020828403121561394257600080fd5b8151612f7881612f46565b600082601f83011261395e57600080fd5b8151602061396e6133af8361328f565b8281526060928302850182019282820191908785111561398d57600080fd5b8387015b858110156139dd5781818a0312156139a95760008081fd5b6139b16131d6565b81516139bc81612f46565b81528186015186820152604080830151908201528452928401928101613991565b5090979650505050505050565b6000602082840312156139fc57600080fd5b81516001600160401b0380821115613a1357600080fd5b908301906101a08286031215613a2857600080fd5b613a306131f8565b613a39836136de565b8152613a47602084016136de565b602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101408084015181830152506101608084015181830152506101808084015183811115613acc57600080fd5b613ad88882870161394d565b918301919091525095945050505050565b85815284602082015260018060a01b038416604082015260a060608201526000613b1660a0830185612f7f565b8281036080840152613b288185612fc3565b98975050505050505050565b9283526f427573696e65737320526576656e756560801b60208401526001600160a01b03919091166040830152606082015260800190565b8060005b6002811015612ca5578151845260209384019390910190600101613b70565b8060005b6004811015612ca5578151845260209384019390910190600101613b93565b60005b83811015613bcd578181015183820152602001613bb5565b83811115612ca55750506000910152565b60008151808452613bf6816020860160208601613bb2565b601f01601f19169290920160200192915050565b60006101a0613c198389613b6c565b613c266040840188613b8f565b8060c0840152613c3881840187613bde565b915050613c4860e0830185613b6c565b613c56610120830184613b8f565b9695505050505050565b613c6a8184613b6c565b606060408201526000612d916060830184613bde565b60006101e0613c8f838b613b6c565b613c9c604084018a613b8f565b8060c0840152613cae81840189613bde565b905082810360e0840152613cc28188613bde565b91505084610100830152613cda610120830185613b6c565b613b28610160830184613b8f565b600082613d0557634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112613d1b57600080fd5b8151613d296133af82613369565b818152846020838601011115613d3e57600080fd5b612d91826020830160208701613bb2565b600060208284031215613d6157600080fd5b604051602081018181106001600160401b0382111715613d8357613d83613198565b80604052508091508251613d9681612f46565b905292915050565b600060208284031215613db057600080fd5b81516001600160401b0380821115613dc757600080fd5b9083019060408286031215613ddb57600080fd5b613de361321b565b825182811115613df257600080fd5b830160a08188031215613e0457600080fd5b613e0c61323d565b8151613e1781612f46565b8152602082015184811115613e2b57600080fd5b613e3789828501613d0a565b602083015250604082015184811115613e4f57600080fd5b613e5b89828501613d0a565b60408301525060608201516060820152608082015160808201528083525050613e878660208501613d4f565b602082015295945050505050565b85815284602082015283604082015260a060608201526000613eba60a0830185612f7f565b90508260808301529695505050505050565b60008060408385031215613edf57600080fd5b505080516020909101519092909150565b9283526a149958dc9d5a5d1b595b9d60aa1b60208401526001600160a01b03919091166040830152606082015260800190565b60008251613f35818460208701613bb2565b9190910192915050565b602081526000612f786020830184613bde56fea2646970667358221220c92888e1669ae9b13d42d024070e285da4c0db86229944b3f10657f315c5c01d64736f6c634300080a0033