fork download
  1. use warnings;
  2. my @iparray=("an","an");
  3. my @sortedarray=sort(@iparray);
  4. my @oparray;
  5. my $lowerlimit=0;
  6. my $upperlimit;
  7. my $count=0;
  8. my $inc=1;
  9. my $mat=0;
  10. my $matchedstring;
  11. sub splitter
  12. {
  13. if($mat==0)
  14. {
  15. $lowerlimit=$lowerlimit+1;
  16. $count=$lowerlimit;
  17. func();
  18. }
  19. else
  20. {
  21. $matchedstring=substr($sortedarray[$count-1],0,$mat);
  22. my $temp=$upperlimit;
  23.  
  24. print("\n",$temp);
  25.  
  26. while($temp>=$lowerlimit)
  27. {
  28. $word=substr($sortedarray[$temp],$mat,length($sortedarray[$temp]));
  29. if($word eq "")
  30. {
  31. push @oparray,"\\s";
  32. }
  33. else
  34. {
  35. push @oparray ,$word;
  36. }
  37.  
  38. $temp--;
  39. }
  40. print ("\n",@oparray);
  41. print("\n",$upperlimit);
  42. if(($upperlimit)==(scalar(@sortedarray)-1))
  43. {
  44. die "Terminated ";
  45. #print $upperlimit+1;
  46. #print "All the words are parsed";
  47. #last;
  48. }
  49. else
  50. {
  51. $lowerlimit=$upperlimit+1;
  52. $count=$lowerlimit;
  53. $inc=1;
  54. func();
  55. }
  56. }
  57. }
  58. print "All the words are parsed";
  59. sub func
  60. {
  61. if (defined $sortedarray[$count])
  62. {
  63. $base=substr($sortedarray[$count],0,$inc);
  64. }
  65. else
  66. {
  67. last;
  68. }
  69. if (defined $sortedarray[$count+1])
  70. {
  71. $match=substr($sortedarray[$count+1],0,$inc) ;
  72. }
  73. else
  74. {
  75. if (defined $sortedarray[$count-1])
  76. {
  77. $s=substr($sortedarray[$count-1],0,$inc);
  78. }
  79. else
  80. {
  81. last;
  82. }
  83. if($s eq $base)
  84. {
  85. $upperlimit=$count;
  86. $count = $lowerlimit;
  87. $inc++;
  88. #print $inc;
  89. func();
  90. }
  91. else
  92. {
  93. last;
  94. }
  95. }
  96. print("\n",$base," ",$match);
  97. $count++;
  98. if($base ne $match)
  99. {
  100. if(($count-1) == $lowerlimit)
  101. {
  102. my $lcount=$count;
  103. my $ucount=$count+1;
  104. if($ucount>=scalar(@sortedarray))
  105. {
  106. $upperlimit=$count;
  107. $mat=$inc-1;
  108. splitter();
  109. }
  110. else
  111. {
  112. my $ulimit=$upperlimit;
  113. print("\n",$lcount,"\n",$ucount,"\n",$ulimit);
  114. while($ulimit>=$count)
  115. {
  116. my $new=substr($sortedarray[$lcount],0,$inc);
  117. print("\n",$new);
  118. my $new1=substr($sortedarray[$ucount],0,$inc);
  119. print(" ",$new1);
  120. if($new eq $new1)
  121. {
  122. $upperlimit=$lcount-1;
  123. print("\n",$upperlimit);
  124. $mat=$inc-1;
  125. print("\n",$mat);
  126. splitter();
  127. }
  128. else
  129. {
  130. $ulimit--;
  131. $lcount++;
  132. $ucount++;
  133. print("\n",$lcount,"\n",$ucount,"\n",$ulimit);
  134. }
  135. }
  136. $mat=$inc-1;
  137. print $mat;
  138. splitter();
  139. }
  140. }
  141. else
  142. {
  143. $inc++;
  144. print $inc;
  145. unless(($count) == $upperlimit)
  146. {
  147. $count=$lowerlimit;
  148. func();
  149. }
  150. }
  151. }
  152. else
  153. {
  154. $upperlimit=$count;
  155. func();
  156. }
  157. }
  158. func();
  159.  
Runtime error #stdin #stdout 0.11s 32912KB
stdin
Standard input is empty
stdout
All the words are parsed
a a
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an
an an