ELF><@.@8 @@@Qtd@@Ptd   d6d6  pxp)  Rtd  @@@$$@@@PPP  PPP c cXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX` ii #`_ ui -`` h9``D`ui -` ? ?   UN(US0Uy8U_@UHUPUQXUV`UXhU_pU^xUUdUlUtUzUUUUUUU UUNUSUyV_VVV V(VQ0VV8VX@V_HV^PVXVd`VlhVtpVzxVwVVVVVV VW@WX Z[]p^_Pab 0deg"h)i/`k8l@@nIoR qXr^tdpukvsPx{y0{|؀~gMHpPUXFY P(8`8H$PX`YhpxOn 67} (08@HPX ` h p x  ! "(#0%8&@'H(P)X*`+h,p-x./0123456789:;<=>?@AB C(D0E8F@GHHPIXJ`KhLpMxNOPQRSTUVWXYZ[\]^_`ab c(d0e8f@gHhPiXj`khlpmxnopqrstuvwxyz{|}~ (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@ H P X ` hpx !"#$ %(&0'8(@)H*P+X,`-h.p/x0123456789:;<=>?@ABCD E(F0G8H@IHJPKXL`MhNpOxPQRSTUVWXYZ[\]^_`abcd e(f0g8h@iHjPkXl`mhnpoxpqrstuvwxyz{|}~ (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx      (  0  8  @  H P X ` h p x               ! " # $!%!&!'!( !)(!*0!+8!,@!-H!.P!/X!0`!1h!2p!3x!4!5!6!7!8!9!:!;!<!=!>!?!@!A!B!C!D"E"F"G"H "I("J0"K8"L@"MH"NP"PX"Q`"Rh"Sp"Tx"U"V"W"X"Y"Z"["\"]"^"_"`"a"b"c"d"e#f#g#h#i #j(#k0#l8#m@#nH#oP#pX#q`#rh#sp#tx#u#v#w#x#y#z#{#|#}#~#######$$$$ $($0$8$@$H$P$X$`$h$p$x$$$$$$$$$$$$$$$$$%%%% %(%0%8%@%H%P%X%`%h%p%x%%%%%%%%%%%%%%%%%&&&& &(&0&8&@&H&P&X&`&h&p&x&&&&&&&&&&&&&&&&&'''' '('0'8'@'H'P'X'`'h'p'x'''''''''''''''''( ( ( (  ( ((0(8(@(H(P(X(`(h(p(x((((((((( (!("(#($(%(&('(()))*)+), )-().0)/8)0@)1H)2P)3X)4`)5h)6p)7x)8)9):);)<)=)>)?)@)A)B)C)D)E)F)G)H*I*J*K*L *M(*N0*O8*P@*QH*RP*SX*T`*Uh*Vp*Wx*X*Y*Z*[*\*]*^*_*`*a*b*c*d*e*f*g*h+i+j+k+l +m(+n0+o8+p@+qH+rP+sX+t`+uh+vp+wx+x+y+z+{+|+}+~++++++++++,,,, ,(,0,8,@,H,P,X,`,h,p,x,,,,,,,,,,,,,,,,,---- -(-0-8-@-H-P-X-`-h-p-x-----------------.... .(.0.8.@.H.P.X.`.h.p.x.................//// /(/0/8/@/H/P/X/`/h/p/x/////////////////0 0 0 0  0 (00080@0H0P0X0`0h0p0x000000000 0!0"0#0$0%0&0'0(1)1*1+1, 1-(1.01/810@11H12P13X14`15h16p17x18191:1;1<1=1>1?1@1A1B1C1D1E1F1G1H2I2J2K2L 2M(2N02O82P@2QH2RP2SX2T`2Uh2Vp2Wx2X2Y2Z2[2\2]2^2_2`2a2b2c2d2e2f2g2h3i3j3k3l 3m(3o03p83q@3rH3sP3tX3u`3vh3wp3xx3y3z3{3|3}3~333333333334444 4(40484@4H4P4X4`4h4p4x444444444444444445555 5(50585@5H5P5X5`5h5p5x555555555555555556666 6(60686@6H6P6X6`6h6p6x666666666666666667777 7(70787@7H7P7X7`7h7p7x777777777777777 7 7 8 8 88 8(80888@8H8P8X8`8h8p8x888888 8!8"8#8$8%8&8'8(8)8*8+9,9-9.9/ 90(91092893@94H95P96X97`98h99p9:x9;9<9=9>9?9@9A9B9C9D9E9F9G9H9I9J9K:L:M:N:O :P(:Q0:R8:S@:TH:UP:VX:W`:Xh:Yp:Zx:[:\:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k;l;m;n;o ;p(;q0;r8;s@;tH;uP;vX;w`;xh;yp;zx;{;|;};~;;;;;;;;;;;;;<<<< <(<0<8<@<H<P<X<`<h<p<x<<<<<<<<<<<<<<<<<==== =(=0=8=@=H=P=X=`=h=p=x=================>>>> >(>0>8>@>H>P>X>`>h>p>x>>>>>>>>>>>>>>>>>???? ?(?0?8?@?H?P?X?`?h?p?x??????????????? ? ? @ @@@ @(@0@8@@@H@P@X@`@h@p@x@@@@ @!@"@#@$@%@&@'@(@)@*@+@,@-A.A/A0A1 A2(A30A48A5@A8HA9PA:XA;`A<hA=pA>xA?A@AAABACADAEAFAGAHAIAJAKALAMANAOBPBQBRBS BT(BU0BV8BW@BXHBYPBZXB[`B\hB]pB^xB_B`BaBbBcBdBeBfBgBhBiBjBkBlBmBnBoCpCqCrCs Ct(Cu0Cv8Cw@CxHCyPCzXC{`C|hC}pC~xCCCCCCCCCCCCCCCCCDDDD D(D0D8D@DHDPDXD`DhDpDxDDDDDDDDDDDDDDDDDEEEE E(E0E8E@EHEPEXE`EhEpExEEEEEEEEEEEEEEEEEHH?HtfH5?%?@%?h%?h%?h%?h%?h%?h%?h%?hp%?h`%?h P%?h @%?h 0%?h %z?h %r?h%j?h%b?h%Z?h%R?h%J?h%B?h%:?h%2?h%*?hp%"?h`%?hP%?h@% ?h0%?h %>h%>h%>h%>h %>h!%>h"%>h#%>h$%>h%%>h&%>h'p%>h(`%>h)P%>h*@%>h+0%>h, %z>h-%r>h.%j>h/%b>h0%Z>h1%R>h2%J>h3%B>h4%:>h5%2>h6%*>h7p%">h8`%>h9P%>h:@% >h;0%>h< %=h=%=h>%=h?%=h@%=hA%=hB%=hC%=hD%=hE%=hF%=hGp%=hH`%=hIP%=hJ@%=hK0%=hL %z=hM%r=hN%j=hO%b=hP%Z=hQ%R=hR%J=hS%B=hT%:=hU%2=hV%*=hWp%"=hX`%=hYP%=hZ@% =h[0%=h\ %<h]%<h^%<h_%<h`%<ha%<hb%<hc%<hd%<he%<hf%<hgp%<hh`%<hiP%<hj@%<hk0%<hl %z<hm%r<hn%j<ho%b<hp%Z<hq%R<hr%J<hs%B<ht%:<hu%2<hv%*<hwp%"<hx`%<hyP%<hz@% <h{0%<h| %;h}%;h~%;h%;h%;h%;h%;h%;h%;h%;h%;hp%;h`%;hP%;h@%;h0%;h %z;h%r;h%j;h%b;h%Z;h%R;h%J;h%B;h%:;h%2;h%*;hp%";h`%;hP%;h@% ;h0%;h %:h%:h%:h%:h%:h%:h%:h%:h%:h%:h%:hp%:h`%:hP%:h@%:h0%:h %z:h%r:h%j:h%b:h%Z:h%R:h%J:h%B:h%::h%2:h%*:hp%":h`%:hP%:h@% :h0%:h %9h%9h%9h%9h%9h%9h%9h%9h%9h%9h%9hp%9h`%9hP%9h@%9h0%9h %z9h%r9h%j9h%b9h%Z9h%R9h%J9h%B9h%:9h%29h%*9hp%"9h`%9hP%9h@% 9h0%9h %8h%8h%8h%8h%8h%8h%8h%8h%8h%8h%8hp%8h`%8hP%8h@%8h0%8h %z8h%r8h%j8h%b8h%Z8h%R8h%J8h%B8h%:8h%28h%*8hp%"8h`%8hP%8h@% 8h0%8h %7h%7h%7h%7h%7h%7h%7h%7h%7h%7h%7hp%7h`%7h P%7h @%7h 0%7h  %z7h %r7h%j7h%b7h%Z7h%R7h%J7h%B7h%:7h%27h%*7hp%"7h`%7hP%7h@% 7h0%7h %6h%6h%6h%6h %6h!%6h"%6h#%6h$%6h%%6h&%6h'p%6h(`%6h)P%6h*@%6h+0%6h, %z6h-%r6h.%j6h/%b6h0%Z6h1%R6h2%J6h3%B6h4%:6h5%26h6%*6h7p%"6h8`%6h9P%6h:@% 6h;0%6h< %5h=%5h>%5h?%5h@%5hA%5hB%5hC%5hD%5hE%5hF%5hGp%5hH`%5hIP%5hJ@%5hK0%5hL %z5hM%r5hN%j5hO%b5hP%Z5hQ%R5hR%J5hS%B5hT%:5hU%25hV%*5hWp%"5hX`%5hYP%5hZ@% 5h[0%5h\ %4h]%4h^%4h_%4h`%4ha%4hb%4hc%4hd%4he%4hf%4hgp%4hh`%4hiP%4hj@%4hk0%4hl %z4hm%r4hn%j4ho%b4hp%Z4hq%R4hr%J4hs%B4ht%:4hu%24hv%*4hwp%"4hx`%4hyP%4hz@% 4h{0%4h| %3h}%3h~%3h%3h%3h%3h%3h%3h%3h%3h%3hp%3h`%3hP%3h@%3h0%3h %z3h%r3h%j3h%b3h%Z3h%R3h%J3h%B3h%:3h%23h%*3hp%"3h`%3hP%3h@% 3h0%3h %2h%2h%2h%2h%2h%2h%2h%2h%2h%2h%2hp%2h`%2hP%2h@%2h0%2h %z2h%r2h%j2h%b2h%Z2h%R2h%J2h%B2h%:2h%22h%*2hp%"2h`%2hP%2h@% 2h0%2h %1h%1h%1h%1h%1h%1h%1h%1h%1h%1h%1hp%1h`%1hP%1h@%1h0%1h %z1h%r1h%j1h%b1h%Z1h%R1h%J1h%B1h%:1h%21h%*1hp%"1h`%1hP%1h@% 1h0%1h %0h%0h%0h%0h%0h%0h%0h%0h%0h%0h%0hp%0h`%0hP%0h@%0h0%0h %z0h%r0h%j0h%b0h%Z0h%R0h%J0h%B0h%:0h%20h%*0hp%"0h`%0hP%0h@% 0h0%0h %/h%/h%/h%/h%/h%/h%/h%/h%/h%/h%/hp%/h`%/h P%/h @%/h 0%/h  %z/h %r/h%j/h%b/h%Z/h%R/h%J/h%B/h%:/h%2/h%*/hp%"/h`%/hP%/h@% /h0%/h %.h%.h%.h%.h %.h!%.h"%.h#%.h$%.h%%.h&%.h'p%.h(`%.h)P%.h*@%.h+0%.h, %z.h-%r.h.%j.h/%b.h0%Z.h1%R.h2%J.h3%B.h4%:.h5%2.h6%*.h7p%".h8`%.h9P%.h:@% .h;0%.h< %-h=%-h>%-h?%-h@%-hA%-hB%-hC%-hD%-hE%-hF%-hGp%-hH`%-hIP%-hJ@%-hK0%-hL %z-hM%r-hN%j-hO%b-hP%Z-hQ%R-hR%J-hS%B-hT%:-hU%2-hV%*-hWp%"-hX`%-hYP%-hZ@% -h[0%-h\ %,h]%,h^%,h_%,h`%,ha%,hb%,hc%,hd%,he%,hf%,hgp%,hh`%,hiP%,hj@%,hk0%,hl %z,hm%r,hn%j,ho%b,hp%Z,hq%R,hr%J,hs%B,ht%:,hu%2,hv%*,hwp%",hx`%,hyP%,hz@% ,h{0%,h| %+h}%+h~%+h%+h%+h%+h%+h%+h%+h%+h%+hp%+h`%+hP%+h@%+h0%+h %z+h%r+h%j+h%b+h%Z+h%R+h%J+h%B+h%:+h%2+h%*+hp%"+h`%+hP%+h@% +h0%+h %*h%*h%*h%*h%*h%*h%*h%*h%*h%*h%*hp%*h`%*hP%*h@%*h0%*h %z*h%r*h%j*h%b*h%Z*h%R*h%J*h%B*h%:*h%2*h%**hp%"*h`%*hP%*h@% *h0%*h %)h%)h%)h%)h%)h%)h%)h%)h%)h%)h%)hp%)h`%)hP%)h@%)h0%)h %z)h%r)h%j)h%b)h%Z)h%R)h%J)h%B)h%:)h%2)h%*)hp%")h`%)hP%)h@% )h0%)h %(h%(h%(h%(h%(h%(h%(h%(h%(h%(h%(hp%(h`%(hP%(h@%(h0%(h %z(h%r(h%j(h%b(h%Z(h%R(h%J(h%B(h%:(h%2(h%*(hp%"(h`%(hP%(h@% (h0%(h %'h%'h%'h%'h%'h%'h%'h%'h%'h%'h%'hp%'h`%'h P%'h @%'h 0%'h  %z'h %r'h%j'h%b'h%Z'h%R'h%J'h%B'h%:'h%2'h%*'hp%"'h`%'hP%'h@% 'h0%'h %&h%&h%&h%&h %&h!%&h"%&h#%&h$%&h%%&h&%&h'p%&h(`%&h)P%&h*@%&h+0%&h, %z&h-%r&h.%j&h/%b&h0%Z&h1%R&h2%J&h3%B&h4%:&h5%2&h6%*&h7p%"&h8`%&h9P%&h:@% &h;0%&h< %%h=%%h>%%h?%%h@%%hA%%hB%%hC%%hD%%hE%%hF%%hGp%%hH`%%hIP%%hJ@%%hK0%%hL %z%hM%r%hN%j%hO%b%hP%Z%hQ%R%hR%J%hS%B%hT%:%hU%2%hV%*%hWp%"%hX`%%hYP%%hZ@% %h[0%%h\ %$h]%$h^%$h_%$h`%$ha%$hb%$hc%$hd%$he%$hf%$hgp%$hh`%$hiP%$hj@%$hk0%$hl %z$hm%r$hn%j$ho%b$hp%Z$hq%R$hr%J$hs%B$ht%:$hu%2$hv%*$hwp%"$hx`%$hyP%$hz@% $h{0%$h| %#h}%#h~%#h%#h%#h%#h%#h%#h%#h%#h%#hp%#h`%#hP%#h@%#h0%#h %z#h%r#h%j#h%b#h%Z#h%R#h%J#h%B#h%:#h%2#h%*#hp%"#h`%#hP%#h@% #h0%#h %"h%"h%"h%"h%"h%"h%"h%"h%"h%"h%"hp%"h`%"hP%"h@%"h0%"h %z"h%r"h%j"h%b"h%Z"h%R"h%J"h%B"h%:"h%2"h%*"hp%""h`%"hP%"h@% "h0%"h %!h%!h%!h%!h%!h%!h%!h%!h%!h%!h%!hp%!h`%!hP%!h@%!h0%!h %z!h%r!h%j!h%b!h%Z!h%R!h%J!h%B!h%:!h%2!h%*!hp%"!h`%!hP%!h@% !h0%!h % h% h% h% h% h% h% h% h% h% h% hp% h`% hP% h@% h0% h %z h%r h%j h%b h%Z h%R h%J h%B h%: h%2 h%* hp%" h`% hP% h@% h0% h %h%h%h%h%hп%h%h鰿%h頿%h鐿%h逿%hp%h`%h P%h @%h 0%h  %zh %rh%jh%bh%Zhо%Rh%Jh鰾%Bh頾%:h鐾%2h逾%*hp%"h`%hP%h@% h0%h %h%h%h%h %h!н%h"%h#鰽%h$頽%h%鐽%h&逽%h'p%h(`%h)P%h*@%h+0%h, %zh-%rh.%jh/%bh0%Zh1м%Rh2%Jh3鰼%Bh4頼%:h5鐼%2h6逼%*h7p%"h8`%h9P%h:@% h;0%h< %h=%h>%h?%h@%hAл%hB%hC鰻%hD頻%hE鐻%hF逻%hGp%hH`%hIP%hJ@%hK0%hL %zhM%rhN%jhO%bhP%ZhQк%RhR%JhS鰺%BhT頺%:hU鐺%2hV逺%*hWp%"hX`%hYP%hZ@% h[0%h\ %h]%h^%h_%h`%haй%hb%hc鰹%hd頹%he鐹%hf逹%hgp%hh`%hiP%hj@%hk0%hl %zhm%rhn%jho%bhp%Zhqи%Rhr%Jhs鰸%Bht頸%:hu鐸%2hv逸%*hwp%"hx`%hyP%hz@% h{0%h| %h}%h~%h%h%hз%h%h鰷%h頷%h鐷%h逷%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zhж%Rh%Jh鰶%Bh頶%:h鐶%2h逶%*hp%"h`%hP%h@% h0%h %h%h%h%h%hе%h%h鰵%h頵%h鐵%h逵%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zhд%Rh%Jh鰴%Bh頴%:h鐴%2h逴%*hp%"h`%hP%h@% h0%h %h%h%h%h%hг%h%h鰳%h頳%h鐳%h逳%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zhв%Rh%Jh鰲%Bh頲%:h鐲%2h進%*hp%"h`%hP%h@% h0%h %h%h%h%h%hб%h%h鰱%h頱%h鐱%h週%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zhа%Rh%Jh鰰%Bh頰%:h鐰%2h逰%*hp%"h`%hP%h@% h0%h %h%h%h%h%hЯ%h%h鰯%h頯%h鐯%h逯%hp%h`%h P%h @%h 0%h  %zh %rh%jh%bh%ZhЮ%Rh%Jh鰮%Bh頮%:h鐮%2h逮%*hp%"h`%hP%h@% h0%h %h%h%h%h %h!Э%h"%h#鰭%h$頭%h%鐭%h&逭%h'p%h(`%h)P%h*@%h+0%h, %zh-%rh.%jh/%bh0%Zh1Ь%Rh2%Jh3鰬%Bh4頬%:h5鐬%2h6逬%*h7p%"h8`%h9P%h:@% h;0%h< %h=%h>%h?%h@%hAЫ%hB%hC鰫%hD頫%hE鐫%hF逫%hGp%hH`%hIP%hJ@%hK0%hL %zhM%rhN%jhO%bhP%ZhQЪ%RhR%JhS鰪%BhT頪%:hU鐪%2hV逪%*hWp%"hX`%hYP%hZ@% h[0%h\ %h]%h^%h_%h`%haЩ%hb%hc鰩%hd頩%he鐩%hf逩%hgp%hh`%hiP%hj@%hk0%hl %zhm%rhn%jho%bhp%ZhqШ%Rhr%Jhs鰨%Bht頨%:hu鐨%2hv逨%*hwp%"hx`%hyP%hz@% h{0%h| %h}%h~%h%h%hЧ%h%h鰧%h頧%h鐧%h逧%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%ZhЦ%Rh%Jh鰦%Bh頦%:h鐦%2h逦%*hp%"h`%hP%h@% h0%h %h%h%h%h%hХ%h%h鰥%h頥%h鐥%h逥%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%ZhФ%Rh%Jh鰤%Bh頤%:h鐤%2h逤%*hp%"h`%hP%h@% h0%h %h%h%h%h%hУ%h%h鰣%h頣%h鐣%h連%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%ZhТ%Rh%Jh鰢%Bh頢%:h鐢%2h逢%*hp%"h`%hP%h@% h0%h %h%h%h%h%hС%h%h鰡%h頡%h鐡%h逡%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%ZhР%Rh%Jh鰠%Bh頠%:h鐠%2h造%*hp%"h`%hP%h@% h0%h %h%h%h%h%hП%h%h鰟%h頟%h鐟%h速%hp%h`%h P%h @%h 0%h  %zh %rh%jh%bh%ZhО%Rh%Jh鰞%Bh頞%:h鐞%2h逞%*hp%"h`%hP%h@% h0%h %h%h%h%h %h!Н%h"%h#鰝%h$頝%h%鐝%h&逝%h'p%h(`%h)P%h*@%h+0%h, %zh-%rh.%jh/%bh0%Zh1М%Rh2%Jh3鰜%Bh4頜%:h5鐜%2h6逜%*h7p%"h8`%h9P%h:@% h;0%h< % h=% h>% h?% h@% hAЛ% hB% hC鰛% hD頛% hE鐛% hF逛% hGp% hH`% hIP% hJ@% hK0% hL %z hM%r hN%j hO%b hP%Z hQК%R hR%J hS鰚%B hT頚%: hU鐚%2 hV通%* hWp%" hX`% hYP% hZ@% h[0% h\ % h]% h^% h_% h`% haЙ% hb% hc鰙% hd頙% he鐙% hf這% hgp% hh`% hiP% hj@% hk0% hl %z hm%r hn%j ho%b hp%Z hqИ%R hr%J hs鰘%B ht領%: hu鐘%2 hv逘%* hwp%" hx`% hyP% hz@% h{0% h| % h}% h~% h% h% hЗ% h% h鰗% h頗% h鐗% h逗% hp% h`% hP% h@% h0% h %z h%r h%j h%b h%Z hЖ%R h%J h鰖%B h頖%: h鐖%2 h逖%* hp%" h`% hP% h@% h0% h % h% h% h% h% hЕ% h% h鰕% h頕% h鐕% h逕% hp% h`% hP% h@% h0% h %z h%r h%j h%b h%Z hД%R h%J h鰔%B h頔%: h鐔%2 h途%* hp%" h`% hP% h@% h0% h LHII)I)IvBMfHnLT 1IflIA AD H L9uLHHL9jHJLBHtL9THt H9FHt(<HMH|$8MHHH$IHHHkH|$I|H<$H$HHD$D$XHk`HD`H$HIHH$AD$HH$DHH$DD$`DD$XHD$HH$H HxHHHHxHxHHH)H)΁HHT$PH;$u|$ E`LL$p$9|$ LD$hMHL$H4$LT$HA,(1A $YX HH;$uD9d$`t4HcD$XNLBLIDYBYXHXHHMLH9zHL$PLD$L$OH$H`H|$HD$H$H<$H;$cE~H<$`H$H$L$IHH$H1L軮uLH$L$@H=YFHRFH9tHHt H=)FH5"FH)HH?HHHtHuHtfD=Eu/UH=Ht H=rͥhE]{f.HD$H=H5H>!HD$HrH"HD$H H#HD$ L,HU%HD$(L H&HD$0H(HD$8Hz)HD$@H*HD$HHB,HD$PH-HD$XH /HD$`Hn0HD$hH1HD$pH63HD$xH4H$H5H$H\7H$H8H$H:H$H;H$H<H=$=@HtHx HHt f.ff.AWAVAUATIUHH~H5NH9tIIAŅtBH A$f.z f/A]A\DA]A^A_fH(IHH}H5 H9t סzHH5軜HHt,LHL5HExHHELHHHD=C]DA\A]A^A_E1]A\HADA]A^A_@HIA$x HItZ f.HEHdHSTH1|H @L8A$H(|HHEnHaff.fAW1IϹAVAUIATIUHSH(Lt$@LD$LLL$HHD$ HD$($HD$0D$HD$8H=iHHH;LsD$H\ϟ_MLcd$Hc,$HD$0HD$8A}nLHHEIEHT$ SHD$(gH;L褰HH(H;-HEHHESHHEEH蠳8Hc$hL(1LH;{jHLH{@LWLH{HT$ HME1HW@HxjhjHH HBL腋-{H@HT$(HE1HxjhjLL$(HH HL!{PH?HT$8HE1HxjhjLL$8HH Ht~Lum{HD?HT$0HE1HxjhjL$HH HtLbf.H-HM0H=D$H([]A\A]A^A_ÐLH=>H5HT$赗HT$HHHH5bH=>0HjH=H^@H;0LHL⋜$hLS$hLL$(LD$Y^OfH=9>H5^HHt=HIHEx HHEtPD$H5AM"A胻H=1eIHH5JDH fDHH=1'H5HLDHEx HHEttIE1L=1vLc` HH5ZH8ʿD1E1L=+@L)J< 1HD$LD$.H航NHufIH0H HI$x HI$tUHf.HyH5H8 D軗HfDHLH H5šH8þ~ff.AWAVIAUIATUHSHH(HH9GH5teH5vHAE1H,HEH5HPHH81H1H([]A\A]A^A_DH5HqHEH;VtHpH=AMt L LxEJEAHD$"fDEE1E1HD$H5Hմt0H5{HH5uHHD$讴H|$ H5`H蒴LE1tMt!LHT$LD$MHT$LD$HD$HL$LaM9MOLH)ȹHHI9L謗IHHcIH~*H5̾1ɋHcHtHIH9Mt7I9 0DHcLLH)tIJDIM9uHExHHEH([]A\A]A^A_HQHtIH9}fDHiLLH5TH81HLHEHHEH躦1H5ϞHLD$L|$LD$HT$IH@ I$IHI$;LHT$LD$MHT$LD$fDHD$HH5H葌H5HHD$]LD$EtEH}H5E1H9tLD$E1ELD$AAMtLLD$LD$LxMtIx HIHD$fL訞LIH)f.HD$E1E1@H5K謋H|$IHx HHMLLD$*LD$L)IIHILϤf.H踤tH=D2H5萹1_fH=!2H5zmHD$AHԏML{HD$HEEAALD$LD$LH5jLD$Mt9M8Ex1IAM8t E1THLHD$豣HD$:AE1,HD$^AAHۺ>H=HDUIHfvS1HX HLHL$H$xHHH$0H LHDŽ$ H$@H$PH$XH$`H$hH$pH$xH$H$x)$XH$H$DŽ$HDŽ$(HDŽ$8HDŽ$HDŽ$DŽ$DŽ$DŽ$DŽ$DŽ$HDŽ$DŽ$HDŽ$)$hH$H$H$H$H$H$H$H$H$H$H$(H$8H$HHŸHDŽ$DŽ$DŽ$ HDŽ$DŽ$HDŽ$DŽ$HDŽ$DŽ$HDŽ$HDŽ$ DŽ$HDŽ$0HDŽ$@H$P5H$PH$PH$PH$PH$PH$PH$PH$PH$xPH$pPH$`PH$PPH$@PH$8PH$0PH$PH$PH$PH$PH$PH$PH$PH$P1L$L$軏HA1EH$(H$H$ DŽ$H $$$Hc$H$ уx+HcHTHH) HH9t8tH$8H$H$0DŽ$H @$$ Hc$H$0уx$HcHTHH) HH9t8tH$HH$H$@DŽ$H ݝ$$tHc$H$@уx(HcHTHH)D HH9t8tH$PH$HН$$uPH$@HtߵH$0Ht͵H$ Ht軵H$H$HX []H$XH$He$$tH$hH$H7$$PH$pH$Hʝ$$H$xH$H$$H$pH艈H\$H$pt CHD$H$H$pH$xH$H$pH= SH$PH5ɠAHHH|$pH$AQH$UL$OrHD$(AZA[HHD$H$H$HHHDŽ$HH@HD$xtfZ$H$$$u]H=*H\$pH$xHHzHHm虛c?HuH=)HkH$H5VAH$ VH$UL$/qHD$0_AXHtHD$ H$0H$WH5AH@H$SH$8UL$pHD$8ZYH3HD$(H$H$WH5ΟAH@H$AQH$UL$[pHD$@AZA[HHD$0YH$H5H$AHDŽ$H@ H$VH$UL$ oHD$H_AXH HD$8H$HDŽ$H$H5YAH@H$SH$UL$0joHD$PZYHpHD$@H$H$(WH5AH@H$AQH$UL$@nHD$XAZA[HHD$HWH$PH5{H$8AH@H$VH$XUL$PnHD$`_AXHRHD$PH$`H;5H@H$H$H$$tI$AHH9$XH$PHH57H1uH=%H۬HD$PH9$@tHHD$HH9$0tHHD$@H9$ tHHD$8H9$tHoHD$0H9$tHXHD$(H9$tHAH|$ H9$x)n$X$HLH=$H8HAH=$H߫-H6H=m$H轫"sH+H=K$H蛫QH H=)$Hy /HH=$HWH$H;5ktZH$H $$YHD$hAZA[HjHD$XH$@IH5JH$pA H@ H$Hc$H$pVH$HUXHD$p_AXHHD$`H$0H$0NH5dAH@H$Hc$H$8PH$8UL$JXHD$xZYHt|HD$hH$H@H$H9YH$H$$Hc$HH9$0t.H$ HVH5z?mHJ6H$H;5H$H{&$$Hc$H$ HYH5VzHH9$H$H;5JAH$HU$$Hc$H$ HcH5yHH9$PH$H;5ܗH$H/J$$*Hc$H$ HuH5yHH9$H$8舥tfDŽ$Ht DŽ$$D$LD$h1H=xHL$`HT$XHt$PH$H$H$HHc$PHc$P$$H$,P$$H$@P$H$LP$H$XP$H$dPH$hP$$$H$P$$H$H$H$L$L$HİH$$HH$$H$$DH$0$ff.@AWH=AVAUATU趫L5 H=wH IHIF讁IH"H5wLdHI$xHI$HH"H9E@1H֛HUHS xHHUH=H* 1 ]H l$DHtOHH5H8i]LA\A]A^A_@L`}1HP}H [@LiH=vIH5vLHH$qHExHHEH=ώH5vLHHpHExHHEWH=ev諁H5svLHHpHExHHE11H=[vLH5\vHH wpH= Hx HHH=tL%mt>L3OI4$LHH1pHExHHEIpI<$uH5H=OHHt9HH5uLMt"HEx HHEtiL!0E1]A\LA]A^A_f{:fDHx{Hh{HX{UHH{fDH8{(HqH8}u-ȹHE1H5wH8]LA\A]A^A_fH=Ft/~IH봐H)H5H8誏HExHHEuHz~H5ՉHH81vXHΑH5H8O=HH5݉H81vHH5H8HtH5sH8HIH=HGhLOPHGdLGPHG`HO PHG\HWPHGXHwPHGTPHGPPHGLPHGHPHGDPHG@PHGLrHk$HP@H${A$ɾ$O$(LHLHYT@H9uP9tNHcrI@YT@9+YTe9|YHT QHHD$LL$PLLY$L$HދH|$(A9EANE$$.HD$@$DD9EDNE~3IcH$PLL$H5L*LҘLL$DŽ$ H$?tH5LH$LcL~D\$ L$H$HD$@D9i^@ILED9| E9CH$12H,$HL$H$HHD\$ H$DŽ$ts"H5H H5H LHbH褗L$D\$ H$HD$@DBIE1LE,LE1EDAWMAVIAUMATUSHxH|$@H=hH$H$H$ ă$6AA9AM$$,fH=*YY$@A$DŽ$$YaH$hAE-N9OA9NAAEH$DC|DT$+(H$|$|D׉|$ D_AB$D׉$A4:|$x]ꉴ$D0DHމ$8AD\$l$XE$BDD)z$`H$`$HÂ$DHH$H$HL7DT$D\$$L.K1H$HDŽ$HDŽ$<H$8McHcL$ LcL$xIcJDHc$D$\E1HD$PHc$L$HHD$0HAHD$pHHD$Hc$HDHD$ HcD$|H$HDHD$8HDHD$JDH$HDHD$(CR$HH$CHHH$HH$HH$JIH$HH$LHH$HH$HH$HRHD$HDH$t$\;0H$4LLLH$<P$`$`$@$8t$x$p$pH$PAUL$AT$P$P$@L$@L$8$LHpHL$L[LL$\LHL$ Ht$8LL4LAEH<$HH$`IcEALA9ANH5~9҉$\PH$`HLLjt$t$(RLLD$@HL$0H H LjLLH=cH$HPt$`QSQSQSt$hLL$`H$AMHP@HD$p$$$LA(HHHHYT~@H9uȃP9tNHcrH@YT~@9|+YT~9|YHT ~H$0H|$@H57\$`\$`APA9L$HLY$ANLHT$L$,$\$`"H|$@H5ƀ~&H$AuDŽ$H8)$09WHL$pL$XH1L$L$E1Y L$ DAD/r%AIcAHcATAH9}ȍF$0D$H$4A9H$H5^ HcD$ L|LLHlHc$HH4Hc$L|LLLdHcD$|LHtyAE$MH L$Djjj$@$@$@H$tPHc$HDP$8$8$($(UATUAUH$@H$(H$L$ D$HH$H|$HDAEGXHx[]A\A]A^A_DH$AuDŽ$0DŽ$H89ADNE*E11ɸPT$XHcT$ THcLY/r5H$DY H$D9 IcA렍ED9~$0E1EADA9ANHLL$HT$H$XL$,Y$$XH$A9EANE$`$\D$$_DŽ$0$$@$4E1ۅ/9D9'H$H8fD$0@)H<$D\$`Hz$`H$ H|$@H5|_D\$`DŽ$0EMD$ LD$pH$H+$BH$+H$8` HcҍEH$HtHH$fDPHH9t7 T((\8Y\/wBH@H9uAAHt$H<$HyD\$`$`AEH<$HxHt$($`AUD\$`r~+DBH$1McIA?L9u~*HcH$1HA?H9u$09L$PLt$hL$0ID\$`LML$HYM 3|$xMMH)׉$\Hc׉$`HHADL$PjjSt$@t$ t$@t$ht$h$pPH'Y$pH@9ID\$`LL$AELt$hpH$ D\$hH$XLቴ$\H=X$`$TA$(EH$(H$`HjH$dPHD$x$0t$ t$@L$L$V\AHLH=uX$XH0H$8HjHD$pP$0AUt$PL$(L$ \$h$$DHDHD$x@H$$|H0D\$h8D9=TEMD$0A9H$8DD$)H$h D$ At$`LIIH$HHxIcH$H$HTH<A(HcI4:LH9LD$hLL$$H9$D$@HD H9L$L9D$hD$hDD$hD !֋T$`@1HII9IH9$‰@Hc$L$`Ht;J|H$L1AXHH(Y (HHX\(TJH9ű|$`Dʉ)9[|$ HcA@\L(Ћ|$xYHcL 8HcXH\/{ Jx9DT$ \A@BLHc(LYŋL$xXٍL9Hc\/29|$ \A@T|$xHc(LYōDHX\/`H$H5TջMD$HBHL7sLLjH ,sH=T$(H$<P$`H$\P$$$$ $ H$PL$0PvH`D\$DT$<~ H,$D\$XHrH$hHxrDŽ$p.HH$``"H5qH詜 H5qH蕜LHuPH-AED\$XH$HH$8H$H$L$JHH9L\(BXY\/wB HHD$H\fAWIIAVMAUATUSHxL$H|$0L|$hHT$H$A4$LT$ L$LL$(~L$H$|$lLXD$8\$<؉ލ,)ڃT$`AA9AN9LƒHcHcT$hI\IljHD$tHD$PAUHT$dRLLL$hL$H$L\$8H IH5SjH=TjHT$lR$(SH$RH$RATHcT$xITRLATL$H$]A<$ILHppLepLWH=Q$$HHjHT$pRLSt$(AUPATlL\$XH@H5HQL:LT$ u9H|$H5!QHx[]A\A]A^A_H|$0H5%rLT$طLT$LA$$H$Ht$PHD$pD$tH=PL$lA L$XLjHD$tP$t$(RL$L$HT$XSTH0)f.H|$0H5}q5AEtHt$(A$+H$Ht$PHLT$lAT$XjHT$tR$AT|$dD8H= PHIDPL$L$HT$XSH0Hx[]A\A]A^A_@Ht$(+HcITf.零ff.黶ff.{ff. ff.零ff.IHIc~+Hc t$t'PHH9uH1QLIHIc~+Hc t$t'PHH9uH1L~8Hc t1t*H4Hf.H9uÐpv0(HHHf HH9uƃN9tƍqHcq9|Hc9|Hcff.ATHcMLL$~pIIctfIHc t\fA.zQuO.{LLLA\2fuHfAI9uA\@..kD P'(1Hf.AYAHH9uQ9kJHcAYAJ9JHcAYA9,HcAYA.j{W^}HHDA AIYYXAI9uuLMLA\~fDLMLLA\oP((1HA AYYXAHH9u߉Q9 JHcAA YYDXAJ9HcAA YYXA9HcAYAYXAP((1HfA AYYXAHH9u߉Q90JHcAA YYH1LA\GDHHAIYAI9uPv3(1HfDAYAHH9u RIHHIc&IcHc . gHf.AI9ufD@rP(1HA$YYAHH9uQ9SJHcYAYAJ9|3HcYAYA9|HcY AY A D@ǃAD!. f@? P1Hf.AYAHH9uQ9tzJHcAYAJ9RHcAYA93HcAYA@H1LEfDHHHYAYAI9uHHAYHAI9uÍP1HDA,YAHH9uQ9ÍPvC(1HA4YYAHH9uQ9útff.IHIc~+Hc t$t'PHH9uH1CIHIc~,Hc t%t'PHHH9ufDH1ACIHIc~+Hc t$t'PHH9uH1BAWAVAUATUSHA8HT$0HL$8LD$@yE1HH$H5=EMMHcHIHHD$PHHD$XH$Hc HH5DD$AMD$H$YH$(YYAD$\D$|T$x@HHl$lLt$|D$IHLl$xLd$tL$HH$HD$(H$H$HD$PHHD$ H$LxHD$pHD$HLLHL#L\$L$lAGT$t(HD$ Y(t$D$YI YHL$Y\XAGC\$xYYT$|Ct,HD$0~!HLHIATLVbLBA[XLLIHLAgCL$lT$t((H4$HD$(YDT$YH YY\XCAGY\$xYA_T$|AGEt1H|$8DE~$HLaIATLHL$芪_AXH $H $|$HIL\$9|$t |$L\$M]LD$HSHD$@D$LLLH$HLDHHD$@H$d$l\$tHc(HHH$ (YYYY\XH$t$uHĈ[]A\A]A^A_H|$0~Ht$PH\$XIHcH$HLs`HHDH)H HDH$ATH4L<XZLd$tHl$lLt$|Ll$xAWAVAUATUSHHL$H H|$XHT$`LD$PLL$pH$IHӹLHc0HHIH5_HD$hIHHD$xƧHD$`D$D|$D{HL$hLd$PL$H$H\$HHL4HD$ HD$xHt$HDHLIvLLL$(LD$ HL$HT$Dd$YALL$(XLD$ HL$AF(HT$D$d@AWAVAUATUSHHt$ 6H|$8H$H$H$HL$@LD$HLL$P,Hȋ H$9 H$9 HcHH|$HH$1)AÉ$$A$IcH\$(fHHt$dH$HD$0HHD$p$HD$`H$HD$xH#XHD$XHCHt$hHD$@HH5UjjHT$8RU$$8t$`$0$L$L$H$H$H$HHP.T$d$~|HD$ Hc~pH|$Ht$0L$H$L$H$HE1LLMLA9u'HRfHAHD$Xt$d 1Ҿ"H=SRH1ҾH=RHff.AWHAVAUATUSHxHL$(H|$Ht$HHT$ LD$0LL$T2J@H$9=H$HcHHHIH|$P1)ƉÉD$XD$dD$\D$ HD$dH,HD$@HQD$HD$8DD$HL$HH={2jjHT$XHL,R$t$`$$$AUH\$pL$LD$xHt$hH蘙HP~;HcT$d~2L$L<E1fLLLA=IMD9uL$ |$X|$At D$ 7D$\Ht$Ǎ\HHHD$HLT$hH)H=1D$pD$tjjH$P$t$`$$$RLLt$pL$LD$xHt$hL詘A.HP~[HD$H)AxMCLl$PHt$E1AHH$McIL4IHLLAHc t7t7 7K3KPHGH9u@H1)IHA~6Hc1t/Ot&HHfJH9u@HDHJH9uff.fAWMAVAUATUSHcLL$8HIc1IHcIʅt}mfA8.zuus.{[L]LA\LA]A^A_fDue HMك IIfDA AAI9u[]A\A]A^A_..-H +    P (f1HfDAA|(׈((YYYY\X(AALH H9uƒJ92Q(HcADA Y(YYY\AXADQ9Hc(ՃADA Y(YYY\XAAD9Hc(ALAY(YYY\XAADcfD.=!G[H LcHcAMMIJ,1ID((AIILMLHfLEA)AEAJA*DF\DAD)DAQMAD*MBBDBDDQGAD(DYA(AYD(DYAYDYYA\E(DYDYAXE\AXAXX(UB ( (BUGAL8(LIADLA9DA9(HcA4ADYD(DYYHcI<YOA\D(D(DYDYXYYE\XAXXGy9A(ՃEDMcCDC4McOD(AHAYDYD(DYYYYA\D(DYYXE\XAXXAA@9w(HcADA4HcID(HDYYD(DYYYYA\YD(DYXXE\XAX@[LHM]LA\A]A^A_[L]MA\LA]LA^A_PD(D(LLfEEHEL qH H RZD((DވAY(AYA(D(AYEYAY\(AYAYA\XA(AYX(XX(JZH9oQ9JHcHcA A\I AqD(DY(D(DYYYYYA\D(DYYXE\XAXXQAJ9FHcAAtI4N^D(DYY(D(DYYYYA\D(DYYXE\XAXXVF9ADA4(HcID(HXDYYD(DYYYYA\YD(DYXXE\XAX@PLPnD(D(LLfEHELf. ZH H QD((DӈYYD(AYDۈA(D(AYDYAYDY\A(AYAXA\X(A(YXX(IYH9mQ9RJ(HcHcADA4I IYYD(DYD(DYYYYA\D(DYYXE\XAXXQAJ9AD(HcɃA4I4D(N^YDYD(DYYYYA\D(DYYXE\XAXXVF9LEDA(HcIA(pHYYD(DYYAYY\(YYXA\XXX@h[H]1A\LA]A^A_]f.HcH<MكHfDAL$A$(ՃIY(YYY\XAAAI9u=Pb(f1HfDA A|((LjY(YYY\X(A ATH H9uƒJ9Q(HcALAY(YYY\AHcH<MٺHfDAD$A4$(ՃAIAIYD(DYD(DYYYYA\D(DYYXE\XAXXAAAI9} AWMAVAUATUSHcLL$8HIc1IHcI̅mfeA0Ax.ADE.Eلt~Ety.E.AAD̈́-% HMу <<DA AAI9u[]A\A]A^A_.AE.AEȄ.AEȄ.5a;AAEȄt'~H LcHcALMID(AD(D(D(IILE1EEEEJ,LIHML@A)AAD+K+D'_DAD)DAQMD+LBBDBDDQBD(AYA(AYD(EYAYAY\A(AYEYA\XA(AYX(AXX(UB ( (BUGAL8(LIADLE9DA9(D(D(׉HcEADDYAYYHcIHc t7t7 PHGH9u@H1AUHIHATLhLUHSHc1LMcIc9A`HHHMLHHHHLHLHKtM1fDYXHH=uHHL9uLLAu[]A\A]AWIILAVAUATUHSHD$PIc9HT$@Lc(1ELc"H\$HMLHHHHMLHH|$E~^A~W _IErHQJ<ALȺ@H9uIIM9u؋UAuElHL$8J<D$IH|$؍xHfHlH|$HN4HD$IfHH|$zD҉|$Az|$DHHT$Љ|$|$@HD$IHL(HD$J @|$A0(LL RH H XDH(D(ˆDY(YYYA\D(AEXAXX(HPH9uD;T$D$Hc(L<LTNIDYYXHXHILLM9wHt$Lt$PH$L$$L$l$X$|$X`tRH$H$H$H$H$H$`H$|$`_~1Dd$`jMMߋ$ D$@HD$xAAa$|$ mD;$$HD$(IcH$$LL$pLD$hD)HL=HMeH$HHHLTHHD$XIHL$8`|$׃HL$ |$HD$XH|$ N~{A(I 1A $YX HH9u9T$t2HcD$I HLIDYYXHXHILM9uLT$PLD$L$X$$H$0Ht$hD$ H$8Ht$pH$@H$H$HH$H$PH$9$LM@a$HD$HHc$9H|$xHL$Hl$HL,Hȋ?HL$@HD$0H$HL$HD$ B$GHHTm|$HHHH$H&H$@a<$D$h|$_HD$((EHt$ H$HºHL$L|$PLtD$@HD$XH&<@a_NUHLc)Lډt$pL$ӉL$D7t$xH9DD׃H$H$HDH$McM _HD$PE1MHD$`K [HT$`LHH$1f,YXHH=uHLI9uHD$`IL9$u9{H$D$@`MHL$XD$@H$HL$P9D$h?HcD$h;D$H|$(/Ht$ HL$HAAH$AAMGHHL$8LH|$LLHAr(I<1A $YX HH9uIcA9t0H|$HHLIYYXJXJHHL$H9D$}Ht$$Ht$$Ht$0Ht$ 9$<$jD$H|$(/HcMAD$@HL$IHLH1ADMD;t$@u|$_LL$ f.hD;$$HD$(IcHcHH|$8DHIH\$L$Hl$ HDI|$EIHD$HL1L;l$uHD$(EH\$L$Hl$  M9H$HL$XH$HIA1(9t(A $YX HH9uD\$xD9\$pt+BLJIYBYXHXHIHL$HLM9uA$AD$ A`$|$_SAWIAVIAUATMULSHxfo~Ht$H5L$HT$H$HL$ H|$)D$`DAAD$LH$T$PED$HD$<LHD$`Lt$LHD$(HD$HL|$PHD$09l$<Ht$(H|$0HLvTHHLİHM1D$8j$L$HT$ Ht$H|$($LLHrrHGsH$Ht$0(^L$HAEZY~QD$XMMD$\HLD$T$SPHD$lPH$H$$'AEH f/Hx[]A\A]A^A_fDH$Hx[]A\A]A^A_HD$HL$TDIH֋DIʅD9HD>9|nA )D@v9DHc(IDHH@HH9uDA9t#HcJIH9|9|HVHD9xff.@USH/I>AE1҅1ɸ @A9PHcAT/vAN9HcYI4H9tFT/v˃IcA 9HcIQH9@QT/vArAMcC9ALc9ECL\ADA{HD$I<$H4*{ $\$HD$hXAD(T%(YHD$`HD$YHc8HHwXT VXA^DADHTA_AH9\$\$HcADYDADHM6I<4LjzH\$$PD$HcHI4I|>zHD$h\$(X$HcHD$`HJYADY(T5XT 7VXA^ADTA_AAD?H([]A\A]A^A_f.LLyHD$hHD$A^AETHcAff.AWAVAUATUHSH( BHD$hI1IIMMAHHHD$ LT$ADA HcItAY I<LT$AYD\$ XALAY \AxED$HHcH It I| xL$\$ HD$hHc}XAHHw(T%!(YHD$`YXT VXA^DAHToA_AH9\$A?H([]A\A]A^A_AWIAVAUIATUHSHHH$pH$PHt$H$H$`Lc Hc:1LD$hLL$MLHHHHMH|$8HIH|$(Hc9HHIH=HD$PHHD$XCvA9EME($f(H=Md$ *YQY\$t$uH$f/vfd$ A*E^(QH$f$@/v?H$f T$H*QD$D$  T$H^D$/D$H$sf1.EƒD$HH$fX/\$$H$fH$x.(H$L$HT$ LL|$`pDh$H$CD-$WH$H$LHD${HD$H$LHl9EME$/T$ oH$xH\$DŽ$U$D$ 9HBLHjHH$H H=HDHPH$P$$$$$$t$hH$XPL$vD$lH`%f$.Y_L$L$$/ dMcH$D$pD$ BH$$DŽ$DŽ$$9LKfH$h5HD$0HH$HH$H$$JH$A$f.b/Y$/ D$p D$tYD$D$pD$A_/( H$IcD$HHD$0D9:~-$T$Y$Y/v H$D:. H$h E„tMf.DЄtD$tYD$/H$hB vfDH$hHcdH$$;}!H$xD$ YD$Y/HL$(L|$HMcH$d$ FFHHD$8H$xHDH HIלHL$(LH=6HރHHD$8$$WH$HDL$H$pMHL$HH H$xHHHD$8HDIL$H$HLH$H$LHH$J4H$xK4fH$hHc$HHY5IHHύKD$ d$ HH$|f$(Yo \2^^^(YYZ^Y(YXX(XHHQY_D$D$H9tKDJ__L$ L$ Ha$HHY_D$D$H9u|$$D$pT$Hlf./Hc$H\$XIHD$ HD$PIHDH$XL4bf$L$D$ MLHH$DxXH$$P$H$pHT$8L$$H H$LH$H$@D$ t$p$$D$tYD$/D$A_H$D98T$HIcD$HHD$0H|$HL\$($Y_D$D$$(fH|$H$L[$(W5t$@D$f." t$p L$H$LH$H$$HL$(HH5HHD$8$$VL$H\$8HDH$pLHL$^H H$LH$H$zD$p$$$D$tYD$D$A_/ H$D984H$xHcH\$8HL$HDŽ$LHD$0LH=j$HDH$R$$$$$$H\$hSL L$<AUHT$paH`f.$D Lc$HL$(HHt$A\$HcHD$8HDHL'f۸$$D$pfDŽ$.FD$HLd$0d$D$HH$hBifH$HL$ eL$ hH$^(^Y(YX@^YXQYD$$H$A\$E(XD`IcHt$XH$XD$@HD$ HD$P$$HD$L4HPM$L$H$H|$0H$xLL$i $(H H$H$H$L~D$@t$p$$@$\$$f1D$.(EA\$E…D$HD$pL$Ht$`H$H$H$$$f.$/$w D$pf.;/2Hc$H\$XH$XIHD$ HD$PIHDL4A_HMHH$$LH='DŽ$j$H$P$$$$$$$L$0AUH$HT$pH`f.$H|$LLq f$H$h5cfDŽ$.FD$HD$pt$@D$HHD$ HHD$x]@H$D$L$L$ H$LPH$PL$L$xH$H$2AXAY$D$$/d$O|$pL$ 2$f.D$H|$(HL$A_HcHD$8HDL,}@D$L$HA_;D$L%$H\$`D$ADMLLLHL$@~MMLfք$LHH$WS$$W:$ ܌LLHT$@YT$L$(/s$AD9$N$H$$Ht$x$D$CfDIcHD$0 DT$xL-$H\$H$Hl$`L$AMLLLHT$ FMMLfք$LHH$W$$W$ 褋LLH֏L$ YL$L$(/s$AD9t$xQ$$$H$L$$DH$H"H$EAډH$DH$d$`H[]A\A]A^A_$H$1t fHH;LP9}HcH+HHD$(HL$8D$ $$SHD$Ht$8H$pLHLL$H H$LH$H$D$ D$p$$8(^^(YYXG^YH$ DDEDŽ$D$@DHT$(T$ HHLH=ǹHHD$@j$HDH$R$$$$$$Ht$hVL H$HT$pN\$h_$@\$h$<H`T$ ff.;>ff.+Rff.Xff.+off.{ff.2ff. ff.+ff.{ff.nff.[sff.Dff.:ff.Kuff.k=ff.Fff.gff.ff.Yff.Kff.{ff.鋐ff.Bff.ff.KJff.]ff.{wff.{Nff.;Off.9ff.ff.>ff.@ff.[ff.+Lff.:ff._ff.Zff.+:ff.k8ff.黏ff.+[ff.+Pff.+Lff.+Yff.{-ff.ff.?ff.nff.1ff.+Nff.Tff.Aff.ۀff.Kyff.;ff.kff.Kff.ksff.eff.[pff.qff.˗ff.`ff.+ff.ff.;ff.鋈ff.cff.nff.Aff.˃ff.^ff. :ff.pff.雏ff.ff.Xff.ff.kff.pff.off.+vff.Gff.;;ff.7ff.+aff.1ff.@ff.Hff.kff.K+ff.sff.Sff.Fff.{kff.Tff.@ff.ff.+}ff.Kff.Dff. ]ff.{8ff.2ff.[Pff.yff.+5ff.Hff.k,ff. kff.off.`ff.黇ff.+Sff.K*ff.ff.[aff.;Kff.tff.KVff.)ff.[zff.-ff.ff.Sff.;off.xff.aff.KOff.lff.ff.Xff.kRff.Kff.sff.iff.)ff._ff.黊ff.Ksff.{.ff.ff.:ff.^ff.hff.aff.yff.?ff.Wff.Dff.[+ff.pff.{Iff.;ff.;Aff.K@ff._ff.{dff.雄ff.{Uff.qff.Xff.k@ff.Pff. ff.+tff.Kff.+Sff.ˈff.+ff.vff.^ff.{Kff.ff.(ff.[ff.Aff.;qff.ۂff. Bff.鋆ff.{Pff.Pff.5ff. ff.Kff.3ff.Aff.;ff.ff.+hff. Sff.Iff.~ff.:ff.@ff.{aff.[uff.[nff.[Bff.K2ff.lff. "ff.*ff. Qff.{ff.$ff.1ff.Xff.{(ff. \ff.Kdff.6ff.fff. ff.hff.Hff. wff.hff.+aff. $ff.k{ff.>ff.%ff. -ff.Xff.cff.{ff.ff.6ff.rff.KHff.;aff.Uff.-ff.$ff.gff.hf.H>HDHHX@AWHW1AVAUATUHSHHHL$PDd$HTRHHH9L|H)A~HAD$Lt$XLl`L%VW@ILHL1RHHx>H9}9IIH)M9uH~%H$A)IGt2HH)[]A\A]A^A_HH[]A\A]A^A_f.H~fo"^IGAGAUATUHSHHtHHpH9t )Aąt;=LHE8D` HD[]A\A]@D`(H[]DA\A]fDHEHHDH5@WH(\IHHXH~kH@1Ht/IEH<"A9DLHH9t:IEHuI|fDeH[]DA\A]fDIE HIELfDL 1L1dME1HcHHL$LH5 MH81ULZ1LpH% fDLHD$ 0HD$ ]fHl$8II|$ LH$E1MMcD"II\$Cp\MG$HL$ HHHL1nCHH HL$H9H)IIL-G$ID$11HXIIH1:'IUHH HtHx HHtH]Qf.{/H]QfATH5WHUHH:HtxHEu3H=BH'4IHEx HHEt2HL]A\HH=G1?$If.H.HL]A\DHH=G]A\3DHt"HHFHH5GH81gSB_Ht 8m9HfAVIAUATUHHzJHLHI IHtH I^HHAHHtdHLL"u?HEx HHEtHL]A\A]A^H-HL]A\A]A^H5JH=sMH5JH=`MH5JH=MMxH5AJH=:MeDATIIHt.LH& IHtH I]HuLA\H5JH=LH5JH=Lff.fATSHH=HJ'IHtSm@ID$ HtcCI\$H=EAD$H3t:H=Eu(!I|$ H5EH HL[A\@H=E1DLE1NAWAVAUATUSHHHtH=ѷ&IHf?ID$ H=AD$H;*HpfDH1HpHHuAD$1E1I\$HXDPHHcTDhIAHID$LҸE1LHIzPLXHHjhAIXZMID$I|$ LH4(=Ix HIAD$AHpA9}=I\$H<+)IHu@I$xHI$E1HL[]A\A]A^A_DHHIMtIx HIt@Mt=̷~"I^(MfDL`*BA^ M@L@*L6*gIEHI8L*+ff.AWAAVIAUMATAUSDHH $H&DhHAH=RD`(LL;-@HжI}HpH9t TAE@IM8IcD=M AHq(H9~H$4$LLG t AEtAEHEHHEsH(MD<$E$MMlL HI9H8yfoID$ht (Hs but goLt$HD$`HAD$foHD$ foHD$0foHD$@foHD$PfLIIWHI<1M9uLA)fE,H>LH8 ={HJ(IcH $Lt$H9t%LH $DH5j@I<1IU8B- `AA v*LH$AH$MH5J@I<1RIEA|LDH5:I<1IZ@foAAayD$BfDT$@D$foAD$ foAD$0Lh(IEH5?HPHi8H81OHE HEHHEHL$ L$fo@D$8Lt$He) arrayH\$0D$fo@D$ A~qLi(I9gL LDH5>I<11BD9` fo@yD$0arrafT$4D$fo@D$ Lch Lci fo?D$8He) arrayH\$0D$fo?D$ Lt$HLHL$H$+ HL$H$fo?L@ fo?@ HcG bA1IH ~u AW_AU eAG%fo>yD$0arrafL$4D$fo?D$ AW%=u z>fo>D$XD$8fo>D$H\D HcJ Vt  AOA kAA]fo]>D$PHntiguousHD$HD$8LhAwt}%=91ɀ>+AG1A DAAA%1=%1=|ff.@AWIAVAUATUSHxHcoH|$H$HipLw1HpH9I4LM,?AąuE}AM`MH$H;3L-Q3EIcHl$0HHEPH˩Dh=Hp Hx HHHDDAjLL$H$Y^IHL|$Iu HL$,HIGHHx`MGIMcxIxJHHD$HxHHXHHAuHuHAuI} H=ǨIU8HR(HL$HIuHIHXL;,$tIExHIEHxD[]A\A]A^A_f.HD$Hx Ht2H<$t[H$HxL[]A\A]A^A_fDp(y[.HHD$Hx HuSDHcR >LhUAą^H1H59H8g/CfE}IcHl$01LD$HHLD$HL$,I}HE1HAHD$L@IAHLc.LcHLD$JE1SLD$E1H`AAAPHIUHT$h=HT$Hjp Hx HHHADjLL$pIXZMA(t$Nt$L= p(HL0H52AH8.fHl$0t$HT$t$HT$_Hl$0L;,$tIEhHIEZLMff.@AVMAUAATIUSHHإh=åH~>p(Hx HHt3HMADjLBH []A\A]A^Dp t$ t$ fHaIHLHAWAVAUIATUHSH8HH%HHHpPH9HH}HpH9H}HHpH9H2HEHILp>H50LHL1"fDHOIHU1H5w0LLL H8[]A\A]A^A_f.H}=LGHE8#HcH PIH5"01LDHH(fEtu(IL5/f $aHE=H]8LpLc{ LSMLI<H5/1&fL fALvHU LI<1HH9]zfDEEXfDL{(tHEIH5>/LHP1|HXHt$(HD$`HcT$(HD$HD$ wD$HD$t>HcH~H9HG RHHXÐH,H5j4H8191HXÐHaH HXf.HH1.Ht HHD$HD$Hff.H1u2HtHHD$HD$H@H+H9GHHrealcaprodcaprod_extra_args()capi_return is NULL (N)out of memoryim_func__call__fortran__code__co_argcount__defaults__%s: clansvd_irl:dim=%d%s: clansvd_irl:ldu=%d%s: clansvd_irl:ldv=%d%s: clansvd_irl:lwork=%d%s: clansvd_irl:lcwrk=%d%s: clansvd_irl:liwork=%dNNNNi%s: clansvd:kmax=%d%s: clansvd:ldu=%d%s: clansvd:ldv=%d%s: clansvd:lwork=%d%s: clansvd:lcwrk=%d%s: clansvd:liwork=%dnumpy._core._multiarray_umathnumpy.core._multiarray_umath_ARRAY_API_ARRAY_API is NULL pointer2.3.4__version____doc____f2py_numpy_version___cpropack.error__cpropack_errortimingjobujobvtolincworksoptionioptioncparmiparmkmaxlduldvlworklcwrkliworkwhichpneigmaxiter_cpropackclansvdclansvd_irlnopxnreorthndotnreorthunreorthvnitrefnrestartnbsvdtmvopxtgetu0tupdmutupdnutintvtlanbprotreorthtreorthutreorthvtelrutelrvtbsvdtnorm2tlansvdnlandimtritzvectrestarttdotnsingcb: Callback caprod not defined (as an argument or module _cpropack attribute). Call-back cb_caprod_in___user__routines failed. Failed to convert _cpropack.caprod_extra_args to tuple. Callback caprod argument list is not set. Python int too large to convert to C intarray object is non-contiguous.object too large for a 32-bit intCall-back argument must be function|instance|instance.__call__|f2py-function but got %s. extra arguments tuple cannot be used with PyCapsule call-back create_cb_arglist: Failed to build argument list (siz) with enough arguments (tot-opt) required by user-supplied function (siz,tot,opt=%zd, %zd, %zd). failed in processing argument list for call-back aprod.OOOOOOOOOOOOOOOOOOO|OOOOOOO!:_cpropack.clansvd_irlstring_from_pyobj failed in converting 1st argument`which' of _cpropack.clansvd_irl to C stringstring_from_pyobj failed in converting 2nd argument`jobu' of _cpropack.clansvd_irl to C stringstring_from_pyobj failed in converting 3rd argument`jobv' of _cpropack.clansvd_irl to C string_cpropack.clansvd_irl() 4th argument (m) can't be converted to int_cpropack.clansvd_irl() 5th argument (n) can't be converted to int_cpropack.clansvd_irl() 6th argument (p) can't be converted to int_cpropack.clansvd_irl() 7th argument (neig) can't be converted to int_cpropack.clansvd_irl() 8th argument (maxiter) can't be converted to int_cpropack.clansvd_irl() 12nd argument (tolin) can't be converted to float_cpropack.clansvd_irl() 1st keyword (dim) can't be converted to int(shape(u, 1) == 1 + dim) failed for 1st keyword dim_cpropack.clansvd_irl() 2nd keyword (ldu) can't be converted to int(shape(u,0)==ldu) failed for 2nd keyword ldu_cpropack.clansvd_irl() 3rd keyword (ldv) can't be converted to int(shape(v,0)==ldv) failed for 3rd keyword ldv_cpropack.clansvd_irl() 4th keyword (lwork) can't be converted to int(len(work)>=lwork) failed for 4th keyword lwork_cpropack.clansvd_irl() 5th keyword (lcwrk) can't be converted to int(len(cwork)>=lcwrk) failed for 5th keyword lcwrk_cpropack.clansvd_irl() 6th keyword (liwork) can't be converted to int(len(iwork)>=liwork) failed for 6th keyword liwork_cpropack._cpropack.clansvd_irl: failed to create array from the 10th argument `u`_cpropack._cpropack.clansvd_irl: failed to create array from the 13rd argument `work`_cpropack._cpropack.clansvd_irl: failed to create array from the 14th argument `cwork`_cpropack._cpropack.clansvd_irl: failed to create array from the 15th argument `iwork`_cpropack._cpropack.clansvd_irl: failed to create array from the 16th argument `soption`_cpropack._cpropack.clansvd_irl: failed to create array from the 17th argument `ioption`_cpropack._cpropack.clansvd_irl: failed to create array from the 18th argument `cparm`_cpropack._cpropack.clansvd_irl: failed to create array from the 19th argument `iparm`_cpropack._cpropack.clansvd_irl: failed to create array from the hidden `sigma`_cpropack._cpropack.clansvd_irl: failed to create array from the hidden `bnd`_cpropack._cpropack.clansvd_irl: failed to create array from the 11st argument `v`OOOOOOOOOOOOOOOO|OOOOOOO!:_cpropack.clansvdstring_from_pyobj failed in converting 1st argument`jobu' of _cpropack.clansvd to C stringstring_from_pyobj failed in converting 2nd argument`jobv' of _cpropack.clansvd to C string_cpropack.clansvd() 3rd argument (m) can't be converted to int_cpropack.clansvd() 4th argument (n) can't be converted to int_cpropack.clansvd() 5th argument (k) can't be converted to int_cpropack.clansvd() 9th argument (tolin) can't be converted to float_cpropack.clansvd() 1st keyword (kmax) can't be converted to int(shape(u, 1) == 1 + kmax) failed for 1st keyword kmax_cpropack.clansvd() 2nd keyword (ldu) can't be converted to int_cpropack.clansvd() 3rd keyword (ldv) can't be converted to int_cpropack.clansvd() 4th keyword (lwork) can't be converted to int_cpropack.clansvd() 5th keyword (lcwrk) can't be converted to int_cpropack.clansvd() 6th keyword (liwork) can't be converted to int_cpropack._cpropack.clansvd: failed to create array from the 10th argument `work`_cpropack._cpropack.clansvd: failed to create array from the 11st argument `cwork`_cpropack._cpropack.clansvd: failed to create array from the 12nd argument `iwork`_cpropack._cpropack.clansvd: failed to create array from the 13rd argument `soption`_cpropack._cpropack.clansvd: failed to create array from the 14th argument `ioption`_cpropack._cpropack.clansvd: failed to create array from the 15th argument `cparm`_cpropack._cpropack.clansvd: failed to create array from the 16th argument `iparm`_cpropack._cpropack.clansvd: failed to create array from the hidden `sigma`_cpropack._cpropack.clansvd: failed to create array from the hidden `bnd`_cpropack._cpropack.clansvd: failed to create array from the 8th argument `v`_ARRAY_API is not PyCapsule objectmodule compiled against ABI version 0x%x but this version of numpy is 0x%xmodule was compiled against NumPy C-API version 0x%x (NumPy 1.23) but the running NumPy has C-API version 0x%x. Check the section C-API incompatibility at the Troubleshooting ImportError section at https://numpy.org/devdocs/user/troubleshooting-importerror.html#c-api-incompatibility for indications on how to solve this problem.FATAL: module compiled as unknown endianFATAL: module compiled as little endian, but detected different endianness at runtimenumpy._core.multiarray failed to importcan't initialize module _cpropack (failed to import numpy)This module '_cpropack' is auto-generated with f2py (version:2.3.4). Functions: u,sigma,bnd,v,info = clansvd(jobu,jobv,m,n,k,aprod,u,v,tolin,work,cwork,iwork,soption,ioption,cparm,iparm,kmax=-1 + shape(u, 1),ldu=shape(u,0),ldv=shape(v,0),lwork=len(work),lcwrk=len(cwork),liwork=len(iwork),aprod_extra_args=()) u,sigma,bnd,v,info = clansvd_irl(which,jobu,jobv,m,n,p,neig,maxiter,aprod,u,v,tolin,work,cwork,iwork,soption,ioption,cparm,iparm,dim=-1 + shape(u, 1),ldu=shape(u,0),ldv=shape(v,0),lwork=len(work),lcwrk=len(cwork),liwork=len(iwork),aprod_extra_args=()) COMMON blocks: /timing/ nopx,nreorth,ndot,nreorthu,nreorthv,nitref,nrestart,nbsvd,tmvopx,tgetu0,tupdmu,tupdnu,tintv,tlanbpro,treorth,treorthu,treorthv,telru,telrv,tbsvd,tnorm2,tlansvd,nlandim,tritzvec,trestart,tdot,nsing ._cpropack._cpropack.clansvd: failed to create array from the 7thN Dimension = Try increasing KMAX.neig = L../scipy/sparse/linalg/_propack/PROPACK/complex8/clansvd.FWARNING: Invariant subspace found.WARNING: Maximum dimension of Krylov subspace exceeded prior to convergence.@??A?../scipy/sparse/linalg/_propack/PROPACK/complex8/clansvd_irl.F?YToo little workspace in SGEMM_OVWRToo little workspace in SGEMM_OVWR_LEFTm>ldb in SGEMM_OVWR`Too little workspace in ZDGEMM_OVWR_LEFTTP7?../scipy/sparse/linalg/_propack/PROPACK/complex8/clanbpro.FWarning deltaError loading %s function %sscalar %sarray %s%ld, -- input not %d-alignedover-writing fortran routine%d-%s%c%ld-%s-scalar)-%c%ld-%s%s instancef2py:fortranobject.c:get_elsize%d-th dimension must be fixed to %ld but got %ld %d-th dimension must be %ld but got 0 (not defined). unexpected array size: new_size=%ld, got array with arr_size=%ld (maybe too many free indices) -- %d-th dimension must be fixed to %ld but got %ldunexpected array size: new_size=%ld, got array with arr_size=%ld too many axes: %d (effrank=%d), expected rank=%d -- %d-th dimension must be fixed to %ld but got %ld (real index=%d) unexpected array size: size=%ld, arr_size=%ld, rank=%d, effrank=%d, arr.nd=%d, dims=[this fortran object is not callablefortranobject.c: fortran_doc: len(p)=%zd>%zd=size: too long docstring required, increase size F2PySwapThreadLocalCallbackPtr: PyThreadState_GetDict failedF2PySwapThreadLocalCallbackPtr: PyLong_AsVoidPtr failedF2PySwapThreadLocalCallbackPtr: PyLong_FromVoidPtr failedF2PySwapThreadLocalCallbackPtr: PyDict_SetItemString failedF2PyGetThreadLocalCallbackPtr: PyThreadState_GetDict failedF2PyGetThreadLocalCallbackPtr: PyLong_AsVoidPtr failed -- failed to determine element size from %s -- expected elsize=%d got %ld -- expected at least elsize=%d but got %ld -- expected elsize=%d but got %ld -- input '%c' not compatible to '%c'failed to initialize intent(inout|inplace|cache) array, input '%s' object is not an arraydelete non-existing fortran attributef2py_size: 2nd argument value=%ld fails to satisfy 1<=value<=%ld. Result will be 0. F2PyGetThreadLocalCallbackPtrF2PySwapThreadLocalCallbackPtr, not allocatedfailed to initialize intent(cach -- input must be in one segmentlize intent(inou -- input not co -- input not fortran contiguousfailed to create intent(cache|hide)|optional array-- must have defined dimensionlize intent(in) ;d66"L9c#,I&6(6(6@(6@*H7/7@2\8p58;`9`N(;`<0e8=e=Pq> @AAAЇAAA@BB@(BPdBxBBPBB8CC0CD0EDEЦXElEEEEE EEEF8G@GGGG,HH0@IPII JlJPJpL"LM@#M0$M,@N4N7N7N8N8N 8N08O@8O88O8TO8tO 9O`9O9O9O9O9 P9 P94P9HP9\P:pP:P :P0:P@:PP:P`:Pp:P:Q:$Q:8Q:LQ:`Q:tQ:Q:Q;Q;Q ;Q0;Q@;RP;R`;(Rp;pU>U >U0>U@>UP>U`>Up>U>V>$V>8V>LV>`V>tV>V>V?V?V ?V0?V@?WP?W`?(Wp?T$>P8>LL>H`>Dt>@><>8>4>0>,>(?$? (?A` O I<XBHD D DBH l DBF DHBlGNxLBEB A(G0u (D BBBH L (D BBBA TcBz A (BAN d DBE THUBBB B(A0A8G@HEPKHA@ 8D0A(B BBBF l$ BEE E(D0A8J 8D0A(B BBBK aAKA.AKBtBEB B(A0A8GNNA 8D0A(B BBBK ` 8D0A(B BBBK QMNADBEE D(C0F@pHKPN0A(A BBBF@HiBBB E(A0D8G 8F0A(B BBBK @D`J B ^ B Udp4D S I S,D P D S?? XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX( 6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv  & 6 F V f v           & 6 F V f v           & 6 F V f v           & 6 F V f v           & 6 F V f v         &6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv  & 6 F V f v         !!&!6!F!V!f!v!!!!!!!!!""&"6"F"V"f"v"""""""""##&#6#F#V#f#v#########$$&$6$F$V$f$v$$$$$$$$$%%&%6%F%V%f%v%%%%%%%%%&&&&6&F&V&f&v&&&&&&&&&''&'6'F'V'f'v'''''''''((&(6(F(V(f(v((((((((())&)6)F)V)f)v)))))))))**&*6*F*V*f*v*********++&+6+F+V+f+v+++++++++,,&,6,F,V,f,v,,,,,,,,,--&-6-F-V-f-v---------..&.6.F.V.f.v.........//&/6/F/V/f/v/////////00&060F0V0f0v00000000011&161F1V1f1v11111111122&262F2V2f2v22222222233&363F3V3f3v33333333344&464F4V4f4v44444444455&565F5V5f5v55555555566&666F6V6f6v66666666677&767F7V7f7v77777777788&868F8V8f8v88888888899&969F9V9f9v999999999::&:6:F:V:f:v:::::::::;;&;6;F;V;f;v;;;;;;;;;u,sigma,bnd,v,info = clansvd_irl(which,jobu,jobv,m,n,p,neig,maxiter,aprod,u,v,tolin,work,cwork,iwork,soption,ioption,cparm,iparm,[dim,ldu,ldv,lwork,lcwrk,liwork,aprod_extra_args]) Wrapper for ``clansvd_irl``. Parameters ---------- which : input string(len=1) jobu : input string(len=1) jobv : input string(len=1) m : input int n : input int p : input int neig : input int maxiter : input int aprod : call-back function => caprod u : input rank-2 array('F') with bounds (ldu,1 + dim) v : input rank-2 array('F') with bounds (ldv,dim) tolin : input float work : input rank-1 array('f') with bounds (lwork) cwork : input rank-1 array('F') with bounds (lcwrk) iwork : input rank-1 array('i') with bounds (liwork) soption : input rank-1 array('f') with bounds (4) ioption : input rank-1 array('i') with bounds (2) cparm : input rank-1 array('F') with bounds (*) iparm : input rank-1 array('i') with bounds (*) Other Parameters ---------------- dim : input int, optional Default: -1 + shape(u, 1) aprod_extra_args : input tuple, optional Default: () ldu : input int, optional Default: shape(u,0) ldv : input int, optional Default: shape(v,0) lwork : input int, optional Default: len(work) lcwrk : input int, optional Default: len(cwork) liwork : input int, optional Default: len(iwork) Returns ------- u : rank-2 array('F') with bounds (ldu,1 + dim) sigma : rank-1 array('f') with bounds (neig) bnd : rank-1 array('f') with bounds (neig) v : rank-2 array('F') with bounds (ldv,dim) info : int Notes ----- Call-back functions:: def caprod(transa,m,n,x,y,cparm,iparm): return Required arguments: transa : input string(len=1) m : input int n : input int x : input rank-1 array('F') with bounds ((transa[0] == 'n'?n:m)) y : input rank-1 array('F') with bounds ((transa[0] == 'n'?m:n)) cparm : input rank-1 array('F') with bounds (*) iparm : input rank-1 array('i') with bounds (*)u,sigma,bnd,v,info = clansvd(jobu,jobv,m,n,k,aprod,u,v,tolin,work,cwork,iwork,soption,ioption,cparm,iparm,[kmax,ldu,ldv,lwork,lcwrk,liwork,aprod_extra_args]) Wrapper for ``clansvd``. Parameters ---------- jobu : input string(len=1) jobv : input string(len=1) m : input int n : input int k : input int aprod : call-back function => caprod u : input rank-2 array('F') with bounds (ldu,1 + kmax) v : input rank-2 array('F') with bounds (ldv,kmax) tolin : input float work : input rank-1 array('f') with bounds (lwork) cwork : input rank-1 array('F') with bounds (lcwrk) iwork : input rank-1 array('i') with bounds (liwork) soption : input rank-1 array('f') with bounds (3) ioption : input rank-1 array('i') with bounds (2) cparm : input rank-1 array('F') with bounds (*) iparm : input rank-1 array('i') with bounds (*) Other Parameters ---------------- kmax : input int, optional Default: -1 + shape(u, 1) aprod_extra_args : input tuple, optional Default: () ldu : input int, optional Default: shape(u,0) ldv : input int, optional Default: shape(v,0) lwork : input int, optional Default: len(work) lcwrk : input int, optional Default: len(cwork) liwork : input int, optional Default: len(iwork) Returns ------- u : rank-2 array('F') with bounds (ldu,1 + kmax) sigma : rank-1 array('f') with bounds (k) bnd : rank-1 array('f') with bounds (k) v : rank-2 array('F') with bounds (ldv,kmax) info : int Notes ----- Call-back functions:: def caprod(transa,m,n,x,y,cparm,iparm): return Required arguments: transa : input string(len=1) m : input int n : input int x : input rank-1 array('F') with bounds ((transa[0] == 'n'?n:m)) y : input rank-1 array('F') with bounds ((transa[0] == 'n'?m:n)) cparm : input rank-1 array('F') with bounds (*) iparm : input rank-1 array('i') with bounds (*)NSy_QVX_^dltz NSy_QVX_^dltzw     " ) / 8 @ I R X ^ d k s{   ~gMpUFY(PGCC: (GNU) 10.2.1 20210130 (Red Hat 10.2.1-11)@(@P@ R(`  <   O      P8F?9%@W@(5 A F0A%Q`Ac{`Cs Hf`K"Nk<UwUhg!& U4Vh>PP dMVF< ?P?? ,?8  WpzЃ%<LU^ i Zt\jPI>   </PZv LGbV l2z2bX 0 +}=Pp0`P wc {LazC@V5:D0v]OmFS,/@HJ@0 ;`RwE`p0c6{ [ HbЫ4:[M`JPY`e8Ю:PWwZ\+0:ЍKP)+p20;'@ja8Yf;X$pK$q(e@#@a.8^u]~i&W@e*6UB@[4`4-@[UftZ@`}2  s&k[`T{eM`2XF)0"@Gd@vL`<[Cg .`z40p/`|LgP^@5^@T4iRL c-Gdpq^E'n$;_\/SP (PU!|}@:@eK@W ЩOq: _EW0|.@+:>`U&+B R0`345H``9X#0] M>``$0eZVi`U8pDPz'. ;h@^^aп&TP4UМc[  `Q0gb|c ^*Sp`cЯ`sxU|i TQ@5)o@vVNob)0^WP{^\~7 DsDpj4PPh~6 0P&@PbYrblS1/@] P0pJUH@FYpv2IзU`hg`pgиaHY`w(vbp6[7 X>p|paV0oP%Cj>papdP[dpSVw6pT0P`OpU_0eT`?Pm [Re@Mp %PlI@_><fWV&vu$`{O@NJb6X`Z7@xMp[. oHqaP)FcUcnH@S`Kwbdl2WKP)q7E_-Kl3HpAf@UYGJ 0T:e 03І8Z|@;Kr7bB\j0P~=|c:`U U0QhA`O Ъ:7@2onNfp\0~@R4HVB=$g^Y`h0wniZ^ E? yQYXO^z>$NcP hZY-'I'dN00pd@. iT_4&e/ z^%@Lq]k3@H~YPxRR$ q@Wm`]c QPni5`a-Aа@U0D@~Ny1i|_`.PoQ[VXQpsE`N3?2v9wt[z'?aX`VLM2pr5P @vPv,0[$P|l p[ZPIh Hi/puY$}Z5uZx(`X2cp%l PQJX`XX`b0 <+p3z!Pr\@\fplWcX,!&\l0]Py1=?_ ^iEc]:/1*`(OWpF6YpS]vA )e"5[0`v5d5@yO pbF@p~b^\|)@ S,) GVM VN[8fL5@fEVrGB0u,Dp^&d)0 d/ \ЌTY{*r >:N~Y b S?jaHRQ<Г~da+) YPKP20%@ 6SC) MO~/^`_`velpz=0f_PFQ= @ Ђ\jPL`-Z;Ї;PN0MRKf@`'2DX 0*WP~vg@I$^))(0tseUb m@` L,`Y Tq:zoP\;N`1"в[k-/0[Ep>C<yU7Wn"q'`"cGfsKЛcb\Q -+0gP000agkRPDPN4O[[V!@`PZXc1z h\=4`D4u"^enPGu6z'g)`[ Ь * XU6}thp <>@@c*Y8 Pu05q=@`t[`-$2meP" oA07О,m @{g8\3 Z0s8WT/4@zR `eSk0x!@![_<pWжb G pbd?`C$  Cil ~>bM"G}^mg$z\{\КiC % kc88)vl^o_y2`aФ][g@Cf.pWh^1`xO0YS'`~i9pS0_bJjmG0`Sp6xT"?*h,d*Pql+dpz-DLIj@FRcWmDv9 4P(h"ggGh;gc e  t#tYT]Za1Ћ"#@$^{G~\I_  \QSq8_WuЭVp}H1`|-~x0@Y{JXaPApi_b\0f>gx/pO90qbF`dH[cp 2P YPP]\|Sy:@X:UXR X`{` @Zf@,JjDaP$IaV/9BouPvaN`q"Upt-0X;uV NIpoHD$@tR#VDдX4 i`O&rP1`zpYcUi`M;Y@;SX_M=Z S(P'@Bp=@# p6t.",h%PS= gp%ZUdR`  2aqH7ZcpgP=`6FSp0L@dZ@hG0TZ  VPf4p0]*&?Z9x+Q_;wpX.` %1}- )_>#d `rG:`PZ<@it^^f(pb5@,@:@LJ  p@Q+zT`m<Pbqph @P 0;Lgp.>0CK`$cM@lh5БzLpf.0#pW(LV0EPE@`Eq[`gpHZg2pwwJ. *1Ip~CyuP  `_Xv;@HeM904`,2 en.X@k`fzb@Y"Pp\cVA<6ye0gjIxI0cHMF0T`f+ rPg6iX+Ph,Дd[96<T pm7pY z5pjs m 02; M&p| 3 u- p]8-G@s<cA1fpZE6[RРl\_iRY{e@fTn%Y`@d9[02 x0d.@}&UXe-`l( IЎ3V(0\&^~'F vM0#fh@Q@U?ppO5 [&RPV m@2UЙ> 0dvRuQ#=B^p`U `hHЄSW`Dep@G$@c$С.P`yUp.^ p pKV$!P}Fp2sSP\: 0]Z\L@uppx5B =P4`  Sh>5`cm4lBO_I @g,`?`MC{!0xMPoV9bR|b0p`i*-< "EPqj3hT% ~`+[`i>r,9pTM9V[:YtDT1RЊ`pmf@]]@oA&|hf#[E` Oa=`V zb%0U3 -081+*mLPt` [PwBDsg]aZ  {,N ijU_7НNc P['MU' Ј\ЏOc`wC 10y*PX*R  o3 tTdx3 SHC%=z  >0a=`}%ZeDwfR=T tWGQP]0$TL |^F(0 0T,S<0kApn_p4}YPW3g9d|1p^\o`1@|9k|86^sTxC!Вl_=dLfBzR#PBeP} ^kAp@Ip_/J:[?gh^`C  f*%0j< aNk#3WWhV 9PF[Q#`xhIKm T)x `y\!m Z`#`0E`U@w]`\`f3@P#p!SWt ]2UMEoha5З9: 6PY@s QXrpRde da w9PkB4,гv;УC_ W(png ?RP_{\Р@pvPmTdPpM 0SP~!`]IP^VU.r <sRU@~ X#&$as#"`W >pcw& Z:pKSpdl!q)+0+PZqЩ% NB'b+b0`P` Ч,W@P_h`"$]x=P`m"T`u(pNU@2Ct2! a$R`+_HN ЅJPVP\@q{<rB0bX+:J|n?'@ba07(ЕK5 ;T#PsaWб.AlS_s'R@ *{ '  `SU+VXuPjg'X0J+е n>]ZsX\fPb0W3@mX.P vk*w?~0e0Z?9@S?T8BV22ЃU(<"YA05_-@%u!P_pSpUPW0r0P 0;!JtaИpO; @u#9P2p eWyGC`#ТXf0i;Cj8`Y>a`y;@R@n9 [\0,`fN g4\E@\e@_ @v#H0St`p [0Kp n10y3Y0g`H/bQ7pn-SB\Pew j1p}YV0"pn`kY`cЦbpVCHПOOW'?Kh@ Ajv@ `v1&0h) ]C@Z,8pY"aШ40v"qmR^0/c0zf 0ss7eK`8kF Gr/T&$` {?e[?Ё=ZPEPDJWP0UbЀc7* O$U]`U`J>1`Q=;c>g n+PTY`RXhY -PvRM 'PcRf/PcH@CbI@]0pkQ@!@3 wE1lD +P;}=Sp B0"PaVh6e@K]0[n;Z1 T q]bY?&byq  ' x(gn*8Xp(p9k]0}}J@rpB`LUT(0Ie 7f $`^hV~^*`VEА>,: [_(P2Z xT }hhBA_5tMwhTP_r\4p#ps9J{F`p.Gb@G`nt+p 0l0?E0%8dhrNmХde'} Y&<R1`j$*VbP~0a`PiQeCujfWWKuMoOpeY]I6L]-pk7pQPp@@Zap{<wC r R*r~B`zd |} x! P<tP`u ?@0n>0VQ$0P0cg=i;Aa*c"]pN!LPdm0mI fN0# JAlc }fX0bf6Y@`S~{ 0t"`Pw1g -`~(^F"~E8%pa0J U;8m-h{>7?W@_\Ig``ZTP'_PjJbdЉ|#y]FkOL]&0h?S5 8`o9pyD@b(g K0)F`T%@_G6~icx\0]BkF%@ 0{UJZ[={peo:`e1 {Nb7ЖsNcoWq6. s*8FTbp  ( 6 D R ` m {            ' 5 C P ^ l z            ! / = K Y g u             * 8 I X f t             + : O ] k w           "0=LZgu*8FTao} -;yLZhv,:HVcq %3AO]ky"0>LZhv '5BP^lz,9GTao}#1>LZgu '5CQ_m{ &4BO]ky .<M[hv .<JYgu" +9G_m{ .<JXft =KWjx!/=LZiw,:HUao}  ( 6 D R ` n }         !!!,!:!H!V!f!t!!!!!!!!"""+"9"N"\"p"~"""""""""###*#8#F#R#`#n#|#########$$$*$7$E$S$a$o$|$$$$$$$$$$%%$%2%@%N%\%h%w%%%%%%%%%%&&&+&9&G&U&c&q&~&&&&&&&&&& ''''5'C'Q'_'m'}''''''''''((#(1(@(N(\(j(x(((((((((( ))%)2)@)N)\)k)y))))))))))***+*9*G*X*e*s*********** ++'+6+D+R+`+n+|++++++++++,,*,8,F,T,b,p,~,,,,,,,,,, --$-2-@-Z-h-t----------..!.-.D.R.`.n.|........../&/4/B/P/^/l/x//////////000,0:0H0V0d0r00000000011$121?1L1Z1h1v1111111111222,292G2U2f2t2222222222333*3:3H3V3d3r33333333333 44)474E4Y4g4t4444444444555*585F5T5b5p5~5555555555 66$626@6O6]6k6x666666666677747B7O7]7k7x7777777777888-8O8]8k8y8888888888999+999G9U9c9p9~9999999999 ::%:3:A:N:]:k:y::::::::::;;;,;:;G;T;b;p;~;;;;;;;;;;<<"<0<=<K<Y<g<u<<<<<<<<<<===+=9=G=U=c=v=========== >>(>6>D>R>`>n>|>>>>>>>>>>??!?1???M?Z?h?u??????????? @@)@7@F@T@b@p@~@@@@@@@@@@AA'A5ADASAbApA~AAAAAAAAAA BB%B3BABOB\BjBxBBBBBBBBBBCCC,C:CGCUCcCqCCCCCCCCCCC DD&D4DBDPD_DnD{DDDDDDDDDEEE*E9EGEUEcEqEEEEEEEEEEEFF#F0F>FWFeFsFFFFFFFFFF GG'G5GIGYGgGuGGGGGGGGGGHHH/H=HMH[HiHwHHHHHHHHHHIII,I:IHIVIdIrIIIIIIIIIII JJ&J4JBJOJ\JjJwJJJJJJJJJJ KK'K5KCKQK_KmK{KKKKKKKKKKLL"L0L>LLLZLgLtLLLLLLLLLLMM!M-MBMPM\MjMyMMMMMMMMMMNN&N4NBNPN^NlNzNNNNNNNNNNOO"O.OeLeZegeueeeeeeeeeee f;fHfVfdfqf~fffffffffggg*g8gFgTgbgpg~ggggggggg hh'h5hChQh`hnh|hhhhhh_cpropackmodule.cf2py_setup_timingf2py_timing_deff2py_init_timingPy_XDECREFdouble_from_pyobj_cpropack_error_active_cb_caprod_in___user__routines_cpropack_moduleint_from_pyobjstring_from_pyobj.constprop.0create_cb_arglist.constprop.0create_cb_arglist.constprop.0.coldcapi_kwlist.1capi_kwlist.0moduledeff2py_routine_defsf2py_module_methodsdoc_f2py_rout__cpropack_clansvddoc_f2py_rout__cpropack_clansvd_irlcgemm_ovwr.Fcsgemm1_.coldcrtstuff.cderegister_tm_clones__do_global_dtors_auxcompleted.0__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entry_cpropack-f2pywrappers.fclansvd.Fclansvd_irl.Fcritzvec.Fsblasext.Fsbsvd.Fsgemm_ovwr.Fcblasext.Fcgetu0.Fclanbpro.Fcreorth.Fcsafescal.Fsfmin.2info.0i.1cmgs.risc.Fccdotc.Fwrap_dummy_g77_abi.cblas_lapack_wrappers.cfortranobject.cset_datasave_defformat_defget_elsizecheck_and_fix_dimensionsfortran_callfortran_getattrfortran_deallocfortran_repr__func__.2__func__.1fortran_setattr__FRAME_END__sgemm_ovwr_ndarray_from_pyobj_npy_f2py_ARRAY_APIccgs_F2PyCapsule_FromVoidPtrcsafescal_pcsaxpby_pcaxpy___GNU_EH_FRAME_HDRsset_mu_PyFortranObject_NewAsAttrpcdotc_pczero_ccdotc_wzdotu_pcaxty_cladivwrp_F2PySwapThreadLocalCallbackPtrF2PyCapsule_Checkpcmgs_wzladiv_F2PyCapsule_AsVoidPtr__dso_handlepsset_pcsaxpy_cdotuwrp_pcscal__finisupdate_nu_copy_ND_arraypcdotu_pszero_pcsscal_f2py_size_implclanbpro__npy_f2py_ARRAY_APIPyArray_RUNTIME_VERSIONcgetu0_zdotuwrp_pizero_F2PyDict_SetItemStringwcladiv_psscal__init_DYNAMIC__TMC_END__PyFortranObject_Newclansvd_irl_PyFortran_Typescompute_int_f2py_describepsaxpby_sbdqr_psdot_csgemm_ovwr_left_zladivwrp_zdotcwrp_pccopy_csgemm1_bbcom_wcdotu_psaxty_psnrm2_pscopy_f2pyinittiming_csgemm_creorth_critzvec_csgemmblk_dzero_cdotcwrp_F2PyGetThreadLocalCallbackPtrpcsaxty_pcaxpby_wzdotc_sbsvdstep_srefinebounds_pscnrm2__GLOBAL_OFFSET_TABLE_wcdotc_pcset_supdate_mu_clansvd_psaxpy_scipy_cgghrd_scipy_dsymm_scipy_cdotu_scipy_dlaed7_scipy_zbdsqr_scipy_cheevd_scipy_ssygs2_scipy_ztpqrt_scipy_zlar2v_scipy_slatps_scipy_cgecon_scipy_csytri2x_scipy_dlasq6_scipy_dstegr_PyTuple_SetItemscipy_zgerqf_scipy_chetri_scipy_sposv_scipy_dormqr_scipy_zlaed0_scipy_zpbrfs_scipy_zhbevd_scipy_dorgtr_scipy_zgtsv_scipy_cpoequ_scipy_chetrf_scipy_cungbr_scipy_sgesvj_scipy_drscl_scipy_ctftri_scipy_slatrd_scipy_ssygvd_scipy_dggbak_scipy_cppsvx_scipy_zhegvd_PyExc_ValueErrorscipy_dgeqrfp_scipy_ztrtri_scipy_zpotri_scipy_dstevx_scipy_slarzt_scipy_ctgex2_scipy_cgelss_scipy_dgetrs_scipy_clarf_scipy_dlaqps_scipy_dlarrc_scipy_zlags2_scipy_zlaqr4_scipy_stbcon_scipy_cpbtrs_scipy_zlansp_scipy_zgghrd_scipy_dgelsd_scipy_sggbal_scipy_zlanht_scipy_zlaev2_scipy_cstedc_scipy_cggevx_scipy_ztpsv_scipy_ztbrfs_scipy_zppsvx_scipy_claqge_scipy_slasdq_scipy_slarfg_scipy_cgbbrd_scipy_dspgv_scipy_sptts2_scipy_zhemv_scipy_dsyevd_scipy_dpbrfs_scipy_cgbsvx_scipy_cung2l_scipy_dpptrs_scipy_slacn2_scipy_zgbbrd_scipy_dgbtrf_scipy_zhetrs2_scipy_ctrttf_scipy_slatbs_PyLong_AsVoidPtrscipy_sgeqrt2_scipy_sorgql_scipy_dtbcon_scipy_dsyequb_scipy_cunmql_scipy_slagtf_scipy_dlar1v_scipy_zhbgst_scipy_ilaver_scipy_dtgsna_scipy_spstf2_scipy_dorglq_scipy_claesy_scipy_slags2_scipy_dgeqr2_scipy_zlarzt_scipy_dlarfgp_sprintf@@GLIBC_2.2.5scipy_claswp_scipy_dlasdt_scipy_zspr_scipy_dlaln2_scipy_zdotc_scipy_slasd6_scipy_ctbmv_scipy_dgbmv_scipy_csscal_scipy_chpev_scipy_zunmlq_scipy_dtptrs_scipy_dlaqtr_PyDict_GetItemStringscipy_ssyevx_scipy_sgbequ_scipy_strmm_scipy_zgeqrt2_scipy_zhesvx_scipy_caxpy_scipy_slarfb_scipy_ssytrd_scipy_claqhb_scipy_dlalsd_scipy_cgemqrt_scipy_sgbtrs_scipy_stpmv_scipy_chpmv_scipy_dlagtm_scipy_zlabrd_scipy_dorm2r_scipy_zungbr_scipy_slamrg_scipy_cgetri_scipy_dpbequ_scipy_zpftrf_scipy_claqr5_scipy_zdrot_scipy_ctptrs_scipy_zlaqps_scipy_ztrsna_scipy_dgerfs_scipy_sgesc2_scipy_dsbev_scipy_zlagtm_scipy_sptsvx_scipy_zsyr_scipy_zherk_scipy_dpbtf2_scipy_cungl2_scipy_dstevr_scipy_dgesv_scipy_zgges_scipy_zposvx_PyInit__cpropackscipy_zlaesy_scipy_slag2d_scipy_zlaein_scipy_slargv_scipy_zpptrs_scipy_ssprfs_scipy_chbgv_scipy_slantb_scipy_dormbr_scipy_cgtts2_scipy_dtgsen_scipy_csytf2_scipy_cgeevx_scipy_dgeqrt2_scipy_slaqsy_scipy_dsytf2_scipy_ctrti2_scipy_dlatrz_scipy_clar2v_scipy_zspsv_scipy_sgetf2_scipy_strtrs_scipy_ctpmqrt_scipy_ssptri_scipy_slarf_scipy_cgetrf_scipy_claqr2_scipy_zsptrf_scipy_cunmtr_scipy_dgglse_PyTuple_Typescipy_sgeesx_scipy_sgemv_scipy_stgevc_scipy_stpttr_scipy_ztrtrs_scipy_zpotrs_scipy_zungr2_scipy_zggevx_scipy_clasyf_scipy_zlar1v_scipy_ctgsja_scipy_chpevx_scipy_spprfs_scipy_dlantb_scipy_clacpy_scipy_dlansb_scipy_zgeqrfp_scipy_cgesvx_scipy_strtri_scipy_cung2r_scipy_dopmtr_scipy_strsna_scipy_dlatps_scipy_dlapy3_scipy_dlarrd_scipy_sgtsvx_scipy_shseqr_scipy_sgtsv_scipy_scsum1_scipy_dgelss_scipy_csycon_scipy_zher_scipy_ztbtrs_scipy_dposvx_scipy_zunmtr_scipy_dlaed0_scipy_zunm2l_scipy_saxpy_PyObject_Strscipy_slasdt_scipy_dgtsvx_scipy_dggev_scipy_chpevd_scipy_claqhp_scipy_dpteqr_scipy_ssytri_scipy_stgexc_scipy_zlanhs_scipy_dsbtrd_scipy_dgttrf_scipy_clabrd_scipy_zgelqf_PyObject_GetAttrStringscipy_dcabs1_PyCapsule_Typescipy_dtpttr_scipy_ssytrf_scipy_zggbal_scipy_srscl_scipy_ctptri_scipy_ztrmv_scipy_clasr_scipy_csptrf_scipy_dtgsyl_scipy_dlapll_scipy_clarfb_scipy_dstemr_scipy_ztzrzf_scipy_dsysv_scipy_clahr2_scipy_dgetf2_scipy_slarrv_scipy_cgeqlf_scipy_slagts_scipy_lsame_scipy_isamax_scipy_sgecon_scipy_ssygv_scipy_sgglse_scipy_slarrb_scipy_dscal_scipy_csytri_scipy_zgeqrf_scipy_strevc_scipy_slamch_PyMem_Freescipy_cgtcon_scipy_dtrsen_scipy_cporfs_scipy_dsfrk_scipy_dlaed3_scipy_clarzb_scipy_cunml2_scipy_zsycon_scipy_dggqrf_scipy_dorm2l_scipy_dlasdq_scipy_dlasv2_scipy_ztrsyl_scipy_spbtf2_scipy_clapll_scipy_chemm_scipy_zlaqhp_longjmp@@GLIBC_2.2.5scipy_slas2_scipy_sormr2_scipy_slapmr_scipy_clarz_scipy_cgebd2_scipy_dlapmt_scipy_zgemm_scipy_sppsvx_scipy_spbequ_scipy_dsygvx_scipy_zlaqsb_scipy_ccopy_scipy_cpocon_scipy_sormrz_scipy_slaqr4_scipy_zcposv_scipy_strexc_scipy_chetd2_scipy_zlag2c_scipy_sgehrd_scipy_dspsv_scipy_zpprfs_scipy_clascl_scipy_dgelq2_scipy_dtgevc_scipy_dgtts2_scipy_dlaed5_scipy_zpbstf_scipy_cpftrs_PyType_IsSubtypescipy_zlanhb_scipy_zhpr2_scipy_cpttrs_scipy_zhetd2_scipy_zlals0_scipy_dlantp_scipy_cgeqr2_scipy_dsposv_scipy_stpqrt_scipy_dlarrr_scipy_cgges_scipy_zptrfs_PyModule_GetDictscipy_ctfttp_scipy_clantb_scipy_drotmg_scipy_slarre_scipy_ilaclr_scipy_zgbequb_scipy_spptrs_scipy_sgsvj1_scipy_zunm2r_scipy_dgeqr2p_scipy_idamax_scipy_cggev_scipy_dtgexc___cxa_finalize@@GLIBC_2.2.5scipy_dlaqsb_scipy_stfttr_scipy_chla_transtype_scipy_cheevr_strlen@@GLIBC_2.2.5scipy_clarfx_scipy_dlasyf_PyUnicode_AsASCIIStringscipy_ssyevd_scipy_sggbak_scipy_sorml2_scipy_zgeqrt3_scipy_dgeev_scipy_checon_scipy_chbev_scipy_zgehd2_scipy_dlasy2_scipy_zunmrz_scipy_sggev_scipy_sspmv_scipy_dptsvx_scipy_zgetc2_scipy_zhseqr_scipy_dpftri_scipy_slahqr_scipy_zlatbs_scipy_dpftrf_scipy_dlasq4_scipy_chpsv_scipy_stpsv_scipy_clarfgp_scipy_cpbstf_scipy_slals0_scipy_slaqr5_scipy_dlaqr3_scipy_dgeqrt_scipy_stgsen_scipy_slarz_scipy_cgeql2_scipy_dsprfs__PyArg_ParseTupleAndKeywords_SizeTscipy_dsyr2k_PyTuple_New_Py_FatalErrorFuncscipy_spbtrf_scipy_sgeqrfp_scipy_ssbevx_scipy_dtrti2_scipy_sger_scipy_clangt_scipy_zlange_scipy_cpstrf_scipy_ztrttf_scipy_dsytri2x_scipy_ztrrfs_scipy_zporfs_scipy_zlacrm_scipy_sstevr_scipy_slasyf_scipy_zhetri2_scipy_sgelsd_scipy_csytrs2_scipy_cgbtrs_scipy_dstedc_scipy_slasr_scipy_dhgeqz_scipy_dlaqge_scipy_ztgsyl_scipy_dlagtf_scipy_dorgbr_scipy_zpftri_scipy_cgeru_PyErr_NoMemoryscipy_dgeqlf_scipy_zhpevd_scipy_cgetf2_scipy_slaqr2_scipy_cgttrf_scipy_cspmv_scipy_cspr_scipy_zgetrs_scipy_sgetrf_scipy_dlagv2_scipy_zhpsv_scipy_chemv_scipy_dsptrf_scipy_dgerq2__Py_NoneStructscipy_srotg_scipy_zhpev_scipy_dpftrs_scipy_cgesv_scipy_dlaeda_PyExc_AttributeErrorscipy_ztgsja_scipy_sspgvd_scipy_zlalsa_scipy_dtrrfs_scipy_dgehd2_scipy_cgeqr2p_scipy_zstein_strncpy@@GLIBC_2.2.5scipy_zcopy_scipy_dptcon_scipy_stprfb_PyNumber_Floatscipy_dlarft_scipy_zgesv_scipy_ctrevc_scipy_dlartgs_scipy_slansp_scipy_dlasd3_scipy_chegst_scipy_spocon_scipy_slarrk_scipy_csyswapr_scipy_slarnv_scipy_dgbtf2_scipy_cgelsd_scipy_dsytrd_scipy_zgeqr2p__gfortran_transfer_integer_write@@GFORTRAN_8scipy_dlag2_scipy_zsyrk_scipy_dsygvd_scipy_clacp2_scipy_sgges_scipy_zptts2_scipy_zpttrs_PyUnicode_FromFormatscipy_zstedc_memset@@GLIBC_2.2.5scipy_dgbbrd_scipy_dtpmqrt_scipy_dlatbs_scipy_chegvx_scipy_cunmlq_scipy_dsdot_PyExc_MemoryErrorscipy_cunglq_scipy_zhetrs_scipy_slaqsp_scipy_dsytrs_scipy_zung2l_scipy_strsen_scipy_zgerfs_scipy_clalsa_PyType_Typescipy_cgelq2_scipy_dtbrfs_scipy_dgesc2_scipy_dlamch_scipy_chegvd_scipy_dsterf_scipy_xerbla_array_scipy_dgejsv_scipy_zlantp_scipy_scasum_scipy_zunmql_scipy_sormbr_scipy_spteqr_scipy_zgbtrf_scipy_zggglm_scipy_ctrsm_scipy_claqsy_scipy_dbdsqr_scipy_dlasd6_scipy_spttrs_scipy_dlarf_scipy_slabrd_scipy_cunm2l_scipy_dlarrk_scipy_dstein_scipy_cgetc2_scipy_cgerqf_scipy_stptrs_scipy_chptrs_scipy_cunmqr_scipy_cher2_scipy_sgttrs_scipy_csyconv_scipy_cpotrf_scipy_cungtr_scipy_ztptrs_scipy_zpftrs_scipy_dger_scipy_ztpmqrt_scipy_zhpmv_scipy_stpttf_scipy_cptrfs_scipy_cstein_scipy_dtrttf_scipy_sgelsy_scipy_zgbcon_scipy_dgghrd_PyTuple_Sizescipy_zpoequ_scipy_zlaqhb_scipy_dgeequ_scipy_dtrtrs_scipy_claset_scipy_chpgvd_scipy_dlarrv_scipy_spoequ_scipy_slar2v_scipy_zhbmv_scipy_dlartv_scipy_slacon_scipy_ssytri2_scipy_clalsd_scipy_cpteqr_scipy_dtbtrs_scipy_dlabad__PyObject_Newscipy_zgttrs_scipy_chpgvx_scipy_ctpqrt_scipy_stzrzf_scipy_zlassq_scipy_cpotri_PyNumber_Longscipy_zhgeqz_scipy_dlaset_scipy_zsytri2x_scipy_dlaexc_scipy_zlacrt_scipy_dormhr_scipy_clarft_scipy_sbdsqr_scipy_dtrttp_scipy_sptsv_scipy_chgeqz_scipy_dlassq_scipy_dgsvj1_scipy_sscal_scipy_dpbtrf_scipy_slaqsb_scipy_slartgs_scipy_ssptrd_scipy_zpptri_scipy_zlaqp2_scipy_sgbrfs_scipy_sorg2l_scipy_drot_PyFunction_Typescipy_clarzt_PyErr_Formatscipy_cgbtf2_scipy_cungrq_scipy_ctpcon_scipy_zlaqhe_PyObject_CallObjectscipy_slasv2_scipy_dpocon_scipy_stbsv_scipy_dhsein_scipy_sgeqlf_scipy_dlahr2_scipy_cgeqrt3_scipy_sgebal_scipy_zspmv_scipy_dpotf2_scipy_slarzb_scipy_clapmr_scipy_cgehrd_scipy_slascl_scipy_sstebz_scipy_ctrcon_scipy_ztrmm_scipy_zungtr_scipy_zptsv_scipy_dpptrf_scipy_dsymv_scipy_ssygst_scipy_zstemr_PyFloat_AsDoublescipy_dtbmv_scipy_dlaed8_scipy_ssbmv_scipy_cgbmv_scipy_crotg_scipy_clacrt_scipy_ztftri_scipy_spptri_scipy_zggesx_scipy_dppsv_scipy_dgebal_scipy_ztpttf_scipy_dtpqrt2_scipy_ztgevc_scipy_dsytri2_scipy_zheequb_scipy_cunmbr_scipy_ztpcon_scipy_zlauu2_scipy_dgbrfs_scipy_spotrs_scipy_zgbequ_scipy_ctpmv_scipy_dlasd7_scipy_sppsv_scipy_dpbstf_scipy_shsein_scipy_dppequ__Py_Deallocscipy_slaebz_PyCFunction_Type_Py_BuildValue_SizeTscipy_clauu2_scipy_claqp2_scipy_dormtr_scipy_zlaed7_scipy_zspcon_scipy_claed8_scipy_slarrc_scipy_ztrexc_scipy_zsteqr_scipy_zgesdd_scipy_ssytri2x_scipy_ctbtrs_scipy_slarft_scipy_sgemm_scipy_sorglq_scipy_csrot_scipy_dlatdf_scipy_srotm_scipy_sgees_scipy_slasy2_scipy_sbbcsd_PyExc_ModuleNotFoundErrorscipy_sggglm_scipy_chpr_scipy_sggevx_PyExc_OverflowErrorscipy_slaset_scipy_cptts2_scipy_sdisna_PyMem_Mallocscipy_cstemr_scipy_chbtrd_scipy_ssptrf_scipy_zgtrfs_scipy_zhpsvx_scipy_cgeqrt_scipy_zrot_PyErr_ExceptionMatchesscipy_zgesvx_scipy_sgeqr2_scipy_zheevx_scipy_zptsvx_scipy_stgsy2_scipy_spoequb_scipy_dgeevx_scipy_ctrsen_scipy_dgeequb_scipy_dlasd2_scipy_iladlc_scipy_sgeqr2p_scipy_dspgvd_memcpy@@GLIBC_2.14PyImport_ImportModulescipy_sorgtr_scipy_ssytf2_scipy_zhbgvd_scipy_slantp_scipy_sgttrf_scipy_ddot_scipy_zbbcsd_scipy_dgges_scipy_clacon_scipy_zlapmr_scipy_dorml2_scipy_zpbtrs_scipy_zlacpy_scipy_ztbsv_scipy_strti2_scipy_chsein_scipy_slapy2_scipy_zlanhp_scipy_dormql_scipy_spbtrs_scipy_zlatrd_scipy_zlantb_scipy_slaruv_scipy_dlasrt_scipy_clahqr_PyUnicode_FromStringscipy_zsyequb__gfortran_st_write@@GFORTRAN_8scipy_dlaev2_scipy_dtrsyl_scipy_sspev_scipy_dtprfs_scipy_zgelsy_scipy_sgtrfs_scipy_zhptrs_scipy_strttp_scipy_zhbev_scipy_csymv_scipy_cppcon_scipy_dlarrj_scipy_dlaneg_scipy_spbsvx_scipy_sgghrd_scipy_sstein_scipy_dlasd5_scipy_sgebak_scipy_dlascl_scipy_cpoequb_scipy_zsprfs_scipy_dlaqgb_scipy_csyrk_scipy_dlaed2_scipy_chbgvx_scipy_zpbequ_scipy_dsbgv_scipy_disnan_scipy_dgbtrs_PySequence_Checkscipy_scnrm2_scipy_chprfs_scipy_stprfs_scipy_zpoequb_scipy_zlartg_scipy_zhpgvd_scipy_dgelsy_scipy_slasd2_scipy_sgejsv_scipy_ztprfs_scipy_ssyr2k_scipy_dgetrf_scipy_sgbcon_scipy_sgbmv_scipy_dsyswapr_scipy_dladiv_scipy_zungl2_scipy_ztbcon_scipy_clatbs_scipy_zlarrv_scipy_ssysvx_scipy_csytri2_scipy_dtpsv_scipy_clartg_scipy_ssbtrd_scipy_zunmr2_scipy_zaxpy_scipy_slasd3_scipy_dpprfs_scipy_slaeda_scipy_dorgl2_scipy_zhetri2x_scipy_dlapy2_scipy_zheevr_strcpy@@GLIBC_2.2.5scipy_ztgsy2_scipy_csysv_scipy_slasq2_scipy_sormtr_scipy_slaed2_scipy_sgbequb_scipy_slangb_scipy_dtfttp_scipy_dsteqr_scipy_strsyl_scipy_dlasd8_scipy_dswap_scipy_shgeqz_scipy_dsptrs_scipy_dormrz_scipy_dbbcsd_scipy_chseqr_scipy_claqhe_scipy_dggevx_scipy_slagv2_scipy_claic1_scipy_sgeqrt_scipy_zlaset_scipy_dgesdd_scipy_dpotrs_scipy_cppequ_scipy_cherfs_scipy_zhprfs_scipy_dlangb_scipy_ssbevd_scipy_spftri_scipy_zgelq2_PyErr_Clearscipy_zggbak_scipy_cgesdd_scipy_slartgp_scipy_dlasq1_scipy_zlarnv_scipy_dstev_scipy_sgeequ_scipy_cpftrf_scipy_cgbequ_scipy_dlansf_scipy_sspr_scipy_cladiv_scipy_dlaqr4_scipy_zdscal_scipy_ctrmm_scipy_dlaein_scipy_dlag2s_scipy_clantp_PyObject_HasAttrStringscipy_sptrfs_scipy_zgerc_scipy_zgecon_scipy_zlacon_scipy_zlasr_scipy_zppsv_scipy_sstevx_scipy_dsptrd_scipy_sspsv_scipy_slasd8_scipy_slarfgp_scipy_sgeevx_scipy_cpotf2_scipy_zpptrf_scipy_ztgsen_scipy_ctrsna_scipy_claqsp_scipy_clals0__gfortran_stop_string@@GFORTRAN_8scipy_ztgexc_scipy_slahr2_scipy_cggqrf_scipy_ctgevc_scipy_strsm_scipy_spstrf_scipy_zlarfgp_scipy_slange_scipy_zhpr_scipy_ssyr2_scipy_ssytd2_scipy_strmv_scipy_zgeqrt_scipy_cptcon_scipy_dlauum_scipy_zpstf2_scipy_chbevx_scipy_zlartv_scipy_slaqr3_scipy_slaed8_scipy_cherk_scipy_dtrexc_scipy_cunmr2_scipy_cpttrf_scipy_zlarz_scipy_csprfs_scipy_dlals0_scipy_dlanhs_scipy_slarrj_scipy_zhetf2_scipy_dlacon_scipy_cbdsqr_scipy_ztrti2_scipy_dlaqr1_scipy_dsytd2_scipy_zggrqf_scipy_zgeev_scipy_ssyconv_scipy_zhegvx_scipy_cggbal_scipy_dspevd_scipy_zgbmv_scipy_zsysv_scipy_dsbmv_scipy_zsyr2k_scipy_slarrf_scipy_zgttrf_scipy_srotmg_scipy_stgsja_scipy_sgerq2_scipy_slangt_scipy_ztprfb_scipy_ieeeck_scipy_zhecon_scipy_chbmv_scipy_stbmv_scipy_dtfttr_scipy_clargv_scipy_zgebak_scipy_iladlr_scipy_zlahr2_scipy_sgsvj0_scipy_dsptri_scipy_dlaed6_scipy_zhpevx_scipy_ssyr_scipy_zrotg_scipy_dasum_scipy_slalsd_scipy_dgeesx_scipy_claqr4_scipy_slasda_scipy_daxpy_scipy_dlansp_scipy_slaqr0_scipy_slar1v_scipy_slacpy_scipy_dgecon_scipy_zhetrf_scipy_ctpqrt2_scipy_dlaed9_scipy_cptsv_scipy_dgesvj_scipy_dsysvx_scipy_cpbsv_scipy_zsytri2_scipy_clacgv_scipy_slasq3_scipy_zpstrf_scipy_slaed3_scipy_dtrcon_PyOS_snprintfscipy_sormqr_scipy_dlargv_PyLong_FromVoidPtrPyDict_Newscipy_cpbequ_scipy_sporfs_scipy_slarra_scipy_dlaqr2_scipy_dlauu2_scipy_clahef_scipy_slansf_scipy_dlarzt_scipy_ssteqr_scipy_chesv_scipy_slaqp2_scipy_zpotrf_scipy_dporfs_scipy_slapll_scipy_dpptri_scipy_sopmtr_scipy_clarnv_scipy_clansp_scipy_dsyr2_scipy_chbgst_scipy_sorg2r_PyErr_SetStringscipy_dtgex2_scipy_sorcsd_scipy_dgees_scipy_drotg_scipy_zlarf_scipy_chegv_scipy_spotf2_scipy_cungqr_scipy_cheswapr_scipy_sstevd_scipy_dlamrg_scipy_ctrmv_scipy_dorbdb_scipy_ssysv_scipy_sgesdd_scipy_zswap_scipy_dpoequ_scipy_cpptrs_scipy_slartv_scipy_zhpgst_scipy_dsbgvd_scipy_zunmrq_scipy_sladiv_scipy_cswap_scipy_dspgst_scipy_zpbtrf_scipy_dtptri_scipy_slansy_scipy_dgeqrt3_scipy_ssygvx_scipy_dlasd4_scipy_stftri_scipy_dsbevd_scipy_dgeql2_scipy_cher2k_scipy_ssytrs_scipy_dhseqr_scipy_zsptrs_scipy_sspgv_scipy_cdotc_scipy_spotrf_scipy_zgemv_scipy_ztrttp_scipy_cpptri_free@@GLIBC_2.2.5scipy_zpbtf2_scipy_chetri2_scipy_csyequb_scipy_sgeequb_scipy_sopgtr_scipy_slantr_scipy_cpbtrf_scipy_dsygv_scipy_ilatrans_scipy_csysvx_scipy_ssyrfs_scipy_ilaslr_scipy_zunmbr_scipy_cgglse_scipy_ssbev_scipy_dlanv2_scipy_dpstf2_scipy_dtrmv_scipy_zdrscl_scipy_ctrttp_scipy_dgetri_scipy_ztpmv_scipy_cgebrd_scipy_zgesvd_scipy_dtpcon_scipy_slae2_scipy_sgelqf_scipy_slaic1_scipy_ssyevr_scipy_cspsvx_PyCapsule_Newscipy_zgglse_scipy_dsytri_scipy_zhetrd_scipy_cpftri_scipy_sormlq_scipy_cposv_scipy_dgesvd_scipy_zhegv_scipy_dlarfx_scipy_clartv_scipy_slatrs_scipy_slasq1_scipy_cpptrf_scipy_sorbdb_scipy_slaed1_scipy_icmax1_scipy_dlantr_scipy_dormr3_scipy_dgetc2_scipy_zlargv_scipy_zunbdb_scipy_dtgsy2_scipy_zgeevx_scipy_dgels_scipy_cgesc2_scipy_dgtrfs_scipy_zsytrf_scipy_zsytrs2_scipy_zsyconv_scipy_dcopy_scipy_chesvx_scipy_slatdf_scipy_dgeqp3_scipy_stfttp_scipy_sbdsdc_scipy_zgebal_scipy_sgelss_scipy_zheev_PyThreadState_GetDictscipy_zlansy_scipy_chbevd_scipy_cunmrq_scipy_dsytrs2_scipy_zgeqp3_scipy_cuncsd_scipy_zlauum_scipy_chptrd_scipy_cungql_scipy_cgbtrf_scipy_slasq4_scipy_dpbsvx_scipy_cgtrfs_scipy_dsbgvx_scipy_zgels_scipy_slaqge_scipy_slaed4_scipy_zposv_scipy_ztrsv_scipy_cscal_scipy_sorgrq_scipy_ctpsv_scipy_zgebd2_PyLong_AsLongAndOverflowscipy_sgerfs_scipy_zgeqlf_PyCapsule_GetPointerscipy_claed0_scipy_stgex2_PyExc_RuntimeErrorscipy_clags2_scipy_dgtcon_scipy_zlarcm_scipy_dspevx_scipy_slasd5_scipy_sgbtf2_scipy_dpstrf_scipy_dgehrd_scipy_claed7_malloc@@GLIBC_2.2.5PySequence_Fastscipy_zggqrf_scipy_zsyrfs_scipy_dlatrd_scipy_zgbtrs_scipy_zhbgvx_scipy_dggrqf_scipy_clapmt_scipy_ctgsyl_scipy_dlasda_scipy_zpteqr_scipy_ssbgvx_scipy_sormql_scipy_clansy_scipy_cher_stderr@@GLIBC_2.2.5scipy_ztpttr_scipy_ssyswapr_scipy_zlarfg_scipy_zpbsvx_scipy_ddisna_scipy_zlansb_scipy_dtrsv_scipy_dsyevx_scipy_slassq_scipy_cpbcon_scipy_slaein_scipy_cungr2_scipy_sormhr_scipy_dspsvx_scipy_dstebz_scipy_sggesx_scipy_slaed7_scipy_chegs2_scipy_zungqr_scipy_cggglm_scipy_ctrsyl_scipy_cgetrs_scipy_stptri_scipy_chptri_scipy_dorghr_scipy_dptrfs_scipy_sgebrd_scipy_cgerq2_scipy_dspev_scipy_zgesc2_scipy_clantr_scipy_ssbgvd_scipy_zunmr3_scipy_slasd0_scipy_dsyrk_scipy_dlarrb_scipy_cposvx_scipy_dlaruv_scipy_ssbgv_scipy_zhfrk_scipy_cpprfs_scipy_dgemm_scipy_dgbsvx_PyObject_Freescipy_chetrs_scipy_ssymv_scipy_dgemv_scipy_sormrq_scipy_spftrf_scipy_dgerqf_scipy_chetri2x_strcmp@@GLIBC_2.2.5scipy_sstegr_PyExc_TypeErrorscipy_csyrfs_scipy_dgebak_scipy_ctbrfs_scipy_dggesx_scipy_zgeqr2_scipy_spptrf_scipy_claqr1_scipy_zuncsd_scipy_zhegst_scipy_slasrt_scipy_slaexc_scipy_ssbgst_scipy_dznrm2_scipy_slagtm_scipy_zhpgvx_scipy_sgeqrf_scipy_zhesv_scipy_zunmhr_scipy_ilazlc_scipy_cgeqp3_scipy_zgtts2_scipy_chptrf_scipy_dspmv_scipy_stfsm_scipy_claqps_PyType_Readyscipy_zgbsv_scipy_clag2z_scipy_dlarre_scipy_dbdsdc_scipy_dtprfb_fprintf@@GLIBC_2.2.5scipy_dtpttf_scipy_cgelsy_scipy_zstegr_scipy_dlaed4_scipy_dspr__setjmp@@GLIBC_2.2.5scipy_dsycon_scipy_dsyr_scipy_dspgvx_scipy_iladiag_scipy_ssptrs_scipy_dpbtrs_scipy_cstegr_scipy_zung2r_scipy_sspevd_scipy_slaln2_scipy_ztpqrt2_scipy_cunbdb_scipy_zsysvx_scipy_cheev_scipy_slaed5_PySequence_GetItemscipy_cpbrfs_scipy_dlaswp_scipy_zhptrf_scipy_ctzrzf_scipy_dsyevr_scipy_ctbcon_scipy_chpgv_scipy_dtfsm_scipy_spbsv_scipy_sgesv_scipy_dlansy_scipy_cunmrz_scipy_slanv2_scipy_cgbcon_scipy_sgemqrt_PyLong_AsSsize_tscipy_cheevx_scipy_dorgqr_scipy_sdot_scipy_cbbcsd_scipy_cgtsv_scipy_zlascl_scipy_ctfttr_scipy_dposv_scipy_slaswp_PySequence_Sizescipy_dpotri_scipy_zunghr_scipy_zdotu_scipy_zggev_scipy_drotm_scipy_clanht_scipy_zungql_scipy_zupgtr_scipy_dpoequb_scipy_sppcon_scipy_dpotrf_scipy_ssytrs2_scipy_csytrs_scipy_zhbtrd_scipy_sgetc2_scipy_zlaqr5_scipy_cpstf2_scipy_sggqrf_scipy_dlatrs_scipy_dggbal_PyLong_FromLongscipy_zlatrs_scipy_dppcon_scipy_dlas2_scipy_zupmtr_scipy_classq__gfortran_st_write_done@@GFORTRAN_8PyErr_NewExceptionscipy_zladiv_scipy_cgels_scipy_sgesvx_scipy_zhbevx_scipy_ilaprec_scipy_chpr2_scipy_dgelqf_scipy_clansb_scipy_zlalsd_scipy_strsv_scipy_cgbequb_scipy_slalsa_scipy_ctgsy2_scipy_sstev_scipy_ssfrk_scipy_dsygst_scipy_dtrsna_scipy_sgeev_scipy_izmax1_scipy_zhetri_scipy_slaed0_scipy_zlaic1_scipy_ssyrk_scipy_dggglm_scipy_ztrsen_scipy_zgetrf_scipy_ctgsna_scipy_dopgtr_scipy_clacrm_scipy_slarrr_scipy_dormr2_scipy_zlacn2__PyDict_GetItemStringWithErrorscipy_clagtm_scipy_sdsdot_scipy_dpttrf_scipy_zlaed8_strnlen@@GLIBC_2.2.5scipy_zgbrfs_scipy_sgelq2_scipy_dlanst_scipy_cgtsvx_scipy_cgehd2_scipy_sstemr_scipy_zsptri_scipy_stbtrs_scipy_clauum_scipy_ztrevc_scipy_zpbsv_scipy_cspsv_scipy_dlalsa_scipy_zlahqr_scipy_cgttrs_scipy_zsymm_scipy_dgeqrf_scipy_sgetrs_scipy_cgeqrf_PyModule_Create2scipy_dlasd0_scipy_zspsvx_scipy_cupmtr_scipy_slanhs_scipy_ilaslc_scipy_dppsvx_scipy_chbgvd_powf@@GLIBC_2.2.5scipy_clangb_scipy_slasd1_scipy_spotri_scipy_chpsvx_scipy_sorgqr_scipy_zlat2c_scipy_ztfttp_scipy_zgees_scipy_stpqrt2_scipy_dsbgst_scipy_dlarz_scipy_zlatps_scipy_zpotf2_scipy_dlasr_scipy_dlaebz_scipy_zlangt_scipy_slaev2_scipy_slaqtr_scipy_zgerq2_scipy_slartg_scipy_dptsv_scipy_sgtcon_scipy_dlasq3_scipy_srot_scipy_chetf2_scipy_dgbequ_scipy_dlacpy_scipy_ctrexc_scipy_zgbsvx_snprintf@@GLIBC_2.2.5scipy_clatrd_scipy_sswap_scipy_zsytri_scipy_csrscl_scipy_zpttrf_scipy_zlanhf_scipy_zgeequ_scipy_zgehrd_scipy_dgbsv_scipy_zgeql2_scipy_dtpmv_scipy_stgsyl_scipy_csymm_scipy_dlarrf_scipy_zlaqsy_scipy_zppcon_scipy_sgetri_PyErr_Occurredscipy_sormr3_scipy_cggesx_scipy_ctfsm_PyObject_GenericGetAttrscipy_dlar2v_scipy_ctprfs_scipy_clatps_scipy_clanhf_scipy_clange_scipy_cgemv_scipy_slaqr1_scipy_cptsvx_scipy_spbrfs_scipy_stpcon_scipy_chpcon_scipy_chfrk_scipy_slasd7_scipy_sorgl2_scipy_zlantr_scipy_clatrs_scipy_dlabrd_scipy_claqsb_scipy_zlatdf_scipy_dgbequb_scipy_zppequ_scipy_zlarzb_scipy_slasq6_scipy_chetrs2_scipy_sasum_scipy_slaed6_scipy_claqgb_scipy_dgttrs_scipy_dlarra_scipy_zunmqr_scipy_zlahef_scipy_dlags2_scipy_dtgsja_scipy_slapmt_scipy_clanhs_scipy_dlaed1_scipy_dgebrd_scipy_dlapmr_scipy_zsytrs_scipy_dzasum_scipy_ztrcon_scipy_zpocon_scipy_ssymm_scipy_dspr2_scipy_sorgr2_scipy_strcon_scipy_dpbsv_scipy_zlaqsp_scipy_zlacgv_scipy_cgees_scipy_cgeesx_scipy_zgtsvx_scipy_dlacn2_scipy_dlaic1___tls_get_addr@@GLIBC_2.3scipy_sgerqf_scipy_dgbcon_scipy_zgeesx_scipy_zsyswapr_scipy_dtrsm_scipy_ctgexc_scipy_cpbtf2_scipy_zgeequb_scipy_clacn2_scipy_zsymv_scipy_slaed9_scipy_clarfg_scipy_cgeequ_scipy_sposvx_scipy_dsyconv_scipy_zgetri_scipy_slasd4_scipy_dlaqr0_scipy_cggrqf_scipy_clar1v_scipy_sgbbrd_scipy_dtpqrt_scipy_sgels_scipy_cppsv_scipy_csptrs_scipy_slanst_scipy_clanhp_scipy_cunmr3_scipy_ctrtrs_scipy_cggbak_scipy_dlarnv_scipy_zhpgv_scipy_zunglq_scipy_spftrs_scipy_slaqgb_scipy_zgtcon_scipy_sgtts2_scipy_dtrevc_scipy_dlarzb_scipy_dorgr2_scipy_dlagts_scipy_cgeequb_scipy_zpbcon_scipy_sgehd2_scipy_zgeru_scipy_strrfs_scipy_zlaqr1_scipy_dsytrf_scipy_dlat2s_scipy_zhbgv_scipy_sorm2r_scipy_dlasd1_scipy_cspcon_PyFloat_Typescipy_cunghr_scipy_cgebak_scipy_dlange_scipy_sgbsvx_scipy_ctrrfs_scipy_crot__ITM_deregisterTMCloneTablescipy_ctbsv_scipy_zptcon_scipy_zlatrz_scipy_claqr3_scipy_ctpttr_scipy_sspgst_scipy_sgeqrt3_scipy_dspcon_scipy_dlasq2_scipy_zhpcon_scipy_zlaqr2_scipy_dlaqr5_scipy_zlarfb_scipy_zlanhe_scipy_cgbrfs_scipy_cgeqrt2_PySequence_Tuplescipy_cpotrs_scipy_dtrtri_scipy_ilazlr_scipy_ssyequb_scipy_zlaqr0_scipy_dorcsd_scipy_cheequb_scipy_dlarfg_scipy_stpmqrt_scipy_chpgst_scipy_zheswapr_scipy_cgeev_scipy_zheevd_scipy_dgebd2_scipy_strttf_scipy_clanhe_PyExc_SystemErrorPyExc_ImportErrorscipy_dlartg_scipy_zlaswp_scipy_dorg2l_scipy_claev2_scipy_zher2_scipy_spttrf_scipy_cpbsvx_scipy_zlacp2_scipy_claqr0_scipy_dgsvj0_PyDict_DelItemStringscipy_zscal_scipy_slaqps_scipy_ztbmv_scipy_zungrq_scipy_dgemqrt_scipy_zhsein_scipy_zherfs_scipy_sgbtrf_scipy_dlangt_scipy_dlaqp2_scipy_zhegs2_scipy_dsbevx_scipy_dpbcon_scipy_cupgtr_scipy_zunml2_scipy_slatrz_scipy_dtzrzf_scipy_sorm2l_scipy_stgsna_scipy_dlarfb_scipy_zgelsd_scipy_sorghr_scipy_dtbsv_scipy_zlangb_scipy_dormrq_scipy_ztptri_scipy_zlaqge_scipy_sgeqp3_scipy_csytrf_scipy_cgbsv_scipy_zlaqr3_scipy_cgesvd_scipy_csyr_scipy_dorgql_scipy_dlartgp_scipy_snrm2_scipy_sptcon_scipy_zhptrd_scipy_slansb_scipy_izamax_scipy_dtftri_scipy_zsytf2_scipy_clanhb_scipy_zhptri_scipy_cunm2r_scipy_slapy3_scipy_zlarfx_scipy_dtrmm_scipy_dlahqr_scipy_dlaqsy_scipy_dsgesv_scipy_sppequ_scipy_dpttrs_scipy_zlasyf_scipy_stbrfs_scipy_sspr2_scipy_ztgsna_scipy_cgerc___gmon_start__scipy_dzsum1_scipy_zgemqrt_PyErr_Printscipy_sspevx_scipy_zcgesv_scipy_dgtsv_scipy_slauum_scipy_ssycon_scipy_dsygs2_scipy_chetrd_PyTuple_GetItemPyUnicode_Concatscipy_dormlq_scipy_sgebd2_scipy_slag2_scipy_sspcon__ITM_registerTMCloneTablescipy_zgelss_scipy_ctpttf_scipy_slarrd_scipy_slauu2_scipy_ztfttr_scipy_zlaqgb_scipy_zgetf2_scipy_sgbsv_scipy_spbstf_scipy_ztfsm_scipy_ctprfb_scipy_claein_scipy_csptri_scipy_zhemm_scipy_clarcm_scipy_icamax_scipy_dorgrq_scipy_ztrsm_scipy_ctrtri_scipy_sorgbr__gfortran_transfer_character_write@@GFORTRAN_8scipy_dnrm2_scipy_cgebal_scipy_csteqr_scipy_scopy_scipy_cgemm_scipy_zher2k_scipy_zlarft_scipy_cgelqf_scipy_sggrqf_fwrite@@GLIBC_2.2.5scipy_ctrsv_scipy_dsyev_scipy_dsyrfs_scipy_dgesvx_scipy_zgbtf2_scipy_dstevd_scipy_clarrv_scipy_zlapmt_scipy_ctgsen_scipy_cunmhr_scipy_dorg2r_scipy_sspsvx_scipy_zlapll_scipy_sgesvd_scipy_ilauplo_PyComplex_Typescipy_sspgvx_scipy_ilaclc_scipy_clatrz_PyUnicode_FromStringAndSizescipy_spbcon_scipy_dlae2_scipy_ssterf_scipy_slabad_scipy_dlaqsp_scipy_cgerfs_scipy_sgeql2_scipy_cgeqrfp_scipy_sstedc_scipy_dptts2_scipy_ssyev_scipy_slarfx_scipy_csyr2k_scipy_zgebrd_scipy_clatdf_scipy_ztgex2_.symtab.strtab.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.tbss.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.data.bss.commentHo(( Uod``( nB  xs  k~<<  )  d6OO     886F6? u 0u/uN 0h,@@$.o(@(@$8 P@P@ȣPP @ R R`GNUlڕs7?0[ 6|9c1 %JG{[URAg *0olMD,6RV Or,Nv8c/``AG#O"\\Wa1?"'(RTHSeNv!29S|RF ZXe@l> >0MEi 1R- Z.:Kn P6A8_C82B21H;/('O5y3D,, ;!Ut(m*Y &-@w 4]4!(#_G<6 2M P1^>HH7&76 %Q,\g<oD--WV ^fT2\?"8p/R#EY -S1"!NWnR;`R>DXQF<,v]3 !">^2+Y8JFQ>a,9Yp#7| IIj\W.]INT}D&&M7}Jh+SJZ+]'(:U:96!Ev Z#.^$X] 5s@#9#/dH+IxS/#blLb#4VHN[EP` 3%'1\%2l"??T;6G9>MJY<^#i4/$_,Y~#,_**@\CJT?B9=RK A' DC=K)JRS70W{M!33 $%Vn@S O>PR&pg0I+)XnZ>5GKD9f]!O3F"'Ia*O^"+BG$9BAM!BL+][9 +/MQ-;@V-* h/<='"9I?Fu0!\_C&8E4 $Sx\2\WR/G(AP7! 0@$y'P[%,;W^!PS=ZM8%WQ0M"7 P-J%_&[5FR[4#!~Y .I(Md)<)TC#?>`  l2L% 1@9XX^cY.3>+}:ZP >2\EJPM@ 2i"E&o*1J?!S ]BDKWN'*?EK(q:)1EI8V:SG[IWGl[ I47+Kb#FeW.T 49)CC>O s):rH 2O$o_NJVUP{*`Zt%(R,54ES*# -=j?zF6XXTY6A`lmC \YMHE>o $B'L+ 7A5v9h9@]6^)FNdQX M7OXcIC! )<5 8K0ULjB:HBO=:J#S,W R, oJFU=jS,CjVS?*^Y\f%4E3L9QJNqq)a&sC9F*6)Yk'j$V/A$| - IsWU-Q!?a7[V ".6b @2$\ZUHc6E] @.^;,PO'OH^B[@ C:J6u<31aJC*9:0-TF#;z58Uw"[.IQo&uEC^LN[?*~U816 & ' X%%h|E5 KQU X=G0_FI@z>779(X[r [< DEU< I ,H $M+RXU=B;M4dAU&&?LPy$ N\'P2N'LYGO0 Y ?N GIo8<[5lOq %3 KJ5R90%Q=  K< HW@&=5>: hP%<%&"22vQZp@`X:14*^B(I_}_LD>'+P<)F=W.+=.A>AA3A lUb)D!GS&+H8 -y?Q/]:B00W3<0"G *H}/!H3$UY(F7D( \ W b7A=15Gu5t]hE'.}K""9 Y M3:}7<G^sN2ZPB"O(DnA@A:4 ',"pU\34Li!#5Z~ZYDA!H5K7O _S2LLV @{-1/zL= ;Wz \BKa8LqI04#U"0@6.1!8^NYh+KPO#Q*|XEBL[H7UVS1@>l;B00M94;F ]}I*,/60zMvE]?/(+)EP-R ^)0 :CC["^FV^ 7+#LD\O@;E;;Q8P]5bNHdK&(34)qY$o1Y0-5F- \E!<[> Z;Z+Q01)2fC8&= 78H,H  ?U|. A_M.\^MM?/9*  $qK/^ CZX\SKPLE LVqIO)TW9BS^=(Be=3JCIwF;@BS]$dNV( WU@7 &;#(]R%k3G=$ 3'pZ[WW# NB Jn-TQ  Nk$%}8 LZK~YP;u D}1M@' 637<r( Q]Cq=N+:?4)V,% VE7B 7JTz20+5OB)wa/ }&t6k nXV:zFR8/*PT')UNS c45hGtT+f(I.P O J_G)V+ 1EQ#_ = <]!QP6&'O/6-]|A4xBUIX(LBIS -[ T7 T)~:,U) DrQ< 3'ZQc=bUp%(/oDG/$VH 4[r 4L$ FJ#AKG1^,6;E, Ll>AZTMg6XCZ4\ d,m AoS= 7; X TU 912"KE1(T+lFS85CF5S.C$Gc:(7FU/wG>\KZyXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX```_``    o(@ RP@ `  `( ooo(o`__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalize_Py_DeallocPyFloat_TypePyType_IsSubtypePyFloat_AsDoublePyNumber_FloatPyComplex_TypePyErr_ClearPyObject_GetAttrStringPyErr_OccurredPyErr_SetStringPySequence_CheckPySequence_GetItem__tls_get_addrPyObject_CallObject_Py_NoneStructPyTuple_SizePyUnicode_FromStringAndSizePyTuple_SetItemPyLong_FromLongstderrfwritePySequence_Tuple_Py_BuildValue_SizeTlongjmpPyNumber_LongPyLong_AsLongAndOverflowPyExc_OverflowErrorstrnlenmallocstrncpyPyExc_ValueErrormemsetPyObject_StrPyUnicode_AsASCIIStringPyExc_MemoryErrorPyFunction_TypePyObject_HasAttrStringfprintfPyTuple_NewPyTuple_GetItemPyCFunction_TypePyLong_AsSsize_tPyTuple_Type_PyArg_ParseTupleAndKeywords_SizeTfreesprintf_setjmpPyInit__cpropackPyModule_Create2PyType_TypePyImport_ImportModulePyCapsule_TypePyCapsule_GetPointerPyExc_ImportErrorPyModule_GetDictPyUnicode_FromStringPyDict_SetItemStringPyErr_NewExceptionPyType_ReadyPyExc_ModuleNotFoundErrorPyErr_ExceptionMatchesPyErr_PrintPyExc_RuntimeErrorPyErr_Formatpowfmemcpy_gfortran_st_write_gfortran_transfer_character_write_gfortran_st_write_done_gfortran_transfer_integer_write_gfortran_stop_stringscipy_cdotc_scipy_zdotc_scipy_cdotu_scipy_zdotu_scipy_cladiv_scipy_zladiv_scipy_caxpy_scipy_ccopy_scipy_cgbmv_scipy_cgemm_scipy_cgemv_scipy_cgerc_scipy_cgeru_scipy_chbmv_scipy_chemm_scipy_chemv_scipy_cher_scipy_cher2_scipy_cher2k_scipy_cherk_scipy_chpmv_scipy_chpr_scipy_chpr2_scipy_crotg_scipy_cscal_scipy_csrot_scipy_csscal_scipy_cswap_scipy_csymm_scipy_csyr2k_scipy_csyrk_scipy_ctbmv_scipy_ctbsv_scipy_ctpmv_scipy_ctpsv_scipy_ctrmm_scipy_ctrmv_scipy_ctrsm_scipy_ctrsv_scipy_dasum_scipy_daxpy_scipy_dcabs1_scipy_dcopy_scipy_ddot_scipy_dgbmv_scipy_dgemm_scipy_dgemv_scipy_dger_scipy_dnrm2_scipy_drot_scipy_drotg_scipy_drotm_scipy_drotmg_scipy_dsbmv_scipy_dscal_scipy_dsdot_scipy_dspmv_scipy_dspr_scipy_dspr2_scipy_dswap_scipy_dsymm_scipy_dsymv_scipy_dsyr_scipy_dsyr2_scipy_dsyr2k_scipy_dsyrk_scipy_dtbmv_scipy_dtbsv_scipy_dtpmv_scipy_dtpsv_scipy_dtrmm_scipy_dtrmv_scipy_dtrsm_scipy_dtrsv_scipy_dzasum_scipy_dznrm2_scipy_icamax_scipy_idamax_scipy_isamax_scipy_izamax_scipy_lsame_scipy_sasum_scipy_saxpy_scipy_scasum_scipy_scnrm2_scipy_scopy_scipy_sdot_scipy_sdsdot_scipy_sgbmv_scipy_sgemm_scipy_sgemv_scipy_sger_scipy_snrm2_scipy_srot_scipy_srotg_scipy_srotm_scipy_srotmg_scipy_ssbmv_scipy_sscal_scipy_sspmv_scipy_sspr_scipy_sspr2_scipy_sswap_scipy_ssymm_scipy_ssymv_scipy_ssyr_scipy_ssyr2_scipy_ssyr2k_scipy_ssyrk_scipy_stbmv_scipy_stbsv_scipy_stpmv_scipy_stpsv_scipy_strmm_scipy_strmv_scipy_strsm_scipy_strsv_scipy_zaxpy_scipy_zcopy_scipy_zdrot_scipy_zdscal_scipy_zgbmv_scipy_zgemm_scipy_zgemv_scipy_zgerc_scipy_zgeru_scipy_zhbmv_scipy_zhemm_scipy_zhemv_scipy_zher_scipy_zher2_scipy_zher2k_scipy_zherk_scipy_zhpmv_scipy_zhpr_scipy_zhpr2_scipy_zrotg_scipy_zscal_scipy_zswap_scipy_zsymm_scipy_zsyr2k_scipy_zsyrk_scipy_ztbmv_scipy_ztbsv_scipy_ztpmv_scipy_ztpsv_scipy_ztrmm_scipy_ztrmv_scipy_ztrsm_scipy_ztrsv_scipy_cbbcsd_scipy_cbdsqr_scipy_cgbbrd_scipy_cgbcon_scipy_cgbequ_scipy_cgbequb_scipy_cgbrfs_scipy_cgbsv_scipy_cgbsvx_scipy_cgbtf2_scipy_cgbtrf_scipy_cgbtrs_scipy_cgebak_scipy_cgebal_scipy_cgebd2_scipy_cgebrd_scipy_cgecon_scipy_cgeequ_scipy_cgeequb_scipy_cgees_scipy_cgeesx_scipy_cgeev_scipy_cgeevx_scipy_cgehd2_scipy_cgehrd_scipy_cgelq2_scipy_cgelqf_scipy_cgels_scipy_cgelsd_scipy_cgelss_scipy_cgelsy_scipy_cgemqrt_scipy_cgeql2_scipy_cgeqlf_scipy_cgeqp3_scipy_cgeqr2_scipy_cgeqr2p_scipy_cgeqrf_scipy_cgeqrfp_scipy_cgeqrt_scipy_cgeqrt2_scipy_cgeqrt3_scipy_cgerfs_scipy_cgerq2_scipy_cgerqf_scipy_cgesc2_scipy_cgesdd_scipy_cgesv_scipy_cgesvd_scipy_cgesvx_scipy_cgetc2_scipy_cgetf2_scipy_cgetrf_scipy_cgetri_scipy_cgetrs_scipy_cggbak_scipy_cggbal_scipy_cgges_scipy_cggesx_scipy_cggev_scipy_cggevx_scipy_cggglm_scipy_cgghrd_scipy_cgglse_scipy_cggqrf_scipy_cggrqf_scipy_cgtcon_scipy_cgtrfs_scipy_cgtsv_scipy_cgtsvx_scipy_cgttrf_scipy_cgttrs_scipy_cgtts2_scipy_chbev_scipy_chbevd_scipy_chbevx_scipy_chbgst_scipy_chbgv_scipy_chbgvd_scipy_chbgvx_scipy_chbtrd_scipy_checon_scipy_cheequb_scipy_cheev_scipy_cheevd_scipy_cheevr_scipy_cheevx_scipy_chegs2_scipy_chegst_scipy_chegv_scipy_chegvd_scipy_chegvx_scipy_cherfs_scipy_chesv_scipy_chesvx_scipy_cheswapr_scipy_chetd2_scipy_chetf2_scipy_chetrd_scipy_chetrf_scipy_chetri_scipy_chetri2_scipy_chetri2x_scipy_chetrs_scipy_chetrs2_scipy_chfrk_scipy_chgeqz_scipy_chla_transtype_scipy_chpcon_scipy_chpev_scipy_chpevd_scipy_chpevx_scipy_chpgst_scipy_chpgv_scipy_chpgvd_scipy_chpgvx_scipy_chprfs_scipy_chpsv_scipy_chpsvx_scipy_chptrd_scipy_chptrf_scipy_chptri_scipy_chptrs_scipy_chsein_scipy_chseqr_scipy_clabrd_scipy_clacgv_scipy_clacn2_scipy_clacon_scipy_clacp2_scipy_clacpy_scipy_clacrm_scipy_clacrt_scipy_claed0_scipy_claed7_scipy_claed8_scipy_claein_scipy_claesy_scipy_claev2_scipy_clag2z_scipy_clags2_scipy_clagtm_scipy_clahef_scipy_clahqr_scipy_clahr2_scipy_claic1_scipy_clals0_scipy_clalsa_scipy_clalsd_scipy_clangb_scipy_clange_scipy_clangt_scipy_clanhb_scipy_clanhe_scipy_clanhf_scipy_clanhp_scipy_clanhs_scipy_clanht_scipy_clansb_scipy_clansp_scipy_clansy_scipy_clantb_scipy_clantp_scipy_clantr_scipy_clapll_scipy_clapmr_scipy_clapmt_scipy_claqgb_scipy_claqge_scipy_claqhb_scipy_claqhe_scipy_claqhp_scipy_claqp2_scipy_claqps_scipy_claqr0_scipy_claqr1_scipy_claqr2_scipy_claqr3_scipy_claqr4_scipy_claqr5_scipy_claqsb_scipy_claqsp_scipy_claqsy_scipy_clar1v_scipy_clar2v_scipy_clarcm_scipy_clarf_scipy_clarfb_scipy_clarfg_scipy_clarfgp_scipy_clarft_scipy_clarfx_scipy_clargv_scipy_clarnv_scipy_clarrv_scipy_clartg_scipy_clartv_scipy_clarz_scipy_clarzb_scipy_clarzt_scipy_clascl_scipy_claset_scipy_clasr_scipy_classq_scipy_claswp_scipy_clasyf_scipy_clatbs_scipy_clatdf_scipy_clatps_scipy_clatrd_scipy_clatrs_scipy_clatrz_scipy_clauu2_scipy_clauum_scipy_cpbcon_scipy_cpbequ_scipy_cpbrfs_scipy_cpbstf_scipy_cpbsv_scipy_cpbsvx_scipy_cpbtf2_scipy_cpbtrf_scipy_cpbtrs_scipy_cpftrf_scipy_cpftri_scipy_cpftrs_scipy_cpocon_scipy_cpoequ_scipy_cpoequb_scipy_cporfs_scipy_cposv_scipy_cposvx_scipy_cpotf2_scipy_cpotrf_scipy_cpotri_scipy_cpotrs_scipy_cppcon_scipy_cppequ_scipy_cpprfs_scipy_cppsv_scipy_cppsvx_scipy_cpptrf_scipy_cpptri_scipy_cpptrs_scipy_cpstf2_scipy_cpstrf_scipy_cptcon_scipy_cpteqr_scipy_cptrfs_scipy_cptsv_scipy_cptsvx_scipy_cpttrf_scipy_cpttrs_scipy_cptts2_scipy_crot_scipy_cspcon_scipy_cspmv_scipy_cspr_scipy_csprfs_scipy_cspsv_scipy_cspsvx_scipy_csptrf_scipy_csptri_scipy_csptrs_scipy_csrscl_scipy_cstedc_scipy_cstegr_scipy_cstein_scipy_cstemr_scipy_csteqr_scipy_csycon_scipy_csyconv_scipy_csyequb_scipy_csymv_scipy_csyr_scipy_csyrfs_scipy_csysv_scipy_csysvx_scipy_csyswapr_scipy_csytf2_scipy_csytrf_scipy_csytri_scipy_csytri2_scipy_csytri2x_scipy_csytrs_scipy_csytrs2_scipy_ctbcon_scipy_ctbrfs_scipy_ctbtrs_scipy_ctfsm_scipy_ctftri_scipy_ctfttp_scipy_ctfttr_scipy_ctgevc_scipy_ctgex2_scipy_ctgexc_scipy_ctgsen_scipy_ctgsja_scipy_ctgsna_scipy_ctgsy2_scipy_ctgsyl_scipy_ctpcon_scipy_ctpmqrt_scipy_ctpqrt_scipy_ctpqrt2_scipy_ctprfb_scipy_ctprfs_scipy_ctptri_scipy_ctptrs_scipy_ctpttf_scipy_ctpttr_scipy_ctrcon_scipy_ctrevc_scipy_ctrexc_scipy_ctrrfs_scipy_ctrsen_scipy_ctrsna_scipy_ctrsyl_scipy_ctrti2_scipy_ctrtri_scipy_ctrtrs_scipy_ctrttf_scipy_ctrttp_scipy_ctzrzf_scipy_cunbdb_scipy_cuncsd_scipy_cung2l_scipy_cung2r_scipy_cungbr_scipy_cunghr_scipy_cungl2_scipy_cunglq_scipy_cungql_scipy_cungqr_scipy_cungr2_scipy_cungrq_scipy_cungtr_scipy_cunm2l_scipy_cunm2r_scipy_cunmbr_scipy_cunmhr_scipy_cunml2_scipy_cunmlq_scipy_cunmql_scipy_cunmqr_scipy_cunmr2_scipy_cunmr3_scipy_cunmrq_scipy_cunmrz_scipy_cunmtr_scipy_cupgtr_scipy_cupmtr_scipy_dbbcsd_scipy_dbdsdc_scipy_dbdsqr_scipy_ddisna_scipy_dgbbrd_scipy_dgbcon_scipy_dgbequ_scipy_dgbequb_scipy_dgbrfs_scipy_dgbsv_scipy_dgbsvx_scipy_dgbtf2_scipy_dgbtrf_scipy_dgbtrs_scipy_dgebak_scipy_dgebal_scipy_dgebd2_scipy_dgebrd_scipy_dgecon_scipy_dgeequ_scipy_dgeequb_scipy_dgees_scipy_dgeesx_scipy_dgeev_scipy_dgeevx_scipy_dgehd2_scipy_dgehrd_scipy_dgejsv_scipy_dgelq2_scipy_dgelqf_scipy_dgels_scipy_dgelsd_scipy_dgelss_scipy_dgelsy_scipy_dgemqrt_scipy_dgeql2_scipy_dgeqlf_scipy_dgeqp3_scipy_dgeqr2_scipy_dgeqr2p_scipy_dgeqrf_scipy_dgeqrfp_scipy_dgeqrt_scipy_dgeqrt2_scipy_dgeqrt3_scipy_dgerfs_scipy_dgerq2_scipy_dgerqf_scipy_dgesc2_scipy_dgesdd_scipy_dgesv_scipy_dgesvd_scipy_dgesvj_scipy_dgesvx_scipy_dgetc2_scipy_dgetf2_scipy_dgetrf_scipy_dgetri_scipy_dgetrs_scipy_dggbak_scipy_dggbal_scipy_dgges_scipy_dggesx_scipy_dggev_scipy_dggevx_scipy_dggglm_scipy_dgghrd_scipy_dgglse_scipy_dggqrf_scipy_dggrqf_scipy_dgsvj0_scipy_dgsvj1_scipy_dgtcon_scipy_dgtrfs_scipy_dgtsv_scipy_dgtsvx_scipy_dgttrf_scipy_dgttrs_scipy_dgtts2_scipy_dhgeqz_scipy_dhsein_scipy_dhseqr_scipy_disnan_scipy_dlabad_scipy_dlabrd_scipy_dlacn2_scipy_dlacon_scipy_dlacpy_scipy_dladiv_scipy_dlae2_scipy_dlaebz_scipy_dlaed0_scipy_dlaed1_scipy_dlaed2_scipy_dlaed3_scipy_dlaed4_scipy_dlaed5_scipy_dlaed6_scipy_dlaed7_scipy_dlaed8_scipy_dlaed9_scipy_dlaeda_scipy_dlaein_scipy_dlaev2_scipy_dlaexc_scipy_dlag2_scipy_dlag2s_scipy_dlags2_scipy_dlagtf_scipy_dlagtm_scipy_dlagts_scipy_dlagv2_scipy_dlahqr_scipy_dlahr2_scipy_dlaic1_scipy_dlaln2_scipy_dlals0_scipy_dlalsa_scipy_dlalsd_scipy_dlamch_scipy_dlamrg_scipy_dlaneg_scipy_dlangb_scipy_dlange_scipy_dlangt_scipy_dlanhs_scipy_dlansb_scipy_dlansf_scipy_dlansp_scipy_dlanst_scipy_dlansy_scipy_dlantb_scipy_dlantp_scipy_dlantr_scipy_dlanv2_scipy_dlapll_scipy_dlapmr_scipy_dlapmt_scipy_dlapy2_scipy_dlapy3_scipy_dlaqgb_scipy_dlaqge_scipy_dlaqp2_scipy_dlaqps_scipy_dlaqr0_scipy_dlaqr1_scipy_dlaqr2_scipy_dlaqr3_scipy_dlaqr4_scipy_dlaqr5_scipy_dlaqsb_scipy_dlaqsp_scipy_dlaqsy_scipy_dlaqtr_scipy_dlar1v_scipy_dlar2v_scipy_dlarf_scipy_dlarfb_scipy_dlarfg_scipy_dlarfgp_scipy_dlarft_scipy_dlarfx_scipy_dlargv_scipy_dlarnv_scipy_dlarra_scipy_dlarrb_scipy_dlarrc_scipy_dlarrd_scipy_dlarre_scipy_dlarrf_scipy_dlarrj_scipy_dlarrk_scipy_dlarrr_scipy_dlarrv_scipy_dlartg_scipy_dlartgp_scipy_dlartgs_scipy_dlartv_scipy_dlaruv_scipy_dlarz_scipy_dlarzb_scipy_dlarzt_scipy_dlas2_scipy_dlascl_scipy_dlasd0_scipy_dlasd1_scipy_dlasd2_scipy_dlasd3_scipy_dlasd4_scipy_dlasd5_scipy_dlasd6_scipy_dlasd7_scipy_dlasd8_scipy_dlasda_scipy_dlasdq_scipy_dlasdt_scipy_dlaset_scipy_dlasq1_scipy_dlasq2_scipy_dlasq3_scipy_dlasq4_scipy_dlasq6_scipy_dlasr_scipy_dlasrt_scipy_dlassq_scipy_dlasv2_scipy_dlaswp_scipy_dlasy2_scipy_dlasyf_scipy_dlat2s_scipy_dlatbs_scipy_dlatdf_scipy_dlatps_scipy_dlatrd_scipy_dlatrs_scipy_dlatrz_scipy_dlauu2_scipy_dlauum_scipy_dopgtr_scipy_dopmtr_scipy_dorbdb_scipy_dorcsd_scipy_dorg2l_scipy_dorg2r_scipy_dorgbr_scipy_dorghr_scipy_dorgl2_scipy_dorglq_scipy_dorgql_scipy_dorgqr_scipy_dorgr2_scipy_dorgrq_scipy_dorgtr_scipy_dorm2l_scipy_dorm2r_scipy_dormbr_scipy_dormhr_scipy_dorml2_scipy_dormlq_scipy_dormql_scipy_dormqr_scipy_dormr2_scipy_dormr3_scipy_dormrq_scipy_dormrz_scipy_dormtr_scipy_dpbcon_scipy_dpbequ_scipy_dpbrfs_scipy_dpbstf_scipy_dpbsv_scipy_dpbsvx_scipy_dpbtf2_scipy_dpbtrf_scipy_dpbtrs_scipy_dpftrf_scipy_dpftri_scipy_dpftrs_scipy_dpocon_scipy_dpoequ_scipy_dpoequb_scipy_dporfs_scipy_dposv_scipy_dposvx_scipy_dpotf2_scipy_dpotrf_scipy_dpotri_scipy_dpotrs_scipy_dppcon_scipy_dppequ_scipy_dpprfs_scipy_dppsv_scipy_dppsvx_scipy_dpptrf_scipy_dpptri_scipy_dpptrs_scipy_dpstf2_scipy_dpstrf_scipy_dptcon_scipy_dpteqr_scipy_dptrfs_scipy_dptsv_scipy_dptsvx_scipy_dpttrf_scipy_dpttrs_scipy_dptts2_scipy_drscl_scipy_dsbev_scipy_dsbevd_scipy_dsbevx_scipy_dsbgst_scipy_dsbgv_scipy_dsbgvd_scipy_dsbgvx_scipy_dsbtrd_scipy_dsfrk_scipy_dsgesv_scipy_dspcon_scipy_dspev_scipy_dspevd_scipy_dspevx_scipy_dspgst_scipy_dspgv_scipy_dspgvd_scipy_dspgvx_scipy_dsposv_scipy_dsprfs_scipy_dspsv_scipy_dspsvx_scipy_dsptrd_scipy_dsptrf_scipy_dsptri_scipy_dsptrs_scipy_dstebz_scipy_dstedc_scipy_dstegr_scipy_dstein_scipy_dstemr_scipy_dsteqr_scipy_dsterf_scipy_dstev_scipy_dstevd_scipy_dstevr_scipy_dstevx_scipy_dsycon_scipy_dsyconv_scipy_dsyequb_scipy_dsyev_scipy_dsyevd_scipy_dsyevr_scipy_dsyevx_scipy_dsygs2_scipy_dsygst_scipy_dsygv_scipy_dsygvd_scipy_dsygvx_scipy_dsyrfs_scipy_dsysv_scipy_dsysvx_scipy_dsyswapr_scipy_dsytd2_scipy_dsytf2_scipy_dsytrd_scipy_dsytrf_scipy_dsytri_scipy_dsytri2_scipy_dsytri2x_scipy_dsytrs_scipy_dsytrs2_scipy_dtbcon_scipy_dtbrfs_scipy_dtbtrs_scipy_dtfsm_scipy_dtftri_scipy_dtfttp_scipy_dtfttr_scipy_dtgevc_scipy_dtgex2_scipy_dtgexc_scipy_dtgsen_scipy_dtgsja_scipy_dtgsna_scipy_dtgsy2_scipy_dtgsyl_scipy_dtpcon_scipy_dtpmqrt_scipy_dtpqrt_scipy_dtpqrt2_scipy_dtprfb_scipy_dtprfs_scipy_dtptri_scipy_dtptrs_scipy_dtpttf_scipy_dtpttr_scipy_dtrcon_scipy_dtrevc_scipy_dtrexc_scipy_dtrrfs_scipy_dtrsen_scipy_dtrsna_scipy_dtrsyl_scipy_dtrti2_scipy_dtrtri_scipy_dtrtrs_scipy_dtrttf_scipy_dtrttp_scipy_dtzrzf_scipy_dzsum1_scipy_icmax1_scipy_ieeeck_scipy_ilaclc_scipy_ilaclr_scipy_iladiag_scipy_iladlc_scipy_iladlr_scipy_ilaprec_scipy_ilaslc_scipy_ilaslr_scipy_ilatrans_scipy_ilauplo_scipy_ilaver_scipy_ilazlc_scipy_ilazlr_scipy_izmax1_scipy_sbbcsd_scipy_sbdsdc_scipy_sbdsqr_scipy_scsum1_scipy_sdisna_scipy_sgbbrd_scipy_sgbcon_scipy_sgbequ_scipy_sgbequb_scipy_sgbrfs_scipy_sgbsv_scipy_sgbsvx_scipy_sgbtf2_scipy_sgbtrf_scipy_sgbtrs_scipy_sgebak_scipy_sgebal_scipy_sgebd2_scipy_sgebrd_scipy_sgecon_scipy_sgeequ_scipy_sgeequb_scipy_sgees_scipy_sgeesx_scipy_sgeev_scipy_sgeevx_scipy_sgehd2_scipy_sgehrd_scipy_sgejsv_scipy_sgelq2_scipy_sgelqf_scipy_sgels_scipy_sgelsd_scipy_sgelss_scipy_sgelsy_scipy_sgemqrt_scipy_sgeql2_scipy_sgeqlf_scipy_sgeqp3_scipy_sgeqr2_scipy_sgeqr2p_scipy_sgeqrf_scipy_sgeqrfp_scipy_sgeqrt_scipy_sgeqrt2_scipy_sgeqrt3_scipy_sgerfs_scipy_sgerq2_scipy_sgerqf_scipy_sgesc2_scipy_sgesdd_scipy_sgesv_scipy_sgesvd_scipy_sgesvj_scipy_sgesvx_scipy_sgetc2_scipy_sgetf2_scipy_sgetrf_scipy_sgetri_scipy_sgetrs_scipy_sggbak_scipy_sggbal_scipy_sgges_scipy_sggesx_scipy_sggev_scipy_sggevx_scipy_sggglm_scipy_sgghrd_scipy_sgglse_scipy_sggqrf_scipy_sggrqf_scipy_sgsvj0_scipy_sgsvj1_scipy_sgtcon_scipy_sgtrfs_scipy_sgtsv_scipy_sgtsvx_scipy_sgttrf_scipy_sgttrs_scipy_sgtts2_scipy_shgeqz_scipy_shsein_scipy_shseqr_scipy_slabad_scipy_slabrd_scipy_slacn2_scipy_slacon_scipy_slacpy_scipy_sladiv_scipy_slae2_scipy_slaebz_scipy_slaed0_scipy_slaed1_scipy_slaed2_scipy_slaed3_scipy_slaed4_scipy_slaed5_scipy_slaed6_scipy_slaed7_scipy_slaed8_scipy_slaed9_scipy_slaeda_scipy_slaein_scipy_slaev2_scipy_slaexc_scipy_slag2_scipy_slag2d_scipy_slags2_scipy_slagtf_scipy_slagtm_scipy_slagts_scipy_slagv2_scipy_slahqr_scipy_slahr2_scipy_slaic1_scipy_slaln2_scipy_slals0_scipy_slalsa_scipy_slalsd_scipy_slamch_scipy_slamrg_scipy_slangb_scipy_slange_scipy_slangt_scipy_slanhs_scipy_slansb_scipy_slansf_scipy_slansp_scipy_slanst_scipy_slansy_scipy_slantb_scipy_slantp_scipy_slantr_scipy_slanv2_scipy_slapll_scipy_slapmr_scipy_slapmt_scipy_slapy2_scipy_slapy3_scipy_slaqgb_scipy_slaqge_scipy_slaqp2_scipy_slaqps_scipy_slaqr0_scipy_slaqr1_scipy_slaqr2_scipy_slaqr3_scipy_slaqr4_scipy_slaqr5_scipy_slaqsb_scipy_slaqsp_scipy_slaqsy_scipy_slaqtr_scipy_slar1v_scipy_slar2v_scipy_slarf_scipy_slarfb_scipy_slarfg_scipy_slarfgp_scipy_slarft_scipy_slarfx_scipy_slargv_scipy_slarnv_scipy_slarra_scipy_slarrb_scipy_slarrc_scipy_slarrd_scipy_slarre_scipy_slarrf_scipy_slarrj_scipy_slarrk_scipy_slarrr_scipy_slarrv_scipy_slartg_scipy_slartgp_scipy_slartgs_scipy_slartv_scipy_slaruv_scipy_slarz_scipy_slarzb_scipy_slarzt_scipy_slas2_scipy_slascl_scipy_slasd0_scipy_slasd1_scipy_slasd2_scipy_slasd3_scipy_slasd4_scipy_slasd5_scipy_slasd6_scipy_slasd7_scipy_slasd8_scipy_slasda_scipy_slasdq_scipy_slasdt_scipy_slaset_scipy_slasq1_scipy_slasq2_scipy_slasq3_scipy_slasq4_scipy_slasq6_scipy_slasr_scipy_slasrt_scipy_slassq_scipy_slasv2_scipy_slaswp_scipy_slasy2_scipy_slasyf_scipy_slatbs_scipy_slatdf_scipy_slatps_scipy_slatrd_scipy_slatrs_scipy_slatrz_scipy_slauu2_scipy_slauum_scipy_sopgtr_scipy_sopmtr_scipy_sorbdb_scipy_sorcsd_scipy_sorg2l_scipy_sorg2r_scipy_sorgbr_scipy_sorghr_scipy_sorgl2_scipy_sorglq_scipy_sorgql_scipy_sorgqr_scipy_sorgr2_scipy_sorgrq_scipy_sorgtr_scipy_sorm2l_scipy_sorm2r_scipy_sormbr_scipy_sormhr_scipy_sorml2_scipy_sormlq_scipy_sormql_scipy_sormqr_scipy_sormr2_scipy_sormr3_scipy_sormrq_scipy_sormrz_scipy_sormtr_scipy_spbcon_scipy_spbequ_scipy_spbrfs_scipy_spbstf_scipy_spbsv_scipy_spbsvx_scipy_spbtf2_scipy_spbtrf_scipy_spbtrs_scipy_spftrf_scipy_spftri_scipy_spftrs_scipy_spocon_scipy_spoequ_scipy_spoequb_scipy_sporfs_scipy_sposv_scipy_sposvx_scipy_spotf2_scipy_spotrf_scipy_spotri_scipy_spotrs_scipy_sppcon_scipy_sppequ_scipy_spprfs_scipy_sppsv_scipy_sppsvx_scipy_spptrf_scipy_spptri_scipy_spptrs_scipy_spstf2_scipy_spstrf_scipy_sptcon_scipy_spteqr_scipy_sptrfs_scipy_sptsv_scipy_sptsvx_scipy_spttrf_scipy_spttrs_scipy_sptts2_scipy_srscl_scipy_ssbev_scipy_ssbevd_scipy_ssbevx_scipy_ssbgst_scipy_ssbgv_scipy_ssbgvd_scipy_ssbgvx_scipy_ssbtrd_scipy_ssfrk_scipy_sspcon_scipy_sspev_scipy_sspevd_scipy_sspevx_scipy_sspgst_scipy_sspgv_scipy_sspgvd_scipy_sspgvx_scipy_ssprfs_scipy_sspsv_scipy_sspsvx_scipy_ssptrd_scipy_ssptrf_scipy_ssptri_scipy_ssptrs_scipy_sstebz_scipy_sstedc_scipy_sstegr_scipy_sstein_scipy_sstemr_scipy_ssteqr_scipy_ssterf_scipy_sstev_scipy_sstevd_scipy_sstevr_scipy_sstevx_scipy_ssycon_scipy_ssyconv_scipy_ssyequb_scipy_ssyev_scipy_ssyevd_scipy_ssyevr_scipy_ssyevx_scipy_ssygs2_scipy_ssygst_scipy_ssygv_scipy_ssygvd_scipy_ssygvx_scipy_ssyrfs_scipy_ssysv_scipy_ssysvx_scipy_ssyswapr_scipy_ssytd2_scipy_ssytf2_scipy_ssytrd_scipy_ssytrf_scipy_ssytri_scipy_ssytri2_scipy_ssytri2x_scipy_ssytrs_scipy_ssytrs2_scipy_stbcon_scipy_stbrfs_scipy_stbtrs_scipy_stfsm_scipy_stftri_scipy_stfttp_scipy_stfttr_scipy_stgevc_scipy_stgex2_scipy_stgexc_scipy_stgsen_scipy_stgsja_scipy_stgsna_scipy_stgsy2_scipy_stgsyl_scipy_stpcon_scipy_stpmqrt_scipy_stpqrt_scipy_stpqrt2_scipy_stprfb_scipy_stprfs_scipy_stptri_scipy_stptrs_scipy_stpttf_scipy_stpttr_scipy_strcon_scipy_strevc_scipy_strexc_scipy_strrfs_scipy_strsen_scipy_strsna_scipy_strsyl_scipy_strti2_scipy_strtri_scipy_strtrs_scipy_strttf_scipy_strttp_scipy_stzrzf_scipy_xerbla_array_scipy_zbbcsd_scipy_zbdsqr_scipy_zcgesv_scipy_zcposv_scipy_zdrscl_scipy_zgbbrd_scipy_zgbcon_scipy_zgbequ_scipy_zgbequb_scipy_zgbrfs_scipy_zgbsv_scipy_zgbsvx_scipy_zgbtf2_scipy_zgbtrf_scipy_zgbtrs_scipy_zgebak_scipy_zgebal_scipy_zgebd2_scipy_zgebrd_scipy_zgecon_scipy_zgeequ_scipy_zgeequb_scipy_zgees_scipy_zgeesx_scipy_zgeev_scipy_zgeevx_scipy_zgehd2_scipy_zgehrd_scipy_zgelq2_scipy_zgelqf_scipy_zgels_scipy_zgelsd_scipy_zgelss_scipy_zgelsy_scipy_zgemqrt_scipy_zgeql2_scipy_zgeqlf_scipy_zgeqp3_scipy_zgeqr2_scipy_zgeqr2p_scipy_zgeqrf_scipy_zgeqrfp_scipy_zgeqrt_scipy_zgeqrt2_scipy_zgeqrt3_scipy_zgerfs_scipy_zgerq2_scipy_zgerqf_scipy_zgesc2_scipy_zgesdd_scipy_zgesv_scipy_zgesvd_scipy_zgesvx_scipy_zgetc2_scipy_zgetf2_scipy_zgetrf_scipy_zgetri_scipy_zgetrs_scipy_zggbak_scipy_zggbal_scipy_zgges_scipy_zggesx_scipy_zggev_scipy_zggevx_scipy_zggglm_scipy_zgghrd_scipy_zgglse_scipy_zggqrf_scipy_zggrqf_scipy_zgtcon_scipy_zgtrfs_scipy_zgtsv_scipy_zgtsvx_scipy_zgttrf_scipy_zgttrs_scipy_zgtts2_scipy_zhbev_scipy_zhbevd_scipy_zhbevx_scipy_zhbgst_scipy_zhbgv_scipy_zhbgvd_scipy_zhbgvx_scipy_zhbtrd_scipy_zhecon_scipy_zheequb_scipy_zheev_scipy_zheevd_scipy_zheevr_scipy_zheevx_scipy_zhegs2_scipy_zhegst_scipy_zhegv_scipy_zhegvd_scipy_zhegvx_scipy_zherfs_scipy_zhesv_scipy_zhesvx_scipy_zheswapr_scipy_zhetd2_scipy_zhetf2_scipy_zhetrd_scipy_zhetrf_scipy_zhetri_scipy_zhetri2_scipy_zhetri2x_scipy_zhetrs_scipy_zhetrs2_scipy_zhfrk_scipy_zhgeqz_scipy_zhpcon_scipy_zhpev_scipy_zhpevd_scipy_zhpevx_scipy_zhpgst_scipy_zhpgv_scipy_zhpgvd_scipy_zhpgvx_scipy_zhprfs_scipy_zhpsv_scipy_zhpsvx_scipy_zhptrd_scipy_zhptrf_scipy_zhptri_scipy_zhptrs_scipy_zhsein_scipy_zhseqr_scipy_zlabrd_scipy_zlacgv_scipy_zlacn2_scipy_zlacon_scipy_zlacp2_scipy_zlacpy_scipy_zlacrm_scipy_zlacrt_scipy_zlaed0_scipy_zlaed7_scipy_zlaed8_scipy_zlaein_scipy_zlaesy_scipy_zlaev2_scipy_zlag2c_scipy_zlags2_scipy_zlagtm_scipy_zlahef_scipy_zlahqr_scipy_zlahr2_scipy_zlaic1_scipy_zlals0_scipy_zlalsa_scipy_zlalsd_scipy_zlangb_scipy_zlange_scipy_zlangt_scipy_zlanhb_scipy_zlanhe_scipy_zlanhf_scipy_zlanhp_scipy_zlanhs_scipy_zlanht_scipy_zlansb_scipy_zlansp_scipy_zlansy_scipy_zlantb_scipy_zlantp_scipy_zlantr_scipy_zlapll_scipy_zlapmr_scipy_zlapmt_scipy_zlaqgb_scipy_zlaqge_scipy_zlaqhb_scipy_zlaqhe_scipy_zlaqhp_scipy_zlaqp2_scipy_zlaqps_scipy_zlaqr0_scipy_zlaqr1_scipy_zlaqr2_scipy_zlaqr3_scipy_zlaqr4_scipy_zlaqr5_scipy_zlaqsb_scipy_zlaqsp_scipy_zlaqsy_scipy_zlar1v_scipy_zlar2v_scipy_zlarcm_scipy_zlarf_scipy_zlarfb_scipy_zlarfg_scipy_zlarfgp_scipy_zlarft_scipy_zlarfx_scipy_zlargv_scipy_zlarnv_scipy_zlarrv_scipy_zlartg_scipy_zlartv_scipy_zlarz_scipy_zlarzb_scipy_zlarzt_scipy_zlascl_scipy_zlaset_scipy_zlasr_scipy_zlassq_scipy_zlaswp_scipy_zlasyf_scipy_zlat2c_scipy_zlatbs_scipy_zlatdf_scipy_zlatps_scipy_zlatrd_scipy_zlatrs_scipy_zlatrz_scipy_zlauu2_scipy_zlauum_scipy_zpbcon_scipy_zpbequ_scipy_zpbrfs_scipy_zpbstf_scipy_zpbsv_scipy_zpbsvx_scipy_zpbtf2_scipy_zpbtrf_scipy_zpbtrs_scipy_zpftrf_scipy_zpftri_scipy_zpftrs_scipy_zpocon_scipy_zpoequ_scipy_zpoequb_scipy_zporfs_scipy_zposv_scipy_zposvx_scipy_zpotf2_scipy_zpotrf_scipy_zpotri_scipy_zpotrs_scipy_zppcon_scipy_zppequ_scipy_zpprfs_scipy_zppsv_scipy_zppsvx_scipy_zpptrf_scipy_zpptri_scipy_zpptrs_scipy_zpstf2_scipy_zpstrf_scipy_zptcon_scipy_zpteqr_scipy_zptrfs_scipy_zptsv_scipy_zptsvx_scipy_zpttrf_scipy_zpttrs_scipy_zptts2_scipy_zrot_scipy_zspcon_scipy_zspmv_scipy_zspr_scipy_zsprfs_scipy_zspsv_scipy_zspsvx_scipy_zsptrf_scipy_zsptri_scipy_zsptrs_scipy_zstedc_scipy_zstegr_scipy_zstein_scipy_zstemr_scipy_zsteqr_scipy_zsycon_scipy_zsyconv_scipy_zsyequb_scipy_zsymv_scipy_zsyr_scipy_zsyrfs_scipy_zsysv_scipy_zsysvx_scipy_zsyswapr_scipy_zsytf2_scipy_zsytrf_scipy_zsytri_scipy_zsytri2_scipy_zsytri2x_scipy_zsytrs_scipy_zsytrs2_scipy_ztbcon_scipy_ztbrfs_scipy_ztbtrs_scipy_ztfsm_scipy_ztftri_scipy_ztfttp_scipy_ztfttr_scipy_ztgevc_scipy_ztgex2_scipy_ztgexc_scipy_ztgsen_scipy_ztgsja_scipy_ztgsna_scipy_ztgsy2_scipy_ztgsyl_scipy_ztpcon_scipy_ztpmqrt_scipy_ztpqrt_scipy_ztpqrt2_scipy_ztprfb_scipy_ztprfs_scipy_ztptri_scipy_ztptrs_scipy_ztpttf_scipy_ztpttr_scipy_ztrcon_scipy_ztrevc_scipy_ztrexc_scipy_ztrrfs_scipy_ztrsen_scipy_ztrsna_scipy_ztrsyl_scipy_ztrti2_scipy_ztrtri_scipy_ztrtrs_scipy_ztrttf_scipy_ztrttp_scipy_ztzrzf_scipy_zunbdb_scipy_zuncsd_scipy_zung2l_scipy_zung2r_scipy_zungbr_scipy_zunghr_scipy_zungl2_scipy_zunglq_scipy_zungql_scipy_zungqr_scipy_zungr2_scipy_zungrq_scipy_zungtr_scipy_zunm2l_scipy_zunm2r_scipy_zunmbr_scipy_zunmhr_scipy_zunml2_scipy_zunmlq_scipy_zunmql_scipy_zunmqr_scipy_zunmr2_scipy_zunmr3_scipy_zunmrq_scipy_zunmrz_scipy_zunmtr_scipy_zupgtr_scipy_zupmtr_PyOS_snprintfPySequence_FaststrcpystrlenPyExc_TypeError_PyDict_GetItemStringWithErrorstrcmpPyObject_GenericGetAttrPyMem_FreePyUnicode_ConcatPyMem_MallocPyErr_NoMemoryPyCapsule_NewPyObject_FreePyUnicode_FromFormatPyThreadState_GetDictPyDict_GetItemStringPyLong_AsVoidPtrPyLong_FromVoidPtr_Py_FatalErrorFunc_PyObject_NewPyDict_NewPyExc_SystemErrorPyDict_DelItemStringPyExc_AttributeErrorPySequence_Sizelibscipy_openblas.solibgfortran.so.5libm.so.6libc.so.6ld-linux-x86-64.so.2GLIBC_2.3GLIBC_2.2.5GFORTRAN_8GLIBC_2.14/opt/_internal/cpython-3.12.11/lib/python3.12/site-packages/scipy_openblas32/liblibscipy_openblas-b75cc656.solibgfortran-040039e1.so.5.0.0$ORIGIN/../../../../scipy.libs