
    3j}                    k   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKJrJ	r	J
r
  S SKJr  S SKJrJrJrJr  S SKJrJrJrJrJr  S SKrS SKJr  S SKJr  S SKJs  J r!  S SKJ"r"J#r#J$r$J%r%  S SKJ&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<  S SK=J>r>J?r?J@r@JArAJBrBJCrC  S S	KDJErE  / S
QrF\R                  rG\R                  R                  rI\R                  R                  R                  rLS rMS rNS rOSS.S jrPS SKQJRrR  \S" 5       rT\TSSS.S\4S jjrUS rVS rW\U" \,R                  SS9S 5       rY\U" \,R                  5      S 5       r[\U" \,R                  5      S 5       r\\U" \,R                  5      S 5       r]\U" \,R                  5      S 5       r^\U" \,R                  5      S 5       r_\U" \,R                  5      S 5       r`\U" \,R                  5      S  5       rb\U" \,R                  SS9S! 5       rc\R" \LR                  5      S"\:4S# j5       rd\R" \LR                  5      \C" 5       S"\:4S$ j5       5       re\U" \,R                  5      S% 5       rf\U" \,R                  5      S& 5       rg\U" \,R                  5      S' 5       rh\U" \,R                  5      S( 5       ri\U" \,R                  5      S) 5       rj\U" \,R                  5      S* 5       rk\U" \,R                  5      S+ 5       rl\U" \,R                  5      S, 5       rm\U" \,R                  5      S- 5       rn\C" 5       \A" S.\,R                  S/9S0\:S1\4S\:4S2 j5       5       rpS0\:S1\4S\:4S3 jrq\R" \LR                  5      \C" 5       S"\:S\:4S4 j5       5       rr\U" \,R                  SS9S5 5       rs\U" \,R                  SS9S6\:S\:4S7 j5       rtS0\:S\:4S8 jru\U" \,R                  SS99S0\:S\:4S: j5       rw\U" \,R                  5      S0\:S\:4S; j5       rx\U" \,R                  SS9S0\:S\:4S< j5       ry\U" \,R                  SS9S0\:S\:4S= j5       rz\U" \,R                  5      S0\:S\:4S> j5       r{\V" \R                  R                  S?5      r~\U" \,R                  SS99S0\:S\:4S@ j5       r\U" \,R                  \LGR                   S99SA 5       r\U" \,R                  5      SB 5       r\U" \,R                  5      SC 5       r\U" \,R                  5      SD 5       r\U" \,R                  5      SE 5       r\U" \,R                  5      SF 5       r\C" 5        GSS0\:SG\SH\GR                  S-  S\:4SI jj5       r\R" \LGR                  5      \C" 5       \A" SJ\,R                  S/9 GSSK\:SG\*SL\S\:4SM jj5       5       5       r\R" \LGR                  5      \C" 5          GSS0\:SN\4S-  SO\4S-  SP\4S-  S\:4
SQ jj5       5       rS0\:4SR jr\U" \,R                  \SS9ST 5       rS0\:S\:4SU jrS0\:S\:4SV jr\U" \,R                  5      SW 5       r\R" \LGR"                  5      \C" 5       \A" S.\,R                  S/9S SX.S0\:SY\S\:4SZ jj5       5       5       r\U" \,R                  5      S[ 5       r\U" \,R                  5      S0\:S\:4S\ j5       r\U" \,R                  SS9S] 5       r\U" \,R                  SS9S^ 5       r\U" \,R                  SS9S_ 5       r\U" \,R                  5      S` 5       r\U" \,R                  5      Sa 5       r\U" \,R                  5      Sb 5       r\U" \,R                  5      Sc 5       r\U" \,GR6                  SS99S0\:S\:4Sd j5       r\U" \,R                  5      Se 5       r\U" \,R                  5      Sf 5       r\U" \,R                  SS9Sg 5       rSK\:S\:4Sh jr\TSSSSSS4S\4Si jjrS0\:\4-  Sj\:\4-  S\GR                  4Sk jr\R" \LGRF                  5      \C" 5       \A" Sl\,R                  S/9SSm.S0\:\4-  Sj\:\4-  Sn\4S-  4So jj5       5       5       r\" \,R                  SSSp9Sq 5       r\" \,R                  Sr9S0\:Sj\:S\:4Ss j5       r\" \,R                  Sr9S0\:Sj\:S\:4St j5       r\" \,R                  Sr9S0\:Sj\:S\:4Su j5       r\" \,R                  Sr9S0\:Sj\:S\:4Sv j5       r\" \,R                  Sr9S0\:Sj\:S\:4Sw j5       r\" \,R                  SSx9S0\:\4-  Sj\:\4-  4Sy j5       r\R" \LGRV                  5      \C" 5       SSz.S0\:\4-  Sj\:\4-  S{\S-  4S| jj5       5       r\" \,R                  SSx9S0\:Sj\:S\:4S} j5       r\" \,GR6                  Sr9S0\:\4-  Sj\:\4-  S\:4S~ j5       r\C" 5       S0\:\4-  Sj\:\4-  S\G4S j5       r\" \RX                  R                  SSS9S0\:\4-  Sj\:\4-  4S j5       rS0\GSj\GS\G4S jrS0\GSj\GS\G4S jr\" \,R                  SSSp9S0\:Sj\:S\:4S j5       r\" \,R                  SSSp9S0\:Sj\:S\:4S j5       r\" \,R                  SSSp9S0\:Sj\:S\:4S j5       r\R" \LGRl                  5      \C" SS5      SK\:S\\:\:4   4S j5       5       r\" \,R                  SSSp9S0\:Sj\:S\:4S j5       r\" \,R                  SSx9S0\:Sj\:S\:4S j5       r\" \,R                  SSx9S0\:Sj\:S\:4S j5       r\" \,R                  SSSp9S"\:S\:S\:4S j5       r\" \,R                  SSSp9S0\:Sj\:S\:4S j5       r\" \,R                  SSSp9S0\:Sj\:S\:4S j5       r\" \,R                  SSSp9S0\:Sj\:S\:4S j5       rS\S0\:Sj\:S\S\SS4S jr   GSS0\:Sj\:S\S\S\S\:4S jjr\" \,R                  SSSp9S0\:Sj\:4S j5       r\" \,R                  SSx9S0\:Sj\:S\:4S j5       r\" \,R                  SSSp9S0\:Sj\:S\:4S j5       r\" \,R                  SSSp9S0\:Sj\:S\:4S j5       r\" \,R                  Sr9S0\:Sj\:4S j5       r\U" \,R                  5      S0\:4S j5       r\" \,R                  Sr9S0\:Sj\:4S j5       r\" \,R                  Sr9S0\:Sj\:4S j5       r\" \,R                  SSx9S0\:Sj\:S\:4S j5       r\" \,R                  Sr9S0\:Sj\:S\:4S j5       r\" \,R                  Sr9S0\:Sj\:S\:4S j5       r\" \,R                  SS9S0\:Sj\:S\:4S j5       r\" \,R                  SSx9S0\:Sj\:S\:4S j5       r\" \,R                  SSSp9S0\:Sj\:S\:4S j5       r\" \,R                  Sr9S0\:Sj\:S\:4S j5       r\R" \LGR                  5      \C" 5        GSS0\:\4-  Sj\:\4-  Sn\44S jj5       5       r\R" \LGR                  5      \C" 5       \A" Sl\,R                  S/9SSm.S0\:\4-  Sj\:\4-  Sn\44S jj5       5       5       r\" \,R                  SSSS9S0\:Sj\:S\:4S j5       r\R" \LGR                  5      \C" 5       \A" Sl\,R                  S/9S0\:\4-  Sj\:\4-  4S j5       5       5       r\" \RX                  R                  SSS9S0\:\4-  Sj\:\4-  4S j5       r\R" \LGR                  5      \C" 5       \A" S\,R                  S/9SS.SK\:S\:S\:S1\4S\:4
S jj5       5       5       r\R" \LGR                  5      \C" 5       \A" S\,R                  S/9SS.SK\:S\:S\:S1\4S\:4
S jj5       5       5       r\R" \LGR                  5      \C" 5       \A" S\,R                  S/9  GSS0\:S\;S-  S\;S-  S\:4S jj5       5       5       r\R" \LGR                  5      \C" 5        GSSK\:S\;S-  S\:4S jj5       5       r\R" \LGR                  5      \C" 5        GSSK\:S\;S-  S\:4S jj5       5       r\R" \LGR                  GR                  5      S\GS\\GS4   4S j5       r\R" \LGR                  GR                  5      \R" \LGR                  GR                  5      \R" \LGR                  GR                  5      \R" \LGR                  GR                  5      \R" \LGR                  GR                  5      \C" SS9\A" Sl\,R                  S/9  GSS\GS0\;S-  Sj\;S-  4S jj5       5       5       5       5       5       5       r\R" \LGR                  5      \C" 5       \GR                  S.S0\:S\GR                  S\:4S jj5       5       rSS.S0\GSj\G4S jjr\R" \LGR                  5      S0\:S\44S j5       r       GSS0\:S\'S-  SH\GR                  S-  S\S-  S\GR                  S-  S\GR                  S-  S\S-  S\S\4S jjr\S 5       r\GR                     GSS\GR                  SH\GR                  S\S\S\GR                  S-  S\\\4   4S jj5       r\GR                     GSS\SH\GR                  S\S\S\GR                  S-  S\\\4   4S jj5       r\GR                     GSSH\GR                  S\S\S\GR                  S-  S\\\4   4
S jj5       r\GR                     GSS\GS\S\S\GR                  S-  S\\\4   4
S jj5       rS0\GS\4S jrS0\:S\:4S jrSSSSSSS.S0\:S\S\S\S\*S-  S\SH\GR                  S-  S\GS-  S\6S\:4S jjrGSS jr\R" \LGR                  5      \C" 5         GSS0\:SG\*S-  SL\S\:4S jj5       5       r\R" \LGR                  5      \C" 5         GSS0\:SG\*S-  SL\S\:4S jj5       5       r\R" \LGR                  GR                  \LGR                  GR                  /5        GSSSS.S0\:SG\S-  \\   -  SL\SH\GR                  S-  S\GS-  S\:4S jjj5       rS0\GS\G4S jr\R" \LGR                  5        GSSSS.S0\:SG\S-  \\   -  SL\S\GS-  S\:4
S jjj5       r\R" \LGR                  5        GSSS.S0\:SG\*S-  SL\S\GS-  S\:4
S jjj5       r\R" \LGR                  5        GSSS.S0\:SG\*S-  SL\S\GS-  S\:4
S jjj5       rGSS jGr \R" \LGR                  5      \C" 5          GSSS.S0\:SG\*S-  S\S-  SL\S\4S-  S\:4S jjj5       5       Gr\R" \LGR                  5      \C" 5          GSSS.S0\:SG\S-  \\   -  S\S-  SL\S\4S-  S\:4S jjj5       5       Gr\R" \LGR                  5        GSSSS.S0\:SG\*S-  SL\S\:4S jjj5       Gr\R" \LGR                  5      \C" SS5       GSSSSS.S0\:SG\*S-  S\S-  SL\S\4S-  4
S jjj5       5       Gr\R" \LGR
                  5      \C" SS5         GSSS.S0\:SG\*S-  S\S-  SL\S\4S-  4
S jjj5       5       Gr\R" \LGR                  5      \C" 5       \A" S\,R                  S/9SSS.SK\:S\:S\:S\4Sn\4S\:4S jj5       5       5       GrS\:\
\:   -  S\:S\:\\:S4   -  4S jGrS\SG\S\:S\:4S jGrS\:\
\:   -  S\:S\:\\:S4   -  4GS  jGr	S\:\
\:   -  S\:S\:\\:S4   -  4GS jGr
 GSS0\:GS\7GS\8GS\S-  S\:4
GS jjGr\R" \LGR                  5      \C" 5        GSS"\:GS\:GS\7GS\8GS\S-  S\:4GS jj5       5       GrS\74GS jGr\LGR                  GR                  GR                  \IGR                   5      \LGR                  GR                  GR                  \IGR"                  5      S\\:   4GS	 j5       5       GrS0\:GS\7S\:4GS
 jGr\R" \LGR&                  5      \C" 5       \A" GS\,R                  S/9GSGS\<SG\S\:4GS jj5       5       5       Gr\C" 5       GS\<S\:4GS j5       GrS"\:S\:4GS jGr\R" \LGR,                  5      \C" 5        GSS"\:GS\\   S1\4S\:4GS jj5       5       Gr\GR.                  S.S0\GS\GR                  S\G4GS jjGr\C" 5       GS\<S\:4GS j5       Gr\R" \LGR4                  5      SGS.S0\GGS\S\G4GS jj5       GrS0\GSj\GS\G4GS jGrGSS0\:GS\SG\S\\:S4   4GS jjGrGSS0\:GS\GS\S\:4GS jjGr\R" \LGR<                  5      \C" 5       S0\:S\)S\:4GS j5       5       GrS0\:S\:4GS jGrS0\:S\:4GS jGr S0\:SG\GS \\:-  GS!\S\:4
GS" jGr!S0\GGS#\*GS$\S\\G\G\G4   4GS% jGr"S6\:GS&\\   S\:4GS' jGr#\R" \LGRH                  GR                  5      S"\GGS(\GS-  GS)\GS-  GS*\GS+\GS,\GS-\GS$\S\\G\G\G4   4GS. j5       Gr$\R" \LGRJ                  5      \C" SSGS/5      S"\GGS0\7GS(\GS-  GS)\GS-  GS$\S\\G\G\G4   4GS1 j5       5       Gr%\GRL                  GRN                  GRQ                  \LGRJ                  GR                  5      GS2 5       Gr)\R" \LGRT                  5      S0\:S\:4GS3 j5       Gr*\R" \LGRV                  5      \C" 5       S"\:GS4\5SG\GS5\5S\:4
GS6 j5       5       Gr+\LGRX                  GRZ                  GR                  \IGR                   5               GSS"\GGS7\GS8\S-  GS9\S-  GS:\GS-  GS;\GS<\GS=\GS>\S-  GS?\S-  GS@\S-  S\G4GSA jj5       Gr,\LGR\                  GR                  GR                  \IGR                   5              GSS"\GGS7\GS8\S-  GS9\S-  GS:\GS-  GS;\GS=\GS>\S-  GS!\S-  S\G4GSB jj5       Gr.GSC\7GSD\8GSE\GS\GSF\4
GSG jGr/\R" \LGR`                  5      \C" 5       S0\GS\G4GSH j5       5       Gr0S0\:GSI\S\:4GSJ jGr1S0\:GSI\S\:4GSK jGr2S0\:GSL\7S\:4GSM jGr3SK\:S\:S\:4GSN jGr4\R" \LGRj                  5      \C" 5       GSS0\:GSO\*S\*S\:4GSP jj5       5       Gr5\R" \LGRl                  5      \C" 5        GS S0\:GSR\S\)S\:4GSS jj5       5       Gr6GS\<SS4GST jGr7\R" \LGRp                  5      \C" 5       GSGS\<SG\S\:4GSU jj5       5       Gr8\C" 5        GSS0\:SG\SH\GR                  S-  S\:4GSV jj5       Gr9\C" 5       GS\<S\:4GSW j5       Gr:\C" 5       GS\<S\:4GSX j5       Gr;S0\:SG\GSY\7S\:4GSZ jGr<\R" \LGRz                  5      GSGS[\:SG\S\<4GS\ jj5       Gr=\C" 5       S6\9SG\GS]\9GS^\94GS_ j5       Gr>S6\9SG\GS]\9GS^\94GS` jGr?\R" \LGR                  5      \C" 5       S6\9SG\GS]\9S1\4\9-  4GSa j5       5       Gr@\R" \LGR                  5      S6\9SG\GS]\9S1\4\9-  4GSb j5       GrAS6\9SG\GS]\9S1\4\9-  GSc\4
GSd jGrB\C" 5       SSm.S6\9SG\GS]\9GS^\9Sn\44
GSe jj5       GrC\R" \LGR                  5      \C" 5       S6\9SG\GS]\94GSf j5       5       GrD\R" \LGR                  GR                  5      GSS0\:SG\*S-  S\:4GSg jj5       GrE\R" \LGR                  5       GSSK\GGSh\\   SG\S\\G   4GSi jj5       GrG GSS0\:GSj\G\*-  SG\S\\:S4   4GSk jjGrHS0\:GSj\*S\\:S4   4GSl jGrIS0\:GSj\*S\\:S4   4GSm jGrJ\R" \LGR                  GR                  5      \C" 5        GSSK\:GSn\S\:4GSo jj5       5       GrK\R" \LGR                  5      \C" 5          GSS"\:GS\:GSn\GSp\GSq\S\:4GSr jj5       5       GrM\R" \LGR                  5         GSSK\:GSn\GSp\GSq\S\:4
GSs jj5       GrN\R" \LGR                  5      \C" 5          GSGS[\:GSn\GSp\GSq\S\:4
GSt jj5       5       GrO\R" \LGR                  5      \C" 5       GS\\:   S\:4GSu j5       5       GrQGS\\:   S\:4GSv jGrPS0\:GSw\*S\<4GSx jGrR\R" \LGR                  GR                  5      S0\:4GSy j5       GrSS0\:S\:4GSz jGrT\R" \LGR                  5      S0\:S\:4GS{ j5       GrU\R" \LGR                  5      S0\:GS|\GSp\S\:4GS} j5       GrVG\VGrW\R" \LGR                  5      SK\:GSE\GS\GSF\S\:4
GS~ j5       GrX\R" \LGR                  5      \C" 5       SK\:GSE\GS\GSF\4GS j5       5       GrYSSS.S0\:SG\SH\GR                  S-  S\GS-  S\:4
GS jjGrZ\R" \LGR                  5      SSS.S0\:SG\SH\GR                  S-  S\GS-  S\:4
GS jj5       Gr[\R" \LGR                  5      SSS.S0\:SG\SH\GR                  S-  S\GS-  S\:4
GS jj5       Gr\\R" \LGR                  5      S0\:SG\S\:4GS j5       Gr]\R" \LGR                  GR                  5      S0\:GSL\7\\7   -  S\:4GS j5       Gr^SK\:S\:S\:4GS jGr_S0\:S\:4GS jGr`\C" 5        GSS0\R                  GS\R                  SG\S-  S\R                  4GS jj5       Gra\C" 5       S\GR                  SSS\GR.                  GS.SH\GR                  S-  S\GR                  S\'S-  GS\S\S\GR                  S\:4GS jj5       Grc\C" 5       S\GR                  SSS4SH\GR                  S-  S\GR                  S\'S-  GS\S\S\:4GS jj5       Grd\R" \LGR                  5      \C" 5       SSSSGS.S0\:GS\7SH\GR                  S-  S\GR                  S-  S\'S-  S\S\:4GS jj5       5       Gre\R" \LGR                  5      \C" 5       SSSSGS.S0\:GS\7GS\8SH\GR                  S-  S\GR                  S-  S\'S-  S\S\:4GS jj5       5       Grf\R" \LGR                  GR                  5      \C" 5       S\GR                  SSSGS.SH\GR                  S-  S\GR                  S\'S-  S\GS\S\:4GS jj5       5       Grg\R" \LGR                  5      \C" 5       SSSSSGS.S0\:GS\7SH\GR                  S-  S\GR                  S-  S\'S-  S\GS\S\:4GS jj5       5       Grh\R" \LGR                  GR                  5      \C" 5       S\GR                  SSSGS.SH\GR                  S-  S\GR                  S\'S-  S\GS\S\:4GS jj5       5       Gri\R" \LGR                  5      \C" 5       SSSSSGS.S0\:GS\7SH\GR                  S-  S\GR                  S-  S\'S-  S\GS\S\:4GS jj5       5       Grj\R" \LGR                  5      \C" 5       SSSSGS.S0\:GS\7GS\4SH\GR                  S-  S\GR                  S-  S\'S-  S\S\:4GS jj5       5       Grk\LGR                  GR                  GR                  \IGR                   5       GSGS\:S\:S\GR                  S-  S\:4GS jj5       Grl\R" \LGR                  5      \C" 5       SSSSS\GR                  GS.S0\:SH\GR                  S-  S\'S-  S\GR                  S-  S\GS\S\GR                  S\:4GS jj5       5       Grm\R" \LGR                  GR                  \LGR                  GR                  /5      \C" 5          GSS\GR                  SSSGS.GS \4GS\4S-  GSF\4SH\GR                  S-  S\GR                  S\'S-  S\GS\S\:4GS jjj5       5       Grn\R" \LGR                  5      \C" 5       \A" GS\,R                  S/9GS \GGS\GGS(\G\4-  4GS j5       5       5       Grq\R" \LGR                  5      \C" 5       SS\GR                  SSGS.GS \4\:-  GS\4\:-  GS\4SH\GR                  S-  S\'S-  S\GR                  S\GS\S\:4GS jj5       5       Grr\R" \LGR                  5      \C" 5        GSSS\GR                  SSGS.GS \4\:-  GS\4\:-  GS\4GS\4SH\GR                  S-  S\'S-  S\GR                  S\GS\S\:4GS jjj5       5       Grs\GS\
\:   GS\4GS j5       Grt\GS\:GS\4GS j5       Grt\R" \LGR                  5      GS\:\\:   -  \\:   -  GS\S\\:   4GS j5       GrtS"\:GS\\)-  GS\\)-  S\:4GS jGru\R" \LGR                  5      \C" 5       SS\GR                  SSGS.GSL\7\\7   -  GS\8SH\GR                  S-  S\'S-  S\GR                  GS\S\S\:4GS jj5       5       GrvGS\S\GR                  4GS jGrw\R" \LGR                  5      \C" 5        GSS\GR                  SSSGS.GS\GS\S-  SH\GR                  S-  S\GR                  S\'S-  S\GS\S\:4GS jjj5       5       Grx\R" \LGR                  GR                  \LGR                  GR                  /5      \C" 5       S\GR                  SSSGS.GSL\7GS\4SH\GR                  S-  S\GR                  S\'S-  S\GS\S\:4GS jj5       5       GrySSSSS\GR                  GS.S0\:GS\4SH\GR                  S-  S\GR                  S-  S\'S-  S\GS\S\GR                  S\:4GS jjGrz\R" \LGR                  5      \C" 5       SSSSS\GR                  GS.S0\:SH\GR                  S-  S\GR                  S-  S\'S-  S\GS\S\GR                  S\:4GS jj5       5       Gr{\R" \LGR                  5      \C" 5       SSSSS\GR                  GS.S0\:SH\GR                  S-  S\GR                  S-  S\'S-  S\GS\S\GR                  S\:4GS jj5       5       Gr|\R" \LGR                  GR                  5      \C" 5       SSSSSGS.SH\GR                  S-  S\'S-  S\GR                  S-  GS\S\S\:4GS jj5       5       Gr}S\GR                  SSGS.S0\4SH\GR                  S-  S\GR                  S\'S-  S\S\:4GS jjGr~  GSGSL\7GS\\-  \-  GS\\-  \-  GS\7SH\GR                  S\'S\:4GS jjGr\R" \LGR                   5      \C" 5       S0\:GS\:S1\;4GS j5       5       Gr\R" \LGR                  5      S0\:GS\:S1\;S\:4GS j5       Gr   GSS0\:Sj\:S\S\S\S\4GS jjGrS0\:Sj\:S\4GS jGr\R" \LGR                  5      \C" SS9   GSSGS.S"\:GS4\\-  S-  SG\*S-  SL\SH\GR                  S-  S\:4GS jjj5       5       Gr\R" \LGR
                  5      \C" 5       SK\:S\:4GS j5       5       GrGS GrG\" \5      GrG\" \5      GrG\" \5      Gr\R" \LGR                  5      \C" 5       GSS0\:GS\S\:4GS jj5       5       Gr\R" \LGR                  5      \C" 5       GSS0\:GS\S\:4GS jj5       5       GrGS\GS\GSn\S\\\\4   4GS jGrS\GS\GS\SH\GR                  S\GR                  S\4GS jGr\R" \LGR                  5      \C" 5        GS\GR                  \GR                  GSSGS.GS\GS\GSn\SH\GR                  S\GR                  S\'S\S\:4GS jjj5       5       GrGS\GS\GSn\S\\\\4   4GS jGr\R" \LGR"                  5      \C" 5        GS\GR                  \GR                  GSSGS.GS\GS\GSn\SH\GR                  S\GR                  S\'S\S\:4GS jjj5       5       Gr\R" \LGR$                  5      \C" SS9SSGS.S0\;GS\:GS\GS\4GS jj5       5       Gr\R" \LGR&                  5      \C" 5       \A" SJ\,R                  S/9GSGS j5       5       5       Gr\R" \LGR(                  5      \C" 5       \A" SJ\,R                  S/9GSGS j5       5       5       Gr\R" \LGR*                  5      \C" 5       \A" SJ\,R                  S/9GSGS j5       5       5       Gr\R" \LGR,                  5      \C" 5       \A" SJ\,R                  S/9GS	GS j5       5       5       Gr\R" \LGR.                  5      \C" 5       \A" GS\,R                  S/9   GSSSSSSGS.GS jj5       5       5       Gr\R" \LGR0                  5      GSQSGS.GS jj5       Gr\U" \,R                  5      SK\:4GS j5       Gr\U" \,R                  5      SK\:4GS j5       Gr\R" \LGR6                  5      \C" 5       GSSG\*S-  4GS jj5       5       GrGS GrGS Gr\R" \LGR<                  5      \C" SS9G\\A" GS\,R                  S/9GS 5       5       5       5       Gr\R" \LGR>                  5      \C" SS9G\\A" GS\,R                  S/9GS 5       5       5       5       Gr\R" \LGR@                  5      \C" 5       S6\:GS\:SG\GS]\4GS j5       5       Gr\W" \Y5      Gr\W" \[5      Gr\W" \\5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \]5      Gr\W" \^5      Gr\W" \_5      Gr\W" \`5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \b5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \c5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \e5      Gr\W" \5      Gr\W" \f5      Gr\W" \g5      Gr\W" G\[5      Gr\W" G\\5      Gr\W" G\5      Gr\W" \h5      Gr\W" \5      Gr\W" \5      Gr\W" \i5      Gr\W" \k5      Gr\W" \j5      Gr\W" \l5      Gr\W" \n5      Gr\W" \m5      Gr\W" \5      Gr\W" \s5      Gr\W" \5      Gr\W" \5      Gr\W" \t5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" G\q5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \~5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" G\5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" G\5      Gr\W" G\5      Gr\W" \5      Gr\W" \5      Gr\W" \5      Gr\W" G\5      Gr\W" G\5      Gr\W" G\5      Gr\W" G\5      Gr\W" \r5      Gr\" \LGR                  5      Gr \" \LGR                  5      Gr\" \LGR                  5      Gr\" \LGR4                  5      Gr\" \LGRB                  5      Gr\" \LGR                  5      Gr\" \LGRT                  5      Gr\" \LGR                  5      Gr\" \LGR                  5      Gr\" \LGRz                  SGS9Gr	\" \LGR                  5      Gr
\" \LGR                  5      GrGS GrGS GrGS GrGS\GR                  GS\;\<-  4GS jGr GSGS jGrSSSSGS.GS jGrS SGKrS SGKrS SGKrS SGKrS SGKrg(
      N)CallableIterableSequence)Enum)partialreducesingledispatchwraps)AnycastOptionaloverloadUnion)	sym_floatsym_intsym_maxsym_min)BoolLikeDeviceLikeTypeDimDimsSequenceTypeDimsTypedtype_to_typeELEMENTWISE_TYPE_PROMOTION_KIND	FloatLikeFloatWithoutSymFloatIntLike(is_contiguous_for_memory_format_or_falseis_contiguous_or_falseis_weakly_lesser_typeNumber
NumberTypeRealNumberTypeREDUCTION_OUTPUT_TYPE_KIND	ShapeType
StrideType
TensorLikeTensorLikeTypeTensorOrNumberLikeTypeTensorSequenceType)_maybe_convert_to_dtype_maybe_resize_out_safe_copy_out"elementwise_type_promotion_wrapper elementwise_unary_scalar_wrapperout_wrapper)highest_precision_float(  absacosacoshasinhasinatanatanhbitwise_notceilconj_physicalcoscoshcount_nonzerodeg2raddigammaerferfinverfcexpexpm1exponentialexp2fillfill_floorfrac	geometric	index_add
index_copyindex_copy_index_select
index_fillindex_fill_isfiniteisinfisposinfisneginfisnanisreali0lerplgammaloglog1plog2log10
log_normallog_softmaxmvlgammanormnormal
nan_to_numnegpositiverad2deg
reciprocalroundsigmoidsgnsignsignbitsinsincsinhsoftmaxsqrtsquaretantanhtracetruncaddatan2bitwise_andbitwise_left_shift
bitwise_orbitwise_right_shiftbitwise_xor	clamp_min	clamp_maxcopysigndiveqfloat_powerfloor_dividefmaxfminfmodgcdgegt	heavisidehypotigammaigammacimagiscloselcmle	logaddexp
logaddexp2logical_andlogical_not
logical_orlogical_xor	logsumexpltmaximumminimummulne	nextafterpowrealrpow	remainderrsubrtruediv	rfloordivsubtrue_dividetrunc_dividexlogyaddcdivaddcmulclampmasked_fillmasked_fill_whereclonecopy_toitemtoallamaxaminanycumsumcumprodmeandotvdotstdstd_meansumsum_to_sizeprodvarvar_meanaddralias
alias_copy
atleast_1d
atleast_2d
atleast_3d
as_stridedas_strided_copyas_strided_scatter
block_diagbroadcast_shapesbroadcast_tensorsbroadcast_tocatchunkcolumn_stackconjconstant_pad_nd
contiguous
diag_embeddiagdiagonaldiagonal_copydiagonal_scatterdsplitdstackexpand	expand_asexpand_copyflattenflipfliplrflipudhsplithstackmeshgridmovedimnarrownarrow_copynative_group_normnative_layer_normpermutepermute_copyravelrepeatreshape
reshape_asrollrot90rsqrtsplit_with_sizesstack	swap_axessqueezesqueeze_copytt_copyTtake_along_dimtensor_split	transposetranspose_copyunbind_copyunfoldunfold_copy	unsqueezeunsqueeze_copyviewview_as	view_copyvsplitvstackview_as_complex	unflattenunbindtriutriltriu_indicestril_indicesarangecauchyempty
empty_likeempty_permutedempty_stridedeyefull	full_likelinspacelogspace	new_emptynew_empty_stridednew_fullnew_ones	new_zerosones	ones_likerandnscalar_tensorzerozeros
zeros_likeallcloseequal	bucketize
is_complexrenormstftistftc                 6    U S L =(       d    U R                   S:g  $ )Nhputypedevices    N/home/wildlama/miniconda3/lib/python3.13/site-packages/torch/_refs/__init__.pyis_noncontiguous_supportedr;  q  s    T>1V[[E11    c                     S nSSK Jn  U  H!  n[        XC5      (       d  M  UR                  n  O   [	        U5      (       d  UR                  5       nU$ )Nr   )
FakeTensor)torch._subclasses.fake_tensorr>  
isinstancefake_devicer;  r   )input_tlistoutputr9  r>  r   s        r:  handle_noncontiguous_outputsrD  u  sK    F8a$$]]F 
 &f--""$Mr<  c            	        ^	^
^^ SSK JnJnJnJn  [
        R                  R                  R                  R                  n[        S [        S U 5       5       5      n[        U5      S:X  a  g U H&  m[        T[        5      (       a  M  [        ST 35      e   S/[!        ["        S U 5       5      -  m
[%        U5       GH  u  m	m['        SS[        T5      -
  S5       GH^  mU" TT   5      (       a)  U" T
T   5      (       a  U" TT   T
T   :H  5      (       a  M<  OU(       a  U" TT   5      (       av  U" T
T   5      (       af  U" TT   5      nU" T
T   5      nUS:X  a"  US:w  a  [
        R(                  " TT   S:H  5        US:X  a"  US:w  a  [
        R(                  " T
T   S:H  5        U" TT   T
T   :H  5      (       a  M  U" T
T   S:H  5      (       a  TT   S:  a  [+        S	5      eTT   T
T'   U" TT   5      (       d  U" TT   S:H  5      (       a  GM7  [
        R(                  " T
T   TT   :H  U	U
UU4S
 j5        GMa     GM     T
$ )Nr   )guard_or_falseguarding_hint_or_throwhas_guarding_hintis_nested_intc              3   V   #    U  H  n[        U[        5      (       a  U4OUv   M!     g 7fNr@  r   .0xs     r:  	<genexpr>$_broadcast_shapes.<locals>.<genexpr>  s*      9A 1g&&A-9s   ')c                 
    U S L$ rK   rO  s    r:  <lambda>#_broadcast_shapes.<locals>.<lambda>  s    !4-r<  zMInput shapes should be of type ints, a tuple of ints, or a list of ints, got    c              3   8   #    U  H  n[        U5      v   M     g 7frK  len)rN  shapes     r:  rP  rQ    s     4VESZZV   z9Attempting to broadcast a dimension with negative length!c            
      ,   > STT    ST ST  ST ST 3
$ )Nz.Attempting to broadcast a dimension of length z at z ! Mismatching argument at index z had z0; but expected shape should be broadcastable to rS  )arg_idxcommon_shapeidxr[  s   r:  rU  rV    s:    LUSVZLX\]`\a b55<IU5' J22>Ar<  )%torch.fx.experimental.symbolic_shapesrF  rG  rH  rI  torchfxexperimental_configbacked_size_oblivioustuplefilterrZ  r@  r   RuntimeErrorr   max	enumeraterange_check
ValueError)_shapesrF  rG  rH  rI  	backed_soshapesabr_  r`  ra  r[  s            @@@@r:  _broadcast_shapesru    sS     %%--CCI /9 F 6{a%**_`e_fg   	
.s4V45.6L $F+R#e*_b1CU3Z(( !c!233#J,s"339 9  )%*55),s*;<<.uSz:A.|C/@AAAv!q&U3Z1_5Av!q&\#%6!%;<!%*S0A"ABBl3/1455:>$S  %*#JS! s,,c
a1P1P  %s3A[ 2 ,j r<  T)preserve_cpu_scalar_tensorsc                    ^ ^^^ [        S U 5       6 mS[        S[        S[        4S jmUU U4S jm[        UU4S jU 5       5      $ )Nc              3   h   #    U  H(  n[        U[        5      (       a  UR                  OS v   M*     g 7frK  )r@  r'   r[  rN  r   s     r:  rP  #_maybe_broadcast.<locals>.<genexpr>  s%     	G$QZ:..!''D
8$s   02rs  rt  returnc                 6   SSK JnJnJn  [	        U 5      [	        U5      :w  a  g[        X5       Hg  u  pVU" XV:g  5      (       a    gU" U" US:H  US:H  5      5      (       a  OU" U" US:H  US:H  5      5      (       a    g[        R                  " XV:H  S 5        Mi     g)Nr   )rF  sym_andsym_orTrW  c                      g)NzCsizes assumed to be the same due to unbacked broadcasting semanticsrS  rS  r<  r:  rU  9_maybe_broadcast.<locals>.should_expand.<locals>.<lambda>  s    ]r<  F)rb  rF  r}  r~  rZ  ziprc  rn  )rs  rt  rF  r}  r~  rO  ys          r:  should_expand'_maybe_broadcast.<locals>.should_expand  s    	
 	
 q6SVIDAaf%%
 ga1fa1f566qAvqAv 677 LL] ( r<  c                 H  > U c  g [        U [        5      (       a  U $ [        U [        5      (       aO  T(       a  [        R                  " U 5      (       a  U $ T" U R
                  T5      (       a  U R                  T5      $ U $ [        S[        [        U 5      5      -   S-   5      e)Nz#Unexpected type when broadcasting: !)
r@  r!   r'   utilsis_cpu_scalar_tensorr[  r   rj  strr7  )rO  r[  r`  rv  r  s     r:  __maybe_broadcast+_maybe_broadcast.<locals>.__maybe_broadcast  s    96""H:&&*u/I/I!/L/LQWWl33xx--H5DGDsJ r<  c              3   6   >#    U  H  nT" UT5      v   M     g 7frK  rS  )rN  rO  r  r`  s     r:  rP  rz    s     BT"1l33Ts   )ru  r%   boolrh  )rv  argsr  r`  r  s   ` @@@r:  _maybe_broadcastr    sH    $	G$	GL y T @$ BTBBBr<  )register_decompositionF)aten_op
extra_metaexact_dtyper{  c                0   ^ ^^^ S[         4UUUU 4S jjnU$ )Nprimc                   >^  [        T 5      [        TS9[        [        STS9S[        S[        4UU 4S jj5       5       5       5       nT[
        L a!  [        R                  " T T R                  5      mTb  [        T5      " U5        U$ )Nr  rs  type_promoting_argstype_promotion_kindrs  r{  c                 D   > Tb  T" U 5        T" U 5      n[        U /U5      $ rK  )rD  )rs  rC  r  r  s     r:  _ref>_make_elementwise_unary_reference.<locals>.inner.<locals>._ref*  s*     %1!WF/V<<r<  )
r
   r0   r/   r.   r(   infer_aten_opr  get_aten_op__name__r  )r  r  r  r  r  r  s   ` r:  inner0_make_elementwise_unary_reference.<locals>.inner'  s     
t		-	)	+ & 3

	=N 	=~ 	=	

 
* 
. 
	= m#''dmm<G"7+D1r<  r   )r  r  r  r  r  s   ```` r:  !_make_elementwise_unary_referencer     s    H  0 Lr<  c                    ^  U 4S jnXl         [        R                  " 5       R                  R                  S   Ul        U$ )a  
This function defines an alias of another function and sets its __name__ argument.
It also sets its __module__ argument to the module of the caller.
Note that when naively doing `alias = fn`, we have that `alias.__name__ == "fn"`, and
`alias.__module__ == fn.__module__`.
c                     > T" U 0 UD6$ rK  rS  )r  kwargsfns     r:  _fn_make_alias.<locals>._fnJ  s    4"6""r<  r  )r  inspectcurrentframef_back	f_globals
__module__)r  namer  s   `  r:  _make_aliasr  B  s5    # L))+22<<ZHCNJr<  c                    ^  [        T 5      U 4S j5       nT R                   S3nX!l        [        [        [        U5      5      " U5      nSSKJn  U" T 5      R                  nX$;  a  UR                  U5        U$ )z
Given a function with out variant (i.e. using `out_wrapper()), it returns its in-place variant
See https://github.com/pytorch/pytorch/wiki/Developer-FAQ#how-do-in-place-operations-work-in-pytorch
c                     > T" U /UQ7SU 0UD6$ )NoutrS  )rs  r  r  r  s      r:  r  _make_inplace.<locals>._fnY  s    !,d,,V,,r<  _r   )	getmodule)	r
   r  r  getattratenr  r  __all__append)r  r  inplace_namer  _alls   `    r:  _make_inplacer  R  ss     2Y- - kk]!$LL
 |!<
=c
BC "R=  DL!Jr<  r  c                 .    [         R                  " U 5      $ rK  )primsr2   r  s    r:  r2   r2   k  s    
 99Q<r<  c                 .    [         R                  " U 5      $ rK  )r  r3   r  s    r:  r3   r3   s      ::a=r<  c                 .    [         R                  " U 5      $ rK  )r  r4   r  s    r:  r4   r4   x      ;;q>r<  c                 .    [         R                  " U 5      $ rK  )r  r6   r  s    r:  r6   r6   }  r  r<  c                 .    [         R                  " U 5      $ rK  )r  r5   r  s    r:  r5   r5     r  r<  c                 .    [         R                  " U 5      $ rK  )r  r7   r  s    r:  r7   r7     r  r<  c                 .    [         R                  " U 5      $ rK  )r  r8   r  s    r:  r8   r8     r  r<  c                 .    [         R                  " U 5      $ rK  )r  r9   r  s    r:  r9   r9     s    Qr<  c                 .    [         R                  " U 5      $ rK  )r  r:   r  s    r:  r:   r:         
 ::a=r<  inputc                 B    [         R                  " U R                  5      $ rK  )r  is_complex_dtypedtyper  s    r:  r0  r0    s    !!%++..r<  c                 |    [         R                  " U R                  5      (       d  U $ [        R                  " U 5      $ rK  )r  r  r  r  r;   r  s    r:  r;   r;     s/     !!%++..u%%r<  c                 .    [         R                  " U 5      $ rK  )r  r<   r  s    r:  r<   r<         99Q<r<  c                 .    [         R                  " U 5      $ rK  )r  r=   r  s    r:  r=   r=     r  r<  c                 .    [         R                  " U 5      $ rK  )r  r@   r  s    r:  r@   r@         ==r<  c                 .    [         R                  " U 5      $ rK  )r  rA   r  s    r:  rA   rA     r  r<  c                 .    [         R                  " U 5      $ rK  )r  erf_invr  s    r:  rB   rB     r  r<  c                 .    [         R                  " U 5      $ rK  )r  rC   r  s    r:  rC   rC     r  r<  c                 .    [         R                  " U 5      $ rK  )r  rD   r  s    r:  rD   rD     r  r<  c                 .    [         R                  " U 5      $ rK  )r  rE   r  s    r:  rE   rE     r  r<  c                 .    [         R                  " U 5      $ rK  )r  rG   r  s    r:  rG   rG     r  r<  r  r  rs  valuec                    [        U [        5      (       d  [        S[        U 5       35      e[        U[        5      (       d  [        S[        U5       35      e[
        R                  " U R                  5      n[
        R                  " [        U5      U5      (       d  S[        U5       SU S3n[        U5      e[        R                  " X5      $ )Na must be TensorLike, got zvalue must be Number, got value argument of type  cannot be safely cast to type r  )r@  r'   AssertionErrorr7  r!   r  r   r  r    ro  r  rH   )rs  r  python_typemsgs       r:  rH   rH     s     a$$9$q'CDDeV$$9$u+GHH%%agg.K&&tE{K@@'U}4ST_S``abo::ar<  c                 ^    [         R                  " X5      n[         R                  " X5        U $ rK  )r  rH   r   )rs  r  rs      r:  rI   rI     s!    

1A	MM!Hr<  c                 .    [         R                  " U 5      $ rK  )rc  r,  r  s    r:  r*  r*    s     E""r<  c                 .    [         R                  " U 5      $ rK  )r  rJ   r  s    r:  rJ   rJ         
 ;;q>r<  rO  c                     [         R                  " [         R                  " [         R                  " U 5      5      [         R                  " U 5      5      n[         R
                  " X5      $ rK  )rc  r   rJ   r2   rm   r   )rO  trunc_xs     r:  rK   rK     s<    
 iiEIIaL15::a=AG99Q  r<  c                     [        U [        5      (       d  [        S[        U 5       35      e[        R
                  " [        R                  " U R                  5      S 5        [        R                  " U 5      $ )Nr  c                      g)Nz#imag only supports complex tensors.rS  rS  r<  r:  rU  imag.<locals>.<lambda>  s    1Vr<  )r@  r'   r  r7  rc  rn  r  r  r  r  r   r  s    r:  r   r     sW    a$$9$q'CDD	LLqww')V ::a=r<  )r  c                     [         R                  " U R                  5      (       d%  [         R                  " U R                  5      (       a  [        R
                  " U 5      $ [        U [        R                  S9$ )Nr  )	r  is_float_dtyper  r  r  rS   r'  rc  r  r  s    r:  rS   rS     sM    
 AGG$$(>(>qww(G(G~~a  Qejj))r<  c                    [         R                  " U R                  5      (       aQ  [        R                  " [        [        R                  " U 5      5      [        [        R                  " U 5      5      5      $ [         R                  " U R                  5      (       a"  [        R                  " U 5      [        S5      :H  $ [        R                  " U [        R                  S9$ )Ninfr  )r  r  r  rc  r   rT   r   r   r  r2   floatr,  r  r  s    r:  rT   rT     s    agg&&ejjm 4eEJJqM6JKKAGG$$yy|uU|++AUZZ00r<  c                 ,  ^  [         R                  " [        R                  " T R                  5      (       + U 4S j5        [        R
                  " T R                  5      (       a  T [        S5      :H  $ [         R                  " T [         R                  S9$ )Nc                  "   > ST R                    3$ )Nz7Complex dtype is not supported for isposinf, got dtype r  r  s   r:  rU  isposinf.<locals>.<lambda>/      I!''Sr<  r  r  	rc  rn  r  r  r  r  r  r,  r  r  s   `r:  rU   rU   (  sf    
 
LL""177++S AGG$$E%L  AUZZ00r<  c                 ,  ^  [         R                  " [        R                  " T R                  5      (       + U 4S j5        [        R
                  " T R                  5      (       a  T [        S5      :H  $ [         R                  " T [         R                  S9$ )Nc                  "   > ST R                    3$ )Nz7Complex dtype is not supported for isneginf, got dtype r  r  s   r:  rU  isneginf.<locals>.<lambda>=  r  r<  z-infr  r  r  s   `r:  rV   rV   6  sf    
 
LL""177++S AGG$$E&M!!AUZZ00r<  c                 .    [         R                  " X 5      $ rK  r  r   r  s    r:  rW   rW   D  s    88A>r<  rb   c                     [         R                  " U R                  5      (       a  [        R                  " U 5      S:H  $ [        R
                  " U [        R                  S9$ )Nr   r  )r  r  r  rc  r   r'  r  r  s    r:  rX   rX   M  sA    
 agg&&zz!}!!??1EJJ//r<  c                 .    [         R                  " U 5      $ rK  )r  	bessel_i0r  s    r:  rY   rY   X  s     ??1r<  c                 .    [         R                  " U 5      $ rK  )r  r[   r  s    r:  r[   r[   _  s    <<?r<  c                 .    [         R                  " U 5      $ rK  )r  r\   r  s    r:  r\   r\   d  r  r<  c                 .    [         R                  " U 5      $ rK  )r  r]   r  s    r:  r]   r]   i  r  r<  c                 .    [         R                  " U 5      $ rK  )r  r^   r  s    r:  r^   r^   n  r  r<  c                 .    [         R                  " U 5      $ rK  )r  r_   r  s    r:  r_   r_   s  r  r<  dimr  c           	          U=(       d    U R                   n[        R                  " U5      n[        X5      n[        U[	        XQSS9-
  U5      $ )NTkeepdim)r  r  get_computation_dtyper+   r   )rs  r	  r  result_dtypecomputation_dtypea_s         r:  ra   ra   y  sF     #AGGL33LA	 	6B"2	"4(H#H,WWr<  selfr  r  c                 X   [        U[        5      (       d  U4nU R                  5       S:X  a9  [        R                  " [        R
                  " U 5      X5      R                  5       $ [        R                  " [        R                  " U 5      USS9n[        R                  " X3R                  5       [        S5      :H  S5      nU(       a  UO[        R                  " X15      n[        R                  " [        R
                  " X-
  5      X5      nUR                  5       R                  U5      $ )Nr   Tr  r  )r@  r   numelrc  r   rD   r\   r   r   r   r2   r  r   ry   )r  r	  r  maxesmaxes_squeezedresults         r:  r   r     s     c8$$fzz|qyy4#7;;==JJuzz$'d;EeYY[E%L%@!DE%U5==+DNYYuyy.=F::<N++r<  nanposinfneginfc                    [        U [        5      (       d  [        S[        U 5       35      e[        R
                  " U R                  5      (       d%  [        R                  " U R                  5      (       a  U R                  5       $ Uc  SnUc*  [        R                  " U R                  5      R                  nUc*  [        R                  " U R                  5      R                  n[        R                  " [        R                  " U 5      X5      n[        R                  " [        R                  " U 5      X45      n[        R                  " [        R                   " U 5      X$5      nU$ )Nr          )r@  r'   r  r7  r  is_boolean_dtyper  is_integer_dtyper   rc  finfork  minr   rW   rV   rU   )rs  r  r  r  r  s        r:  re   re     s     a$$9$q'CDDagg&&%*@*@*I*Iwwy
{~QWW%))~QWW%))[[Q0F[[*F;F[[*F;FMr<  c                 h    [         R                  " U R                  [         R                  LS 5        g )Nc                      g)NzNegation, the `-` operator, on a bool tensor is not supported. If you are trying to invert a mask, use the `~` or `logical_not()` operator instead.rS  rS  r<  r:  rU  _neg_meta.<locals>.<lambda>  s     r<  )rc  rn  r  r  r  s    r:  	_neg_metar$    s#    	LL	uzz!	
r<  )r  c                 .    [         R                  " U 5      $ rK  )r  rf   r  s    r:  rf   rf     s     99Q<r<  c                     [        U [        5      (       d  [        S[        U 5       35      eU R                  [
        R                  L a  Sn[        U5      eU $ )Nr  z'positive does not support bool tensors.)r@  r'   r  r7  r  rc  r  rj  )rs  r  s     r:  rg   rg     sK    a$$9$q'CDDww%**73Hr<  c                     [        U [        5      (       d  [        S[        U 5       35      e[        R
                  " U R                  5      (       a  [        R                  " U 5      $ U $ )Nr  )	r@  r'   r  r7  r  r  r  r  r   r  s    r:  r   r     sN    a$$9$q'CDDagg&&zz!}Hr<  c                 .    [         R                  " U 5      $ rK  )r  ri   r  s    r:  ri   ri     s    Ar<  )decimalsr)  c                    US:X  a  [         R                  " U 5      $ SU-  nSU* -  n[         R                  " [         R                  " [         R                  " X5      5      U5      $ )Nr   
   )r  rj   r   )rs  r)  ten_powten_neg_pows       r:  rj   rj     sQ     1}{{1~h,hY'yyUYYq%:;[IIr<  c                 .    [         R                  " U 5      $ rK  )r  r   r  s    r:  r   r     r  r<  c                 R    [        S[        S[        [        U 5      5      5      5      $ NrW  )r   ry   rD   rf   r  s    r:  rk   rk     s    q#aSV-..r<  c                     [         R                  " U R                  5      (       a-  U R                  5       n[        R
                  " US:H  SX-  5      $ U R                  5       $ Nr   )r  r  r  r2   rc  r   rm   )rs  a_abss     r:  rl   rl     sH    
 agg&&{{5A:q!)44vvxr<  c                 .    [         R                  " U 5      $ rK  )r  rm   r  s    r:  rm   rm   	  r  r<  c                 .    [         R                  " U 5      $ rK  )r  rn   r  s    r:  rn   rn     s    
 ==r<  c                 .    [         R                  " U 5      $ rK  )r  ro   r  s    r:  ro   ro     r  r<  c                     [         R                  U -  n [        R                  " U S:H  S[        R                  " U 5      U -  5      $ Nr   rW  )mathpirc  r   ro   r  s    r:  rp   rp      s3    !A;;qAvq%))A,"233r<  c                 .    [         R                  " U 5      $ rK  )r  rq   r  s    r:  rq   rq   &  r  r<  c                 .    [         R                  " U 5      $ rK  )r  rs   r  s    r:  rs   rs   +  r  r<  c                     [        X 5      $ rK  )r   r  s    r:  rt   rt   0  s    
 q9r<  c                 .    [         R                  " U 5      $ rK  )r  ru   r  s    r:  ru   ru   8  r  r<  c                 .    [         R                  " U 5      $ rK  )r  rv   r  s    r:  rv   rv   =  r  r<  c                 .    [         R                  " U 5      $ rK  )r  rx   r  s    r:  rx   rx   B  r  r<  c                   ^ U R                   m[        R                  " [        R                  " T5      U4S j5        U R                  5       n[        R                  " [        U5      S:g  S 5        [        R                  " US   S:H  S 5        U R                  5       n[        R                  " US   S:H  S 5        US S n[        R                  " [        R                  " S	 U 5       5      S
 5        [        R                  " U R                  5       S-  S:H  S 5        [        R                  " U [        R                  " T5      5      R                  S5      $ )Nc                     > ST  3$ )Nz^view_as_complex is only supported for floating pointtensors, but got a tensor of scalar type: rS  )input_dtypes   r:  rU  !view_as_complex.<locals>.<lambda>O  s     55@MCr<  r   c                      g)Nz-Input tensor must have one or more dimensionsrS  rS  r<  r:  rU  rD  U      ?r<  r]     c                      g)Nz+Tensor must have a last dimension of size 2rS  rS  r<  r:  rU  rD  Y      =r<  rW  c                      g)Nz/Tensor must have a last dimension with stride 1rS  rS  r<  r:  rU  rD  _      Ar<  c              3   0   #    U  H  oS -  S:H  v   M     g7f)rG  r   NrS  )rN  strides     r:  rP  "view_as_complex.<locals>.<genexpr>c  s     84aZ1_4s   c                      g)NzCTensor must have a stride divisible by 2 for all but last dimensionrS  rS  r<  r:  rU  rD  d  s    Ur<  c                      g)Nz0Tensor must have a storage_offset divisible by 2rS  rS  r<  r:  rU  rD  h  s    Br<  )r  rc  rn  r  r  sizerZ  rM  builtinsr   storage_offsetr  view_element_typecorresponding_complex_dtyper   )r  sizesold_stridesdimsrC  s       @r:  r  r  K  s   **K	LL[)	C
 IIKE	LLE
a? 
LLb	Q=
 ++-K	LLB1A sD	LL8488U 
LL!Q&B ""e//<gbkr<  c           	      @   ^ ^^^^^^^ S[         4UUUUUUUU 4S jjnU$ )Nr  c                 h  >^  Tc  T R                   m[        T 5      [        ST	S9S[        [        -  S[        [        -  S[        4UU UUU4S jj5       5       nT(       a  [        5       " U5      nTUl         T[        L a  [        R                  " T T5      mTb  T(       a  [        T5      " U5        U$ )Nrs  rt  r  rs  rt  r{  c                   > [         R                  " T=(       d    [        U [        5      (       + U4S j5        [         R                  " T=(       d    [        U[        5      (       + U4S j5        [         R                  " T=(       d,    [        U [        5      =(       a    [        U[        5      (       + U4S j5        [	        X5      u  pT" X5      n[        X/U5      $ )Nc                     > T  S3$ )Nzc: Received a lhs Python scalar to an elementwise binary operation that does not accept lhs scalars!rS  r  s   r:  rU  Q_make_elementwise_binary_reference.<locals>.inner.<locals>._ref.<locals>.<lambda>      4& !> >r<  c                     > T  S3$ )Nzc: Received a rhs Python scalar to an elementwise binary operation that does not accept rhs scalars!rS  r^  s   r:  rU  r_    r`  r<  c                     > T  S3$ )Nz?: Receive two Number inputs to an elementwise binary operation!rS  r^  s   r:  rU  r_    s    4& _`r<  )rc  _check_valuer@  r!   r  rD  )rs  rt  rC  r  r  supports_lhs_python_scalarsupports_rhs_python_scalarsupports_two_python_scalarss      r:  r  ?_make_elementwise_binary_reference.<locals>.inner.<locals>._ref~  s     *G*Q2G.G>
 *G*Q2G.G>
 + I"1f-G*Q2GH`
 $A)DA!ZF/??r<  )
r  r
   r.   Tensorr"   r0   r  r  r  r  )
r  r  r  has_outr  should_register_decompositionrd  re  rf  r  s
   ` r:  r  1_make_elementwise_binary_reference.<locals>.innery  s    <==D	t	+ * 3

	@
"	@
"	@ 	@ 	@	

 

	@. =&Dm#''d3G#@"7+D1r<  r  )	r  r  r  ri  rd  re  rf  rj  r  s	   ```````` r:  "_make_elementwise_binary_referencerl  o  s    *H * *X Lr<  rt  c                     [        U [        5      (       a  U R                  $ [        U[        5      (       a  UR                  $ [        R                  " [        U 5      5      $ rK  )r@  r'   r  r  type_to_dtyper7  r[  s     r:  _binary_op_dtypero    sE     !Z  ww!Z  wwtAw''r<  r[  alpharq  c                   [        X5      u  pUb  [        X5      n[        R                  " U5      nU[        LaB  [        R
                  " [        U5      U5      (       d  S[        U5       SU S3n[        U5      e[        U[        5      (       a  [        R                  " X5      nOX-  n[        R                  " X5      n[        X/U5      $ )z'
Reference implementation of torch.add
alpha argument of type r  r  )r  ro  r  r   r  r    r7  ro  r@  r'   r  r   ry   rD  rs  rt  rq  r  r  r  rC  s          r:  ry   ry     s      A!DA &))%0d"5+F+FK,
 ,
 ,DK=8WXcWddefCS/!a$$		!#A	AYYq_F'77r<  )r  rd  re  c                 .    [         R                  " X5      $ rK  )r  rz   r[  s     r:  rz   rz          ;;qr<  )r  c                 .    [         R                  " X5      $ rK  )r  r{   r[  s     r:  r{   r{          Q""r<  c                 .    [         R                  " X5      $ rK  )r  
shift_leftr[  s     r:  r|   r|          A!!r<  c                 .    [         R                  " X5      $ rK  )r  r}   r[  s     r:  r}   r}     r{  r<  c                 .    [         R                  " X5      $ rK  )r  shift_right_arithmeticr[  s     r:  r~   r~     s     ''--r<  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r     rx  r<  )r  rd  c                    [        U[        5      (       a4  [        U [        5      (       a  [        XR                  U R
                  S9nOl[        U [        5      (       aW  [        U[        5      (       aB  U R
                  UR
                  :w  a(  SU R
                   SUR
                   S3n[        U5      e[        [        U5      [        [        U 5      5      [        U 5      5      $ )Nr  r9  /Expected divisor (b) to be on the same device (&) as dividend (a), but it is found on r  )r@  r!   rh  r)  r  r9  rj  r   rn   rf   r2   )rs  rt  r  s      r:  r   r     s    
 !VAv!6!6!77188<	Av		:a#8#8QXX=Q?zIopqpxpxoyyz{3SQ[#a&11r<  )rounding_moder  c                    Uc  [        X5      $ US:X  a  [        X5      $ US:X  a  [        X5      $ SU S3n[        U5      e)z'
Reference implementation of torch.div
rx   rJ   zLdiv expected rounding_mode to be one of None, 'trunc', or 'floor' but found .)r   r   r   ro  )rs  rt  r  r  s       r:  r   r     sV     1  	'	!A!!	'	!A!!\]j\kklmor<  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r   *      
 88A>r<  c                 l   [        U [        5      (       d   [        U[        5      (       d  [        S5      e[        U[        5      (       a=  US:X  a  U R	                  5       $ US:X  a  X -  $ US:X  a  [
        R                  " U 5      $ O[        U [        5      (       a  U S:X  a  [
        R                  " US5      $ U S:X  a`  [        R                  " UR                  5      (       d%  [        R                  " UR                  5      (       a  [
        R                  " U5      $ [        R                  " X5      $ )Nz-at least one of a or b must be TensorLikeType      ?g       @      ?T)r@  r(   r  r!   r   rc  rs   rH   r  r  r  r  rG   r  r   r[  s     r:  r   r   2  s     q.))Z>-J-JLMM!V8779#X5L#X::a=  	Av		8::a&&8  ))U-C-CAGG-L-L::a= 99Q?r<  c                    [        U [        5      (       a   [        U[        5      (       a  [        S5      e[        R                  " X5      nUc  [        S5      e[        R                  " U5      (       a  [        R                  nO[        R                  n[        X5      n [        X5      n[        X5      u  p[        X5      $ )Nz=Receive two Number inputs to an elementwise binary operation!z/dtype should not be None after get_higher_dtype)r@  r!   ro  r  get_higher_dtyper  r  rc  
complex128float64r+   r  r   rs  rt  r  s      r:  r   r   P  s    
 !VAv!6!6K
 	

 ""1(E}NOOe$$  
 	 )A)AA!DAq9r<  )r  rf  rj  c                 Z  ^ [        U [        5      (       a-  [        U[        5      (       a  [        U 5      n [        U5      nGO@[        U[        5      (       a4  [        U [        5      (       a  [        XR                  U R
                  S9nO[        U [        5      (       a4  [        U[        5      (       a  [        XR                  UR
                  S9n O[        U [        5      (       a  [        U[        5      (       a  U R
                  UR
                  :w  aj  U R
                  [        R
                  " S5      :X  a(  SU R
                   SUR
                   S3n[        U5      e[        R                  " XR
                  S9n[        U [        5      (       a  [        U[        5      (       d  [        S5      eU R                  m[        R                  " T5      (       a  [        X5      $ [        R                  " T5      (       a  [        X5      $ [        R                   " SU4S	 j5        g )
Nr  cpur  r  r  r8  z*a and b must both be Tensors at this pointFc                     > T  S3$ )Nz not supported for floor_dividerS  r  s   r:  rU  floor_divide.<locals>.<lambda>  s    ug-L$Mr<  )r@  r!   r)  rh  r  r9  rc  rj  r  
device_putr  r  r  _floor_divide_floatr  _floor_divide_integerrn  )rs  rt  r  r  s      @r:  r   r     s    !VAv!6!6!!	Av		:a#8#8!77188<	Av		:a#8#8!77188<	Av		:a#8#8QXX=Q88u||E**CAHH:Mstut|t|s}}~Cs##  884Aq&!!jF&;&;IJJGGEE"""1((				&	&$Q**UMNr<  c                 |   [        X5      u  pU R                  R                  (       d  [        R                  " X5      $ [
        R                  " U 5      [
        R                  " U5      :g  R                  [
        R                  " X5      S:g  5      n[        R                  " X5      [        X R                  5      -
  $ r2  )
r  r  	is_signedr  r   rc  rn   r   r   r+   )rs  rt  offsets      r:  r  r    s~    A!DA77yy mmA%--"22??

1@PTU@UVF99Q?4VWWEEEr<  c                    [        X5      n[        [        X5      U5      n[        [	        U S5      [	        US5      5      n[        US5      n[        XT5      n[        U[        US5      U5      n[        U5      n[        [        X75      S5      n[        U[        US5      U5      n[        X5      n[        SUR                  UR                  S9n	[        [        US5      U[        X5      5      n[        [        US5      Xx5      $ )Nr   rW  r  r  )r   r   r   r   r   r   r{   r   rJ   r   ry   r)  r  r9  r   )
rs  rt  modr   different_signed_inputsnon_zero_remaindermask	floor_div	basic_divzero_tensors
             r:  r  r    s    
q*C
c!k1
%C *"Q(Bq!H=C)CD
c#qk3
'C c
Ic#!3'DdC	1-y9IA!IAQAQRK baj)Xk-MNI Aq900r<  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r          ::ar<  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r     r  r<  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r     r  r<  mantissaexponentc                 h    [         R                  R                  [        R                  " U 5      5      $ rK  )rc  return_typesfrexpr  r  s    r:  r  r    s$     ##EKK$566r<  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r     s     99Q?r<  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r     r  r<  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r     r  r<  valuesc                    [         R                  " U S5      n[         R                  " [         R                  " U S5      [         R                  " U 5      5      n[         R
                  " USS5      n[         R
                  " X!U5      nU$ r8  )rc  r   r   r   rW   r   )r  r  input_eq_zeroinput_lt_zerozeros_and_onesrC  s         r:  r   r     sa     HHUA&M$$UXXeQ%7U9KLM[[15N[[?FMr<  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r     rv  r<  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r   #  s     <<r<  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r   ,  s     ==r<  r  rtolatolc                    ^ ^^^^ [         R                  " TR                  TR                  :H  UUU 4S j5        [         R                  " TS:  U U4S j5        [         R                  " TS:  UU 4S j5        g )Nc                  B   > T ST R                    STR                    S3$ )Nz4: Attempting to compare tensors of different dtypes  and r  r  )rs  rt  r  s   r:  rU  #_check_close_args.<locals>.<lambda>>  s'    4&LQWWIUZ[\[b[bZccder<  r   c                     > T  ST S3$ )Nz6: rtol must be greater than or equal to zero, but got r  rS  )r  r  s   r:  rU  r  B      4&NtfTUVr<  c                     > T ST  S3$ )Nz6: atol must be greater than or equal to zero, but got r  rS  )r  r  s   r:  rU  r  F  r  r<  )rc  rc  r  rn  r  rs  rt  r  r  s   `````r:  _check_close_argsr  5  sV     
	177e 
LL	V 
LL	Vr<  	equal_nanc           
      0   [        SXX#S9  [        X5      nU(       ar  [        R                  " U R                  5      (       d%  [        R
                  " U R                  5      (       a(  [        U[        [        U 5      [        U5      5      5      nUS:X  a  US:X  a  U$ [        R                  " U R                  5      (       dy  [        R
                  " U R                  5      (       dT  [        R                  " U [        R                  " 5       5      n [        R                  " U[        R                  " 5       5      n[        U[        [        X5      5      5      n[        [!        X5      5      n[        U[        [#        U5      [%        Xv5      5      5      nU$ )Nztorch.iscloser  r   )r  r   r  r  r  r  r   r   rW   r  convert_element_typerc  get_default_dtypery   r2   r   r   rS   r   )	rs  rt  r  r  r  closeallowed_erroractual_errorr  s	            r:  r   r   K  s    ?a4KqHEe**17733u7M7Magg7V7V5+eAha"AB qyTQY ((1G1G1P1P&&q%*A*A*CD&&q%*A*A*CDc#a,/0Ms1y>L {8L12l3RSF Mr<  c                    U R                   nU[        R                  [        R                  4;   nU(       aJ  [        R
                  " U [        R                  5      n [        R
                  " U[        R                  5      n[        R                  " X5      n[        R                  " US:H  SU5      n[        R                  " [        R                  " X5      U-  5      nU(       d  U$ [        R
                  " XR5      $ r8  )r  rc  int8int16r  r  int32r   r   r2   r   )rs  rt  r  promote_to_intgress         r:  r   r   v  s     GGE uzz5;;77N&&q%++6&&q%++6		!AAFAq!A
))EIIaOa'
(C$3P%*D*DS*PPr<  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r     r  r<  c                    [         R                  " U 5      [         R                  " U5      :  n[         R                  " X U5      n[         R                  " X!U 5      n[         R                  " [         R                  " [         R
                  " [         R                  " U 5      5      5      [         R                  " U 5      [         R                  " U5      :H  5      n[        R                  " U R                  5      (       d%  [        R                  " UR                  5      (       a  [         R                  " U5      S:  n[         R                  " Xd[         R                  " [         R                  " U5      [         R                  " U5      -   5      5      n[         R                  " XWU[         R                  " [         R                  " XC-
  5      5      -   5      n[         R                  " U5      n	[         R                  " U	[        [        S5      [        S5      5      U5      $ [         R                  " XPU[         R                  " [         R                  " XC-
  5      5      -   5      $ )Nr   r  )rc  r   r   r   r   rS   r  r  r  r\   rD   r]   rW   complexr  )
rs  rt  r  max_min_inf_maskneg_min_maskinf_valsnon_nan_valsnan_masks
             r:  r   r     s~    ::a=EJJqM)D;;t"D;;t"D  %..A78%**Q-5::VW=:XH agg&&%*@*@*I*Izz$'!+;;		%))D/EIIdO*K L
 {{u{{599T[3I'J J
 ;;t${{8WU5\5<%H,WW{{8u{{599T[;Q/R(RSSr<  c                 H   [         R                  " [        R                  " U R                  5      =(       d     [        R                  " UR                  5      (       + S 5        X:  n[         R
                  " X U5      n[         R
                  " X!U 5      n[         R                  " [         R                  " U 5      X:H  5      nS[        R                  " S5      -  nU[         R                  " [         R                  " XC-
  5      5      U-  -   n[         R
                  " XPU5      $ )Nc                      g)Nz)logaddexp2 doesn't support complex dtypesrS  rS  r<  r:  rU  logaddexp2.<locals>.<lambda>      ;r<  r  rG  )rc  rn  r  r  r  r   r   rT   r9  r\   r]   rG   )rs  rt  r  r  r  r  	inv_log_2r  s           r:  r   r     s     
LL##AGG,O0F0Fqww0OP;
 6D;;t"D;;t"D  Q8Hdhhqk!IEKK

4; 789DDF;;xF++r<  c                     [         R                  " U R                  5      (       d  U S:g  n [         R                  " UR                  5      (       d  US:g  nX-  $ r2  r  r  r  r[  s     r:  r   r     G     !!!''**F!!!''**F5Lr<  c                 \    [         R                  " U R                  5      (       d  U S:H  $ U ) $ r2  r  r  s    r:  r   r     s'    !!!''**Av2Ir<  c                     [         R                  " U R                  5      (       d  U S:g  n [         R                  " UR                  5      (       d  US:g  n[        X5      $ r2  )r  r  r  r}   r[  s     r:  r   r     sK     !!!''**F!!!''**Far<  c                     [         R                  " U R                  5      (       d  U S:g  n [         R                  " UR                  5      (       d  US:g  nX-  $ r2  r  r[  s     r:  r   r     r  r<  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r     r  r<  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r          ==r<  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r     r  r<  )r  rf  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r     s    
 99Q?r<  c                 .    [         R                  " X5      $ rK  r   r[  s     r:  r   r     r  r<  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r     s     ??1  r<  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r     s     ??1  r<  rW  c                 p    [        U [        5      (       a  Sn[        U5      e[        R                  " XUS9$ )Nz?Received a Number for the first argument, but expected a Tensorrp  )r@  r!   ro  rc  r   )rs  rt  rq  r  s       r:  r   r   $  s1     !VOo99Q''r<  c                   [        X5      u  p[        U [        5      (       a|  [        U[        5      (       ag  [        R                  " [
        R                  " U R                  5      (       + =(       a%    [
        R                  " UR                  5      (       + S 5        US:w  a  [        X5      n[
        R                  " U5      n[
        R                  " [        U5      U5      (       d  S[        U5       SU S3n[        U5      e[        U[        R                  5      (       a  [        R                  " X5      nOX-  n[        R                   " X5      n[#        X/U5      $ )z'
Reference implementation of torch.sub
c                      g)NzwSubtraction, the `-` operator, with two bool tensors is not supported. Use the `^` or `logical_xor()` operator instead.rS  rS  r<  r:  rU  sub.<locals>.<lambda>I  s    Cr<  rW  rs  r  r  )r  r@  r'   rc  rn  r  r  r  ro  r   r    r7  ro  rh  r  r   r   rD  rt  s          r:  r   r   4  s
     A!DA!Z  Z:%>%>&&qww//W8N8Nqww8W4W	
 z &))%0**4;DD+DK=8WXcWddefCS/!a&&		!#A
 	AYYq_F'77r<  r   )r  r  r  rf  c                 .    [         R                  " X5      $ rK  )r  r   r[  s     r:  r   r   a  s     99Q?r<  c           
      d   [         R                  " [        U [        5      =(       d    [        U[        5      S 5        [        U[        5      (       a4  [        U [        5      (       a  [        XR                  UR                  S9n OH[        U [        5      (       a3  [        U[        5      (       a  [        XR                  U R                  S9n[        U [        5      (       d  [        S[        U 5       35      e[        U[        5      (       d  [        S[        U5       35      e[         R                  " [         R                  " U S5      S[         R                  " U [         R                  " U5      5      5      n[         R                  " [         R                  " U5      [        S5      U5      $ )Nc                      g)Nz/Expected either argument a or b to be a Tensor"rS  rS  r<  r:  rU  xlogy.<locals>.<lambda>t  rK  r<  r  r  zb must be TensorLike, got r   r  )rc  rn  r@  r'   r!   r)  r  r9  r  r7  r   r   r   r\   rW   r  )rs  rt  rhss      r:  r   r   k  s    
LL1j!>Z:%>A !Z  Z6%:%:!77188<	Az	"	"z!V'<'<!77188< a$$9$q'CDDa$$9$q'CDD
++ehhq!na1eiil)C
DC;;u{{1~uU|S99r<  )r  r  rf  c                     [         R                  " U 5      n[         R                  " U5      (       a  [        R                  " X5      $ [        [        R                  " X5      5      $ rK  )r  	get_dtyper  r  r   rx   r  s      r:  r   r     sD     OOAEe$$yy1!!r<  )r  tensor1tensor2r  r  r  c                   ^^ Tb\  U R                   n[        R                  " U5      m[        R                  " [        R
                  " [        T5      T5      UU4S j5        U TU-  U-  -   $ )z+
Reference implementation of torch.addcdiv
c                  (   > S[        T5       ST  S3$ Nr  r  r  r6  r  r  s   r:  rU  addcdiv.<locals>.<lambda>      -d5k]:YZeYffghr<  r  r  r   rc  rc  r    r7  r  r  r  r  r  r  s      ` @r:  r   r     _      

))%0''U[Ah	

 %'/G+++r<  c                   ^^ Tb\  U R                   n[        R                  " U5      m[        R                  " [        R
                  " [        T5      T5      UU4S j5        U TU-  U-  -   $ )z+
Reference implementation of torch.addcmul
c                  (   > S[        T5       ST  S3$ r  r6  r  s   r:  rU  addcmul.<locals>.<lambda>  r   r<  r  r  s      ` @r:  r   r     r  r<  )rs  r   rk  r   rk  c                    Uc  Uc  Sn[        U5      eUbX  [        R                  " U 5      n[        R                  " [        R                  " X5      U5      n[        R
                  " XPU5      n UbX  [        R                  " U 5      n[        R                  " [        R                  " X5      U5      n[        R
                  " XPU5      n U $ )Nz+clamp called but both min and max are none!)ro  rc  rW   r}   r   r   r   )rs  r   rk  r  a_isnan	conditions         r:  r   r     s     {s{;o
++a.$$UXXa%5w?	
 KK	c*
++a.$$UXXa%5w?	KK	c*Hr<  c                 *    [         R                  " XS9$ )N)r   rc  r   )r  r   s     r:  r   r          ;;t%%r<  c                 *    [         R                  " XS9$ )N)rk  r  )r  rk  s     r:  r   r     r  r<  pred.c                 ,    [         R                  " U SS9$ )NT)as_tuple)rc  nonzeror  s    r:  _where_defaultr  	  s    ==--r<  c                    ^  Ub  Uc  [         e[        R                  " T XSS9  [        R                  " T R
                  [        R                  L U 4S j5        [        T X5      u  m p[        R                  " T X5      $ ) Tallow_cpu_scalar_tensorsc                  "   > ST R                    3$ )Nz#expected predicate to be bool, got r  r  s   r:  rU  where.<locals>.<lambda>%  s    5djj\Br<  )
NotImplementedErrorr  check_same_devicerc  rn  r  r  r  r  r   )r  rs  rt  s   `  r:  r   r     sh    " 	yAI!!	D!F	LL

ejj B
 "$-JD!;;tQ""r<  memory_formatr  c                .    [         R                  " XS9nU$ Nr  )r  r   )rs  r  r  s      r:  r   r   /  s    
 [[8FMr<  )allow_cross_devicec                    U(       dB  U R                   UR                   :w  a(  SUR                    SU R                    S3n[        U5      e[        R                  " X5      $ )NzAttempting to copy from device z to device z*, but cross-device copies are not allowed!)r9  rj  r  r   )rs  rt  r   r  s       r:  r   r   8  sK    !((ahh"6/zQXXJNxy3==r<  c                     U R                  5       S:w  a  SU R                  5        S3n[        U5      e[        R                  " U R                  5      nU" [
        R                  " U 5      5      $ )NrW  zCan't convert a tensor with z elements to a number!)r  ro  r  r   r  r  r   )rs  r  number_types      r:  r   r   @  sW    wwyA~,QWWYK7MNo %%agg.Kuzz!}%%r<  r9  copylayout
pin_memorynon_blockingc                 V   U(       + =(       a    US L =(       d    U R                   U:H  =(       a{    US L =(       d    U R                  U:H  =(       aZ    US L =(       d    U R                  U:H  =(       a9    US L =(       d.    U[        R                  :H  =(       d    [
        R                  " XS9$ r  )r9  r  r%  rc  preserve_formatr  is_contiguous_for_memory_format)rs  r9  r  r$  r%  r  r&  r'  s           r:  _to_will_aliasr+  M  s      
	
t^1qxx61
	
d].agg.
	
 t^1qxx61
	
 T! U 5 55U44QTr<  c                      [         erK  )r  )r  r  s     r:  _to_dispatchr-  f  s    
r<  c                     U UUUUS.nU$ N)r9  r  r'  r$  r  rS  r9  r  r'  r$  r  r  s         r:  
_to_devicer1  k  s!     $&F Mr<  c                 >    [         R                  " U 5      UUUUS.nU$ r/  )rc  r9  r0  s         r:  _to_device_strr3  }  s*     ,,v&$&F Mr<  c                     U UUUS.nU$ )N)r  r'  r$  r  rS  )r  r'  r$  r  r  s        r:  	_to_dtyper5    s     $&	F Mr<  otherc                 `    U R                   nU R                  nU R                  nUUUUUUS.nU$ )N)r9  r  r%  r'  r$  r  )r9  r  r%  )r6  r'  r$  r  r9  r  r%  r  s           r:  	_to_otherr8    sA     \\FKKE\\F $&F Mr<  	to_kwargsc                    / SQnSU;   a4  [        US   [        5      (       a  [        R                  " US   5      US'   U H  nX1;   d  M
  US:X  a  X   [        R                  L dy  US:X  a_  X   R
                  U R                  R
                  :X  a9  X   R                  (       a:  X   R                  U R                  R                  :X  d  [        XS 5      X   :X  d  M  UR                  U5        M     g )N)r  r9  r%  r  r9  r  )	r@  r  rc  r9  r)  r7  indexr  pop)rs  r9  options_to_checkkws       r:  _canonicalize_to_argumentsr?    s    E9Ih,?!E!E#ll9X+>?	(?&9=E<Q<Q+Q(N!**ahhmm;%M//9=3F3F!((..3X A4(IM9 b! r<  c                 4   [        U5      S:w  a  [        U0 UD6nSU;   a  [        S5      e[        X5        [	        U 40 UD6(       a  U $ SU;   a  UR                  S5      OSnSU;   a  UR                  S5      OSnU(       d*  UR                  SU R                  5      U R                  :w  aI  U(       dB  SU;  a<  S	U;  a6  S
U;  a0  [        R                  " XR                  SU R                  5      5      $ [        R                  " U 40 UD6n[        XP5        U$ )Nr   r&  z#pin_memory is not supported in refsr$  Fr'  r  r  r9  r%  )rZ  r-  r  r?  r+  r<  getr  r  r  rc  r  r   )rs  r  r  r$  r'  r  s         r:  r   r     s    
4yA~t.v. vBCCq)a"6"!'6!16::fuD1?61I6::n-uL 
&**Wagg.!''9F*V#V# ))!ZZ-IJJa*6*FFMr<  )has_identityaccepts_dim_tuplerX  keepdimsr  r  r  rB  rC  rX  rD  r  output_dtype_kindc                  ^  [        T [        5      (       d  [        S[        T 5       35      eT R                  S:  a  [        ST R                   S35      eUbI  [        U[        5      (       d  [        S[        U5       35      eUb  XgR                  :w  a  [        S5      eU(       d/  Ub,  [        U[        5      (       d  [        S[        U5       35      e[        U[        5      (       a  U4n[        R                  " T R                  U5      nU(       dC  SS	KJn	  T R                  S:H  =(       d    U	" U 4S
 jU 5       6 n
[        R                  " U
S 5        [        R                  " T X5      u  p[!        T U5      m U" T U5      nU(       a|  [#        T R                  5       Vs/ s H  oU;  a  T R                  U   OSPM     nn[#        T R                  5       Vs/ s H  oU;  d  M
  UPM     nn[$        R&                  " XU5      nUbI  Uc  [        S5      eUb  XR                  :w  a  [        S5      e[)        X}R                  5      n[+        XS9$ UR                  U:w  a  Ub  [$        R,                  " X5      nU$ s  snf s  snf )Nr  @   zReceived a tensor with z? dimensions, but only tensors with up to 64 dims are supported!out must be TensorLike, got z4dtype argument and out dtype must match in reductionzdims must be None or Dim, got r   )r}  c              3   H   >#    U  H  nTR                   U   S :  v   M     g7fr   Nr[  rN  irs  s     r:  rP  _reduction.<locals>.<genexpr>	  s     .Lt!qwwqzA~ts   "c                      g)NzJreducing over zero-size dimension for reduction operation without identityrS  rS  r<  r:  rU  _reduction.<locals>.<lambda> 	  s    `r<  rW  z4result_dtype should not be None when out is providedz7Expected the dtype of reduction result and out to match	copy_fromr   )r@  r'   r  r7  ndimrj  r  r   r  reduction_dimsr[  rb  r}  rc  rn  reduction_dtypesr+   rm  r  broadcast_in_dimr,   r-   r  )rs  r  rB  rC  rX  rD  r  r  rE  r}  valid_shaper  r  r  rM  output_shapebroadcast_dimss   `                r:  
_reductionrZ    sA    a$$9$q'CDDvv{%affX-lm
 	
 #z** #?S	{!KLL		!"J  
4 5 5 #A$t*!NOO$w.DAffkMW.Lt.L%M`	

 ',&<&<	'# 	 #45A!T]FDI!&&MRMqtm
:MR%*166]D]tm!]D''nM
 !WXX!:I   \\2<<|||#(@++FAM# SDs   ( J!	J	.J	c                 F  ^ ^ [        [        T R                  5      n[        T S0 5      n[        SS9" U5      m [	        T 5      SS.U U4S jj5       nT R                   S3nXTl        UR
                  R                  U5        [        [        [        U5      5      " U5        U$ )zc
Given a view function (e.g. torch.diagonal) generates its copy variant (e.g. torch.diagonal_copy)
__annotations__Tr  Nr  c                 h   > T" USU 0UD6nT(       a  U b  g U b  U$ [         R                  " S U5      $ )Nr  c                 <    U R                  [        R                  S9$ r  )r   rc  contiguous_formatrT  s    r:  rU  3_make_copy_from_view.<locals>._fn.<locals>.<lambda>P	  s    aggE,C,CgDr<  )pytreetree_map)r  r  r  r  r  return_none_on_out_variants       r:  r  !_make_copy_from_view.<locals>._fnG	  sB    T-s-f-%#/?MD
 	
r<  _copy)r  r  r  r0   r
   r\  updater  )r  rd  aten_fnannotationsr  	copy_names   ``    r:  _make_copy_from_viewrk  =	  s     dBKK(G"/4K 
	&w	/B
2Y 

 

 

 ;;-u%IL{+7434S9Jr<  c                     [         R                  " [         R                  " [         R                  " U 5      XS95      nU R                  [         R                  :X  a  UR                  [         R                  S9nU$ )Nr  r  )rc  r   r   r  uint8r   )rs  r	  r  r  s       r:  r   r   [	  sS     uyy):):1)=sTUFww%++-Mr<  c                 p   [        U [        R                  5      n[        U[        [
        45      (       a   [        U5      S:X  a  UR                  5       nOUR                  XS9R                  S5      nU R                  [        R                  L a%  [        R                  " U[        R                  5      $ U$ )Nr   )r	  r  F)r+   rc  r  r@  listrh  rZ  r   r   r   r  rm  r  r  )rs  r	  r  r  r  s        r:  r   r   j	  s     
!EJJ	/B#e}%%#c(a-C144U; 	ww%++))&%++>>Mr<  )r  r  c          
      h   Ucw  Ub  UR                   nOg[        R                  " U R                   5      (       d%  [        R                  " U R                   5      (       a  [        R
                  nOU R                   nUS:X  d  U/ :X  a  S n[        U [        R                  UUUU[        R                  S9$ NrS  rX  rD  r  r  rE  )r  r  r  r  rc  int64rZ  r  r   r$   SAMErs  r	  r  r  r  s        r:  r   r   ~	  s     }?IIE##AGG,,0F0Fqww0O0OKKEGGE
byC2I			499 r<  c           
        ^ ^^ [         R                  " TSS9m[        R                  " [         R                  " TT R
                  5      U U4S j5        [         R                  " TT R
                  5      (       a%  [        T5      S:  a  [        R                  " T 5      $ T R                  [        T5      -
  m[        [        T5      5      [        U UU4S j[        T[        T5      5       5       5      -   n[        R                  " T USS S9$ )NFvalidatec                  *   > ST ST R                    S3$ )Nzsum_to_size: size "z" is not expandable to size ""rK  rs  r[  s   r:  rU  sum_to_size.<locals>.<lambda>	  s    %eW,I!''RSTr<  r   c              3   n   >#    U  H*  nTUT-
     S :X  d  M  TR                   U   S :w  d  M&  Uv   M,     g7frW  NrK  )rN  rM  rs  leading_dimsr[  s     r:  rP  sum_to_size.<locals>.<genexpr>	  s@      50A\!"a' 	
,-GGAJ!O 	
0s   55	5T)r	  r  r  )r  extract_shape_from_varargsrc  rn  is_expandable_tor[  is_same_shaperZ  r  view_ofrS  rh  rm  r   )rs  r[  reduce_dimsr  s   `` @r:  r   r   	  s     ,,UUCE	LLuagg.T 5!''**s5zA~}}Q66CJ&Ll+,u 5|SZ05 0 K
 99QKTBBr<  c          
      h   Ucw  Ub  UR                   nOg[        R                  " U R                   5      (       d%  [        R                  " U R                   5      (       a  [        R
                  nOU R                   nUS:X  d  U/ :X  a  S n[        U [        R                  UUUU[        R                  S9$ rq  )r  r  r  r  rc  rs  rZ  r  r   r$   rt  ru  s        r:  r   r   	  s     }?IIE##AGG,,0F0Fqww0O0OKKEGGE
byC2I	

499 r<  r]  c                v    US:X  d  U/ :X  a  S n[        U [        R                  UUS US[        R                  S9$ NrS  FrX  rD  r  r  rB  rE  )rZ  r  r   r$   rt  rs  r	  r  r  s       r:  r   r   	  E     byC2I	

499	 	r<  c                v    US:X  d  U/ :X  a  S n[        U [        R                  UUS US[        R                  S9$ r  )rZ  r  r   r$   rt  r  s       r:  r   r   	  r  r<  c                 @    Uc  [        U [        5      (       a  U nS n X4$ rK  )r@  r  )r	  unbiaseds     r:  _dim_var_dispatchr   
  s(     JsD11=r<  
correctionr  r  c                    [        X5      u  p[        R                  " X$5      nUS:X  d  U/ :X  a  S n[        U [	        [
        R                  US9UUS S S[        R                  S9nU$ )NrS  r  Tr  )	r  r  set_correctionrZ  r   r  r   r$   COMPLEX_TO_FLOAT)rs  r	  r  r  r  r  s         r:  r   r   

  sl     &c4MC%%h;J
byC2I			j14EE	F Mr<  c                4   [        X5      u  p[        R                  " X$5      n[        R                  " U [        R
                  5      u  pV[        X5      n [        R                  " XXCS9n[        R                  " U5      nUc  [        S5      e[        X5      $ N)r  r  z/dtype should not be None after reduction_dtypes)r  r  r  rU  r$   r  r+   rc  r   rs   r  )	rs  r	  r  r  r  opmath_dtyper  a_vara_stds	            r:  r   r   '
  s     &c4MC%%h;J00	%66L 	 0AIIaEEJJuE}NOO"500r<  c          
        ^ ^^	 US:X  d  U/ :X  a  S nTm	Tc  T R                   m[        T [        R                  UUTS [        R
                  S9n[        R                  " [        R                  " T5      =(       d    [        R                  " T5      UU	4S j5        [        U[        5      (       a  U4n[        R                  " T R                  U5      nT R                  S:X  a  SO$[!        ["        R$                  U 4S jU 5       S5      n['        XW5      nTc  T R                   OTn[)        XX5      nUbJ  [        U[*        5      (       d  [-        S[/        U5       35      e[1        XER                  5      n[3        XTS9$ U$ )	NrS  rr  c                     > STc  SOS ST  3$ )Nz&mean(): could not infer output dtype. Inputr   z> dtype must be either a floating point or complex dtype. Got: rS  )r  
orig_dtypes   r:  rU  mean.<locals>.<lambda>Y
  s"    4$,w*= >77<g?r<  r   rW  c              3   B   >#    U  H  nTR                   U   v   M     g 7frK  rK  rL  s     r:  rP  mean.<locals>.<genexpr>b
  s     7QDq
Ds   rH  rQ  )r  rZ  r  r   r$   KEEP_PROMOTED_TYPErc  rn  r  r  r  r@  r   rT  r[  rS  r   operatorr   r   r+   r'   r  r7  r,   r-   )
rs  r	  r  r  r  r  rX  nelemr  r  s
   `  `     @r:  r   r   ?
  s?    byC2IJ}			4GGF 
LLU#Du'='=e'D	
 #sf-D1A&7QD7QST"UE'F#m177L$V:F
#z** #?S	{!KLL\\2<<Mr<  out0out1)r  r  r  c                f   [        X5      u  p[        R                  " X$5      n[        R                  " U [        R
                  5      u  pVU R                  n[        X5      n [        R                  " XXCS9u  p[        R                  " U5      n
Uc  [        S5      e[        X5      [        X5      4$ r  )r  r  r  rU  r$   r  r  r+   rc  r   rs   r  )rs  r	  r  r  r  r  r  original_dtyper  a_meanr  s              r:  r   r   n
  s     &c4MC%%h;J00	%66L WWN0ANN1jRMEJJuE}NOO-7 r<  c                P    [        X5      u  p[        XX#US9n[        XU5      nXV4$ )Nr  )r  r   r   )rs  r	  r  r  r  vms          r:  r   r   
  s1     &c4MCAH*=AQWA4Kr<  )r  vec1vec2)betarq  r  r  r  c                  ^ ^^^^^ [         R                  " TR                  S:H  U4S j5        [         R                  " TR                  S:H  U4S j5        TS4TS44 H  u  nm[        U[        5      (       d  M  [         R                  " [
        R                  " T R                  5      =(       aG    [
        R                  " TR                  5      =(       a     [
        R                  " TR                  5      U4S j5        M     T R                  TR                  S   TR                  S   5      m [
        R                  " T R                  5      (       a  [         R                  " [        [        T5      [        5      U4S j5        [         R                  " [        [        T5      [        5      U4S	 j5        T(       d5  T(       a  [         R                  " TT5      $ [         R                  " T S
5      $ [         R                  " T T(       a  [         R                  " TT5      5      $ [         R                  " T S
5      5      $ [         R                  " [        [        T5      [!        T R                  5      5      UU 4S j5        [         R                  " [        [        T5      [!        T R                  5      5      UU 4S j5        TS:X  a  T[         R                  " TT5      -  $ TT -  T[         R                  " TT5      -  -   $ )NrW  c                  $   > ST R                    S3$ )Nz*addr: Expected 1-D argument vec1, but got -DrS  )r  s   r:  rU  addr.<locals>.<lambda>
      <TYYKrJr<  c                  $   > ST R                    S3$ )Nz*addr: Expected 1-D argument vec2, but got r  r  )r  s   r:  rU  r  
  r  r<  rq  r  c                     > ST  S3$ )NzBoolean z$ only supported for Boolean results.rS  )arg_names   r:  rU  r  
  s    (8*,PQr<  r   c                      > S[        T 5       3$ )Nzexpected bool/int beta but got r6  )r  s   r:  rU  r  
  s    5d4j\Br<  c                      > S[        T 5       3$ )Nz expected bool/int alpha but got r6  rp  s   r:  rU  r  
  s    6tE{mDr<  Fc                  :   > S[        T 5       STR                   3$ Nzcannot safely convert z to r7  r  )r  r  s   r:  rU  r  
  s    ,T$ZLTZZLIr<  c                  :   > S[        T 5       STR                   3$ r  r  )rq  r  s   r:  rU  r  
  s    ,T%[Mdjj\Jr<  )rc  rn  rS  r@  r  r  r  r  r   r[  r    r7  intouterr  r   r   )r  r  r  r  rq  argr  s   ````` @r:  r   r   
  s    
LL		QJ 
LL		QJ !'*T6N;Xc4  LL&&tzz2 7**4::67**4::6Q	 < ;;tzz!}djjm4Ddjj))!$t*c2B	
 	!$u+s3D	
 .35;;tT*Uu9UU##+0D$' 6;oodE6R 
 	!$t*mDJJ.GHI	
 	!$u+}TZZ/HIJ	
 195;;tT222$;T4)@!@@@r<  r  r  c                 ,   U(       d,  [        U [        R                  R                  5      (       a  U nO:[        U [        R                  R                  5      (       a  [	        S5      eU 4U-   n[        S U 5       5      n[        U5      S:  a  U$ US   $ )z5Reference implementation of :func:`torch.atleast_1d`.2arg should not be a Sequence when args is providedc              3   \   #    U  H"  oR                   S :  a  UO[        US5      v   M$     g7f)rW  r   N)rS  r  rN  rs  s     r:  rP  atleast_1d.<locals>.<genexpr>
  s#     Eu!VVq[i1o5us   *,rW  r   )r@  collectionsabcr   r  rh  rZ  )r  r  args_r  s       r:  r   r   
  sy     JsKOO$<$<==c;??3344 !UVV
EuE
ECc(Q,3*CF*r<  at_least_fnc                     U " U5      n[        U[        5      (       d  [        S[        U5       35      e[	        X15      $ )Nz(at_least_fn must return TensorLike, got )r@  r'   r  r7  r  )r  r	  r  arg_s       r:  _unsqueeze_atleastr  
  s=     sDdJ''GT
|TUUTr<  c                 ^  ^ U(       d,  [        U [        R                  R                  5      (       a  U nO:[        U [        R                  R                  5      (       a  [	        S5      eU 4U-   n[        [        [        S5      m[        U4S jU 5       5      n[        U5      S:  a  U$ US   $ )z5Reference implementation of :func:`torch.atleast_2d`.r  r   c              3   V   >#    U  H  oR                   S :  a  UOT" U5      v   M      g7f)rG  Nr  )rN  rs  unsqueeze_atleast_1ds     r:  rP  atleast_2d.<locals>.<genexpr>
  $     Mu!VVq[&:1&==u   &)rW  )
r@  r  r  r   r  r   r  r   rh  rZ  )r  r  r  r  r  s       @r:  r   r   
  s     JsKOO$<$<==c;??3344 !UVV"#5z1E
MuM
MCc(Q,3*CF*r<  c                 ^  ^ U(       d,  [        U [        R                  R                  5      (       a  U nO:[        U [        R                  R                  5      (       a  [	        S5      eU 4U-   n[        [        [        S5      m[        U4S jU 5       5      n[        U5      S:  a  U$ US   $ )z5Reference implementation of :func:`torch.atleast_3d`.r  r]  c              3   V   >#    U  H  oR                   S :  a  UOT" U5      v   M      g7f)   Nr  )rN  rs  unsqueeze_atleast_2ds     r:  rP  atleast_3d.<locals>.<genexpr>  r  r  rW  r   )
r@  r  r  r   r  r   r  r   rh  rZ  )r  r  r  r  r  s       @r:  r   r     s     JsKOO$<$<==c;??3344 !UVV"#5z2F
MuM
MCc(Q,3*CF*r<  rQ  rM  rS  c                 Z    Ub  UOU R                  5       n[        R                  " XX$5      $ rK  )rS  r  r   )rs  rQ  rM  rS  storage_offset_ints        r:  r   r     s1     )4!:J:J:L  AV@@r<  srcc                 @    Uc  SOUn[         R                  " XX#U5      $ r2  )r  r   )r  r  rQ  rM  rS  r  s         r:  r   r     s'     -4.##E>PQQr<  c                  :    [         R                  " [        U 6 5      $ rK  )rc  Sizeru  )rr  s    r:  r   r   ,  s    ::'011r<  c                      [        U 5      S:X  a  [        U S   [        5      (       d  U S   n [        [	        U SS065      $ )NrW  r   rv  F)rZ  r@  rh  ro  r  tensorss    r:  r   r   0  s?     7|qGAJ!?!?!* 'MuMNNr<  c                     [        U5      [        U R                  5      -
  n[        [        U[        U R                  5      U-   5      5      n[        R
                  " XU5      $ rK  )rZ  r[  rh  rm  r  rV  )rs  rQ  startrX  s       r:  r   r   9  sI    IAGG$Euc!''lU234D!!!400r<  r  r  c                 T  ^
^^^ S n[        U 5      S:X  a  Sn[        U5      eU  H/  n[        U[        5      (       a  M  [	        S[        U5       35      e   [        R                  " U SS06  SSKJ	n  S m
[        U 5       He  u  mmT
c  TR                  S:w  a  Tm
M  M  TR                  S:w  d  M1  [        R                  " TR                  T
R                  :H  U
UU4S	 j5        Mg     T
c  U S   m
T
R                  n/ n[        U 5       H  u  mn[        U5      [        UR                  5      :w  a\  UR                  S:w  a  [	        S
UR                   35      e[        R                  " U" UR                  S   S:H  5      U
U4S j5        M  UR                  S:X  a  U" UR                  S   S:H  5      (       a  M  UR                  U5        M     U" U 5      n[        U5      S:X  aB  U S   m [!        [#        S U  5       5      5      n	['        STR(                  TR*                  U	US9$ [        R,                  " US   R                  U5      n[        R.                  " US   R                  U5        [0        R2                  " Xq5      R5                  US9$ ! [$         a    Sn	 Nf = f)Nc                     S nU  HM  n[         R                  " U5      nU[        R                  :X  a  Us  $ Ub  X:w  a  [        R                  s  $ UnMO     Uc  [	        S5      eU$ )Nz,format should not be None if len(inputs) > 0)r  suggest_memory_formatrc  r`  r  )inputsformatr   fs       r:   cat_compute_output_memory_format-cat.<locals>.cat_compute_output_memory_formatF  sg    A++A.AE+++!fk...F  > !OPPr<  r   z3cat expects at least one tensor, but received zero!ztensor must be TensorLike, got r  FrF  rW  c                  D   > ST R                    STR                    ST S3$ )N6Number of dimensions of tensors must match.  Expected z-D tensors, but got z-D for tensor number  in the listr  )examplerM  r   s   r:  rU  cat.<locals>.<lambda>y  s.       '~-A!&& J%%&C|5r<  z+tensor.ndim should be 1 at this point, got c                  *   > ST R                    ST S3$ )Nr  z*-D tensors, but got 1-D for tensor number r  r  )r  
tensor_idxs   r:  rU  r    s"     #LL> *!!+L:r<  c              3   8   #    U  H  oR                   v   M     g 7frK  )requires_gradrM  s     r:  rP  cat.<locals>.<genexpr>  s     $Fg__gr\  r   r  r9  r  r  r  )rZ  ro  r@  r'   r  r7  r  r  rb  rF  rl  rS  rc  rn  r[  r  r  r   	Exceptionr  r  r9  canonicalize_dimvalidate_idxr  r   r   )r  r	  r  r  tensorrF  r[  filteredr  r  r  rM  r   r  s             @@@@r:  r   r   ?  si    7|qCo&*-- #B4<.!QRR  
WEuED$ G'"1?vv{  vv{FFgll*5 #  !*MMEH'0
Fu:V\\**{{a$A&++O  LL v||A!34:$ {{aN6<<?a3G$H$HOOF#9 1< 5W=M
8}AJ	" !$Fg$F!FGM ''88''
 	
 
 
 !!1!13
7C	x{''-99X#)))FF  	"!M	"s   1J J'&J'c                 >    [        S U  5       5      n[        US5      $ )Nc              3      #    U  H7  oR                   S :  a  UO UR                  UR                  5       S 45      v   M9     g7fr~  )rS  r   r  rM  s     r:  rP  column_stack.<locals>.<genexpr>  s3      @G1VVaZQYY	1~66s   ?ArW  )rh  r   r  aligned_tensorss     r:  r   r     s(     @G O ""r<  c                     [         R                  " U R                  5      (       d  U $ U R                  (       a  [        R
                  " U 5      $ [        R                  " U 5      $ rK  )r  r  r  	is_sparserc  r;   r  r   r  s    r:  r   r     sC    !!%++..""5))::er<  padc           	        ^^
^^^^ [         R                  " [        T5      S-  S:H  U4S j5        U R                  m[        T5      m[        T5      S-  nTU-
  m[         R                  " TU:  UU4S j5        U n[	        TT5       Hx  m
STT
-
  S-
  -  mTT   S:  a*  UR                  T
TT   * UR                  T
   TT   -   5      nTTS-      S:  d  MO  UR                  T
SUR                  T
   TTS-      -   5      nMz     [        R                  " S T 5       5      (       a  UR                  5       $ [        TS T 5      n[	        U5       Ha  m
[        T5      T
S-   S-  -
  mTTT
-      TT   -   TTS-      -   n[         R                  " US:  U
UUUU4S j5        UR                  U5        Mc     [        R                  " U 5      n[         R                  " UU R                  U R                  U R                   US9nUS:X  a   U R                  [         R"                  :X  a  S	n[         R$                  " X5      nUn	[	        TT5       Hw  m
STT
-
  S-
  -  mTT   S:  a)  U	R                  T
TT   U	R                  T
   TT   -
  5      n	TTS-      S:  d  MN  U	R                  T
SU	R                  T
   TTS-      -
  5      n	My     [&        R(                  " X5        U$ )
NrG  r   c                      > S[        T 5       3$ )Nz1Length of pad must be even but instead it equals rY  )r  s   r:  rU  !constant_pad_nd.<locals>.<lambda>  s    CCH:Nr<  c                  (   > S[        T5       ST  S3$ )Nz`Length of pad should be no more than twice the number of dimensions of the input. Pad length is z while the input has  dimensions.rY  )l_inpr  s   r:  rU  r    s      225c(;P'r<  rW  c              3   *   #    U  H	  oS :  v   M     g7frJ  rS  )rN  ps     r:  rP  "constant_pad_nd.<locals>.<genexpr>  s     '3aE3s   c            	      F   > STTT -       STT    STTS-       STT -    S3	$ )NzThe input size z, plus negative padding r  rW  zG resulted in a negative output size, which is invalid. Check dimension z of your input.rS  )rM  input_sizesl_diffr  pad_idxs   r:  rU  r    sE    ok&1*&=%>>V7|nE#gk"2!3 4117!OMr<  r  F)rc  rn  rZ  r[  rm  r   rR  r   r   ro  r  r  r  r  r  r9  r  r  rH   r  r   )r  r  r  l_padc_input	new_shapenew_dimr  rC  c_outputrM  r  r  r
  r  s    `        @@@@@r:  r   r     s   
 
LLC1N
 ++KEHMEU]F	LL	 G65!uqy1}%w<!nnQWw}}Q7G#g,7VWGw{annQ7==+;c'A+>N+NOG "" ||'3'''}}[&)*I5\c(q1uk*fqj)CL83w{;KKqLM M	
 	!  //6M[[kk||))#F zekkUZZ/ZZ&FH65!uqy1}%w<13w<!2S\!AH w{q q!X^^A->Wq[AQ-QRH " 
MM($Mr<  c                    [         R                  " U[         R                  :g  S 5        [        XS9(       a  U $ [         R                  " XS9$ )Nc                      g)Nz@preserve memory format is unsupported by the contiguous operatorrS  rS  r<  r:  rU  contiguous.<locals>.<lambda>-  s    Rr<  r  )rc  rn  r)  r   r   )rs  r  s     r:  r   r   (  s?     
LL...R 0O;;q66r<  c                 r    [         R                  " [        U 5      S:  S 5        [        U 6 n[	        US5      $ )Nr   c                      g)Nz%dstack expects a non-empty TensorListrS  rS  r<  r:  rU  dstack.<locals>.<lambda>9      +Rr<  rG  )rc  rn  rZ  r   r   r   s     r:  r   r   7  1    	LLW!#RS '*O""r<  )implicitr  c                  ^^ SSK JnJnJnJn  [
        R                  R                  R                  R                  n[        U5      S:X  a&  [        US   [        5      (       a  [        US   5      n[
        R                  " [        U5      [        U R                  5      :  S 5        [        U5      [        U R                  5      -
  n[!        U5      n	[#        U R                  5       H  u  n
mX-   nX+   mU" TS:H  5      (       a  TX'   M$  U(       aO  U" T5      (       aB  U" T5      (       a5  U" T5      nU" T5      nUS:X  a  US:w  a  [
        R                  " TS:H  5        [
        R                  " U" TS:H  TT:H  5      UU4S j5        [
        R                  " TS:  5        TX'   M     [$        R&                  " U	5        [(        R*                  " X	[        [-        U[        U R                  5      U-   5      5      5      $ )Nr   )rF  rG  rH  r~  rW  c                      g)Nz3expand: the requested shape has too few dimensions!rS  rS  r<  r:  rU  expand.<locals>.<lambda>Q  s    Er<  r]  c                     > ST ST  S3$ )Nz3expand: attempting to expand a dimension of length  -> r  rS  )requested_lengthrO  s   r:  rU  r"  {  s    MaSPTUeTffghr<  )rb  rF  rG  rH  r~  rc  rd  re  rf  rg  rZ  r@  r   rh  rn  r[  ro  rl  r  validate_shaper  rV  rm  )rs  r  r[  rF  rG  rH  r~  rq  r  shape_ra  
offset_idxx_hintrequested_hintr%  rO  s                 @@r:  r   r   >  s     %%--CCI
 5zQ:eAh99eAh	LLE
c!''l"E
 Z#agg,&F%[FAGG$Q\
 , *b011!"F %a((%&677/2!78H!IQ;>Q#6LLa(LLqAv/145h LL)Q./!1FQ %V 
 !!	5vs177|f'<=> r<  c                 8    U R                  UR                  5      $ rK  )r   r[  r[  s     r:  r   r     s    88AGGr<  chunksc           	         US::  a  SU S3n[        U5      e[        R                  " U R                  U5      nU R                  U   n[
        R                  " XA-  5      n[
        R                  " XE-  5      nXE-  n[        U5       Vs/ s H  n[        XX-  U5      PM     n	nUS:w  a  U	R                  [        XXe-  U5      5        [        U	5      $ s  snf )Nr   z%Expected at least one chunk, but got r  )ro  r  r  rS  r[  r9  r:   rJ   rm  r   r  rh  )
rs  r,  r	  r  length
chunk_sizefull_chunkstail_chunk_sizerM  r  s
             r:  r   r     s    {5fXQ?o

 
 
-CWWS\F6?+J**V01K)OBGBTUBTQfQQ^Z8BTFU!fQ[%=OP= Vs   	C	start_dimend_dimc                 F   [         R                  " U R                  U5      n[         R                  " U R                  U5      nX:X  a  U R                  S:w  a  U $ [        R                  " XUS S9u  p4Ub  [        R
                  " XU5      $ [        R                  " XU5      $ )Nr   must_be_valid)r  r  rS  r  _collapse_view_helpercollapse_viewcollapse)rs  r2  r3  r  _new_stridess        r:  r   r     s    &&qvvy9I$$QVVW5G !
 $99	gTI ""199 >>!00r<  c                    [        U[        5      (       d   [        U[        5      (       d  [        S5      e[        R
                  " U R                  U5      n[        R                  " U5        [        R                  " X5      $ )Nz!dims has to be a sequence of ints)
r@  rh  ro  ro  r  canonicalize_dimsrS  validate_no_repeating_dimsr  rev)rs  rX  s     r:  r   r     s\     dE"":dD+A+A<==""16640D	$$T*99Qr<  c                 P    U R                   S:  a  [        S5      e[        U S5      $ )NrG  zInput must be >= 2-d.rW  rS  rj  r   r  s    r:  r   r     %    vvz2334=r<  c                 P    U R                   S:  a  [        S5      e[        U S5      $ )NrW  zInput must be >= 1-d.r  rA  r  s    r:  r   r     rB  r<  r  r.  c                 t  ^^^ [        T[        5      (       a`  [        R                  " TR	                  5       S:H  =(       a     [
        R                  " TR                  5      S 5        TR                  5       m[        [        T5      m[        R                  " U R	                  5       S:  S 5        [        R                  " TS:  S 5        [
        R                  " U R                  U5      nU R                  U5      m[        R                  " [        T* T:*  =(       a    TT:*  UU4S j5        TS:  a  TT-   m[        R                  " TTT-
  :*  UUU4S j5        [!        U R"                  5      nTXA'   U R%                  X@R'                  5       U R)                  5       U R'                  U5      T-  -   5      $ )Nr   c                      g)Nz'start must be an 0-dim integral Tensor.rS  rS  r<  r:  rU  narrow.<locals>.<lambda>  s    =r<  c                      g)Nz-narrow() cannot be applied to a 0-dim tensor.rS  rS  r<  r:  rU  rF    s    &Ur<  c                      g)Nz&narrow(): length must be non-negative.rS  rS  r<  r:  rU  rF    s    &Nr<  c                     > ST *  ST  ST S3$ )Nz0start out of range (expected to be in range of [, z], but got )rS  )
dim_lengthr  s   r:  rU  rF    s#    BJ;-rR\Q]]hinhoopqr<  c                     > ST ST ST  S3$ )Nzstart (z) + length (z) exceeds dimension size (z).rS  )rL  r.  r  s   r:  rU  rF    s    '%VH4NzlZ\]r<  )r@  r'   rc  rn  r	  r  r  r  r   r   r  r  rS  rQ  _check_with
IndexErrorro  r[  r   rM  rS  )rs  r	  r  r.  r  rL  s     `` @r:  r   r     sO   
 %$$IIK1D!7!7!D=	
 

eE	LL1UV	LL1NO

 
 
-CJ		u4*!4q
 qy
"	LLf$$] QWWIIN<<88:q//1AHHSME4II r<  	norm_dimsepsc                 h   [         R                  " U R                  U5      n[         R                  " U R                  5      n[        X5      n[        U[        5      (       d  [        S[        U5       35      e[        R                  " XASSS9u  pV[        R                  " XR-   5      nXF-
  U-  nXU4$ )a  Computes mean and 1/std of a tensor along norm_dims.

Used as a helper function for normalization layers.

Args:
    a (Tensor): input tensor
    norm_dims (DimsType): dimensions to normalize over
    eps (float): epsilon for numerical stability

Returns:
    out (Tensor): normalized tensor.
    mean (Tensor): mean of the tensor along norm_dims.
    rstd (Tensor): 1/std of the tensor along norm_dims.
za_acc must be TensorLike, got FTr	  r  r  )r  r<  rS  r  r  r+   r@  r'   r  r7  rc  r   r   )	rs  rP  rQ  r  a_acc
biased_varr   rstdr  s	            r:  
_normalizerW    s    $ ''	:I33AGG<#A9EeZ((=d5k]KLL~~udJ ;;z'(D<4
Cd?r<  
dimensionsc                 V    [        U5       H  n[        R                  " X5      n M     U $ rK  )sortedrc  r  )rO  rX  r	  s      r:  _unsqueeze_multipler[    s$    j!OOA# "Hr<  weightbias
batch_sizenum_channelsflattened_inner_size
num_groupsc                 x  ^ ^ [         R                  " T R                  S:  U 4S j5        [         R                  " UT-  S:H  U U4S j5        [        R                  " T R
                  5      n[        T U5      n	SS/n
[         R                  " U	UTUT-  U/5      n[        R                  " UR                  U
5      n
[         R                  " XSSS9u  p[         R                  " X-   5      nT R                  R                  S	:X  a  Ub  [         R                  " US
TUT-  S
/5      nX-  nU* U-  nUb#  [         R                  " US
TUT-  S
/5      nUU-   nUR                  5       R                  X4/US
/5      nUR                  5       R                  X4/US
/5      n[        [!        ST R                  5      5      n[#        UU5      n[#        UU5      nU	U-  U-   nOmX-
  U-  nUR%                  T R&                  5      nS/[        [!        ST R                  5      5      -   nUb  [#        UU5      nUU-  nUb  [#        UU5      nUU-   n[        UT R
                  5      n[        UT R
                  5      n[        UT R
                  5      n[         R(                  " X5      n[         R(                  " X5      nUX4$ )NrG  c                  "   > ST R                    3$ )Nz=Expected at least 2 dimensions for input tensor but received r  r  s   r:  rU  #native_group_norm.<locals>.<lambda>(  s    OPUPZPZ|\r<  r   c                  .   > SST R                    ST 3-   $ )NzDExpected number of channels in input to be divisible by num_groups, zbut got input of shape z and num_groups = rK  )r  ra  s   r:  rU  rd  ,  s!    V#EKK=0B:,
OPr<  r  FTrS  r  rW  )rc  rn  rS  r  r  r  r+   r   r<  r   r   r9  r7  r   r   ro  rm  r[  r
  r[  r   )r  r\  r]  r^  r_  r`  ra  rQ  r  	input_accrT  input_reshapedrU  r   rV  weight_reshapedwrt  bias_reshapedrY  unsqueeze_wunsqueeze_br  unsqueeze_weightunsqueeze_biass   `     `                  r:  r   r     s    
LL

a\ 
LLz!Q&	P 33EKK@'/@AIVN]]	Z!;=QRN ,,^-@-@.QN~~UDJ ;;z'(D||E!f&8--Q
LJ$>B
 "EAI!MMq*lj&@!DM M!ALLN%%z&@<QRBSTLLN%%z&@<QRBSTeAuzz23)!^<)!^<+%3$,hhu{{#tE!UZZ$89926>J((C0~FN&C
!#u{{
3C"45D"45D ==.D==.Dr<  out2normalized_shapec                 N  ^ ^^^ SSK Jn  [        T5      n[        R                  " US:  U4S j5        [        R                  " TS L =(       d    U" TR
                  [        T5      5      UU4S j5        [        R                  " TS L =(       d    U" TR
                  [        T5      5      UU4S j5        [        R                  " T R                  U:  =(       a,    U" T R
                  T R                  U-
  S  [        T5      5      U U4S j5        [        R                  " T R                  5       (       + S 5        [        T 5      m Tb  [        T5      mTb  [        T5      mT R                  U-
  n[        [        UT R                  5      5      n[        T X5      u  pnTc	  Tb  U	T-   n	OTb	  Tc  U	T-  n	OTb  Tb  U	T-  T-   n	[        U	T R                  5      n	T R                  R                   S	;   a,  [        U
T R                  5      n
[        UT R                  5      nXU4$ )
Nr   sym_eqrW  c                      > S[        T 5      -   $ )NzzExpected normalized_shape to be at least 1-dimensional, i.e., containing at least one element, but got normalized_shape = )r  )rp  s   r:  rU  #native_layer_norm.<locals>.<lambda>q  s     I

 r<  c                  R   > S[        TR                  5      -   S-   [        T 5      -   $ )NzQExpected weight to be of same shape as normalized_shape, but got weight of shape  and normalized_shape = r  r[  )rp  r\  s   r:  rU  ru  {  s3     
fll
 %% 
	 r<  c                  R   > S[        T R                  5      -   S-   [        T5      -   $ )NzMExpected bias to be of same shape as normalized_shape, but got bias of shape rw  rx  )r]  rp  s   r:  rU  ru    s2     
djj/ %% 
	 r<  c                  p   > S[        T5      -   S-   [        T5      -   S-   [        T R                  5      -   $ )NzGiven normalized_shape=z, expected input with shape z, but got input of size rx  )r  rp  s   r:  rU  ru    sI    )

 
() 
  %	%
 ekk
r<  c                      g)Nz1native_layer_norm does not support complex inputsrS  rS  r<  r:  rU  ru    s    Cr<  )r  mtia)rb  rs  rZ  rc  rn  r[  rh  rS  r0  r   ro  rm  rW  r+   r  r9  r7  )r  rp  r\  r]  rQ  rs  normalized_ndimaxisrT  r  r   rV  s   ````        r:  r   r   c  s    =*+O	LL1	  
LL$G&u5E/FG	  
LLCtzz51A+BC	  
LL

o% 	
KKo589"#
	 
LLC
 uEF#$::'D%ejj12N <OCt~$*Dj		Fl		 0FlT!
!#u{{
3C||O+&tU[[9&tU[[9tr<  c                     [        U6 $ rK  )r   )	fake_modefuncr  r  s       r:  native_layer_norm_faker    s    d##r<  c                     [         R                  " U R                  [         R                  " U5      5      n[        R
                  " X5      $ rK  )r  r<  rS  extract_dims_from_varargsr  r  )rs  rX  _permutations      r:  r   r     s7    **	//5L ??1++r<  r  maxnormc                 v  ^^	 [         R                  " [        U[        5      (       + S 5        [         R                  " US:  S 5        [         R                  " [        T[        5      (       + S 5        [         R                  " TS:  U4S j5        U R                  m	[         R                  " T	S:  U	4S j5        [
        R                  " T	U5      n[        [        T	5      5      nXB	 [
        R                  " U R                  5      nXPR                  :w  a!  [         R                  R                  XUSUS	9nO[         R                  R                  XUSS
9nSn[         R                  " UT:  TXg-   -  S5      nXPR                  :w  a   [        R                  " XR                  5      nX-  R!                  5       $ )Nc                      g)Nzrenorm: p must be real-valuedrS  rS  r<  r:  rU  renorm.<locals>.<lambda>  s    5Tr<  r   c                      g)Nz'renorm: non-positive norm not supportedrS  rS  r<  r:  rU  r    s     Ir<  c                      g)Nz#renorm: maxnorm must be real-valuedrS  rS  r<  r:  rU  r    s    2Wr<  c                     > ST  3$ )Nz,renorm: expected maxnorm to be >= 0 but got rS  )r  s   r:  rU  r    s     LWIVr<  rW  c                     > ST  S3$ )Nz/renorm: input needs at least 2 dimensions, got  dimensionsrS  r  s   r:  rU  r    s    A${Sr<  T)r  r  r  gHz>r  )rc  rn  r@  r  rS  r  r  ro  rm  r  r  linalgvector_normr   r  r  r   )
r  r  r	  r  r  acc_typerc   rQ  norm_factorrS  s
      `     @r:  r1  r1    s_   
 
LLZ7++-TU	LLQIJ	LLw((*W 
LL1V ::D	LLqS
 
 
 s
+CuT{#K **5;;7H;;||''k4x ( 
 ||''+t'L
C++dWng.DcJK;;00kkJ++--r<  n_fft
hop_length
win_lengthwindowcenterpad_mode
normalizedonesidedreturn_complexalign_to_windowc                   ^ ^^^^^ [         R                  " TS L =(       d    TR                  T R                  :H  U U4S j5        [         R                  " U(       + =(       d    U
S L S 5        Ub  UOTS-  mUb  UOTmU	c[  T R                  5       =(       d+    TS L=(       a     [        R
                  " TR                  5      n[         R                  " US 5        OU	n[         R                  " [        R                  " T R                  5      =(       d     [        R
                  " T R                  5      S 5        [         R                  " ST R                  s=:*  =(       a    S:*  Os  S 5        T R                  nUS:X  a  T R                  S	5      m U(       a  S
T R                  -
  nTS-  n/ [        R                  " SU5      QT R                  Qn[        R                  T R                  U5      X/U5      m T R                  T R!                  5       US  5      m T R!                  S5      m[         R                  " S	Ts=:  =(       a    T:*  Os  UU4S j5        [         R                  " TS	:  U4S j5        [         R                  " S	Ts=:  =(       a    T:*  Os  U4S j5        [         R                  " TS L =(       d    TR                  T4:H  UU4S j5        TT:  aS  Tc*  [         R"                  " TT R                  T R                  S9mTT-
  S-  n[        R%                  TUTT-
  U-
  /5      mU(       d(  U
(       a!  TT-
  S-  n[        R                  T UU/U5      m T R'                  STTS9m Tb  T T-  m [        R
                  " T R                  5      nUb  UOU(       + nU(       a  SOS nU(       a=  [         R                  " U(       + S 5        [         R(                  R+                  T SUS9nO[         R(                  R)                  T SUS9nUR-                  SS5        US:X  a  UR/                  S	5      nU(       a  U$ [         R0                  " U5      $ )Nc                  B   > ST R                    3STR                    3-   $ )NzAstft input and window must be on the same device but got self on  and window on r8  r  r  s   r:  rU  stft.<locals>.<lambda>  s'    OPUP\P\~^/0r<  c                      g)Nz6stft only supports align_to_window for center = False.rS  rS  r<  r:  rU  r    s    Hr<     c                      g)Nzstft requires the return_complex parameter be given for real inputs, and will further require that return_complex=True in a future PyTorch release.rS  rS  r<  r:  rU  r    s    cr<  c                      g)Nz:stft expected a tensor of floating point or complex valuesrS  rS  r<  r:  rU  r    s    Lr<  rW  rG  c                      g)Nzstft expected a 1D or 2D tensorrS  rS  r<  r:  rU  r    s    /Pr<  r   r  c                     > ST  ST 3$ )Nzstft expected 0 < n_fft <= z, but got n_fft=rS  )r.  r  s   r:  rU  r  +  s    -fX5EeWMr<  c                     > ST  3$ )Nz0stft expected hop_length > 0 but got hop_length=rS  )hop_length_s   r:  rU  r  /  s    B;-Pr<  c                     > ST  3$ )Nz9stft expected 0 < win_length <= n_fft but got win_length=rS  )win_length_s   r:  rU  r  3  s    KK=Yr<  c                  0   > ST  S3STR                    3-   $ )Nz8expected a 1D window tensor of size equal to win_length=rJ  zbut got window with size rK  )r  r  s   r:  rU  r  7  s#    F{mSUV)&,,89r<  r  r]  )	dimensionrQ  steporthoc                      g)Nz9Cannot have onesided output if window or input is complexrS  rS  r<  r:  rU  r  R      Or<  r	  rc   )rc  rn  r9  r0  r  r  r  r  rS  r  	itertoolsr   r[  r  r  r
  rQ  r&  r   r  fftrfft
transpose_squeeze_view_as_real)r  r  r  r  r  r  r  r  r  r  r  return_complex_original_ndim
extra_dims
pad_amountextended_shapeleftinput_pad_amountcomplex_fftrc   r  r  r.  r  s   ``  `                @@@r:  r2  r2    s    
LL$7&--5<<7	
 
LL
-o-H
 !+ 6*EQJK * 6*EK**, 
$G5#9#9&,,#G 	 		
 )	LLU[[)PU-C-CEKK-PL 
LLejj%%A%'PQJJM"^
aZ
I9++Az:IU[[IN3j5MxX

5::<
45ZZ]F	LL	EVM 
LLaP 
LL	K  5 Y 
LL$8&,,;.8	
 U>ZZ5;;u||TF#)%%ftU[5H45O.PQo!K/A5!13C DhOLL2ELDE((5K#/x_H 7dDOO	
 iinnUn6iimmErm5NN1all1o!3>u'9'9#'>>r<  c
                 
  ^ ^^ [         R                  " TS L =(       d    TR                  T R                  :H  U U4S j5        Ub  UOUS-  n
Ub  UOUn[         R                  " [        R                  " T R
                  5      U U4S j5        T R                  S5      nT R                  S5      mXUS-
  -  -   n[         R                  " T R                  5       S:  S 5        [         R                  " S	T R                  s=:*  =(       a    S
:*  Os  U 4S j5        Ub  UOTU:g  nU(       a%  [         R                  " US	-  S-   T:H  U4S j5        O[         R                  " UT:H  U4S j5        [         R                  " SU
s=:  =(       a    U:*  Os  S 5        [         R                  " SUs=:  =(       a    U:*  Os  S 5        [         R                  " TS L =(       d    TR                  U4:H  S 5        Tc@  [        R                  " T R
                  5      n[         R                  " XT R                  S9nOTnX:w  a%  X-
  S	-  n[        R                  UUX-
  U-
  4S5      nT R                  nT R                  S	:X  a  T R                  S5      m T R                  SS	5      m U(       a  SOS nU	(       a=  [         R                  " U(       + S 5        [         R                   R#                  T SUS9m O[         R                  " TS L =(       d%    [        R                  " TR
                  5      (       + S 5        U(       d  T R%                  SSUS	-  S-   S9m [         R                   R'                  T SUS9m T R                  S	5      U:w  a   [)        ST R                  S	5       SU 35      eT UR+                  SSU/5      -  n[        R-                  UUR                  S5      U4SUU
S9n[        R-                  UR/                  S	5      R1                  SX45      UR                  S5      U4SUU
S9nUUR                  S5      :w  a!  [)        SU SUR                  S5       S35      eUUR                  S5      :w  a!  [)        SU SUR                  S5       S35      eU(       a  US	-  OSnUb  UU-   nOU(       a  XS	-  -
  nOUn[3        SUU-
  5      nUR%                  SUUS9nUR%                  SUUS9nUU-  nUS	:X  a  UR5                  S5      nUU:  a1  [6        R8                  " SS	S9  [        R                  USUU-
  4S5      nU$ ) Nc                  B   > ST R                    3STR                    3-   $ NzBistft input and window must be on the same device but got self on r  r8  r  s   r:  rU  istft.<locals>.<lambda>p  s(    PQVQ]Q]P^_/0r<  r  c                  @   > ST R                    STR                    3-   $ r  r8  r  s   r:  rU  r  {  s!    Pofmm_=>r<  r]  rW  r   c                      g)Nz"istft input tensor cannot be emptyrS  rS  r<  r:  rU  r    s    ,Pr<  rG  r  c                  "   > ST R                    3$ )Nz8istft expected a tensor with 2 or 3 dimensions, but got r  r  s   r:  rU  r    s    J5::,Wr<  c                     > SST  3-   $ )NMistft expected the frequency dimension (3rd to the last) of the input tensor z3to match n_fft / 2 + 1 when onesided=True, but got rS  fft_sizes   r:  rU  r    s    _GzRSr<  c                     > SST  3-   4$ )Nr  z,to match n_fft when onesided=False, but got rS  r  s   r:  rU  r    s    _@
KLr<  c                      g)Nz+istft expected 0 < hop_length <= win_lengthrS  rS  r<  r:  rU  r    rI  r<  c                      g)Nz&istft expected 0 < win_length <= n_fftrS  rS  r<  r:  rU  r    s    *Rr<  c                      g)NzDInvalid window shape. window has to be 1D and length of `win_length`rS  rS  r<  r:  rU  r    s    Vr<  r  r  c                      g)Nz9cannot have onesided output if window or input is complexrS  rS  r<  r:  rU  r    r  r<  r  c                      g)Nz:Complex windows are incompatible with return_complex=FalserS  rS  r<  r:  rU  r        Pr<  )r	  r  r.  z%Expected input.size(2) == n_fft, got z != )r  r	  rQ  r  zexpected_output_signal_len (z) != y.size(1) (rK  z) != window_envelop.size(1) (zThe length of signal is shorter than the length parameter. Result is being padded with zeros in the tail. Please check your center and hop_length settings
stacklevel)rc  rn  r9  r  r  r  rQ  r  rS  r[  corresponding_real_dtyper&  r  r   r  r  r  ifftr   irfftr  r
  unfold_backwardr   r   rk  r   warningswarn)r  r  r  r  r  r  r  r  r.  r  r  r  n_framesexpected_output_signal_len	onesided_
real_dtypewindow_r  r  rc   y_tmpr  window_envelopr  endr  s   `   `                    @r:  r3  r3  a  s    
LL$7&--5<<7	
 !+ 6*EQJK * 6*EK	LLu{{+	
 zz"~Hzz"~H!&1)E!E	LL"$PQ	LL	UZZ1W %0h%6GIQJNh&	
 	X	
 
LL	K&&;&= 
LL	K  5 "R 
LL$8&,,;.8V
 ~33EKK@
**[5<<P#)&&wu7JT7Q0RTUVJJMzzQ"OOAq!E 7dDMO	
 		u"48dNF%"8"8"FFP	
 LLRq!aLHE		2D9zz!}3EJJqM?$ugN
 	
 GLL!Q//EZZ]$>? 	 	A ))Aq(23ZZ]$>? * N "QVVAY.*+E*FFVWXW]W]^_W`Vaabc
 	
 "^%8%8%;;*+E*FFcdrdwdwxydzc{{|}
 	
 !EQJaEfn	(A:5(C%K F	QeF3A#**qf*MN	NAIIaL
''`	

   Q.H(H$I1MHr<  a_shapea_strider  r  c                   ^^^	^
 [        U 5      n[        R                  " XRSS9m	US:X  a  SOU T	   m
US:X  a  SOUT	   n[        R                  " TT
:*  U	U
U4S j5        [        R                  " TS:  U4S j5        [        U 5      n[        U5      nUR                  T5        UR                  U5        T	U:  a  UT	   T-
  T-  S-   UT	'   UT	==   T-  ss'   Xx4$ )NT)wrap_scalarr   rW  c                     > ST  ST ST 3$ )Nz%Maximum size for tensor at dimension z is z but size is rS  )r	  max_sizerQ  s   r:  rU  *_get_unfold_shape_stride.<locals>.<lambda>
  s    7uD
-X\W]^r<  c                     > ST  S3$ )NzStep is z but must be > 0rS  r  s   r:  rU  r    s    (4& 01r<  )rZ  r  r  rc  rn  ro  r  )r  r  r  rQ  r  a_ndimlast_strider[  stridesr	  r  s      ``    @@r:  _get_unfold_shape_strider     s     \F

 
 
ECaKqWS\H{!K	LL^
 
LLq1
 ME8nG	LLNN;
V|Cj4'D014c
>r<  c                    [         R                  " USS9n[        R                  " [	        U5      [	        U R
                  5      :  S 5        [	        U5      S:X  a  [        R                  " U 5      $ [	        U5      U R                  -
  nS/U-  nU R
                   H  nUR                  U5        M     [        S [        X15       5       5      nSU;   aJ  [        R                  " UU R                  U R                  U R                  [         R                  " U 5      S9$ Un[         R                   " U5      n[#        U5       H  u  p[%        XgX['        US5      5      u  pgM      [)        [#        U5      5      n	U	R+                  [,        R.                  " S5      SS	9  [        U	6 u  pU R1                  U5      n[        R                  " U5      nUR3                  U
5      nUR5                  U5      $ )
NFrw  c                      g)Nzbrepeat: Number of dimensions of repeat dims can not be smaller than number of dimensions of tensorrS  rS  r<  r:  rU  repeat.<locals>.<lambda>"  s    tr<  r   rW  c              3   .   #    U  H  u  pX-  v   M     g 7frK  rS  )rN  padded_sizerepeat_sizes      r:  rP  repeat.<locals>.<genexpr>-  s      (G$K 	!(G   r  T)keyreverse)r  r  rc  rn  rZ  r[  r   rS  r  rh  r  r  r  r9  r  r  make_contiguous_strides_forrl  r  rk  ro  sortr  
itemgetterr   r   r   )rs  repeat_shapenum_new_dimensionspadded_shapedim_sizetarget_shapeurtensor_shapeurtensor_strider	  enumerated_stridepermute_order_sorted_striderepeat_xtensorcloned_resultpermuted_results                  r:  r   r     s    33L5QL	LLLS\)t
 <A{{1~\*QVV33++LGGH%   (+L(G L 	L{{''88//55a8
 	
 "N77EO"<0*BSC!<L+
' 1 Y78x2215tD$'):$;!M XXn-N KK/M $++M:O ""<00r<  
allow_copyc                   ^
^ SmU m
U GHW  nTT
R                   :  aP  US:w  a  [        SU S35      eT
R                   S-
  n[        R                  " T
UT
R                  U   5      m
TS-   mMd  UT
R                  T   :X  a  TS-   mM~  T
R                  T   nTnXS-  S:w  a!  US-  nUT
R                  U   -  nXS-  S:w  a  M!  UT:w  aw  [        R
                  " T
TUS S9u  pxUcN  U(       a  [        R                  " X5      s  $ SU R                   SU R                  5        SU S	3n	[        U	5      e[        T
TU5      m
XS:w  a  [        R                  " T
TU5      m
TS-   mGMZ     TT
R                   :  aJ  [        R                  " T
R                  T   S:H  U
U4S
 j5        [        T
T5      m
TT
R                   :  a  MJ  T
U L a  [        R                  " U 5      $ T
$ )Nr   rW  z'Cannot unsqueeze dimension with length z, expected 1r5  z Cannot view a tensor with shape z and strides  as a tensor with shape r  c                  .   > ST ST R                   T    3$ )Nza.size(z) expected to be 1 but got rK  )r  ra  s   r:  rU  /_reshape_view_helper_core_alg.<locals>.<lambda>  s    gcU"=bhhsm_Mr<  )rS  r  r  	split_dimr[  r7  r   rM  ro  r   rc  rn  r   r  )rs  r[  r  r.  last_dimaccumr  r  r:  r  r  ra  s             @@r:  _reshape_view_helper_core_algr  V  s   ( C	
B"''>{$=fX\R  ww{H Xrxx/ABB'C RXXc]"'Cn!1HCRXXc]"E n! #: ',&A&ACD'#I   ==228	qxxzlZrsxryyz{ o%S#&B ?S&1BAg_ d -HHSMQM	
 R - 
Qw}}Q	r<  c                6  ^ ^ [         R                  " TSS9m[         R                  " TT R                  5       5      mT R                  5       S:X  a!  [	        T T[         R
                  " T5      5      $ T R                  S:X  aH  T nT H#  nUS:w  a  [        SU 35      e[        US5      nM%     UT L a  [        R                  " T 5      $ U$ [        T5      S:X  aR  T nT R                   H#  nUS:w  a  [        SU 35      e[        US5      nM%     UT L a  [        R                  " T 5      $ U$ [        T 5      (       a  [        T5      S:X  a8  T R                  S:  a(  [        R                  " T T R                  5       /S/5      $ [        T5      S:X  a5  T R                  S:X  a%  TS   nTS   n[        R                  " T XV/US/5      $ [!        ["        R$                  TS5      n[        R&                  " T R                  5       U:H  U U4S	 j5        [)        T TU5      $ )
NFrw  r   rW  z<Cannot reshape 0-dim tensor: shape dimension must be 1, got r]  z?Cannot reshape to 0-dim tensor: shape dimension must be 1, got rG  c                  *   > ST R                    ST S3$ )Nz&Could not reshape a tensor with shape r  r  rK  r{  s   r:  rU  &_reshape_view_helper.<locals>.<lambda>  s    8	AYZ_Y``abr<  )r  r  
infer_sizer  r   r  rS  r  r  r  r  rZ  r[  r   r   rc  r   r  r   rn  r  )rs  r  r[  _ar.  dim0dim1shape_numels   ` `     r:  _reshape_view_helperr    s   ,,UUCE UAGGI.E 	wwyA~!UE$E$Ee$LMM 	vv{F{$RSYRZ[  2r"B  7==##I 5zQggF{$UV\U]^  RB  7==##Ia  u:?qvvz##A	{QC88u:?qvv{8D8D##A|dAY??ua0K	LL		[ b )E:>>r<  r[  c                      [        U /UQ7SS06$ )Nr  T)r  r{  s     r:  r   r     s    ;E;d;;r<  c                 @    U R                  UR                  5       5      $ rK  )r   rQ  r  r6  s     r:  r   r     s    <<

%%r<  shiftsc                    [         R                  " U R                  U5      n[        U[        5      (       d  U4n[        U[        5      (       d  U4nU R                  5       S:X  a  U R                  5       $ U R                  5       S:X  a!  [        U5      S:  a  [        SUS    S35      e[        U5      n[        U5      nUS:w  d  US:w  a  US:X  a  [        S5      eUS:X  aK  US:X  aE  [        R                  " [        R                  " U 5      US5      R                  U R                  5      $ X4:w  a  [        SU SU 35      eUS::  a  [!        SU 35      eUSS	 nUSS	 n[        R                  " XS   4US   5      n[        R                  " XuU5      $ US   nU R                  U   n	XS   -
  U	-  n
[        R"                  " XR$                  S
9nU R'                  U[        R(                  " X-   U	5      5      $ )z/Reference implementation of :func:`torch.roll`.r   zDimension specified as z but tensor has no dimensionsrW  z`shifts` requiredz*shifts and dimensions must align. shifts: z, dims: zExpected len_dims > 1, got Nr8  )r  r<  rS  r@  r   r  r   r	  rZ  rO  rj  rc  r   r   r
  r[  r  r  r9  rP   r   )rs  r   rX  
len_shiftslen_dimstail_shifts	tail_dimsfirst_dim_rolledr	  rQ  r  ra  s               r:  r   r     s   
 ""16640Dfh''dH%%w 	wwyA~wwy 	uuw!|D	A%d1gY.KL
 	
 VJ4yHQ(a-?233 q=Z1_::emmA.:??HH!<ZLQYPZ[  q= #>xj!IJJQRjH	 !::a)tAw?zz*CC
 q'C773<D1I%E
,,tHH
-C>>#uzz%+t<==r<  r   rW  kc                    [        U5      S:w  a  [        S[        U5       35      eU R                  S:  a  [        SU R                   35      e[        R                  " U R                  U5      nUS   US   :X  a  [        SUS    SUS    35      eUS-  nUS:X  a6  [
        R                  " [
        R                  " XS   45      US   US   5      $ US:X  a  [
        R                  " X5      $ US	:X  a6  [
        R                  " [
        R                  " XS   45      US   US   5      $ U R                  [
        R                  S
9$ )z0Reference implementation of :func:`torch.rot90`.rG  z2expected total rotation dims == 2, but got dims = z/expected total dims >= 2, but got total dims = r   rW  z7expected rotation dims to be different, but got dim0 = z and dim1 = r  r  r  )
rZ  rj  rS  r  r<  rc  r  r   r   r`  )rs  r(  rX  s      r:  r   r   0  s9    4yA~@TL
 	
 	vvzLQVVHUVV ""16640DAw$q'Ed1gYl[_`a[bZcd
 	
 	
AAAvuzz!1gZ8$q'47KK	
azz!""	
auzz!1gZ8$q'47KKwwU%<%<w==r<  c                    ^ SSK Jn  U S   R                  m[        S[	        U 5      5       H1  n[
        R                  " U" X   R                  T5      U4S j5        M3     g )Nr   rr  rW  c                     > ST  S3$ )Nz4stack expects each tensor to be equal size, but got z at entry 0 rS  )entry_shapes   r:  rU  %_check_stack_inputs.<locals>.<lambda>W  s    J;-Wcdr<  )rb  rs  r[  rm  rZ  rc  rn  )r  rs  rM  r,  s      @r:  _check_stack_inputsr.  P  sK    <!*""K1c'l#7:##[1d	
 $r<  c                    [        U 5      S:X  a  [        S5      e[        R                  " U S   R                  S-   U5      nX S   R                  :  ae  [        U 5        [        U S   R                  5      nUR                  U[        U 5      5        [        R                  " X5      nUR                  U5      $ [        R                  " U  Vs/ s H  oUR                  U5      PM     snU5      $ s  snf )Nr   z$stack expects a non-empty TensorListrW  )rZ  r  r  r  rS  r.  ro  r[  insertrc  r   r
  r  )r  r	  wrapped_dimresult_sizesr  r   s         r:  r   r   [  s     7|qCDD((1)<cBKQZ__$G$GAJ,,-KW6ii-xx%% 99@1kk+.@#FF@s   C/c                    U=(       d    U R                   n[        R                  " U5      n[        X5      nU R	                  5       S:X  a  [        U5      nO[        XQSS9n[        XW-
  5      n[        [        U[        XaSS95      U5      $ )Nr   Tr  )	r  r  r  r+   r  rD   r   r   r   )rs  r	  r  r  r  r  a_expa_maxs           r:  rr   rr   n  s{     #AGGL33LA	 	6BwwyA~BRd+BJ"E3u489 r<  c                     [         R                  " [        U 5      S:  S 5        [        U 6 nUS   R                  S:X  a  [        US5      $ [        US5      $ )Nr   c                      g)Nz%hstack expects a non-empty TensorListrS  rS  r<  r:  rU  hstack.<locals>.<lambda>  r  r<  rW  )rc  rn  rZ  r   rS  r   r   s     r:  r   r     sQ    	LLW!#RS '*Oq!#?A&&""r<  c                 r    [         R                  " [        U 5      S:  S 5        [        U 6 n[	        US5      $ )Nr   c                      g)Nz%vstack expects a non-empty TensorListrS  rS  r<  r:  rU  vstack.<locals>.<lambda>  r  r<  )rc  rn  rZ  r   r   r   s     r:  r  r    r  r<  rV  c                 *   [         R                  " U R                  U5      n[        R                  " [        U5      S:g  S 5        U R                  [        U R                  S U 5      [        U5      -   [        U R                  US-   S  5      -   5      $ )Nr   c                      g)Nz"unflatten: sizes must be non-emptyrS  rS  r<  r:  rU  unflatten.<locals>.<lambda>  s    *Nr<  rW  )	r  r  rS  rc  rn  rZ  r
  rh  r[  )rs  r	  rV  s      r:  r  r    so    

 
 
-C	LLUq"NO66%&u5aggcAgi>P8QQRRr<  r   c                 8  ^ [         R                  " U R                  T5      m[        R                  " [        U R                  5      S:  S 5        U R                  T   S:X  a  g[        U4S j[        R                  " X R                  T   T5       5       5      $ )Nr   c                      g)Nz5Dimension specified as 0 but tensor has no dimensionsrS  rS  r<  r:  rU  unbind.<locals>.<lambda>  s    Gr<  rS  c              3   R   >#    U  H  n[         R                  " UT5      v   M     g 7frK  )rc  r   )rN  sr	  s     r:  rP  unbind.<locals>.<genexpr>  s#      
+SaEMM!S!!+Ss   $')	r  r  rS  rc  _check_indexrZ  r[  rh  r  )r   r	  s    `r:  r  r    s~    

 
 
-C	AGGqG 	wws|q 
+0+=+=as+S
 
 	
r<  r;  r  c                 \    U R                  [        R                  S9R                  XU5      $ r  )r   rc  r`  rO   )rO  r	  r;  r  s       r:  rN   rN     s+    77!8!879EEF r<  c                   ^ [         R                  " U R                  U5      n[        R                  " TR                  S:*  U4S j5        U R                  S:X  a  U R                  S5      OU n[        S 5      4U-  T4-   nX4U'   U $ )NrW  c                  $   > ST R                    S3$ Nz(Index should have dimension 1 or 0 (got rK  r  r;  s   r:  rU  index_copy_.<locals>.<lambda>      :5::,aHr<  r   )r  r<  rS  rc  rn  r  slice)rO  r	  r;  r  r  ra  s     `   r:  rO   rO     sq    

!
!!&&#
.C	LL

aH
 &&A+A1A;.3
%
)CcFHr<  c                     [        XX#SS9$ )NFinplace_index_fillrO  r	  r;  r  s       r:  rQ   rQ     s    
 quU;;r<  c                     [        XX#SS9$ )NTrO  rQ  rS  s       r:  rR   rR     s     quT::r<  rP  c                  ^^ [         R                  " TR                  S:*  U4S j5        [        T[        5      (       a)  [         R                  " TR                  S:H  U4S j5        O5[         R
                  " TU R                  U R                  U R                  S9mU R                  S:H  nU(       a  U R                  S5      OU n[        UR                  5      nTR                  5       Xq'   TR                  U5      mU(       a  [        R                  O[         R                   nU" XaTT5      n	U(       a  U $ U(       a  U	R#                  S5      R%                  5       n	U	R'                  5       U R'                  5       :w  a?  [(        R*                  " U 5      (       a$  [,        R.                  " XR'                  5       5      n	U	$ )NrW  c                  $   > ST R                    S3$ rI  r  rJ  s   r:  rU  _index_fill.<locals>.<lambda>  rL  r<  r   c                  $   > ST R                    S3$ )Nz<Only supports 0-dimensional value tensor. Got a tensor with r	  r  r  s   r:  rU  rW    s     !!&L:r<  )r  r%  r9  )rc  rn  rS  r@  r'   r)  r  r%  r9  r  ro  r[  r  r   rh  rO   rN   r   r   rM  r  %is_non_overlapping_and_dense_or_falser  copy_strided)
rO  r	  r;  r  rP  zero_dimr  r[  rN   r  s
     ``      r:  rR  rR    sH    
LL

aH %$$JJ!O:	
 ##''8888	
 vv{H"AAMEEJLLE'.##E4D4DJ
QUE
*C++a.&&(C ::<188:%%*U*U+
 +
 $$S((*5C
r<  c                \    U R                  [        R                  S9R                  UUUUS9$ )Nr  rp  )r   rc  r`  
index_add_)rO  r	  r;  r  rq  s        r:  rM   rM     s:     77!8!879DD	 E  r<  c                   ^ [         R                  " U R                  U5      n[        R                  " TR                  S:*  U4S j5        TR                  S:X  a  TR                  S5      mU R                  S:X  a6  [        R                  " U 5      R                  STU R                  T5      5      $ [        S 5      4U-  T4-   nX   R                  [         R                  " U 5      S9$ )NrW  c                  $   > ST R                    S3$ rI  r  rJ  s   r:  rU  index_select.<locals>.<lambda>  rL  r<  r   r  )r  r<  rS  rc  rn  r  r  rN   r   rM  r   r  )rO  r	  r;  ra  s     ` r:  rP   rP     s     
!
!!&&#
.C	LL

aH zzQ"vv{ "--aE8JKK;.3
%
)C65+F+Fq+IJJr<  c                   ^ ^ SSK Jm  UcY  [        S [        T R                  5       5       5      nU(       a  [
        R                  " T U5      $ [
        R                  " T 5      $ T R                  n[        R                  " X15      n[        U[        5      (       a  U4OUnUS:X  a9  [        U5      S:X  d  US:X  d  [        SU 35      e[
        R                  " T 5      $ [        U U4S jU 5       5      n[        U5      S:X  a  [
        R                  " T 5      $ [        U5      S:X  a  [
        R                  " T U5      $ [        U5      n[!        USS	9nU H  n[        T U5      m M     T $ )
Nr   r  c              3   :   #    U  H  u  pUS :X  d  M  Uv   M     g7fr~  rS  )rN  ra  rQ  s      r:  rP  squeeze.<locals>.<genexpr>-  s     J*<YS	SS*<s   	r  z8Expected dims to be empty or (0,) for 0-dim tensor, got c              3   f   >#    U  H&  nT" TR                   U   S :H  5      (       d  M"  Uv   M(     g7fr~  rK  )rN  drs  rF  s     r:  rP  rc  >  s&     DDqN1771:?$CDs   !1	1rW  T)r  )rb  rF  rh  rl  r[  r  r   r  rS  r  r<  r@  r   rZ  r  ro  rZ  )rs  r	  rX  rS  	dims_listrM  rF  s   `     @r:  r   r   (  s*   D
{J)AGG*<JJ)-u}}Q%C5==3CC66D

!
!$
,CS))C6sDqyD	Q$$, J4&Q  }}Q DDDDD
4yA~}}Q
4yA~}}Q%%T
Iy$/IAqM Hr<  split_sizesc                   ^ ^^ [        [        T5      5       H!  n[        R                  " TU   S:  S 5        M#     [        R                  " [
        [        R                  " T5      T R                  T   :H  UU U4S j5        / nT R                  5       nT He  n[        T R                  5      nXgT'   UR                  T R                  UT R                  5       U5      5        UT R                  5       T   U-  -   nMg     U$ )Nr   c                      g)NzCsplit_with_sizes expects split_sizes have only non-negative entriesrS  rS  r<  r:  rU  "split_with_sizes.<locals>.<lambda>S  s    Yr<  c                  V   > S[         R                  " T5       STR                  T     3$ )NzSplit sizes add up to z but got the tensor's size of )rR  r   r[  )r	  r  rg  s   r:  rU  rj  X  s,    (k)B(CCabfblblmpbqarsr<  )rm  rZ  rc  rn  rN  ro  rR  r   r[  rS  ro  r  r   rM  )r  rg  r	  rM  splitsr  
split_sizer  s   ```     r:  r   r   J  s     3{#$NaY	
 %
 
[!TZZ_4s F  "F!
$	## 	dooiGH$++-,z99 " Mr<  indices_or_sectionsc                    [         R                  " U R                  U5      nU R                  S:X  a  Sn[        U5      e[	        U[
        5      (       al  UR                  R                  S:w  a  SUR                   3n[        U5      eUR                  [        R                  :w  a  SUR                   3n[        U5      e[	        U[        5      (       d%  [	        U[
        5      (       a  UR                  S:X  a  [	        U[        5      (       a  UOUR                  5       nUS::  a  SU 3n[        U5      eU R                  U   n[        R                   " Xe-  5      nXe-  n/ n	[#        U5       H   n
X:  a  US-   OUnU	R%                  U5        M"     ['        [(        R+                  X	US95      $ Un[	        U[
        5      (       a;  UR                  S:w  a  S	UR                   S
3n[        U5      eUR-                  5       nS/[/        U5      -   U R                  U   /-   n[#        [1        U5      S-
  5       Vs/ s H  oUS-      X   -
  PM     n	n['        [(        R+                  X	US95      $ s  snf )Nr   zXtensor_split: received a rank zero tensor, but expected a tensor of rank one or greater!r  z\tensor_split: if indices_or_sections is a tensor it must be on the CPU, but received one on zgtensor_split: if indices_or_sections is a tensor it must have long dtype,  but received one with dtype zAtensor_split: number of sections must be greater than 0, but was rW  r	  zntensor_split: non-scalar indices_or_sections tensors must have only one dimension, but received a tensor with r  )r  r  rS  ro  r@  r'   r9  r7  r  rc  longr   r!   r   r[  r9  rJ   rm  r  rh  r  r   tolistro  rZ  )rs  rn  r	  _dimr  sectionsr  min_split_sizenum_splits_one_extrarg  	split_idxrm  indicesrM  s                 r:  r  r  j  s|   
 !!!&&#.Dvv{ho %z22%%**e3'':'A'A&BD  S/!$$

200C0I0I/JL  S/! %w//&
338K8P8PTU8U -v66  $))+ 	 q=UV^U_`CS/!774=H$78'2xI 4 "# 
 z* ) T**1t*DEE &):66"''1,22E2J2J1K;X  !o%)002G#W%7<A#g,QRBR<ST<Sqq1u~
2<STT**1t*DEE Us   ;I0c                   ^ ^^^ [         R                  " T R                  S:  U 4S j5        T R                  S:X  a  SOSm[        T[        5      (       aK  Tm[         R                  " TS:g  =(       a    T R
                  T   T-  S:H  U UU4S j5        [        T TT5      $ [         R                  " [        T[        [        45      U4S j5        Tn[        T UT5      $ )NrW  c                  :   > S[        T R                  5      -   S-   $ )NzPtorch.hsplit requires a tensor with at least 1 dimension, but got a tensor with  dimensions!r  rS  r  s   r:  rU  hsplit.<locals>.<lambda>      ^!&&kr<  r   c                  |   > S[        T5      -   S-   [        T R                  T   5      -   S-   [        T5      -   S-   $ )Nz0torch.hsplit attempted to split along dimension z , but the size of the dimension $ is not divisible by the split_size r  rx  )rs  r	  rm  s   r:  rU  r}    sS    Bc(45 aggcl#$ 9	9
 j/" r<  c                      > S[        T 5       3$ )Nzhsplit(): received an invalid combination of arguments. Expected indices_or_sections to be of type int, list of ints or tuple of ints but got type r6  rn  s   r:  rU  r}         !4568r<  
rc  rn  rS  r@  r   r[  r  _check_typero  rh  )rs  rn  rg  r	  rm  s   `` @@r:  r   r     s     
LL	!	
 vv{!C%w//(
1_?
!:a!?	
 Az3//	&u6	
 &K;,,r<  c                   ^ ^^ [         R                  " T R                  S:  U 4S j5        [        T[        5      (       aJ  Tm[         R                  " TS:g  =(       a    T R
                  S   T-  S:H  U U4S j5        [        T TS5      $ [         R                  " [        T[        [        45      U4S j5        Tn[        T US5      $ )NrG  c                  :   > S[        T R                  5      -   S-   $ )NzPtorch.vsplit requires a tensor with at least 2 dimension, but got a tensor with r{  r|  r  s   r:  rU  vsplit.<locals>.<lambda>  r~  r<  r   c                  0   > ST R                   S    ST S3$ )NzQtorch.vsplit attempted to split along dimension 0, but the size of the dimension r   r  r  rK  )rs  rm  s   r:  rU  r    s%    3771:,6,r<  c                      > S[        T 5       3$ )Nzvsplit(): received an invalid combination of arguments. Expected indices_or_sections to be of type int, list of ints or tuple of ints but got type r6  r  s   r:  rU  r    r  r<  r  )rs  rn  rg  rm  s   `` @r:  r  r    s     
LL	!	
 %w//(
1_=j!8A!=	
 Az1--	&u6	
 &K;**r<  r  c                    ^ U R                  5       m[        R                  " TS;   U4S j5        TS:X  a  [        R                  " X5      $ [        R                  " X5      $ )N)rW  rG  c                     > ST  S3$ )Nz'diag(): Supports 1D or 2D tensors. Got DrS  r  s   r:  rU  diag.<locals>.<lambda>  s    "I$q Qr<  rW  )r	  rc  rn  r   r   )r  r  rS  s     @r:  r   r     sQ     88:D	LLQ qy--""400r<  r  dim2c                 `  ^^ SSK JnJn  [        R                  " U 5      nUR                  X#U5      m[        R                  " TR                  TR                  :H  =(       a5    U" U" S [        TR                  TR                  5       5       6 5      (       + UU4S j5        [        TT5        U$ )Nr   )rF  r~  c              3   .   #    U  H  u  pX:g  v   M     g 7frK  rS  )rN  d1d2s      r:  rP  #diagonal_scatter.<locals>.<genexpr>(  s     G,F&"RX,Fr  c                  <   > STR                    ST R                    3$ )NzCexpected src to have a size equal to the diagonal of the input.Got z for a diagonal of shape rK  )r   r  s   r:  rU  "diagonal_scatter.<locals>.<lambda>*  s"     yyk24::,@r<  )rb  rF  r~  r  clone_preserve_stridesr   rc  rn  rS  r  r[  r   )	r  r  r  r  r  rF  r~  r  r   s	    `      @r:  r   r     s     M

&
&u
-C<<d+D	LL		SXX 	
GC

CII,FGH
 
	@ D#Jr<  c                   ^^ U R                  5       n[        R                  " TUS9m[        R                  " TUS9m[        R                  " TT:g  UU4S j5        U R                  5       nUS:  aT  [        [        U R                  5       T   U R                  5       T   U-
  5      S5      nXQU R                  5       T   -  -  nOS[        [        U R                  5       T   U-   U R                  5       T   5      S5      nXQU R                  5       T   -  -  n[        U R                  5       5       VVs/ s H  u  pxUTT4;  d  M  UPM     n	nnU	R                  U5        [        U R                  5       5       VVs/ s H  u  pxUTT4;  d  M  UPM     n
nnU
R                  U R                  5       T   U R                  5       T   -   5        U R                  XUS9nU$ s  snnf s  snnf )z,
Reference implementation of torch.diagonal
)ra  rankc                     > ST  ST 3$ Nz(diagonal dimensions cannot be identical rJ  rS  r  r  s   r:  rU  diagonal.<locals>.<lambda>@       HbQUPVWr<  r   )rQ  rM  rS  )r	  r  r  rc  rn  rS  r   r   rQ  rM  rl  r  r   )r  r  r  r  num_dimsrS  	diag_sizerM  rC  rV  r  r  s     ``        r:  r   r   1  s    xxzH!!d:D!!d:D	LLW ((*N {GDIIK$5tyy{47H67QRTUV	4;;=#666GDIIK$5$>		D@QRTUV	4;;=#666$TYY[1K141QtTl5JQ1EK	LL&t{{}5O5TQ4,9Nq5GONN4;;=&t)<<=__%_WFM L Ps   5G G =G&G&c                 *  ^^ U R                   S-   n[        R                  " UTS9m[        R                  " UTS9mTT:  a  TTsmmU* n[        R                  " TT:g  UU4S j5        U R                  S5      nUS:w  a  [        U R                  5      n[        R                  " U5      US'   [        R                  " X`R                  U R                  SS9nUS:  a  Xp4OX4n[        R                  " USS9n U[        R                  " U5      -  nU R                  T5      R                  ST5      n [        R                   " XPR                  [        R"                  S	9n	[        R                   " XU-   U R                  [        R"                  S	9n
XR                  S5      :H  n[%        ['        U R                  5      5       Vs/ s H  oTT4;   a  UOSPM     nnUR)                  U5      n[        R*                  " X5      R-                  5       $ s  snf )
z.
Reference implementation of torch.diag_embed
rW  )r  ra  c                     > ST  ST 3$ r  rS  r  s   r:  rU  diag_embed.<locals>.<lambda>o  r  r<  r]  r   Fr  r9  r  rp  r9  r  )rS  r  r  rc  rn  rQ  ro  r[  rR  r2   r+  r  r9  r   r  r   r  rs  rm  rZ  r   mask_tensorr   )r   r  r  r  r  r  t_shapezpaira_rangeb_rangecondrM  
cond_shapes     ``          r:  r   r   X  s    66A:D!!t6D!!t6D d{4
d	LLW
 vvbzH{qww-ll6*KKwwqxxuU!v!IId#HLL(( 	
D!!"d+A ll8HHEKKHGll6!!((%++G
 ''++D@Ec!''l@ST@S1D$</(Q6@SJT<<
#D T%0022 Us   Hc                   ^^
^ U  Vs/ s H*  oR                  5       S::  a  UR                  SS5      OUPM,     nn[        R                  " S U 5       5      nUS   R                  m
/ nSn[        U5       H  u  mm[        R                  " TR                  5       S:H  UU4S j5        [        R                  " TR                  T
:H  U
UU4S j5        TR                  u  pg[        R                  " Xe4T
TR                  S9n[        R                  " XcU-
  U-
  4T
TR                  S9n	U[        R                  " UTU	4SS	9/-  nXW-  nM     [        R                  " USS	9$ s  snf )
z.
Reference implementation of torch.block_diag
rW  r]  c              3   >   #    U  H  oR                   S    v   M     g7fr~  rK  )rN  r  s     r:  rP  '_block_diag_iterable.<locals>.<genexpr>  s     BzVazs   r   rG  c                  2   > ST  STR                  5        S3$ )Nz5Input tensors must have 2 or fewer dimensions. Input z has r  rp  )rM  r  s   r:  rU  &_block_diag_iterable.<locals>.<lambda>  s      CuVZZ\N+7r<  c                  0   > ST  ST STR                    S3$ )NzCInput tensors must all be on the same device. Input 0 is on device z and input z is on device r  r8  )r9  rM  r  s   r:  rU  r    s&     $$*8;qcVWYr<  r  rp  )r	  r
  rR  r   r9  rl  rc  rn  r[  r+  r  r   )r  r  
tensors_2dncolsr  	col_startrowcolr  rightr9  rM  s    `        @@r:  _block_diag_iterabler    sL    KRJQjjla/ArV;'   LLBzBBE]!!FFIz*	6JJLA7	

 	MMV#Y	

 <<{{C+F&,,O)#c)*6
 	599dFE2:;;	# +& 99V##;s   1E"c                      [        U 5      $ )z
This is used as an input to PythonRefInfo. `torch.block_diag`
expects arguments splatted, but `aten.block_diag` expects only
one argument that is a list of Tensors.
)r  r  s    r:  r   r     s      ((r<  rt  c                    U R                   S:  a  [        SU R                    S35      e[        U[        5      (       a>  US:X  d  U R                  S   U-  S:w  a"  [        SSU R                  S    SU S	3-   5      e[        XS5      $ )
Nr  zPtorch.dsplit requires a tensor with at least 3 dimension, but got a tensor with r{  r   rG  z3torch.dsplit attempted to split along dimension 2, zbut the size of the dimension r  r  )rS  rj  r@  r   r[  r  )rs  rt  s     r:  r   r     s    vvz^_`_e_e^ffrs
 	
 (G$$(a-1771:;PTU;UA.qwwqzl:^_g^hhijk
 	
 Q''r<  c                     U R                   S:  a  [        SU R                    S35      e[        R                  " U SU R                   S:  a  S5      $ S5      $ )NrG  z7t() expects a tensor with <= 2 dimensions, but self is r  r   rW  )rS  rj  rc  r  r  s    r:  r   r     sS     	vvzEaffXQO
 	
 ??1aaffqj88a88r<  c                 l    [         R                  " U R                  S;   S 5        U R                  5       $ )N)r   rG  c                      g)NzcThe use of `x.T` on tensors of dimension other than 0 or 2 to reverse their shape is not supported.rS  rS  r<  r:  rU  T.<locals>.<lambda>  s    7r<  )rc  rn  rS  r   r  s    r:  r   r     s,    	LL	&	
 335Lr<  c                 .    [         R                  " U 5      $ rK  )r  r  r  s    r:  r   r     r  r<  r  c                 *   [         R                  " U R                  X45      u  p4U R                  S::  d  X:X  a  [        R                  R                  U 5      $ [        [        U R                  5      5      nXEU'   X5U'   [        R                  " X5      $ r0  )
r  r<  rS  r  r   defaultro  rm  rc  r   )rs  r  r  _dim0_dim1r  s         r:  r  r    sq    **166D<@LEvv{dlzz!!!$$aff&L==))r<  c                 t    [        U R                  U R                  5       XU5      u  pEU R                  XE5      $ rK  )r  r[  rM  r   )r  r  rQ  r  r[  r  s         r:  r  r    s4     .

DKKM9DNE ??5**r<  c                 \    U R                  XU5      R                  [        R                  S9$ r  )r  r   rc  r`  )r  r  rQ  r  s       r:  r  r    s0     ;;y-33-- 4  r<  c                   UR                   n[        R                  " Xc5      nUS:X  a  U " UR                  S5      SXES9$ UR                  US-   5      n[        R
                  " UR                  U   UR                  S9nUR                  S5      U:*  n[        Xc-
  S-
  5       H  n	UR                  S5      nM     [        R                  " XU5      n
U " XXES9$ )Nr   )r	  r  r  rW  r8  r]  )
rS  r  r  r  rc  r  r[  r9  rm  r   )r  initrs  r	  r  r  rS  rgr  r  masked_as              r:  _cumsumprod_commonr    s     66D

 
 
+CqyAKKN@@	C!GA	aggcl188	4B<<?b D4:>"~~b! #{{4D)H88r<  c          	      "    [        [        SXX#S9$ )Nr   r  r  rs  r	  r  r  )r  r   rs  r	  r  r  s       r:  r   r   /  s     3Q!ESSr<  c          	      "    [        [        SXX#S9$ )NrW  r  )r  r   r  s       r:  r   r   :  s     4a1UTTr<  c                 x    U R                   S-   n[        R                  " X!5      n[        R                  " X4US9$ )NrW  r  )rS  r  r  r  expand_dims)rs  r	  rS  s      r:  r  r  F  s6     66A:D

 
 
+CQT22r<  c                 $   SSK JnJn  [        R                  " [        [        [        [           -  U5      SS9n[        R                  R                  R                  R                  (       d  U" U U5      (       a  U" X5      $ [        U /UQ7SS06$ )Nr   )_view_has_unbacked_input_view_unbacked_metaFrw  r  )torch._subclasses.fake_implsr  r  r  r  r   r%   rh  rc  rd  re  rf  rg  r  )rs  r[  r  r  shape_tuples        r:  r
  r
  S  s     22Yy))51EK xx$$::>V	? ? #122<E<e<<r<  c                 @    U R                  UR                  5       5      $ rK  )r
  rQ  r  s     r:  r  r  i  s    99UZZ\""r<  c                     [        U S5      $ )N)r]  )r   r  s    r:  r   r   n  s    1er<  rx  c                   ^ ^ [         R                  " T R                  TR                  :H  U U4S j5        [         R                  " [        R                  " TR
                  5      U4S j5        Uc6  [         R                  " T R                  S5      STR                  S5      5      $ [        T R                  5      nTR                  U5      X2'   [        R                  " UTR                  5       5      n[        TU5      n[        TR                  5      nT R                  U5      Xb'   [        R                  " UT R                  5       5      n[        T U5      nUR                  U5      nXX-  n[         R                  " XrU5      $ )Nc                  >   > ST R                    STR                    S3$ )Nz]torch.take_along_dim(): input and indices should have the same number of dimensions, but got z dimensions for input, and z dimensions for indicesr  )rs  rx  s   r:  rU   take_along_dim.<locals>.<lambda>z  s%    --.VVH4O||n35r<  c                  $   > ST R                    S3$ )Nz?torch.take_along_dim(): dtype of indices should be int but got z insteadr  )rx  s   r:  rU  r    s    M}}oX'r<  r]  r   )rc  rn  rS  r  r  r  gatherr
  ro  r[  rQ  infer_size_shapesr   )	rs  rx  r	  
self_sizesbroadcast_shapeindices_broadcastindices_sizesself_broadcastr  s	   ``       r:  r  r  t  s'    
LL	',,	
 
LLw}}-	
 {||AFF2J7<<+;<<!'']
!,,s+
11*gllnM(/BW]]+VVC[11-J%a9 "&&s+-8||N1BCCr<  r  r%  r9  r  r&  r  r  c           
        ^ [         R                  " T[         R                  :g  S 5        [        R                  " U5      nT[         R
                  :X  a  [        R                  " U5      nOmT[         R                  :X  a  [        R                  " U5      nOB[         R                  " T[         R                  :H  U4S j5        [        R                  " U5      n[         R                  " UUU UUUUS9$ )Nc                      g)Nz8torch.empty: the Preserve memory format is not supportedrS  rS  r<  r:  rU  empty.<locals>.<lambda>  s    Jr<  c                     > ST  S3$ )Nz/torch.empty: received an unknown memory format r  rS  r  s   r:  rU  r    s    Em_TUVr<  r  r%  r9  r&  r  )rc  rn  r)  r  r  r`  r  channels_last_3d!make_channels_last_3d_strides_forchannels_last!make_channels_last_2d_strides_forr  )r  r%  r9  r  r&  r  r[  r  s        `  r:  r  r    s     
LL...J
 ,,U3E///33E:	%00	099%@U000V	

 99%@# r<  c                 2    [         R                  " U UUUUS9$ )Nr  )r  r  )r[  physical_layoutr  r%  r9  r  r&  s          r:  r  r    s&     # r<  r  r%  r9  r&  c                    Uc  U R                   OUnUc  U R                  OUnUc  U R                  OUn[        R                  " UUUUUS9$ )Nr  r9  r&  r%  )r  r%  r9  rc  r  )rs  rQ  r  r%  r9  r&  s         r:  r!  r!    sQ     }AGG%EQXXVFQXXVF;; r<  c          	          Uc  U R                   OUnUc  U R                  OUnUc  U R                  OUn[        R                  " UUUUUUS9$ )z<
Reference implementation of torch.Tensor.new_empty_strided
r  )r  r%  r9  rc  r  )rs  rQ  rM  r  r%  r9  r&  s          r:  r"  r"    sV      }AGG%EQXXVFQXXVF r<  r  c           
          [         R                  " U5      nU c  [        R                  " 5       n [        R                  " UU [        R
                  :X  a  SOSU UUUUS9$ NFr   r  r  r  rc  r  r  r  r  r%  r9  r&  r  rQ  s         r:  r+  r+    sZ     ++D1D}'')::%**$!# r<  c          
          Uc  U R                   OUnUc  U R                  OUnUc  U R                  OUn[        R                  " UU=(       d    U R                   [        R
                  :X  a  SOSUUUUUS9$ r  r  r%  r9  rc  r  r  rs  rQ  r  r%  r9  r&  r  s          r:  r%  r%  )  sm     }AGG%EQXXVFQXXVF::"177uzz1q# r<  c           
          [         R                  " U5      nU c  [        R                  " 5       n [        R                  " UU [        R
                  :X  a  SOSU UUUUS9$ NTrW  r  r  r  s         r:  r&  r&  D  sZ     ++D1D}'')::## r<  c          
          Uc  U R                   OUnUc  U R                  OUnUc  U R                  OUn[        R                  " UU=(       d    U R                   [        R
                  :X  a  SOSUUUUUS9$ r  r  r  s          r:  r$  r$  ^  sm     }AGG%EQXXVFQXXVF::!!''ejj0a# r<  
fill_valuec          	          Uc  U R                   OUnUc  U R                  OUnUc  U R                  OUn[        R                  " UUUUUUS9$ )Nr  )r  r%  r9  rc  r  )rs  rQ  r  r  r%  r9  r&  s          r:  r#  r#  y  sT     }AGG%EQXXVFQXXVF:: r<  c                     U$ rK  rS  )rQ  r  r  s      r:  	empty_outr    s	     Jr<  )r  r9  r%  r&  r  r  c          
      P   Uc  U R                   OUnUc  U R                  OUnUc  U R                  OUnU[        R                  :w  a$  [        R
                  " U R                  UUUUUUS9$ [        R                  " U 5      u  px[        R                  " U R                  UUUUUUS9$ )Nr  r  )
r  r%  r9  rc  r)  r  r[  r  3compute_elementwise_output_logical_to_physical_permr  )	rs  r  r9  r%  r&  r  r  logical_to_physical_permr  s	            r:  r  r    s     }AGG%EQXXVFQXXVF---{{GG'!'
 	
 	AA!D   	 # r<  r  c          	      6  ^ ^^ [         R                  " U5        [         R                  " U5        [        R                  " [         R
                  " U5      5      n[        T [        5      (       a  [        S5      e[        T[        5      (       a  [        S5      e[        T[        5      (       a  [        S5      eTc  T mSm [        R                  " TS:g  S 5        TS:  a  [        R                  " TT :  S 5        O!TS:  a  [        R                  " TT :*  S 5        S n[        R                  " U" T 5      =(       a    U" T5      UU 4S	 j5        [        R                  " U" T5      U4S
 j5        T TT4n	[        R                  " S U	 5       5      n
Uc,  U
(       a  [        R                  O[        R                  " 5       n[         R                  " U5      nU(       d  U
(       a!  [        T 5      n[        T5      n[        T5      nU[        R                  :X  d  U
(       a,  [!        WS:  5      [!        US:  5      -
  nWW-
  U-   U-
  U-  nO["        R$                  " TT -
  T-  5      nU(       a  [&        R(                  " UWWUUUS9$ [&        R(                  " USS[        R                  USS9nU
(       a  [        R*                  O[         R,                  " X55      n[/        UU5      nT TU-  -   n[/        UU5      nU(       a  UR1                  S5        U$ )Nz%arange does not support complex startz#arange does not support complex endz$arange does not support complex stepr   c                      g)Nzstep must be nonzerorS  rS  r<  r:  rU  arange.<locals>.<lambda>  s    $:r<  c                      gNz7upper bound and lower bound inconsistent with step signrS  rS  r<  r:  rU  r        Mr<  c                      gr
  rS  rS  r<  r:  rU  r    r  r<  c                 f    [        U [        5      (       + =(       d    [        R                  " U 5      $ rK  )r@  r   r9  rS   rT  s    r:  	is_finitearange.<locals>.is_finite  s!    a!566J$--:JJr<  c                     > ST ST  3$ )Nzunsupported range: r$  rS  )r  r  s   r:  rU  r    s    %eWD6r<  c                     > ST  3$ )Nzstep must be finite but got rS  r  s   r:  rU  r    s    .tf5r<  c              3   B   #    U  H  n[        U[        5      v   M     g 7frK  rL  rN  r  s     r:  rP  arange.<locals>.<genexpr>  s     IDS
3 8 8D   )r  r  r  r9  r  rW  FT)r  check_layoutcheck_pin_memoryrc  r9  device_or_defaultr@  r  r  rn  rR  r   rs  r  r  r   r  r9  r:   r  iotarq  get_acc_typer+   requires_grad_)r  r  r  r  r%  r9  r&  r  r  r  integer_args
is_integerxstartxendxsteprl   r.  r;  r  r  s   ```                 r:  r  r    s    
v	:&\\%11&9:F%!!DEE#wBCC$  CDD {	LL:;ax5LM	
 
5LM	

K 
LL%+Ys^6 
LL$5
 3D<<IDIIL}+1H1H1J''.J\s| |519oUQY/-%'#-%7C%K4/0zz'
 	
 JJkkE #

(:(:5(I  $E+<=ETE\!F$VU3Fd#Mr<  )r  r  r\  c                 
   X/n[        U[        5      (       a  U R                  SU5      nOUR                  U5        [        U[        5      (       d  [        S[        U5       35      eUR                  5       S:  n[        R                  " XBS-
  U5      n[        R                  " XAU 5      nXQU -
  -  U-   n[        R                  " [        U6 6 nUR                  5       U:w  a  [        R                  " Xx5      n[!        X75      $ )NrS  z)weight must be Tensor at this point, got r  rW  )r@  r!   r#  r  rh  r  r7  r2   rc  r   r  "compute_elementwise_output_stridesr  rM  r  rZ  rD  )	r  r  r\  r  r  coeffbaserC  rM  s	            r:  rZ   rZ   /  s     \F&&!!F+fff%%HfWXX ::<3DKKqj&1E;;t%(DEk"T)F557G7PQF}}& ##F3'77r<  )r  r9  r%  r&  r  stepsc          
        ^ ^^^^ [        T [        5      (       a>  [        R                  " T R	                  5       S:H  S 5        [        T [        U5      5      m [        T[        5      (       a>  [        R                  " TR	                  5       S:H  S 5        [        T[        U5      5      m[        R                  " S T TT4 5       5      (       a`  [        R                  " [        R                  " 5       5      mTc  TmOO[        R                  " [        R                  " T5      UU4S j5        OT=(       d    [        R                  " 5       m[        T[        R                  5      (       d  [        S[        T5       35      e[        R                   " [        T["        5      UU U4S j5        [        T["        5      (       d  [        S[        T5       35      e[        R                  " TS:  S	 5        UUUUS
.nTS:X  a  [        R$                  " SST0UD6$ TS:X  a~  [        T [        5      (       aN  [        R&                  " T44ST0UD6n	[        R(                  R*                  R,                  R/                  U	T 5      $ [        R$                  " T4T 4ST0UD6$ [        R0                  " ST40 UD6n
[        R2                  " T5      (       d  [        R4                  " T5      (       a  [        R6                  OTn[        R8                  " U
[:        R<                  U5      u  p[?        [
        US9nTT -
  TS-
  -  n[        R@                  " U
TS-  :  T X" U
5      -  -   TX" TS-
  U
-
  5      -  -
  5      n[        UT5      $ )Nr   c                      gNz:linspace only supports 0-dimensional start and end tensorsrS  rS  r<  r:  rU  linspace.<locals>.<lambda>_  r  r<  c                      gr(  rS  rS  r<  r:  rU  r)  e  r  r<  c              3   B   #    U  H  n[        U[        5      v   M     g 7frK  r@  r  r  s     r:  rP  linspace.<locals>.<genexpr>i       L8KJsG,,8Kr  c                     > ST  ST 3$ )Nzlinspace(): inferred dtype z& can't be safely cast to passed dtype rS  )default_complex_dtyper  s   r:  rU  r)  r  s    56K5LLrsxryzr<  dtype must be torch.dtype, got c                     > S[        T5      R                   S[        T 5      R                   S[        T5      R                   S3$ )Nz4received an invalid combination of arguments - got (rJ  rK  )r7  r  )r  r  r%  s   r:  rU  r)  |  sB     u+r$s),,-RU0D0D/EQHr<  zsteps must be IntLike, got c                      g)Nz$number of steps must be non-negativerS  rS  r<  r:  rU  r)    s    %Kr<  )r%  r9  r&  r  r  rW  r  rG  )r  r   )!r@  r(   rc  rn  r	  r+   r1   rR  r   r  rU  r  r  r  r  r7  r  r   r  r  opsr  r$  r  r  r  r  rs  rU  r$   rt  r   r   )r  r  r%  r  r9  r%  r&  r  factory_kwargsempty_tensorr  	dtype_redr  r  cast_rgr  r  r0  s   ````             @r:  r  r  O  s     %((IIK1P	
 (/Fv/NO#~&&GGINP	
 &c+B6+JK||LU8KLLL % A A##%!
 =)ELL&&u-z
 2002eU[[))>tE{mLMM 
5'"	H
 eW%%:4;-HII	LL!KL  &	N zzzAA.AAze^,, ;;xOuOOL99>>&&..|UCC::uhMUMnMM 
a	1.	1B
 ""5))U-C-CE-J-J 	 
 !11
&++Y -5FGG %KEAI&D
++
UQYwr{""dWeai2-...C
 #3..r<  r$  c                   Uc  [         R                  " 5       n[        R                  R	                  U5      (       a  [        U [        5      (       a  [        U 5      n OI[        U [        5      (       a4  [         R                  " U R                  5       S:H  S 5        [        X5      n [        U[        5      (       a  [        U5      nOI[        U[        5      (       a4  [         R                  " UR                  5       S:H  S 5        [        X5      n[        R                  " S XU4 5       5      (       a.  [        R                  " [         R                  " 5       5      n	U	nS n
O[         R                  n
[        U[         5      (       a  [#        S[%        U5       35      eUS:  a  [&        e[         R(                  " U UUU
UUUUS9n[        [         R*                  " X;5      U5      $ )Nr   c                      gNz:logspace only supports 0-dimensional start and end tensorsrS  rS  r<  r:  rU  logspace.<locals>.<lambda>      Tr<  c                      gr;  rS  rS  r<  r:  rU  r<    r=  r<  c              3   B   #    U  H  n[        U[        5      v   M     g 7frK  r,  r  s     r:  rP  logspace.<locals>.<genexpr>  r.  r  zbase must not be complex, got r  )rc  r  r  r  r  r@  r   r   r(   rn  r	  r+   rR  r   rU  r  r  r  r7  r  r  r   )r  r  r%  r$  r  r9  r%  r&  r  r0  _dtyperets               r:  r   r     s    }'') {{##E**eY''ENE~..LL		q T ,E9Ec9%%#,C^,,LL	QT *#5C||LU8KLLL % A A##%!
 &$  =d4j\JKKax!!
..#	C #599T#7??r<  indexingc                     g rK  rS  )r  rC  s     r:  r   r     s     	r<  c                     g rK  rS  )rC  r  s     r:  r   r     s    r<  c                 v  ^ ^ [        US   [        [        45      (       a4  [        U5      S:w  a  [	        S[        U5       35      e[        US   5      n[
        R                  " [        R                  " S U 5       5      S 5        [
        R                  " [        U5      S:  S 5        [        [        U5      S-
  5       Ho  n[
        R                  " X   R                  XS-      R                  :H  S 5        [
        R                  " X   R                  XS-      R                  :H  S 5        Mq     S	nT S
:X  a&  [        U5      S:  nU(       a  US   US   /USS  Q7nO[
        R                  " T S:H  U 4S j5        / nU H  m[        T[        5      (       d  [	        S[        T5       35      e[
        R                  " TR                  S:H  =(       d    TR                  S:H  U4S j5        UR                  TR!                  5       5        M     / n[#        U5       Hz  u  nm[        T[        5      (       d  [	        S[        T5       35      eTR                  S:X  a  TR%                  S5      mUR                  [&        R(                  " TXB45      5        M|     U(       a  US   US   sUS'   US'   U$ )Nr   rW  z*Expected exactly 1 tensor list/tuple, got c              3   B   #    U  H  n[        U[        5      v   M     g 7frK  r@  r'   r  s     r:  rP  meshgrid.<locals>.<genexpr>  s     @1Z:..r  c                      g)Nz)meshgrid expects its inputs to be tensorsrS  rS  r<  r:  rU  meshgrid.<locals>.<lambda>  r  r<  c                      g)Nz'meshgrid expects a non-empty TensorListrS  rS  r<  r:  rU  rK  	  s    +Tr<  c                      g)Nz3meshgrid expects all tensors to have the same dtyperS  rS  r<  r:  rU  rK    s    Ir<  c                      g)Nz4meshgrid expects all tensors to have the same devicerS  rS  r<  r:  rU  rK    s    Jr<  FxyrG  ijc                     > ST  3$ )NzDtorch.meshgrid: indexing must be one of "xy" or "ij", but received: rS  )rC  s   r:  rU  rK    s    !!)
,r<  zexpected TensorLike, got c                     > ST  3$ )NzEtorch.meshgrid: Expected 0D or 1D tensor in the tensor list but got: rS  )r   s   r:  rU  rK  )  s    [\][^_r<  r@  )r@  ro  rh  rZ  r  rc  rn  rR  r   rm  r  r9  r'   r7  rS  r  r  rl  r
  r  rV  )rC  r  rM  swap_first_and_second_tensorsresult_shapegridsr   s   `     @r:  r   r     s^    '!*tUm,,w<1 <S\NK  
#	LL@@@;
 
LLW!#TU3w<!#$JA 4 44I	
 	JQ!6!66J	
 % %*!4(+G(9%(qz71:<<G	
 !L!Z(( #<T!WI!FGGFFaK&166Q;_	
 	AGGI&  #%E'"1!Z(( #<T!WI!FGG66Q;tAU++A|TBC # %"1XuQxa%(Lr<  sourcedestinationc                 l  ^^ [        T5      [        L a  T4m[        T5      [        L a  T4m[        R                  " [	        T5      [	        T5      :H  UU4S j5        U R
                  n[        [        R                  " UTS95      n[        [        R                  " UTS95      n[        U5      n[        U5      n[        R                  " [	        U5      [	        U5      :H  U4S j5        [        R                  " [	        U5      [	        U5      :H  U4S j5        [        [        XT5      5      n/ n	Sn
[        U5       HQ  nUR                  U5      nUb  U	R                  U5        M*  X;   a  U
S-  n
X;   a  M  U	R                  U
5        U
S-  n
MS     [        R                  " U [        U	5      5      nU$ )z+
Reference implementation of torch.movedim
c                  :   > S[        T5       S[        T 5       S3$ )Nz5movedim: Invalid source or destination dims: source (z> dims) should contain the same number of dims as destination (z dims)ro  )rW  rV  s   r:  rU  movedim.<locals>.<lambda>N  s)    V~ ''+K'8&9Ar<  )r  rx  c                  "   > S[        T 5       S3$ )Nz#movedim: repeated dim in `source` (rK  rZ  )rV  s   r:  rU  r[  _  s    5d6l^1Er<  c                  "   > S[        T 5       S3$ )Nz(movedim: repeated dim in `destination` (rK  rZ  )rW  s   r:  rU  r[  c  s    :4;L:MQOr<  r   rW  )r7  r  rc  rn  rZ  rS  rh  r  r<  setdictr  rm  rA  r  r   )r  rV  rW  r  ssdssssdssr  rX  sidirC  r  s    ``           r:  r   r   =  sh    F|sKC"n 
LLFs;''	
 ::D	u&&D&A	BB	u&&D+F	GB
b'C
b'C 
LLB3s8E 
LLB3s8O
 	S[AD	
BDkEE"I=KKN )a )KKO!GB  ]]5%+.FMr<  )r  r9  r%  r  r&  r  c                    [         R                  " U5        [         R                  " U5        [         R                  " U 5      n Uc  [        R
                  " 5       OUnUc  [        R                  " S5      OUn[        R                  " U UUUUS9$ )Nr  r  )	r  r  r  r  rc  r  r9  r  r  )r[  r  r  r9  r%  r  r&  s          r:  r  r  |  sz     
v	:&,,U3E).E##%EE$*NU\\% F# r<  valc                     [         R                  [         R                  [         R                  4 H+  nU [         R                  " U5      R
                  ::  d  M)  Us  $    [         R                  $ rK  )rc  rm  uint16r  iinfork  rs  )rg  possible_dtypes     r:  _strength_reduce_integerrl    sI     ;;ekkB%++n-111!! C ;;r<  nr  c          	        ^ ^ Tc  T m[         R                  " T S:  U 4S j5        [         R                  " TS:  U4S j5        [         R                  n[        T [        R
                  5      (       a4  [        T[        R
                  5      (       a  [        [        T T5      5      n[         R                  " T XtSS9n[         R                  " TXtSS9n	UR                  S5      U	:H  n
U[         R                  S4;   a4  U(       d-  U
R                  U=(       d    [         R                  " 5       5      $ [         R                  " SUUUUSS	9n[         R                  " XS5      $ )
z'
Reference implementation of torch.eye
Nr   c                     > ST  3$ )Nz%n must be greater or equal to 0, got rS  )rm  s   r:  rU  eye.<locals>.<lambda>      #H!Lr<  c                     > ST  3$ )Nz%m must be greater or equal to 0, got rS  )r  s   r:  rU  rp    rq  r<  Fr  r]  r@  r  )rc  rn  rs  r@  r  IntWithoutSymIntrl  rk  r  r  stridedr   r  r&  r   )rm  r  r  r%  r9  r&  r  range_dtyperange_nrange_mr  ones   ``          r:  r  r    s    	y	LLaLM	LLaLM++K!U++,,Au?U?U1V1V.s1ay9ll1KeTGll1KeTGR G+D%--&&zwwu9 7 7 9::jj!
 {{4a((r<  c          	          [         R                  " U5        [         R                  " U5        Ub  UO[         R                  " [	        U5      5      nUb  UO[
        R                  " S5      n[        U UUUUUS9n[
        R                  " Xq5      $ )Nr  r  )	r  r  r  rn  r7  rc  r9  r  rH   )r[  r  r  r%  r9  r&  r  es           r:  r  r    s~     
v	:&&EE,?,?Z@P,QE)Vu||E/BF#	A ::a$$r<  r  r%  r9  r&  r  r  c          
      L    [         R                  " U UUUUUUS9n[        X5      $ )Nr{  )rc  r  rH   )	rs  r  r  r%  r9  r&  r  r  rz  s	            r:  r  r    s6     		##	A r<  c                    [         R                  " U U=(       d    U R                  [         R                  :X  a  SOSUUUUUUS9$ )NFr   r{  rc  r  r  r  rs  r  r%  r9  r&  r  r  s          r:  r,  r,    sC     ??	"177uzz1q##	 	r<  c                    [         R                  " U U=(       d    U R                  [         R                  :X  a  SOSUUUUUUS9$ )NTrW  r{  r~  r  s          r:  r'  r'    sC     ??	!!''ejj0a##	 	r<  c           	          [         R                  " U5        [         R                  " U5      n[         R                  " U 5      n [         R                  " U5      n[
        R                  " USSU UUS9$ )Nr  r  )r   r   r  r9  r  )r  r  r  dtype_or_defaultr  r  rd   )r  r9  r%  r  r&  r[  r'  s          r:  r(  r(  1  se     
:&--e4F""5)E$$V,F<<# r<  c                   [         R                  " U5        [         R                  " U5        Ub  UO[         R                  " [	        U 5      5      nUb  UO[
        R                  " S5      n[        R                  " XUS9$ )Nr  r  )	r  r  r  rn  r7  rc  r9  r  r)  )rs  r  r%  r9  r&  s        r:  r)  r)  L  sc     
v	:&&EE,?,?Q,HE)Vu||E/BFqf==r<  lowhighc          	         [         R                  " U 5        [        U[        5      (       d  [	        S[        U5       35      e[        U[        5      (       d  [	        S[        U5       35      e[        U5      n[        U5      n[        U[        R                  5      (       d  [	        S[        U5       35      e[         R                  " U5      n[        R                  " XX$XSS9$ )Nzlow must be Number, got zhigh must be Number, got r1  )r  r  r  r9  rM  )r  r&  r@  r!   r  r7  r   rc  r  canonicalize_devicer  _uniform_helper)r[  r  r  rM  r  r9  s         r:  r  r  `  s     
c6""7S	{CDDdF##8dEFF
C.CT?DeU[[))>tE{mLMM&&v.F  Tv r<  r  c                 *  ^^ [         R                  " U R                  5      m[        U[        5      (       a  [        U5      nOUR                  m[        R                  " TS:H  U4S j5        U R                  R
                  SSS[        R                  R                  5       S4;   =(       a    UR                  R
                  S:H  n[        R                  " U=(       d    UR                  U R                  :H  S 5        [         R                  " UR                  5      nU[        L a0  [        R                  " [         R                  " UT5      U4S	 j5        [        X R                  5      n[        R                  " XU 5      nUR!                  5       $ )
Nr   c                     > ST  S3$ )Nz@only supports a 0-dimensional value tensor, but got tensor with z
 dimensionrS  )
value_ndims   r:  rU  masked_fill.<locals>.<lambda>  s    VWaVbblmr<  cudaxpumpsr5  r  c                      g)Nz,Expected `value` to be on same device as `a`rS  rS  r<  r:  rU  r    s    Br<  c                     > ST  S3$ )Nzcould not convert to type z without overflowrS  )r  s   r:  rU  r    s    0=NOr<  )r  r   r  r@  r!   r7  rS  rc  rn  r9  _C_get_privateuse1_backend_namer  r    r+   r   r   )rs  r  r  
value_typeis_cpu_scalarr  r  r  s         @@r:  r   r   {  s.    %%agg.K%  %[
 ZZ
!Om	
 HHMMuehh&L&L&NPUVW +!!U* 	
 	5U\\QXX5B	
 ((5
W
 	''
K@O	
 $E773ED#A <<>r<  c                 V    [         R                  " XU5      nU R                  U5        U $ rK  )rc  r   copy_)rs  r  r  rt  s       r:  r   r     s&     	!5)AGGAJHr<  c                     [        SXX#S9  [        [        R                  " [        R                  " XX#US95      R                  5       5      $ )z,
Reference implementation of torch.allclose
ztorch.allcloser  )r  r  r  )r  r  rc  r   r   r   )rs  rt  r  r  r  s        r:  r-  r-    s@     +qDL		%--4iPQVVX r<  c                 R   [         R                  " XSS9  [         R                  " X5        U R                  UR                  :w  a  g[	        U R
                  UR
                  5       H  u  p#X#:w  d  M    g   U R                  5       S:X  a  g[        [        [        X5      5      5      $ )NFr  r   T)
r  r  check_same_dtyperS  r  r[  r  r   r   r   )rs  rt  rO  r  s       r:  r.  r.    s}    	A5A	1  	vvAGGQWW%6 &
 	wwyA~BqHr<  r  c                ~   US:X  a'  Ub'  [        U[        5      (       d  [        U5      S::  d  Uc  Sn[        U[        5      (       a  U/n[        U[        5      (       a@  Uc  [	        [        U R                  5      5      n[        R                  R                  XX#US9$ [        R                  R                  XX#US9$ )NfrorG  r  )r@  r   rZ  r  rh  rm  rS  rc  r  matrix_normr  )r  r  r	  r  r  s        r:  rc   rc     s     	
U
z#s';';s3x1}	
#se!S ;ejj)*C||''#e'LL||''#e'LLr<  c                    ^  [         R                  " T R                  S:H  U 4S j5        [         R                  " [         R                  " T S5      5      $ )NrG  c                  "   > ST R                    3$ )Nz+expected a matrix, but got tensor with dim r  r  s   r:  rU  trace.<locals>.<lambda>  s    =dii[Ir<  r   )rc  rn  rS  r   r   r  s   `r:  rw   rw     s;     
LL		QI 99UZZa())r<  c                 X   ^  S[         [        -  S[         [        -  S[         4U 4S jjnU$ )Nrs  rt  r{  c                    > T" X5      $ rK  rS  )rs  rt  base_ops     r:  rop_make_r_binary_op.<locals>.rop  s     q}r<  )r(   r"   )r  r  s   ` r:  _make_r_binary_opr    s3    J&J& 
 Jr<  r   c                 r   [         R                  " U R                  S:  S 5        U R                  SS  u  p#[         R                  " X0R
                  S9R                  S5      [         R                  " X R
                  S9R                  S5      -
  U:  n[        R                  " X@5      R                  5       $ )NrG  c                      g)Nz2triu: input tensor must have at least 2 dimensionsrS  rS  r<  r:  rU  triu.<locals>.<lambda>      Qr<  r  r8  r]  
rc  rn  rS  r[  r  r9  r  r  r  r   rs  r   hri  r  s        r:  r  r         
LL	!Q 7723<DAQxx(2226
,,q
*
4
4R
8	9	D T%0022r<  c                 r   [         R                  " U R                  S:  S 5        U R                  SS  u  p#[         R                  " X0R
                  S9R                  S5      [         R                  " X R
                  S9R                  S5      -
  U:*  n[        R                  " X@5      R                  5       $ )NrG  c                      g)Nz2tril: input tensor must have at least 2 dimensionsrS  rS  r<  r:  rU  tril.<locals>.<lambda>!  r  r<  r  r8  r]  r  r  s        r:  r  r    r  r<  r  r  c                    U S:X  d  US:X  a  gUS:  a  [        USU-   5      O[        X-   S:  5      n[        S[        XU-   5      5      n[        S[        X U-   5      5      nXC-
  S-   nX4-   U-  S-  nXV-
  n[        SX-  5      n	XyU4$ )Nr   r   r   r   rW  rG  )r   r  rk  )
r  r  r  m_first_row
m_last_row	n_row_alln_row_trapezoidtrapezoid_sizediff_rowrectangle_sizes
             r:  _get_tril_sizesr  3  s    
ax3!8*01*#c1v:&#clQ>N:OKQCv./JAs3f-.I .2O "./AQFN*HHN+N;66r<  c                    ^ ^^^ [         R                  " TS:  U4S j5        [         R                  " TS:  U4S j5        [         R                  " T[         R                  [         R                  4;   UU 4S j5        g )Nr   c                     > ST  3$ )Nzrow must be non-negative, got rS  )r  s   r:  rU  _trilu_checks.<locals>.<lambda>M      %CC5#Ir<  c                     > ST  3$ )Nzcol must be non-negative, got rS  )r  s   r:  rU  r  N  r  r<  c                     > ST ST  S3$ )Nrz  z" not implemented for ''rS  )r  r  s   r:  rU  r  Q  s    "TF25';r<  )rc  rn  r  rs  )r  r  r  r  r%  r&  s   ````  r:  _trilu_checksr  E  sO     
LLIJ	LLIJ	LL%++u{{++;r<  r  c                l   [        SXX4U5        [        XU5      u  pxn	[        SU* 5      n
[        [        R
                  XEUS9nU" SU[        R                  S9nU	S-
  n[        R                  " U* [        R                  " X-  SU-  -   5      -   5      n[        R                  " USU	-  S-
  U-   U-  S-  -
  5      n[        X-   U5      n[        X5      nU" SXS9nUU-  X-
  S-   U
-   -   nUU-  n[        R                  " [        R                  " UU45      [        R                  " UU45      45      $ )Nr  r   r%  r9  r&  r  r  rG  rW  )r  r  rk  r   rc  r  r  rJ   rs   r+   r   r   )r  r  r  r  r%  r9  r&  r  r  r  
row_offset	arange_kwxs1rt  	row_inds1	col_inds1xs2	row_inds2	col_inds2s                      r:  r  r  V  s7    .#E:F2A#F2S/NKQJVzI
 A~U]]
;CcAQBAEAGO!<<=IC1{?Q#6#Bi"ORU"UUVI'	(>FI'	9I A~
3Cs
c/!3j@AIc	I;;	Iy)	*EIIy)6L,MN r<  c                     U S:X  d  US:X  a  gUS:  a  [        SX-
  5      OUn[        S[        X* 5      U-  5      n[        XUS-
  5      u  pVnX-  XV-   -
  nX-
  n	XU4$ )Nr   r  rW  )rk  r   r  )
r  r  r  r  r  trapezoid_size_trilrectangle_size_trilr  	triu_sizer  s
             r:  _get_triu_sizesr    s    
ax3!8*01*#a&#K CW-34N 3B#FUVJ2W/a	0FGI/N;66r<  c                v   [        SXX4U5        [        XU5      u  pxn	[        SU5      n
[        [        R
                  XEUS9nU" SXS9nX-  nX-  nU" SU[        R                  S9nSU	-
  n[        R                  " U* [        R                  " UU-  SU-  -
  5      -
  5      n[        R                  " USU	-  S-
  U-
  U-  S-  -
  5      n[        UU5      n[        UU5      nU(       a  UX-  -   nUU
-   n[        R                  " [        R                  " UU45      [        R                  " UU45      45      $ )	Nr  r   r  r  g      rG  rW  r  )r  r  rk  r   rc  r  r  rJ   rs   r+   r   r   )r  r  r  r  r%  r9  r&  r  r  r  
col_offsetr  r  r  r  r  rt  r  r  s                      r:  r  r    s:    .#E:F2A#F2S/NKQJVzI
 A~
3C
I	I A~U]]
;C{AQBAEAGO!<<=ICAOa$7)$Cy#PTW"WWXI'	59I'	59I
!67	J&I;;	Iy)	*EIIy)6L,MN r<  )	out_int32r  
boundariesr  r  c                
  ^ [         R                  " TR                  5       S:H  U4S j5        [        U [         R                  5      (       a  U O[         R
                  " U 5      n U(       a  [         R                  O[         R                  nTR                  S   nUS:X  a  [         R                  " U 5      $ [         R                  " U R                  U R                  [         R                  S9nXe-   nXgU-
  S-  -   nTU   n	U(       a  X:  n
OX:  n
[         R                  " XUS-   5      nUS:  a  [         R                  " U [         R                  S9n[        [         R"                  " U5      5      n[%        U5       Hs  n[         R                  " X-  X5      nXg:  n[         R                  " XXv-
  S-  -   S5      nTU   n	U(       a  X:  n
OX:  n
[         R                  " U
) U-  US-   U5      nMu     UR'                  US9$ )NrW  c                  ,   > ST R                  5        S3$ )Nz2boundaries tensor must be 1 dimension but got dim(rK  rp  )r  s   r:  rU  bucketize.<locals>.<lambda>  s    DZ^^EUDVVWXr<  r]  r   r  rG  r  )rc  rn  r	  r@  rh  r  r  rs  r[  r,  r+  r9  r   r'  r  r  r9  r^   rm  r   )rs  r  r  r  	out_dtypen_boundariesr  r  midmid_valcond_midcond_updatenitersr  s    `            r:  r/  r/    s    
LLAX
 5<<((ell1oA(ekkI##B'Lq""
 KKDE

C ;1$
$CoG;<KKq1Eaooauzz:TYY|,-vA++h4c?C+K++kCKA3E+EqIC oG ";"<KK(k 937EJE  88)8$$r<  c                   ^ ^ Ub  [        S5      e[        R                  " [        R                  " T R
                  5      (       + =(       aQ    [        R                  " T R
                  5      (       + =(       a%    [        R                  " T R
                  5      (       + U 4S j5        [        R                  " TS:  U4S j5        UT[        R                  " [        R                  [        R                  " T 5      S-
  -  5      -  -   $ )N"generator is not supported in refsc                  "   > ST R                    3$ )NzwCauchy distribution is a continuous probability distribution.         dtype must be a floating point but you specified r  r  s   r:  rU  cauchy.<locals>.<lambda>       ::>**Gr<  r  c                     > ST  3$ )Nz-cauchy_ expects sigma > 0.0, but found sigma=rS  )sigmas   r:  rU  r    s    ?wGr<  r  )r  rc  rn  r  r  r  r  r  ru   r9  r:  	rand_like)r  medianr  	generators   ` ` r:  r  r    s     ABB	LL""4::.. 	3&&tzz22	3&&tzz22	G	 
LLG EEIIdgg1F1L&MNNNNr<  c                   ^ ^ Ub  [        S5      e[        R                  " [        R                  " T R
                  5      (       + =(       aQ    [        R                  " T R
                  5      (       + =(       a%    [        R                  " T R
                  5      (       + U 4S j5        [        R                  " TS:  U4S j5        [        R                  " T 5      n[        R                  " UR
                  5      R                  S-  nUSU-
  :  n[        R                  " XT* [        R                  " U5      5      nST-  U-  $ )Nr  c                  "   > ST R                    3$ )Nz|Exponential distribution is a continuous probability distribution.         dtype must be a floating point but you specified r  r  s   r:  rU  exponential.<locals>.<lambda>  r  r<  r  c                     > ST  3$ )Nz4exponential_ expects lambda > 0.0, but found lambda=rS  )rates   r:  rU  r  "  s    FtfMr<  rG  r  r]  )r  rc  rn  r  r  r  r  r  r  r  rQ  r   r\   )r  r  r  uniform_valepsilonr	  log_uniforms   ``     r:  rF   rF     s     ABB	LL""4::.. 	3&&tzz22	3&&tzz22	G	 
LLs
M
 //$'K kk+++,0014GsW},I++i599[3IJK9{""r<  c                   ^ ^ Ub  [        S5      e[        R                  " [        R                  " T R
                  5      (       + =(       a%    [        R                  " T R
                  5      (       + U 4S j5        [        R                  " ST:  =(       a    TS:  U4S j5        [        R                  " [        R                  " [        R                  " T 5      * 5      [        R                  " T* 5      -  5      S-   $ )Nr  c                  "   > ST R                    3$ )Nzgeometric not implemented for r  r  s   r:  rU  geometric.<locals>.<lambda>?  s    0=r<  r   rW  c                     > ST  3$ )Nz0geometric_ expects p to be in (0, 1), but got p=rS  )r  s   r:  rU  r  C  s    B1#Fr<  )r  rc  rn  r  r  r  r  rJ   r]   r  r9  )r  r  r  s   `` r:  rL   rL   2  s     ABB	LL""4::.. 	3&&tzz22=
 
LL	A!a%F ;;u{{EOOD$9#9:TZZ^KLqPPr<  c                   ^ ^ Ub  [        S5      e[        R                  " [        R                  " T R
                  5      (       + =(       aQ    [        R                  " T R
                  5      (       + =(       a%    [        R                  " T R
                  5      (       + U 4S j5        [        R                  " ST:  U4S j5        [        R                  " T[        R                  " T 5      -  U-   5      $ )Nr  c                  "   > ST R                    3$ )Nzlog_normal not implemented for r  r  s   r:  rU  log_normal.<locals>.<lambda>U  s    1$**>r<  r   c                     > ST  3$ )Nz-log_normal_ expects std > 0.0, but found std=rS  r   s   r:  rU  r  Y  s    ?uEr<  )
r  rc  rn  r  r  r  r  r  rD   
randn_liker  r   r   r  s   ` ` r:  r`   r`   H  s     ABB	LL""4::.. 	3&&tzz22	3&&tzz22>	 
LL	CE 99S5++D11D899r<  )r   r   )r  r  r%  r9  r&  c          
        ^ Ub"  U[         R                  :w  a  [        SU 35      e[        T[        5      (       d  [         R
                  " TS:  U4S j5        Uc  [        S U T4 5       5      n[         R
                  " [        U5      S:  S 5        [         R
                  " US L =(       a    US L S 5        [        S U 5       6 nUS   R                  nUS   R                  nO|[         R
                  " [        U [        5      (       + =(       a    [        T[        5      (       + S 5        Uc  [         R                  " 5       OUnUc  [         R                  " S	5      OUn[        R                  " US
SUUSUS9n	TU	-  U -   $ )Nz*layout must be None or torch.strided, got r   c                     > ST  3$ )Nz)normal expects std >= 0.0, but found std rS  r  s   r:  rU  normal.<locals>.<lambda>y  s     I#Or<  c              3   T   #    U  H  n[        U[        5      (       d  M  Uv   M      g 7frK  rH  ry  s     r:  rP  normal.<locals>.<genexpr>}  s     L;a*Q
2K;s   (	(c                      g)NzFnormal expects that either mean or std is a tensor, or size is definedrS  rS  r<  r:  rU  r     s    \r<  c                      g)Nz.Cannot pass layout, or pin_memory without sizerS  rS  r<  r:  rU  r     s    Dr<  c              3   8   #    U  H  oR                   v   M     g 7frK  rK  ry  s     r:  rP  r    s     "<Gq77Gr\  c                      g)Nz>normal expects mean and std to be scalars when size is definedrS  rS  r<  r:  rU  r     s    Tr<  r  r  r  F)r   r   r  r9  r  r  )rc  rt  r  r@  r'   rn  rh  rZ  ru  r  r9  r  r  rd   )
r   r   rQ  r  r  r%  r9  r&  r  normal_sampless
    `        r:  rd   rd   `  s^   ( f5I&RSSc:&&1HO	
 |LD#;LLL1\	
 	dN1zT1D	

 !"<G"<=
  ""4,,PZZ5P1PT	
 .3]'')(.e$F\\N $&&r<  )r  c                ,    [        XU R                  XS9$ )N)r  r  )rd   r[  r  s       r:  normal_r	    s    $TZZTGGr<  c                     [         R                  " [        R                  " U R                  5      (       + S 5        SnX-  $ )Nc                      g)Nz-rad2deg is not supported for complex tensors.rS  rS  r<  r:  rU  rad2deg.<locals>.<lambda>  rF  r<  gcܥL@rc  rn  r  r  r  )r  M_180_PIs     r:  rh   rh     s6    	LL""4::..? CH?r<  c                     [         R                  " [        R                  " U R                  5      (       + S 5        SnX-  $ )Nc                      g)Nz-deg2rad is not supported for complex tensors.rS  rS  r<  r:  rU  deg2rad.<locals>.<lambda>  rF  r<  g9RFߑ?r  )r  M_PI_180s     r:  r?   r?     s6    	LL""4::..? EH?r<  c                 *    U S:g  R                  U5      $ r2  )r   )r  r	  s     r:  r>   r>     s     AI??3r<  c                 v  ^ ^ [         R                  " T R                  5       S:H  =(       a    TR                  5       S:H  UU 4S j5        [         R                  " T R                  TR                  :H  UU 4S j5        UU 4S jn[         R                  " T R	                  5       TR	                  5       :H  U5        g )NrW  c                  N   > STR                  5        ST R                  5        S3$ )Nz1D tensors expected, but got zD and z	D tensorsrp  r6  r  s   r:  rU  _dot_check.<locals>.<lambda>  s!    /
|6%))+iXr<  c                  <   > STR                    ST R                    3$ )Nz:dot : expected both vectors to have same dtype, but found r  r  r  s   r:  rU  r    s    L::,eEKK=*r<  c            	         > STR                  5        ST R                  5        STR                  5        ST R                  5        S3	$ )Nz+inconsistent tensor size, expected tensor [z] and src [z.] to have thesame number of elements, but got r  z elements respectively)r  r  s   r:  numel_error_dot_check.<locals>.numel_error  sL    9$**,{SXS^S^S`Ra b004

~U5;;=/Qgi	
r<  )rc  rn  r	  r  r  )r  r6  r  s   `` r:  
_dot_checkr    sx    	LL
a,EIIK1,X
 
LL

ekk!	*
 
LL.<r<  c                 0   ^  [        T 5      U 4S j5       nU$ )Nc                 *   > [        X5        T" X5      $ rK  )r  )r  r6  r  s     r:  wrapper#_dot_check_wrapper.<locals>.wrapper  s    4$r<  )r
   )r  r  s   ` r:  _dot_check_wrapperr!    s     
2Y  Nr<  r  c                    U R                  5       (       a  U R                  5       (       a{  UR                  5       (       aA  [        R                  " U R	                  5       UR	                  5       5      R	                  5       $ [        R
                  " U R	                  5       U5      $ UR                  5       (       a%  [        R
                  " UR	                  5       U 5      $ X-  R                  5       $ rK  )r0  is_conjrc  r   r   r   r   r  s     r:  r   r     s     <<>>}}yyejjl;@@BBzz$))+u55]]__::ejjlD11Lr<  c                 ,   U R                  5       (       d  [        R                  " X5      $ U R                  5       (       am  UR                  5       (       a3  [        R                  " UR                  5       U R                  5       5      $ [        R                  " U R                  5       U5      $ UR                  5       (       a2  [        R                  " XR                  5       5      R                  5       $ U R                  5       U-  R                  5       $ rK  )r0  rc  r   r#  r   r   r;   r   r  s     r:  r   r     s     ??yy%%||~~==??::ejjlDIIK8899TYY[%00	yyzz|,1133  5(--//r<  c                    [         R                  " U R                  U5      nS/U R                  -  nSXB'   US:  a  X0R                  U   -   n[        R
                  " U R                  U   U R                  S9R                  U5      U:H  n[        R                  " X5      R                  U R                  5      n[        R                  " XQU 5      $ )NrW  r]  r   r8  )r  r  rS  r[  rc  r  r9  r
  r  r   r   )rO  r  r	  r;  
mask_shaper  s         r:  select_scatterr'    s     
 
 
-CqvvJJOqy$<<QXX6;;JG5PD
//#
#
*
*177
3C;;t!$$r<  )rd  c                 V    [        U [        R                  [        R                  45      $ rK  )r@  rc  TypedStorageUntypedStorage)objs    r:  
_isStorager,    s     cE..0D0DEFFr<  c                    Sn[        U 5      n/ n[        U [        [        45      (       a  [	        U 5      nU(       a  XQR
                  -  nUR                  U5        [	        U5      U:  a"  [        S[        U 5      R                   S35      eUS:X  a   U$  U S   nUn [        U [        [        45      (       a  M  U$ ! [         a#    [        S[        U 5      R                   S35      ef = f)N   ztoo many dimensions 'r  r   z.could not determine the shape of object type ')r,  r@  ro  rh  rZ  itemsizer  ro  r7  r  r  )seqscalar_typeMAX_DIMS
is_storagerV  r.  handles          r:  _compute_sizesr5    s    HCJE
S4-
(
(S+++FVu: 4T#Y5G5G4HJKKQ; L	VF
  S4-
(
(" L  	@cASAS@TTUV 	s   B= =-C*c                    [        U [        5      (       a  [        R                  " 5       $ [        U [        5      (       a%  [        U [
        5      (       d  [        R                  $ [        U [        5      (       a  [        R
                  $ [        U [        5      (       a  [        R                  " 5       nU[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ U[        R                  L a  [        R                  $ [        S5      e[        U [        R                   5      (       a  U R"                  $ [        U [$        5      (       a"  ['        S[)        U 5      R*                   S35      e[        U [,        [.        45      (       a  S n[1        U 5      nUS:X  a  [        R                  " 5       $ [3        U5       HF  nX   n [5        U5      nUb  [        R6                  " X&5      nOUnU[        R                  L d  MD  Us  $    U$ [        S[)        U 5      R*                   35      e)Nz'invalid default scalar type for complexznew(): invalid data type 'r  r   zCould not infer dtype of )r@  r   rc  r  r   r  rs  r   r  r  cfloatdoublecdoublehalfchalfrj  rh  r  r  	TypeErrorr7  r  ro  rh  rZ  rm  _infer_scalar_typepromote_types)r+  default_dtype
scalarTyper.  rM  cur_itemitem_scalarTypes          r:  r=  r=    s   #y!!&&((#w
3(=(={{#x  zz#w//1EKK'<<ell*== ejj(;;HII#u||$$yy#s4T#Y5G5G4HJKK#e}%%
S Q;**,,vAvH 1:O%"00M
,
U]]* "!   
2493E3E2FG
HHr<  r@  r+  c           	         [        U[        5      (       aB  UR                  5       S:X  a.  UR                  5       R	                  U SSS9R                  S5      $ [        U[        5      (       a  UR                  5       R	                  U SSS9$ [        U[        5      (       a  [        R                  " XS9$ UnU(       d  [        R                  " S5      $ [        R                  " U Vs/ s H  n[        X5      PM     sn5      $ s  snf )NrW  r  T)r  r9  r$  rS  r  r   )r@  rh  r  detachr   r
  r!   rc  r)  r  r   _recursive_build)r@  r+  r0  r   s       r:  rE  rE    s     #v399;!#3zz|ZDINNrRR	C	 	  zz|ZDII	C	 	 ""399 C  	A [[M*:<MN Ns   (Dc                 B   [        U[        R                  5      (       an  [        R                  " U(       + S 5        UnU(       a  UR	                  5       nU(       a  UR
                  OUn	Ub  UOUR                  n
UR                  U
U	SUS9$ [        US5      (       a  [        $ Ub  UOU S   n
U(       a  [        U5      OUn	[        U5      (       a  [        $ [        R                  " U
5      R                  S:X  a  [        $ [        X5      nUR                  XSSS9nU$ )Nc                      g)Nz,Can't pin tensor constructed from a variablerS  rS  r<  r:  rU  )_internal_new_from_data.<locals>.<lambda>   s    $Rr<  F)r9  r  r'  r$  __cuda_array_interface__r9  meta)r'  r$  )r@  rc  rh  rn  rD  r  r9  r   hasattrNotImplementedr=  r,  r7  rE  )optionsr1  
device_optdatacopy_variables
copy_numpytype_inferencer&  r   inferred_scalar_typer9  r  s               r:  _internal_new_from_datarT    s    $%%NR	
 **,C,:syy)53::vv&	  
 	
 t/00 &1Zwx7HF7E-d3; $<<$$.!! ""6=6eRWX Mr<  )r  r9  r&  r  c                $   [        U [        R                  5      (       a  [        R                  " S[
        SS9  US L n[        SS0Ub  UO[        R                  " 5       UU SSUUS9nUR                  5         U(       a  UR                  U5        U$ )NzTo copy construct from a tensor, it is recommended to use sourceTensor.detach().clone() or sourceTensor.detach().clone().requires_grad_(True), rather than torch.tensor(sourceTensor)rG  r  r9  r  T)rP  rQ  rR  r&  )
r@  rc  rh  r  r  UserWarningrT  r  detach_r  )rO  r  r9  r&  r  rR  
new_tensors          r:  r  r  -  s    $%%l		
 d]N( 
5"(?(?(A%J !!-0r<  rK  )F)r  NN)gh㈵>g:0yE>Fr@  )NN)NNNNNFF)FFN)NF)NNFr  )r   r]  )	NNNTreflectFNNN)NNNTFNNF)rS  )rW  r'  )r   r   rW  )r   r  r]  )r   NrW  )r+  )r  r  )r  NF)r   rW  Nr~  )rW  rG  N(  rR  r  r  r  r9  r  r  collections.abcr   r   r   enumr   	functoolsr   r   r	   r
   typingr   r   r   r   r   rc  torch._prims_primsr  torch._prims_common_prims_commonr  torch.utils._pytree_pytreerb  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   torch._prims_common.wrappersr+   r,   r-   r.   r/   r0   $torch.testing._internal.common_dtyper1   r  rh  r  DispatchKey_opsr4  r  r;  rD  ru  r  torch._decompr  objectr  r  r  r  r  r2   INT_TO_FLOATr3   r4   r6   r5   r7   r8   DEFAULTr9   r:   r0  r;   r<   r=   r@   rA   rB   rC   rD   rE   rG   	NO_OPMATHrH   rI   r*  rJ   rK   r   ALWAYS_BOOLrS   rT   rU   rV   rW   specialmultigammalnrb   rX   rY   r[   r\   r]   r^   r_   r  r  ra   r   r  re   r$  rf   rg   r   ri   rj   r   rk   rl   rm   rn   ro   rp   rq   rs   BOOL_TO_LONGrt   ru   rv   rx   r  rl  ro  ry   rz   r{   r|   r}   r~   r   r   r   r  r   r   r   r   r  r  r   r   r   r  rh  r   r   r   r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  
ScalarSelfScalarOtherScalarself_outr   r)  r  r   r   r%  r+  r-  registerr9  r_  r1  r3  r5  r8  r?  r   rZ  rk  r   r   r   dim_IntListIntList_outro  r   r   r   r   r  r   r   r   r   r   r   r   r  r   r   r   r   r   r   py_implCompositeImplicitAutogradMetar   r   r   r   r   r`  r   r   r   r   r   r   r   r   r   r   rW  r[  r   r   _subclasses
fake_implsregister_op_implr  r   r1  r2  r  r3  r  r   r  r  r   r   r   r   r.  r   rr   r   r  r  r  rN   rO   rQ   rR   rR  rM   rP   r   rX  r   r  r   r  r   r  r   r   r   r   r  r   r   r   r   r  r   r  r  r  r   r   r  r
  r  r   r  rt  r  r  r!  r"  r+  r%  r&  r$  r#  r  r  r  
start_step	start_outrZ   r  r   r   r   r  rl  r  r  r  r,  r'  r(  r)  r  r   r   r-  r.  rc   rw   r  r   r   r   r  r  r  r  r  rq  r  r  r/  r  rF   rL   r`   rd   r	  rh   r?   r>   r  r!  r   r   r'  abs_acos_acosh_add_addcmul_addcdiv_asin_asinh_atan_atanh_atan2_bitwise_and_bitwise_left_shift_bitwise_not_bitwise_or_bitwise_right_shift_bitwise_xor_ceil_clamp_
clamp_min_
clamp_max_conj_physical_	copysign_cos_cosh_cumsum_cumprod_deg2rad_digamma_div_eq_erf_erfc_erfinv_exp_exp2_expm1_float_power_floor_floor_divide_fmod_frac_gcd_ge_gt_
heaviside_hypot_igamma_igammac_i0_lcm_le_lerp_lgamma_log10_log1p_log2_log_logical_and_logical_not_logical_or_logical_xor_lt_mul_	mvlgamma_nan_to_num_ne_neg_
nextafter_pow_rad2deg_reciprocal_
remainder_rsqrt_sgn_sigmoid_sign_sin_sinc_sinh_sqrt_square_sub_tan_tanh_tril_triu_true_divide_trunc_xlogy_cauchy_exponential_
geometric_log_normal_zero_r   r   r   r   r   r   r   r   r  r  r	  r  r,  r5  r=  rE  rT  r  torch._refs._conversionstorch._refs.ffttorch._refs.linalgtorch._refs.nn.functionaltorch._refs.specialrS  r<  r:  <module>r     sP          8 8  < < 7 7   # $ $ 6 6      2  Il\	 
hh""zz~~2Rj 9= 8Cx 1   D 2 ##44	 ##B#O#OP Q ##B#O#OP Q ##B#O#OP Q ##B#O#OP Q ##B#O#OP Q ##B#O#OP Q ##B#J#JK  L  ##++	 (/n / )/ **+& &  ,& ##B#O#OP Q ##B#O#OP Q ##B#O#OP Q ##B#O#OP Q ##B#O#OP Q ##B#O#OP Q ##B#O#OP Q ##B#O#OP Q ##B#O#OP Q #7AA N  :  .  	 
 ^ J >  		"# #> #  ## ##++	 ##++!N !~ !	!N ~  ##//* *> *	* ##B#N#NO1^ 1 1 P1 ##//1 1> 1	1 ##//1 1> 1	1 ##B#N#NO^   P
 u}}11:> ##//0n 0 0	0 ##00$'' ##B#O#OP Q ##B#O#OP Q ##B#O#OP Q ##B#O#OP Q ##B#O#OP Q
  !%XX	X ;;X 	X X '#!7DD
 :?,
,',26,,	  (," ( ! $ $		d	  	
   )6  ##++	 > N ~  ##B#O#OP Q 

##7?? 12 J^ J# Jn J	  $J ##B#O#OP Q ##B#O#OP/~ /. / Q/ ##++	 ##++	 ##//	 ##B#O#OP Q ##B#O#OP4 Q4
 ##B#O#OP Q ##B#O#OP Q ##00n  	 ##B#O#OP Q ##B#O#OP Q ##++	
!. !^ !L 	## %"&6 6r(
"('5
'B(
[[( !#"7??  $	8
"8
"8 	8	  "8: $7DD$$

 $7??#> #n # ## $7??". "^ " "" $7??". "^ " "" $7??.> .n . .. $7??#> #n # ## $7DD$2+ 20K 2	2 !
 !%	
"
" :	  "( $7CC$. ^  	 $7DD
"
" 6 
"
"  t $==EE $"'
ONZ/ ONZ4O O
O>FV F F6 F16 1f 1 12 $7??$$
N ~ . 
 $7??$$
N ~ . 
 $7??$#
N ~ . 
 

#Z$7 75)G#H 7 % $7 $7??$$
> n  
 $7CC$. ^  	 $7CC$. ^  	 $7??$$
^ ^  
 $7??$$
^  > 
 $7DD$$
n  N 
 $7DD$$
~ . ^ 

  	
  
2 ((( ( 	(
 ( (V $7??$$
Q> Qn Q
Q  $7CC$. ^  	 $7??$$
T TN T~ T
T0 $7??$$
,. ,^ , ,
, $7CC> n  ##B#N#NO>  P $7CC. ^  $7CC> n  $7CC$. ^  	 $7??~ . ^  $7??~ . ^  $7?? $> n  	 $7CC$. ^  	 $7AA$$
! !N !~ !
! $7??! !N !~ !!
 		" 	(
"	(
"	( 	(  #	( !#"7?? 	$8
"$8
"$8 	$8	  "$8N $7DD	 $	> n   

##"7DD:^j( :^j-H :	  $:. $==EE $
"NZ/ "NZ4O "
" %#67DD ,
,, ,
 , ,	  &,* %#67?? ,
,, ,
 , ,	  &,* 

##+7?? *.)-	$	& 
 $	& 		  $6 ' *.&
&	$	&& &  (& ' *.&
&	$	&& &  (& 

**+. .E&#+$6 . ,. 

(

--.

../

))*

++,#"7AA (,'+#
#$# $#	  - + 0 / )#. 

#?D?T?T).)<)<  $ 9= v &  		"&N &z & #& %) $"&04#T! ;; +	
 LL4 &&- t  
2    04LL;;  	
 &&- 
#s(^ "  04;;  	
 &&- 
#s(^ "  04	;;  &&-	
 
#s(^   04	  &&-	
 
#s(^ ."& "T "0 .  n  X "  $CC
C 	C
 C T/C C ;;C 
$C 2C CL< !  

	D
 
 	
  "
 !  	D  	  "$ --txx/C/CDE #'
 !%	td3i	 
 ;; 
$  F:CC C, 		" #'
 	td3i	  
$  #: 		"  
 	D 
 
$  #. 		"  
 	D 
 
$  #. !   	 %)	D Tk 	 T!   "6 ! #' 	1 %)11	td3i	1 Tk1 	1 T!1 1  "1, 		"  +
 ++	D+ + + #+\ &VV   !$(	D Tk	
  T!  '2 &VV   	 %)	D Tk 	 T!  ' 		"#07?? 7A
7A
7A 7A
 7A 7A 7A	  #7Av+	(>2	2+;I+eNC/00+    # *8  +	(>2	2+;I+eNC/00+ +	(>2	2+;I+eNC/00+& "&		A	A
	A 	A $J		A
 	A //0 "&RR	R R 	R
 $JR R  1R2 2 ''(M(MN''(8(89O4#7 O : OO1N 1) 1 1 !#$7AAyG# yG# yGn yG	  "yGz #, # # # >  ,,-?@PP $S	P2<PP  .Ph 8=7N7N77!&!4!477 #& #> # # $/4 Ff F F F %FT F v ^ S s 5QTAT;U ,1~ 1# 1C 1 1* 		"N "2 ~   #n  n  (+n(<FID").
666!"@> tCy ^  ..667DDTMD 4-D 	D
 D D D 
D 666!"D 8DN ../VVV$LLL TML 4-	L
 
L 666!"L % 0L^ ..t/E/E/M/MN$ O$ %,~ , , &, $#.#.,#.36#.AO#.#.  %#.N +??@ "!  "&#'p?p?p? d
p? d
	p?
 TMp? p? p? p? Tkp? 4Kp? D[p? p? Ap?h KAAB "!  ZZZ d
Z d
	Z
 TMZ Z Z TkZ $JZ Z CZ|",9<DGOR8 $51f 51 51  %51pRR*.RRj8?N 8? 8? 8?~<~ <y <^ <
&^ &N &~ & 		"8>N 8>H 8>H 8>n 8>  #8>v 

#<B>>>)9>>  $><
!3 
 
 

#G% GC G G  $G"  !%	 ;; 	 * #& #> # # #& #> # #S Sc S) S S $
n 
3 
/A 
 %
" * 3 z :  
: 
C 

 
J 
 (<<<$.<7AJ7N<  )< (();;;$.;7AJ7N; *;//	/ / 
"	/ /d  	  	  " ))*KJ KS K K  +K" ))*~ HtO ~  +B --.56
#Cy/2	&\ /D DFDF(*DF 
DF >3	DFP(-(-,4(-
>3(-X&+&+,4&+
>3&+R 		& 1
11 1  '1 --. 	  	
    /0 & 	#
## # 	#
 # '#L ( 	535353 53 	53
 53  )53p (!$$~"6 !$> !$  )!$H)n- ). )(n ( (5G ( '9 9 (9$	 	N 	 

#^   $ '	* 	*s 	*# 	*. 	* (	* 	 $+
+%(+03+;>++ %+ (()n  C s   * !%9 9 
	9 ;;9 
$9 90 $
 !%TT	T ;;	T
 
$T T %T %
 !%UU	U ;;	U
 
$U U &U '3 3c 3n 3 (3 		))*=N =Ii0@$@ =^ = +=*#. # #N #
^   >B%D||%D#ll%D14t%D
\\%D %DP  !% ==$().)@)@%;;% LL% T!	%
 % % &&% % %P  !% ==$( ;; LL	
 T!    $ '
 !%"&$(
 ;;	
 LL4 T!    (, ../ !%"&$(
 
 ;; LL4 T!    08 

**+ !% ==$(;; LL T!	
     ,0 '
 !%"&$(
 ;;	
 LL4 T!     (2 		))* !% ==$(;; LL T!	
     +0 &
 !%"&$(
 ;;	
 LL4 T!     '2 & !%"&$(
 
 ;; LL4 T!    '0 ==> 15
	 &&- 	 ? ( !%$("&).)>)>&& ;;& T!	&
 LL4& & & &&& &  )&R //1F1FGH!c
 !% ==$(cc	d	c c
 ;;c LLc T!c c c c  IcL 		"#27??8 8V 8Vj-@ 8	  #84 & !%$( ==X/&X/	n	$X/ X/
 ;;X/ T!X/ LLX/ X/ X/ X/  'X/v &
 	9@ !%$( ==9@&9@	n	$9@ 9@ 	9@ ;;9@ T!9@ LL9@ 9@ 9@ 9@  '9@x 
	h~. 	# 	 
	 
	~ 	 	 
	 &CtN33eN6KKCC 
.C 'CN;;""; ''; 	;~ **+
 !%$( ==uY'' ;;	
 T! LL     ,6# %++  ! %) !% ==$(%)
%)
Tz%) ;;	%)
 LL%) T!%) %) %) %)  "%)V **DIIMM:;
 !% ==$(%%% ;;	%
 LL% T!% % % %  <%> !%"&$().)>)> ;;	
 LL4 T!   && . ( !%"&$().)>)> ;; LL4	
 T!   &&   ), ' !%"&$().)>)> ;; LL4	
 T!   &&   (, 

**+ !%$("&;; T! LL4	
     ,8 !% ==$(>> ;;> LL	>
 T!> > >, ""	e	 *u

  ;;  6 (()*> * *@V *  **Z ))*+4J +   	
  
"^  4 & 		" "	M !%MMs{TM 
DM 	M ;;M M  #M2 

#* *> *  $* [)l+	 		"3N 3c 3. 3  #3 		"3N 3c 3. 3  #3(7 73 7 7c3m8L 7$
	 
 ;;	
 LL " ))* "
  ==""	"	" "
 ;;" LL" " " "  +"R7 73 7 7c3m8L 7" ))* &
  =="&	&	& &
 ;;& LL& & & &  +&R '
 7%7%7% 	7%
 7%  (7%t $#!7??O	  %O" (()#!7??#	  *#8 '#!7??Q	  (Q  (#!7??:	  ):$ $# 8?? 
		2'
 
2'  %2'j %Hd H &H ##B#O#OP.  Q ##B#O#OP.  Q **+ X_    , =* !#)7??
 	   "
  		"#)7??0	   #0  ++,%n %> % %C %  -% Sd	u	S!!d	u	d	u		u	[)#$67 [)J'$%89 [)d	u	9%
9%
}-(#	Sd

!!!SBSd

Sd	u	[)	u	l+ddSBB9%
	u	

!BSBd

	u		u	dS[)[)J'[)BS(#	J'BS9%
S!J'9%
	u	S!dSddd

SSddd[)	u		u	

[)9%
J'd!$**-
&t7$T]]3"4;;/ #4;;/#DLL1#DLL1	dff	%%dnn5"4;;4P%dnn5 +	G
4/Ih"8;M"MH 5r tU  L       r<  