60806040523480156200001157600080fd5b5060405162003b4438038062003b44833981016040819052620000349162000101565b60405180606001604052806023815260200162003b2160239139620000598162000095565b506003805460ff191690556200006f33620000a7565b600580546001600160a01b0319166001600160a01b0392909216919091179055620002a4565b6002620000a38282620001d8565b5050565b600380546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156200011457600080fd5b81516001600160a01b03811681146200012c57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200015e57607f821691505b6020821081036200017f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001d357600081815260208120601f850160051c81016020861015620001ae5750805b601f850160051c820191505b81811015620001cf57828155600101620001ba565b5050505b505050565b81516001600160401b03811115620001f457620001f462000133565b6200020c8162000205845462000149565b8462000185565b602080601f8311600181146200024457600084156200022b5750858301515b600019600386901b1c1916600185901b178555620001cf565b600085815260208120601f198616915b82811015620002755788860151825594840194600190910190840162000254565b5085821015620002945787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61386d80620002b46000396000f3fe608060405234801561001057600080fd5b506004361061018c5760003560e01c8063715018a6116100de578063a97a984111610097578063cbf1304d11610071578063cbf1304d14610363578063e985e9c51461038b578063f242432a146103c7578063f2fde38b146103da57600080fd5b8063a97a98411461032a578063b5777e621461033d578063bd85b0391461035057600080fd5b8063715018a6146102b85780638456cb59146102c05780638da5cb5b146102c8578063a2233479146102f1578063a22cb46514610304578063a41fe49f1461031757600080fd5b8063210f6e8a1161014b5780634e1273f4116101255780634e1273f4146102635780634f558e79146102835780635c975abb146102a557806361f5d493146102b057600080fd5b8063210f6e8a146102355780632eb2c2d6146102485780633f4ba83a1461025b57600080fd5b8062aeef8a14610191578062fdd58e146101a657806301ffc9a7146101cc5780630e89341c146101ef578063147ee7501461020f5780631af325cf14610222575b600080fd5b6101a461019f366004612cd0565b6103ed565b005b6101b96101b4366004612d11565b610892565b6040519081526020015b60405180910390f35b6101df6101da366004612d53565b610926565b60405190151581526020016101c3565b6102026101fd366004612d77565b610976565b6040516101c39190612de0565b6101a461021d366004612df3565b610a0a565b6101b9610230366004612e36565b610a69565b6101a4610243366004612e66565b610b19565b6101a4610256366004612fef565b610eb9565b6101a4610f05565b61027661027136600461309d565b610f17565b6040516101c391906131a5565b6101df610291366004612d77565b600090815260046020526040902054151590565b60035460ff166101df565b6101a4611041565b6101a46110e2565b6101a46110f4565b60035461010090046001600160a01b03166040516001600160a01b0390911681526020016101c3565b6101a46102ff366004612df3565b611104565b6101a46103123660046131b8565b61114e565b6101a4610325366004612cd0565b61115d565b6101a46103383660046131e6565b611169565b6101a461034b366004613238565b611247565b6101b961035e366004612d77565b611837565b610376610371366004612d11565b61184b565b604080519283526020830191909152016101c3565b6101df610399366004613280565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b6101a46103d53660046132ae565b6119bb565b6101a46103e8366004613317565b611a00565b600554604051630429470760e41b8152600481018590526001600160a01b0390911690634294707090602401602060405180830381865afa158015610436573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045a9190613334565b15806104dc5750600554604051633b244e7d60e21b8152600481018590526001600160a01b039091169063ec9139f490602401602060405180830381865afa1580156104aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ce9190613334565b6104d95780156104dc565b81155b6105255760405162461bcd60e51b8152602060048201526015602482015274139bdd081cda5b99db194818dbdb1b185d195c985b605a1b60448201526064015b60405180910390fd5b600554604051600162024d7160e51b031981526004810185905261059f916001600160a01b03169063ffb651e090602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190613351565b333085611a79565b60055460405163523babb960e11b815260048101859052610616916001600160a01b03169063a477577290602401602060405180830381865afa1580156105ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060e9190613351565b333084611a79565b604080516002808252606082018352600092602083019080368337019050509050610642846001610a69565b816000815181106106555761065561336e565b60200260200101818152505060076000826000815181106106785761067861336e565b60200260200101518152602001908152602001600020600001546000036106ff5760405180604001604052808581526020016001151581525060076000836000815181106106c8576106c861336e565b602090810291909101810151825281810192909252604001600020825181559101516001909101805460ff19169115159190911790555b61070a846000610a69565b8160018151811061071d5761071d61336e565b60200260200101818152505060076000826001815181106107405761074061336e565b60200260200101518152602001908152602001600020600001546000036107c75760405180604001604052808581526020016000151581525060076000836001815181106107905761079061336e565b602090810291909101810151825281810192909252604001600020825181559101516001909101805460ff19169115159190911790555b60408051600280825260608201835260009260208301908036833701905050905083816000815181106107fc576107fc61336e565b602002602001018181525050828160018151811061081c5761081c61336e565b60200260200101818152505061084333838360405180602001604052806000815250611b87565b6040805133815260208101879052908101859052606081018490527f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e9060800160405180910390a15050505050565b60006001600160a01b0383166108fd5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b606482015260840161051c565b506000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b148061095757506001600160e01b031982166303a24d0760e21b145b8061092057506301ffc9a760e01b6001600160e01b0319831614610920565b60606002805461098590613384565b80601f01602080910402602001604051908101604052809291908181526020018280546109b190613384565b80156109fe5780601f106109d3576101008083540402835291602001916109fe565b820191906000526020600020905b8154815290600101906020018083116109e157829003601f168201915b50505050509050919050565b6005546001600160a01b0316331480610a2d57506006546001600160a01b031633145b610a495760405162461bcd60e51b815260040161051c906133be565b610a6483838360405180602001604052806000815250611cf0565b505050565b6005546040516367168dc160e11b8152600481018490526000916001600160a01b03169063ce2d1b8290602401602060405180830381865afa158015610ab3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad791906133e4565b92508282604051602001610afa929190918252151560f81b602082015260210190565b60408051601f1981840301815291905280516020909101209392505050565b600080610b26338761184b565b9150915083821015610b7a5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e7420626173652062616c616e636500000000000000604482015260640161051c565b82811015610bca5760405162461bcd60e51b815260206004820152601f60248201527f496e73756666696369656e7420756e6465726c79696e672062616c616e636500604482015260640161051c565b604080516002808252606082018352600092602083019080368337019050509050610bf6876001610a69565b81600081518110610c0957610c0961336e565b602002602001018181525050610c20876000610a69565b81600181518110610c3357610c3361336e565b6020908102919091010152604080516002808252606082019092526000918160200160208202803683370190505090508581600081518110610c7757610c7761336e565b6020026020010181815250508481600181518110610c9757610c9761336e565b6020908102919091010152600554604051600162024d7160e51b03198152600481018a9052610d1b916001600160a01b03169063ffb651e090602401602060405180830381865afa158015610cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d149190613351565b8888611de8565b60055460405163523babb960e11b8152600481018a9052610d91916001600160a01b03169063a477577290602401602060405180830381865afa158015610d66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8a9190613351565b8887611de8565b610d9c338383611eee565b600554604051631a0ce62560e21b8152336004820152602481018a9052600160448201526001600160a01b0390911690636833989490606401602060405180830381865afa158015610df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e169190613334565b610e585760405162461bcd60e51b8152602060048201526013602482015272155b99195c98dbdb1b185d195c985b1a5e9959606a1b604482015260640161051c565b604080513381526001600160a01b038916602082015290810189905260608101879052608081018690527febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f9060a00160405180910390a15050505050505050565b6001600160a01b038516331480610ed55750610ed58533610399565b610ef15760405162461bcd60e51b815260040161051c906133fd565b610efe858585858561209a565b5050505050565b610f0d61224a565b610f156122aa565b565b60608151835114610f7c5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b606482015260840161051c565b6000835167ffffffffffffffff811115610f9857610f98612ea3565b604051908082528060200260200182016040528015610fc1578160200160208202803683370190505b50905060005b84518110156110395761100c858281518110610fe557610fe561336e565b6020026020010151858381518110610fff57610fff61336e565b6020026020010151610892565b82828151811061101e5761101e61336e565b602090810291909101015261103281613461565b9050610fc7565b509392505050565b61104961224a565b600560009054906101000a90046001600160a01b03166001600160a01b0316634046ebae6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561109c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c09190613351565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6110ea61224a565b610f1560006122fc565b6110fc61224a565b610f15612356565b6005546001600160a01b031633148061112757506006546001600160a01b031633145b6111435760405162461bcd60e51b815260040161051c906133be565b610a64838383612393565b6111593383836124b5565b5050565b610a6483338484610b19565b60055485906001600160a01b03163314806111f25750600554604051637ddfc63f60e11b8152600481018390523360248201526001600160a01b039091169063fbbf8c7e90604401602060405180830381865afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f29190613334565b8061120757506006546001600160a01b031633145b6112235760405162461bcd60e51b815260040161051c906133be565b61123f8585858560405180602001604052806000815250612595565b505050505050565b600554604051600162024d7160e51b031981526004810187905284916001600160a01b03169063ffb651e090602401602060405180830381865afa158015611293573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b79190613351565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156112fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132191906133e4565b101561154c57600554604051600162024d7160e51b03198152600481018790526000916001600160a01b03169063ffb651e090602401602060405180830381865afa158015611374573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113989190613351565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156113de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140291906133e4565b61140c908561347a565b6005546040516312b7e55560e01b8152600481018990529192506000916001600160a01b03909116906312b7e55590602401602060405180830381865afa15801561145b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147f9190613351565b604051630fcfc9e360e01b815260048101849052602481018590526001600160a01b039190911690630fcfc9e390604401602060405180830381865afa1580156114cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f191906133e4565b90506114fd818561348d565b9350611509828661347a565b94506115203361151a896001610a69565b84612393565b6115453361152f896000610a69565b8360405180602001604052806000815250611cf0565b505061182b565b60055460405163523babb960e11b81526004810187905283916001600160a01b03169063a477577290602401602060405180830381865afa158015611595573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b99190613351565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156115ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162391906133e4565b101561182b5760055460405163523babb960e11b8152600481018790526000916001600160a01b03169063a477577290602401602060405180830381865afa158015611673573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116979190613351565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156116dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170191906133e4565b61170b908461347a565b6005546040516312b7e55560e01b8152600481018990529192506000916001600160a01b03909116906312b7e55590602401602060405180830381865afa15801561175a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177e9190613351565b6040516323c28fa960e21b815260048101849052602481018590526001600160a01b039190911690638f0a3ea490604401602060405180830381865afa1580156117cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f091906133e4565b90506117fc818661348d565b9450611808828561347a565b93506118193361151a896000610a69565b6118283361152f896001610a69565b50505b610efe85858585610b19565b600081815260046020526040812054610920565b6000806001600160a01b0384168103611869575060009050806119b4565b604080516002808252606082018352600092602083019080368337019050509050611895846001610a69565b816000815181106118a8576118a861336e565b6020026020010181815250506118bf846000610a69565b816001815181106118d2576118d261336e565b60209081029190910101526040805160028082526060820190925260009181602001602082028036833701905050905085816001815181106119165761191661336e565b60200260200101906001600160a01b031690816001600160a01b0316815250816000815181106119485761194861336e565b60200260200101906001600160a01b031690816001600160a01b03168152505060006119748284610f17565b9050806000815181106119895761198961336e565b60200260200101519450806001815181106119a6576119a661336e565b602002602001015193505050505b9250929050565b6001600160a01b0385163314806119d757506119d78533610399565b6119f35760405162461bcd60e51b815260040161051c906133fd565b610efe8585858585612595565b611a0861224a565b6001600160a01b038116611a6d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161051c565b611a76816122fc565b50565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691611add91906134a0565b6000604051808303816000865af19150503d8060008114611b1a576040519150601f19603f3d011682016040523d82523d6000602084013e611b1f565b606091505b5091509150818015611b49575080511580611b49575080806020019051810190611b499190613334565b61123f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161051c565b6001600160a01b038416611bad5760405162461bcd60e51b815260040161051c906134bc565b8151835114611bce5760405162461bcd60e51b815260040161051c906134fd565b33611bde816000878787876126db565b60005b8451811015611c7957838181518110611bfc57611bfc61336e565b6020026020010151600080878481518110611c1957611c1961336e565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206000828254611c61919061348d565b90915550819050611c7181613461565b915050611be1565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611cca929190613545565b60405180910390a4611ce1816000878787876126f1565b610efe81600087878787612867565b6001600160a01b038416611d165760405162461bcd60e51b815260040161051c906134bc565b336000611d22856129c2565b90506000611d2f856129c2565b9050611d40836000898585896126db565b6000868152602081815260408083206001600160a01b038b16845290915281208054879290611d7090849061348d565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611dd0836000898585896126f1565b611ddf83600089898989612a0d565b50505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691611e4491906134a0565b6000604051808303816000865af19150503d8060008114611e81576040519150601f19603f3d011682016040523d82523d6000602084013e611e86565b606091505b5091509150818015611eb0575080511580611eb0575080806020019051810190611eb09190613334565b610efe5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161051c565b6001600160a01b038316611f145760405162461bcd60e51b815260040161051c90613573565b8051825114611f355760405162461bcd60e51b815260040161051c906134fd565b6000339050611f58818560008686604051806020016040528060008152506126db565b60005b835181101561201d576000848281518110611f7857611f7861336e565b602002602001015190506000848381518110611f9657611f9661336e565b602090810291909101810151600084815280835260408082206001600160a01b038c168352909352919091205490915081811015611fe65760405162461bcd60e51b815260040161051c906135b6565b6000928352602083815260408085206001600160a01b038b168652909152909220910390558061201581613461565b915050611f5b565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161206e929190613545565b60405180910390a4612094818560008686604051806020016040528060008152506126f1565b50505050565b81518351146120bb5760405162461bcd60e51b815260040161051c906134fd565b6001600160a01b0384166120e15760405162461bcd60e51b815260040161051c906135fa565b336120f08187878787876126db565b60005b84518110156121d65760008582815181106121105761211061336e565b60200260200101519050600085838151811061212e5761212e61336e565b602090810291909101810151600084815280835260408082206001600160a01b038e16835290935291909120549091508181101561217e5760405162461bcd60e51b815260040161051c9061363f565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906121bb90849061348d565b92505081905550505050806121cf90613461565b90506120f3565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051612226929190613545565b60405180910390a461223c8187878787876126f1565b61123f818787878787612867565b6003546001600160a01b03610100909104163314610f155760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161051c565b6122b2612ac8565b6003805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600380546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61235e612b11565b6003805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586122df3390565b6001600160a01b0383166123b95760405162461bcd60e51b815260040161051c90613573565b3360006123c5846129c2565b905060006123d2846129c2565b90506123f2838760008585604051806020016040528060008152506126db565b6000858152602081815260408083206001600160a01b038a168452909152902054848110156124335760405162461bcd60e51b815260040161051c906135b6565b6000868152602081815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611ddf848860008686604051806020016040528060008152506126f1565b816001600160a01b0316836001600160a01b0316036125285760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b606482015260840161051c565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0384166125bb5760405162461bcd60e51b815260040161051c906135fa565b3360006125c7856129c2565b905060006125d4856129c2565b90506125e48389898585896126db565b6000868152602081815260408083206001600160a01b038c168452909152902054858110156126255760405162461bcd60e51b815260040161051c9061363f565b6000878152602081815260408083206001600160a01b038d8116855292528083208985039055908a1682528120805488929061266290849061348d565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46126c2848a8a86868a6126f1565b6126d0848a8a8a8a8a612a0d565b505050505050505050565b6126e3612b11565b61123f868686868686612b57565b60005b8351811015611ddf5760016001600160a01b0387166127135750612855565b6001600160a01b0386166127295750600161272d565b5060005b600560009054906101000a90046001600160a01b03166001600160a01b0316636833989488600760008987815181106127685761276861336e565b602090810291909101810151825281019190915260409081016000205490516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201528315156044820152606401602060405180830381865afa1580156127d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f99190613334565b6128535760405162461bcd60e51b815260206004820152602560248201527f556e646572636f6c6c61746572616c697a656420636f6c6c61746572616c207360448201526432b73232b960d91b606482015260840161051c565b505b8061285f81613461565b9150506126f4565b6001600160a01b0384163b1561123f5760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906128ab9089908990889088908890600401613689565b6020604051808303816000875af19250505080156128e6575060408051601f3d908101601f191682019092526128e3918101906136e7565b60015b612992576128f2613704565b806308c379a00361292b5750612906613720565b80612911575061292d565b8060405162461bcd60e51b815260040161051c9190612de0565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606482015260840161051c565b6001600160e01b0319811663bc197c8160e01b14611ddf5760405162461bcd60e51b815260040161051c906137aa565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106129fc576129fc61336e565b602090810291909101015292915050565b6001600160a01b0384163b1561123f5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190612a5190899089908890889088906004016137f2565b6020604051808303816000875af1925050508015612a8c575060408051601f3d908101601f19168201909252612a89918101906136e7565b60015b612a98576128f2613704565b6001600160e01b0319811663f23a6e6160e01b14611ddf5760405162461bcd60e51b815260040161051c906137aa565b60035460ff16610f155760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161051c565b60035460ff1615610f155760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161051c565b6001600160a01b038516612bde5760005b8351811015612bdc57828181518110612b8357612b8361336e565b602002602001015160046000868481518110612ba157612ba161336e565b602002602001015181526020019081526020016000206000828254612bc6919061348d565b90915550612bd5905081613461565b9050612b68565b505b6001600160a01b03841661123f5760005b8351811015611ddf576000848281518110612c0c57612c0c61336e565b602002602001015190506000848381518110612c2a57612c2a61336e565b6020026020010151905060006004600084815260200190815260200160002054905081811015612cad5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f74604482015267616c537570706c7960c01b606482015260840161051c565b60009283526004602052604090922091039055612cc981613461565b9050612bef565b600080600060608486031215612ce557600080fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114611a7657600080fd5b60008060408385031215612d2457600080fd5b8235612d2f81612cfc565b946020939093013593505050565b6001600160e01b031981168114611a7657600080fd5b600060208284031215612d6557600080fd5b8135612d7081612d3d565b9392505050565b600060208284031215612d8957600080fd5b5035919050565b60005b83811015612dab578181015183820152602001612d93565b50506000910152565b60008151808452612dcc816020860160208601612d90565b601f01601f19169290920160200192915050565b602081526000612d706020830184612db4565b600080600060608486031215612e0857600080fd5b8335612e1381612cfc565b95602085013595506040909401359392505050565b8015158114611a7657600080fd5b60008060408385031215612e4957600080fd5b823591506020830135612e5b81612e28565b809150509250929050565b60008060008060808587031215612e7c57600080fd5b843593506020850135612e8e81612cfc565b93969395505050506040820135916060013590565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715612edf57612edf612ea3565b6040525050565b600067ffffffffffffffff821115612f0057612f00612ea3565b5060051b60200190565b600082601f830112612f1b57600080fd5b81356020612f2882612ee6565b604051612f358282612eb9565b83815260059390931b8501820192828101915086841115612f5557600080fd5b8286015b84811015612f705780358352918301918301612f59565b509695505050505050565b600082601f830112612f8c57600080fd5b813567ffffffffffffffff811115612fa657612fa6612ea3565b604051612fbd601f8301601f191660200182612eb9565b818152846020838601011115612fd257600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561300757600080fd5b853561301281612cfc565b9450602086013561302281612cfc565b9350604086013567ffffffffffffffff8082111561303f57600080fd5b61304b89838a01612f0a565b9450606088013591508082111561306157600080fd5b61306d89838a01612f0a565b9350608088013591508082111561308357600080fd5b5061309088828901612f7b565b9150509295509295909350565b600080604083850312156130b057600080fd5b823567ffffffffffffffff808211156130c857600080fd5b818501915085601f8301126130dc57600080fd5b813560206130e982612ee6565b6040516130f68282612eb9565b83815260059390931b850182019282810191508984111561311657600080fd5b948201945b8386101561313d57853561312e81612cfc565b8252948201949082019061311b565b9650508601359250508082111561315357600080fd5b5061316085828601612f0a565b9150509250929050565b600081518084526020808501945080840160005b8381101561319a5781518752958201959082019060010161317e565b509495945050505050565b602081526000612d70602083018461316a565b600080604083850312156131cb57600080fd5b82356131d681612cfc565b91506020830135612e5b81612e28565b600080600080600060a086880312156131fe57600080fd5b85359450602086013561321081612cfc565b9350604086013561322081612cfc565b94979396509394606081013594506080013592915050565b600080600080600060a0868803121561325057600080fd5b85359450602086013561326281612cfc565b94979496505050506040830135926060810135926080909101359150565b6000806040838503121561329357600080fd5b823561329e81612cfc565b91506020830135612e5b81612cfc565b600080600080600060a086880312156132c657600080fd5b85356132d181612cfc565b945060208601356132e181612cfc565b93506040860135925060608601359150608086013567ffffffffffffffff81111561330b57600080fd5b61309088828901612f7b565b60006020828403121561332957600080fd5b8135612d7081612cfc565b60006020828403121561334657600080fd5b8151612d7081612e28565b60006020828403121561336357600080fd5b8151612d7081612cfc565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061339857607f821691505b6020821081036133b857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600c908201526b155b985d5d1a1bdc9a5e995960a21b604082015260600190565b6000602082840312156133f657600080fd5b5051919050565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000600182016134735761347361344b565b5060010190565b818103818111156109205761092061344b565b808201808211156109205761092061344b565b600082516134b2818460208701612d90565b9190910192915050565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b604081526000613558604083018561316a565b828103602084015261356a818561316a565b95945050505050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b6001600160a01b0386811682528516602082015260a0604082018190526000906136b59083018661316a565b82810360608401526136c7818661316a565b905082810360808401526136db8185612db4565b98975050505050505050565b6000602082840312156136f957600080fd5b8151612d7081612d3d565b600060033d111561371d5760046000803e5060005160e01c5b90565b600060443d101561372e5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561375e57505050505090565b82850191508151818111156137765750505050505090565b843d87010160208285010111156137905750505050505090565b61379f60208286010187612eb9565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061382c90830184612db4565b97965050505050505056fea264697066735822122087ce9d007d420b5ff60de0ea70f24856a7c520c684d7e7f135ee400d8ae5b8b664736f6c6343000810003368747470733a2f2f7363686f6c65732e78797a2f636f6c6c61746572616c2e6a736f6e000000000000000000000000c9b9d876c3e5da19d5e9629c930c039429252e12