<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>XmlValidatingReader Sample Code</title><link>http://weblogs.asp.net/dbrowning/pages/114561.aspx</link><description>I had to work up a sample of the XmlValidatingReader for a coworker, so I though I'd share it with everyone. Here is a quick example of using the XmlValidatingReader. There are other ways to construct/use it, but this is the most common method around</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>re: XmlValidatingReader Sample Code</title><link>http://weblogs.asp.net/dbrowning/pages/114561.aspx#2824518</link><pubDate>Fri, 15 Jun 2007 05:52:31 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:2824518</guid><dc:creator>requirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredred</dc:creator><author>requirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredred</author><description>&lt;p&gt;requirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredred&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=2824518" width="1" height="1"&gt;</description></item><item><title>re: XmlValidatingReader Sample Code</title><link>http://weblogs.asp.net/dbrowning/pages/114561.aspx#2629226</link><pubDate>Mon, 21 May 2007 15:08:05 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:2629226</guid><dc:creator>Lucutus</dc:creator><author>Lucutus</author><description>&lt;p&gt;How can I write the ValidationEventArg e into a Label or something that a Web-User can see?&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=2629226" width="1" height="1"&gt;</description></item><item><title>re: XmlValidatingReader Sample Code</title><link>http://weblogs.asp.net/dbrowning/pages/114561.aspx#186320</link><pubDate>Sun, 18 Jul 2004 03:26:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:186320</guid><dc:creator>max</dc:creator><author>max</author><description>thank a lots&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=186320" width="1" height="1"&gt;</description></item><item><title>XmlValidatingReader Sample Code</title><link>http://weblogs.asp.net/dbrowning/pages/114561.aspx#114565</link><pubDate>Fri, 16 Apr 2004 13:42:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:114565</guid><dc:creator>TrackBack</dc:creator><author>TrackBack</author><description>&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=114565" width="1" height="1"&gt;</description></item></channel></rss>