.NET Brain Droppings

I'm a Microsoft Certified Architect (MCA)... Feel free to ask me about the program...

XmlValidatingReader Sample Code

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 here.  Hope this helps someone.

using System;

using System.IO;

using System.Xml;

using System.Xml.Schema;

 

 

namespace ConsoleApplication1

{

     

      class Class1

      {

           

            [STAThread]

            static void Main(string[] args)

            {

                  // path's to xml/xsd

                  const string path = @"C:\Projects\PSLL\ConsoleApplication1";

                  const string xmlPath = path + @"\franchise_detail.xml";

                  const string xsdPath = path + @"\Program.xsd";

 

                  // Create a new validating reader

                  XmlValidatingReader reader = new XmlValidatingReader(new XmlTextReader(new StreamReader(xmlPath)));

                 

                  // Create a schema collection, add the xsd to it

                  XmlSchemaCollection schemaCollection = new XmlSchemaCollection();

                  schemaCollection.Add("http://detail.franchise.scarlett",xsdPath);

 

                  // Add the schema collection to the XmlValidatingReader

                  reader.Schemas.Add(schemaCollection);

 

                  Console.Write("Validating....");

 

                  // Wire up the call back.  The ValidationEvent is fired when the

                  // XmlValidatingReader hits an issue validating a section of the xml

                  reader.ValidationEventHandler += new ValidationEventHandler(reader_ValidationEventHandler);

                 

                  // Iterate through the xml document

                  while(reader.Read())

                  {

                        Console.Write(".");

                  }

 

                  Console.WriteLine("\n");

 

                  Console.ReadLine();

 

 

            }

 

            private static void reader_ValidationEventHandler(object sender, ValidationEventArgs e)

            {

                  // Report back error information to the console...

                  Console.WriteLine("Bad stuff happened");

                  Console.WriteLine(e.Exception.Message);

                  Console.WriteLine(e.Exception.LineNumber);

 

            }

      }

}

 

 

Comments

TrackBack said:

# April 16, 2004 9:42 AM

max said:

thank a lots
# July 17, 2004 11:26 PM

Lucutus said:

How can I write the ValidationEventArg e into a Label or something that a Web-User can see?

# May 21, 2007 11:08 AM

requirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredred said:

requirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredredrequirequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredrequiredred

# June 15, 2007 1:52 AM

lol said:

looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool

# February 22, 2010 9:03 AM

SarahJM said:

I agree with required.

# March 14, 2011 3:26 PM

icons pack said:

<a href="web-icon-sets.softsia.com/downloads"> I am sorry, that has interfered... This situation is familiar To me. I invite to discussion.</a>

# October 8, 2012 5:49 PM

icons download said:

[url=stonixitalia.altervista.org/showthread.php] Who knows it.[/url]

# November 4, 2012 2:46 PM
Leave a Comment

(required) 

(required) 

(optional)

(required)