+
    –°³j×ƒ ã                   ó¾s  € ^ RI t ^ RIHtHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIt^ RIHt ^ RIHtHtHt ^ RIHtHtHtHt ^ R	IHt ^ R
IHtHt ^ RIHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t* ^ RI+H,t,H-t-H.t.H/t/H0t0 ^ RI1H2t2H3t3 ^ RI4H5t6 ^ RI7H8t9 ]	! R4      t:]! R4      t;]Px                  Pz                  t=]P|                  P                  RRR4      t@]A! ^4      w  tBtCtDR tER tFR R ltGR R ltHR tIR tJ]G! ]=P–                  ]=P˜                  .4      ]0! 4       RRR]Pš                  RR3R l4       4       tN]G! ]=Pž                  P                   ]=Pž                  P¢                  .4      ]0! 4       R 4       4       tR]G! ]=P¦                  P                   ]=P¦                  P¢                  .4      ]0! 4       ERR  l4       4       tT]G! ]=Pª                  P                   ]=Pª                  P¢                  .4      ]0! 4       ERR! R" ll4       4       tV]G! ]=P®                  P                   ]=P®                  P¢                  .4      ]0! 4       R#ER/R$ l4       4       tW]G! ]=P°                  4      ]0! 4       R% 4       4       tX]G! ]=P²                  4      ]0! 4       R& 4       4       tY]G! ]=P´                  P                   ]=P´                  P¢                  ]=P¶                  P                   ]=P¶                  P¢                  .4      ]0! R'R(4      R) 4       4       t\]G! ]=Pº                  P                   ]=Pº                  P¢                  .4      ]0! 4       R* 4       4       t]R+ t^ERR, R- llt_]G! ]=PÀ                  P                   ]=PÀ                  P¢                  .4      ]0! 4       R. 4       4       ta^tbR/ R0 ltc]G! ]=PÈ                  P                   ]=PÈ                  P¢                  .4      ]0! 4       R1 4       4       te]G! ]=PÌ                  PÎ                  4      R2R/R3 l4       th]G! ]=PÌ                  P                   4      R4]PÒ                  R5RR6RR7R/R8 l4       tj]G! ]=PÖ                  P                   ]=PÖ                  P¢                  .4      ]0! 4       R4]PÒ                  R5RR6RR7R/R9 l4       4       tl]G! ]=PÖ                  PÚ                  ]=PÖ                  PÜ                  .4      ]0! 4       R4]PÒ                  R5RR6RR7R/R: l4       4       to]G! ]=Pà                  P                   ]=Pà                  P¢                  .4      ]0! 4       R4RR5RR6RR7R/R; l4       4       tq]G! ]=Pä                  P                   4      R< 4       ts]G! ]=Pè                  P                   4      R= 4       tu]G! ]=Pè                  P$                  4      R> 4       tvR? tw]G! ]=Pð                  P                   4      ERR@ l4       ty]G! ]=Pô                  P                   4      ERRA l4       t{]G! ]=Pø                  P                   ]=Pø                  P¢                  .4      ]0! 4       RB RC l4       4       t}]G! ]=Pü                  P                   4      ERRD l4       tRE t€]G! ]=EP                  P                   4      RF 4       t‚]G! ]=EP                  4      ERRG RH ll4       t„]G! ]=EP
                  4      ERRI RJ ll4       t†]G! ]=EP                  4      RK^RL^RMR/RN RO ll4       tˆ]G! ]=EP                  4      ERRP RQ ll4       tŠ]G! ]=EP                  P                   4      RRRS/RT RU ll4       tŒ]G! ]=EP                  P                   4      RRRS/RV RW ll4       tŽ]0! 4       ]G! ]=EP                  P                   4      RX 4       4       t�]G! ]=EP"                  P                   4      RYRR(RRZRR[^ R\RR]R/R^ R_ ll4       t’]G! ]=EP&                  P                   ]=EP&                  EP(                  .4      ]0! 4       R` 4       4       t•]G! ]=EP&                  EP,                  4      ERRa l4       t—]G! ]=EP0                  P                   ]=EP0                  EP(                  .4      ]0! 4       Rb 4       4       t™]G! ]=EP0                  EP,                  4      ERRc l4       tš]G! ]=EP6                  P                   4      Rd 4       tœ]G! ]=EP6                  P¢                  4      Re 4       t�]G! ]=EP<                  P                   4      Rf 4       tŸ]G! ]=EP<                  EP@                  4      Rg 4       t¡]G! ]=EPD                  P                   4      Rh 4       t£]G! ]=EPH                  P                   4      R4RR5RR6RR7RRiR/Rj l4       t¥]G! ]=EPL                  P                   4      ERRk l4       t¦]G! ]=EPN                  P                   4      ERRl l4       t¨]G! ]=EPR                  P                   4      ERRm l4       t©]G! ]=EPT                  P                   4      Rn 4       t«]G! ]=EPX                  EP@                  4      Ro 4       t­Rp Rq lt®Rr Rs lt¯ERRt Ru llt°ERRv Rw llt±Rx Ry lt²ERR{ R| llt³R} R~ lt´]G! ]=EPj                  P                   ]=EPj                  EPl                  .4      ]0! RR€4      ERR‚ Rƒ ll4       4       t·]G! ]=EPp                  P                   ]=EPr                  P¢                  .4      ]0! 4       R„ R… l4       4       tº]G! ]=EPv                  .4      ]0! RR€4      R† R‡ l4       4       t¼Rˆ R‰ lt½]G! ]=EP|                  4      ]0! 4       RŠ R‹ l4       4       t¾]G! ]=EP~                  4      ]0! 4       ERRŒ R� ll4       4       t¿]G! ]=EP€                  4      ]0! 4       ERRŽ R� ll4       4       tÀ]G! ]=EP‚                  P                   4      ERR� R‘ ll4       tÁ]G! ]=EP„                  P                   ]=EP„                  P¢                  .4      ]0! 4       R’ R“ l4       4       tÂ]G! ]=EP†                  P                   4      ERR” R• ll4       tÄ]G! ]=EPŠ                  P                   ]=EPŠ                  P¢                  .4      ]0! R–R—R˜4      R™RRšR/R› Rœ ll4       4       tÆ]G! ]=EPŽ                  P                   ]=EPŽ                  P¢                  .4      ]0! 4       R™R/R� Rž ll4       4       tÈ]G! ]=EP’                  P                   ]=EP’                  P¢                  .4      ]0! RŸR�R 4      R¡RS/R¢ R£ ll4       4       tÊ]G! ]=EP–                  P                   ]=EP–                  P¢                  .4      ]0! R¤R—R˜4      R¡RSRšR/R¥ R¦ ll4       4       tÌ]G! ]=EPš                  P                   ]=EPš                  P¢                  .4      ]0! 4       R§RSR¨R/R© Rª ll4       4       tÎ]G! ]=EPž                  4      ]0! RŸR�R 4      ERR« R¬ ll4       4       tÐR­ R® ltÑ]G! ]=EP¤                  P                   ]=EP¤                  P¢                  .4      ]0! R¯R°4      ER R± R² ll4       4       tÓ]G! ]=EP¨                  P                   ]=EP¨                  P¢                  .4      ]0! R R³4      R´ Rµ l4       4       tÕ]G! ]=EP¬                  P                   ]=EP¬                  EP®                  .4      ]0! R¶R·R¤R—4      R¸ R¹ l4       4       tÖ]G! ]=EP°                  P                   4      ER!Rº R» ll4       tÙR¼ R½ ltÚR¾ R¿ ltÛRÀ RÁ ltÜ]G! ]=EPº                  4      R§RSRšRRzRR¤RR—RR˜R/RÂ RÃ ll4       tÝ]G! ]=EP¼                  P                   ]=EP¼                  P¢                  .4      R§RSRÄRRÅR/RÆ RÇ ll4       tß]G! ]=EPÀ                  4      ]0! RÈRÉRSRÊ7      ER"RË RÌ ll4       4       tá]G! ]=EPÄ                  P                   4      RÍ 4       tã]G! ]=EPÈ                  4      ]0! 4       ER#RÎ RÏ ll4       4       täRÐ tåRÑ tæ]G! ]=EPÎ                  4      ]0! 4       RÒ 4       4       tè]G! ]=EPÒ                  4      ]0! 4       RÓ 4       4       têRÔ të]G! ]=EPØ                  4      ]0! RÕ4      RÖ 4       4       tí]G! ]=EPÜ                  4      ]0! RÕ4      R× 4       4       tïRØ tð]G! ]=EPâ                  4      ]0! 4       RÙ 4       4       tò]G! ]=EPæ                  4      ]0! 4       RÚ 4       4       tô]G! ]=EPê                  P                   4      RÛ 4       tö]G! ]=EPî                  P                   ]=EPî                  EPð                  ]=EPò                  P                   ]=EPò                  EPð                  .4      ]0! RÕ4      RÜ 4       4       túRÝ tû]G! ]=EPø                  4      ]0! 4       RÞ 4       4       tý]G! ]=EPü                  4      ]0! 4       Rß 4       4       tÿ]G! ]=EP                   P                   ]=EP                   EPð                  ]=EP                  P                   ]=EP                  EPð                  .4      ]0! RÕ4      Rà 4       4       Et]G! ]=EP                  4      ]0! 4       ER$Rá Râ ll4       4       Et]G! ]=EP
                  4      ]0! 4       Rã Rä l4       4       Et]G! ]=EP                  P                   ]=EP                  P¢                  .4      ]0! RSRÊ7      RL^RK^/Rå l4       4       Et]G! ]=EP                  P                   ]=EP                  P¢                  .4      ]0! 4       R2R/Ræ l4       4       Et
]G! ]=EP                  EP                  4      ER%Rç l4       Et]G! ]=EP                  EP                  4      ER%Rè l4       Et]G! ]=EP                   P                   ]=EP                   P¢                  .4      ]0! 4       ERRé l4       4       Et]G! ]=EP$                  P                   4      ERRê l4       Et]G! ]=EP(                  4      ]0! RSRÊ7      ERRë Rì ll4       4       EtRí EtRî Rï lEtERRð Rñ llEtRò Et]G! ]=EP4                  P                   4      Ró Rô l4       Et]G! ]=EP8                  P                   4      Rõ Rö l4       Et]G! ]=EP<                  P                   4      ERR÷ Rø ll4       Et]EP@                  EPB                  '       Ed;   ]P|                  P                  RùRR4      Et"]G! ]Px                  EPF                  EPH                  P                   4      Rú 4       Et%]G! ]Px                  EPF                  EPL                  P                   4      Rû 4       Et']EP@                  EPP                  '       dN   ]P|                  P                  RüRR4      Et)]G! ]Px                  EPT                  EPV                  4      Rý 4       Et,]P|                  P                  RþRR4      Et-]G! ]Px                  EP\                  EP^                  P                   4      ]G! ]Px                  EP\                  EP`                  P                   4      ]G! ]Px                  EP\                  EP`                  EPb                  4      Rÿ 4       4       4       Et2]G! ]Px                  EP\                  EP^                  EPf                  4      ]G! ]Px                  EP\                  EP^                  EPh                  4      ER  4       4       Et5]G! ]Px                  EP\                  EPl                  P                   4      ]G! ]Px                  EP\                  EPl                  EPb                  4      ER 4       4       Et7]G! ]Px                  EP\                  EPl                  EPf                  4      ]G! ]Px                  EP\                  EPl                  EPh                  4      ER 4       4       Et8]G! ]Px                  EP\                  EPr                  P                   4      ]G! ]Px                  EP\                  EPt                  P                   4      ER 4       4       Et;]G! ]Px                  EP\                  EPx                  P                   4      ER 4       Et=]P|                  P                  ERRR4      Et>]G! ]Px                  EP~                  EP€                  4      ER(ER l4       EtA]G! ]Px                  EP~                  EP„                  4      ER 4       EtCER EtD]G! ]=EPŠ                  4      ER	 ER
 l4       EtF]G! ]=EPŽ                  P                   4      ER)ER l4       EtHER EtI]G! ]=EP”                  P                   4      ER 4       EtK]G! ]=EP˜                  4      ]0! 4       ER)ER l4       4       EtM]G! ]=EPœ                  4      ]0! RÕ4      ER 4       4       EtO]G! ]=EP                   P                   4      ER 4       EtQ]G! ]=EP¤                  P                   4      ER 4       EtS]G! ]=EP¨                  P                   4      ER 4       EtU]G! ]=EP¬                  4      ]0! RÕ4      ER 4       4       EtWER ER lEtX]G! ]=EP²                  4      ]0! RÅR(4      ER 4       4       EtZ]G! ]=EP¶                  4      ]0! RÕ4      ER 4       4       Et\]G! ]=EPº                  4      ]0! RÅR(4      ER 4       4       Et^]G! ]=EP¾                  4      ]0! RÕ4      ER 4       4       Et`]G! ]=EPÂ                  P$                  4      ERER l4       Etb]G! ]=EPÆ                  P                   ]=EPÆ                  P¢                  .4      ]0! 4       ER 4       4       Etd]G! ]=EPÊ                  P                   ]=EPÊ                  P¢                  .4      ]0! 4       ERER/ER ER ll4       4       Ete]G! ]Px                  Pz                  EPÌ                  P                   ]Px                  Pz                  EPÌ                  P¢                  .4      ]0! 4       ER 4       4       Etf]G! ]=EPÎ                  P$                  ]=EPÐ                  P$                  .4      ER  4       Eti]G! ]=EPÔ                  P                   .4      ER! 4       Etk]G! ]=EPØ                  P                   ]=EPØ                  P¢                  .4      ]0! RSRÊ7      RL^RK^/ER" l4       4       Etm]G! ]=EPÜ                  P$                  .4      ER# 4       Eto]G! ]=EPà                  P                   ]=EPâ                  P                   .4      ER$RER%R/ER& l4       Etr]G! ]=EPæ                  P                   .4      ER$RER%R/ER' l4       Ett]G! ]=EPê                  .4      ]0! 4       ER( 4       4       Etv]G! ]=EPî                  .4      ER) 4       Etx]G! ]=EPò                  .4      ER* 4       Etz]G! ]=EPö                  .4      ER+ 4       Et|]G! ]=EPú                  .4      ER, 4       Et~]G! ]=EPþ                  .4      ER- 4       EtER. ER/ lEt€ER0 Et�]G! ]=EP                  .4      ER1 ER2 l4       Etƒ]G! ]=EP                  .4      ER3 4       Et…]G! ]=EP                  .4      ER4 4       Et‡]G! ]=EP                  P                   4      ER5 4       Et‰]G! ]=EP                  4      ]0! 4       ER6 4       4       Et‹]G! ]=EP                  P                   4      ER*ER7 l4       Et�]G! ]=EP                  P                   4      ER8 4       Et�ERER9 lEt�]G! ]=EP"                  P                   ]=EP"                  P¢                  .4      ]0! 4       ER+R4R/ER: ll4       4       Et’]G! ]=EP&                  P                   ]=EP(                  P                   .4      ER; 4       Et•]G! ]=EP&                  EP,                  ]=EP&                  EP,                  ]=EP(                  EP,                  ]=EP(                  EP,                  ]=EP.                  P                   ]=EP.                  EP0                  .4      ]0! R'R(4      ER,ER< l4       4       Et™]G! ]=EP4                  P                   4      ER= 4       Et›]G! ]=EP8                  P                   4      ER> 4       Et�]G! ]=EP<                  P                   4      ER? 4       EtŸ]G! ]=EP@                  EPB                  ]=EP@                  P$                  ]=EPD                  P                   ]=EPF                  P                   ]=EPH                  P                   .4      ER@ 4       Et¥]G! ]=EPL                  EPB                  ]=EPL                  P$                  .4      ERA 4       Et§]G! ]=EPP                  EPB                  ]=EPR                  EPB                  ]=EPP                  P$                  ]=EPR                  P$                  .4      ER'ERB l4       Etª]G! ]=EPV                  EPB                  ]=EPX                  EPB                  .4      ER'ERC l4       Et­]G! ]=EP\                  P                   ]=EP\                  EP^                  .4      ERD 4       Et°ERE Et±]G! ]=EPd                  P$                  ]=EPd                  EPB                  .4      ERF 4       Et³]G! ]=EPh                  P$                  ]=EPh                  EPB                  .4      ERG 4       Etµ]G! ]=EPl                  P                   4      ERH 4       Et·]G! ]=EPp                  P$                  ]=EPp                  EPB                  .4      ERI 4       Et¹]G! ]=EPt                  P$                  ]=EPt                  EPB                  .4      ERJ 4       Et»]G! ]=EPx                  P                   4      ERK 4       Et½]G! ]=EP|                  P$                  4      ]0! 4       ER'ERL ERM ll4       4       Et¿]G! ]=EP€                  .4      ]0! 4       ER-ERN l4       4       EtÁ]G! ]=EP„                  .4      ER-ERO l4       EtÃ]G! ]=EPˆ                  .4      ER-ERP l4       EtÅ]G! ]=EPŒ                  P                   ]=EPŽ                  P                   .4      ERERQ l4       EtÈ]G! ]=EP’                  EPB                  4      ERR 4       EtÊ]G! ]=EP–                  P                   4      ERS 4       EtÌ]G! ]=EPš                  4      ERT 4       EtÎ]G! ]=EPž                  4      ]0! 4       ERU 4       4       EtÐ]G! ]=EP¢                  4      ERV 4       EtÒ]G! ]=EP¦                  P                   4      ERERW l4       EtÔERERX lEtÕ]G! ]=EP¬                  P                   ]=EP¬                  P¢                  .4      ]0! RSRÊ7      ERY 4       4       Et×]G! ]=EP¬                  EP°                  ]=EP¬                  EP²                  .4      ]0! RSRÊ7      ERZ 4       4       EtÚER[ EtÛER\ EtÜER] EtÝER^ EtÞERER_ ER` llEtßERa EtàERb ERc lEtáERd Etâ]G! ]=EPÆ                  4      ]0! RÕ4      ERe 4       4       Etä]G! ]=EPÊ                  P                   4      ER(ERf l4       Etæ]G! ]=EPÎ                  P                   4      ERg 4       Etè]G! ]=EPÒ                  4      ]0! RÅR(4      ER(ERh l4       4       Etê]G! ]=EPÖ                  4      ]0! RÕ4      ERi 4       4       EtìERj ERk lEtí ! ERl ERm]4      EtîERn ERo lEtïERp ERq lEtð]G! ]=EPâ                  4      ]0! 4       ERr 4       4       Etò]G! ]=EPæ                  4      ERs 4       Etô]G! ]=EPê                  P                   4      ERt 4       Etö]G! ]=EPî                  4      ]0! 4       ERu 4       4       Et÷]G! ]=EPð                  4      ]0! RÕERv4      ERw 4       4       Etø]G! ]=EPò                  P                   .4      ERx 4       Etù]G! ]=EPô                  P                   4      ER.ERy l4       Etú]G! ]=EPö                  P                   ]=EPö                  P¢                  .4      ]0! 4       R4RR5RR6RR7RERzR/ER{ l4       4       Etü]G! ]=EPú                  P                   ]=EPú                  P¢                  .4      ]0! 4       R4RR5RR6RR7RERzR/ER| l4       4       Etþ]G! ]=EPþ                  P                   4      ER} 4       Et ]G! ]=EP                  P                   4      ER/ER~ l4       Et]G! ]=EP                  P                   4      ER0ER l4       EtER€ EtERER� ER‚ llEtERƒ EtER„ Et]G! ]=EP                  P                   4      ERER… l4       Et
ERER† lEtERER‡ lEtERˆ EtERER‰ lEtER1ERŠ lEt]G! ]=EP                   P                   4      ER‹ 4       Et]G! ]=EP$                  4      ERŒ 4       Et]G! ]=EP(                  EP*                  ]=EP(                  EP,                  ]=EP(                  EP.                  ]=EP(                  EP0                  .4      ]0! 4       ERER� l4       4       Et]G! ]=EP4                  EP*                  ]=EP4                  EP,                  ]=EP4                  EP.                  ]=EP4                  EP0                  .4      ERERŽ l4       Et]G! ]=EP8                  P                   .4      ER2ER� ER� ll4       Et]G! ]=EP8                  EP~                  .4      ER2ER‘ ER’ ll4       EtER“ ER” lEt]G! ]=EP@                  .4      ER2ER• ER– ll4       Et!]G! ]=EPD                  .4      ER3ER— ER˜ ll4       Et#]G! ]=EPH                  4      ER™R/ERš ER› ll4       Et%]G! ]=EPL                  .4      ERERœ ER� ll4       Et']G! ]=EPP                  .4      ER4ERž ERŸ ll4       Et)]G! ]=EPT                  .4      ERER  ER¡ ll4       Et+]G! ]=EPX                  .4      ER5ER¢ ER£ ll4       Et-]G! ]=EP\                  .4      ER6ER¤ ER¥ ll4       Et/]G! ]=EP`                  .4      ER7ER¦ ER§ ll4       Et1]G! ]=EPd                  .4      ERER¨ ER© ll4       Et3]G! ]=EPh                  P                   .4      ER8ERª ER« ll4       Et5]G! ]=EPl                  P                   .4      ER8ER¬ ER­ ll4       Et7]G! ]=EPh                  EP~                  .4      ER.ER® ER¯ ll4       Et8]G! ]=EPr                  .4      ERER° ER± ll4       Et:]G! ]=EPv                  .4      ER9ER² ER³ ll4       Et<]G! ]=EPz                  .4      ER1ER´ ERµ ll4       Et>ER:ER¶ ER· llEt?]G! ]=EP€                  P                   .4      ER:ER¸ ER¹ ll4       EtA]G! ]=EP„                  P                   .4      ER:ERº ER» ll4       EtC]G! ]=EPˆ                  EPŠ                  ]=EPˆ                  EPŒ                  .4      ]0! 4       ERER¼ l4       4       EtG]G! ]=EP�                  EPŠ                  4      ERER½ l4       EtI]G! ]=EP”                  P                   ]=EP”                  P¢                  .4      ]0! 4       ERR2R/ER¾ ll4       4       EtKER¿ EtLERÀ EtM]G! ]=EPœ                  P                   ]=EPž                  P                   .4      ERERÁ l4       EtN]G! ]=EP                   P                   ]=EP¢                  P                   .4      ERERÂ l4       EtP]G! ]=EP¤                  P                   ]=EP¦                  P                   .4      ERERÃ ERÄ ll4       EtR]G! ]=EP¨                  P                   ]=EPª                  P                   .4      ERERÅ l4       EtT]G! ]=EP¬                  P                   ]=EP¬                  EP®                  ]=EP¬                  EP0                  ]=EP¬                  EP°                  .4      ER;ERÆ l4       EtYERÇ EtZ]G! ]=EP¶                  P                   4      ERERÈ l4       Et\]G! ]=EPº                  P                   4      ERÉ 4       Et]]G! ]=EP¼                  P                   4      ERÊ 4       Et^]G! ]=EP¾                  P                   4      ERË 4       Et_ERÌ Et`ERÍ Eta]G! ]=EPÄ                  P                   ]=EPÆ                  P                   .4      ER+ERÎ l4       Etd]G! ]=EPÊ                  P                   4      ER<ERÏ l4       Ete]G! ]=EPÌ                  P                   4      ER=ERÐ l4       Etg]G! ]=EPÐ                  4      ]0! 4       ER>ERÑ l4       4       Eti]G! ]=EPÔ                  P                   ]=EPÔ                  EP0                  .4      ]0! R'R(4      ER,ERÒ l4       4       Etk]EPØ                  EtmERÓ Etn]G! ]=EPÞ                  P                   4      ERÔ 4       Eto]G! ]=EPà                  P                   4      ERÕ 4       Etp]G! ]=EPâ                  P                   4      ERÖ 4       Etr]G! ]=EPæ                  P                   4      ER× 4       Ets]G! ]=EPè                  P$                  ]=EPè                  EPê                  .4      ]0! 4       ERØRERÙR/ERÚ l4       4       Etv]G! ]=EPè                  EPB                  ]=EPè                  EPî                  .4      ERØRERÙR/ERÛ ERÜ ll4       Etx]G! ]=EPò                  .4      ]0! 4       ER?ERÝ l4       4       Etz]G! ]=EPö                  P                   ]=EPø                  P                   ]=EPú                  P                   .4      ERERÞ l4       Et~]G! ]=EPþ                  P                   ]=EP                   P                   .4      ERERß l4       Et�]G! ]=EP                  P                   4      ERà 4       Et‚]G! ]=EP                  P                   ]=EP                  P¢                  .4      ]0! 4       ERERá l4       4       Etƒ]G! ]Px                  Pz                  EP                  4      ERâ 4       Et„]G! ]Px                  Pz                  EP
                  4      ERã 4       Et…]G! ]=EP                  4      ]0! 4       ERØRERÙRERäRERåR/ERæ l4       4       Et‡ERç Etˆ]G! ]=EP                  4      ERè 4       EtŠ]G! ]=EP                  4      ER@ERé l4       EtŒ]G! ]=EP                  4      ER@ERê l4       EtŽ]G! ]=EP                  4      ER@ERë l4       Et�]G! ]=EP"                  4      ]0! 4       ERìRERíR/ERî l4       4       Et’]G! ]=EP&                  4      ]0! 4       ERï ERð l4       4       Et”]G! ]=EP*                  4      ERñ ERò l4       Et–]G! ]=EP.                  4      ]0! RSRÊ7      ERó ERô l4       4       Et—]G! ]=EP0                  4      ]0! 4       ERõ ERö l4       4       Et˜ER÷ Et™ERAERø ERù llEtšERú ERû lEt›]G! ]=EP8                  4      ]0! 4       ERERü ERý ll4       4       Et�]G! ]=EP<                  .4      ERAERþ ERÿ ll4       EtŸ]G! ]=EP@                  P                   .4      ERAER  ER ll4       Et¡]G! ]=EPD                  EPB                  4      ERBER l4       Et£]G! ]=EPH                  4      ]0! 4       ER ER l4       4       Et¥]G! ]=EPL                  4      ]0! 4       ER&ER l4       4       Et§]G! ]=EPP                  4      ]0! 4       ERCER ER ll4       4       Et¨]G! ]=EPR                  P                   4      ERDER ER	 ll4       EtªER
 Et«]G! ]=EPX                  P                   4      EREER l4       Et­ER Et®E]«! ]=EP^                  4       E]«! ]=EP`                  4       E]«! ]=EPb                  4       E]«! ]=EPd                  4       E]«! ]=EPf                  4       E]«! ]=EPh                  4       E]«! ]=EPj                  4       E]«! ]=EPl                  4       E]«! ]=EPn                  4       E]®! ]=EPp                  4       E]®! ]=EPr                  4       E]®! ]=EPt                  4       E]®! ]=EPv                  4       E]®! ]=EPx                  4       E]®! ]=EPz                  4       E]®! ]=EP|                  4       E]®! ]=EP~                  4       E]®! ]=EP€                  4       E]®! ]=EP‚                  4       E]®! ]=EP„                  4       E]®! ]=EP†                  4       ER EtÄ]G! ]=EPŠ                  4      ]0! 4       ER 4       4       EtÅ]G! ]=EPŒ                  4      ]0! 4       ER^/ER l4       4       EtÆ]G! ]=EPŽ                  4      ]0! 4       ER^/ER l4       4       EtÇE]Ä! ]=EPŠ                  4      EtÈE]Ä! ]=EPŒ                  4      EtÉE]Ä! ]=EPŽ                  4      EtÊ^ RI1t^ REIËt^ REIÌtER EtÍE]Í! 4        R# (F  é    N)ÚCallableÚSequence)ÚEnum)Úwraps)ÚTypeVar)Ú	ParamSpec)ÚSymBoolÚSymFloatÚTensor)Ú_add_op_to_registryÚ_convert_out_paramsÚglobal_decomposition_tableÚ
meta_table)Ú
OpOverload)Ú_prim_elementwise_metaÚ$ELEMENTWISE_PRIM_TYPE_PROMOTION_KIND)ÚBoolLikeÚcorresponding_complex_dtypeÚcorresponding_real_dtypeÚelementwise_dtypesÚELEMENTWISE_TYPE_PROMOTION_KINDÚ	FloatLikeÚIntLikeÚmake_channels_last_strides_forÚmake_contiguous_strides_forÚNumberÚ
NumberTypeÚsuggest_memory_formatÚsym_minÚ
TensorLike)Ú_maybe_convert_to_dtypeÚ_maybe_resize_outÚ_resize_output_checkÚ_safe_copy_outÚout_wrapper)Ú_broadcast_shapesÚ_maybe_broadcast)Ú_config)Ú_pytreeÚ_TÚ_PÚatenÚIMPLÚMetac                 ó.   € W,           ^,
          V,          # ©é   © ©ÚaÚbs   &&ÚZ/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_meta_registrations.pyÚceil_divr7   9   s   € Ø�E�A�I˜!ÕÐó    c                ó<   € W,           ^,
          V,          V,          # )z$Rounds up x to nearest multiple of yr2   ©ÚxÚys   &&r6   Úround_upr=   =   s   € à�U�Q�Y˜1Õ Õ!Ð!r8   c                óŒ   € V ^8„  d   QhR\         \         \        \        3,          .\         \        \        3,          3,          /# ©é   Úreturn)r   r+   r*   )Úformats   "r6   Ú__annotate__rC   B   s2   € ÷ 
ñ 
œ¤8¬B´¨FÕ#3Ð"4´h¼rÄ2¸vÕ6FÐ"FÕGñ 
r8   c                 ó   a € V 3R  lpV# )c                 óZ   <a € \        S 4      o V 3R  lp\        P                  ! VS4       S # )c                 ó*   <€ \        \        V S4       R # ©N)r   r   )ÚopÚfns   &€r6   ÚregisterÚ0register_meta.<locals>.wrapper.<locals>.registerF   s   ø€ Ü¤
¨B°Ö3r8   )r   ÚpytreeÚ	tree_map_)rI   rJ   rH   s   f €r6   ÚwrapperÚregister_meta.<locals>.wrapperC   s)   ù€ Ü  Ó$ˆõ	4ô 	×Ò˜ 2Ô&Øˆ	r8   r2   )rH   rN   s   f r6   Úregister_metarP   B   s   ø€ õð €Nr8   c                ó$   € V ^8„  d   QhR\         /# )r@   Útype_promotion)r   )rB   s   "r6   rC   rC   O   s   € ÷ ñ ä3ñr8   c                 ó´   € \         P                  ! VR V / w  r#V Uu. uF  p\        WC4      NK  	  pp\        V!  p\	        VR\
        P                  / # u upi )Útype_promotion_kindrR   )Úutilsr   r!   r'   r   r   ÚDEFAULT)rR   ÚargsÚ_Úresult_dtyper;   s   $*   r6   Úelementwise_metarZ   O   sp   € ô
 ×.Ò.Ø	ðà*ñ�O€Añ ?CÓC¹d¸Ô# AÖ4¹d€DÐCô ˜TÑ"€Dô "Ø	ðÜB×JÑJñð ùò Ds   �Ac                 óÜ   € \         P                  \         P                  \         P                  \         P                  \         P
                  \         P                  /pVP                  W 4      # rG   )ÚtorchÚ	complex32ÚhalfÚcfloatÚfloatÚcdoubleÚdoubleÚget)ÚdtypeÚfrom_complexs   & r6   ÚtoRealValueTyperf   c   sC   € ä�‰œŸ™Ü�‰”e—k‘kÜ�‰”u—|‘|ð€Lð
 ×Ñ˜EÓ)Ð)r8   c                 ót   a a€ \        \        S .VO5!  4      o\        P                  ! SS 8H  VV 3R  l4       R# )c                  ó   <€ R S RS  2# )zoutput with shape z# doesn't match the broadcast shape r2   )Úbroadcasted_shapeÚ
self_shapes   €€r6   Ú<lambda>Ú)check_inplace_broadcast.<locals>.<lambda>p   s   ø€ Ð$ Z LÐ0SÐTeÐSfÑgr8   N)Útupler&   r\   Ú_check)rj   Ú
args_shaperi   s   f*@r6   Úcheck_inplace_broadcastrp   l   s0   ù€ ÜÔ/°
ÐH¸ZÓHÓIÐÜ	‡L‚LØ˜ZÑ'Ýgör8   Fc	           	      ó>  a aaaa	€ \        S \        P                  4      '       d*   \        P                  ! S P	                  4       ^ 8H  R 4       \        S\        P                  4      '       d*   \        P                  ! SP	                  4       ^ 8H  R 4       \
        ;QJ d    R S SS3 4       F  '       g   K   RM	  RM! R S SS3 4       4      '       db   \        P                  ! \        P                  ! 4       4      o	Sf   S	oMP\        P                  ! \        P                  ! S4      V	V3R l4       MS;'       g    \        P                  ! 4       o\        S\        P                  4      '       g   \        R\        S4       24      h\        P                  ! \        S\        4      VV V3R l4       \        S\        4      '       g   \        R	\        S4       24      h\        P                  ! S^ 8¬  R
 4       \        P                  ! S3SVRVVR7      # )r   c                  ó   € R # ©z:linspace only supports 0-dimensional start and end tensorsr2   r2   r8   r6   rk   Ú(meta_linspace_logspace.<locals>.<lambda>„   ó   € ÑPr8   c                  ó   € R # rs   r2   r2   r8   r6   rk   rt   ‰   ru   r8   c              3   óB   "  € T F  p\        V\        4      x € K  	  R # 5irG   )Ú
isinstanceÚcomplex)Ú.0Úargs   & r6   Ú	<genexpr>Ú)meta_linspace_logspace.<locals>.<genexpr>Œ   s   é € Ð
CÑ/B¨Œ:�cœ7×#Ð#Ó/Bùs   ‚TFc                  ó   <€ R S  RS 2# )zlinspace(): inferred dtype z& can't be safely cast to passed dtype r2   )Údefault_complex_dtyperd   s   €€r6   rk   rt   •   s   ø€ Ð5Ð6KÐ5LÐLrÐsxÐryÑzr8   zdtype must be torch.dtype, got c                  óŽ   <€ R \        S4      P                   R\        S 4      P                   R\        S4      P                   R2# )z4received an invalid combination of arguments - got (ú, Ú))ÚtypeÚ__name__)ÚendÚstartÚstepss   €€€r6   rk   rt   Ÿ   sB   ø€ ð Ü€uƒ+×ÑÐ�rœ$˜s›)×,Ñ,Ð-¨R´°U³×0DÑ0DÐ/EÀQñHr8   zsteps must be IntLike, got c                  ó   € R # )z$number of steps must be non-negativer2   r2   r8   r6   rk   rt   ¤   s   € Ñ%Kr8   Úmeta)rd   ÚlayoutÚdeviceÚ
pin_memoryÚrequires_grad)rx   r\   r   rn   ÚdimÚanyrU   r   Úget_default_dtypeÚis_complex_dtyperd   ÚAssertionErrorrƒ   Ú_check_typer   Úempty)
r†   r…   r‡   Úbaserd   r‹   rŠ   rŒ   r�   r   s
   fff&f&&&&@r6   Úmeta_linspace_logspacer–   t   s—  ü€ ô �%œŸ™×&Ò&Ü�ŠØ�I‰I‹K˜1ÑÙPô	
ô �#”u—|‘|×$Ò$Ü�ŠØ�G‰G‹I˜‰NÙPô	
÷
 ƒsÑ
C°°s¸EÑ/BÓ
C‡s‡s‚sÑ
C°°s¸EÑ/BÓ
C×CÒCÜ %× AÒ AÜ×#Ò#Ó%ó!
Ðð Š=Ø)‰Eä�LŠLÜ×&Ò& uÓ-Ýzõð
 ×2Ð2œ×0Ò0Ó2ˆÜ�eœUŸ[™[×)Ò)ÜÐ>¼tÀE»{¸mÐLÓMÐMô 
×ÒÜ�5œ'Ó"ö	Hôô
 �eœW×%Ò%ÜÐ:¼4À»;¸-ÐHÓIÐIÜ	‡L‚L�˜!‘ÑKÔLä�;Š;Ø	ˆØØØØØ#ôð r8   c                 ó8  a€ \         P                  ! SP                  \         P                  8H  V3R  l4       \         P                  ! V P                  4       ^ 8H  ;'       d    SP                  4       ^ 8g  '       * R 4       V P                  SP                  4      # )c                  ó"   <€ R S P                    2# )z2take(): Expected a long tensor for index, but got ©rd   ©Úindexs   €r6   rk   Úmeta_take.<locals>.<lambda>¶   s   ø€ ÐDÀUÇ[Á[ÀMÑRr8   c                  ó   € R # )z*take(): tried to take from an empty tensorr2   r2   r8   r6   rk   rœ   »   s   € Ñ<r8   )r\   rn   rd   ÚlongÚ_check_indexÚnumelÚ	new_emptyÚshape)Úselfr›   s   &fr6   Ú	meta_taker¤   °   sp   ø€ ô 
‡L‚LØ�‰”u—z‘zÑ!ÜRôô
 
×ÒØ�Z‰Z‹\˜QÑ×5Ð5 5§;¡;£=°AÑ#5Ô6Ù<ôð �>‰>˜%Ÿ+™+Ó&Ð&r8   c                 ó.   € \         P                  ! V 4      # rG   ©r\   Ú
empty_like©r£   Ú	generators   &&r6   Úmeta__standard_gammarª   À   ó   € ô ×Ò˜DÓ!Ð!r8   c          *      óD  € V ^8„  d   QhR\         R\        R\        R\         R\         R\         R\         R\        R	\        R
\        R\         R\         R\         R\         R\         R\         R\         R\         R\        P                   R,          R\        R,          R\         /# )r@   ÚsrcÚ	embed_dimÚ	num_headsÚ
qkv_weightÚqkv_biasÚproj_weightÚ	proj_biasÚuse_geluÚ
norm_firstÚepsÚnorm_weight_1Únorm_bias_1Únorm_weight_2Únorm_bias_2Úffn_weight_1Ú
ffn_bias_1Úffn_weight_2Ú
ffn_bias_2ÚmaskNÚ	mask_typerA   )r   ÚintÚboolr`   r\   )rB   s   "r6   rC   rC   Í   sç   € ÷  !ñ  !Ü	ð !äð !ô ð !ô ð	 !ô
 ð !ô ð !ô ð !ô ð !ô ð !ô 
ð !ô ð !ô ð !ô ð !ô ð !ô ð !ô  ð! !ô" ð# !ô$ ð% !ô& �,‰,˜Õ
ð' !ô( �T�zð) !ô* ñ+ !r8   c                 óÒ   € V P                   '       d   \        R 4      h^ RIHp V! V P	                  4       ^ 8H  4      '       d   V P                  4       # \        P                  ! V 4      # )zR_transformer_encoder_layer_fwd fake implementation does not support nested tensors©Úguard_or_false)Ú	is_nestedÚNotImplementedErrorÚ%torch.fx.experimental.symbolic_shapesrÅ   r    Úcloner\   r§   )r­   r®   r¯   r°   r±   r²   r³   r´   rµ   r¶   r·   r¸   r¹   rº   r»   r¼   r½   r¾   r¿   rÀ   rÅ   s   &&&&&&&&&&&&&&&&&&&& r6   Ú#meta__transformer_encoder_layer_fwdrÊ   Æ   sX   € ð: ‡}‡}€}Ü!Ø`ó
ð 	
õ Eñ �c—i‘i“k QÑ&×'Ò'Ø�y‰y‹{ÐÜ×Ò˜CÓ Ð r8   rŽ   c                ód  a aa€ S P                   pSP                   p\        P                  ! W48H  R  4       \        P                  ! S P                  S4      ^8H  ;'       d    SP                  S4      ^8H  VVV 3R l4       \	        S P
                  SP
                  4      pS P                  V4      # )c                  ó   € R # )z=linalg.cross: inputs must have the same number of dimensions.r2   r2   r8   r6   rk   Úlinalg_cross.<locals>.<lambda>÷   ó   € ÑOr8   c                  óV   <€ R S  RSP                  S 4       RSP                  S 4       2# )zlinalg.cross: inputs dimension z must have length 3. Got ú and ©Úsize)rŽ   Úotherr£   s   €€€r6   rk   rÍ   û   s1   ø€ Ø-¨c¨Uð 3Ø—9‘9˜S“>Ð" %¨¯
©
°3«Ð'8ñ:r8   )Úndimr\   rn   rÒ   r&   r¢   r¡   )r£   rÓ   rŽ   Úx_dÚy_dÚ	out_shapes   ffd   r6   Úlinalg_crossrØ   ð   sˆ   ú€ ð �)‰)€CØ
�*‰*€CÜ	‡L‚LØ‰
ÙOôô 
‡L‚LØ�	‰	�#‹˜!Ñ×4Ð4 §
¡
¨3£°1Ñ 4ö	
ôô " $§*¡*¨e¯k©kÓ:€IØ�>‰>˜)Ó$Ð$r8   c                 ó~   € \        V R 4       \        V R 4       \        P                  ! V \        P                  R7      # )zlinalg.matrix_exp©Úmemory_format©ÚsquareCheckInputsÚcheckFloatingOrComplexr\   r§   Úcontiguous_format©r£   s   &r6   Úlinalg_matrix_exprá     s3   € ô �dÐ/Ô0Ü˜4Ð!4Ô5Ü×Ò˜D´×0GÑ0GÔHÐHr8   c                 ó‚   € \        V R 4       \        V R RR7       \        P                  ! V \        P                  R7      # )zlinalg.matrix_sqrthF©Úallow_low_precision_dtypesrÚ   rÜ   rà   s   &r6   Úlinalg_matrix_sqrthrå     s:   € ô �dÐ1Ô2ÜØÐ#Àõô ×Ò˜D´×0GÑ0GÔHÐHr8   ÚvaluesÚindicesc                 ób  € \         P                  ! V P                  V P                  V P                  R 7      p\         P                  ! V P                  V P                  \         P
                  R 7      pV P                  4       ^ 8w  d'   V P                  ^ 8w  d   \        WP                  4       W#3# )©r‹   rd   )	r\   r”   r¢   r‹   rd   Úint64r    rÔ   Úmaybe_wrap_dim)r£   rŽ   ræ   rç   s   &&  r6   Ú	cummaxminrì     sl   € ô
 �[Š[˜Ÿ™¨D¯K©K¸t¿z¹zÔJ€FÜ�kŠk˜$Ÿ*™*¨T¯[©[ÄÇÁÔL€GØ‡z�zƒ|�qÔ˜TŸY™Y¨!œ^ä�sŸI™IÔ&Øˆ?Ðr8   c                 óx   € \        WP                  4       \        P                  ! V \        P                  R 7      # ©rÚ   )rë   rÔ   r\   r§   rß   )r£   rŽ   s   &&r6   Úlogcumsumexprï   #  s)   € ô �3Ÿ	™	Ô"Ü×Ò˜D´×0GÑ0GÔHÐHr8   c                óÊ  a€ VP                   p\        V4      pWV,
          p\        \        V4      4      p\        V4       U	u. uF  p	R NK  	  p
p	V F  pRW«&   K	  	  V Uu. uF  qºV,          '       d   K  VNK  	  ppV\        V4      ,           p\        V4      pVP	                  4       oVRV pVP                  V3R lRR7       WèVR ,           pVP                  V4      pR.\        VP                  VR 4      ,           pVP                  V4      pVP                  ^ 4      pVV^ &   \        V4      p\        \        V4      4       F  pW#V,          ,          VV^,           &   K  	  V P                  V\        P                  R7       \        V4       U	u. uF  p	^ NK  	  pp	^pV^,
          pV^ 8¼  dD   VV P	                  ^ 4      ,          VVV,          &   VW(V,          ,          ,          pV^,          pKJ  \        Wu4       F,  pV P	                  ^VV,
          ,           4      VVV,          &   K.  	  V P                  VVV P                  4       4       V # u up	i u upi u up	i )FTNc                 ó   <€ SV ,          # rG   r2   )r;   Úself_stridess   &€r6   rk   Ú_exec_fft.<locals>.<lambda>C  s	   ø€ ˜<¨ž?r8   ©ÚkeyÚreverserÚ   éÿÿÿÿ)rÔ   ÚlenÚlistÚrangeÚstrideÚsortÚpermuter¢   ÚreshaperÒ   Úresize_r\   rß   Úas_strided_Ústorage_offset)Úoutr£   Ú	out_sizesrŽ   ÚforwardrÔ   Úsignal_ndimÚ
batch_dimsÚdim_permuterX   Úis_transformed_dimÚdÚleftÚ	batch_endÚtmpÚinputÚbatched_sizesÚ
batch_sizeÚbatched_out_sizesÚiÚout_stridesÚbatch_numelrò   s   &&&&$                 @r6   Ú	_exec_fftr  0  s$  ø€ Ø�9‰9€DÜ�c“(€KØÕ#€Jô ”u˜T“{Ó#€Kä).¨t¬Ó5© A›%©ÐÐ5ÛˆØ $ÐÓñ ñ #Ó@‘{�!¸Q×*?Ñ*?�AˆA‘{€DÐ@Øœ˜c›Õ"€KÜ�D“	€Ià—;‘;“=€LØ
�j�yÐ
!€CØ‡H�HÔ*°D€HÔ9Ø I JÐ/Õ/€KØ�L‰L˜Ó%€Eð �Dœ4 §¡¨J¨KÐ 8Ó9Õ9€MØ�M‰M˜-Ó(€Eà—‘˜A“€JØ!€M�!ÑÜ˜]Ó+ÐÜ”3�s“8Ž_ˆØ#,°­VÕ#4Ð˜!˜a�%Ó ñ à‡K�KÐ!´×1HÑ1H€KÔIô $ DœkÓ*™k˜“1™k€KÐ*Ø€KØ�Q�€AØ
ˆqŒ&Ø&1°C·J±J¸q³MÕ&Aˆ�K •NÑ#Ø�y¨Q¥Õ0Õ0ˆØ	ˆQ�ŠÜ�:Ö$ˆØ&)§j¡j°°a¸*µnÕ1EÓ&Fˆ�K •NÓ#ñ %à‡O�O�I˜{¨C×,>Ñ,>Ó,@ÔAà€JùòM 6ùò
 Aùò, +s   ÁIÁ IÁ5IÆI c                óR   € V ^8„  d   QhR\         R\        \        ,          R\        /# )r@   r£   rŽ   Úexclude_last)r   rù   rÁ   rÂ   )rB   s   "r6   rC   rC   a  s%   € ÷ ñ ”Vð ¤$¤s¥)ð ¼4ñ r8   c                 ó¤   a€ \        V4      pV P                  4       o\        V4      \        V4      ,
          p\	        VR V V3R lRR7      VR V% V# )Nc                 ó   <€ SV ,          # rG   r2   )r  rò   s   &€r6   rk   Ú_sort_dims.<locals>.<lambda>f  s	   ø€ ¨°a®r8   Trô   )rù   rû   rø   rÁ   Úsorted)r£   rŽ   r  Úsorted_dimsr…   rò   s   &&&  @r6   Ú
_sort_dimsr  a  sS   ø€ Ü�s“)€KØ—;‘;“=€LÜ
ˆkÓ
œS Ó.Õ
.€CÜØ�D�SÐÔ8À$ô€K��Ðð Ðr8   c                 ó2  a
€ \         P                  ! V P                  P                  4       V'       g   V P	                  4       # \        V 4      R 8X  dN   \         P                  P                  P                  4       '       g    V P                  V P                  4       4      # V P                  4       pV P                  V4      p\        V 4      R8w  d   \        W4      p\        WPWFVR7      # \        V4      pT p VP                  4       o
VP                  V
3R lRR7       \!        \"        \%        V4      4      pV\%        V4      V,
          R p	\        WWWIVR7       VR\%        V4      V,
           pV'       g   V# WpJ d   TpV P                  V4      pK�  YuruK¡  )ÚcpuÚcuda©r  Tc                 ó   <€ SV ,          # rG   r2   ©r  Ústridess   &€r6   rk   Úmeta_fft_c2c.<locals>.<lambda>ƒ  s	   ø€  w¨q¦zr8   rô   N)r\   rn   rd   Ú
is_complexrÉ   Údevice_hintÚbackendsÚmklÚis_availabler¡   rÒ   r  r  rù   rû   rü   ÚminÚcufft_max_ndimrø   )r£   rŽ   Únormalizationr  r  Úoutputr  Úworking_tensorÚmax_dimsÚ	last_dimsr#  s   &&&&      @r6   Úmeta_fft_c2cr1  m  sI  ø€ ô 
‡L‚L�—‘×&Ñ&Ô'ßØ�z‰z‹|Ðä�4Ó˜EÔ!¬%¯.©.×*<Ñ*<×*IÑ*I×*KÒ*KØ�~‰~˜dŸi™i›kÓ*Ð*à—	‘	“€IØ�^‰^˜IÓ&€FÜ�4Ó˜FÔ"Ü  Ó+ˆÜ˜ yÀwÔOÐOô �s“)€KØ€NØ
Ø ×'Ñ'Ó)ˆØ×ÑÔ1¸4ÐÔ@Ü”~¤s¨;Ó'7Ó8ˆØ¤ KÓ 0°8Õ ;Ð =Ð>ˆ	ä�&¨)ÈÕPØ!Ð"?¤C¨Ó$4°xÕ$?Ð@ˆçØˆMàÓ!Ø#ˆNØ—^‘^ IÓ.ŠFà%3’Nr8   c                ó:   € V ^8„  d   QhR\         \        ,          /# )r@   rŽ   )rù   rÁ   )rB   s   "r6   rC   rC   —  s   € ÷ ñ ¤$¤s¥)ñ r8   c                 óŠ   € \        V 4      \        8”  g-   \        V 4      ^8¼  d   V ^ ,          ^ 8X  d   V ^,          ^8X  d   R# R# )r@   FT)rø   r+  ©rŽ   s   &r6   Úuse_optimized_cufft_pathr5  —  s3   € Ü
ˆ3ƒx”.Ô ¤S¨£X°¤]°s¸1µvÀ´{ÀsÈ1ÅvÐQRÄ{Ùár8   c                 ó  a€ \         P                  ! V P                  P                  4       \	        V P                  4       4      p\	        V4      pVR,          pWF,          ^,          ^,           p\	        V4      pWxV&   V'       d   WuV&   V P                  p	V	\         P                  8X  d!   \        V 4      R9   d   \         P                  p	\        V 4      R8X  g   \        V 4      R8X  Ed†   V P                  V\        P                  ! V	4      R7      p
T p\        V 4      R8X  d!   \        V4      '       d   \        W«WQRR7       Mã\        V4      ^8X  d   TMTp\        W«WÆ.RR7       \        V4      ^8”  d(   V P                  V\        P                  ! V	4      R7      pVRR pV'       d}   YºrºVP                  4       oVP!                  V3R lRR7       \#        \$        \        V4      4      pV\        V4      V,
          R p\        W«W�RR7       VR\        V4      V,
           pK„  V'       g@   V
P                  V4      WV,          8w  d$   VP'                  V\         P(                  R	7       Tp
V
# \         P*                  P,                  P/                  4       '       dC   \1        WRR
7      pV P                  V\        P                  ! V	4      R7      p
\        W W]RR7      # V P                  V\        P                  ! V	4      R7      # )r1   r  Úxpur™   Tr   Nc                 ó   <€ SV ,          # rG   r2   r"  s   &€r6   rk   Úmeta_fft_r2c.<locals>.<lambda>Î  s	   ø€  '¨!¦*r8   rô   rÚ   )r  r÷   ©r  r7  )r\   rn   rd   Úis_floating_pointrù   rÒ   Úbfloat16r&  Úfloat32r¡   rU   r   r5  r  rø   rû   rü   r*  r+  rÿ   rß   r'  r(  r)  r  )r£   rŽ   r,  ÚonesidedÚinput_sizesr  Úlast_dimÚlast_dim_halfsizeÚonesided_sizesÚoutput_dtyper-  r.  Útarget_sizesr  r/  r0  r#  s   &&&&            @r6   Úmeta_fft_r2crE  ž  s›  ø€ ô 
‡L‚L�—‘×-Ñ-Ô.Ü�t—y‘y“{Ó#€KÜ�[Ó!€IØ�2�w€HØ#Õ-°Õ2°QÕ6ÐÜ˜+Ó&€NØ0�8ÑçØ/�(Ñð —:‘:€LØ”u—~‘~Ô%¬;°tÓ+<ÀÔ+OÜ—}‘}ˆä�4Ó˜FÔ"¤k°$Ó&7¸5Õ&@ð —‘ØœU×>Ò>¸|ÓLð  ó 
ˆð ˆÜ�tÓ Ô&Ô+CÀC×+HÒ+HÜ�f¨iÀdÖKô ),¨C«°A¬™9¸>ˆLÜ�f¨l¸JÐPTÕUÜ�3‹x˜!Œ|Ø!%§¡Ø¤U×%FÒ%FÀ|Ó%Tð "0ó "�ð
 ˜c˜r˜(ˆKßØ)7˜Ø(×/Ñ/Ó1�Ø× Ñ Ü,°dð !ô ô œ~¬s°;Ó/?Ó@�Ø'¬¨KÓ(8¸8Õ(CÐ(EÐF�	ÜØ¨NÈtõð *Ð*G¬C°Ó,<¸xÕ,GÐH’çØ�{‰{˜8Ó$¨	Õ(;Ô;Ø×&Ñ& yÄ×@WÑ@WÐ&ÔXØ'�àˆä	�‰×	Ñ	×	(Ñ	(×	*Ò	*ä  ¸Ô>ˆØ—‘ØœU×>Ò>¸|ÓLð  ó 
ˆô ˜ yÀtÔLÐLð �~‰~ØœU×>Ò>¸|ÓLð ó 
ð 	
r8   r©   c                óD   € \        V\        P                  ! V .4      4      # rG   )r"   r\   ÚSize)Únr©   r  s   &$$r6   Úmeta_randpermrI  ì  s   € ä˜S¤%§*¢*¨a¨S£/Ó2Ð2r8   rd   rŠ   r‹   rŒ   c                ó4   € \         P                  ! WW#VR 7      # ©©rd   rŠ   r‹   rŒ   ©r\   r”   )rH  rd   rŠ   r‹   rŒ   s   &$$$$r6   Úmeta_randperm_defaultrN  ñ  s   € ô �;Š;Ø	˜vÀôð r8   c                óz   a a€ ^ o\         P                  ! S S8„  V V3R l4       \         P                  ! WW4VR7      # )r   c                  ó   <€ R S RS  2# ©z:random_ expects 'from' to be less than 'to', but got from=z >= to=r2   ©ÚhighÚlows   €€r6   rk   Úmeta_randint.<locals>.<lambda>  ó   ø€ ÐLÈSÈEÐQXÐY]ÐX^Ñ_r8   rL  ©r\   rn   r”   )rS  rÒ   rd   rŠ   r‹   rŒ   rT  s   f&$$$$@r6   Úmeta_randintrX  ÿ  s:   ù€ ð €CÜ	‡L‚LØˆs‰
Ý_ôô �;Š;Ø &ÀJôð r8   c                óv   a a€ \         P                  ! SS 8„  VV 3R  l4       \         P                  ! W#WEVR7      # )c                  ó   <€ R S RS  2# rQ  r2   rR  s   €€r6   rk   Ú"meta_randint_low.<locals>.<lambda>"  rV  r8   rL  rW  )rT  rS  rÒ   rd   rŠ   r‹   rŒ   s   ff&$$$$r6   Úmeta_randint_lowr\    s5   ù€ ô 
‡L‚LØˆs‰
Ý_ôô �;Š;Ø &ÀJôð r8   c                ó4   € \         P                  ! WW#VR 7      # rK  rM  )rÒ   rd   rŠ   r‹   rŒ   s   &$$$$r6   Úmeta_rand_defaultr^  )  s   € ô �;Š;Ø &ÀJôð r8   c                 óŽ  a a€ \         P                  ! S P                  4       ^8¬  ;'       d    S P                  R,          ^8H  V 3R l4       \         P                  ! S P                  \         P
                  8H  V 3R l4       \         P                  ! S^ 8„  V3R l4       S P                  RR pS P                  S.VO^N54      # )r1   c                  ó"   <€ R S P                    2# )z>_philox_key_split: key must have shape (*batch, 2), got shape ©r¢   ©rõ   s   €r6   rk   Ú'meta_philox_key_split.<locals>.<lambda>5  s   ø€ ÐPÐQT×QZÑQZÐP[Ñ\r8   c                  ó"   <€ R S P                    2# )z3_philox_key_split: key must have dtype uint64, got r™   rb  s   €r6   rk   rc  9  s   ø€ ÐEÀcÇiÁiÀ[ÑQr8   c                  ó   <€ R S  2# )z4_philox_key_split: num_splits must be positive, got r2   )Ú
num_splitss   €r6   rk   rc  =  s   ø€ ÐFÀzÀlÑSr8   Nr÷   )r\   rn   rŽ   r¢   rd   Úuint64r¡   )rõ   rf  Úbatch_sizess   ff r6   Úmeta_philox_key_splitri  1  sš   ù€ ä	‡L‚LØ�‰‹	�Q‰×-Ð-˜3Ÿ9™9 R�=¨AÑ-Ü\ôô 
‡L‚LØ�	‰	”U—\‘\Ñ!ÜQôô 
‡L‚LØ�Q‰ÜSôð —)‘)˜C˜R�.€KØ�=‰=˜*Ð6 {Ð6°AÑ6Ó7Ð7r8   c                 ó0  a € \         P                  ! S P                  4       ^8¬  ;'       d    S P                  R,          ^8H  V 3R l4       \         P                  ! S P                  \         P
                  8H  V 3R l4       \         P                  ! S 4      # )r1   c                  ó"   <€ R S P                    2# ©z@_philox_key_fold_in: key must have shape (*batch, 2), got shape ra  rb  s   €r6   rk   Ú)meta_philox_key_fold_in.<locals>.<lambda>G  ó   ø€ ÐRÐSV×S\ÑS\ÐR]Ñ^r8   c                  ó"   <€ R S P                    2# ©z5_philox_key_fold_in: key must have dtype uint64, got r™   rb  s   €r6   rk   rm  K  ó   ø€ ÐGÈÏ	É	À{ÑSr8   r÷   )r\   rn   rŽ   r¢   rd   rg  r§   ©rõ   Údatas   f&r6   Úmeta_philox_key_fold_inrt  C  sh   ø€ ä	‡L‚LØ�‰‹	�Q‰×-Ð-˜3Ÿ9™9 R�=¨AÑ-Ü^ôô 
‡L‚LØ�	‰	”U—\‘\Ñ!ÜSôô ×Ò˜CÓ Ð r8   c                 óö  a a€ \         P                  ! S P                  4       ^8¬  ;'       d    S P                  R,          ^8H  V 3R l4       \         P                  ! S P                  \         P
                  8H  V 3R l4       \         P                  ! SP                  \         P
                  8H  V3R l4       \         P                  ! SP                  4       ^8H  V3R l4       \         P                  ! S 4      # )r1   c                  ó"   <€ R S P                    2# rl  ra  rb  s   €r6   rk   Ú0meta_philox_key_fold_in_tensor.<locals>.<lambda>T  rn  r8   c                  ó"   <€ R S P                    2# rp  r™   rb  s   €r6   rk   rw  X  rq  r8   c                  ó"   <€ R S P                    2# )z6_philox_key_fold_in: data must have dtype uint64, got r™   ©rs  s   €r6   rk   rw  \  s   ø€ ÐHÈÏÉÈÑUr8   c                  ó,   <€ R S P                  4        R2# )z6_philox_key_fold_in: data must be a single value, got z	 elements©r    rz  s   €r6   rk   rw  `  s   ø€ ÐHÈÏÉËÈÐV_Ñ`r8   r÷   )r\   rn   rŽ   r¢   rd   rg  r    r§   rr  s   ffr6   Úmeta_philox_key_fold_in_tensorr}  P  s¨   ù€ ä	‡L‚LØ�‰‹	�Q‰×-Ð-˜3Ÿ9™9 R�=¨AÑ-Ü^ôô 
‡L‚LØ�	‰	”U—\‘\Ñ!ÜSôô 
‡L‚LØ�
‰
”e—l‘lÑ"ÜUôô 
‡L‚LØ�
‰
‹˜ÑÜ`ôô ×Ò˜CÓ Ð r8   c           	      ó¶  a aaa€ \         P                  ! SP                  P                  V V3R  l4       \         P                  ! SP                  \         P                  8H  VV 3R l4       \         P                  ! SP
                  SP
                  8H  VV V3R l4       \         P                  ! SP                  4       ^8¬  ;'       d    SP                  R
,          ^8H  VV 3R l4       SP                  4       ^8”  dÚ   \         P                  ! SP                  4       SP                  4       ^,           8H  VV V3R l4       SP                  RSP                  4        o\         P                  ! \        ;QJ d0    R \        SSP                  4       4       F  '       d   K   RM%	  RM!! R \        SSP                  4       4       4      VV V3R	 l4       R# R# )c                  ó&   <€ S  R SP                    2# )z,: self must be a floating point tensor, got r™   )Úop_namer£   s   €€r6   rk   Ú1_check_philox_distribution_args.<locals>.<lambda>h  s   ø€ �7�)ÐGÈÏ
É
À|ÑTr8   c                  ó&   <€ S R S P                    2# )z": key must have dtype uint64, got r™   ©rõ   r€  s   €€r6   rk   r�  l  s   ø€ �7�)Ð=¸c¿i¹i¸[ÑIr8   c                  ó@   <€ S R SP                    RS P                    2# )z/: self and key must be on the same device, got rÐ   ©r‹   ©rõ   r€  r£   s   €€€r6   rk   r�  p  s%   ø€ Øˆið Ø—;‘;�-˜u S§Z¡Z Lñ2r8   c                  ó&   <€ S R S P                    2# )z5: key must have shape (2,) or (*batch, 2), got shape ra  rƒ  s   €€r6   rk   r�  w  s   ø€ ØˆiÐLÈSÏYÉYÈKÑXr8   c                  ó@   <€ S R S P                    RSP                    2# )z?: batched key must have ndim == output ndim + 1, got key shape z with output shape ra  r†  s   €€€r6   rk   r�  ~  s'   ø€ Ø�)ð !Ø!$§¡ Ð+>¸t¿z¹z¸lñLr8   Nc              3   óH   "  € T F  w  rV^8H  ;'       g    W8H  x € K  	  R# 5i©r1   Nr2   )rz   ÚksÚsss   &  r6   r|   Ú2_check_philox_distribution_args.<locals>.<genexpr>…  s%   é € ÐMÑ2L©¨��a‘×#Ð#˜2™8Ô#Ó2Lùs   ‚"•"FTc                  ó>   <€ S R \        S 4       RSP                   2# )z: key batch shape z( is not broadcastable with output shape ©rù   r¢   )Ú	key_batchr€  r£   s   €€€r6   rk   r�  †  s(   ø€ Ø�)Ð-¬d°9«oÐ->ð ?:Ø:>¿*¹*¸ñGr8   r÷   )
r\   rn   rd   r;  rg  r‹   rŽ   r¢   ÚallÚzip)r€  r£   rõ   r�  s   fff@r6   Ú_check_philox_distribution_argsr“  e  s2  û€ Ü	‡L‚LØ�
‰
×$Ñ$ÝTôô 
‡L‚LØ�	‰	”U—\‘\Ñ!ÝIôô 
‡L‚LØ�‰�s—z‘zÑ!ö	
ôô 
‡L‚LØ�‰‹	�Q‰×-Ð-˜3Ÿ9™9 R�=¨AÑ-õ	
ôð ‡w�wƒy�1„}Ü�ŠØ�G‰G‹I˜Ÿ™› a�Ñ'öô	
ð —I‘I˜l §¡£
Ð+ˆ	Ü�Šß‹CÑM´#°iÀÇÁÔ2LÓM�C�CŠCÑM´#°iÀÇÁÔ2LÓMÓMöö	
ñ r8   c                 ó   € \        R W4       V # )Ú_philox_normal_©r“  )r£   rõ   ÚmeanÚstds   &&&&r6   Úmeta_philox_normal_r™  �  s   € ä#Ð$5°tÔAØ€Kr8   c                 ó   € \        R W4       V # )Ú_philox_uniform_r–  )r£   rõ   rT  rS  s   &&&&r6   Úmeta_philox_uniform_rœ  “  s   € ä#Ð$6¸ÔBØ€Kr8   c                ó^   € V ^8„  d   QhR\         R\        \        ,          R\        R\        /# )r@   r£   rŽ   r,  Úlastdim)r   rù   rÁ   )rB   s   "r6   rC   rC   ›  s2   € ÷ *Lñ *L”vð *L¤D¬¥Ið *L¼cð *LÌCñ *Lr8   c                 ó,  € \         P                  ! V P                  P                  4       \	        V 4      R 8X  dâ   \        V P                  4       4      pW4VR,          &   V P                  V\        V P                  4      R7      p\        V4      '       d/   \        VV P                  \         P                  R7      VVRR7      # \        V4      ^8”  d   \        WRR ^ RR7      pM V P                  \         P                  R7      p\        WVWAR,          .RR7      # \         P                  P                   P#                  4       '       dƒ   T p\        V4      ^8”  d   VRR p\        WVRR7      pVRR p\        VP                  4       4      pW4VR,          &   V P                  V\        V P                  4      R7      p	\        W—WARR7      # \        V P                  4       4      pW4VR,          &   V P                  V\        V P                  4      R7      # )r  r™   rÚ   Fr   Nr÷   )r\   rn   rd   r%  r&  rù   rÒ   r¡   rf   r5  r  rÉ   rß   rø   r1  r'  r(  r)  )
r£   rŽ   r,  rž  r  r-  Útempr  Úc2c_dimsr  s
   &&&&      r6   Úmeta_fft_c2rr¢  ™  s¯  € ô 
‡L‚L�—‘×&Ñ&Ô'ä�4Ó˜FÔ"Ü˜Ÿ™›Ó%ˆ	Ø$�#�b•'Ñà—‘ 	´ÀÇÁÓ1L�ÓMˆä# C×(Ò(ÜØØ—
‘
¬×)@Ñ)@�
ÓAØØØôð ô �3‹x˜!Œ|Ü# D¨c¨r¨(°A¸uÔE‘à—z‘z´×0GÑ0G�zÓH�Ü˜V¨9¸2µw°iÈÔOÐOä	�‰×	Ñ	×	(Ñ	(×	*Ò	*àˆÜˆs‹8�aŒ<Ø˜3˜B�xˆHÜ  °ÈÔNˆEØ�b�c�(ˆCä˜Ÿ™›Ó&ˆ	Ø$�#�b•'ÑØ�n‰n˜Y¬o¸d¿j¹jÓ.IˆnÓJˆÜ˜ Y¸UÔCÐCô ˜Ÿ™›Ó%ˆ	Ø$�#�b•'ÑØ�~‰~˜i¬¸t¿z¹zÓ/Jˆ~ÓKÐKr8   c                 ó"  € ^ RI Hp V! V 4      '       g'   \        P                  ! V 4      ^8X  d   \	        R4      h\        V\        4      '       d?   VP                  W4      p\        P                  P                  W@P                  4       4       V # )r   ©Úfree_unbacked_symbolszQmore than one element of the written-to tensor refers to a single memory location)rÈ   r¥  r\   Ú_debug_has_internal_overlapÚRuntimeErrorrx   r   ÚtoÚ_refsÚexpandrÒ   )r£   r­   Únon_blockingr¥  Úintermediates   &&&  r6   Ú
meta_copy_r­  È  st   € õ Lñ " $×'Ò'¬E×,MÒ,MÈdÓ,SÐWXÔ,XäØ_ó
ð 	
ô �#”v×ÒØ—v‘v˜dÓ1ˆô 	�‰×Ñ˜<¯©«Ô5Ø€Kr8   c                 ó  € \        V P                  4       4      p\        V P                  4       4      pWP                  4       8¼  d   ^MW!,          W1,          ,          pVP	                  V^4       VP	                  W4       W#3# r0   )rù   rÒ   rû   rŽ   Úinsert)ÚtensorrŽ   Úresult_sizesÚresult_stridesÚ
new_strides   &&   r6   ÚinferUnsqueezeGeometryr´  æ  sf   € Ü˜Ÿ™›Ó&€LÜ˜&Ÿ-™-›/Ó*€NàŸZ™Z›\Ô)‘¨|Õ/@À>ÕCVÕ/V€Jà×Ñ˜˜QÔà×Ñ˜#Ô*ØÐ'Ð'r8   c                 ó‚   € \        WP                  4       ^,           4      p\        W4      w  r#V P                  W#4       V # r0   )rë   rŽ   r´  r   )r£   rŽ   Úg_sizesÚ	g_stridess   &&  r6   Úmeta_unsqueeze_r¸  ò  s6   € ä
˜Ÿh™h›j¨1�nÓ
-€CÜ/°Ó:Ñ€GØ×Ñ�WÔ(Ø€Kr8   c                óž   € V ^8„  d   QhR\         R\         R\         R\         R,          R\        R,          R\        P                  R,          /# )r@   r  ÚweightÚ_metaÚbiasNÚ_activation_optÚ	out_dtype)r   Ústrr\   rd   )rB   s   "r6   rC   rC   û  sU   € ÷ )ñ )Üð)äð)ô ð)ô �4�-ð	)ô
 ˜4•Zð)ô �{‰{˜TÕ!ñ)r8   c                 óX  € \        V P                  4      pVeU   VP                  ^ 4      VP                  ^ 4      8w  d0   \        RVP                  ^ 4       RVP                  ^ 4       24      hVP                  ^4      V P                  R
4      ^,          8w  d7   \        RVP                  ^4       RV P                  R
4      ^,           24      hVP                  ^ 4      VR
&   \	        V P                  4      ^8w  d#   \        R\	        V P                  4       R24      h^V P                  ^ 4      3pVeP   V P
                  \        P                  8X  d   V\        P                  8X  g   \        RV P
                   RV 24      hT P                  TTVf   V P
                  MTR	7      pV# )Nz%output size mismatch: weight.size(0)=ú != bias.size(0)=zweight.size(1)=z != input.size(-1)/2=z0we can only handle the squashed input case, got úD inputzKout_dtype is only supported for i8i8->i32 linear operator, got input.dtype=ú, out_dtype=r™   r÷   )
rù   r¢   rÒ   r’   rø   rd   r\   Úint8Úint32Únew_empty_strided)	r  rº  r»  r¼  r½  r¾  Úoutput_sizesÚtransposed_stridesr-  s	   &&&&&&   r6   Úmeta_sparse_structured_linearrÉ  ú  s   € ô ˜Ÿ™Ó$€LØÒØ�;‰;�q‹>˜TŸY™Y q›\Ô)Ü Ø7¸¿¹ÀA»Ð7GÐGXÐY]×YbÑYbÐcdÓYeÐXfÐgóð ð ‡{�{�1ƒ~˜Ÿ™ B›¨!Õ+Ô+ÜØ˜fŸk™k¨!›nÐ-Ð-BÀ5Ç:Á:ÈbÃ>ÐTUÕCUÐBVÐWó
ð 	
ð —{‘{ 1“~€L�Ñô ˆ5�;‰;Ó˜1ÔÜØ>¼sÀ5Ç;Á;Ó?OÐ>PÐPWÐXó
ð 	
ð ˜UŸZ™Z¨›]Ð+ÐàÒØ—‘œuŸz™zÔ)¨i¼5¿;¹;Ô.FÜ Ø]Ð^c×^iÑ^iÐ]jÐjvð  xAð  wBð  Cóð ð ×$Ñ$ØØØ&Ò.ˆe�kŠk°Ið %ó €Fð €Mr8   c          	      ój   € V ^8„  d   QhR\         R\         R\         R\        P                  R,          /# )r@   Úmat1Ú	mat1_metaÚmat2r¾  N©r   r\   rd   )rB   s   "r6   rC   rC   (  s9   € ÷ ñ Ü
ðäðô ðô �{‰{˜TÕ!ñ	r8   c                 ób  € \        V P                  4      ^8w  d#   \        R\        V P                  4       R24      h\        VP                  4      ^8w  d#   \        R\        VP                  4       R24      h\        VP                  4      ^8w  d#   \        R\        VP                  4       R24      hV P                  ^4      VP                  ^ 4      ^,          8w  d7   \        RV P                  ^4       RVP                  ^ 4      ^,           24      hV P                  ^ 4      VP                  ^4      .pVeP   VP                  \
        P                  8X  d   V\
        P                  8X  g   \        RVP                   RV 24      hTP                  TVf   VP                  MTR	7      pV# )
r@   úmat1 must be 2D, got ÚDúmat1_meta must be 2D, got úmat2 must be 2D, got úmat1.size(1)=ú != mat2.size(0)/2=úJout_dtype is only supported for i8i8->i32 linear operator, got mat2.dtype=rÃ  r™   ©	rø   r¢   r’   rÒ   rd   r\   rÄ  rÅ  r¡   )rË  rÌ  rÍ  r¾  rÇ  r-  s   &&&&  r6   Úmeta_sparse_structured_mmrØ  '  sv  € ô ˆ4�:‰:ƒ˜!ÔÜÐ4´S¸¿¹³_Ð4EÀQÐGÓHÐHÜ
ˆ9�?‰?Ó˜qÔ ÜÐ9¼#¸i¿o¹oÓ:NÐ9OÈqÐQÓRÐRÜ
ˆ4�:‰:ƒ˜!ÔÜÐ4´S¸¿¹³_Ð4EÀQÐGÓHÐHØ‡y�y�ƒ|�t—y‘y “| aÕ'Ô'ÜØ˜DŸI™I a›L˜>Ð)<¸T¿Y¹YÀq»\ÈAÕ=MÐ<NÐOó
ð 	
ð —I‘I˜a“L $§)¡)¨A£,Ð/€LàÒØ—
‘
œeŸj™jÔ(¨Y¼%¿+¹+Ô-EÜ Ø\Ð]a×]gÑ]gÐ\hÐhtÐu~Ðtð  Aóð ð �^‰^ØØ%Ò-ˆd�jŠj°9ð ó €Fð
 €Mr8   ÚalphaÚbetar¾  c                óv   € V ^8„  d   QhR\         R\         R\         R\         R\        P                  R,          /# )r@   r  rË  rÌ  rÍ  r¾  NrÎ  )rB   s   "r6   rC   rC   H  sC   € ÷ )ñ )Üð)ä
ð)ô ð)ô ð	)ô �{‰{˜TÕ!ñ)r8   c                ó‚  € \        V P                  4      ^8w  d#   \        R\        V P                  4       R24      h\        VP                  4      ^8w  d#   \        R\        VP                  4       R24      h\        VP                  4      ^8w  d#   \        R\        VP                  4       R24      h\        VP                  4      ^8w  d#   \        R\        VP                  4       R24      hV P                  ^ 4      VP                  ^ 4      8w  d0   \        RV P                  ^ 4       RVP                  ^ 4       24      hVP                  ^4      VP                  ^ 4      ^,          8w  d7   \        R	VP                  ^4       R
VP                  ^ 4      ^,           24      hVP                  ^ 4      VP                  ^4      .pVeP   VP                  \
        P                  8X  d   V\
        P                  8X  g   \        RVP                   RV 24      hTP                  TVf   VP                  MTR7      pV# )r1   zKonly input broadcasted to columns of mat1 * mat2 product is supported, got rÂ  rÐ  rÑ  rÒ  rÓ  zUonly input broadcasted to columns of mat1 * mat2 product is supported, input.size(0)=z != mat1.size(0)=rÔ  rÕ  rÖ  rÃ  r™   r×  )	r  rË  rÌ  rÍ  rÙ  rÚ  r¾  rÇ  r-  s	   &&&&$$$  r6   Úmeta_sparse_structured_addmmrÝ  G  sÿ  € ô ˆ5�;‰;Ó˜1ÔÜØYÔZ]Ð^c×^iÑ^iÓZjÐYkÐkrÐsó
ð 	
ô ˆ4�:‰:ƒ˜!ÔÜÐ4´S¸¿¹³_Ð4EÀQÐGÓHÐHÜ
ˆ9�?‰?Ó˜qÔ ÜÐ9¼#¸i¿o¹oÓ:NÐ9OÈqÐQÓRÐRÜ
ˆ4�:‰:ƒ˜!ÔÜÐ4´S¸¿¹³_Ð4EÀQÐGÓHÐHØ‡z�z�!ƒ}˜Ÿ	™	 !›Ô$ÜðØ"ŸZ™Z¨›]˜OÐ+<¸T¿Y¹YÀq»\¸NðLó
ð 	
ð ‡y�y�ƒ|�t—y‘y “| aÕ'Ô'ÜØ˜DŸI™I a›L˜>Ð)<¸T¿Y¹YÀq»\ÈAÕ=MÐ<NÐOó
ð 	
ð —I‘I˜a“L $§)¡)¨A£,Ð/€LàÒØ—
‘
œeŸj™jÔ(¨Y¼%¿+¹+Ô-EÜ Ø\Ð]a×]gÑ]gÐ\hÐhtÐu~Ðtð  Aóð ð �^‰^ØØ%Ò-ˆd�jŠj°9ð ó €Fð
 €Mr8   c                óê   € V ^8„  d   QhR\         P                  R\         P                  R\        R,          R\        R,          R\         P                  R,          R\        R\        R	\        R
\        /	# )r@   Úcompressed_AÚdense_Br¼  NrÙ  r¾  Útranspose_resultÚalg_idÚsplit_kÚsplit_k_mode)r\   r   rd   rÂ   rÁ   )rB   s   "r6   rC   rC   u  s{   € ÷ 8<ñ 8<Ü—,‘,ð8<ä�\‰\ð8<ô �4�-ð8<ô �D�=ð	8<ô
 �{‰{˜TÕ!ð8<ô ð8<ô ð8<ô ð8<ô ñ8<r8   c	           	      ó@  € VP                   \        P                  \        P                  \        P                  \        P
                  \        P                  09  d   \        R VP                    24      hV P                   VP                   8w  d&   \        RV P                    RVP                    24      h\        VP                  4      ^8w  d#   \        R\        VP                  4       R24      hV P                   \        P
                  \        P                  39   p	VP                  ^4      p
V P                  ^ 4      pVe6   W²P                  ^ 4      8w  d!   \        RV RVP                  ^ 4       24      hVe„   V	'       dS   V\        P                  \        P                  \        P                  \        P                  \        P                  09   g*   \        RV P                    RVP                    R	V R
24      hV'       d   W«3MWº3pVP                  WÄR7      # )zA_cslt_sparse_mm only supports fp16, bf16, int8, and fp8e4m3, got z%inputs must have the same dtype, got rÐ   z-_cslt_sparse_mm only supports 2d inputs, got rÑ  zbias size mismatch: m=rÁ  zout_dtype is not supported for ú x z -> z matmul!r™   )rd   r\   r=  Úfloat16r<  rÄ  Úfloat8_e4m3fnr’   rø   r¢   rÒ   rÅ  r¡   )rß  rà  r¼  rÙ  r¾  rá  râ  rã  rä  Úis_8bit_input_typerH  ÚmÚoutput_shapes   &&&&&&&&&    r6   Úmeta__cslt_sparse_mmrì  t  sÛ  € ð ‡}�}Ü�‰Ü�‰Ü�‰Ü�
‰
Ü×Ñðô ô ØOÐPW×P]ÑP]ÈÐ_ó
ð 	
ð ×Ñ˜WŸ]™]Ô*ÜØ3°L×4FÑ4FÐ3GÀuÈWÏ]É]ÈOÐ\ó
ð 	
ô ˆ7�=‰=Ó˜QÔÜØ;¼CÀÇÁÓ<NÐ;OÈqÐQó
ð 	
ð &×+Ñ+´·
±
¼E×<OÑ<OÐ/PÑPÐà�‰�Q‹€AØ×Ñ˜!Ó€AØÒØ—	‘	˜!“ÔÜ Ø(¨¨Ð+<¸T¿Y¹YÀq»\¸NÐKóð ð ÒçØä—‘Ü—‘Ü—‘Ü—‘Ü×#Ñ#ðôô !Ø1°,×2DÑ2DÐ1EÀSÈÏÉÈÐW[Ð\eÐ[fÐfnÐoóð ÷ .�A‘6°A°6€LØ×Ñ˜\ÐÓ;Ð;r8   Úinclude_selfTc                ó€   € V ^8„  d   QhR\         R\        R\         R\        P                   R\        R\        R\         /# ©r@   r£   rŽ   r›   ÚsourceÚreducerí  rA   ©r   rÁ   r\   r¿  rÂ   )rB   s   "r6   rC   rC   ±  s[   € ÷ 	Iñ 	IÜ
ð	Iä	ð	Iô ð	Iô �L‰Lð		Iô
 ð	Iô ð	Iô ñ	Ir8   c                óN   € \         P                  ! V \         P                  R 7      # rî   ©r\   r§   rß   ©r£   rŽ   r›   rð  rñ  rí  s   &&&&&$r6   Úmeta_index_reducerö  °  s   € ô ×Ò˜D´×0GÑ0GÔHÐHr8   c                ó€   € V ^8„  d   QhR\         R\        R\         R\        P                   R\        R\        R\         /# rï  rò  )rB   s   "r6   rC   rC   ¾  sR   € ÷ 	ñ 	Ü
ð	ä	ð	ô ð	ô �L‰Lð		ô
 ð	ô ð	ô ñ	r8   c                ó   € V # rG   r2   rõ  s   &&&&&$r6   Úmeta_index_reduce_rù  ½  s	   € ð €Kr8   c                 ó¤   € \        V P                  4       4      pV P                  4       ^ 8”  d   VP                  4       W1&   V P	                  V4      # ©r   )rù   rÒ   rŽ   r    r¡   )r£   rŽ   r›   Úresult_sizes   &&& r6   Úmeta_index_selectrý  Ë  s>   € ô �t—y‘y“{Ó#€KØ‡x�xƒz�A„~Ø Ÿ;™;›=ˆÑØ�>‰>˜+Ó&Ð&r8   ÚlengthsÚoffsetsÚaxisÚunsafeÚinitialc                ó¢   € V ^8„  d   QhR\         R\        R\         R,          R\         R,          R\         R,          R\        R\        R	\         /# )
r@   rs  rñ  rþ  Nrç   rÿ  r   r  rA   )r   r¿  rÁ   rÂ   )rB   s   "r6   rC   rC   Õ  sn   € ÷  Wñ  WÜ
ð Wäð Wô �d�]ð	 Wô
 �d�]ð Wô �d�]ð Wô ð Wô ð Wô ñ Wr8   c                óÊ   a a€ Ve   \        R4      hVV 3R lpVe   V! VP                  S,          4      # Ve!   V! VP                  S,          ^,
          4      # \        R4      h)Nz?segment_reduce(): indices based reduction is not supported yet.c                 óš   <€ \        SP                  4      pWS&   \        P                  ! VSP                  R \        P
                  R7      # )r‰   ©rd   r‹   rÛ   )rù   r¢   r\   r”   rd   rß   )Úsegment_countrë  r   rs  s   & €€r6   Úsegment_reduce_outputÚ2meta_segment_reduce.<locals>.segment_reduce_outputå  s@   ø€ Ü˜DŸJ™JÓ'ˆØ*�TÑÜ�{Š{ØØ—*‘*ØÜ×1Ñ1ô	
ð 	
r8   z<segment_reduce(): Either lengths or offsets must be defined.)rÇ   r¢   r§  )	rs  rñ  rþ  rç   rÿ  r   r  r  r  s	   f&$$$d$$ r6   Úmeta_segment_reducer
  Ô  si   ù€ ð ÒÜ!ØMó
ð 	
ö
ð ÒÙ$ W§]¡]°4Õ%8Ó9Ð9ð ÒÙ$ W§]¡]°4Õ%8¸1Õ%<Ó=Ð=Ü
ÐUÓ
VÐVr8   c                 ó$   € V P                  R4      # ©Nr2   ©r¡   rà   s   &r6   Úmeta_maxr  ø  ó   € ð �>‰>˜"ÓÐr8   c                 óÂ   € \         P                  ! V P                  V34      p\        WV4      pV P	                  V4      V P	                  V\
        P                  R 7      3# ©r™   ©rU   Úreduction_dimsr¢   Ú_compute_reduction_shaper¡   r\   rž   ©r£   rŽ   Úkeepdimrë  s   &&& r6   Úmeta_max_dimr  þ  óP   € ä
×
Ò
˜tŸz™z¨C¨6Ó
2€CÜ+¨D°wÓ?€Là�‰�|Ó$Ø�‰�|¬5¯:©:ˆÓ6ðð r8   c                 ó$   € V P                  R4      # r  r  rà   s   &r6   Úmeta_minr    r  r8   c                 óÂ   € \         P                  ! V P                  V34      p\        WV4      pV P	                  V4      V P	                  V\
        P                  R 7      3# r  r  r  s   &&& r6   Úmeta_min_dimr    r  r8   c                 óÂ   € V P                  4       '       d   \        V P                  4      pM\        V \        P
                  R 7      w  r!\        P                  ! WR7      # ©©rT   r™   )r%  r   rd   r   r   ÚINT_TO_FLOATr\   r§   )r£   rY   rX   s   &  r6   Ú
meta_angler!    sH   € à‡�×ÒÜ/°·
±
Ó;‰ä,ØÜ ?× LÑ Lô
‰ˆô ×Ò˜DÔ5Ð5r8   c                 óª   € \         P                  ! WP                  4       V P                  4       VP	                  \         P
                  ! V 4      4      # rG   )r\   Ú_resize_output_rÒ   r‹   Úcopy_Úangle)r£   r  s   &&r6   Úmeta_angle_outr&  $  s4   € ä	×Ò˜#Ÿy™y›{¨D¯K©KÔ8Ø�9‰9”U—[’[ Ó&Ó'Ð'r8   c                 ó   € R # rG   r2   ©Úvals   &r6   Úassert_asyncr*  *  ó   € á
r8   c                 ó   € R # rG   r2   )r)  Ú
assert_msgs   &&r6   Úassert_async_metar.  /  r+  r8   c                 ó   € R # rG   r2   )Úss   &r6   Ú
print_metar1  4  r+  r8   rÛ   c                 ó2   € \         P                  ! RR R7      # )r‰   r…  r2   rM  ©rd   rŠ   r‹   rŒ   rÛ   s   $$$$$r6   Úmake_dep_tokenr4  9  s   € ô �;Š;�r &Ô)Ð)r8   c                 ót   € ^ RI Hp \        V \        \        34      '       d   \        R4      hV! WVR7       R# )r   )Úconstrain_rangeú'Constraining SymFloat or Symbool is nyi©r*  ÚmaxN)rÈ   r6  rx   r
   r	   Ú
ValueError)rÒ   r*  r9  r6  s   &&& r6   Úsym_constrain_ranger;  E  s0   € õ Fä�$œ¤7Ð+×,Ò,ÜÐBÓCÐCÙ�D s×+r8   c                 ó4   € \         P                  WVR 7       V# ©r8  )r,   r;  ©rÒ   r*  r9  Ú	dep_tokens   &&&&r6   Úfunctional_sym_constrain_ranger@  O  s   € ä×Ñ˜T°ÐÔ4ØÐr8   c                 óT  € ^ RI Hp Vf    Vf   \        P                  ! V ^ 8¬  4       R# \	        V \
        \        34      '       d   \        R4      h\        V 4      \        J d;   Ve   \        P                  ! W8¬  4       Ve   \        P                  ! W8*  4       R# V! WVR7       R# )r   )Ú_constrain_range_for_sizeNr7  r8  )
rÈ   rB  r\   rn   rx   r
   r	   r:  rƒ   rÁ   )rÒ   r*  r9  rB  s   &&& r6   Úsym_constrain_range_for_sizerC  U  s�   € õ Pà
‚{�s’{Ü�Š�T˜Q‘YÔÙä�$œ¤7Ð+×,Ò,ÜÐBÓCÐCÜˆDƒz”SÓØŠ?Ü�LŠL˜™Ô%ØŠ?Ü�LŠL˜™Ô%ÙÙ˜d°×5r8   c                 ó4   € \         P                  WVR 7       V# r=  )r,   rC  r>  s   &&&&r6   Ú'functional_sym_constrain_range_for_sizerE  i  s   € ä×%Ñ% d¸Ð%Ô=ØÐr8   c                 ó   € V# rG   r2   )r)  r-  r?  s   &&&r6   Úfunctional_assert_async_metarG  o  s   € àÐr8   c                ó0   € V ^8„  d   QhR\         R\        /# )r@   r£   Úf_name©r   r¿  )rB   s   "r6   rC   rC   u  s   € ÷ 
ñ 
œFð 
¬Cñ 
r8   c                 óê   a a€ S P                  4       ^8  d   \        S RS P                  4        24      h\        P                  ! S P	                  R4      S P	                  R4      8H  VV 3R l4       R# )r@   z8: The input tensor must have at least 2 dimensions, got c                  óV   <€ S  R SP                  R4       RSP                  R4       R2# )z5: A must be batches of square matrices, but they are ú by ú	 matriceséþÿÿÿr÷   rÑ   )rI  r£   s   €€r6   rk   Ú#squareCheckInputs.<locals>.<lambda>}  s/   ø€ �6�(ð ØŸ	™	 "›� d¨4¯9©9°R«=¨/¸ñDr8   Nr÷   rO  )rŽ   r’   r\   rn   rÒ   )r£   rI  s   ffr6   rÝ   rÝ   u  s^   ù€ Ø‡x�xƒz�A„~ÜØˆhÐNÈtÏxÉxËzÈlÐ[ó
ð 	
ô 
‡L‚LØ�	‰	�"‹˜Ÿ™ 2›Ñ&õ	Dör8   c                ó<   € V ^8„  d   QhR\         R\         R\        /# )r@   r£   ÚAÚnamerJ  )rB   s   "r6   rC   rC   …  s!   € ÷  ñ  ¤ð  ¬Fð  ¼#ñ  r8   c                 óÌ  a aa€ \         P                  ! S P                  SP                  8H  VV 3R  l4       \         P                  ! S P                  SP                  8H  VV 3R l4       \         P                  ! SP	                  R4      SP	                  R4      8H  V3R l4       \         P                  ! SP	                  R4      S P	                  R4      8H  VVV 3R l4       R# )c                  ó>   <€ R SP                    RS P                    R2# )z:Expected b and A to be on the same device, but found b on z
 and A on ú	 instead.r…  ©rR  r£   s   €€r6   rk   Ú(linearSolveCheckInputs.<locals>.<lambda>ˆ  s    ø€ ØHØ�{‰{ˆm˜: a§h¡h Z¨yñ:r8   c                  ó>   <€ R SP                    RS P                    R2# )z=Expected b and A to have the same dtype, but found b of type z and A of type rV  r™   rW  s   €€r6   rk   rX  �  s    ø€ ØKØ�z‰zˆl˜/¨!¯'©'¨°)ñ=r8   c                  óR   <€ R S P                  R4       RS P                  R4       R2# )z3A must be batches of square matrices, but they are rM  rN  rO  r÷   rÑ   ©rR  s   €r6   rk   rX  ˜  s+   ø€ ðØŸF™F 2›J˜< t¨A¯F©F°2«J¨<°yñBr8   c                  óž   <€ R S RS P                  R4       RS P                  R4       RSP                  R4       RSP                  R4       2
# )zIncompatible matrix sizes for z: each A matrix is rM  z but each b matrix is r÷   rO  rÑ   )rR  rS  r£   s   €€€r6   rk   rX     sM   ø€ Ø,¨T¨Fð 3ØŸ™ ›˜ D¨¯©°«¨Ø$ T§Y¡Y¨r£] O°4¸¿	¹	À"»°ñHr8   Nr÷   rO  )r\   rn   r‹   rd   rÒ   )r£   rR  rS  s   fffr6   ÚlinearSolveCheckInputsr]  …  s�   ú€ Ü	‡L‚LØ�‰�q—x‘xÑõ	
ôô 
‡L‚LØ�
‰
�a—g‘gÑõ	
ôô 
‡L‚LØ	�‰ˆr‹
�a—f‘f˜R“jÑ ô	
ôô 
‡L‚LØ	�‰ˆr‹
�d—i‘i “mÑ#ö	
ör8   c                ó<   € V ^8„  d   QhR\         R\        R\        /# )r@   ÚtrI  rä   ©r   r¿  rÂ   )rB   s   "r6   rC   rC   ©  s&   € ÷ 
ñ 
Üð
äð
ô !%ñ
r8   c                 óp  aa€ V P                   o\        P                  ! V P                  4       ;'       g    V P	                  4       VV3R  l4       V'       g^   \        P                  ! S\        P
                  \        P                  \        P                  \        P                  39   VV3R l4       R# R# )c                  ó   <€ S R S  2# )z<: Expected a floating point or complex tensor as input. Got r2   ©rd   rI  s   €€r6   rk   Ú(checkFloatingOrComplex.<locals>.<lambda>±  s   ø€ �6�(ÐVÐW\ÐV]Ñ^r8   c                  ó   <€ S R S  2# )z*: Low precision dtypes not supported. Got r2   rc  s   €€r6   rk   rd  ¶  s   ø€ �v�hÐHÈÈÑPr8   N)	rd   r\   rn   r;  r%  r`   rb   r_   ra   )r_  rI  rä   rd   s   &f&@r6   rÞ   rÞ   ©  sq   ù€ ð
 �G‰G€EÜ	‡L‚LØ	×ÑÓ×/Ð/ §¡£Ý^ô÷ &Ü�ŠØ”e—k‘k¤5§<¡<´·±¼u¿}¹}ÐMÑMÝPö	
ñ &r8   c                ó<   € V ^8„  d   QhR\         R\        R\        /# )r@   rR  rI  Úarg_namerJ  )rB   s   "r6   rC   rC   »  s!   € ÷ ñ ”Vð ¤Sð ´Cñ r8   c                 ód   aa€ \         P                  ! V P                  4       ^8¬  VV3R l4       R# )r@   c                  ó   <€ S R S  R2# )z: The input tensor z! must have at least 2 dimensions.r2   )rg  rI  s   €€r6   rk   ÚcheckIsMatrix.<locals>.<lambda>¾  s   ø€ �6�(Ð-¨h¨ZÐ7XÑYr8   N)r\   rn   rŽ   )rR  rI  rg  s   &ffr6   ÚcheckIsMatrixrk  »  s   ù€ Ü	‡L‚LØ	�‰‹�1‰ÝYör8   c                óH   € V ^8„  d   QhR\         R\         R\        R\        /# )r@   rR  ÚBr
  rI  ©r   rÂ   r¿  )rB   s   "r6   rC   rC   Â  s(   € ÷ 
ñ 
œð 
¤Fð 
´$ð 
Äñ 
r8   c                 ó  a aaa€ \        S S4       \        SS4       \        P                  ! S'       d$   S P	                  R4      SP	                  R4      8H  M"S P	                  R4      SP	                  R4      8H  V VVV3R l4       R# )r@   c                  ó¸   <€ S R S'       d   RMR RS P                  R4       RS P                  R4       RSP                  R4       RSP                  R4       R2# )	z2: Incompatible shapes of A and B for the equation zAX = BzXA = Bz (r;   rÐ   r‚   rO  r÷   rÑ   )rR  rm  rI  r
  s   €€€€r6   rk   Ú#checkInputsSolver.<locals>.<lambda>Ç  sV   ø€ ØˆhÐHß‰x XÐ.Ø�—‘˜“�˜A˜aŸf™f R›j˜\¨¨q¯v©v°b«z¨l¸!¸A¿F¹FÀ2»J¸<ÀqñJr8   NrO  r÷   )rÝ   rk  r\   rn   rÒ   )rR  rm  r
  rI  s   ffffr6   ÚcheckInputsSolverrr  Â  sY   û€ Ü�a˜Ô Ü�!�VÔÜ	‡L‚Lß$(ˆ�‰ˆr‹
�a—f‘f˜R“jÒ ¨a¯f©f°R«j¸A¿F¹FÀ2»JÑ.F÷	
ör8   Úresultc                óH   € V ^8„  d   QhR\         R\        R\        R\         /# )r@   Úfn_namers  r  Úresult_name)r¿  r   )rB   s   "r6   rC   rC   Ï  s0   € ÷ ñ Üðäðô ðô ñ	r8   c                 óx   a aaa€ \         P                  ! SP                  SP                  8H  V VVV3R  l4       R# )c            	      óL   <€ S  R S RS RSP                    RSP                    2	# )z: Expected z5 and input tensors to be on the same device, but got z on z and input on r…  )ru  r  rs  rv  s   €€€€r6   rk   Ú!checkSameDevice.<locals>.<lambda>×  s0   ø€ Øˆi�{ ; -Ð/dØˆm˜4 §¡˜¨n¸U¿\¹\¸NñLr8   N)r\   rn   r‹   )ru  rs  r  rv  s   ffffr6   ÚcheckSameDevicerz  Ï  s&   û€ ô 
‡L‚LØ�‰˜Ÿ™Ñ%÷	
ör8   c                ó$   € V ^8„  d   QhR\         /# )r@   ÚUPLO©r¿  )rB   s   "r6   rC   rC   Þ  s   € ÷ ñ ”Cñ r8   c                 óª   a € S P                  4       p\        P                  ! \        S 4      ^8H  ;'       d    VR8H  ;'       g    VR8H  V 3R l4       R# )r1   ÚUÚLc                  ó   <€ R S  2# )z1Expected UPLO argument to be 'L' or 'U', but got r2   )r|  s   €r6   rk   ÚcheckUplo.<locals>.<lambda>â  s   ø€ ÐCÀDÀ6ÑJr8   N)Úupperr\   rn   rø   )r|  ÚUPLO_uppercases   f r6   Ú	checkUplor…  Þ  sB   ø€ Ø—Z‘Z“\€NÜ	‡L‚LÜˆD‹	�Q‰×KÐK˜N¨cÑ1×JÐJ°^ÀsÑ5JÜJör8   ÚeigenvaluesÚeigenvectorsr€  c                ó<   € V ^8„  d   QhR\         R\        R\        /# )r@   rR  r|  Ú	compute_vr`  )rB   s   "r6   rC   rC   è  s!   € ÷ ñ œð ¤sð ¼Tñ r8   c                 ó^  € \        V R 4       \        V4       \        V P                  4      pV'       d0   V P	                  V4      pVP                  V\        VRR7      4       MV P	                  ^ .4      pVP                  4        V P	                  V\        V P                  4      R7      pWT3# )zlinalg.eighF©Ú	row_majorr™   )
rÝ   r…  rù   r¢   r¡   r   r   Úpoprf   rd   )rR  r|  r‰  r¢   ÚvecsÚvalss   &&&   r6   Úmeta__linalg_eighr�  æ  s‡   € ô �a˜Ô'Üˆd„Oä�—‘‹M€EßØ�{‰{˜5Ó!ˆØ×Ñ˜Ô ;¸EÈUÔ SÕTà�{‰{˜A˜3Óˆà	‡I�I„KØ�;‰;�u¤O°A·G±GÓ$<ˆ;Ó=€Dàˆ:Ðr8   c                ó0   € V ^8„  d   QhR\         R\         /# )r@   r  rA   ©r   )rB   s   "r6   rC   rC   û  s   € ÷ Bñ B¤ð B¬6ñ Br8   c                 óþ   € \        V R 4       \        P                  ! V P                  4      '       d   V P                  M\        P                  ! V P                  4      pV P                  V P                  RR VR7      # )zlinalg.eigvalsNr™   r÷   )rÝ   rU   r‘   rd   r   r¡   r¢   )r  Úcomplex_dtypes   & r6   Úmeta__linalg_eigvalsr•  ù  sf   € ô �eÐ-Ô.ô ×!Ò! %§+¡+×.Ò.ð 	�Šä×.Ò.¨u¯{©{Ó;ð ð
 �?‰?˜5Ÿ;™; s¨Ð+°=ˆ?ÓAÐAr8   c                ó$   € V ^8„  d   QhR\         /# )r@   r  r’  )rB   s   "r6   rC   rC     s   € ÷ ñ œ6ñ r8   c                 ó¼  € \        V R 4       \        P                  ! V P                  4      '       d   V P                  M\        P                  ! V P                  4      pV P                  V P                  RR VR7      pV P                  V P                  VR7      p\        V 4      R8H  pVP                  V P                  \        V P                  VR7      4       W#3# )z
linalg.eigNr™   r  r‹  r÷   )
rÝ   rU   r‘   rd   r   r¡   r¢   r&  r   r   )r  r”  ræ   ÚvectorsÚis_cudas   &    r6   Úmeta_linalg_eigrš    s¸   € ô �e˜\Ô*ô ×!Ò! %§+¡+×.Ò.ð 	�Šä×.Ò.¨u¯{©{Ó;ð ð
 �_‰_˜UŸ[™[¨¨"Ð-°]ˆ_ÓC€FØ�o‰o˜eŸk™k°ˆoÓ?€Gô ˜%Ó  FÑ*€GØ×ÑØ�‰Ô0°·±ÈÔPôð ˆ?Ðr8   c                ó0   € V ^8„  d   QhR\         R\         /# )r@   r­   rA   r’  )rB   s   "r6   rC   rC     s   € ÷ Qñ Q¤ð Q¬Fñ Qr8   c                 óv   € V P                   P                  \        P                  R 7      P	                  RR4      # )rÚ   rO  r÷   )ÚmTrÉ   r\   rß   Ú	transpose)r­   s   &r6   ÚcloneBatchedColumnMajorrŸ    s*   € Ø�6‰6�<‰<¤e×&=Ñ&=ˆ<Ó>×HÑHÈÈRÓPÐPr8   c                óH   € V ^8„  d   QhR\         R\         R\        R\         /# ©r@   r£   rR  rƒ  rA   ©r   rÂ   )rB   s   "r6   rC   rC      s(   € ÷ )ñ )¤ð )¬Fð )¼4ð )ÄFñ )r8   c                 ó   € \        V 4      # rG   )rŸ  )r£   rR  rƒ  s   &&&r6   Ú_cholesky_solve_helperr¤    s   € ô # 4Ó(Ð(r8   c                óH   € V ^8„  d   QhR\         R\         R\        R\         /# r¡  r¢  )rB   s   "r6   rC   rC   &  s.   € ÷ Jñ Jœð J¤Fð J´4ð JÄFñ Jr8   c                 óÜ   a a€ \         P                  ! S P                  ^8¬  V 3R l4       \         P                  ! SP                  ^8¬  V3R l4       \        S SR4      w  r4\	        W4V4      # )r@   c                  ó$   <€ R S P                    R2# )z-b should have at least 2 dimensions, but has ú dimensions instead©rÔ   rà   s   €r6   rk   Ú cholesky_solve.<locals>.<lambda>)  s   ø€ Ð?ÀÇ	Á	¸{ÐJ]Ñ^r8   c                  ó$   <€ R S P                    R2# )z-u should have at least 2 dimensions, but has r¨  r©  r[  s   €r6   rk   rª  -  s   ø€ Ð?ÀÇÁ¸xÐGZÑ[r8   Úcholesky_solve)r\   rn   rÔ   Ú!_linalg_broadcast_batch_dims_namer¤  )r£   rR  rƒ  Úself_broadcastedÚA_broadcasteds   ff&  r6   r¬  r¬  $  sd   ù€ ô 
‡L‚LØ�	‰	�Q‰Ü^ôô 
‡L‚LØ	�‰�!‰Ü[ôô 'HØˆaÐ!ó'Ñ#Ðô "Ð"2À5ÓIÐIr8   c                ó<   € V ^8„  d   QhR\         R\        R\         /# )r@   r£   rƒ  rA   r¢  )rB   s   "r6   rC   rC   7  s!   € ÷ )ñ )œ6ð )¬$ð )¼6ñ )r8   c                 ó0   € \        V R 4       \        V 4      # )Úcholesky_inverse)rÝ   rŸ  )r£   rƒ  s   &&r6   r²  r²  5  s   € ô �dÐ.Ô/Ü" 4Ó(Ð(r8   c                ó<   € V ^8„  d   QhR\         R\        R\        /# )r@   rR  rƒ  Úcheck_errorsr¢  )rB   s   "r6   rC   rC   >  s!   € ÷ ñ œ&ð ¬ð ÄTñ r8   c                 ó  € \        V R 4       \        V R 4       V P                  p\        V4      p\	        VR4      pV P                  V4      pVP                  W54       V P                  V^ V^,
           \        P                  R7      pWg3# )zlinalg.choleskyFr™   )	rÝ   rÞ   r¢   rø   r   r¡   r   r\   rÅ  )rR  rƒ  r´  ÚA_shaperÔ   Ú	L_stridesr€  Úinfoss   &&&     r6   Úlinalg_cholesky_exr¹  =  s|   € ä�aÐ*Ô+Ü˜1Ð/Ô0à�g‰g€GÜˆw‹<€Dô ,¨G°UÓ;€IØ	�‰�GÓ€AØ‡M�M�'Ô%ð �K‰K˜  D¨1¥HÐ-´U·[±[ˆKÓA€EØˆ8€Or8   c                ó<   € V ^8„  d   QhR\         R\         R\         /# )r@   r  ÚtaurA   r’  )rB   s   "r6   rC   rC   S  s!   € ÷ .ñ .¤fð .´6ð .¼fñ .r8   c                 ó`  a aa€ \         P                  ! S P                  ^8¬  R 4       \         P                  ! S P                  R4      S P                  R4      8¬  R 4       \         P                  ! S P                  R4      SP                  R4      8¬  R 4       \         P                  ! S P                  SP                  ,
          ^8H  V V3R l4       S P                  ^8”  d=   S P                  RR pSP                  RR o\         P                  ! SV8H  V3R l4       \         P                  ! SP
                  S P
                  8H  V V3R l4       \        RSS R	4       \         P                  ! S P                  \        S P                  R
R7      S P
                  S P                  R7      # )r@   c                  ó   € R # )zHtorch.linalg.householder_product: input must have at least 2 dimensions.r2   r2   r8   r6   rk   Ú,linalg_householder_product.<locals>.<lambda>V  ó   € ÑZr8   c                  ó   € R # )zbtorch.linalg.householder_product: input.shape[-2] must be greater than or equal to input.shape[-1]r2   r2   r8   r6   rk   r¾  Z  s   € Ñtr8   c                  ó   € R # )z`torch.linalg.householder_product: input.shape[-1] must be greater than or equal to tau.shape[-1]r2   r2   r8   r6   rk   r¾  ^  s   € Ñrr8   c                  ó<   <€ R SP                    RS P                    2# )zptorch.linalg.householder_product: Expected tau to have one dimension less than input, but got tau.ndim equal to ú and input.ndim is equal to r©  ©r  r»  s   €€r6   rk   r¾  c  ó"   ø€ ð)Ø),¯©¨
Ð2NÈuÏzÉzÈlñ\r8   Nc                  ó   <€ R S  2# )zltorch.linalg.householder_product: Expected batch dimensions of tau to be equal to input.shape[:-2], but got r2   ©Úactual_batch_tau_shapes   €r6   rk   r¾  m  ó   ø€ ð6Ø6LÐ5MñOr8   c                  ó<   <€ R SP                    RS P                    2# )z,torch.linalg.householder_product: tau dtype z does not match input dtype r™   rÄ  s   €€r6   rk   r¾  u  s   ø€ Ø:¸3¿9¹9¸+Ø*¨5¯;©;¨-ñ9r8   z torch.linalg.householder_productr»  Fr‹  ©rÒ   rû   rd   r‹   rO  r÷   )
r\   rn   rÔ   rÒ   r¢   rd   rz  Úempty_stridedr   r‹   )r  r»  Úexpected_batch_tau_shaperÈ  s   ff @r6   Úlinalg_householder_productrÎ  O  sK  ú€ ô
 
‡L‚LØ�
‰
�a‰ÙZôô 
‡L‚LØ�
‰
�2‹˜%Ÿ*™* R›.Ñ(Ùtôô 
‡L‚LØ�
‰
�2‹˜#Ÿ(™( 2›,Ñ&Ùrôô
 
‡L‚LØ�
‰
�S—X‘XÕ Ñ"õ	
ôð ‡z�z�A„~Ø#(§;¡;¨s°Ð#3Ð Ø!$§¡¨3¨B ÐÜ�ŠØ"Ð&>Ñ>ôô	
ô 
‡L‚LØ�	‰	�U—[‘[Ñ õ	
ôô Ð6¸¸UÀEÔJä×ÒØ�[‰[Ü*¨5¯;©;À%ÔHØ�k‰kØ�|‰|ô	ð r8   c                ó0   € V ^8„  d   QhR\         R\        /# )r@   rR  r´  r¢  )rB   s   "r6   rC   rC   †  s   € ÷ ñ œ&ð ´ñ r8   c                 ó0  € \        V R 4       \        V R RR7       V P                  V P                  4      pVP	                  V P                  \        V P                  RR7      4       V P                  V P                  RR \        P                  R7      pW#3# )zlinalg.inv_exFrã   r‹  Nr™   rO  ©rÝ   rÞ   r¡   r¢   r   r   r\   rÅ  )rR  r´  r€  r¸  s   &&  r6   Úlinalg_inv_ex_metarÒ  …  so   € ä�a˜Ô)Ü˜1˜oÈ%ÕPà	�‰�A—G‘GÓ€AØ‡M�M�!—'‘'Ô6°q·w±wÈ%ÔPÔQà�K‰K˜Ÿ™  ˜¬E¯K©KˆKÓ8€EØˆ8€Or8   ÚLDÚpivotsÚinfoÚ	hermitianr´  c                ót   € V ^8„  d   QhR\         R\        R\        R\        \         \         \         3,          /# )r@   r£   rÖ  r´  rA   ©r   rÂ   rm   )rB   s   "r6   rC   rC   “  s>   € ÷ ñ Ü
ðô ðô ð	ô
 Œ6”6œ6Ð!Õ"ñr8   c                óŒ  € \        V R 4       \        V R 4       \        P                  ! V P                  \        V P                  RR7      V P                  V P                  R7      pV P                  V P                  RR \        P                  R7      pV P                  V P                  RR \        P                  R7      pW4V3# )ztorch.linalg.ldl_factor_exFr‹  rË  Nr™   r÷   rO  )
rÝ   rÞ   r\   rÌ  r¢   r   rd   r‹   r¡   rÁ   )r£   rÖ  r´  rÓ  rÔ  rÕ  s   &$$   r6   Úlinalg_ldl_factor_ex_metarÚ  ‘  sš   € ô �dÐ8Ô9Ü˜4Ð!=Ô>Ü	×	Ò	Ø�Z‰ZÜ*¨4¯:©:ÀÔGØ�j‰jØ�{‰{ô	
€Bð �^‰^˜DŸJ™J s¨˜O´5·9±9ˆ^Ó=€FØ�>‰>˜$Ÿ*™* S b˜/´·±ˆ>Ó;€DØ�tÐÐr8   c          
      óT   € V ^8„  d   QhR\         R\         R\         R\        R\         /# )r@   rÓ  rÔ  rm  rÖ  rA   r¢  )rB   s   "r6   rC   rC   ¨  s:   € ÷ 'ñ 'Üð'äð'ô ð'ô
 ð'ô ñ'r8   c                óv  a aa€ \        S R 4       \        S R 4       \        SS R 4       \        P                  ! SP
                  ^8¬  V3R l4       S P                  RR	 p\        P                  ! VSP                  8H  V3R l4       \        P                  ! \        P                  ! SP                  4      V3R l4       \        P                  ! S P                  SP                  8H  VV 3R l4       \        SS 4      w  rV\        P                  ! V\        VRR7      SP                  SP                  R7      # )
ztorch.linalg.ldl_solvec                  ó$   <€ R S P                    R2# )zMtorch.linalg.ldl_solve: Expected B to have at least 2 dimensions, but it has r¨  r©  )rm  s   €r6   rk   Ú'linalg_ldl_solve_meta.<locals>.<lambda>´  ó   ø€ ðØŸ&™&˜Ð!4ñ6r8   Nc                  ó$   <€ R S P                    R2# )zjtorch.linalg.ldl_solve: Expected LD.shape[:-1] and pivots.shape to be the same, but got pivots with shape ú insteadra  ©rÔ  s   €r6   rk   rÞ  ¼  ó   ø€ ð)Ø)/¯©¨°hñ@r8   c                  ó"   <€ R S P                    2# )z<torch.linalg.ldl_solve: Expected pivots to be integers. Got r™   râ  s   €r6   rk   rÞ  Ã  s   ø€ ÐNÈvÏ|É|ÈnÑ]r8   c                  ó<   <€ R SP                    RS P                    2# )z!torch.linalg.ldl_solve: LD dtype z does not match b dtype r™   )rm  rÓ  s   €€r6   rk   rÞ  Ç  s    ø€ Ð3°B·H±H°:Ð=UÐVW×V]ÑV]ÐU^Ñ_r8   Fr‹  rË  r÷   )rÝ   rÞ   r]  r\   rn   rÔ   r¢   rU   Úis_integer_dtyperd   Ú_linalg_broadcast_batch_dimsrÌ  r   r‹   )rÓ  rÔ  rm  rÖ  Úexpected_pivots_shapeÚB_broadcast_sizerX   s   fff$   r6   Úlinalg_ldl_solve_metarê  ¦  sø   ú€ ô �bÐ2Ô3Ü˜2Ð7Ô8Ü˜1˜bÐ":Ô;Ü	‡L‚LØ	�‰�!‰ô	
ôð ŸH™H S b˜MÐÜ	‡L‚LØ §¡Ñ-ô	
ôô 
‡L‚LÜ×Ò˜vŸ|™|Ó,Ü]ôô 
‡L‚LØ
�‰�A—G‘GÑÝ_ôô 7°q¸"Ó=ÑÐÜ×ÒØÜ*Ð+;ÀuÔMØ�g‰gØ�x‰xô	ð r8   ÚPr  Úpivotc          	      óh   € V ^8„  d   QhR\         R\        R\        \         \         \         3,          /# )r@   rR  rì  rA   rØ  )rB   s   "r6   rC   rC   Ô  s-   € ÷ ñ ”fð ¬ð ¼¼fÄfÌfÐ>TÕ8Uñ r8   c                ó|  a € \         P                  ! S P                  ^8¬  V 3R l4       \        S P                  4      pVR,          pVR,          p\        W44      pW2R&   V'       d   S P                  V4      pMS P                  ^ .4      pWRR&   S P                  V4      pWRR&   WBR&   S P                  V4      pWgV3# )r@   c                  ó$   <€ R S P                    R2# )z@linalg.lu: Expected tensor with 2 or more dimensions. Got size: rá  ra  r[  s   €r6   rk   Ú linalg_lu_meta.<locals>.<lambda>×  s   ø€ ÐRÐST×SZÑSZÐR[Ð[cÑdr8   rO  r÷   )r\   rn   rÔ   rù   r¢   r   r¡   )	rR  rì  Úsizesrê  rH  Úkrë  r€  r  s	   f$       r6   Úlinalg_lu_metaró  Ò  s«   ø€ ô 
‡L‚LØ	�‰�!‰Üdôô
 �—‘‹M€EØˆb�	€AØˆb�	€Aä�‹€Aàˆ"�IßØ�K‰K˜Ó‰à�K‰K˜˜Óˆàˆ"�IØ	�‰�EÓ€Aàˆ"�IØˆ"�IØ	�‰�EÓ€AØ�ˆ7€Nr8   ÚLUc                ót   € V ^8„  d   QhR\         R\        R\        R\        \         \         \         3,          /# )r@   rR  rì  r´  rA   rØ  )rB   s   "r6   rC   rC   ñ  s>   € ÷  ñ  Üð ô ð ô ð	 ô
 Œ6”6œ6Ð!Õ"ñ r8   c                óü  a € \         P                  ! S P                  ^8¬  V 3R l4       \        S P                  4      pVR,          pVR,          p\         P
                  ! V\        VRR7      S P                  S P                  R7      pVP                  4        \        WE4      VR&   S P                  V\         P                  R7      pVP                  4        S P                  V\         P                  R7      pWgV3# )r@   c                  ó$   <€ R S P                    R2# )zFtorch.lu_factor: Expected tensor with 2 or more dimensions. Got size: rá  ra  r[  s   €r6   rk   Ú*linalg_lu_factor_ex_meta.<locals>.<lambda>ù  s   ø€ ÐXÐYZ×Y`ÑY`ÐXaÐaiÑjr8   Fr‹  rË  r™   rO  r÷   )r\   rn   rÔ   rù   r¢   rÌ  r   rd   r‹   r�  r   r¡   rÁ   )	rR  rì  r´  rñ  rê  rH  rô  rÔ  rÕ  s	   f$$      r6   Úlinalg_lu_factor_ex_metarù  ï  sÅ   ø€ ô 
‡L‚LØ	�‰�!‰Üjôô
 �—‘‹M€EØˆb�	€AØˆb�	€Aä	×	Ò	ØÜ*¨5¸EÔBØ�g‰gØ�x‰xô	
€Bð 
‡I�I„Kä˜“€Eˆ"�IØ�[‰[˜¤e§i¡iˆ[Ó0€Fð 
‡I�I„KØ�;‰;�u¤E§I¡Iˆ;Ó.€Dà�tÐÐr8   r
  Úadjointc                ó`   € V ^8„  d   QhR\         R\         R\         R\        R\        R\         /# )r@   rô  rÔ  rm  r
  rú  rA   r¢  )rB   s   "r6   rC   rC     sD   € ÷ 4ñ 4Üð4äð4ô ð4ô
 ð4ô ð4ô ñ4r8   c                ó  a aa€ \        S R 4       \        P                  ! S P                  SP                  8H  VV 3R l4       \        P                  ! SP                  \        P                  8H  R 4       \        S R 4       \        S SVR4       \        P                  ! S P                  R	4      SP                  R	4      8H  R 4       \        P                  ! S P                  RR	 SP                  8H  V3R l4       \        SS 4      w  rV\        P                  ! V\        WS'       * R7      SP                  SP                  R7      pVP                  4       ^ 8w  d/   V'       g'   VP                  4       '       d   VP                  4       pV# )
ztorch.linalg.lu_solvec                  ó>   <€ R SP                    RS P                    R2# )zPlinalg.lu_solve: Expected LU and B to have the same dtype, but found LU of type ú and B of type rá  r™   )rm  rô  s   €€r6   rk   Ú&linalg_lu_solve_meta.<locals>.<lambda>"  s#   ø€ ð$Ø$&§H¡H :¨_¸Q¿W¹W¸IÀXñOr8   c                  ó   € R # )zElinalg.lu_solve: pivots should be a Tensor of scalar type torch.int32r2   r2   r8   r6   rk   rÿ  )  s   € ÑWr8   zlinalg.lu_solvec                  ó   € R # )zYlinalg.lu_solve: Number of pivots per batch should be same as the dimension of the matrixr2   r2   r8   r6   rk   rÿ  1  s   € Ñkr8   Nc                  ó$   <€ R S P                    R2# )zclinalg.lu_solve: Expected LU.shape[:-1] and pivots.shape to be the same, but got pivots with shape rá  ra  râ  s   €r6   rk   rÿ  7  rã  r8   r‹  rË  r÷   )rÞ   r\   rn   rd   rÁ   rÝ   rr  rÒ   r¢   rç  rÌ  r   r‹   r    r%  Úconj)rô  rÔ  rm  r
  rú  ré  rX   rs  s   fff$$   r6   Úlinalg_lu_solve_metar    s-  ú€ ô ˜2Ð6Ô7Ü	‡L‚LØ
�‰�A—G‘GÑõ	
ôô 
‡L‚LØ�‰œŸ	™	Ñ!ÙWôô �bÐ1Ô2Ü�b˜!˜TÐ#4Ô5Ü	‡L‚LØ
�‰�‹�v—{‘{ 2“Ñ&Ùkôô 
‡L‚LØ
�‰��"ˆ˜Ÿ™Ñ%ô	
ôô 7°q¸"Ó=ÑÐä× Ò ØÜ*Ð+;ÄxÔPØ�g‰gØ�x‰xô	€Fð ‡|�|ƒ~˜Ô§4Ø×Ñ×ÒØ—[‘[“]ˆFà€Mr8   c                ó€   € V ^8„  d   QhR\         R\         R\        R\        R\        \         \         \         3,          /# )r@   rô  rÔ  Úunpack_dataÚunpack_pivotsrA   rØ  )rB   s   "r6   rC   rC   O  sF   € ÷ $ñ $Üð$äð$ô ð$ô ð	$ô
 Œ6”6œ6Ð!Õ"ñ$r8   c                 óL  a € \         P                  ! S P                  ^8¬  V 3R l4       V'       d4   \         P                  ! VP                  \         P                  8H  R 4       \        S P                  4      pVR,          pVR,          p\        WV4      pWTR&   V'       d   S P                  V4      pMS P                  ^ .4      pV'       d0   WtR&   S P                  V4      p	WtR&   WdR&   S P                  V4      p
M$S P                  ^ .4      p	S P                  ^ .4      p
W‰V
3# )r@   c                  ó$   <€ R S P                    R2# )zFtorch.lu_unpack: Expected tensor with 2 or more dimensions. Got size: rá  ra  )rô  s   €r6   rk   Ú lu_unpack_meta.<locals>.<lambda>W  s   ø€ ÐXÐY[×YaÑYaÐXbÐbjÑkr8   c                  ó   € R # )z´torch.lu_unpack: LU_pivots is expected to be a contiguous tensor of torch.int32 dtype.
Note: this function is intended to be used with the output produced by torch.linalg.lu_factorr2   r2   r8   r6   rk   r
  \  s   € ñpr8   rO  r÷   )	r\   rn   rÔ   rd   rÅ  rù   r¢   r   r¡   )rô  rÔ  r  r  rñ  rê  rH  rò  rë  r€  r  s   f&&&       r6   Úlu_unpack_metar  M  sô   ø€ ô 
‡L‚LØ
�‰�1‰Ükô÷ Ü�ŠØ�L‰LœEŸK™KÑ'ñô	
ô �—‘‹N€EØˆb�	€AØˆb�	€AÜ�‹€AØˆ"�IßØ�L‰L˜Ó‰à�L‰L˜!˜ÓˆßØˆb‰	Ø�L‰L˜ÓˆØˆb‰	Øˆb‰	Ø�L‰L˜Ó‰à�L‰L˜!˜ÓˆØ�L‰L˜!˜ÓˆØ�ˆ7€Nr8   c                óR   € V ^8„  d   QhR\         R\        \        \        3,          /# )r@   ÚmoderA   )r¿  rm   rÂ   )rB   s   "r6   rC   rC   w  s#   € ÷ ñ œð ¤¤t¬T zÕ!2ñ r8   c                 ó–   a € S R 8X  d   RpRpW3# S R8X  d   RpRpW3# S R8X  d   RpRpW3# \         P                  ! RV 3R l4       XX3# )ÚreducedTÚcompleteFÚrc                  ó   <€ R S  R2# )zqr received unrecognized mode 'z=' but expected one of 'reduced' (default), 'r', or 'complete'r2   )r  s   €r6   rk   Ú _parse_qr_mode.<locals>.<lambda>„  s   ø€ Ø1°$°ð 8Nñ Or8   ©r\   rn   )r  Ú	compute_qr  s   f  r6   Ú_parse_qr_moder  w  s€   ø€ ØˆyÔØˆ	Øˆð ÐÐð 
�Ô	Øˆ	Øˆð ÐÐð 
�ŒØˆ	Øˆð ÐÐô 	�ŠØôô	
ð �gÐÐr8   ÚQÚRc                ó^   € V ^8„  d   QhR\         R\        R\        \         \         3,          /# )r@   rR  r  rA   ©r   r¿  rm   )rB   s   "r6   rC   rC   Ž  s*   € ÷ ñ ”fð ¤Cð ¼¼fÄf¸nÕ8Mñ r8   c                 óB  € \        V R 4       \        V R 4       \        V4      w  r#V P                  R,          pV P                  R,          p\	        WE4      pV'       dT   \        V P                  4      pV'       d   TMTVR&   V P                  V4      pVP                  V\        VRR7      4       MV P                  ^ .4      p\        V P                  4      p	V'       g	   V'       g   TMTV	R&   V P                  V	4      p
V
P                  V	\        V	RR7      4       WŠ3# )z	linalg.qrFr‹  rO  r÷   )	rk  rÞ   r  r¢   r   rù   r¡   r   r   )rR  r  r  Úreduced_moderê  rH  rò  ÚQ_shaper  ÚR_shaper  s   &&         r6   Úlinalg_qr_metar   Œ  sâ   € ô �!�[Ô!Ü˜1˜kÔ*ä,¨TÓ2Ñ€Ià	�‰��€AØ	�‰��€AÜ�‹€AçÜ�q—w‘w“-ˆß'‘a¨Qˆ�‰Ø�K‰K˜Ó ˆØ	�‰�gÔ:¸7ÈeÔTÕUà�K‰K˜˜Óˆô �1—7‘7‹m€Gß#¯9‘!¸!€GˆB�KØ	�‰�GÓ€AØ‡M�M�'Ô6°wÈ%ÔPÔQØˆ4€Kr8   ÚHc                óR   € V ^8„  d   QhR\         R\        \         \         3,          /# ©r@   rR  rA   ©r   rm   )rB   s   "r6   rC   rC   ª  s#   € ÷ ñ œð ¤E¬&´&¨.Õ$9ñ r8   c                 óÔ  aa€ \        V R 4       \        V R 4       V P                  R,          oV P                  R,          o\        P                  ! SS8¬  VV3R l4       \        V P                  4      pV P                  V4      pVP                  V\        V4      4       \        V P                  4      pSVR&   V P                  V4      pVP                  V\        V4      4       W$3# )zlinalg.polarc                  ó   <€ R S  RS R2# )zHlinalg.polar: input must have at least as many rows as columns, but got rM  rN  r2   )rê  rH  s   €€r6   rk   Ú#linalg_polar_meta.<locals>.<lambda>³  s   ø€ ð Ø˜3˜d 1 # Yñ0r8   rO  r÷   )	rk  rÞ   r¢   r\   rn   rù   r¡   r   r   )rR  ÚU_shaper  ÚH_shaper!  rê  rH  s   &    @@r6   Úlinalg_polar_metar*  ¨  s»   ù€ ô �!�^Ô$Ü˜1˜nÔ-à	�‰��€AØ	�‰��€Aä	‡L‚LØ	ˆQ‰õ	0ôô �1—7‘7‹m€GØ	�‰�GÓ€AØ‡M�M�'Ô6°wÓ?Ô@ä�1—7‘7‹m€GØ€GˆB�KØ	�‰�GÓ€AØ‡M�M�'Ô6°wÓ?Ô@Øˆ4€Kr8   ÚsignÚ	logabsdetc                óf   € V ^8„  d   QhR\         R\        \         \         \         \         3,          /# r#  r$  )rB   s   "r6   rC   rC   Æ  s(   € ÷ 'ñ '”vð '¤%¬´¼ÄÐ(FÕ"Gñ 'r8   c                 ó†  € \        V R 4       \        V R R4       V P                  pV P                  VRR 4      pV P                  VRR \	        V P
                  4      R7      p\        P                  ! V\        VR4      V P
                  V P                  R7      pV P                  VRR \        P                  R7      pW#WE3# )zlinalg.slogdetFNr™   rË  rO  r÷   )rÝ   rÞ   r¢   r¡   rf   rd   r\   rÌ  r   r‹   rÅ  )rR  r¢   r+  r,  rô  rÔ  s   &     r6   Ú_linalg_slogdetr/  Ä  s®   € ô �aÐ)Ô*Ü˜1Ð.°Ô6Ø�G‰G€EØ�;‰;�u˜S˜b�zÓ"€DØ—‘˜E # 2˜J¬o¸a¿g¹gÓ.F�ÓG€IÜ	×	Ò	ØÜ*¨5°%Ó8Ø�g‰gØ�x‰xô	
€Bð �[‰[˜˜s ˜¬5¯;©;ˆ[Ó7€FØ˜BÐ&Ð&r8   c          	      óV   € V ^8„  d   QhR\         R\        R\        R\        R,          /# )r@   rR  Úfull_matricesÚ
compute_uvÚdriverNrn  )rB   s   "r6   rC   rC   Ù  s4   € ÷ "ñ "Üð"äð"ô ð"ô �$�Jñ	"r8   c                 ó¸  € \        V R 4       \        V R 4       \        V P                  RR 4      pV P                  R,          pV P                  R,          p\        P
                  ! WV4      pV'       d“   YEV'       d   TMT.,           pV P                  V4      p	V	P                  V\        VRR7      4       YA'       d   TMTV.,           p
V P                  V
4      p\        V 4      R8H  pVP                  V
\        W¬R7      4       M$V P                  ^ .4      p	V P                  ^ .4      pV P                  WG.,           \        V P                  4      R7      pW�V3# )z
linalg.svdNFr‹  r  r™   rO  r÷   )rk  rÞ   rù   r¢   r\   r   r¡   r   r   r&  rf   rd   )rR  r1  r2  r3  r  rê  rH  rò  r(  r  ÚV_shapeÚVr™  ÚSs   &&&&          r6   Ú_linalg_svd_metar8  Ø  s  € ô �!�\Ô"Ü˜1˜lÔ+ä�a—g‘g˜c˜r�lÓ#€JØ	�‰��€AØ	�‰��€AÜ�Š�aÓ€AçØ¯¡1¸1Ð=Õ=ˆØ�K‰K˜Ó ˆØ	�‰�gÔ:¸7ÈeÔTÔUà¦]¡¸¸1Ð=Õ=ˆØ�K‰K˜Ó ˆô
 ˜a“. FÑ*ˆØ	�‰�gÔ:¸7ÔVÕWð �K‰K˜˜ÓˆØ�K‰K˜˜Óˆð 	
�‰�J Õ$¬O¸A¿G¹GÓ,DˆÓE€AØ�ˆ7€Nr8   c          	      óŠ   € V ^8„  d   QhR\         R\         R\        \        \        ,          \        \        ,          3,          /# )r@   Úarg1Úarg2rA   )r   rm   rù   rÁ   )rB   s   "r6   rC   rC   þ  s8   € ÷ .ñ .Ü
ð.ä
ð.ô Œ4”�9”dœ3•iÐÕ ñ.r8   c                 ó&  € V P                   R R pVP                   R R p\        W#4      p\        V4      pWPP                  R4      V P                  R4      .,          p\        V4      pWaP                  R4      VP                  R4      .,          pWV3# )NrO  r÷   )r¢   r&   rù   rÒ   )r:  r;  Úarg1_batch_sizesÚarg2_batch_sizesÚexpand_batch_portionÚarg1_expand_sizeÚarg2_expand_sizes   &&     r6   rç  rç  þ  s�   € ð
 —z‘z # 2�ÐØ—z‘z # 2�ÐÜ,Ð-=ÓPÐäÐ0Ó1ÐØŸ™ 2›¨¯	©	°"«Ð6Õ6ÐäÐ0Ó1ÐØŸ™ 2›¨¯	©	°"«Ð6Õ6ÐØÐ-Ð-r8   c          
      óx   € V ^8„  d   QhR\         R\         R\        R,          R\        \         \         3,          /# )r@   r:  r;  rS  NrA   r  )rB   s   "r6   rC   rC     s=   € ÷ .ñ .Ü
ð.ä
ð.ô ��*ð.ô Œ6”6ˆ>Õñ	.r8   c                 óÖ   € V'       d   \        WV4       \        W4      w  r4W0P                  8X  d   T MV P                  V4      pWAP                  8X  d   TMVP                  V4      pWV3# rG   )r]  rç  r¢   rª  )r:  r;  rS  r@  rA  Úarg1_broadcastedÚarg2_broadcasteds   &&&    r6   r­  r­    sh   € ÷ Ü˜t¨4Ô0ä)EÀdÓ)QÑ&Ðð !§J¡JÔ.‰°D·K±KÐ@PÓ4Qð ð !§J¡JÔ.‰°D·K±KÐ@PÓ4Qð ð Ð-Ð-r8   c                ó<   € V ^8„  d   QhR\         R\         R\        /# )r@   r  rÓ   rA   r¢  )rB   s   "r6   rC   rC   #  s!   € ÷ ñ ¤fð ´Vð Äñ r8   c                 óÀ   € V P                   R R pVP                  ^8H  ;'       g8    V P                  ^,
          VP                  8H  ;'       d    VP                   V8H  pV# ©Nr÷   )r¢   rÔ   )r  rÓ   Úexpected_batched_rhs_shapeÚvector_cases   &&  r6   Úlinalg_solve_is_vector_rhsrK  #  s[   € Ø!&§¡¨S¨bÐ!1ÐØ—*‘* ‘/÷ ð Ø�
‰
�Q�˜%Ÿ*™*Ñ$×RÐR¨¯©Ð8RÑ)Rð ð Ðr8   c                óò   € V ^8„  d   QhR\         R\         R\        R\        R\         R,          R\         R,          R\         R,          R	\         R,          R
\        \         \         \         \         3,          /	# )r@   rR  rm  r
  r´  rs  Nrô  rÔ  rÕ  rA   rØ  )rB   s   "r6   rC   rC   ,  s€   € ÷ 7ñ 7Üð7äð7ô ð	7ô
 ð7ô �T�Mð7ô 	��ð7ô �T�Mð7ô �4�-ð7ô Œ6”6œ6¤6Ð)Õ*ñ7r8   c                óV  a a€ \        S R 4       \        P                  ! S P                  SP                  8H  V V3R l4       \	        S S4      pV'       d   SP                  R
4      MSp	\        S W’R 4       \        V	S 4      w  r«\        P                  ! T;'       g    V'       * R 4       V'       d   V
RR
 MT
p\        P                  ! V\        WÂ'       * 4      SP                  SP                  R7      pS P                  p\        P                  ! V\        VR4      S P                  S P                  R7      pS P                  VRR
 \        P                  R7      pS P                  VRR \        P                  R7      pWEWg3pWßVV3p\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       de   \        VV4       FT  w  pp\!        VVP                  4       VP#                  VP                  VP%                  4       4       \'        VVRR	7       KV  	  V# )zlinalg.solvec                  ó>   <€ R S P                    RSP                    R2# )zKlinalg.solve: Expected A and B to have the same dtype, but found A of type rþ  rá  r™   )rR  rm  s   €€r6   rk   Ú"_linalg_solve_ex.<locals>.<lambda>:  s    ø€ ØYØ�w‰wˆi� q§w¡w i¨xñ9r8   c                  ó   € R # )z•linalg.solve: Vector broadcasting of the left hand side is not supported for left=False. In this case linalg.solve is equivalent to B / A.squeeze(-1)r2   r2   r8   r6   rk   rO  E  s   € ñKr8   NrË  Fr™   c              3   ó(   "  € T F  qR Jx € K
  	  R # 5irG   r2   ©rz   r;   s   & r6   r|   Ú#_linalg_solve_ex.<locals>.<genexpr>\  s   é € Ð
&¡#˜Q�D�=£#ùs   ‚T)Ú	copy_fromÚcopy_toÚexact_dtyper÷   rO  )rÞ   r\   rn   rd   rK  Ú	unsqueezerr  rç  rÌ  r   r‹   r¢   r¡   rÅ  r‘  r’  r"   r   rû   r$   )rR  rm  r
  r´  rs  rô  rÔ  rÕ  rJ  ÚB_ÚB_broad_shaperX   Úresult_shapeÚresult_r¢   ÚLU_Úpivots_Úinfo_r  Úresr  Úos   ff$$$$$$              r6   Ú_linalg_solve_exra  +  s¹  ù€ ô ˜1˜nÔ-Ü	‡L‚LØ	�‰�1—7‘7Ñõ	
ôô -¨Q°Ó2€Kß'ˆ�‰�RŒ¨Q€BÜ�a˜ >Ô2Ü3°B¸Ó:Ñ€MÜ	‡L‚LØ×Ð�K”ñ	
ô÷ *5�=  "Ñ%¸-€LÜ×!Ò!ØÜ*¨<¼ÓBØ�g‰gØ�x‰xô	€Gð �G‰G€EÜ
×
Ò
ØÜ*¨5°%Ó8Ø�g‰gØ�x‰xô	€Cð �k‰k˜%  ˜*¬E¯K©KˆkÓ8€GØ�K‰K˜˜c˜r˜
¬%¯+©+ˆKÓ6€EØ�vÐ
$€CØ˜ %Ð
(€Cß
ƒsÑ
&¡#Ó
&‡s‡s‚sÑ
&¡#Ó
&×&Ò&Ü˜˜S–M‰DˆAˆqä˜a §¡Ô)à�M‰M˜!Ÿ'™' 1§8¡8£:Ô.Ü Q°¸u×Eñ "ð €Jr8   Úunitriangularr  c                óz   € V ^8„  d   QhR\         R\         R\        R\        R\        R\         R,          R\         /# )	r@   rR  rm  rƒ  r
  rb  r  NrA   r¢  )rB   s   "r6   rC   rC   g  sR   € ÷ ñ Üðäðô ð	ô
 ðô ðô 
�$�ðô ñr8   c                ó   € Vf   V P                  ^ .4      p\        V\        4      '       g   \        R\	        V4       24      h\        WVR4       \        WR 4      w  rgVP                  RR4      P                  4       ;'       d    VP                  4       pV'       d   \        WVP                  4      pV# \        WVP                  4      '       d>   VP                  VP                  RR4      P                  4       VP                  RR4       V# )Nzout must be TensorLike, got zlinalg.solve_triangularrO  r÷   )r¡   rx   r    r’   rƒ   rr  r­  rž  Úis_contiguousÚis_conjr"   r¢   r#   rÿ   Ú
transpose_)	rR  rm  rƒ  r
  rb  r  rX  ÚA_Úavoid_copy_As	   &&$$$$   r6   Úlinalg_solve_triangular_metarj  f  sØ   € ð ‚{Ø�k‰k˜1˜#ÓˆÜ�cœ:×&Ò&ÜÐ;¼DÀ»I¸;ÐGÓHÐHÜ�a˜DÐ";Ô<Ü.¨q°TÓ:�F€BØ—<‘<  BÓ'×5Ñ5Ó7×HÐH¸B¿J¹J»L€LßÜ §X¡XÓ.ˆð €Jô   §X¡X×.Ò.Ø�K‰K˜Ÿ™ R¨Ó,×2Ñ2Ô3Ø�N‰N˜2˜rÔ"Ø€Jr8   ÚXÚM)rV  c                ó‚   € V ^8„  d   QhR\         R\         R\        R\        R\        R\        \         \         3,          /# )r@   r£   rR  rƒ  rž  rb  rA   rØ  )rB   s   "r6   rC   rC   ƒ  sM   € ÷ +(ñ +(Ü
ð+(äð+(ô ð+(ô ð	+(ô
 ð+(ô Œ6”6ˆ>Õñ+(r8   c                 ó  a a€ \         P                  ! S P                  ^8¬  V 3R l4       \         P                  ! SP                  ^8¬  V3R l4       \        S SR4       SP                  \         P
                  8X  d„   \        S S4      w  rV\         P                  ! V\        VRR7      S P                  S P                  R7      p\         P                  ! V\        VRR7      SP                  SP                  R7      pWx3# SP                  \         P                  8X  g    SP                  \         P                  8X  d,   \         P                  ! S 4      pS P                  ^ .4      pWx3# \         P                  ! RR 4       XX3# )r@   c                  ó$   <€ R S P                    R2# )zMtorch.triangular_solve: Expected b to have at least 2 dimensions, but it has r¨  r©  rà   s   €r6   rk   Ú'triangular_solve_meta.<locals>.<lambda>Œ  s   ø€ ðØŸ)™)˜Ð$7ñ9r8   c                  ó$   <€ R S P                    R2# )zMtorch.triangular_solve: Expected A to have at least 2 dimensions, but it has r¨  r©  r[  s   €r6   rk   rp  “  rß  r8   Útriangular_solveFr‹  rË  c                  ó   € R # )z+triangular_solve: Got an unexpected layout.r2   r2   r8   r6   rk   rp  ­  s   € Ñ$Qr8   )r\   rn   rÔ   r]  rŠ   Ústridedrç  rÌ  r   rd   r‹   Ú
sparse_csrÚ
sparse_bsrr§   r¡   )	r£   rR  rƒ  rž  rb  Úself_broadcast_sizeÚA_broadcast_sizeÚsolutionÚcloned_coefficients	   ff&&&    r6   Útriangular_solve_metar{  �  sC  ù€ ô 
‡L‚LØ�	‰	�Q‰ô	
ôô 
‡L‚LØ	�‰�!‰ô	
ôô ˜4 Ð$6Ô7à‡x�x”5—=‘=Ô Ü0LÈTÐSTÓ0UÑ-ÐÜ×&Ò&Ø$Ü.Ð/BÈeÔTØ—*‘*Ø—;‘;ô	
ˆô #×0Ò0Ø!Ü.Ð/?È5ÔQØ—'‘'Ø—8‘8ô	
Ðð Ð'Ð'ð 
�‰”U×%Ñ%Ô	%¨¯©´U×5EÑ5EÔ)EÜ×#Ò# DÓ)ˆØ!Ÿ^™^¨Q¨CÓ0Ðð Ð'Ð'ô 	�Š�UÑQÔRØÐ'Ð'Ð'r8   c                 ój  € \        V R 4       \        V R 4       V P                  V P                  RR 4      pV P                  V P                  4      pVP	                  V P                  \        V P                  RR7      4       V P                  V P                  RR \        P                  R7      pWV3# )z
linalg.detNFr‹  r™   rO  r÷   rÑ  )rR  Údetrô  rÔ  s   &   r6   Ú_linalg_det_metar~  ²  sˆ   € ä�a˜Ô&Ü˜1˜lÔ+à
�+‰+�a—g‘g˜c˜r�lÓ
#€Cà	
�‰�Q—W‘WÓ	€BØ‡N�N�1—7‘7Ô7¸¿¹È5ÔQÔRà�[‰[˜Ÿ™  "˜¬U¯[©[ˆ[Ó9€FØ�Fˆ?Ðr8   c                ó`   € V ^8„  d   QhR\         R\         R\         R\        R\        R\         /# )r@   r  r»  rÓ   r
  rž  rA   r¢  )rB   s   "r6   rC   rC   Â  sL   € ÷ Wñ WÜðWä	ðWô ðWô ð	Wô
 ðWô ñWr8   c                 ó   a aaaaa€ \         P                  ! S P                  ^8¬  R 4       \         P                  ! SP                  ^8¬  R 4       V'       d   RMRo\         P                  ! SP                  S,          SP                  R,          8¬  V3R l4       \         P                  ! SP                  S,          S P                  R,          8H  V3R l4       \         P                  ! SP                  R,          S P                  R,          8*  R 4       \         P                  ! S P                  SP                  ,
          ^8H  V V3R l4       \         P                  ! S P                  SP                  8H  V V3R l4       S P                  ^8”  dj   S P                  RR pSP                  RR o\         P                  ! SV8H  V3R	 l4       SP                  RR o\         P                  ! SV8H  V3R
 l4       \         P                  ! SP                  S P                  8H  V V3R l4       \         P                  ! SP                  S P                  8H  V V3R l4       \        RSS R4       \        RSS R4       \         P                  ! SP                  \        SP                  RR7      SP                  SP                  R7      # )r@   c                  ó   € R # )z3torch.ormqr: input must have at least 2 dimensions.r2   r2   r8   r6   rk   Úormqr.<locals>.<lambda>Ê  ó   € Ñ!Vr8   c                  ó   € R # )z3torch.ormqr: other must have at least 2 dimensions.r2   r2   r8   r6   rk   r‚  Í  rƒ  r8   c                  ó   <€ R S  R2# )útorch.ormqr: other.shape[z0] must be greater than or equal to tau.shape[-1]r2   ©Úleft_size_conditions   €r6   rk   r‚  Ó  s   ø€ Ð+Ð,?Ð+@Ð@pÑqr8   c                  ó   <€ R S  R2# )r†  z"] must be equal to input.shape[-2]r2   r‡  s   €r6   rk   r‚  ×  s   ø€ Ð+Ð,?Ð+@Ð@bÑcr8   c                  ó   € R # )zHtorch.ormqr: tau.shape[-1] must be less than or equal to input.shape[-1]r2   r2   r8   r6   rk   r‚  Ü  r¿  r8   c                  ó<   <€ R SP                    RS P                    2# )z[torch.ormqr: Expected tau to have one dimension less than input, but got tau.ndim equal to rÃ  r©  rÄ  s   €€r6   rk   r‚  á  rÅ  r8   c                  ó<   <€ R SP                    RS P                    2# )zhtorch.ormqr: Expected other to have the same number of dimensions as input, but got other.ndim equal to rÃ  r©  ©r  rÓ   s   €€r6   rk   r‚  è  s&   ø€ ð+Ø+0¯:©:¨,Ð6RÐSX×S]ÑS]ÐR^ñ`r8   Nc                  ó   <€ R S  2# )zWtorch.ormqr: Expected batch dimensions of tau to be equal to input.shape[:-2], but got r2   rÇ  s   €r6   rk   r‚  ó  rÉ  r8   c                  ó   <€ R S  2# )zYtorch.ormqr: Expected batch dimensions of other to be equal to input.shape[:-2], but got r2   )Úactual_batch_other_shapes   €r6   rk   r‚  ü  s   ø€ ð6Ø6NÐ5OñQr8   c                  ó<   <€ R S P                    RSP                    2# )zPtorch.ormqr: Expected input and tau to have the same dtype, but input has dtype z and tau has dtype r™   rÄ  s   €€r6   rk   r‚    s"   ø€ ð#Ø#(§;¡; -Ð/BÀ3Ç9Á9À+ñOr8   c                  ó<   <€ R S P                    RSP                    2# )zRtorch.ormqr: Expected input and other to have the same dtype, but input has dtype z and other has dtype r™   r�  s   €€r6   rk   r‚    s"   ø€ ð#Ø#(§;¡; -Ð/DÀUÇ[Á[ÀMñSr8   ztorch.ormqrr»  rÓ   Fr‹  rË  rO  r÷   )	r\   rn   rÔ   r¢   rd   rz  rÌ  r   r‹   )	r  r»  rÓ   r
  rž  Úexpected_batch_shaper�  rÈ  rˆ  s	   fff&& @@@r6   Úormqrr”  À  s  ý€ ô 
‡L‚LØ�
‰
�a‰ÑVôô 
‡L‚LØ�
‰
�a‰ÑVô÷ !%™"¨"ÐÜ	‡L‚LØ�‰Ð'Õ(¨C¯I©I°b­MÑ9Üqôô 
‡L‚LØ�‰Ð'Õ(¨E¯K©K¸­OÑ;Ücôô
 
‡L‚LØ�	‰	�"�˜Ÿ™ R�Ñ(ÙZôô
 
‡L‚LØ�
‰
�S—X‘XÕ Ñ"õ	
ôô 
‡L‚LØ�
‰
�e—j‘jÑ õ	
ôð ‡z�z�A„~Ø$Ÿ{™{¨3¨BÐ/ÐØ!$§¡¨3¨B ÐÜ�ŠØ"Ð&:Ñ:ôô	
ð $)§;¡;¨s°Ð#3Ð Ü�ŠØ$Ð(<Ñ<ôô	
ô 
‡L‚LØ�	‰	�U—[‘[Ñ õ	
ôô 
‡L‚LØ�‰�u—{‘{Ñ"õ	
ôô �M 3¨¨uÔ5Ü�M 5¨%°Ô9ä×ÒØ�[‰[Ü*¨5¯;©;À%ÔHØ�k‰kØ�|‰|ô	ð r8   c                óÈ  a aa€ \         P                  ! \        S4      ^S,          8H  VV3R l4       S P                  pVS^,           8H  pTpV'       * p^ RIHpHp V'       d0   \        ^V4       F  p	V! VS P                  V	4      ^ 8g  4      pK   	  M-\        V4       F  p	V! VS P                  V	4      ^ 8g  4      pK   	  \         P                  ! V! WV4      VV 3R l4       R# )r@   c                  ó4   <€ R ^S ,           R\        S4       2# )zpadding size is expected to be z, but got: ©rø   )rŽ   Úpaddings   €€r6   rk   Ú,_padding_check_valid_input.<locals>.<lambda>  s   ø€ Ð1°!°cµ'°¸+ÄcÈ'ÃlÀ^ÑTr8   ©Úsym_andÚsym_orc                  óJ   <€ R S ^,            RS ^,            RSP                    2# )ú	Expected zD or zcD (batch mode) tensor with possibly 0 batch size and other non-zero dimensions for input, but got: ra  )rŽ   r  s   €€r6   rk   r™  6  s-   ø€ Ø˜˜a��y  c¨A¥g Yð /AØAFÇÁÀñOr8   N)	r\   rn   rø   rÔ   rÈ   r›  rœ  rú   rÒ   )
r  r˜  rŽ   Ú	input_dimÚis_batch_modeÚvalid_batch_modeÚvalid_non_batch_moder›  rœ  r	  s
   ffd       r6   Ú_padding_check_valid_inputr£    sÅ   ú€ Ü	‡L‚LÜˆG‹˜˜C�ÑÝTôð
 —
‘
€Ià #¨¥'Ñ*€Mà$ÐØ,Ô,ÐçEçä�q˜)Ö$ˆAÙ&Ð'7¸¿¹ÀA»È!Ñ9KÓLÒò %ô �yÖ!ˆAÙ#*Ð+?ÀÇÁÈAÃÐRSÑASÓ#TÒ ñ "ô 
‡L‚LÙÐÓ6õ	
ör8   c                ó*  a aaa	a
a€ ^ RI Hp ^ p^o^pS P                  ^8X  d$   S P                  ^ 4      pS^,          oV^,          p\	        S V^R7       Vw  o
oS P                  V4      pS P                  S4      oSS
,           S,           o	V'       d,   \
        P                  ! V! S
S8  SS8  4      VV V
V3R l4       \
        P                  ! S	^8¬  VV	3R l4       S P                  ^8X  d   S P                  VS	34      # S P                  WVS	34      # )r   ©r›  r4  c                  ó4   <€ R S RS RS  RSP                    2# ©zcArgument #4: Padding size should be less than the corresponding input dimension, but got: padding (r�   ú) at dimension ú
 of input ra  ©Údim_wr  Úpad_lÚpad_rs   €€€€r6   rk   Ú_pad1d_common.<locals>.<lambda>T  ó-   ø€ ð%Ø%* G¨2¨e¨W°OÀEÀ7È*ÐUZ×U`ÑU`ÐTañcr8   c                  ó   <€ R S  RS 2# )z
input (W: z%) is too small. Calculated output W: r2   )Úinput_wÚoutput_ws   €€r6   rk   r®  \  s   ø€ �*˜W˜IÐ%JÈ8È*ÑUr8   )rÈ   r›  rÔ   rÒ   r£  r\   rn   r¡   )r  r˜  Úis_reflectionr›  Ú	dim_planeÚnbatchÚnplaner«  r±  r²  r¬  r­  s   f&$    @@@@@r6   Ú_pad1d_commonr·  =  sñ   ý€ Ý=à€IØ€EØ€Fà‡z�z�Q„Ø—‘˜A“ˆØ��
ˆØ�Q�ˆ	ä˜u g°1Õ5à�L€Eˆ5à�Z‰Z˜	Ó"€FØ�j‰j˜Ó€GØ˜� Õ&€HçÜ�ŠÙ�E˜G‘O U¨W¡_Ó5÷ô	
ô 
‡L‚LØ�A‰ÝUôð
 ‡z�z�Q„Ø�‰ ¨Ð1Ó2Ð2à�‰ °Ð9Ó:Ð:r8   c                 ó   € \        WR R7      # ©T©r³  )r·  ©r  r˜  s   &&r6   Úmeta_reflection_pad1dr¼  e  ó   € ô ˜°tÔ<Ð<r8   c                 óŒ   a € \         P                  ! S P                  \         P                  8g  V 3R  l4       \	        S VRR7      # )c                  ó@   <€ R S P                   P                  4        R2# )z)"replication_pad1d" not implemented for 'Ú'©rd   Ú__str__©r  s   €r6   rk   Ú(meta_replication_pad1d.<locals>.<lambda>p  ó   ø€ Ð=¸e¿k¹k×>QÑ>QÓ>SÐ=TÐTUÑXr8   Frº  )r\   rn   rd   rÂ   r·  r»  s   f&r6   Úmeta_replication_pad1drÆ  k  ó5   ø€ ô 
‡L‚LØ�‰”u—z‘zÑ!ÜXôô ˜ °uÔ=Ð=r8   c                óð  a aaaaa	€ ^ RI Hp ^oV'       g%   \        P                  ! \	        V4      ^8H  R 4       SP
                  ^8X  d
   S^,          oVw  oo	SP                  S4      pVS,           S	,           oV'       d,   \        P                  ! V! SV8  S	V8  4      VVVV	3R l4       \        P                  ! SS P                  S4      8H  VV V3R l4       SP                  SP                  4      # )r   r¥  c                  ó   € R # )z padding size is expected to be 2r2   r2   r8   r6   rk   Ú(_pad1d_backward_common.<locals>.<lambda>z  s   € Ñ0Rr8   c                  ó4   <€ R S RS RS  RSP                    2# r§  ra  rª  s   €€€€r6   rk   rÊ  ‡  r¯  r8   c                  ó2   <€ R S RSP                  S 4       2# ©z(grad_output width unexpected. Expected: ú, Got: rÑ   ©r«  Úgrad_outputr²  s   €€€r6   rk   rÊ  �  ó    ø€ Ð:¸8¸*ÀGÈK×L\ÑL\Ð]bÓLcÐKdÑer8   )	rÈ   r›  r\   rn   rø   rÔ   rÒ   r¡   r¢   )
rÐ  r  r˜  r³  r›  r±  r«  r²  r¬  r­  s
   ff&$  @@@@r6   Ú_pad1d_backward_commonrÒ  u  s¾   ý€ Ý=à€EßÜ�Š”S˜“\ QÑ&Ñ(RÔSà‡z�z�Q„Ø��
ˆà�L€Eˆ5à�j‰j˜Ó€GØ˜� Õ&€HçÜ�ŠÙ�E˜G‘O U¨W¡_Ó5÷ô	
ô 
‡L‚LØ�K×$Ñ$ UÓ+Ñ+Þeôð
 �?‰?˜5Ÿ;™;Ó'Ð'r8   Ú
grad_inputc                 ó   € \        WVR R7      # r¹  ©rÒ  ©rÐ  r  r˜  s   &&&r6   Úmeta_reflection_pad1d_backwardr×  •  s   € ô " +°gÈTÔRÐRr8   c                 ó   € \        WVR R7      # )Frº  rÕ  rÖ  s   &&&r6   Úmeta_replication_pad1d_backwardrÙ  ›  s   € ô " +°gÈUÔSÐSr8   c                ó¼  a a	a
aaaaaaaa€ ^ RI Hp ^o
^o	^ p^p\        S V^R7       S P                  pV^8X  d-   S P	                  ^ 4      pS
^,          o
S	^,          o	V^,          pVw  ooooS P	                  V4      pS P	                  S	4      oS P	                  S
4      oSS,           S,           oSS,           S,           oV'       dW   \
        P                  ! V! SS8  SS8  4      V
V VV3R l4       \
        P                  ! V! SS8  SS8  4      V	V VV3R l4       \
        P                  ! V! S^8¬  S^8¬  4      VVVV3R l4       S P                  ^8X  d   S P                  VSS34      # S P                  WWSS34      p\        S 4      R8w  dJ   \        P                  ! S 4      \
        P                  8X  d!   VP                  \
        P                  R7      pV# )r   r¥  r4  c                  ó4   <€ R S RS RS  RSP                    2# r§  ra  rª  s   €€€€r6   rk   Ú_pad2d_common.<locals>.<lambda>½  r¯  r8   c                  ó4   <€ R S RS RS  RSP                    2# ©zcArgument #6: Padding size should be less than the corresponding input dimension, but got: padding (r�   r¨  r©  ra  ©Údim_hr  Úpad_bÚpad_ts   €€€€r6   rk   rÜ  Ä  r¯  r8   c            	      ó"   <€ R S RS RS  RS R2	# )zCalculated output H: ú W: z+ must be >= 1 in every dimension (input H: ú, W: r‚   r2   )Úinput_hr±  Úoutput_hr²  s   €€€€r6   rk   rÜ  Ì  s(   ø€ Ø# H :¨T°(°ð <,Ø,3¨9°E¸'¸À!ñEr8   r  rÚ   )rÈ   r›  r£  rÔ   rÒ   r\   rn   r¡   r&  rU   r   Úchannels_lastr¨  )r  r˜  r³  r›  Ú
dim_slicesrµ  rÔ   r¶  r-  rà  r«  ræ  r±  rç  r²  rá  r¬  r­  râ  s   f&$      @@@@@@@@@@r6   Ú_pad2d_commonrê  ¡  sž  ÿú€ Ý=à€EØ€EØ€JØ€Fä˜u g°1Õ5à�:‰:€DØˆq„yØ—‘˜A“ˆØ��
ˆØ��
ˆØ�a�ˆ
à!(Ñ€Eˆ5�%˜à�Z‰Z˜
Ó#€FØ�j‰j˜Ó€GØ�j‰j˜Ó€GØ˜� Õ&€HØ˜� Õ&€HçÜ�ŠÙ�E˜G‘O U¨W¡_Ó5÷ô	
ô 	�ŠÙ�E˜G‘O U¨W¡_Ó5÷ô	
ô 
‡L‚LÙ�˜A‘˜x¨1™}Ó-÷	
ôð ‡z�z�Q„Ø�‰ ¨°(Ð;Ó<Ð<à—‘ &°(¸HÐ!EÓFˆô ˜Ó &Ô(Ü×+Ò+¨EÓ2´e×6IÑ6IÔIà—Y‘Y¬U×-@Ñ-@�YÓAˆFØˆr8   c                 ó   € \        WR R7      # r¹  )rê  r»  s   &&r6   Úmeta_reflection_pad2drì  à  r½  r8   c                 óŒ   a € \         P                  ! S P                  \         P                  8g  V 3R  l4       \	        S VRR7      # )c                  ó@   <€ R S P                   P                  4        R2# )z)"replication_pad2d" not implemented for 'rÀ  rÁ  rÃ  s   €r6   rk   Ú(meta_replication_pad2d.<locals>.<lambda>ë  rÅ  r8   Frº  )r\   rn   rd   rÂ   rê  r»  s   f&r6   Úmeta_replication_pad2drð  æ  rÇ  r8   c                 ó`   € \         P                  ! V4      p\         P                  ! V4      pWV3# rG   r¦   )Úgrad_wÚsaved_vÚsaved_gÚsaved_normsrŽ   Úgrad_vÚgrad_gs   &&&&&  r6   Úmeta_weight_norm_backwardrø  ð  s,   € ô ×Ò˜gÓ&€FÜ×Ò˜gÓ&€FØˆ>Ðr8   c                 óì  a aaaa€ ^o^o^ pVP                   pVP                  4       ^8X  d   S^,          oS^,          oV^,          pVw  rVrxVS,          p	VS,          p
W—,           V,           oW¥,           V,           o\        P                  ! SS P	                  S4      8H  VV V3R l4       \        P                  ! SS P	                  S4      8H  VV V3R l4       VP                  VP                   4      # )r@   c                  ó2   <€ R S RSP                  S 4       2# rÍ  rÑ   rÏ  s   €€€r6   rk   Ú%meta_pad2d_backward.<locals>.<lambda>	  rÑ  r8   c                  ó2   <€ R S RSP                  S 4       2# ©z)grad_output height unexpected. Expected: rÎ  rÑ   ©rà  rÐ  rç  s   €€€r6   rk   rû  	  ó    ø€ Ð;¸H¸:ÀWÈ[×M]ÑM]Ð^cÓMdÐLeÑfr8   )r¢   rŽ   r\   rn   rÒ   r¡   )rÐ  r£   r˜  r´  rj   r¬  r­  râ  rá  ræ  r±  rà  r«  rç  r²  s   f&&        @@@@r6   Úmeta_pad2d_backwardr   ù  sÖ   ü€ ð €EØ€EØ€Ià—‘€JØ‡x�xƒz�Q„Ø��
ˆØ��
ˆØ�Q�ˆ	à!(Ñ€E�%à˜Õ€GØ˜Õ€GØ� Õ&€HØ� Õ&€Hä	‡L‚LØ�K×$Ñ$ UÓ+Ñ+Þeôô 
‡L‚LØ�K×$Ñ$ UÓ+Ñ+Þfôð �>‰>˜$Ÿ*™*Ó%Ð%r8   c          	      óÆ  a aa	a
aaaaaaaaaaaa€ ^ RI Hp ^o
^o	^o^ p\        S V^R7       S P                  ^8H  pV'       d6   S P	                  ^ 4      pS
^,          o
S	^,          o	S^,          oV^,          pVw  ooooooS P	                  V4      pS P	                  S4      oS P	                  S	4      oS P	                  S
4      oSS,           S,           oSS,           S,           oSS,           S,           oV'       d‚   \
        P                  ! V! SS8  SS8  4      V
V VV3R l4       \
        P                  ! V! SS8  SS8  4      V	V VV3R l4       \
        P                  ! V! SS8  SS8  4      VV VV3R l4       \
        P                  ! V! S^8¬  S^8¬  S^8¬  4      VVVVVV3R l4       V'       d   S P                  XVSSS34      # S P                  VSSS34      # )r   r¥  r4  c                  ó4   <€ R S RS RS  RSP                    2# r§  ra  rª  s   €€€€r6   rk   Ú_pad3d_common.<locals>.<lambda>>	  r¯  r8   c                  ó4   <€ R S RS RS  RSP                    2# rÞ  ra  rß  s   €€€€r6   rk   r  E	  r¯  r8   c                  ó4   <€ R S RS RS  RSP                    2# )zcArgument #8: Padding size should be less than the corresponding input dimension, but got: padding (r�   r¨  r©  ra  )Údim_dr  Úpad_bkÚpad_fs   €€€€r6   rk   r  L	  s-   ø€ ð%Ø%* G¨2¨f¨X°_ÀUÀGÈ:ÐV[×VaÑVaÐUbñdr8   c                  ó.   <€ R S RS RS RS  RS RS R2# )zCalculated output D: ú H: rä  z+ must be >= 1 in every dimension (input D: z, H: rå  r‚   r2   )Úinput_dræ  r±  Úoutput_drç  r²  s   €€€€€€r6   rk   r  T	  s6   ø€ Ø# H :¨T°(°¸4À¸zð J,Ø,3¨9°E¸'¸À%ÈÀyÐPQñSr8   )rÈ   r›  r£  rÔ   rÒ   r\   rn   r¡   )r  r˜  r³  r›  r´  Ú
batch_moderµ  r¶  r  rà  r«  r  ræ  r±  r  rç  r²  rá  r  r  r¬  r­  râ  s   f&$     @@@@@@@@@@@@@@@r6   Ú_pad3d_commonr  	  s´  ÿÿ€ Ý=à€EØ€EØ€EØ€Iä˜u g°1Õ5à—‘˜q‘€JßØ—‘˜A“ˆØ��
ˆØ��
ˆØ��
ˆØ�Q�ˆ	à07Ñ-€Eˆ5�%˜  và�Z‰Z˜	Ó"€FØ�j‰j˜Ó€GØ�j‰j˜Ó€GØ�j‰j˜Ó€GØ˜� Õ'€HØ˜� Õ&€HØ˜� Õ&€HçÜ�ŠÙ�E˜G‘O U¨W¡_Ó5÷ô	
ô 	�ŠÙ�E˜G‘O U¨W¡_Ó5÷ô	
ô 	�ŠÙ�E˜G‘O V¨gÑ%5Ó6÷ô	
ô 
‡L‚LÙ�˜A‘˜x¨1™}¨h¸!©mÓ<÷	
ñ 	
ô÷ Ø�‰ ¨°¸(ÀHÐMÓNÐNà�‰ ¨°(¸HÐEÓFÐFr8   c                 ó   € \        WR R7      # r¹  )r  r»  s   &&r6   Úmeta_reflection_pad3dr  `	  r½  r8   c                 óŒ   a € \         P                  ! S P                  \         P                  8g  V 3R  l4       \	        S VRR7      # )c                  ó@   <€ R S P                   P                  4        R2# )z)"replication_pad3d" not implemented for 'rÀ  rÁ  rÃ  s   €r6   rk   Ú(meta_replication_pad3d.<locals>.<lambda>k	  rÅ  r8   Frº  )r\   rn   rd   rÂ   r  r»  s   f&r6   Úmeta_replication_pad3dr  f	  rÇ  r8   c                 óª  a aaaaaa€ \         P                  ! \        V4      ^8H  R 4       VP                  ^8:  d   \	        RVP                   24      hS P                  VP                  8w  d&   \	        RS P                   RVP                   24      h^o^o^oVP                  ^8X  d   S^,          oS^,          oS^,          oVw  r4rVrxVP                  S4      p	VP                  S4      p
VP                  S4      pW—,           V,           oW¥,           V,           oW³,           V,           o\         P                  ! SS P                  S4      8H  VV V3R l4       \         P                  ! SS P                  S4      8H  VV V3R l4       \         P                  ! SS P                  S4      8H  VV V3R l4       VP                  VP                  4      # )é   c                  ó   € R # )z padding size is expected to be 6r2   r2   r8   r6   rk   Ú%meta_pad3d_backward.<locals>.<lambda>z	  s   € Ñ,Nr8   zinput.ndim must be > 3, got z,grad_output.ndim must equal input.ndim, got ú != c                  ó2   <€ R S RSP                  S 4       2# rÍ  rÑ   rÏ  s   €€€r6   rk   r  –	  rÑ  r8   c                  ó2   <€ R S RSP                  S 4       2# rý  rÑ   rþ  s   €€€r6   rk   r  š	  rÿ  r8   c                  ó2   <€ R S RSP                  S 4       2# )z(grad_output depth unexpected. Expected: rÎ  rÑ   )r  rÐ  r  s   €€€r6   rk   r  ž	  rÑ  r8   )r\   rn   rø   rÔ   r’   rÒ   r¡   r¢   )rÐ  r  r˜  r¬  r­  râ  rá  r  r  r  ræ  r±  r  rà  r«  r  rç  r²  s   f&&         @@@@@@r6   Úmeta_pad3d_backwardr  p	  s�  þ€ ô 
‡L‚L”�W“ Ñ"Ñ$NÔOØ‡z�z�Q„ÜÐ;¸E¿J¹J¸<ÐHÓIÐIØ×Ñ˜5Ÿ:™:Ô%ÜØ:¸;×;KÑ;KÐ:LÈDÐQV×Q[ÑQ[ÐP\Ð]ó
ð 	
ð €EØ€EØ€Eà‡z�z�Q„Ø��
ˆØ��
ˆØ��
ˆà07Ñ-€E�% à�j‰j˜Ó€GØ�j‰j˜Ó€GØ�j‰j˜Ó€GØ� Õ'€HØ� Õ&€HØ� Õ&€Hä	‡L‚LØ�K×$Ñ$ UÓ+Ñ+Þeôô 
‡L‚LØ�K×$Ñ$ UÓ+Ñ+Þfôô 
‡L‚LØ�K×$Ñ$ UÓ+Ñ+Þeôð
 �?‰?˜5Ÿ;™;Ó'Ð'r8   c                ó<   € V ^8„  d   QhR\         R\        R\         /# )r@   r£   ÚprA   ©r   r`   )rB   s   "r6   rC   rC   ¦	  s!   € ÷ ñ œfð ¬ð ´vñ r8   c                 óø   € \         P                  ! V P                  4       R  4       V P                  ^ 4      pV P	                  W"^,
          ,          ^,          34      P                  \         P                  R7      # )c                  ó   € R # )z(_pdist_forward requires contiguous inputr2   r2   r8   r6   rk   Ú%meta__pdist_forward.<locals>.<lambda>¨	  s   € Ñ&Pr8   rÚ   )r\   rn   re  rÒ   r¡   r¨  Úlegacy_contiguous_format)r£   r  rH  s   && r6   Úmeta__pdist_forwardr%  ¤	  sf   € ô 
‡L‚LØ×ÑÓÑPôð 	�	‰	�!‹€AØ�>‰>˜1 A¥�;¨!Õ+Ð-Ó.×1Ñ1Ü×4Ñ4ð 2ó ð r8   c          
      óT   € V ^8„  d   QhR\         R\         R\        R\         R\         /# )r@   rÐ  r£   r  ÚpdistrA   r   )rB   s   "r6   rC   rC   ²	  s;   € ÷ 	Pñ 	PÜð	PÜ%ð	PÜ*/ð	PÜ8>ð	Päñ	Pr8   c                 óæ   € \         P                  ! VP                  4       R  4       \         P                  ! VP                  4       R 4       \         P                  ! V\         P                  R7      # )c                  ó   € R # )z._pdist_backward requires self to be contiguousr2   r2   r8   r6   rk   Ú&meta__pdist_backward.<locals>.<lambda>¶	  s   € Ñ&Vr8   c                  ó   € R # )z/_pdist_backward requires pdist to be contiguousr2   r2   r8   r6   rk   r*  ¹	  s   € Ñ'Xr8   rÚ   )r\   rn   re  r§   r$  )rÐ  r£   r  r'  s   &&&&r6   Úmeta__pdist_backwardr,  °	  sW   € ô
 
‡L‚LØ×ÑÓÑVôô 
‡L‚LØ×ÑÓÑXôô ×Ò˜D´×0NÑ0NÔOÐOr8   c          
      óŠ  a aaaaa€ ^ RI HpHp SP                  ^ 4      pSP                  ^4      pSP                  ^4      p	V! \        P
                  ! V! S P                  WxV	34      4      4      '       d   S P                  WxV	34      o \        P                  ! SP                  4       ^8H  R 4       \        P                  ! SP                  4       ^8H  R 4       \        P                  '       gP   \        P                  ! S P                  SP                  u;8H  ;'       d    SP                  8H  Mu VVV 3R l4       SP                  p
SP                  oV
^ ,          oV
^,          o\        P                  ! S^ ,          S8H  ;'       d    S^,          S8H  VVV3R l4       S P                  S P                  4       4      # )r   )Úguard_or_trueÚsym_eqc                  ó   € R # ©zbatch1 must be a 3D tensorr2   r2   r8   r6   rk   Úmeta_baddbmm.<locals>.<lambda>È	  ó   € Ñ,Hr8   c                  ó   € R # ©zbatch2 must be a 3D tensorr2   r2   r8   r6   rk   r2  É	  r3  r8   c                  óV   <€ R SP                    RS P                    RSP                    2# )z+Input dtypes must be the same, got: input: z
, batch1: z
, batch2: r™   )Úbatch1Úbatch2r£   s   €€€r6   rk   r2  Í	  s.   ø€ ÐAÀ$Ç*Á*ÀÈZÐX^×XdÑXdÐWeÐeoÐpv×p|Ñp|Ðo}Ñ~r8   c            	      ó>   <€ R S RS RS ^ ,           RS ^,           R2	# ©z@Expected size for first two dimensions of batch2 tensor to be: [r�   z] but got: [ú].r2   ©Úbatch2_sizesÚbsÚcontraction_sizes   €€€r6   rk   r2  Õ	  s5   ø€ ðØˆt�2Ð&Ð' |°LÀµOÐ3DÀBÀ|ÐTUÅÐFWÐWYñ[r8   )rÈ   r.  r/  rÒ   r\   Úsym_notr¢   rª  rn   rŽ   Ú
exp_configÚ&skip_dtype_check_in_meta_registrationsrd   r¡   )r£   r7  r8  rÚ  rÙ  r.  r/  Údim1Údim2Údim3Úbatch1_sizesr=  r>  r?  s   fff$$      @@@r6   Úmeta_baddbmmrG  ¾	  s?  ý€ ÷ Là�;‰;�q‹>€DØ�;‰;�q‹>€DØ�;‰;�q‹>€DÙ”U—]’]¡6¨$¯*©*°tÀ4Ð6HÓ#IÓJ×KÒKØ�{‰{˜D¨Ð-Ó.ˆÜ	‡L‚L�—‘“ Ñ"Ñ$HÔIÜ	‡L‚L�—‘“ Ñ"Ñ$HÔIÜ×<×<Ð<Ü�ŠØ�J‰J˜&Ÿ,™,×6Ô6¨&¯,©,Ô6Þ~ô	
ð —<‘<€LØ—<‘<€LØ	�a�€BØ# A•ÐÜ	‡L‚LØ�Q�˜2Ñ×EÐE ,¨q¥/Ð5EÑ"Eö	
ôð �>‰>˜$Ÿ)™)›+Ó&Ð&r8   c                óN   € \         P                  ! V \         P                  R 7      # rî   rô  r¨   s   &$r6   Úmeta_bernoullirI  Ý	  s   € ô ×Ò˜D´×0GÑ0GÔHÐHr8   c                 ó   € V # rG   r2   ©r£   r  r©   s   &&&r6   Úmeta_bernoulli_rL  ä	  ó   € à€Kr8   c                 óN   € \         P                  ! V \         P                  R 7      # rî   rô  rK  s   &&&r6   Úmeta_bernoulli_prO  é	  s   € ô ×Ò˜D´×0GÑ0GÔHÐHr8   c                 ó.   € \         P                  ! V 4      # rG   r¦   r¨   s   &&r6   Úmeta_poissonrQ  ï	  r«   r8   c                 óÎ   € \         P                  ! W P                  4       8  R  4       \         P                  ! V \         P                  R7      p\         P                  ! V 4      V3# )c                  ó   € R # )zJError in fused_moving_avg_obs_fake_quant_cpu: ch_axis must be < self.dim()r2   r2   r8   r6   rk   Ú6meta__fused_moving_avg_obs_fq_helper.<locals>.<lambda>
  ó   € Ñ\r8   r™   )r\   rn   rŽ   r§   rÂ   )r£   Úobserver_onÚfake_quant_onÚrunning_minÚrunning_maxÚscaleÚ
zero_pointÚaveraging_constÚ	quant_minÚ	quant_maxÚch_axisÚper_row_fake_quantÚsymmetric_quantr¿   s   &&&&&&&&&&&&& r6   Ú$meta__fused_moving_avg_obs_fq_helperrb  õ	  sM   € ô  
‡L‚LØ—(‘(“*ÑÙ\ôô ×Ò˜D¬¯
©
Ô3€DÜ×Ò˜TÓ" DÐ)Ð)r8   c                óF   € V ^8„  d   QhR\         P                  R,          /# )r@   r¾  N)r\   rd   )rB   s   "r6   rC   rC   
  s   € ÷ 3ñ 3œUŸ[™[¨4Õ/ñ 3r8   c                 óŠ  aaaa€ \         P                  ! V P                  4       ^8H  R 4       \         P                  ! VP                  4       ^8H  R 4       V P                  w  ooVP                  w  oo\         P                  ! SS8H  VVVV3R l4       Ve…   \	        V 4      R9   du   \         P                  ! W P
                  8H  ;'       gI    V\         P                  8H  ;'       d.    V P
                  \         P                  \         P                  39   R 4       Vf   V P
                  MTpV P                  SS3VR7      # )r@   c                  ó   € R # )za must be 2Dr2   r2   r8   r6   rk   Úmeta_mm.<locals>.<lambda>
  ó   € ¡~r8   c                  ó   € R # )zb must be 2Dr2   r2   r8   r6   rk   rf  
  rg  r8   c            	      ó"   <€ R S RS  RS RS R2	# )z/a and b must have same reduction dim, but got [r�   z] X [r;  r2   )ÚM1ÚM2ÚNrë  s   €€€€r6   rk   rf  
  s&   ø€ ÐAÀ!ÀÀBÀrÀdÈ%ÐPRÈtÐSUÐVWÐUXÐXZÑ[r8   c                  ó   € R # )zFout_dtype must be the same as input dtype or fp32 for fp16/bf16 inputsr2   r2   r8   r6   rk   rf  &
  s   € Ñ`r8   r™   r:  )
r\   rn   rŽ   r¢   r&  rd   r=  rç  r<  r¡   )r4   r5   r¾  rY   rj  rk  rl  rë  s   &&& @@@@r6   Úmeta_mmrn  
  sú   û€ ô 
‡L‚L�—‘“˜A‘Ñ5Ô6Ü	‡L‚L�—‘“˜A‘Ñ5Ô6Ø�G‰G�E€A€rØ�G‰G�E€BˆÜ	‡L‚LØ
ˆb‰ß[ôð Òô �q‹>˜_Ô,Ü�LŠLØŸW™WÑ$÷ ð à¤§¡Ñ.÷ Cð CØŸ™¤E§M¡M´5·>±>Ð#BÑBá`ôð (Ò/�1—7’7°Y€LØ�;‰;˜˜1�v \ˆ;Ó2Ð2r8   c                 ó  a a€ V'       d[   \         ;QJ d+    . VV 3R  l\        S P                  4       4       F  NK  	  5# ! VV 3R  l\        S P                  4       4       4      # \        P                  ! S P
                  S4      # )c              3   óZ   <"  € T F   qS9  d   SP                   V,          M^x € K"  	  R# 5irŠ  ra  )rz   r  Údimsr£   s   & €€r6   r|   Ú+_compute_reduction_shape.<locals>.<genexpr>.
  s$   øé € ÐUÑDT¸q¨t¤m�T—Z‘Z –]¸Ô:ÓDTùs   ƒ(+)rm   rú   rÔ   rU   Úcompute_reduction_output_shaper¢   )r£   rq  r  s   ff&r6   r  r  ,
  sQ   ù€ ßßŒuÕUÄEÈ$Ï)É)ÔDTÓU�uÐUˆuÕUÄEÈ$Ï)É)ÔDTÓUÓUÐUä×/Ò/°·
±
¸DÓAÐAr8   c                ó   € V ^8„  d   QhRR/# )r@   rA   r¿  r2   )rB   s   "r6   rC   rC   7
  s   € ÷ ñ ˜5ñ r8   c                 ó6  € \         P                  P                  P                  V 4      pVe   VP                  # \        V R4      '       dN   \        V P                  R4      '       d2   V P                  P                  R8w  d   V P                  P                  # R# )Nr‹   rƒ   r‰   r  )r\   Ú_subclassesÚfake_tensorÚmaybe_get_fake_devicerƒ   Úhasattrr‹   )r°  Úfake_devices   & r6   r&  r&  7
  ss   € Ü×#Ñ#×/Ñ/×EÑEÀfÓM€KØÒØ×ÑÐä�˜×!Ò!Ü�F—M‘M 6×*Ò*Ø�M‰M×Ñ &Ô(à�}‰}×!Ñ!Ð!ár8   c                ó^  € V ^8„  d   QhR\         P                  R\         P                  R\        \        ,          \        ,          R\        \        ,          \        ,          R\        \        ,          \        ,          R\        R\        R\        \        ,          \        ,          R	,          /# )
r@   Úinput_tensorrº  rû   r˜  ÚdilationÚis_transposedÚgroupsÚoutput_paddingN©r\   r   rù   rÁ   rÂ   )rB   s   "r6   rC   rC   E
  s�   € ÷ `ñ `Ü—,‘,ð`ä�L‰Lð`ô ”�Iœ�Oð`ô ”#�Yœ�_ð	`ô
 ”3�iœ#�oð`ô ð`ô ð`ô œ•I¤•O dÕ*ñ`r8   c                 ó�	  aaaa€ R  R lpR R lp	VP                   R,          p
V P                   R,          oV'       d   WaP                   ^,          ,          pMWVP                   ^ ,          p\        P                  ! VP                   ^,          V,          V P                   ^,          8H  R 4       V P                   ^ ,          V.o\        V\        4      '       d   V.\        S4      ,          pM*\        V4      ^8X  d   V^ ,          .\        S4      ,          p\        V\        4      '       d   V.\        S4      ,          pM*\        V4      ^8X  d   V^ ,          .\        S4      ,          p\        V\        4      '       d   V.\        S4      ,          pM*\        V4      ^8X  d   V^ ,          .\        S4      ,          pRpV'       dX   \        V\        4      '       d   V.\        S4      ,          pM-\        V4      ^8X  d   V^ ,          .\        S4      ,          pMTpV'       gÏ   ^ RIHp \        \        S4      4       Uu. uF   pSV,          ^W>,          ,          ,           NK"  	  upo\        \        S4      4       Uu. uF&  pWN,          W®,          ^,
          ,          ^,           NK(  	  upo\        P                  ! T! \        SSRR	7       UUu. uF  w  ppVV8¬  NK  	  upp!  VV3R
 l4       \        \        S4      4       Fˆ  pV'       dD   SP                  V	! SV,          W>,          WN,          W®,          W.,          WÎ,          4      4       KN  SP                  V! SV,          W>,          WN,          W®,          W.,          4      4       KŠ  	  ^ RIHp ^ RIHpHp V! V 4      pVe   TMV P                  pVP                  R8H  ;'       d    \        P                   P"                  RJ pVP                  R8H  ;'       d    \        P                   P"                  RJpV'       d=   \        P                  ! T! SR,           Uu. uF  pV^ 8¬  NK
  	  up!  VV3R l4       S# V'       g;   \        P                  ! T! SR,           Uu. uF  pV^ 8„  NK
  	  up!  VV3R l4       S# u upi u upi u uppi u upi u upi )c                ó`   € V ^8„  d   QhR\         R\         R\         R\         R\         R\         /# )r@   Úlnr  r	  rò  r0  rA   ©rÁ   )rB   s   "r6   rC   Ú/calc_conv_nd_return_shape.<locals>.__annotate__O
  s6   € ÷ 7ñ 7”Sð 7œSð 7¤Sð 7¬Sð 7´Sð 7¼Sñ 7r8   c                ót   € V ^V,          ,           W#^,
          ,          ,
          ^,
          V,          ^,           # )aE  
Formula to apply to calculate the length of some dimension of the output

See: https://pytorch.org/docs/stable/generated/torch.nn.Conv2d.html

Args:
    ln: length of the dimension
    p: padding in that dim
    d: dilation in that dim
    k: kernel size in that dim
    s: stride in that dim
Returns:
    The output length
r2   )r„  r  r	  rò  r0  s   &&&&&r6   Ú_formulaÚ+calc_conv_nd_return_shape.<locals>._formulaO
  s,   € ð �Q˜•U•
˜Q a¥%�[Õ(¨1Õ,°Õ2°QÕ6Ð6r8   c                ól   € V ^8„  d   QhR\         R\         R\         R\         R\         R\         R\         /# )r@   r„  r  r	  rò  r0  rH   rA   r…  )rB   s   "r6   rC   r†  `
  s>   € ÷ ;ñ ;¤ð ;¬ð ;´ð ;¼ð ;Äð ;Ìð ;ÔQTñ ;r8   c                ó‚   € V ^,
          V,          ^V,          ,
          W#^,
          ,          ,           V,           ^,           # )a”  
Formula to apply to calculate the length of some dimension of the output
if transposed convolution is used.
See: https://pytorch.org/docs/stable/generated/torch.nn.ConvTranspose2d.html

Args:
    ln: length of the dimension
    p: padding in that dim
    d: dilation in that dim
    k: kernel size in that dim
    s: stride in that dim
    op: output padding in that dim

Returns:
    The output length
r2   )r„  r  r	  rò  r0  rH   s   &&&&&&r6   Ú_formula_transposedÚ6calc_conv_nd_return_shape.<locals>._formula_transposed`
  s0   € ð" �Q•˜!�|˜a !�eÕ# a¨q­5¥kÕ1°BÕ6¸Õ:Ð:r8   ºr@   NNc                  ó   € R # )zInvalid channel dimensionsr2   r2   r8   r6   rk   Ú+calc_conv_nd_return_shape.<locals>.<lambda>{
  s   € Ñ0r8   Nr¥  T)Ústrictc                  ón   <€ R RP                  R S 4       4       RRP                  R S  4       4       R2# )z+Calculated padded input size per channel: (ræ  c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5irG   r}  rR  s   & r6   r|   Ú>calc_conv_nd_return_shape.<locals>.<lambda>.<locals>.<genexpr>­
  s   é € Ð<©|¨!œs 1Ÿv˜v«|ùó   ‚z). Kernel size: (c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5irG   r}  rR  s   & r6   r|   r”  ®
  s   é € Ð+MÑ<L°q¬C°¯F¨FÓ<Lùr•  z6). Kernel size can't be greater than actual input size)Újoin)Úeffective_kernelÚpadded_inputs   €€r6   rk   r�  «
  sE   ø€ ðØ—J‘JÑ<©|Ó<Ó<Ð=ð >!Ø!&§¡Ñ+MÑ<LÓ+MÓ!MÐ Nð OFñGr8   )rx  rš  r  c                  ó6   <€ R \        S 4       RSR,           R2# ©zGiven input size per channel: z&. Calculated output size per channel: rŽ  z. Output size is too small©rù   ©rq  Ú	ret_shapes   €€r6   rk   r�  Ù
  ó(   ø€ Ð4´T¸$³Z°Lð A3Ø3<¸Rµ=°/ð B'ñ(r8   c                  ó6   <€ R \        S 4       RSR,           R2# r›  rœ  r�  s   €€r6   rk   r�  à
  rŸ  r8   )r¢   r\   rn   rx   r   rø   rÈ   r›  rú   r’  ÚappendÚtorch._subclasses.fake_tensorrx  rœ  r‹   rƒ   ÚversionÚhip)r|  rº  rû   r˜  r}  r~  r  r€  rˆ  rŒ  Úkernel_sizeÚout_channelsÚoutput_padding_listr›  r  r  rò  rx  rœ  rz  r‹   Úis_cudnnÚis_hipr;   rq  r˜  r™  rž  s   &&&&&&&&                @@@@r6   Úcalc_conv_nd_return_shaperª  E
  sÞ  û€ õ7õ";ð& —,‘,˜rÕ"€KØ×Ñ˜bÕ!€DßØ§¡¨Q¥Õ/‰à—|‘| A•ˆÜ�ŠØ�L‰L˜�O˜fÕ$¨×(:Ñ(:¸1Õ(=Ñ=Ù0ô	
ð
 ×#Ñ# AÕ&¨Ð5€IÜ�&œ'×"Ò"à�œC ›IÕ%‰Ü	ˆV‹˜Ô	Ø˜•)�œs 4›yÕ(ˆä�'œ7×#Ò#à�)œc $›iÕ'‰Ü	ˆW‹˜Ô	Ø˜1•:�,¤ T£Õ*ˆä�(œG×$Ò$à�:¤ D£	Õ)‰Ü	ˆX‹˜!Ô	Ø˜Q•K�=¤3 t£9Õ,ˆà,0ÐßÜ�n¤g×.Ò.à#1Ð"2´S¸³YÕ">ÑÜ�Ó  AÔ%Ø#1°!Õ#4Ð"5¼¸D»	Õ"AÑà"0Ð÷ ÝAô ;@ÄÀDÃ	Ô:JÓKÑ:J°Q˜˜Q� ! g¥j¥.×0Ð0Ñ:JÑKˆô œ3˜t›9Ô%ó
ñ &�ð �K˜;�>¨AÕ-Õ.°×2Ð2Ù%ñ
Ðô
 	�ŠÙÜ%(¨Ð7GÐPTÕ%UÔVÑ%U™T˜Q �!�q”&Ñ%UÒVñõô	
	
ô ”3�t“9ÖˆçØ×ÑÙ#Ø˜•Gà•Jð •KØ•Nà•IØ'Õ*óöð ×Ñá˜˜a� '¥*¨h­k¸;½>È6Í9ÓUöñ% õ2 DßEá'¨Ó5€KØ'Ò3‰[¸×9LÑ9L€Fð �{‰{˜fÑ$×BÐB¬¯©×):Ñ):¸dÐ)B€HØ�[‰[˜FÑ"×DÐD¤u§}¡}×'8Ñ'8ÀÐ'D€FßÜ�ŠÙ i°¦mÓ4¡m �a˜1”f¡mÑ4Ñ5õ(ô	
ð Ð÷ Ü�ŠÙ I¨b¦MÓ2¡M˜q�Q˜”U¡MÑ2Ñ3õ(ô	
ð ÐùòI Lùò
ùó Wùò^ 5ùò 3s   É&R.Ê,R3ËR8ÑR>ÒSc                 ób   € \         P                  P                  V 4      \         P                  8H  # rG   )r\   Ú_prims_commonr   rè  )Útens   &r6   Úis_channels_lastr®  è
  s$   € Ü×Ñ×4Ñ4°SÓ9¼U×=PÑ=PÑPÐPr8   c                ó  € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R,          R\         P                  R,          R\         P                  R,          R\        R\        R	\        /# )
r@   r|  rº  r¼  NÚrunning_meanÚrunning_varÚtrainingÚexponential_average_factorÚepsilon)r\   r   rÂ   r`   )rB   s   "r6   rC   rC   í
  s{   € ÷ $$ñ $$Ü—,‘,ð$$ä�L‰Lð$$ô �,‰,˜Õ
ð$$ô —,‘, Õ%ð	$$ô
 —‘ Õ$ð$$ô ð$$ô !&ð$$ô ñ$$r8   c                 óø  a€ Ve   VP                   MVP                   pVe   VP                   MVP                   p	\        V 4      o\        P                  ! \        P                  P
                  P                  P                  V SR7      V3R l4       \        P                  ! V SR7      p
V'       d$   VP                  V4      pVP                  V	4      pM"VP                  R4      pVP                  R4      pW«V3# )NrÚ   c                  ó   <€ R S  2# )z/miopen_batch_norm: input must be contiguous in r2   )Úfmts   €r6   rk   Ú(meta_miopen_batch_norm.<locals>.<lambda>  s   ø€ ÐAÀ#ÀÑGr8   rû  )
r¢   r   r\   rn   Úopsr,   Úsym_is_contiguousÚdefaultr§   r¡   )r|  rº  r¼  r°  r±  r²  r³  r´  Úsave_mean_shapeÚsave_var_shaper  Ú	save_meanÚsave_varr·  s   &&&&&&&&     @r6   Úmeta_miopen_batch_normrÀ  ì
  sÑ   ø€ ð -9Ò,D�l×(Ò(È&Ï,É,€OØ*5Ò*A�[×&Ò&ÀvÇ|Á|€Nô
   Ó
-€Cô 
‡L‚LÜ�	‰	�‰×(Ñ(×0Ñ0°ÈSÐ0ÓQÜGôô
 ×
Ò
˜<°sÔ
;€CçØ×$Ñ$ _Ó5ˆ	Ø×#Ñ# NÓ3‰à×$Ñ$ TÓ*ˆ	Ø×#Ñ# DÓ)ˆà˜8Ð#Ð#r8   c                ó&  € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R,          R\        \        ,          R\        \        ,          R\        \        ,          R\        R	\        \        ,          R
\        /	# )r@   r|  rº  r¼  Nrû   r˜  r}  r~  r€  r  r�  )rB   s   "r6   rC   rC     sƒ   € ÷ #ñ #Ü—,‘,ð#ä�L‰Lð#ô �,‰,˜Õ
ð#ô ”�Ið	#ô
 ”#�Yð#ô ”3�ið#ô ð#ô œ•Ið#ô ñ#r8   c	           
      ó¼   € \        T TTTTTTV'       d   TMR 4      p	^ RIHp
 ^p^pV
! V P                  V4      ^ 8H  4      '       d   ^ Wœ&   V P	                  V	4      pV# )NrÄ   )rª  rÈ   rÅ   rÒ   r¡   )r|  rº  r¼  rû   r˜  r}  r~  r€  r  Ú	shape_outrÅ   Úinput_channels_dimÚoutput_channels_dimr  s   &&&&&&&&&     r6   Ú	meta_convrÆ    sw   € ô *ØØØØØØØß'‰¨Tó	€Iõ EàÐØÐÙ�l×'Ñ'Ð(:Ó;¸qÑ@×AÒAØ)*ˆ	Ñ&ð ×
 Ñ
  Ó
+€CØ€Jr8   c                óV  € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R,          R\        \        ,          R\        \        ,          R\        \        ,          R\        R	\        \        ,          R
\        R\        R\        R\        R\        /# )r@   r|  rº  r¼  Nrû   r˜  r}  Ú
transposedr€  r  Ú	benchmarkÚdeterministicÚcudnn_enabledÚ
allow_tf32r�  )rB   s   "r6   rC   rC   <  s«   € ÷ ñ Ü—,‘,ðä�L‰Lðô �,‰,˜Õ
ðô ”�Ið	ô
 ”#�Yðô ”3�iðô ðô œ•Iðô ðô ðô ðô ðô ñr8   c                 ó(   € \        V VVVVVVVV4	      # rG   )rÆ  )r|  rº  r¼  rû   r˜  r}  rÈ  r€  r  rÉ  rÊ  rË  rÌ  s   &&&&&&&&&&&&&r6   Ú
meta__convrÎ  ;  s,   € ô  ØØØØØØØØØó
ð 
r8   Úmkldnnc
           
      óÖ   € \        WWCVR V. 4      p
V P                  V
4      p\        P                  pV P	                  4       ^8X  d   \        P
                  pVP                  VR7      pV# )FrÚ   )rª  r¡   r\   rè  rŽ   Úchannels_last_3dr¨  )r|  rº  r¼  r˜  rû   r}  r  ÚattrÚscalarsÚ	algorithmrÃ  r  Úout_memory_formats   &&&&&&&&&&   r6   Úmeta_mkldnn_convolution_defaultrÖ  ]  sl   € ô .Ø &°8¸UÀFÈBó
ˆ	ð ×$Ñ$ YÓ/ˆÜ!×/Ñ/ÐØ×ÑÓ Ô"Ü %× 6Ñ 6ÐØ�f‰fÐ#4ˆfÓ5ˆØˆ
r8   c                 ój   € V P                  . V P                  R R OVP                  ^ ,          N54      # rH  ©r¡   r¢   )r|  rº  r¼  rÒ  rÓ  rÔ  s   &&&&&&r6   Úmeta_linear_pointwise_defaultrÙ  t  s5   € ð ×%Ñ%Ð&Q¨×(:Ñ(:¸3¸BÐ(?Ð&QÀÇÁÈaÅÑ&QÓRÐRr8   r(  c                 ój   € V P                  . V P                  R R OVP                  ^ ,          N54      # rH  rØ  )r|  Úpacked_weightÚorig_weightr¼  r  s   &&&&&r6   Úmeta_mkl_linearrÝ    s:   € à×)Ñ)Ø@�,×$Ñ$ S bÐ)Ð@¨;×+<Ñ+<¸QÕ+?Ñ@óð r8   Úonednnc           
      ó(  € \        V VVVV	R V
R4      pVf   V P                  pV\        P                  \        P                  \        P
                  \        P                  \        P                  39  d   \        RV 24      hV P                  VVR7      p\        V4      R9  d   \        R\        V4       R24      h^\        P                  ^\        P                  ^\        P                  /\        V4      ,          pVP                  VR7      pV# )FNúOoutput_dtype must be one of float32, bfloat16, uint8, int8, float8_e4m3fn, got r™   z3Expect output to be 3d/4d/5d for conv1d/2d/3d, got r	  rÚ   )é   é   é   )rª  rd   r\   r=  r<  Úuint8rÄ  rè  r’   r¡   rø   rß   rè  rÑ  r¨  )r;   Úx_scaleÚx_zpÚwÚw_scaleÚw_zpr¼  rû   r˜  r}  r  Úoutput_scaleÚoutput_zero_pointrC  rÒ  rÓ  rÔ  rÃ  r  rB   s   &&&&&&&&&&&&&&&&&   r6   Úmeta_qconv_pointwiserì  ‰  s  € ô, .ØØØØØØØØó	
ˆ	ð ÒØŸ7™7ˆLØÜ�M‰MÜ�N‰NÜ�K‰KÜ�J‰JÜ×Ñð 
ô 
ô !ØaÐbnÐaoÐpóð ð �k‰k˜)¨<ˆkÓ8ˆÜˆy‹> Ô*Ü ØEÄcÈ)ÃnÐEUÐUVÐWóð ð Œu×&Ñ&ØŒu×"Ñ"ØŒu×%Ñ%ð
ô ˆi‹.õ	ˆð
 �f‰f 6ˆfÓ*ˆØˆ
r8   c                 ó2   € VR 8w  d   \        RV R24      hV# )Úsumz#binary_op_name must be 'sum', got 'rÀ  ©r’   )r;   rå  ræ  rç  rè  ré  Úaccumr¼  rû   r˜  r}  r  rê  rë  rC  Úaccum_scaleÚaccum_zero_pointÚbinary_op_namerÙ  Úunary_op_nameÚunary_op_argsÚunary_op_algorithms   &&&&&&&&&&&&&&&&&&&&&&r6   Úmeta_qconv2d_pointwise_binaryr÷  Â  s-   € ð4 ˜UÔ"Ü Ø5°nÐ5EÀQÐGóð ð ˆr8   c                 ó@  € \        V P                  4      pVP                  ^,          VR&   V	\        P                  \        P                  \        P
                  \        P                  \        P                  39  d   \        RV	 24      hV P                  WÙR7      pV# )r1   zOoutput_dtype must be one of float32, bfloat16, int8, uint8, float8_e4m3fn, got r™   r÷   )
rù   r¢   r\   r=  r<  rÄ  rä  rè  r’   r¡   )r;   rå  ræ  rç  rè  ré  r¼  rê  rë  rC  Úpost_op_nameÚpost_op_argsÚpost_op_algorithmrë  r  s   &&&&&&&&&&&&&  r6   Úmeta_qlinear_pointwiserü  â  s‡   € ô" ˜AŸG™G“}ˆàŸ7™7 1�:ˆ�RÑØÜ�M‰MÜ�N‰NÜ�J‰JÜ�K‰KÜ×Ñð 
ô 
ô !ØaÐbnÐaoÐpóð ð �k‰k˜,ˆkÓ;ˆØˆ
r8   c                 óT  € VR 8X  d   V# \        V P                  4      pVP                  ^,          VR&   V
\        P                  \        P                  \        P
                  \        P                  \        P                  39  d   \        RV
 24      hV P                  VV
R7      pV# )rî  rà  r™   r÷   )
rù   r¢   r\   r=  r<  rä  rÄ  rè  r’   r¡   )r;   rå  ræ  rç  rè  ré  Úx_2r¼  rê  rë  rC  Úx2_scaleÚx2_zpró  rÙ  rô  rõ  rö  rë  r  s   &&&&&&&&&&&&&&&&&&  r6   Úmeta_qlinear_pointwise_binaryr    s–   € ð, ˜UÔ"ØˆJÜ˜AŸG™G“}ˆàŸ7™7 1�:ˆ�RÑØÜ�M‰MÜ�N‰NÜ�K‰KÜ�J‰JÜ×Ñð 
ô 
ô !ØaÐbnÐaoÐpóð ð �k‰k˜,¨lˆkÓ;ˆØˆ
r8   c                 ó~   € \        V P                  4      pVP                  ^,          VR&   V P                  V4      pV# ©r1   r÷   )rù   r¢   r¡   )r;   rç  r¼  rë  r  s   &&&  r6   Úmeta_linear_dynamic_fp16r  +  s6   € ô ˜AŸG™G“}ˆàŸ7™7 1�:ˆ�RÑØ�k‰k˜,Ó'ˆØˆ
r8   c                 ó”  a aa€ \         P                  ! S P                  4       ^8H  V 3R l4       \         P                  ! S P                  \         P                  \         P
                  39   V 3R l4       S P                  w  po\         P                  ! SRJ ;'       g    SR,          S8H  VV3R l4       S P                  SV34      # )r@   c                  ó,   <€ R S P                  4        R2# )z)qlinear_prepack expects a 2D weight, got rÑ  r4  ©rº  s   €r6   rk   Ú&meta_qlinear_prepack.<locals>.<lambda>>  s   ø€ Ð?ÀÇ
Á
Ã¸~ÈQÑOr8   c                  ó"   <€ R S P                    2# )z:qlinear_prepack expects int8 or float8_e4m3fn weight, got r™   r  s   €r6   rk   r  B  s   ø€ ðØ—|‘|�nñ&r8   Nc                  ó$   <€ R SR,           RS  R2# )zqlinear_prepack: x_shape[-1] (z!) must match weight in_features (r‚   r÷   r2   )ÚKÚx_shapes   €€r6   rk   r  J  s   ø€ Ø0°¸µ°ð >'Ø'( c¨ñ,r8   r÷   )r\   rn   rŽ   rd   rÄ  rè  r¢   r¡   )rº  r  rl  r  s   ff @r6   Úmeta_qlinear_prepackr  8  sŸ   ú€ ô 	�ŠØ�J‰J‹L˜AÑÜOô	
ô 	�ŠØ�L‰LœUŸZ™Z¬×)<Ñ)<Ð=Ñ=ôô	
ð �|‰|‰ˆˆ1Ü�ŠØ�tˆO×/Ð/˜w r�{¨aÑ/õô	
ð ×Ñ  A Ó'Ð'r8   Ú	quantizedc                 ó,  € \        WW#WE4      w  pppV P                  4       ^8X  d   V P                  R4      M^p	\        P                  p
V P                  4       ^8X  d   WgV.pMW–Wx.p\        P
                  ! VV P                  V P                  V
R7      # ©râ  r  éüÿÿÿ)Ú#max_pool2d_checks_and_compute_shaperŽ   rÒ   r\   rè  r”   rd   r‹   ©r  r¥  rû   r˜  r}  Ú	ceil_modeÚnInputPlaneÚoutputHeightÚoutputWidthrµ  rÛ   rÒ   s   &&&&&&      r6   Úmeta_quantized_max_pool2dr  U  s‘   € ô 0Ø °ó
ñ		
ØØØð $)§9¡9£;°!Ô#3�—‘˜B”¸ˆÜ×+Ñ+ˆØ�9‰9‹;˜!ÔØ¨{Ð;‰Dà¨ÐCˆDÜ�{Š{ØØ—+‘+Ø—<‘<Ø'ô	
ð 	
r8   c                 ó  a aaa€ \         P                  ! S P                  4       ^8H  V 3R l4       \         P                  ! SP                  4       ^8H  V3R l4       \         P                  ! S P                  \         P                  \         P
                  \         P                  39   V 3R l4       \         P                  ! SP                  \         P                  8H  V3R l4       \         P                  ! SP                  \         P                  8H  V3R l4       \         P                  ! SP                  S P                  8H  V3R l4       S P                  S P                  ^ 4      SP                  ^ 4      S P                  R7      # )r@   c                  ó,   <€ R S P                  4        R2# )zx must be a 2D tensor, got rÑ  r4  ©r;   s   €r6   rk   Ú/meta_int4mm_packed_weight_cpu.<locals>.<lambda>t  ó   ø€ Ð-HÈÏÉËÈ	ÐQRÑ+Sr8   c                  ó,   <€ R S P                  4        R2# )zw must be a 2D tensor, got rÑ  r4  ©rç  s   €r6   rk   r  u  r  r8   c                  ó"   <€ R S P                    2# ©z#expected x to be f32/f16/bf16, got r™   r  s   €r6   rk   r  x  s   ø€ Ð9¸!¿'¹'¸ÑCr8   c                  ó"   <€ R S P                    2# ©zexpected w to be uint8, got r™   r  s   €r6   rk   r  {  s   ø€ Ð.JÈ1Ï7É7È)Ñ,Tr8   c                  ó"   <€ R S P                    2# )z q_group_size must be int64, got r™   )Úq_group_sizes   €r6   rk   r    s   ø€ Ð6°|×7IÑ7IÐ6JÑKr8   c                  ó"   <€ R S P                    2# )z5q_scale_and_zeros must have the same dtype as x, got r™   )Úq_scale_and_zeross   €r6   rk   r  ƒ  s   ø€ ÐKÐL]×LcÑLcÐKdÑer8   r™   )r\   rn   rŽ   rd   r=  rç  r<  rä  rê   r¡   rÒ   ©r;   rç  r%  r'  s   ffffr6   Úmeta_int4mm_packed_weight_cpur)  r  sõ   û€ ä�Š�Q—U‘U“W ‘\Ô#SÔTÜ�Š�Q—U‘U“W ‘\Ô#SÔTÜ�ŠØ�G‰GœŸ™¤u§}¡}´e·n±nÐEÑEÜCô	
ô 	�ŠØ�G‰G”u—{‘{Ñ"Ô$Tô	
ô 	�ŠØ×Ñ¤%§+¡+Ñ-ÜKô	
ô 	�ŠØ×#Ñ# q§w¡wÑ.Üeô	
ð �{‰{˜1Ÿ6™6 !›9 a§f¡f¨Q£i°q·w±wˆ{Ó?Ð?r8   c                 ó¨   a aaa€ \         P                  ! S P                  4       S8H  ;'       d    S P                  S,          S8H  VVVV 3R  l4       R# )c                  óz   <€ R S  RS RS R2RSP                  4        RS RSP                  S,           2,           # )zExpected a tensor of dimension z and tensor.size[z] == r�   zbut got : dimension z] = ©rŽ   r¢   )rŽ   Údim_sizerÒ   r°  s   €€€€r6   rk   Ú check_dim_size.<locals>.<lambda>Œ  sN   ø€ Ð1°#°Ð6GÈÀzÐQVÐW[ÐV\Ð\^Ð_Ø  §¡£ Ð.?À¸zÈÈfÏlÉlÐ[cÕNdÐMeÐ
fögr8   N)r\   rn   rŽ   r¢   )r°  rŽ   r-  rÒ   s   ffffr6   Úcheck_dim_sizer/  ‰  s9   û€ Ü	‡L‚LØ�
‰
‹˜Ñ×>Ð> §¡¨XÕ 6¸$Ñ >÷	gör8   c          
      ó�   € V ^8„  d   QhR\         P                  R\        R\        R\         P                  R\         P                  /# )r@   r  rZ  r[  rd   rA   )r\   r   r`   rÁ   rd   )rB   s   "r6   rC   rC   ’  s@   € ÷ #ñ #Ü�<‰<ð#Ü %ð#Ü36ð#Ü?D¿{¹{ð#ä
‡\�\ñ#r8   c                 ó.   € \         P                  ! V 4      # rG   r¦   )r  rZ  r[  rd   s   &&&&r6   Úmeta_quantize_per_tensorr2  ‘  s   € ô ×Ò˜EÓ"Ð"r8   c                 ó   a € R  pV! RV4      w  r‰\         P                  ! \        V4      R	9   R 4       \         P                  ! S P                  \         P                  \         P
                  \         P                  \         P                  39  V 3R l4       \        V4      ^ 8X  d   Y‰rºM-\        V4      ^8X  d   V^ ,          V^ ,          rºMV! RV4      w  r«V! RV4      w  rÍ\         P                  ! VRJ ;'       g    V^ 8g  R 4       S P                  4       ^8X  d   S P                  R
4      M^pS P                  R4      pS P                  R4      pS P                  R4      p\        VWŒV
^V4      p\        VW�V^V4      p\        P                  ! S 4      p\        S VV	V
VVV^^VVVVVV4       S P                  4       ^8X  d   VVV.pMWïVV.p\         P                  ! VS P                  S P                  VR7      # )c                 ó    a € \         P                  ! \        V4      R9   V 3R l4       V^ ,          p\        V4      ^8X  d   TMV^,          pW#3# )r1   c                  ó   <€ R S  R2# )zavg_pool2d: ú4 must either be a single int, or a tuple of two intsr2   ©rS  s   €r6   rk   Ú1meta_avg_pool2d.<locals>.unpack.<locals>.<lambda>¥  ó   ø€ �l 4 &Ð(\Ñ]r8   ©r1   r@   ©r\   rn   rø   ©rS  r)  r!  ÚWs   f&  r6   ÚunpackÚmeta_avg_pool2d.<locals>.unpack¢  óE   ø€ Ü�ŠÜ�‹H˜ÑÜ]ô	
ð ��FˆÜ�S“˜Q”‰A C¨¥FˆØˆtˆr8   r¥  c                  ó   € R # ©zOavg_pool2d: stride must either be omitted, a single int, or a tuple of two intsr2   r2   r8   r6   rk   Ú!meta_avg_pool2d.<locals>.<lambda>®  ó   € Ñar8   c                  ó@   <€ R S P                   P                  4        R2# )z""avg_pool2d" not implemented for 'rÀ  rÁ  rÃ  s   €r6   rk   rC  ²  ó   ø€ Ð6°u·{±{×7JÑ7JÓ7LÐ6MÈQÑQr8   rû   r˜  Nc                  ó   € R # ©zdivisor must be not zeror2   r2   r8   r6   rk   rC  ¿  ó   € Ñ*r8   r  ©r   r1   r@   r  éýÿÿÿrO  r÷   )r\   rn   rø   rd   rä  Úuint16Úuint32rg  rŽ   rÒ   Úpooling_output_shaperU   r   Úpool2d_shape_checkr”   r‹   )r  r¥  rû   r˜  r  Úcount_include_padÚdivisor_overrider>  ÚkHÚkWÚdHÚdWÚpadHÚpadWrµ  r  ÚinputHeightÚ
inputWidthr  r  rÛ   rÒ   s   f&&&&&&               r6   Úmeta_avg_pool2drZ  ˜  sÓ  ø€ òñ �M ;Ó/�F€BÜ	‡L‚LÜˆF‹�yÑ Ùaôô 
‡L‚LØ�‰œEŸK™K¬¯©´u·|±|ÄUÇ\Á\ÐRÑRÜQôô ˆ6ƒ{�aÔØ‰BÜ	ˆV‹˜Ô	Ø˜•˜F 1�I‰Bá˜ &Ó)‰ˆá˜	 7Ó+�J€Dä	‡L‚LØ˜DÐ ×9Ð9Ð$4¸Ñ$9Ù*ôð
  %Ÿy™y›{¨aÔ/ˆU�Z‰Z˜Œ^°Q€FØ—*‘*˜R“.€KØ—*‘*˜R“.€KØ—‘˜B“€Jä'¨°R¸rÀ1ÀiÓP€LÜ& z°2¸RÀÀIÓN€Kä×/Ò/°Ó6€MÜØØ
Ø
Ø
Ø
ØØØ	Ø	ØØØØØØôð$ ‡y�yƒ{�aÔØ˜\¨;Ð7‰à \°;Ð?ˆÜ�;Š;ØØ�k‰kØ�|‰|Ø#ô	ð r8   c                 óÔ   € \        V VVVVVV^^V	V
VVVV4       V P                  4       pT	p\        WV^,
          V4       \        WV^,
          V4       \        WV^,
          V4       R# rŠ  )rO  rŽ   r/  )r  Ú
gradOutputrµ  rR  rS  rT  rU  rV  rW  r  rX  rY  r  r  Ú
mem_formatrÔ   ÚnOutputPlanes   &&&&&&&&&&&&&&&  r6   Úavg_pool2d_backward_shape_checkr_  ê  s{   € ô" ØØ
Ø
Ø
Ø
ØØØ	Ø	ØØØØØØôð$ �9‰9‹;€DØ€Lä�: T¨A¥X¨|Ô<Ü�: T¨A¥X¨|Ô<Ü�: T¨A¥X¨{Ö;r8   c                 ó|  € \         P                  ! \        V4      ^8H  ;'       g    \        V4      ^8H  R 4       V^ ,          p\        V4      ^8X  d   TMV^,          p	\         P                  ! \        V4      ^ 8H  ;'       g%    \        V4      ^8H  ;'       g    \        V4      ^8H  R 4       \        V4      ^ 8X  d   TMV^ ,          p
\        V4      ^ 8X  d   T	M\        V4      ^8X  d   T
MV^,          p\         P                  ! \        V4      ^8H  ;'       g    \        V4      ^8H  R 4       V^ ,          p\        V4      ^8X  d   TMV^,          p\         P                  ! VRJ ;'       g    V^ 8g  R 4       VP                  pVP	                  4       ^8X  d
   VR,          M^pVR,          pVR	,          pVR
,          p\        VWŒV
^V4      p\        VW�V^V4      p\        P                  ! V4      p\        VV VVV	V
VVVVVVVVV4       \         P                  ! VVP                  VP                  VR7      # )r1   c                  ó   € R # )zKavg_pool2d: kernel_size must either be a single int, or a tuple of two intsr2   r2   r8   r6   rk   Ú*meta_avg_pool2d_backward.<locals>.<lambda>$  s   € Ñ]r8   c                  ó   € R # rB  r2   r2   r8   r6   rk   rb  *  rD  r8   c                  ó   € R # )zGavg_pool2d: padding must either be a single int, or a tuple of two intsr2   r2   r8   r6   rk   rb  0  s   € ÑYr8   Nc                  ó   € R # rH  r2   r2   r8   r6   rk   rb  7  rI  r8   r  r  rK  rO  r÷   )r\   rn   rø   r¢   rŽ   rN  rU   r   r_  r”   rd   r‹   )ÚgradOutput_r  r¥  rû   r˜  r  rP  rQ  rR  rS  rT  rU  rV  rW  Ú
input_sizerµ  r  rX  rY  r  r  r]  s   &&&&&&&&              r6   Úmeta_avg_pool2d_backwardrh    s  € ô 
‡L‚LÜˆKÓ˜AÑ×6Ð6¤ [Ó!1°QÑ!6Ù]ôð 
�Q�€BÜ�;Ó 1Ô$‰¨+°a­.€BÜ	‡L‚LÜˆF‹�qÑ×@Ð@œC ›K¨1Ñ,×@Ð@´°F³¸qÑ0@Ùaôô �6‹{˜aÔ‰ V¨A¥Y€BÜ�6‹{˜aÔ‰¬3¨v«;¸!Ô+;¡RÀÈÅ€BÜ	‡L‚LÜˆG‹˜Ñ×.Ð.œS ›\¨QÑ.ÙYôð �1�:€DÜ�w“< 1Ô$‰4¨'°!­*€Dä	‡L‚LØ˜DÐ ×9Ð9Ð$4¸Ñ$9Ù*ôð
 —‘€JØ$Ÿy™y›{¨aÔ/ˆZ˜Ž^°Q€FØ˜R•.€KØ˜R•.€KØ˜B•€Jä'¨°R¸rÀ1ÀiÓP€LÜ& z°2¸RÀÀIÓN€Kä×,Ò,¨UÓ3€Jä#ØØØØ
Ø
Ø
Ø
ØØØØØØØØôô$ �;Š;ØØ�k‰kØ�|‰|Ø ô	ð r8   c                 óÎ  a € \         P                  ! \        V4      R9   R 4       V^ ,          p\        V4      ^8X  d   TMV^,          p\        V4      ^8X  d   TMV^,          p	\         P                  ! V'       * ;'       g    \        V4      R9   R 4       \         P                  ! S P                  \         P                  \         P
                  \         P                  \         P                  39  V 3R l4       V'       g   TMV^ ,          p
V'       g   TM\        V4      ^8X  d   T
MV^,          pV'       g   T	M\        V4      ^8X  d   T
MV^,          p\         P                  ! \        V4      R9   R 4       V^ ,          p\        V4      ^8X  d   TMV^,          p\        V4      ^8X  d   TMV^,          p\         P                  ! S P                  R9   R 4       \         P                  ! VRJ ;'       g    V^ 8g  R 4       S P                  ^ 4      pS P                  R4      pS P                  R4      pS P                  R4      pS P                  R4      p\        VW}V
^V4      p\        VWŽV^V4      p\        VWŸV^V4      p\        S VVVV	V
VVVVV^^^VVVVVVRR	R
7       S P                  ^8X  d   S P                  VVVV34      # S P                  VVVVV34      # )r1   c                  ó   € R # ©zFavg_pool3d: kernel_size must be a single int, or a tuple of three intsr2   r2   r8   r6   rk   Ú!meta_avg_pool3d.<locals>.<lambda>l  ó   € ÑXr8   c                  ó   € R # ©zJavg_pool3d: stride must be omitted, a single int, or a tuple of three intsr2   r2   r8   r6   rk   rl  t  rU  r8   c                  ó@   <€ R S P                   P                  4        R2# )z""avg_pool3d" not implemented for 'rÀ  rÁ  rÃ  s   €r6   rk   rl  x  rF  r8   c                  ó   € R # ©zBavg_pool3d: padding must be a single int, or a tuple of three intsr2   r2   r8   r6   rk   rl  €  ó   € ÑTr8   c                  ó   € R # ©z9non-empty 4D or 5D (batch mode) tensor expected for inputr2   r2   r8   r6   rk   rl  ˆ  ó   € ÑKr8   Nc                  ó   € R # rH  r2   r2   r8   r6   rk   rl  �  rI  r8   zavg_pool3d()T)Úcheck_input_size©r1   rá  ©râ  rã  r  rK  rO  r÷   )r\   rn   rø   rd   rä  rL  rM  rg  rÔ   rÒ   rN  Úpool3d_shape_checkr¡   )r  r¥  rû   r˜  r  rP  rQ  ÚkTrR  rS  ÚdTrT  rU  ÚpadTrV  rW  rµ  ÚnslicesÚitimeÚiheightÚiwidthÚotimeÚoheightÚowidths   f&&&&&&                 r6   Úmeta_avg_pool3dr†  _  sŽ  ø€ ô 
‡L‚LÜˆKÓ˜FÑ"ÙXôð 
�Q�€BÜ�;Ó 1Ô$‰¨+°a­.€BÜ�;Ó 1Ô$‰¨+°a­.€Bä	‡L‚LØŒ
×+Ð+”c˜&“k VÑ+Ù\ôô 
‡L‚LØ�‰œEŸK™K¬¯©´u·|±|ÄUÇ\Á\ÐRÑRÜQô÷ ‰˜v a�y€Bß‰¤c¨&£k°QÔ&6¡¸FÀ1½I€Bß‰¤c¨&£k°QÔ&6¡¸FÀ1½I€Bä	‡L‚LÜˆG‹˜ÑÙTôð �1�:€DÜ�w“< 1Ô$‰4¨'°!­*€DÜ�w“< 1Ô$‰4¨'°!­*€Dä	‡L‚LØ�
‰
�fÑÙKôô
 
‡L‚LØ˜DÐ ×9Ð9Ð$4¸Ñ$9Ù*ôð
 �Z‰Z˜‹]€FØ�j‰j˜‹n€GØ�J‰J�r‹N€EØ�j‰j˜‹n€GØ�Z‰Z˜‹^€Fä  ¨°"°a¸ÓC€EÜ" 7¨B°b¸!¸YÓG€GÜ! &¨"°B¸¸9ÓE€FäØØØ
Ø
Ø
Ø
Ø
Ø
ØØØØ	Ø	Ø	ØØØØØØØØõ-ð2 ‡z�z�Q„Ø�‰ ¨°¸Ð@ÓAÐAà�‰ ¨°¸ÀÐHÓIÐIr8   c                 óš  € \         P                  ! \        V4      R9   R 4       V^ ,          p\        V4      ^8X  d   TMV^,          p	\        V4      ^8X  d   TMV^,          p
\         P                  ! V'       * ;'       g    \        V4      R9   R 4       V'       g   TMV^ ,          pV'       g   T	M\        V4      ^8X  d   TMV^,          pV'       g   T
M\        V4      ^8X  d   TMV^,          p\         P                  ! \        V4      R9   R 4       V^ ,          p\        V4      ^8X  d   TMV^,          p\        V4      ^8X  d   TMV^,          p\         P                  ! VP                  R	9   R 4       \         P                  ! VRJ ;'       g    V^ 8g  R 4       VP	                  R
4      pVP	                  R4      pVP	                  R4      pVP	                  R4      p\        VWŽV^V4      p\        VWŸV^V4      p\        VV
VV^V4      p\        VV VVV	V
VVVVVVVVVVVVR4       VP                  VP                  4      # )r1   c                  ó   € R # rk  r2   r2   r8   r6   rk   Ú*meta_avg_pool3d_backward.<locals>.<lambda>Ç  rm  r8   c                  ó   € R # ro  r2   r2   r8   r6   rk   r‰  Ï  rU  r8   c                  ó   € R # rr  r2   r2   r8   r6   rk   r‰  ×  rs  r8   c                  ó   € R # ru  r2   r2   r8   r6   rk   r‰  ß  rv  r8   Nc                  ó   € R # rH  r2   r2   r8   r6   rk   r‰  ä  rI  r8   zavg_pool3d_backward()ry  rz  r  rK  rO  r÷   )	r\   rn   rø   rÔ   rÒ   rN  Úavg_pool3d_backward_shape_checkr¡   r¢   )rÐ  r  r¥  rû   r˜  r  rP  rQ  r|  rR  rS  r}  rT  rU  r~  rV  rW  r  r€  r�  r‚  Úotime_for_shape_checkÚoheight_for_shape_checkÚowidth_for_shape_checks   &&&&&&&&                r6   Úmeta_avg_pool3d_backwardr’  ¹  s  € ô 
‡L‚LÜˆKÓ˜FÑ"ÙXôð 
�Q�€BÜ�;Ó 1Ô$‰¨+°a­.€BÜ�;Ó 1Ô$‰¨+°a­.€Bä	‡L‚LØŒ
×+Ð+”c˜&“k VÑ+Ù\ô÷ ‰˜v a�y€Bß‰¤c¨&£k°QÔ&6¡¸FÀ1½I€Bß‰¤c¨&£k°QÔ&6¡¸FÀ1½I€Bä	‡L‚LÜˆG‹˜ÑÙTôð �1�:€DÜ�w“< 1Ô$‰4¨'°!­*€DÜ�w“< 1Ô$‰4¨'°!­*€Dä	‡L‚LØ�
‰
�fÑÙKôô
 
‡L‚LØ˜DÐ ×9Ð9Ð$4¸Ñ$9Ù*ôð
 �j‰j˜‹n€GØ�J‰J�r‹N€EØ�j‰j˜‹n€GØ�Z‰Z˜‹^€Fä0°¸À"ÀaÈÓSÐÜ2°7¸BÀbÈ!ÈYÓWÐÜ1°&¸"¸dÀBÈÈ9ÓUÐä#ØØØØ
Ø
Ø
Ø
Ø
Ø
ØØØØØØØØØØô'ð, �?‰?˜5Ÿ;™;Ó'Ð'r8   c                 óH  a € \         P                  ! S P                  ^8H  ;'       g    S P                  ^8H  V 3R l4       S P                  RR \	        V4      ,           p\
        P                  ! S 4      p\         P                  ! VS P                  S P                  VR7      # )rá  c                  ó"   <€ R S P                    2# )z"Expected 3D or 4D tensor, but got ra  rà   s   €r6   rk   Ú*meta_adaptive_avg_pool2d.<locals>.<lambda>  ó   ø€ Ð4°T·Z±Z°LÑAr8   Nr  rO  )
r\   rn   rÔ   r¢   rm   rU   r   r”   rd   r‹   )r£   Úoutput_sizerë  rÛ   s   f&  r6   Úmeta_adaptive_avg_pool2dr˜  	  s   ø€ ä	‡L‚LØ�	‰	�Q‰×(Ð(˜$Ÿ)™) q™.ÜAôð —:‘:˜c˜r�?¤U¨;Ó%7Õ7€LÜ×/Ò/°Ó5€Mô �;Š;ØØ�j‰jØ�{‰{Ø#ô	ð r8   c                 óÞ   a € \         P                  ! S P                  ^8H  ;'       g    S P                  ^8H  V 3R l4       S P                  S P                  RR \        V4      ,           4      # )râ  c                  ó"   <€ R S P                    2# )z"Expected 4D or 5D tensor, but got ra  rà   s   €r6   rk   Ú*meta_adaptive_avg_pool3d.<locals>.<lambda>  r–  r8   NrK  )r\   rn   rÔ   r¡   r¢   rm   )r£   r—  s   f&r6   Úmeta_adaptive_avg_pool3drœ    sR   ø€ ä	‡L‚LØ�	‰	�Q‰×(Ð(˜$Ÿ)™) q™.ÜAôð �>‰>˜$Ÿ*™* S b˜/¬E°+Ó,>Õ>Ó?Ð?r8   c                 ó  a aa€ S P                   p\        ^V4       F1  o\        P                  ! S P	                  S4      ^ 8„  V V3R l4       K3  	  \        P                  ! V^8H  ;'       g    V^8H  V3R l4       \        P                  ! SP
                  S P
                  8H  V V3R l4       \        P                  p\        S4      '       d   \        P                  pSP                  SP                  4      P                  VR7      # )r1   c                  ó*   <€ R S P                    RS R2# )z{adaptive_avg_pool2d_backward(): Expected grad_output to have non-zero                       size for non-batch dimensions, ú with dimension ú being emptyra  )Úgrad_outr  s   €€r6   rk   Ú4meta__adaptive_avg_pool2d_backward.<locals>.<lambda>*  s$   ø€ ð 6Ø6>·n±nÐ5EÐEUÐVWÐUXÐXdñfr8   c                  ó"   <€ R S P                    2# )zBadaptive_avg_pool2d_backward(): Expected 3D or 4D tensor, but got ra  rà   s   €r6   rk   r¢  /  s   ø€ ÐTÐUY×U_ÑU_ÐT`Ñar8   c                  ó<   <€ R SP                    RS P                    2# ©úexpected dtype z! for `grad_output` but got dtype r™   )r¡  r£   s   €€r6   rk   r¢  3  s   ø€ �/ $§*¡* Ð-NÈxÏ~É~ÐN^Ñ_r8   rÚ   )rÔ   rú   r\   rn   rÒ   rd   rß   r®  rè  r¡   r¢   r¨  )r¡  r£   rÔ   rÛ   r  s   ff  @r6   Ú"meta__adaptive_avg_pool2d_backwardr§  $  sÈ   ú€ à�=‰=€DÜ�1�dŽ^ˆÜ�ŠØ�M‰M˜!Ó˜qÑ õfö	
ñ ô 
‡L‚LØ�‰	×Ð�T˜Q‘YÜaôô 
‡L‚LØ�
‰
�h—n‘nÑ$Ý_ôô ×+Ñ+€MÜ˜×ÒÜ×+Ñ+ˆØ�>‰>˜$Ÿ*™*Ó%×(Ñ(°}Ð(ÓEÐEr8   c                 óf   € \        V R 4       \        P                  ! V\        P                  R7      # )Úadaptive_avg_pool3d_backwardrÚ   )Ú!_adaptive_pool_empty_output_checkr\   r§   r$  ©rÐ  r£   s   &&r6   Ú"meta__adaptive_avg_pool3d_backwardr¬  ;  s(   € ô & kÐ3QÔRÜ×Ò˜D´×0NÑ0NÔOÐOr8   c                ó0   € V ^8„  d   QhR\         R\        /# )r@   rÐ  rg  rJ  )rB   s   "r6   rC   rC   B  s   € ÷ 	
ñ 	
´6ð 	
ÄSñ 	
r8   c                 ó¨   a aa€ S P                   p\        ^V4       F2  o\        P                  ! S P	                  S4      ^ 8„  VV V3R l4       K4  	  R# )r1   c                  ó.   <€ S  R SP                    RS R2# )zc(): Expected grad_output to have non-zero size for non-batch dimensions, but grad_output has sizes rŸ  r   ra  )rg  rÐ  r  s   €€€r6   rk   Ú3_adaptive_pool_empty_output_check.<locals>.<lambda>G  s*   ø€ Ø�*ð -Ø-8×->Ñ->Ð,?Ð?OÐPQÈsÐR^ñ`r8   N)rÔ   rú   r\   rn   rÒ   )rÐ  rg  rÔ   r  s   ff @r6   rª  rª  B  sB   ú€ Ø×Ñ€DÜ�1�dŽ^ˆÜ�ŠØ×Ñ˜QÓ !Ñ#öö	
ó r8   c                 ó0  a a€ S P                   p\        P                  ! VR9   V 3R l4       \        ^V4       F1  o\        P                  ! S P	                  S4      ^ 8„  VV 3R l4       K3  	  \        P                  ! \        V4      ^8H  R 4       ^p^p^ pS P                   ^8X  d   S P	                  ^ 4      pV^,          pS P	                  V^,
          4      pVw  rgS P                   ^8X  d:   WVV3pS P                  V4      p	S P                  V\        P                  R7      p
Wš3# WEWg3p\        P                  ! S 4      pS P                  V4      P                  VR7      p	S P                  V\        P                  R7      P                  VR7      p
Wš3# )rá  c                  ó"   <€ R S P                    2# )z:adaptive_max_pool2d(): Expected 3D or 4D tensor, but got: ra  rÃ  s   €r6   rk   Ú*meta_adaptive_max_pool2d.<locals>.<lambda>T  ó   ø€ ÐLÈUÏ[É[ÈMÑZr8   c                  ó*   <€ R SP                    RS  R2# )zjadaptive_max_pool2d(): Expected input to have non-zero size for non-batch dimensions, but input has sizes rŸ  r   ra  ©r  r  s   €€r6   rk   r³  Y  ó    ø€ ð'Ø',§{¡{ mÐ3CÀAÀ3ÀlñTr8   c                  ó   € R # )zCadaptive_max_pool2d(): internal error: output_size.size() must be 2r2   r2   r8   r6   rk   r³  a  ó   € ÑUr8   r™   rÚ   ©rá  râ  )rÔ   r\   rn   rú   rÒ   rø   r¡   rê   rU   r   r¨  )r  r—  rÔ   ÚdimHÚsizeBÚsizeDÚosizeHÚosizeWr×   r  rç   rÛ   r  s   f&          @r6   Úmeta_adaptive_max_pool2drÀ  N  sk  ù€ ð �:‰:€DÜ	‡L‚LØ�‰ÜZôô �1�dŽ^ˆÜ�ŠØ�J‰J�q‹M˜AÑõö	
ñ ô 
‡L‚LÜˆKÓ˜AÑÙUôð
 €DØ€EØ€Eà‡z�z�Q„Ø—
‘
˜1“ˆØ��	ˆà�J‰J�t˜a•xÓ €EØ �N€Fà‡z�z�Q„Ø FÐ+ˆ	Ø�o‰o˜iÓ(ˆØ—/‘/ )´5·;±;�/Ó?ˆØˆ|Ðà 6Ð2ˆ	Ü×3Ò3°EÓ:ˆØ�o‰o˜iÓ(×+Ñ+¸-Ð+ÓHˆØ—/‘/ )´5·;±;�/Ó?×BÑBØ'ð Có 
ˆð ˆ|Ðr8   c                 óZ  a a€ S P                   p\        P                  ! VR9   V 3R l4       \        S R4       \        P                  ! SP                  S P                  8H  V V3R l4       \
        P                  ! S4      pSP                  SP                  4      P                  VR7      # )rá  c                  ó"   <€ R S P                    2# )zKadaptive_max_pooling2d_backward(): Expected 3D or 4D grad_output, but got: ra  ©rÐ  s   €r6   rk   Ú3meta_adaptive_max_pool2d_backward.<locals>.<lambda>„  s   ø€ Ð]Ð^i×^oÑ^oÐ]pÑqr8   Úadaptive_max_pool2d_backwardc                  ó<   <€ R SP                    RS P                    2# r¥  r™   )rÐ  r  s   €€r6   rk   rÄ  ‹  s   ø€ �/ %§+¡+ Ð.OÐP[×PaÑPaÐObÑcr8   rÚ   rº  )
rÔ   r\   rn   rª  rd   rU   r   r¡   r¢   r¨  )rÐ  r  rç   rÔ   rÛ   s   ff&  r6   Ú!meta_adaptive_max_pool2d_backwardrÇ  ~  s‡   ù€ ð ×Ñ€DÜ	‡L‚LØ�‰Üqôô
 & kÐ3QÔRä	‡L‚LØ�‰�{×(Ñ(Ñ(Ýcôô
 ×/Ò/°Ó6€MØ�?‰?˜5Ÿ;™;Ó'×*Ñ*¸Ð*ÓGÐGr8   c                 ó*  a a€ S P                   p\        P                  ! VR9   V 3R l4       \        ^V4       F1  o\        P                  ! S P	                  S4      ^ 8„  VV 3R l4       K3  	  \        P                  ! \        V4      ^8H  R 4       ^ p^p^ pV^8X  d   S P	                  ^ 4      pV^,          pS P	                  V4      pVw  rgpV^8X  d   WVWx3p	MWEWgV3p	S P                  V	4      p
S P                  V	\        P                  R7      pW«3# )râ  c                  ó"   <€ R S P                    2# )z:adaptive_max_pool3d(): Expected 4D or 5D tensor, but got: ra  rÃ  s   €r6   rk   Ú*meta_adaptive_max_pool3d.<locals>.<lambda>˜  r´  r8   c                  ó*   <€ R SP                    RS  R2# )zjadaptive_max_pool3d(): Expected input to have non-zero size for non-batch dimensions, but input has sizes rŸ  r   ra  r¶  s   €€r6   rk   rÊ  �  r·  r8   c                  ó   € R # )zCadaptive_max_pool3d(): internal error: output_size.size() must be 3r2   r2   r8   r6   rk   rÊ  ¥  r¹  r8   r™   rz  )rÔ   r\   rn   rú   rÒ   rø   r¡   rê   )r  r—  rÔ   ÚdimDr¼  r½  ÚosizeTr¾  r¿  r×   r  rç   r  s   f&          @r6   Úmeta_adaptive_max_pool3drÏ  ’  s  ù€ ð �:‰:€DÜ	‡L‚LØ�‰ÜZôô �1�dŽ^ˆÜ�ŠØ�J‰J�q‹M˜AÑõö	
ñ ô 
‡L‚LÜˆKÓ˜AÑÙUôð
 €DØ€EØ€Eàˆq„yØ—
‘
˜1“ˆØ��	ˆà�J‰J�tÓ€EØ(Ñ€F�Fàˆq„yØ FÐ3‰	à 6°6Ð:ˆ	à
�/‰/˜)Ó
$€CØ�o‰o˜i¬u¯{©{ˆoÓ;€Gàˆ<Ðr8   c                 óP   € \        V R 4       VP                  VP                  4      # )Úadaptive_max_pool3d_backward)rª  r¡   r¢   )rÐ  r  rç   s   &&&r6   Ú!meta_adaptive_max_pool3d_backwardrÒ  ¾  s"   € ô & kÐ3QÔRØ�?‰?˜5Ÿ;™;Ó'Ð'r8   c                 óB   € Vf   \        R4      hV P                  V4      # )Nz:cannot repeat_interleave a meta tensor without output_size)r§  r¡   )Úrepeatsr—  s   &&r6   Úmeta_repeat_interleave_TensorrÕ  Å  s%   € àÒÜÐWÓXÐXØ×Ñ˜[Ó)Ð)r8   c                 ó–  € V P                   P                  '       g   \        R V P                    24      hVP                   P                  '       g   \        RVP                    24      h\        V P	                  \        V P                   4      4      VP	                  \        VP                   4      4      \        P                  R7      pV# )z!real must be floating point, got z!imag must be floating point, got ©rR   )rd   r;  r’   rZ   r¨  r   r   rV   )ÚrealÚimagrs  s   && r6   Úmeta_complexrÚ  Ì  s˜   € ð �:‰:×'×'Ð'ÜÐ@ÀÇÁÀÐMÓNÐNØ�:‰:×'×'Ð'ÜÐ@ÀÇÁÀÐMÓNÐNÜØ�‰Ô+¨D¯J©JÓ7Ó8Ø�‰Ô+¨D¯J©JÓ7Ó8Ü6×>Ñ>ô€Fð
 €Mr8   Ú
fill_valuec                ó$   € V ^8„  d   QhR\         /# )r@   rÛ  r…  )rB   s   "r6   rC   rC   Ý  s   € ÷ 

ñ 

¬cñ 

r8   c                ó  € \        V 4      R9   d1   V P                  WP                  4       3\        P                  R7      # \        P
                  ! WP                  4       3^V3\        P                  V P                  R7      # )r  r™   ©rd   r‹   )r  Úmpsr7  )r&  r¡   rŽ   r\   rž   rÌ  r‹   )r£   rÒ   rÛ  s   &$$r6   Únonzero_staticrà  Û  sf   € ô �4ÓÐ1Ô1Ø�~‰~˜t§X¡X£ZÐ0¼¿
¹
ˆ~ÓCÐCä×"Ò"Ø—8‘8“:ÐØ�ˆIÜ—*‘*Ø—;‘;ô	
ð 	
r8   c                 ó  € \         P                  ! \        P                  R  4       \         P                  ! V P                  4       V P                  4       3^V P                  4       3\         P                  V P                  R7      # )c                  ó   € R # )aY  The register_meta function for torch.nonzero() raises unimplemented by default, as a correct data-independent implementation does not exist. This implementation returns a fake value, assuming all elements of the tensor are non-zero. To enable this registration, please set 'torch.fx.experimental._config.meta_nonzero_assume_all_nonzero' to True.r2   r2   r8   r6   rk   Únonzero.<locals>.<lambda>ï  s   € ñ Sr8   rÞ  )	r\   Ú_check_not_implementedrA  Úmeta_nonzero_assume_all_nonzerorÌ  r    rŽ   rž   r‹   rà   s   &r6   Únonzeroræ  ê  sf   € ô 
× Ò Ü×2Ñ2ñ	Sôô ×ÒØ	�‰‹�t—x‘x“zÐ"Ø	
ˆD�J‰J‹LÐÜ�j‰jØ�{‰{ô	ð r8   c           
      óœ	  a aaaaaaaa€ \         P                  ! \        S4      R  4       . p\        S4       EF   w  ooSEe„   \         P                  ! SP                  \         P
                  \         P                  \         P                  \         P                  39   R 4       SP                  \         P                  \         P                  39   dà   SP                  4       p\        V4      o\         P                  ! SSP                  ,           S P                  8*  V 3R l4       \        SP                  4       Fo  o\         P                  ! SP                  S,          S P                  SS,           ,          8H  VVVVV 3R l4       VP                  VP                  ^S4      4       Kq  	  EK{  VP                  S4       EK�  VP                  S4       EK£  	  Vo\         P                  ! \        S4      S P                  8*  VV 3R l4       ^ RIHp \%        VP&                  ! S!  4      o\        S4      S P                  8  d   SP                  R4       K-  ^ pRpS F+  oV^ 8X  d   Se   ^pK  K  V^8X  d   Sf   ^pK#  K%  Sf   K+   M	  RpV'       g’   . p. p\        S4       F.  w  ooSf   K  VP                  S4       VP                  S4       K0  	  \        S4       F.  w  ooSe   K  VP                  S4       VP                  S4       K0  	  S P)                  V4      o Vo. o. o. o\        S4       Fo  w  p	oSfQ   S'       d%   SP                  S P                  V	,          4       K6  SP                  S P                  V	,          4       KZ  \%        SP                  4      oKq  	  VVV3R lp
S P+                  SS,           S,           4      p^ R	IHp V! S P1                  4       ^ 8H  4      '       d   V# V
! S 4      p\2        P4                  ! V4      w  rï\%        V4      \%        \        \        V4      4      4      8w  dƒ   \2        P6                  ! VP                  V4      p\2        P8                  ! V4      p\2        P6                  ! V\2        P:                  ! V4      4      pVP=                  VP?                  4       V4      pV# )
c                  ó   € R # )z#at least one index must be providedr2   r2   r8   r6   rk   Ú#meta_index_Tensor.<locals>.<lambda>ÿ  s   € Ñ(Mr8   Nc                  ó   € R # )z?tensors used as indices must be long, int, byte or bool tensorsr2   r2   r8   r6   rk   ré    s   € ÑYr8   c                  ó"   <€ R S P                    2# )ú)too many indices for tensor of dimension r©  rà   s   €r6   rk   ré    s   ø€ ÐGÈÏ	É	À{ÑSr8   c            	      óV   <€ R SP                    RS  RSP                    RSS,            2# )zThe shape of the mask ú
 at index z0 does not match the shape of the indexed tensor ra  )r  r›   Újrò  r£   s   €€€€€r6   rk   ré    s:   ø€ Ð"8¸¿¹¸ÀZÐPQÈsð SJØJNÏ*É*ÈÐU_Ð`aÐdeÕ`eÐ_fñ!hr8   c                  ó<   <€ R SP                    R\        S 4       R2# )rì  z (got r‚   )rÔ   rø   )rç   r£   s   €€r6   rk   ré    s   ø€ Ð;¸D¿I¹I¸;ÀfÌSÐQXË\ÈNÐZ[Ñ\r8   FTc                óü   <€ SS,           S,           p\        V P                  4       4      p^ .\        S4      ,          V\        S4      \        V P                  4      \        S4      ,
          % V P	                  W4      # )z9
This follows restride_src in TensorAdvancedIndexing.cpp
)rù   rû   rø   r¢   Ú
as_strided)r£   r¢   r#  Úafter_shapeÚbefore_shapeÚreplacement_shapes   &  €€€r6   Ú_restride_srcÚ(meta_index_Tensor.<locals>._restride_src_  sm   ø€ ð Ð0Õ0°;Õ>ˆÜ�t—{‘{“}Ó%ˆàKLÈ#ÔPSØóQ
õ K
ˆ”�LÓ!¤C¨¯
©
£O´c¸+Ó6FÕ$FÐGð �‰˜uÓ.Ð.r8   rÄ   ) r\   rn   rÂ   Ú	enumeraterd   rž   rÁ   rÄ  ræ  rø   rŸ   rÔ   rú   r¢   r¡  ÚselectÚtorch._refsr©  rù   r'   rý   r¡   rÈ   rÅ   r    rU   Ú3compute_elementwise_output_logical_to_physical_permÚ
apply_permr   Úinvert_permrò  rÒ   )r£   rç   rs  ræ  ÚrefsÚstateÚhas_contiguous_subspacerq  Útransposed_indicesrŽ   rö  r  rÅ   Úrestrided_selfÚpermrX   Ú
perm_shaper³  ró  rô  r  r›   rï  rò  rõ  s   ff                @@@@@@@r6   Úmeta_index_Tensorr  ý  s¹  ÿø€ ä	‡L‚L”�g“Ñ MÔNð #%€FÜ˜g×&‰ˆˆ5ØÓÜ�LŠLØ—‘¤§
¡
¬E¯I©I´u·z±zÄ5Ç:Á:ÐNÑNÙYôð �{‰{œuŸz™z¬5¯:©:Ð6Ô6ØŸ-™-›/�Ü˜“K�Ü×"Ò"Ø˜Ÿ
™
•N d§i¡iÑ/ÜSôô ˜uŸz™zÖ*�AÜ×&Ò&ØŸ™ A�¨$¯*©*°Q¸µUÕ*;Ñ;÷hð hôð
 —M‘M '§.¡.°°AÓ"6Ö7ô +ð —‘˜e×$à�M‰M˜%× ñ/ 'ð0 €GÜ	‡L‚LÜˆG‹˜Ÿ	™	Ñ!Ý\ôõ
 ä�4×(Ò(¨'Ñ2Ó3€Gä
ˆg‹,˜Ÿ™Ô
"Ø�‰�tÖð €EØ#ÐÛˆØ�AŒ:ØÒ Ø’ñ !à�aŒZØŠ}Ø’ñ ð Ô Ùñ ð #'Ð÷
 #ØˆØÐÜ! 'Ö*‰HˆAˆuØÔ Ø—‘˜A”Ø"×)Ñ)¨%Ö0ñ +ô " 'Ö*‰HˆAˆuØŒ}Ø—‘˜A”Ø"×)Ñ)¨%Ö0ñ +ð �|‰|˜DÓ!ˆØ$ˆð !€LØ€KØ#%ÐÜ Ö(‰
ˆˆUØŠ=ß Ø×"Ñ" 4§:¡:¨c¥?Ö3à×#Ñ# D§J¡J¨s¥OÖ4ä $ U§[¡[Ó 1Òñ )÷
/ð �.‰.˜Ð(9Õ9¸KÕGÓ
H€CåDá�d—j‘j“l aÑ'×(Ò(àˆ
ñ
 # 4Ó(€NÜ×GÒGÈÓW�G€Dô ˆDƒz”Tœ%¤ D£	Ó*Ó+Ô+Ü×%Ò% c§i¡i°Ó6ˆ
Ü×6Ò6°zÓBˆ
Ü×%Ò% j´%×2CÒ2CÀDÓ2IÓJˆ
Ø�n‰n˜SŸX™X›Z¨Ó4ˆØ€Jr8   c                 ód  € R pR pR pR pV! W4      pV
^ ,          '       d0   V P                  VP                  4       4      P                  VR7      pV
^,          '       d0   V P                  VP                  4       4      P                  VR7      pV
^,          '       d   V P                  V4      pW¼V3# )Nc                 ó6  € \        V 4      p\        V4      pV\        P                  8X  g   V\        P                  8X  d   \        P                  # V\        P                  8X  g   V\        P                  8X  d   \        P                  # \        P                  # rG   )r   r\   rè  rÑ  rß   )Út1Út2Úfmt1Úfmt2s   &&  r6   Ú_conv_memory_formatÚ6meta_convolution_backward.<locals>._conv_memory_formatœ  sp   € Ü$ RÓ(ˆÜ$ RÓ(ˆØ”5×&Ñ&Ô&¨$´%×2EÑ2EÔ*EÜ×&Ñ&Ð&Ø”5×)Ñ)Ô)¨T´U×5KÑ5KÔ-KÜ×)Ñ)Ð)Ü×&Ñ&Ð&r8   rÚ   )r¡   rÒ   r¨  )Úgrad_output_Úinput_Úweight_Úbias_sizes_optrû   r˜  r}  rÈ  r€  r  Úoutput_maskÚbackend_grad_inputÚbackend_grad_weightÚbackend_grad_biasr  rÛ   s   &&&&&&&&&&&     r6   Úmeta_convolution_backwardr  ‚  s¹   € ð  ÐØÐØÐò'ñ (¨Ó8€MØ�1‡~„~Ø)×3Ñ3°F·K±K³MÓB×EÑEØ'ð Fó 
Ðð �1‡~„~Ø*×4Ñ4°W·\±\³^ÓD×GÑGØ'ð Hó 
Ðð �1‡~„~Ø(×2Ñ2°>ÓBÐàÐ5FÐGÐGr8   c                óÐ  aa€ SP                  ^4      pSP                  ^4      pV P                  WV34      p \        P                  ! SP	                  4       ^8H  R 4       \        P                  ! SP	                  4       ^8H  R 4       \        P                  ! SP                  ^ 4      SP                  ^ 4      8H  VV3R l4       \        P                  ! SP                  ^4      SP                  ^4      8H  VV3R l4       \        P                  ! V P                  ^ 4      V8H  ;'       d    V P                  ^4      V8H  R 4       V P                  V P                  4       4      # )r1   c                  ó   € R # r1  r2   r2   r8   r6   rk   Úmeta_addbmm.<locals>.<lambda>º  r3  r8   c                  ó   € R # r5  r2   r2   r8   r6   rk   r  »  r3  r8   c                  óP   <€ R S P                  ^ 4       RSP                  ^ 4       2# )z8batch1 and batch2 must have same number of batches, got rÐ   rÑ   ©r7  r8  s   €€r6   rk   r  ¾  s,   ø€ ÐJÈ6Ï;É;ÐWXË>ÐJZÐZ_Ð`f×`kÑ`kÐlmÓ`nÐ_oÑpr8   c            
      óš   <€ R S P                  ^4       RS P                  ^4       RSP                  ^4       RSP                  ^4       R2	# )z#Incompatible matrix sizes for bmm (r;   rÐ   r‚   rÑ   r  s   €€r6   rk   r  Â  sL   ø€ Ø1°&·+±+¸a³.Ð1AÀÀ6Ç;Á;ÈqÃ>ÐBRð SØ—;‘;˜q“>Ð" ! F§K¡K°£NÐ#3°1ñ6r8   c                  ó   € R # )z.self tensor does not match matmul output shaper2   r2   r8   r6   rk   r  É  s   € Ñ@r8   )rÒ   rª  r\   rn   rŽ   r¡   )r£   r7  r8  rÚ  rÙ  rC  rD  s   &ff$$  r6   Úmeta_addbmmr  ´  s  ù€ ð �;‰;�q‹>€DØ�;‰;�q‹>€DØ�;‰;˜�|Ó$€DÜ	‡L‚L�—‘“ Ñ"Ñ$HÔIÜ	‡L‚L�—‘“ Ñ"Ñ$HÔIÜ	‡L‚LØ�‰�A‹˜&Ÿ+™+ a›.Ñ(Ýpôô 
‡L‚LØ�‰�A‹˜&Ÿ+™+ a›.Ñ(õ	
ôô 
‡L‚LØ�	‰	�!‹˜Ñ×5Ð5 §¡¨1£°Ñ!5Ù@ôð �>‰>˜$Ÿ)™)›+Ó&Ð&r8   c           
      óâ   € \         P                  P                  V VP                  R 4      VP                  R4      VP                  R4      VP                  R4      VP                  R4      R7      # )rd   rŠ   r‹   rŒ   rÛ   r3  )r,   r§   r»  rc   )r£   rS  Úkwargss   &&,r6   Úmeta_randint_liker"  Î  s]   € ä�?‰?×"Ñ"ØØ�j‰j˜Ó!Ø�z‰z˜(Ó#Ø�z‰z˜(Ó#Ø—:‘:˜lÓ+Ø—j‘j Ó1ð #ó ð r8   Ú
grad_scaleÚ	found_infc       	         ór   a€ WW#WE3 F,  o\         P                  ! \        S\        4      V3R  l4       K.  	  R# )c                  ó    <€ R \        S 4       2# ©z'exponent must be a tensor list but got ©rƒ   ©Úls   €r6   rk   Ú#meta__fused_adam_.<locals>.<lambda>ð  ó   ø€ Ð=¼dÀ1»g¸YÑGr8   N©r\   rn   rx   rù   )r£   ÚgradsÚexp_avgsÚexp_avg_sqsÚmax_exp_avg_sqsÚstate_stepsÚlrÚbeta1Úbeta2Úweight_decayr¶   ÚamsgradÚmaximizer#  r$  r*  s   &&&&&&$$$$$$$$$@r6   Úmeta__fused_adam_r9  Ú  s0   ø€ ð& ˜8°/ÓOˆÜ�ŠÜ�qœ$ÓÜGö	
ó Pr8   c       	         ó¾   a€ WW#WE3 F,  o\         P                  ! \        S\        4      V3R  l4       K.  	  R pV! V 4      V! V4      V! V4      V! V4      V! V4      3# )c                  ó    <€ R \        S 4       2# r'  r(  r)  s   €r6   rk   Ú"meta__fused_adam.<locals>.<lambda>
  r,  r8   c                 óX   € V  Uu. uF  p\         P                  ! V4      NK  	  up# u upi rG   r¦   )Útensor_listr_  s   & r6   Úempty_like_listÚ)meta__fused_adam.<locals>.empty_like_list  s%   € Ù-8Ó9©[¨”× Ò  Ö#©[Ñ9Ð9ùÒ9s   …'r-  )r£   r.  r/  r0  r1  r2  r3  r4  r5  r6  r¶   r7  r8  r#  r$  r?  r*  s   &&&&&&$$$$$$$$$ @r6   Úmeta__fused_adamrA  ô  si   ø€ ð& ˜8°/ÓOˆÜ�ŠÜ�qœ$ÓÜGö	
ñ Pò:ñ 	˜ÓÙ˜ÓÙ˜Ó!Ù˜Ó$Ù˜Ó(ðð r8   c                 óœ  a a€ \         P                  ! S P                  4       ^8H  R 4       \         P                  ! SP                  4       ^8H  R 4       \         P                  ! S P                  \         P                  \         P
                  39   V 3R l4       \         P                  ! SP                  \         P                  J V3R l4       \         P                  ! S P                  ^4      SP                  ^ 4      8H  V V3R l4       S P                  S P                  ^ 4      SP                  ^4      3\         P                  R7      # )r@   c                  ó   € R # )za must be a 2D tensorr2   r2   r8   r6   rk   Úmeta__int_mm.<locals>.<lambda>  ó   € Ñ'>r8   c                  ó   € R # )zb must be a 2D tensorr2   r2   r8   r6   rk   rD    rE  r8   c                  ó"   <€ R S P                    2# )z'expected self to be int8 or uint8, got r™   )r4   s   €r6   rk   rD     s   ø€ Ð9¸!¿'¹'¸ÑCr8   c                  ó"   <€ R S P                    2# )zexpected mat2 to be int8, got r™   )r5   s   €r6   rk   rD  $  s   ø€ Ð0°·±°	Ñ:r8   c            
      óš   <€ R S P                  ^ 4       RS P                  ^4       RSP                  ^ 4       RSP                  ^4       R2	# )z'Incompatible matrix sizes for _int_mm (r;   rÐ   r‚   rÑ   r3   s   €€r6   rk   rD  (  sH   ø€ Ø5°a·f±f¸Q³i°[ÀÀ!Ç&Á&ÈÃ)Àð MØ—6‘6˜!“9�+˜Q˜qŸv™v a›y˜k¨ñ,r8   r™   )	r\   rn   rŽ   rd   rÄ  rä  rÒ   r¡   rÅ  r3   s   ffr6   Úmeta__int_mmrJ    sÙ   ù€ ô 
‡L‚L�—‘“˜A‘Ñ>Ô?Ü	‡L‚L�—‘“˜A‘Ñ>Ô?Ü	‡L‚LØ	�‰”E—J‘J¤§¡Ð,Ñ,ÜCôô 
‡L‚LØ	�‰”5—:‘:ÐÜ:ôô 
‡L‚LØ	�‰ˆq‹	�Q—V‘V˜A“YÑõ	
ôð �;‰;˜Ÿ™˜q›	 1§6¡6¨!£9Ð-´U·[±[ˆ;ÓAÐAr8   c                 ó’  a € \         P                  ! S P                  4       ^8H  R 4       \         P                  ! S P                  \         P                  J V 3R l4       S P                  ^ 4      pS P                  ^4      ^,          pS P                  V^,          W1^,          ,          ^ V^,          3\         P                  R7      # )r@   c                  ó   € R # ©zw must be a 2D tensorr2   r2   r8   r6   rk   Ú2meta__convert_weight_to_int4pack.<locals>.<lambda>2  rE  r8   c                  ó"   <€ R S P                    2# r#  r™   r  s   €r6   rk   rN  5  ó   ø€ Ð.¨q¯w©w¨iÑ8r8   r™   )r\   rn   rŽ   rd   rä  rÒ   r¡   rÅ  ©rç  Úinner_k_tilesrH  rò  s   f&  r6   Ú meta__convert_weight_to_int4packrS  0  sœ   ø€ ä	‡L‚L�—‘“˜A‘Ñ>Ô?Ü	‡L‚LØ	�‰”5—;‘;ÐÜ8ôð 	
�‰ˆq‹	€AØ	�‰ˆq‹	�A�€AØ�;‰;à��FØ "Õ$Õ%ØØ˜QÕð		
ô �k‰kð ó ð r8   c                 óV  a € \         P                  ! S P                  4       ^8H  R 4       \         P                  ! S P                  \         P                  J V 3R l4       S P                  ^ 4      pS P                  ^4      pS P                  W#^,          3\         P                  R7      # )r@   c                  ó   € R # rM  r2   r2   r8   r6   rk   Ú:meta__convert_weight_to_int4pack_for_cpu.<locals>.<lambda>F  rE  r8   c                  ó"   <€ R S P                    2# ©zexpected w to be int32, got r™   r  s   €r6   rk   rV  I  rP  r8   r™   )r\   rn   rŽ   rd   rÅ  rÒ   r¡   rä  rQ  s   f&  r6   Ú(meta__convert_weight_to_int4pack_for_cpurY  D  s}   ø€ ä	‡L‚L�—‘“˜A‘Ñ>Ô?Ü	‡L‚LØ	�‰”5—;‘;ÐÜ8ôð 	
�‰ˆq‹	€AØ	�‰ˆq‹	€AØ�;‰;Ø	
��FˆÜ�k‰kð ó ð r8   c                 óæ  a aa€ \         P                  ! S P                  4       ^8H  R 4       SP                  P                  R8X  d   ^M^o\         P                  ! SP                  4       S8H  V3R l4       \         P                  ! S P
                  \         P                  \         P                  \         P                  39   V 3R l4       \         P                  ! SP
                  \         P                  J V3R l4       SP                  P                  R8X  d   SP                  ^ 4      MSP                  ^ 4      ^,          pS P                  S P                  ^ 4      VS P
                  R7      # )r@   c                  ó   € R # ©zx must be a 2D tensorr2   r2   r8   r6   rk   Ú*meta__weight_int4pack_mm.<locals>.<lambda>U  rE  r8   r7  c                  ó   <€ R S  R2# )zw must be a zD tensorr2   )Úexpected_dims   €r6   rk   r]  W  s   ø€ °LÀÀÈhÑ2Wr8   c                  ó"   <€ R S P                    2# r!  r™   r  s   €r6   rk   r]  Z  ó   ø€ Ð5°a·g±g°YÑ?r8   c                  ó"   <€ R S P                    2# rX  r™   r  s   €r6   rk   r]  ^  rP  r8   r™   )r\   rn   rŽ   rz  rƒ   rd   r=  rç  r<  rÅ  rÒ   r¡   )r;   rç  r%  r'  Údim_nr_  s   ff&& @r6   Úmeta__weight_int4pack_mmrd  S  sì   ú€ ä	‡L‚L�—‘“˜A‘Ñ>Ô?ØŸ™×*Ñ*¨eÔ3‘1¸€LÜ	‡L‚L�—‘“˜LÑ(Ô*WÔXÜ	‡L‚LØ	�‰”E—M‘M¤5§=¡=´%·.±.ÐAÑAÜ?ôô 
‡L‚LØ	�‰”5—;‘;ÐÜ8ôð Ÿ™×+Ñ+¨uÔ4ˆA�F‰F�1ŒI¸!¿&¹&À»)Àa½-€EØ�;‰;�q—v‘v˜a“y %¨q¯w©wˆ;Ó7Ð7r8   c                 ó6  a a€ \         P                  ! S P                  4       ^8H  R 4       \         P                  ! SP                  4       ^8H  R 4       \         P                  ! S P                  \         P                  \         P
                  \         P                  39   V 3R l4       \         P                  ! SP                  \         P                  J V3R l4       S P                  S P                  ^ 4      SP                  ^ 4      S P                  R7      # )r@   c                  ó   € R # r\  r2   r2   r8   r6   rk   Ú2meta__weight_int4pack_mm_for_cpu.<locals>.<lambda>f  rE  r8   c                  ó   € R # rM  r2   r2   r8   r6   rk   rg  g  rE  r8   c                  ó"   <€ R S P                    2# r!  r™   r  s   €r6   rk   rg  j  ra  r8   c                  ó"   <€ R S P                    2# r#  r™   r  s   €r6   rk   rg  n  rP  r8   r™   )
r\   rn   rŽ   rd   r=  rç  r<  rä  r¡   rÒ   r(  s   ff&&r6   Ú meta__weight_int4pack_mm_for_cpurk  d  ó¯   ù€ ä	‡L‚L�—‘“˜A‘Ñ>Ô?Ü	‡L‚L�—‘“˜A‘Ñ>Ô?Ü	‡L‚LØ	�‰”E—M‘M¤5§=¡=´%·.±.ÐAÑAÜ?ôô 
‡L‚LØ	�‰”5—;‘;ÐÜ8ôð �;‰;�q—v‘v˜a“y !§&¡&¨£)°1·7±7ˆ;Ó;Ð;r8   c                 ó6  a a€ \         P                  ! S P                  4       ^8H  R 4       \         P                  ! SP                  4       ^8H  R 4       \         P                  ! S P                  \         P                  \         P
                  \         P                  39   V 3R l4       \         P                  ! SP                  \         P                  J V3R l4       S P                  S P                  ^ 4      SP                  ^ 4      S P                  R7      # )r@   c                  ó   € R # r\  r2   r2   r8   r6   rk   Ú;_weight_int4pack_mm_with_scales_and_zeros.<locals>.<lambda>u  rE  r8   c                  ó   € R # rM  r2   r2   r8   r6   rk   ro  v  rE  r8   c                  ó"   <€ R S P                    2# r!  r™   r  s   €r6   rk   ro  y  ra  r8   c                  ó"   <€ R S P                    2# rX  r™   r  s   €r6   rk   ro  }  rP  r8   r™   )
r\   rn   rŽ   rd   r=  rç  r<  rÅ  r¡   rÒ   )r;   rç  r%  ÚqScaleÚqZeross   ff&&&r6   Ú)_weight_int4pack_mm_with_scales_and_zerosru  s  rl  r8   c                ó<   € V ^8„  d   QhR\         R\         R\         /# )r@   r4   r5   rA   r…  )rB   s   "r6   rC   rC   ‚  s!   € ÷ "ñ "”3ð "œ3ð "¤3ñ "r8   c                 ó<   € W,           ^,
          V,          V,          # r0   r2   r3   s   &&r6   Úkai_rounduprx  ‚  s   € Ø�U�Q�Y˜1Õ Õ!Ð!r8   c                 ó:  a	a
aaaaaaaaa€ V ^8X  d‰   W28X  d)   ^p^p^p^o^o^oR oVVVV3R loV3R lpV! WWEV4      # V^ ,          ^ 8X  dK   W#,          ^ 8X  d<   ^p^p^p^o^o^o^ o	V	VV3R lpV	V
VVVVV3R loR o
V	3R loV	3R loV! WWEWc4      # R	# R	# R	# )
râ  c                 ó<   € \        W,          ^4      p\        W4      # )râ  ©rx  )rò  ÚkrÚsrÚkr_sr_roundedup4s   &&& r6   Úkai_k_roundedupÚ3get_kai_packed_weight_size.<locals>.kai_k_roundedup’  s   € ô $/¨r­w¸Ó#:Ð Ü" 1Ó7Ð7r8   c                 ó˜   <€ S! WV4      pV^,          ^ 8w  d   \        RV 24      hVV^,          S,           S,           S,           ,          # )r@   zk_internal must be even, got rï  )	rò  Únrr|  r}  Ú
k_internalr  Úkai_num_bytes_biasÚkai_num_bytes_multiplier_rhsÚkai_num_bytes_sum_rhss	   &&&& €€€€r6   Ú9kai_get_rhs_packed_stride_rhs_pack_nxk_qsi4cxp_qsu4cxs1s0Ú]get_kai_packed_weight_size.<locals>.kai_get_rhs_packed_stride_rhs_pack_nxk_qsi4cxp_qsu4cxs1s0˜  s^   ø€ ñ -¨Q°BÓ7�
à •N qÔ(Ü(Ð+HÈÈÐ)UÓVÐVàØ 1•_Ø2õ3à+õ,ð )õ)õð r8   c                 óH   <€ \        W4      V,          pVS! WW44      ,          # rG   r{  )rH  rò  r‚  r|  r}  Únum_rowsr‡  s   &&&&& €r6   Ú7kai_get_rhs_packed_size_rhs_pack_nxk_qsi4cxp_qsu4cxs1s0Ú[get_kai_packed_weight_size.<locals>.kai_get_rhs_packed_size_rhs_pack_nxk_qsi4cxp_qsu4cxs1s0§  s0   ø€ ô ' qÓ-°Õ3�ð ÙOØ˜róõðr8   c                 ó  <€ WS,          ^ 8w  d   \        RV RV R24      hVS	,          ^ 8w  d   \        RV RS	 R24      hVS,          ^ 8w  d   \        RV RS R24      h\        W4      V,          pVS! WW4V4      ,          # ©r   úbl (z) must be divisible by kr (r‚   znr (z+) must be divisible by kai_nr_multiple_of (ú+) must be divisible by kai_bl_multiple_of (©r’   rx  )
rH  rò  r‚  r|  r}  ÚblrŠ  Úkai_bl_multiple_ofÚ;kai_get_rhs_packed_stride_rhs_pack_nxk_qsi4c32p_qsu4c32s1s0Úkai_nr_multiple_ofs
   &&&&&& €€€r6   Ú9kai_get_rhs_packed_size_rhs_pack_nxk_qsi4c32p_qsu4c32s1s0Ú]get_kai_packed_weight_size.<locals>.kai_get_rhs_packed_size_rhs_pack_nxk_qsi4c32p_qsu4c32s1s0¿  s½   ø€ ð •G ”>Ü(¨4°¨tÐ3NÈrÈdÐRSÐ)TÓUÐUØÐ+Õ+°Ô1Ü(Ø˜r˜dÐ"MÐN`ÐMaÐabÐcóð ð Ð+Õ+°Ô1Ü(Ø˜r˜dÐ"MÐN`ÐMaÐabÐcóð ô ' qÓ-°Õ3�ð ÙQØ˜r róõðr8   c                 ó*  <€ WB,          ^ 8w  d   \        RV RV R24      hVS
,          ^ 8w  d   \        RV RS
 R24      hVS,          ^ 8w  d   \        RV RS R24      hS	! 4       pS! W4      pS! WE4      pVWv,          S,           S,           ,          # rŽ  rï  )rò  r‚  r|  r}  r’  Únum_bytes_multiplier_rhsÚnum_blocks_per_rowÚnum_bytes_per_blockr“  Ú#kai_get_bf16_datatype_size_in_bytesr•  Úkai_num_blocks_per_rowr„  Úkai_num_bytes_per_blockr†  s   &&&&&   €€€€€€€r6   r”  Ú_get_kai_packed_weight_size.<locals>.kai_get_rhs_packed_stride_rhs_pack_nxk_qsi4c32p_qsu4c32s1s0Ö  sØ   ø€ ð •G ”>Ü(¨4°¨tÐ3NÈrÈdÐRSÐ)TÓUÐUØÐ+Õ+°Ô1Ü(Ø˜r˜dÐ"MÐN`ÐMaÐabÐcóð ð Ð+Õ+°Ô1Ü(Ø˜r˜dÐ"MÐN`ÐMaÐabÐcóð ñ
 ,OÓ+PÐ(Ù%;¸AÓ%BÐ"Ù&=Øó'Ð#ð Ø(Õ=Ø+õ,à(õ)õð r8   c                  ó   € ^# ©r@   r2   r2   r8   r6   rœ  ÚGget_kai_packed_weight_size.<locals>.kai_get_bf16_datatype_size_in_bytesó  s   € Ùr8   c                 óh   <€ VS,          ^ 8w  d   \        RV RS R24      h\        W4      V,          # ©r   r�  r�  r‚   r‘  )rò  r’  r“  s   &&€r6   r�  Ú:get_kai_packed_weight_size.<locals>.kai_num_blocks_per_rowö  sF   ø€ ØÐ+Õ+°Ô1Ü(Ø˜r˜dÐ"MÐN`ÐMaÐabÐcóð ô # 1Ó)¨RÕ/Ð/r8   c                 ód   <€ V S,          ^ 8w  d   \        RV  RS R24      hV ^,          V,           # r¤  rï  )r’  r™  r“  s   &&€r6   rž  Ú;get_kai_packed_weight_size.<locals>.kai_num_bytes_per_blocký  sF   ø€ ØÐ+Õ+°Ô1Ü(Ø˜r˜dÐ"MÐN`ÐMaÐabÐcóð ð ˜a�Ð#;Õ;Ð;r8   Nr2   )Ún_bitsrl  r  Ú	groupsizeÚkai_nrÚkai_krÚkai_srr‹  r–  r“  rœ  r”  r‡  r  r•  r�  r„  r…  rž  r†  s   &&&&     @@@@@@@@@@@r6   Úget_kai_packed_weight_sizer­  †  sÞ   ÿú€ Ø�„{àŒ>àˆFØˆFØˆFØ$%Ð!Ø+,Ð(Ø!"Ðò8÷ð õ
ñ KØ�f fóð ð ˜�^˜qÔ  Q¥]°aÔ%7ØˆFØˆFØˆFØ$%Ð!Ø!"ÐØ!"ÐØ!#Ð÷÷.ó ò:õ0õ<ñ MØ�f fóð ñ] &8Ñ ñ_ r8   c                ó2   € V ^8„  d   QhR\         R,          /# )r@   r¼  Nr’  )rB   s   "r6   rC   rC   
  s   € ÷ Dñ DÜ!'¨$¥ñDr8   c                 óÂ  a € \         P                  ! S P                  \         P                  J V 3R  l4       \         P                  P
                  P                  4       '       d�   W48X  d    VP                  \         P                  8X  gA   W48  dr   V^ ,          ^ 8X  dd   WC,          ^ 8X  dW   VP                  \         P                  8X  d8   \        ^WTV4      pS P                  \        V4      \         P                  R7      # S P                  4       VP                  4       ,           pVe   WbP                  4       ,          pS P                  V\         P                  R7      # )c                  ó"   <€ R S P                    2# r#  r™   )Úweightss   €r6   rk   Ú2meta__dyn_quant_pack_4bit_weight.<locals>.<lambda>  s   ø€ Ð.¨w¯}©}¨oÑ>r8   r™   )r\   rn   rd   rä  r'  Úkleidiair)  r`   r<  r­  r¡   rÁ   r    )r±  Úscales_zerosr¼  Ú
block_sizeÚin_featuresÚout_featuresÚpacked_weight_sizes   f&&&&& r6   Ú meta__dyn_quant_pack_4bit_weightr¹  	  s  ø€ ô 
‡L‚LØ�‰œŸ™Ð$Ü>ôô ‡~�~×Ñ×+Ñ+×-Ò-Ø	Ô	" |×'9Ñ'9¼U¿[¹[Ô'HàÔ$Ø˜R• 1Ô$ØÕ(¨AÔ-Ø×"Ñ"¤e§n¡nÔ4ô 8Øˆ|¨*ó
Ðð × Ñ ¤Ð%7Ó!8ÄÇÁÐ ÓLÐLØ Ÿ™›¨<×+=Ñ+=Ó+?Õ?ÐØÒØŸj™j›lÕ*ÐØ×ÑÐ/´u·{±{ÐÓCÐCr8   c                 óŠ  a aa€ \         P                  ! S P                  4       ^8H  R 4       \         P                  ! S P                  \         P                  8H  ;'       g+    S P                  \         P
                  8H  ;'       d    SS8H  VVV 3R l4       S P                  ^ 4      pS P                  WTS P                  R7      # )r@   c                  ó   € R # )zinput must be a 2D tensorr2   r2   r8   r6   rk   Ú-meta__dyn_quant_matmul_4bit.<locals>.<lambda>,  s   € Ñ)Dr8   c                  ó.   <€ R SP                    RS  RS 2# )zPexpected input to be f32 or bf16 (bf16 requires block_size == in_features), got z with block_size=z and in_features=r™   )rµ  r¶  Úinps   €€€r6   rk   r¼  0  s%   ø€ ðØ—9‘9�+Ð.¨z¨lÐ:KÈKÈ=ñZr8   r™   )r\   rn   rŽ   rd   r=  r<  rÒ   r¡   )r¾  Úpacked_weightsrµ  r¶  r·  rl  s   f&ff& r6   Úmeta__dyn_quant_matmul_4bitrÀ  $  sŽ   ú€ ô 
‡L‚L�—‘“˜a‘Ñ!DÔEÜ	‡L‚LØ	�‰”e—m‘mÑ	#÷ 	Gð 	GØ�I‰IœŸ™Ñ'×EÐE¨J¸+Ñ,Eö	
ôð 	�‰�‹€AØ�=‰=˜°·	±	ˆ=Ó:Ð:r8   c                 ób  a aa€ \         P                  ! S P                  4       ^8H  R 4       \         P                  ! S P                  \         P                  \         P
                  \         P                  39   V 3R l4       \         P                  ! SP                  4       ^8H  R 4       \         P                  ! SP                  \         P                  J V3R l4       \         P                  ! SP                  ^4      S P                  ^4      8H  VV 3R l4       \         P                  ! SP                  4       ^8H  ;'       d$    SP                  ^ 4      SP                  ^ 4      8H  VV3R l4       S P                  S P                  ^ 4      SP                  ^ 4      S P                  R7      # )r@   c                  ó   € R # r\  r2   r2   r8   r6   rk   Ú*meta__weight_int8pack_mm.<locals>.<lambda>;  rE  r8   c                  ó"   <€ R S P                    2# r!  r™   r  s   €r6   rk   rÃ  >  ra  r8   c                  ó   € R # rM  r2   r2   r8   r6   rk   rÃ  @  rE  r8   c                  ó"   <€ R S P                    2# )zexpected w to be int8, got r™   r  s   €r6   rk   rÃ  C  s   ø€ Ð-¨a¯g©g¨YÑ7r8   c                  óR   <€ R S P                  ^4       RSP                  ^4       R2# )zexpected w.size(1) (z) == x.size(1) (r‚   rÑ   )rç  r;   s   €€r6   rk   rÃ  G  s&   ø€ Ð& q§v¡v¨a£y kÐ1AÀ!Ç&Á&ÈÃ)ÀÈAÑNr8   c                  óF   <€ R SP                  ^ 4       RS P                   2# )z%expected q_scales to be 1D with size z, got shape )rÒ   r¢   )Úq_scalesrç  s   €€r6   rk   rÃ  K  s    ø€ Ð7¸¿¹¸q»	°{À,ÈxÏ~É~ÐN^Ñ_r8   r™   )
r\   rn   rŽ   rd   r=  rç  r<  rÄ  rÒ   r¡   )r;   rç  rÉ  s   fffr6   Úmeta__weight_int8pack_mmrÊ  9  s  ú€ ä	‡L‚L�—‘“˜A‘Ñ>Ô?Ü	‡L‚LØ	�‰”E—M‘M¤5§=¡=´%·.±.ÐAÑAÜ?ôô 
‡L‚L�—‘“˜A‘Ñ>Ô?Ü	‡L‚LØ	�‰”5—:‘:ÐÜ7ôô 
‡L‚LØ	�‰ˆq‹	�Q—V‘V˜A“YÑÝNôô 
‡L‚LØ�‰‹˜!Ñ×=Ð= §¡¨aÓ 0°A·F±F¸1³IÑ =Ý_ôð �;‰;�q—v‘v˜a“y !§&¡&¨£)°1·7±7ˆ;Ó;Ð;r8   c                 óŒ  a aa€ \         P                  ! S P                  4       ^8¬  V 3R l4       \         P                  ! SP                  4       ^8¬  V3R l4       \         P                  ! S P                  R	4      SP                  R	4      8H  V V3R l4       \         P                  ! \        P
                  ! S P                  4      V 3R l4       \         P                  ! \        P
                  ! SP                  4      V3R l4       \         P                  ! V^ 8¬  R 4       \         P                  ! SR
9   V3R l4       S P                  R4      pSP                  R4      pS P                  RR pSP                  RR p\        \         P                  ! Wg4      4      pVP                  WE.4       S P                  V4      # )r@   c                  ó,   <€ R S P                  4        R2# )z1cdist only supports at least 2D tensors, X1 got: rÑ  r4  ©Úx1s   €r6   rk   Ú$meta_cdist_forward.<locals>.<lambda>T  ó   ø€ ÐCÀBÇFÁFÃHÀ:ÈQÑOr8   c                  ó,   <€ R S P                  4        R2# )z1cdist only supports at least 2D tensors, X2 got: rÑ  r4  ©Úx2s   €r6   rk   rÏ  X  rÐ  r8   c                  óP   <€ R S P                  R4       RSP                  R4       2# )z4X1 and X2 must have the same number of columns. X1: z X2: r÷   rÑ   )rÎ  rÓ  s   €€r6   rk   rÏ  \  s*   ø€ ÐFÀrÇwÁwÈrÃ{ÀmÐSXÐY[×Y`ÑY`ÐacÓYdÐXeÑfr8   c                  ó"   <€ R S P                    2# )z3cdist only supports floating-point dtypes, X1 got: r™   rÍ  s   €r6   rk   rÏ  `  ó   ø€ ÐEÀbÇhÁhÀZÑPr8   c                  ó"   <€ R S P                    2# )z3cdist only supports floating-point dtypes, X2 got: r™   rÒ  s   €r6   rk   rÏ  d  rÖ  r8   c                  ó   € R # )z)cdist only supports non-negative p valuesr2   r2   r8   r6   rk   rÏ  f  s   € Ñ!Lr8   Nc                  ó   <€ R S  2# )z(possible modes: None, 0, 1, 2, but was: r2   )Úcompute_modes   €r6   rk   rÏ  i  s   ø€ Ð:¸<¸.ÑIr8   r÷   )Nr   r1   r@   rO  )r\   rn   rŽ   rÒ   rU   Úis_float_dtyperd   r¢   rù   Úbroadcast_shapesÚextendr¡   )	rÎ  rÓ  r  rÚ  Úr1Úr2Úbatch_tensor1Úbatch_tensor2rë  s	   ff&f     r6   Úmeta_cdist_forwardrâ  P  sF  ú€ ä	‡L‚LØ
�‰‹�A‰ÜOôô 
‡L‚LØ
�‰‹�A‰ÜOôô 
‡L‚LØ
�‰�‹�r—w‘w˜r“{Ñ"Ýfôô 
‡L‚LÜ×Ò˜RŸX™XÓ&ÜPôô 
‡L‚LÜ×Ò˜RŸX™XÓ&ÜPôô 
‡L‚L��a‘ÑLÔMÜ	‡L‚LØ˜Ñ'ÜIôð 
�‰�‹€BØ	�‰�‹€BØ—H‘H˜S˜b�M€MØ—H‘H˜S˜b�M€MÜœ×.Ò.¨}ÓLÓM€LØ×Ñ˜˜Ô!Ø�<‰<˜Ó%Ð%r8   c                 ód  € VP                   R,          pVP                   R,          pVP                   R,          pVP                   RR pVP                   RR p	\        \        P                  ! W‰4      4      p
V
P	                  4       pVP                  We.4       \        P                  ! V
4      pV^ 8X  g   V^ 8X  g   V^ 8X  g   V^ 8X  d   \        P                  ! V4      # V\        VP                   4      8w  d   VP                  V4      p\        P                  ! V\        P                  R7      # )r1   NrÚ   r÷   rO  )r¢   rù   r\   rÜ  ÚcopyrÝ  ÚmathÚprodÚ
zeros_likerª  r§   rß   )rÐ  rÎ  rÓ  r  ÚcdistÚc1rÞ  rß  rà  rá  r?  Útensor1_expand_sizeÚbatch_products   &&&&&        r6   Úmeta_cdist_backwardrì  t  sð   € ð 
�‰�"�€BØ	�‰�"�€BØ	�‰�"�€BØ—H‘H˜S˜b�M€MØ—H‘H˜S˜b�M€MÜ¤× 6Ò 6°}Ó TÓUÐØ.×3Ñ3Ó5ÐØ×Ñ ˜xÔ(Ü—I’IÐ2Ó3€MØ	ˆQ„w�"˜”'˜R 1œW¨¸Ô(:Ü×Ò Ó#Ð#Øœd 2§8¡8›nÔ,Ø�Y‰YÐ*Ó+ˆÜ×Ò˜B¬e×.EÑ.EÔFÐFr8   c	                 óŒ  a aaaaa€ \         P                  ! SP                  \         P                  \         P                  39   V3R  l4       \         P                  ! SP                  \         P                  \         P                  39   V3R l4       \         P                  ! \
        P                  ! S P                  4      V 3R l4       SP                  ^ 4      p	V'       d%   \         P                  ! V	^8¬  R 4       V	^,          p	S P                  V	S P                  ^4      4      p
Seƒ   \         P                  ! V\        8H  R 4       \         P                  ! SP                  ^8H  V3R l4       \         P                  ! SP                  4       SP                  4       8H  VV3R l4       V3R loR oVV3R	 lp\        S4      R
8w  d€   SP                  SP                  ^ 4      4      pSP                  SP                  4       4      pV\        8X  d$   SP                  V	S P                  ^4      4      pEMSP                  ^ 4      pMóV! S SW¨4      pV\        \        39   g	   V'       g"   SP                  SP                  ^ 4      4      pMSP                  ^ 4      pSP                  V	4      pSP                  ^ ,          pV\        8X  dQ   V'       d%   \         P                  ! V^8¬  R 4       V^,          pSP                  VS P                  ^,          4      pMSP                  VP                  4       4      pW¬WÞ3# )c                  ó"   <€ R S P                    2# )z(expected indices to be long or int, got r™   ©rç   s   €r6   rk   Ú$meta_embedding_bag.<locals>.<lambda>™  ó   ø€ Ð:¸7¿=¹=¸/ÑJr8   c                  ó"   <€ R S P                    2# )z(expected offsets to be long or int, got r™   )rÿ  s   €r6   rk   rð  �  rñ  r8   c                  ó"   <€ R S P                    2# )z/expected weight to be floating point type, got r™   r  s   €r6   rk   rð  ¡  s   ø€ ÐAÀ&Ç,Á,ÀÑPr8   c                  ó   € R # ©z1include_last_offset: numBags should be at least 1r2   r2   r8   r6   rk   rð  ¨  s   € ÑGr8   c                  ó   € R # )z@embedding_bag: per_sample_weights only supported with mode='sum'r2   r2   r8   r6   rk   rð  ±  s   € ÑVr8   c                  ó$   <€ R S P                    R2# )z1expected per_sample_weights to be 1D tensor, got rÑ  r©  )Úper_sample_weightss   €r6   rk   rð  µ  s   ø€ ÐGÐHZ×H_ÑH_ÐG`Ð`aÑbr8   c                  óN   <€ R SP                  4        RS P                  4        R2# )z%expected per_sample_weights.numel() (z$ to be the same as indices.numel() (r‚   r|  )rç   rø  s   €€r6   rk   rð  ¹  s/   ø€ Ø7Ð8J×8PÑ8PÓ8RÐ7Sð T6Ø6=·m±m³oÐ5FÀañIr8   c                 óN   <€ S! WV4      ;'       d    VP                  ^ 4      ^8H  # rû  ©rû   )r­   rZ  r-  Úpadding_idxÚis_fast_path_index_selects   &&&&€r6   Úis_fast_path_index_select_scaleÚ;meta_embedding_bag.<locals>.is_fast_path_index_select_scale¿  s)   ø€ á% c°;Ó?×XÐXÀEÇLÁLÐQRÃOÐWXÑDXð	
r8   c                 ó  € V P                   \        P                  8H  ;'       g&    V P                   \        P                  8H  ;'       d>    V P	                  ^4      ^8H  ;'       d"    VP	                  ^4      ^8H  ;'       d    V^ 8  # r0   )rd   r\   r`   r^   rû   )r­   r-  rü  s   &&&r6   rý  Ú5meta_embedding_bag.<locals>.is_fast_path_index_selectÄ  st   € à�Y‰Yœ%Ÿ+™+Ñ%×@Ð@¨¯©´e·j±jÑ)@÷  ð  Ø—
‘
˜1“ Ñ"÷ ð  à—‘˜aÓ  AÑ%÷ ð  ð ˜a‘ð		
r8   c                 ó0   <€ Ve
   S! WW#4      # S! WV4      # rG   r2   )r­   rZ  r-  rü  rý  rþ  s   &&&&€€r6   Úis_fast_pathÚ(meta_embedding_bag.<locals>.is_fast_pathÌ  s#   ø€ ØÒÙ2°3¸vÓSÐSá,¨S¸+ÓFÐFr8   r  c                  ó   € R # rõ  r2   r2   r8   r6   rk   rð  æ  s   € ÑOr8   )r\   rn   rd   rž   rÁ   rU   rÛ  rÒ   r¡   ÚMODE_SUMrÔ   r    r&  ÚMODE_MAXÚ	MODE_MEANr¢   )rº  rç   rÿ  Úscale_grad_by_freqr  Úsparserø  Úinclude_last_offsetrü  Únum_bagsr-  r  Ú
offset2bagÚbag_sizeÚmax_indicesÚfast_path_sumÚnumBagsrý  rþ  s   fff&&&f&&        @@r6   Úmeta_embedding_bagr  ‹  sw  ý€ ô 
‡L‚LØ�‰œ%Ÿ*™*¤e§i¡iÐ0Ñ0ÜJôô 
‡L‚LØ�‰œ%Ÿ*™*¤e§i¡iÐ0Ñ0ÜJôô 
‡L‚LÜ×Ò˜VŸ\™\Ó*ÜPôð
 �|‰|˜A‹€HßÜ�ŠØ˜‰MÙGô	
ð 	�A�ˆà×Ñ˜h¨¯©°A«Ó7€FàÒ%Ü�ŠØ”HÑÙVô	
ô 	�ŠØ×#Ñ# qÑ(Übô	
ô 	�ŠØ×$Ñ$Ó&¨'¯-©-«/Ñ9õô	
õ
ò

öGô �7Ó˜uÔ$Ø×&Ñ& w§|¡|°A£Ó7ˆ
Ø×$Ñ$ W§\¡\£^Ó4ˆØ”8ÔØ!×+Ñ+¨H°f·k±kÀ!³nÓEŠKà!×+Ñ+¨AÓ.‰Ká$ VÐ-?ÀÓUˆØ”IœxÐ(Ô(·Ø ×*Ñ*¨7¯<©<¸«?Ó;‰Jà ×*Ñ*¨1Ó-ˆJØ×$Ñ$ XÓ.ˆà—-‘- Õ"ˆØ”8Ôß"Ü—’Ø˜q‘LÙOôð ˜1•�Ø!×+Ñ+¨G°V·\±\À!µ_ÓE‰Kà!×+Ñ+¨H¯M©M«OÓ<ˆKØ˜xÐ4Ð4r8   c                 óŠ   € \        WV.VO5!  w  rErg\        V4      R 8X  d    VP                  VP                  4       4      pWEWg3# ©r  )r  r&  r¡   rÒ   )rº  rç   rÿ  rW   r-  r  r  r  s   &&&*    r6   Úmeta_embedding_bag_forward_onlyr  ï  sN   € ä0BØ˜ð1Ø#'ó1Ñ-€F˜ô �7Ó˜uÔ$Ø×$Ñ$ W§\¡\£^Ó4ˆØ˜xÐ4Ð4r8   c                 óæ   € V'       d   V# V P                   P                  '       g   V P                   P                  '       d   V P                   # V'       d   \        P                  # V P                   # rG   )rd   r;  r%  r\   rž   )r  rd   Úpromote_int_to_longs   &&&r6   Ú_get_reduction_dtyper  ù  sJ   € çØˆà‡{�{×$×$Ð$¨¯©×(>×(>Ð(>Ø�{‰{Ðß	Ü�z‰zÐà�;‰;Ðr8   c                óº   € \        WR R7      pVR8X  g   V. 8X  d   Rp\        P                  ! V P                  V4      p\	        WV4      pV P                  WTR7      # )T)r  Nr™   r2   )r  rU   r  r¢   r  r¡   )r  rq  r  rd   rC  rë  s   &&&$  r6   Úmeta_nansumr    sU   € ô (¨È$ÔO€Làˆr„z�T˜R”ZØˆÜ×Ò §¡¨TÓ2€DÜ+¨E¸ÓA€LØ�?‰?˜<ˆ?Ó<Ð<r8   c           	      ó¦   € \         P                  ! V P                  \        \	        V P                  4       4      4      4      pV P                  V4      # rG   )rU   rs  r¢   rm   rú   rŽ   r¡   )r  rë  s   & r6   Úmeta_medianr    s<   € ä×7Ò7Ø�‰”Uœ5 §¡£Ó-Ó.ó€Lð �?‰?˜<Ó(Ð(r8   c                 ó  € \        V 4      R 8X  d   \        P                  ! R4       \        P                  ! V P                  V34      p\        WV4      pV P                  V4      V P                  V\        P                  R7      3# )r  zmedian CUDA with indices outputr™   )	r&  rU   Úalert_not_deterministicr  r¢   r  r¡   r\   rž   )r  rŽ   r  rë  s   &&& r6   Úmeta_median_mode_dimr    sn   € ô �5Ó˜VÔ#Ü×%Ò%Ð&GÔHÜ
×
Ò
˜uŸ{™{¨S¨FÓ
3€CÜ+¨E¸Ó@€Là�‰˜Ó%Ø�‰˜¬E¯J©JˆÓ7ðð r8   c                 ó   € V # rG   r2   rà   s   &r6   Úmeta_logical_not_r!  0  rM  r8   c                 óð  aa€ \         P                  ! \        V4      V P                  4       8¬  R  4       \	        V4       F%  w  oo\         P                  ! S^ 8¬  VV3R l4       K'  	  \        V4      V P                  4       ,
          pRV,          \        V P                  4      ,           p\        \        V4      4       Uu. uF  qCV,          W,          ,          NK  	  ppV P                  V4      # u upi )c                  ó   € R # )zZNumber of dimensions of repeat dims can not be smaller than number of dimensions of tensorr2   r2   r8   r6   rk   Úmeta_repeat.<locals>.<lambda>9  s   € Ñlr8   c                  ó   <€ R S RS  2# )z"Repeats cannot be negative, found rî  r2   )r  Úreps   €€r6   rk   r$  >  s   ø€ Ð8¸¸¸ZÈÀsÑKr8   r0   )	r\   rn   rø   rŽ   rø  rm   r¢   rú   r¡   )r£   rÔ  Únum_new_dimensionsÚpadded_sizer  Útarget_sizer&  s   &&  ` @r6   Úmeta_repeatr*  5  s¿   ù€ ä	‡L‚LÜˆG‹˜Ÿ™›
Ñ"Ùlôô ˜GÖ$‰ˆˆ3Ü�ŠØ�1‰HÝKö	
ñ %ô ˜W›¨¯©«
Õ2ÐØÐ+Õ+¬e°D·J±JÓ.?Õ?€KÜ8=¼cÀ'»lÔ8KÓLÑ8K°1˜q•> G¥J×.Ð.Ñ8K€KÐLØ�>‰>˜+Ó&Ð&ùò Ms   ÃC3c                 ó   € V # rG   r2   rà   s   &r6   Ú
meta_zero_r,  I  rM  r8   c                 ó†   € \        V\        P                  4      '       d!   \        V P                  VP                  4       V # rG   )rx   r\   r   rp   r¢   ©r£   rÓ   s   &&r6   Úmeta_binop_inplacer/  N  s,   € ô �%œŸ™×&Ò&Ü §
¡
¨E¯K©KÔ8Ø€Kr8   c                 ó@  a a€ \        S V\        P                  R 7      w  po\        P                  ! \
        P                  ! SS P                  R7      VV 3R l4       \        V\        P                  4      '       d!   \        S P                  VP                  4       S # )r  )Ú	cast_fromÚcast_toc                  ó(   <€ R S  RSP                    2# )zresult type z* can't be cast to the desired output type r™   )rY   r£   s   €€r6   rk   Ú"meta_div_inplace.<locals>.<lambda>f  s   ø€ Ø˜<˜.ð )ØŸ:™:˜,ñ(r8   )r   r   r   r\   rn   rU   Úcan_safe_cast_tord   rx   r   rp   r¢   )r£   rÓ   rX   rY   s   f& @r6   Úmeta_div_inplacer6  ]  sq   ù€ ä(ØØÜ;×HÑHô�O€A€|ô
 
‡L‚LÜ×Ò¨¸t¿z¹zÔJõ	
ôô �%œŸ™×&Ò&Ü §
¡
¨E¯K©KÔ8Ø€Kr8   c                ó4  € R pR pR pV! V 4      '       d   V! V4      '       d   \        R4      hV! V 4      '       d   V! V4      '       g   \        R4      h\        V\        P                  4      '       d!   \	        V P
                  VP
                  4       V # )a  
Some checks for inplace ops.
Checks for promotion rules for some dtypes.
int.add/sub_(float) and bool.add/sub_(others) are rejected.
Promoting in these in-place operations would require reallocating
and copying over elements, hence not allowed.
Checks for alpha param.
c                 óŽ   € \        V \        4      '       d!   \        P                  ! V P                  4      # \        V \
        4      # rG   )rx   r    rU   ræ  rd   r   ©r{   s   &r6   Úis_integericÚ.meta_binop_inplace_alpha.<locals>.is_integericƒ  s1   € Ü�cœ:×&Ò&Ü×)Ò)¨#¯)©)Ó4Ð4ä˜c¤7Ó+Ð+r8   c                 óŽ   € \        V \        4      '       d!   \        P                  ! V P                  4      # \        V \
        4      # rG   )rx   r    rU   rÛ  rd   r   r9  s   &r6   Ú
is_floaticÚ,meta_binop_inplace_alpha.<locals>.is_floatic‰  s1   € Ü�cœ:×&Ò&Ü×'Ò'¨¯	©	Ó2Ð2ä˜c¤9Ó-Ð-r8   c                 óŽ   € \        V \        4      '       d!   \        P                  ! V P                  4      # \        V \
        4      # rG   )rx   r    rU   Úis_boolean_dtyperd   r   r9  s   &r6   Úis_booleanicÚ.meta_binop_inplace_alpha.<locals>.is_booleanic�  s1   € Ü�cœ:×&Ò&Ü×)Ò)¨#¯)©)Ó4Ð4ä˜c¤8Ó,Ð,r8   z]Promotion of int.add/sub_(float) in in-place ops are not possible due to element size change.z_Promotion of bool.add/sub_(others) in in-place ops are not possible due to element size change.)r§  rx   r\   r   rp   r¢   )r£   rÓ   rÙ  r:  r=  rA  s   &&&   r6   Úmeta_binop_inplace_alpharC  q  s‰   € ò$,ò.ò-ñ �D×Ò™j¨×/Ò/ÜØkó
ð 	
ñ
 �D×Ò¡,¨u×"5Ò"5ÜØmó
ð 	
ô �%œŸ™×&Ò&Ü §
¡
¨E¯K©KÔ8Ø€Kr8   c                 ó8   € \        W\        P                  R 7      # ©r×  ©rZ   r   rV   ©r£   rÓ   rÙ  s   &&&r6   Úmeta_binop_alpharH  ¦  s   € ô ØÔ$C×$KÑ$Kôð r8   c                 ó8   € \        V \        P                  R 7      # rE  rF  )r£   r!  s   &,r6   Ú
meta_roundrJ  ²  s   € äØÔ<×DÑDôð r8   c                 óŒ  a aa€ \         P                  ! \        P                  ! SP                  4      V V3R  l4       \        S\         P                  4      '       d=   \         P                  ! \        P                  ! SP                  4      V V3R l4       R# \         P                  ! \        S\        4      V V3R l4       R# )c                  ó&   <€ S  R SP                    2# )z7: Expected input tensor to have an integral dtype. Got r™   )ru  r£   s   €€r6   rk   Ú#shift_dtype_check.<locals>.<lambda>¼  s   ø€ �7�)ÐRÐSW×S]ÑS]ÐR^Ñ_r8   c                  ó&   <€ S  R SP                    2# )z6: Expected shift value to have an integral dtype. Got r™   ©ru  r)  s   €€r6   rk   rM  Á  s   ø€ �w�iÐUÐVY×V_ÑV_ÐU`Ñar8   c                  ó   <€ S  R S 2# )z): Expected shift value to be an int. Got r2   rO  s   €€r6   rk   rM  Æ  s   ø€ �w�iÐHÈÈÑNr8   N)r\   rn   rU   ræ  rd   rx   r   r   )ru  r£   r)  s   fffr6   Úshift_dtype_checkrQ  ¹  ss   ú€ Ü	‡L‚LÜ×Ò˜tŸz™zÓ*Ý_ôô �#”u—|‘|×$Ò$Ü�ŠÜ×"Ò" 3§9¡9Ó-Ýaö	
ô
 	�ŠÜ�sœGÓ$ÝNö	
r8   c                 óP   € \        R W4       \        W\        P                  R7      # )Úrshiftr×  ©rQ  rZ   r   rV   r.  s   &&r6   Úmeta_rshiftsrU  Ê  ó%   € ä�h Ô,ÜØÔ$C×$KÑ$Kôð r8   c                 óP   € \        R W4       \        W\        P                  R7      # )Úlshiftr×  rT  r.  s   &&r6   Úmeta_lshiftsrY  Ò  rV  r8   c                 ó.   € \         P                  ! V 4      # rG   r¦   rà   s   &r6   Ú	meta_zeror[  Ú  ó   € ä×Ò˜DÓ!Ð!r8   c                 ó    a€ \        S\        P                  4      '       d-   \        P                  ! SP	                  4       ^ 8H  V3R l4       V # )r   c                  ó,   <€ R S P                  4        R2# ©zAfill_ only supports 0-dimension value tensor but got tensor with ú dimensions.r4  r(  s   €r6   rk   Úmeta_fill_.<locals>.<lambda>ä  ó   ø€ ÐWÐX[×X_ÑX_ÓXaÐWbÐbnÑor8   )rx   r\   r   rn   rŽ   ©r£   r)  s   &fr6   Ú
meta_fill_rd  ß  s7   ø€ ä�#”u—|‘|×$Ò$Ü�ŠØ�G‰G‹I˜‰NÜoô	
ð €Kr8   c                 óÈ   a€ \        S\        P                  4      '       d-   \        P                  ! SP	                  4       ^ 8H  V3R l4       \        P
                  ! V 4      # )r   c                  ó,   <€ R S P                  4        R2# r_  r4  r(  s   €r6   rk   Úmeta_fill.<locals>.<lambda>î  rb  r8   )rx   r\   r   rn   rŽ   r§   rc  s   &fr6   Ú	meta_fillrh  é  sC   ø€ ä�#”u—|‘|×$Ò$Ü�ŠØ�G‰G‹I˜‰NÜoô	
ô ×Ò˜DÓ!Ð!r8   c                 ó   € V # rG   r2   rà   s   &r6   Ú
meta_relu_rj  ó  rM  r8   c                ó$   € V ^8„  d   QhR\         /# r?   r’  )rB   s   "r6   rC   rC   ú  s   € ÷ ñ ¬Fñ r8   c                 ó8   € \        W\        P                  R 7      # rE  rF  rG  s   &&&r6   Úmeta__add_relurm  ø  s   € ô ØÔ$C×$KÑ$Kôð r8   c                 ó.   € \         P                  ! V 4      # rG   r¦   ©r£   ÚnoiseÚlowerrƒ  r²  r©   s   &&&&&&r6   Úmeta_rrelu_with_noiserr     s   € ô
 ×Ò˜DÓ!Ð!r8   c                 óZ   € \         P                  ! V 4      \         P                  ! V4      3# rG   r¦   ro  s   &&&&&&r6   Ú meta_rrelu_with_noise_functionalrt    s%   € ô ×Ò˜DÓ!¤5×#3Ò#3°EÓ#:Ð:Ð:r8   c                 ó   € V # rG   r2   )r£   rq  rƒ  r²  r©   s   &&&&&r6   Úmeta_rrelu_with_noise_rv    s	   € ð €Kr8   c                 ó.   € \         P                  ! V 4      # rG   r¦   ©r£   rç   ræ   Ú
accumulates   &&&&r6   Úmeta_index_putrz    r\  r8   c                 óF   € \        V P                  VP                  4       V # rG   ©rp   r¢   )r£   r¿   Úvalues   &&&r6   Úmeta_masked_fill_r~    s   € ä˜DŸJ™J¨¯
©
Ô3Ø€Kr8   c                 óŒ   € V P                  V P                  4       4      P                  \        P                  ! V 4      R 7      pV# rî   )r¡   rÒ   r¨  rU   r   )r£   r¿   rZ  Úmasked_scales   &&& r6   Úmeta__masked_scaler�  !  s<   € à—>‘> $§)¡)£+Ó.×1Ñ1Ü×1Ò1°$Ó7ð 2ó €Lð Ðr8   c                 óö   a a€ \         P                  ! VP                  \         P                  \         P                  39   R  4       \         P                  ! S P                  SP                  8H  V V3R l4       S # )c                  ó   € R # )zMask must be bool or uint8r2   r2   r8   r6   rk   Ú&meta_masked_scatter_.<locals>.<lambda>,  s   € Ñ9Ur8   c                  ó<   <€ R S P                    RSP                    2# )zEmasked_scatter: expected self and source to have same dtypes but got rÐ   r™   )r£   rð  s   €€r6   rk   r„  0  s    ø€ ð ØŸ*™*˜ U¨6¯<©<¨.ñ:r8   )r\   rn   rd   rÂ   rä  )r£   r¿   rð  s   f&fr6   Úmeta_masked_scatter_r†  )  sU   ù€ ä	‡L‚LØ�
‰
”u—z‘z¤5§;¡;Ð/Ñ/Ñ1Uôô 
‡L‚LØ�
‰
�f—l‘lÑ"õ	:ôð
 €Kr8   c                 ó€   € \        W4      w  r\        P                  ! V \        P                  R 7      p\	        W1V4      # rî   )r'   r\   r§   rß   r†  )r£   r¿   rð  r-  s   &&& r6   Úmeta_masked_scatterrˆ  6  s5   € ô " $Ó-�J€DÜ×Ò˜d´%×2IÑ2IÔJ€FÜ ¨fÓ5Ð5r8   c                 ó$   € V P                  V4      # rG   r  )r£   r¿   rñ  s   &&&r6   Úmeta_masked_scatter_backwardrŠ  >  s   € à�>‰>˜%Ó Ð r8   c                 ó   € V # rG   r2   rx  s   &&&&r6   Úmeta_index_put_rŒ  C  rM  r8   c           	      ó¶  a aaaaaa€ ^ RI HpHp \        P                  ! S P                  4       ^8H  R 4       \        P                  ! SP                  4       ^8H  R 4       \        P                  ! S P                  SP                  8H  V V3R l4       S P                  4       pSP                  4       oV^ ,          oV^,          oV^,          pS^,          p	SW‰3o\        P                  ! V! V! S^ ,          S4      V! S^,          S4      4      VVV3R l4       V'       d¾   \        S 4      R	9   d�   S P                  \        P                  8H  ;'       g&    S P                  \        P                  8H  ;'       d    V\        P                  8H  p
\        P                  ! VS P                  8H  ;'       g    T
R 4       SP                  S4      P                  V4      pMSP                  S4      pV'       g_   Se[   \        P                  ! SP                  4       ^8H  R 4       \        P                  ! V! SP                  4       S4      VV3R l4       V# )
r   )r›  r/  c                  ó   € R # r1  r2   r2   r8   r6   rk   Ú)common_meta_baddbmm_bmm.<locals>.<lambda>K  r3  r8   c                  ó   € R # r5  r2   r2   r8   r6   rk   r�  L  r3  r8   c                  ó<   <€ R S P                    RSP                    2# )zexpected scalar type z but found r™   r  s   €€r6   rk   r�  O  s   ø€ Ð'¨¯© ~°[ÀÇÁÀÑOr8   c            	      ó>   <€ R S RS RS ^ ,           RS ^,           R2	# r:  r2   r<  s   €€€r6   rk   r�  ]  s3   ø€ ÐRÐSUÐRVØ
ÐÐ˜l¨<¸­?Ð*;¸2¸lÈ1½oÐ=NÈbñRr8   c                  ó   € R # )zfout_dtype only supported for torch.float32 output with float16/bfloat16 inputs or same as input dtypesr2   r2   r8   r6   rk   r�  m  s   € ñ  Ar8   c                  ó   € R # )zself must be a 3D tensorr2   r2   r8   r6   rk   r�  u  s   € Ñ6Pr8   c                  ó0   <€ R S  RSP                  4        2# )z*Expected an input tensor shape with shape z but got shape: rÑ   )r—  Úself_baddbmms   €€r6   rk   r�  x  s   ø€ Ð@ÀÀÐM]Ð^j×^oÑ^oÓ^qÐ]rÑsr8   r:  )rÈ   r›  r/  r\   rn   rŽ   rd   rÒ   r&  rç  r<  r=  r¡   r¨  )r7  r8  Úis_bmmr–  r¾  r›  r/  rF  Úres_rowsÚres_colsÚsupported_out_dtyper-  r=  r>  r?  r—  s   ff&f&       @@@@r6   Úcommon_meta_baddbmm_bmmr›  H  sÍ  þ€ ßEä	‡L‚L�—‘“ Ñ"Ñ$HÔIÜ	‡L‚L�—‘“ Ñ"Ñ$HÔIÜ	‡L‚LØ�‰˜Ÿ™Ñ$ÝOôð
 —;‘;“=€LØ—;‘;“=€Là	�a�€BØ# A•ÐØ˜A�€HØ˜A�€HØ�xÐ*€Kä	‡L‚LÙ‘�| A•¨Ó+©V°LÀµOÐEUÓ-VÓWö	Rô÷
 ô �vÓ /Ô1à—‘¤§¡Ñ-×OÐO°·±ÄÇÁÑ1O÷#-ð #-àœuŸ}™}Ñ,ð  ô �LŠLØ˜VŸ\™\Ñ)×@Ð@Ð-@ñ Aôð ×!Ñ! +Ó.×1Ñ1°)Ó<‰ð ×!Ñ! +Ó.ˆç�lÒ.Ü�Š�\×%Ñ%Ó'¨1Ñ,Ñ.PÔQÜ�ŠÙ�<×$Ñ$Ó&¨Ó4Ýsô	
ð
 €Mr8   c                 ó   € \        WR 4      # ©T©r›  )r£   rÍ  s   &&r6   Úmeta_bmmrŸ  ~  s   € ô # 4¨tÓ4Ð4r8   c                 ó   € \        WR VR7      # )T)r¾  rž  )r£   rÍ  r¾  s   &&&r6   Úmeta_bmm_dtyper¡  „  s   € ô # 4¨t¸yÔIÐIr8   c                 ó   € W,          # rG   r2   r:   s   &&r6   Údiv_rtnr£  Š  s   € ð �6€Mr8   c                 ó  € \        V V,           V,           WQ^,
          ,          ,
          ^,
          V'       d
   V^,
          M^ ,           V4      ^,           pV'       d%   V^,
          V,          W,           8¼  d
   V^,          pV# r0   )r£  )Ú	inputSizeÚ
kernelSizer¬  r­  rû   r}  r  Ú
outputSizes   &&&&&&& r6   Úpooling_output_shape_pad_lrr¨  �  sˆ   € ô 	ØØõàõð  q�.Õ)õ*ð õ	÷
 'ˆv˜Žz¨Aõ/ð ó	
ð õ		ð ÷ Ø˜�N˜fÕ$¨	Õ(9Ô9Ø˜!�OˆJØÐr8   c           	      ó  aaa€ \         P                  ! V^ 8g  R 4       \         P                  ! S^ 8¬  V3R l4       \         P                  ! SS^,
          S,          ^,           ^,          8*  VVV3R l4       \        V SSSVSV4      # )r   c                  ó   € R # )zstride should not be zeror2   r2   r8   r6   rk   Ú&pooling_output_shape.<locals>.<lambda>¬  s   € Ñ&Ar8   c                  ó   <€ R S  2# )z'pad must be non-negative, but got pad: r2   ©Úpads   €r6   rk   r«  ­  s   ø€ Ð%LÈSÈEÑ#Rr8   c                  ó   <€ R S RS RS  2# )zApad should be at most half of effective kernel size, but got pad=z, kernel_size=z and dilation=r2   )r}  r¦  r®  s   €€€r6   rk   r«  °  s"   ø€ ØOÐPSÈuð UØ%˜, n°X°Jñ@r8   )r\   rn   r¨  )r¥  r¦  r®  rû   r}  r  s   &ff&f&r6   rN  rN  «  ss   ú€ Ü	‡L‚L�˜1‘ÑAÔBÜ	‡L‚L�˜‘ÔRÔSÜ	‡L‚LØ�˜a• 8Õ+¨aÕ/°AÕ5Ñ5ö	
ôô 'Ø�:˜s C¨°¸9óð r8   c                 ó  a aaaaaaaaa	a
aaaa€ ^ RI HpHp S P                  4       pS	o\        P
                  ! S^ 8„  ;'       d    S^ 8„  VV3R l4       \        P
                  ! S^ 8„  ;'       d    S^ 8„  VV3R l4       \        P
                  ! S^ 8„  ;'       d    S^ 8„  VV3R l4       V! S P                  ^4      ^ 8g  S P                  ^4      ^ 8g  4      pV\        P                  8X  dC   \        P
                  ! V^8H  ;'       d    V! VS P                  ^4      ^ 8g  4      V 3R l4       Mn\        P
                  ! T! V^8H  ;'       d    V! S P                  ^ 4      ^ 8g  V4      V^8H  ;'       d    V! VS P                  ^4      ^ 8g  4      4      V 3R l4       \        P
                  ! V! S^,          S8¬  S^,          S8¬  4      VVVV3R l4       \        P
                  ! V! S^8¬  S^8¬  4      V
VV	VVV3R l4       R	# )
r   rš  c                  ó   <€ R S  RS 2# )z5kernel size should be greater than zero, but got kH: ú, kW: r2   )rR  rS  s   €€r6   rk   Ú$pool2d_shape_check.<locals>.<lambda>Ò  s   ø€ ÐGÈÀtÈ6ÐRTÐQUÑVr8   c                  ó   <€ R S  RS 2# )z0stride should be greater than zero, but got dH: ú, dW: r2   )rT  rU  s   €€r6   rk   r³  Ö  s   ø€ ÐBÀ2À$ÀfÈRÈDÑQr8   c                  ó   <€ R S  RS 2# )z9dilation should be greater than zero, but got dilationH: ú, dilationW: r2   )Ú	dilationHÚ	dilationWs   €€r6   rk   r³  Ú  s   ø€ ÐKÈIÈ;ÐVcÐdmÐcnÑor8   c                  ó*   <€ R S P                  4        2# )z€Expected 4D (batch mode) tensor expected for input with channels_last layout with optional 0 dim batch size for input, but got: rÑ   rÃ  s   €r6   rk   r³  â  s   ø€ ð CØCHÇ:Á:Ã<À.ñRr8   c                  ó*   <€ R S P                  4        2# )zYExpected 3D or 4D (batch mode) tensor with optional 0 dim batch size for input, but got: rÑ   rÃ  s   €r6   rk   r³  ë  s   ø€ ÐoÐpu×pzÑpzÓp|Ðo}Ñ~r8   c                  ó    <€ R S RS RS RS  2# )zKpad should be smaller than or equal to half of kernel size, but got padW = z	, padH = z, kW = z, kH = r2   )rR  rS  rV  rW  s   €€€€r6   rk   r³  ð  s$   ø€ ð Ø��y   g¨b¨T°¸¸ñ>r8   c                  ó.   <€ R S RS  RS RS RS RS R2# ©zGiven input size: (r;   z). Calculated output size: (z). Output size is too smallr2   )rX  rY  r  r^  r  r  s   €€€€€€r6   rk   r³  ö  s8   ø€ Ð% k ]°!°K°=ÀÀ*Àð N$Ø$0 >°°<°.ÀÀ+Àð O#ñ#r8   N)rÈ   r›  rœ  rŽ   r\   rn   rÒ   rè  )r  rR  rS  rT  rU  rV  rW  r¸  r¹  r  rX  rY  r  r  rÛ   r›  rœ  rÔ   Ú
valid_dimsr^  s   ffffffffffffff&    @r6   rO  rO  º  sª  ÿþ€ ÷" Fà�9‰9‹;€DØ€Lä	‡L‚LØ
ˆQ‰×Ð�2˜‘6ÝVôô 
‡L‚LØ
ˆQ‰×Ð�2˜‘6ÝQôô 
‡L‚LØ�A‰×'Ð'˜) a™-Ýoôñ
 ˜Ÿ™ A›¨!Ñ+¨U¯Z©Z¸«]¸aÑ-?Ó@€Jàœ×+Ñ+Ô+Ü�ŠØ�A‰I×AÐA™' *¨e¯j©j¸«m¸qÑ.@ÓAôRõ	
ô 	�ŠÙØ˜‘	×EÐE™g e§j¡j°£m°qÑ&8¸*ÓEØ˜‘	×EÐE™g j°%·*±*¸Q³-À1Ñ2DÓEóô ô	
ô 
‡L‚LÙ��a•˜4‘  q¥¨D¡Ó1÷	>ôô 
‡L‚LÙ�˜qÑ  ,°!Ñ"3Ó4÷	#ñ 	#ör8   c          ,      ó   € V ^8„  d   Qh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|  rR  rS  r}  rT  rU  ÚpTÚpHÚpWÚ	dilationTr¸  r¹  r€  r�  r‚  rƒ  r„  r…  ru  rx  )r   rÁ   r¿  rÂ   )rB   s   "r6   rC   rC   ü  sü   € ÷ [ñ [Üð[äð[ô 	ð[ô 	ð	[ô
 	ð[ô 	ð[ô 	ð[ô 	ð[ô 	ð[ô 	ð[ô 	ð[ô ð[ô ð[ô ð[ô ð[ô  ð![ô" ð#[ô$ ð%[ô& ð'[ô( ð)[ô* ð+[ô, ñ-[r8   c           
      óô  a aaaaaaaaa	a
aaaaaaaaaaa€ S P                   p\        P                  ! S^ 8„  ;'       d    S^ 8„  ;'       d    S^ 8„  VVV3R l4       \        P                  ! S^ 8„  ;'       d    S^ 8„  ;'       d    S^ 8„  VVV3R l4       \        P                  ! S^ 8„  ;'       d    S^ 8„  ;'       d    S^ 8„  VVV3R l4       \        P                  ! VR9   VV 3R l4       \        V4       FB  oV^8X  d
   S^ 8X  d   K  \        P                  ! S P	                  S4      ^ 8„  VVV 3R l4       KD  	  ^ RIHp V'       d2   \        P                  ! V! SS8¬  SS8¬  SS8¬  4      VVVVVV3R l4       \        P                  ! V! S^,          S8¬  S^,          S
8¬  S^,          S	8¬  4      VVVV	VV
3R l4       \        P                  ! V! S^8¬  S^8¬  S^8¬  4      VVVVVVV3R	 l4       R
# )r   c                  ó   <€ R S RS  RS 2# )z5kernel size should be greater than zero, but got kT: z, kH: r²  r2   )rR  r|  rS  s   €€€r6   rk   Ú$pool3d_shape_check.<locals>.<lambda>  s   ø€ ðØ�$�f˜R˜D  r dñ,r8   c                  ó   <€ R S RS  RS 2# )z0stride should be greater than zero, but got dT: z, dH: rµ  r2   )rT  r}  rU  s   €€€r6   rk   rÇ    s   ø€ Ø>¸r¸dÀ&ÈÈÈFÐSUÐRVÑWr8   c                  ó   <€ R S RS  RS 2# )z9dilation should be greater than zero, but got dilationT: z, dilationH: r·  r2   )r¸  rÄ  r¹  s   €€€r6   rk   rÇ  %  s   ø€ ðØ#˜ M°)°¸MÈ)ÈñVr8   c                  ó&   <€ S  R SP                    2# )z/: Expected 4D or 5D tensor for input, but got: ra  )ru  r  s   €€r6   rk   rÇ  -  s   ø€ �7�)ÐJÈ5Ï;É;È-ÑXr8   c                  óL   <€ S  R SP                    RSP                  S4       R2# )zZ: Expected input's non-batch dimensions to have positive length, but input has a shape of z and non-batch dimension z has length zero!)r¢   rÒ   )ru  r  r  s   €€€r6   rk   rÇ  6  s.   ø€ Ø�)ð -Ø-2¯[©[¨MØ+¨E¯J©J°q«M¨?Ð:KñMr8   r¥  c                  ó.   <€ R S RS  RS RS RS RS R2# )zinput image (T: r
  rä  z ) smaller than kernel size (kT: ú kH: ú kW: r‚   r2   )r�  r€  r‚  rR  r|  rS  s   €€€€€€r6   rk   rÇ  B  s4   ø€ Ø" 5 '¨¨g¨Y°d¸6¸(ð C$Ø$& 4 u¨R¨D°°b°T¸ñ<r8   c                  ó,   <€ R S RS RS  RS RS RS 2# )zHpad should be smaller than or equal to half of kernel size, but got kT: rÎ  rÍ  z padT: z padW: z padH: r2   )rR  r|  rS  rÂ  rÁ  rÃ  s   €€€€€€r6   rk   rÇ  J  s1   ø€ ðØ�$�e˜B˜4˜u R D¨°¨t°7¸2¸$¸gÀbÀTñKr8   c                  ó:   <€ R S RS RS  RS RS RS RS RS R2# r¾  r2   )r�  r€  r‚  r  r„  rƒ  r…  s   €€€€€€€r6   rk   rÇ  R  sD   ø€ Ø! ' ¨!¨E¨7°!°G°9¸A¸f¸Xð F(Ø(/ y°°%°¸¸'¸À!ÀFÀ8ð L'ñ(r8   Nrz  )rÔ   r\   rn   rú   rÒ   rÈ   r›  )r  r  r|  rR  rS  r}  rT  rU  rÁ  rÂ  rÃ  rÄ  r¸  r¹  r€  r�  r‚  rƒ  r„  r…  ru  rx  rÔ   r›  r  s   fffffffffffffffffffff&  @r6   r{  r{  ü  sŸ  ÿÿý€ ð0 �:‰:€Dä	‡L‚LØ
ˆQ‰×$Ð$�2˜‘6×$Ð$˜b 1™fö	
ôô 
‡L‚LØ
ˆQ‰×$Ð$�2˜‘6×$Ð$˜b 1™fö	
ôô 
‡L‚LØ�A‰×9Ð9˜) a™-×9Ð9¨I¸©Mö	
ôô 
‡L‚LØ�‰ÝXôô
 �4Ž[ˆØ�1Œ9˜˜aœáÜ�ŠØ�J‰J�q‹M˜AÑöö	
ñ	 õ >çÜ�ŠÙ�E˜R‘K ¨B¡°¸"±Ó=÷ñ ô	
ô 
‡L‚LÙ��Q•˜"‘˜b 1�f¨™l¨B°­F°b©LÓ9÷	
ñ 	
ôô 
‡L‚LÙ�˜‘
˜F a™K¨°A©Ó6÷	
ò 	
ör8   c                 ó¬  € V P                   p\        V VVVVVVV	V
VVVVVVVVVVVV4       \        VVV^,
          V4       \        VVV^,
          V4       \        VVV^,
          V4       \        VVV^,
          V4       \        VVV^,
          V4       \        VVV^,
          V4       \        VVV^,
          V4       \        VVV^,
          V4       R# )râ  N©rÔ   r{  r/  )r  rÐ  rç   r  r|  rR  rS  r}  rT  rU  rÁ  rÂ  rÃ  rÄ  r¸  r¹  r€  r�  r‚  rƒ  r„  r…  ru  rÔ   s   &&&&&&&&&&&&&&&&&&&&&&& r6   Úmax_pool3d_backward_shape_checkrÓ  Z  sæ   € ð2 �:‰:€DäØØØ
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
ØØØØØØØØØØô+ô0 �;  d¨Q¥h°Ô8Ü�;  d¨Q¥h°Ô6Ü�;  d¨Q¥h°Ô8Ü�;  d¨Q¥h°Ô7ä�7˜D $¨¥(¨GÔ4Ü�7˜D $¨¥(¨EÔ2Ü�7˜D $¨¥(¨GÔ4Ü�7˜D $¨¥(¨FÖ3r8   c          &      óü   € V ^8„  d   QhR\         R\         R\        R\        R\        R\        R\        R\        R	\        R
\        R\        R\        R\        R\        R\        R\        R\        R\        R\        /# )r@   r  rÐ  r  r|  rR  rS  r}  rT  rU  rÁ  rÂ  rÃ  r€  r�  r‚  rƒ  r„  r…  ru  )r   rÁ   r¿  )rB   s   "r6   rC   rC   ˜  sÆ   € ÷ 38ñ 38Üð38äð38ô ð38ô 	ð	38ô
 	ð38ô 	ð38ô 	ð38ô 	ð38ô 	ð38ô 	ð38ô 	ð38ô 	ð38ô ð38ô ð38ô ð38ô  ð!38ô" ð#38ô$ ð%38ô& ñ'38r8   c                 ó  € V P                   p\        V VVVVVVVV	V
V^^^VVVVVVVR4       \        VVV^,
          V4       \        VVV^,
          V4       \        VVV^,
          V4       \        VVV^,
          V4       R# )r1   TNrÒ  )r  rÐ  r  r|  rR  rS  r}  rT  rU  rÁ  rÂ  rÃ  r€  r�  r‚  rƒ  r„  r…  ru  rÔ   s   &&&&&&&&&&&&&&&&&&& r6   rŽ  rŽ  ˜  s¡   € ð* �:‰:€DäØØØ
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø	Ø	Ø	ØØØØØØØØô-ô2 �;  d¨Q¥h°Ô8Ü�;  d¨Q¥h°Ô6Ü�;  d¨Q¥h°Ô8Ü�;  d¨Q¥h°Ö7r8   c                 ó   € R  pV! RV4      w  rx\         P                  ! \        V4      R
9   R 4       \        V4      ^ 8X  d   Yxr©MV! RV4      w  ršV! RV4      w  r¼V! RV4      w  rÞV P                  R4      pV P                  R4      pV P                  R4      p\        P
                  ! V 4      pV\         P                  8X  d+   \         P                  ! V P                  4       ^8H  R 4       MWV\         P                  8X  d+   \         P                  ! V P                  4       R9   R 4       M\         P                  ! RR	 4       \        VW{W�V4      p\        VWŒW®V4      p\        V VVV	V
VVVVVVVVVV4       VVV3# )c                 ó    a € \         P                  ! \        V4      R9   V 3R l4       V^ ,          p\        V4      ^8X  d   TMV^,          pW#3# )r1   c                  ó   <€ R S  R2# )zmax_pool2d: r6  r2   r7  s   €r6   rk   ÚEmax_pool2d_checks_and_compute_shape.<locals>.unpack.<locals>.<lambda>Ú  r9  r8   r:  r;  r<  s   f&  r6   r>  Ú3max_pool2d_checks_and_compute_shape.<locals>.unpack×  r@  r8   r¥  c                  ó   € R # )zOmax_pool2d: stride must either be omitted, a single int, or a tuple of two intsr2   r2   r8   r6   rk   Ú5max_pool2d_checks_and_compute_shape.<locals>.<lambda>ä  rD  r8   rû   r˜  r}  c                  ó   € R # )zMnon-empty 4D (batch mode) tensor expected for input with channels_last layoutr2   r2   r8   r6   rk   rÜ  õ  s   € Ñcr8   c                  ó   € R # )z9non-empty 3D or 4D (batch mode) tensor expected for inputr2   r2   r8   r6   rk   rÜ  ú  ó   € ÑOr8   Fc                  ó   € R # )zAUnsupported memory format. Supports only ChannelsLast, Contiguousr2   r2   r8   r6   rk   rÜ  ÿ  s   € ÑWr8   rJ  rK  rO  r÷   rº  )r\   rn   rø   rÒ   rU   r   rè  rŽ   rß   rN  rO  )r  r¥  rû   r˜  r}  r  r>  rR  rS  rT  rU  rV  rW  r¸  r¹  r  rX  rY  rÛ   r  r  s   &&&&&&               r6   r  r  Î  sy  € òñ �M ;Ó/�F€Bä	‡L‚LÜˆF‹�yÑ Ùaôô ˆ6ƒ{�aÔØ‰Bá˜ &Ó)‰ˆá˜	 7Ó+�J€DÙ! *¨hÓ7Ñ€IØ—*‘*˜R“.€KØ—*‘*˜R“.€KØ—‘˜B“€Jä×/Ò/°Ó6€MØœ×+Ñ+Ô+Ü�ŠØ�I‰I‹K˜1ÑÙcõ	
ð 
œ%×1Ñ1Ô	1Ü�ŠØ�I‰I‹K˜6Ñ!ÙOõ	
ô
 	�ŠØÙWô	
ô
 (¨°R¸rÈiÓX€LÜ& z°2¸RÈIÓV€KäØØ
Ø
Ø
Ø
ØØØØØØØØØØôð$ ˜ kÐ1Ð1r8   c                 ó‚  a aaaaa€ \        SW#WEV4      w  poo\        P                  ! SP                  S P                  8H  V V3R  l4       VoSP                  oVVVV3R lp	V	! S 4       V	! V4       \
        P                  ! S4      p
\        P                  ! SP                  SP                  SP                  V
R7      # )c                  ó<   <€ R SP                    RS P                    2# )zExpected dtype z  for `gradOutput` but got dtype r™   r«  s   €€r6   rk   Ú7meta_max_pool2d_with_indices_backward.<locals>.<lambda>0  s   ø€ �/ $§*¡* Ð-MÈk×N_ÑN_ÐM`Ñar8   c                 ó†   <€ \        V SS^,
          S4       \        V SS^,
          S4       \        V SS^,
          S4       R# )rá  N)r/  )r_  r^  rÔ   r  r  s   &€€€€r6   Ú_check_dim_sizeÚ>meta_max_pool2d_with_indices_backward.<locals>._check_dim_size6  s9   ø€ Ü�q˜$  q¥¨,Ô7Ü�q˜$  q¥¨,Ô7Ü�q˜$  q¥¨+Ö6r8   r  )
r  r\   rn   rd   rÔ   rU   r   r”   r¢   r‹   )rÐ  r£   r¥  rû   r˜  r}  r  rç   r  rå  rÛ   r^  rÔ   r  r  s   ff&&&&&&   @@@@r6   Ú%meta_max_pool2d_with_indices_backwardrç    s¬   ý€ ô  	,Øˆk 7°ió	ñ	ØØØô
 
‡L‚LØ�
‰
�k×'Ñ'Ñ'Ýaôð
 €LØ�9‰9€D÷7ð 7ñ
 �KÔ Ù�GÔä×/Ò/°Ó5€MÜ�;Š;Ø�
‰
Ø�j‰jØ�{‰{Ø#ô	ð r8   c                 óœ  € \        WW#WE4      w  pppV P                  4       ^8X  d   V P                  R4      M^p	\        P                  ! V 4      p
V P                  4       ^8X  d   WgV.pMW–Wx.p\
        P                  ! VV P                  V P                  V
R7      \
        P                  ! V\
        P                  V P                  V
R7      3# r  )
r  rŽ   rÒ   rU   r   r\   r”   rd   r‹   rê   r  s   &&&&&&      r6   Úmeta_max_pool2d_with_indicesré  G  s½   € ô 	,Ø˜F¨Xó	ñ	ØØØð
  %Ÿy™y›{¨aÔ/ˆU�Z‰Z˜Œ^°Q€FÜ×/Ò/°Ó6€MØ‡y�yƒ{�aÔØ¨;Ð7‰à \Ð?ˆä�ŠØØ—+‘+Ø—<‘<Ø'ô		
ô 	�ŠØÜ—+‘+Ø—<‘<Ø'ô		
ðð r8   c                 ó  a aaa
aa€ \         P                  ! S P                  R9   V 3R l4       S P                  p\        V^,
          V4       F1  o
\         P                  ! S P	                  S
4      ^ 8„  V
V 3R l4       K3  	  \         P                  ! \        S4      ^8H  R 4       \         P                  ! \        V4      ^8H  R 4       S P	                  R4      pS P	                  R4      oS P	                  R4      oV^8X  d   S P	                  ^ 4      pM^p\         P                  ! S P                  SP                  8H  R 4       \         P                  ! SP                  ^8H  V3R l4       SP	                  ^ 4      pSP	                  ^4      pSP	                  ^4      o
\         P                  ! Wv8¬  R 4       \         P                  ! W…8H  R 4       \         P                  ! S
^8H  V
3R	 l4       \         P                  ! V^ ,          S^ ,          ,           ^,
          S8*  VV3R
 l4       \         P                  ! V^,          S^,          ,           ^,
          S8*  VV3R l4       S P                  4       ^8X  d   WeV^ ,          V^,          .p	MWR^ ,          V^,          .p	\         P                  ! V	S P                  S P                  R7      \         P                  ! V	\         P                  S P                  R7      3# )rá  c                  ó"   <€ R S P                    2# )z:fractional_max_pool2d: Expected 3D or 4D tensor, but got: r©  rà   s   €r6   rk   Ú,meta_fractional_max_pool2d.<locals>.<lambda>r  s   ø€ ÐLÈTÏYÉYÈKÑXr8   c                  ó2   <€ R SP                  4        RS  R2# )z_fractional_max_pool2d: Expected input to have non-zero  size for non-batch dimensions, but got rŸ  z emptyrÑ   )r	  r£   s   €€r6   rk   rì  y  s%   ø€ ð 7Ø7;·y±y³{°mÐCSÐTUÐSVÐV\ñ^r8   c                  ó   € R # )zNfractional_max_pool2d: kernel_size musteither be a single int or tuple of Intsr2   r2   r8   r6   rk   rì  €  ó   € ñ 2r8   c                  ó   € R # )zOfractional_max_pool2d: output_size must either be a single int or tuple of Intsr2   r2   r8   r6   rk   rì  …  rï  r8   c                  ó   € R # )z6Expect _random_samples to have the same dtype as inputr2   r2   r8   r6   rk   rì  “  s   € ÑHr8   c                  ó"   <€ R S P                    2# )z1Expect _random samples to have 3 dimensions got, r©  )Úrandom_sampless   €r6   rk   rì  —  s   ø€ ÐCÀN×DWÑDWÐCXÑYr8   c                  ó   € R # )z=Expect _random_samples.size(0) no less than input batch size.r2   r2   r8   r6   rk   rì  Ÿ  rÎ   r8   c                  ó   € R # )z<Expect _random_samples.size(1) equals to input channel size.r2   r2   r8   r6   rk   rì  £  ó   € ÑNr8   c                  ó   <€ R S  R2# )z/Expect _random_samples.size(2) equals to 2 got Ú.r2   )r	  s   €r6   rk   rì  ¥  s   ø€ Ð#RÐSTÐRUÐUVÑ!Wr8   c                  ó"   <€ R S^ ,           RS  2# )z%fractional_max_pool2d: kernel height z' is too large relative to input height r2   )Úinput_heightr¥  s   €€r6   rk   rì  ©  s   ø€ Ð7¸ÀA½Ð7GÐGnÐo{Ðn|Ñ}r8   c                  ó"   <€ R S^,           RS  2# )z$fractional_max_pool2d: kernel width z& is too large relative to input width r2   )Úinput_widthr¥  s   €€r6   rk   rì  ­  s   ø€ Ð6°{À1µ~Ð6FÐFlÐmxÐlyÑzr8   rÞ  rº  rK  rO  r÷   )r\   rn   rÔ   rú   rÒ   rø   rd   rŽ   r”   r‹   rê   )r£   r¥  r—  ró  rÔ   Úinput_channelsÚinput_batchrH  ÚcrÒ   r	  rú  rü  s   ff&f      @@@r6   Úmeta_fractional_max_pool2dr   n  sf  ý€ ä	‡L‚LØ�	‰	�VÑÜXôð �9‰9€Dä�4˜!•8˜TÖ"ˆÜ�ŠØ�I‰I�a‹L˜1Ñõ^ö	
ñ #ô 
‡L‚LÜˆKÓ˜AÑñ	2ôô
 
‡L‚LÜˆKÓ˜AÑñ	2ôð —Y‘Y˜r“]€NØ—9‘9˜R“=€LØ—)‘)˜B“-€KØˆq„yØ—i‘i “l‰àˆä	‡L‚LØ�
‰
�n×*Ñ*Ñ*ÙHôô 
‡L‚LØ×Ñ˜qÑ ÜYôð
 	×Ñ˜AÓ€AØ×Ñ˜AÓ€AØ×Ñ˜AÓ€AÜ	‡L‚LØ	ÑÙOôô 
‡L‚LØ	ÑÙNôô 
‡L‚L��a‘ÔWÔXä	‡L‚LØ�A�˜ Q�Õ'¨!Õ+¨|Ñ;Ý}ôô 
‡L‚LØ�A�˜ Q�Õ'¨!Õ+¨{Ñ:Ýzôð
 ‡x�xƒz�Q„Ø¨[¸­^¸[È½^ÐL‰à¨A¥°¸AµÐ?ˆô 	�ŠØØ—*‘*Ø—;‘;ô	
ô
 	�ŠØÜ—+‘+Ø—;‘;ô	
ðð r8   c                 óÚ  € \         P                  ! \        V4      R	9   R 4       V^ ,          p\        V4      ^8X  d   TMV^,          p\        V4      ^8X  d   TMV^,          p\         P                  ! V'       * ;'       g    \        V4      R	9   R 4       V'       g   TMV^ ,          p	V'       g   TM\        V4      ^8X  d   T	MV^,          p
V'       g   TM\        V4      ^8X  d   T	MV^,          p\         P                  ! \        V4      R	9   R 4       V^ ,          p\        V4      ^8X  d   TMV^,          p\        V4      ^8X  d   TMV^,          p\         P                  ! \        V4      R	9   R 4       V^ ,          p\        V4      ^8X  d   TMV^,          p\        V4      ^8X  d   TMV^,          p\         P                  ! V P                  R
9   R 4       V P                  ^8X  d   V P	                  R4      M^pV P	                  R4      pV P	                  R4      pV P	                  R4      pV P	                  R4      p\        VWlWŸV4      p\        VW}V
VV4      p\        VWŽVVV4      p\        V VVVVV	V
VVVVVVVVVVVVVR4       V P                  ^8H  ;'       d(    \        P                  ! V 4      \         P                  8H  pV P                  ^8X  d   VVVV3pMVVVVV3pV P                  V4      pV P                  V\         P                  R7      pV'       dA   VP                  \         P                  R7      pVP                  \         P                  R7      pVV3# )r1   c                  ó   € R # ©zMmax_pool3d: kernel_size must either be a single int, or a tuple of three intsr2   r2   r8   r6   rk   Ú.meta_max_pool3d_with_indices.<locals>.<lambda>Ï  ó   € Ñ_r8   c                  ó   € R # ©zQmax_pool3d: stride must either be omitted, a single int, or a tuple of three intsr2   r2   r8   r6   rk   r  ×  ó   € Ñcr8   c                  ó   € R # ©zImax_pool3d: padding must either be a single int, or a tuple of three intsr2   r2   r8   r6   rk   r  ß  ó   € Ñ[r8   c                  ó   € R # ©zJmax_pool3d: dilation must be either a single int, or a tuple of three intsr2   r2   r8   r6   rk   r  ç  rU  r8   c                  ó   € R # ru  r2   r2   r8   r6   rk   r  ï  rv  r8   zmax_pool3d_with_indices()r™   rÚ   ry  rz  éûÿÿÿr  rK  rO  r÷   )r\   rn   rø   rÔ   rÒ   rN  r{  rU   r   rÑ  r¡   rê   r¨  )r  r¥  rû   r˜  r}  r  r|  rR  rS  r}  rT  rU  rÁ  rÂ  rÃ  rÄ  r¸  r¹  rµ  r  r€  r�  r‚  rƒ  r„  r…  rè  r×   r  rç   s   &&&&&&                        r6   Úmeta_max_pool3d_with_indicesr  Ã  s  € ô 
‡L‚LÜˆKÓ˜FÑ"Ù_ôð 
�Q�€BÜ�;Ó 1Ô$‰¨+°a­.€BÜ�;Ó 1Ô$‰¨+°a­.€Bä	‡L‚LØŒ
×+Ð+”c˜&“k VÑ+Ùcô÷ ‰˜v a�y€Bß‰¤c¨&£k°QÔ&6¡¸FÀ1½I€Bß‰¤c¨&£k°QÔ&6¡¸FÀ1½I€Bä	‡L‚LÜˆG‹˜ÑÙ[ôð 
��€BÜ�7‹|˜qÔ ‰ g¨a¥j€BÜ�7‹|˜qÔ ‰ g¨a¥j€Bä	‡L‚LÜˆH‹˜ÑÙ\ôð ˜•€IÜ  ›]¨aÔ/‘	°X¸aµ[€IÜ  ›]¨aÔ/‘	°X¸aµ[€Iä	‡L‚LØ�
‰
�fÑÙKôð
  %Ÿz™z¨QœˆU�Z‰Z˜Œ^°A€FØ�j‰j˜‹n€GØ�J‰J�r‹N€EØ�j‰j˜‹n€GØ�Z‰Z˜‹^€Fä  ¨°¸yÓI€EÜ" 7¨B°B¸	À9ÓM€GÜ! &¨"°"°iÀÓK€FäØØØ
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
ØØØØØØØØØØ#ô+ð4 	�
‰
�a‰×XÐXœE×7Ò7¸Ó>Ä%×BXÑBXÑXð ð ‡z�z�Q„Ø˜e W¨fÐ5‰	à˜W e¨W°fÐ=ˆ	à
�/‰/˜)Ó
$€CØ�o‰o˜i¬u¯{©{ˆoÓ;€GçØ�f‰f¤5×#9Ñ#9ˆfÓ:ˆØ—*‘*¬5×+AÑ+A�*ÓBˆà�ˆ<Ðr8   c                 óô  € \         P                  ! \        V4      R9   R 4       V^ ,          p\        V4      ^8X  d   TMV^,          p	\        V4      ^8X  d   TMV^,          p
\         P                  ! V'       * ;'       g    \        V4      R9   R 4       V'       g   TMV^ ,          pV'       g   T	M\        V4      ^8X  d   TMV^,          pV'       g   T
M\        V4      ^8X  d   TMV^,          p\         P                  ! \        V4      R9   R 4       V^ ,          p\        V4      ^8X  d   TMV^,          p\        V4      ^8X  d   TMV^,          p\         P                  ! \        V4      R9   R 4       V^ ,          p\        V4      ^8X  d   TMV^,          p\        V4      ^8X  d   TMV^,          p\         P                  ! VP                  R	9   R 4       VP	                  R
4      pVP	                  R4      pVP	                  R4      pVP	                  R4      pV P	                  R4      pV P	                  R4      pV P	                  R4      p\        VV VVVV	V
VVVVVVVVVVVVVVVR4       VP                  ^8H  ;'       d(    \        P                  ! V4      \         P                  8H  pVP                  VP                  4      pV'       d!   VP                  \         P                  R7      pV# )r1   c                  ó   € R # r  r2   r2   r8   r6   rk   Ú7meta_max_pool3d_with_indices_backward.<locals>.<lambda>5  r  r8   c                  ó   € R # r  r2   r2   r8   r6   rk   r  =  r  r8   c                  ó   € R # r
  r2   r2   r8   r6   rk   r  E  r  r8   c                  ó   € R # r  r2   r2   r8   r6   rk   r  M  rU  r8   c                  ó   € R # ru  r2   r2   r8   r6   rk   r  U  rv  r8   z"max_pool3d_with_indices_backward()rÚ   ry  rz  r  rK  rO  r÷   )r\   rn   rø   rÔ   rÒ   rÓ  rU   r   rÑ  r¡   r¢   r¨  )rÐ  r  r¥  rû   r˜  r}  r  rç   r|  rR  rS  r}  rT  rU  rÁ  rÂ  rÃ  rÄ  r¸  r¹  r  r€  r�  r‚  rƒ  r„  r…  rè  rÓ  s   &&&&&&&&                     r6   Ú%meta_max_pool3d_with_indices_backwardr  '  s–  € ô 
‡L‚LÜˆKÓ˜FÑ"Ù_ôð 
�Q�€BÜ�;Ó 1Ô$‰¨+°a­.€BÜ�;Ó 1Ô$‰¨+°a­.€Bä	‡L‚LØŒ
×+Ð+”c˜&“k VÑ+Ùcô÷ ‰˜v a�y€Bß‰¤c¨&£k°QÔ&6¡¸FÀ1½I€Bß‰¤c¨&£k°QÔ&6¡¸FÀ1½I€Bä	‡L‚LÜˆG‹˜ÑÙ[ôð 
��€BÜ�7‹|˜qÔ ‰ g¨a¥j€BÜ�7‹|˜qÔ ‰ g¨a¥j€Bä	‡L‚LÜˆH‹˜ÑÙ\ôð ˜•€IÜ  ›]¨aÔ/‘	°X¸aµ[€IÜ  ›]¨aÔ/‘	°X¸aµ[€Iä	‡L‚LØ�
‰
�fÑÙKôð
 �j‰j˜‹n€GØ�J‰J�r‹N€EØ�j‰j˜‹n€GØ�Z‰Z˜‹^€Fà×Ñ˜RÓ €EØ×Ñ˜rÓ"€GØ×Ñ˜bÓ!€Fä#ØØØØØ
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
ØØØØØØØØØØ,ô/ð8 	�
‰
�a‰×XÐXœE×7Ò7¸Ó>Ä%×BXÑBXÑXð ð —‘ §¡Ó-€JçØ—]‘]´×1GÑ1G�]ÓHˆ
àÐr8   c                ó0   € V ^8„  d   QhR\         R\         /# ©r@   r  Úgridr’  )rB   s   "r6   rC   rC   ˆ  s   € ÷ %
ñ %
¤Vð %
´6ñ %
r8   c                 óÈ  a aa€ \         P                  ! S P                  SP                  8H  VV 3R  l4       \         P                  ! S P                  \         P                  8H  ;'       d    SP                  \         P                  8H  VV 3R l4       \         P                  ! S P
                  ^ ,          SP
                  ^ ,          8H  VV 3R l4       \         P                  ! SP
                  R,          S P                  ^,
          8H  VV 3R l4       \        ^S P                  4       F3  o\         P                  ! S P
                  S,          ^ 8„  VV 3R l4       K5  	  R# )c                  ó<   <€ R SP                    RS P                    2# )zNgrid_sampler(): expected input and grid to be on same device, but input is on z and grid is on r…  ©r  r  s   €€r6   rk   Ú+check_grid_sampler_common.<locals>.<lambda>‹  s"   ø€ ðØ—\‘\�NÐ"2°4·;±;°-ñAr8   c                  ó<   <€ R SP                    RS P                    2# )zTgrid_sampler(): expected input and grid to have torch.strided layout, but input has z and grid has )rŠ   r  s   €€r6   rk   r  ’  s!   ø€ ðØŸ™˜ n°T·[±[°MñCr8   c                  ó<   <€ R SP                    RS P                    2# )zZgrid_sampler(): expected grid and input to have same batch size, but got input with sizes ú and grid with sizes ra  r  s   €€r6   rk   r  ™  s"   ø€ ð Ø %§¡˜}Ð,AÀ$Ç*Á*ÀñOr8   c                  óJ   <€ R SP                   ^,
           RS P                   2# )z+grid_sampler(): expected grid to have size z, in last dimension, but got grid with sizes )rÔ   r¢   r  s   €€r6   rk   r     s'   ø€ Ø9¸%¿*¹*Àq½.Ð9Ið J2Ø26·*±*°ñ?r8   c                  ó*   <€ R SP                    RS  R2# )zYgrid_sampler(): expected input to have non-empty spatial dimensions, but input has sizes rŸ  r   ra  r¶  s   €€r6   rk   r  ©  r·  r8   Nr÷   )r\   rn   r‹   rŠ   rt  r¢   rÔ   rú   )r  r  r  s   ff@r6   Úcheck_grid_sampler_commonr%  ˆ  sê   ú€ Ü	‡L‚LØ�‰˜Ÿ™Ñ#õ	
ôô 
‡L‚LØ�‰œŸ™Ñ%×FÐF¨$¯+©+¼¿¹Ñ*Fõ	
ôô 
‡L‚LØ�‰�A�˜$Ÿ*™* Q�-Ñ'õ	
ôô 
‡L‚LØ�
‰
�2�˜%Ÿ*™* q�.Ñ(õ	
ôô �1�e—j‘jÖ!ˆÜ�ŠØ�K‰K˜�N˜QÑõö	
ó "r8   c                   ó"   € ] tR tRt^ t^t^tRtR# )ÚGridSamplerInterpolationi°  r2   N)r„   Ú
__module__Ú__qualname__Ú__firstlineno__ÚBILINEARÚNEARESTÚBICUBICÚ__static_attributes__r2   r8   r6   r'  r'  °  s   † Ø€HØ€GØ„Gr8   r'  c                ó0   € V ^8„  d   QhR\         R\         /# r  r’  )rB   s   "r6   rC   rC   ¶  s   € ÷ ñ ¤ð ¬vñ r8   c                 óž   a a€ \         P                  ! S P                  ^8H  ;'       d    S P                  SP                  8H  VV 3R l4       R# )râ  c                  ó<   <€ R SP                    RS P                    2# )zdgrid_sampler(): expected 4D input and grid with same number of dimensions, but got input with sizes r"  ra  r  s   €€r6   rk   Ú'check_grid_sampler_2d.<locals>.<lambda>¹  ó!   ø€ ð4Ø49·K±K°=Ø# D§J¡J <ñ1r8   N)r\   rn   rÔ   )r  r  s   ffr6   Úcheck_grid_sampler_2dr4  ¶  s4   ù€ Ü	‡L‚LØ�
‰
�a‰×3Ð3˜EŸJ™J¨$¯)©)Ñ3õ	
ör8   c                ó<   € V ^8„  d   QhR\         R\         R\        /# )r@   r  r  Úinterpolation_mode)r   rÁ   )rB   s   "r6   rC   rC   Á  s!   € ÷ ñ ¤ð ¬vð Ì3ñ r8   c                 ó<  a a€ \         P                  ! S P                  ^8H  ;'       d    S P                  SP                  8H  VV 3R l4       \         P                  ! S P                  ^8H  ;'       d    V\        P                  P
                  8H  '       * R 4       R# )rã  c                  ó<   <€ R SP                    RS P                    2# )zdgrid_sampler(): expected 5D input and grid with same number of dimensions, but got input with sizes r"  ra  r  s   €€r6   rk   Ú'check_grid_sampler_3d.<locals>.<lambda>Ä  r3  r8   c                  ó   € R # )z<grid_sampler(): bicubic interpolation only supports 4D inputr2   r2   r8   r6   rk   r9  Ï  rö  r8   N)r\   rn   rÔ   r'  r-  r}  )r  r  r6  s   ff&r6   Úcheck_grid_sampler_3dr;  Á  sy   ù€ Ü	‡L‚LØ�
‰
�a‰×3Ð3˜EŸJ™J¨$¯)©)Ñ3õ	
ôô 
‡L‚Là�J‰J˜!‰O÷ Mð MØ"Ô&>×&FÑ&F×&LÑ&LÑLô	
ñ 	Oör8   c                 óì   € \        W4       \        W4       V P                  ^ ,          pV P                  ^,          pVP                  ^,          pVP                  ^,          pV P                  WVWx34      # rû  )r%  r4  r¢   r¡   )	r  r  r6  Úpadding_modeÚalign_cornersrl  ÚCÚout_HÚout_Ws	   &&&&&    r6   Ú"_grid_sampler_2d_cpu_fallback_metarB  Ú  s\   € ô ˜eÔ*Ü˜%Ô&Ø�‰�A�€AØ�‰�A�€AØ�J‰J�q�M€EØ�J‰J�q�M€EØ�?‰?˜A %Ð/Ó0Ð0r8   c                 óÌ   € \        W4       \        W4       \        P                  ! V\        P                  R 7      p\        P
                  ! V\        P                  R 7      pWg3# rî   )r%  r4  r\   rç  rß   r§   )rÐ  r  r  r6  r=  r>  rÓ  Ú	grad_grids   &&&&&&  r6   Ú+_grid_sampler_2d_cpu_fallback_backward_metarE  ì  sM   € ô ˜eÔ*Ü˜%Ô&Ü×!Ò! %´u×7NÑ7NÔO€JÜ× Ò  ´U×5LÑ5LÔM€IØÐ"Ð"r8   c                 óÈ   € V^ ,          pV'       d(   \         P                  ! V\         P                  R7      pMRp\         P                  ! V\         P                  R7      p	W‰3# ©r   rÚ   N)r\   rç  rß   r§   ©
rÐ  r  r  r6  r=  r>  r  Úinput_requires_gradrÓ  rD  s
   &&&&&&&   r6   Úgrid_sampler_2d_backward_metarJ  ü  sO   € ð & a�.ÐßÜ×%Ò% e¼5×;RÑ;RÔS‰
àˆ
Ü× Ò  ´U×5LÑ5LÔM€IØÐ"Ð"r8   c                 ó  € \        W4       \        WV4       V P                  ^ ,          pV P                  ^,          pVP                  ^,          pVP                  ^,          pVP                  ^,          p	V P                  WVWxV	34      # rû  )r%  r;  r¢   r¡   )
r  r  r6  r=  r>  rl  r?  Úout_Dr@  rA  s
   &&&&&     r6   Úgrid_sampler_3drM    sn   € ô ˜eÔ*Ü˜%Ð'9Ô:Ø�‰�A�€AØ�‰�A�€AØ�J‰J�q�M€EØ�J‰J�q�M€EØ�J‰J�q�M€EØ�?‰?˜A %°Ð6Ó7Ð7r8   rD  c                 óö   € \        W4       \        WV4       V^ ,          pV'       d(   \        P                  ! V\        P                  R7      pMRp\        P
                  ! V\        P                  R7      p	W‰3# rG  )r%  r;  r\   rç  r$  r§   rH  s
   &&&&&&&   r6   Úgrid_sampler_3d_backwardrO  "  sg   € ô ˜eÔ*Ü˜%Ð'9Ô:Ø% a�.ÐßÜ×%Ò%Ø¤×!?Ñ!?ô
‰
ð ˆ
Ü× Ò  ´U×5SÑ5SÔT€IØÐ Ð r8   c                 óœ   € VP                  R 4      pV'       g   \        P                  ! V4      pWCR &   \        P                  ! V .VO5/ VB # r™   )rc   rU   Ú	get_dtyper\   r”   )rÒ   rÛ  rW   r!  rd   s   &&*, r6   ÚfullrR  :  sA   € à�J‰J�wÓ€EßÜ—’ 
Ó+ˆØˆ7�Oä�;Š;�tÐ-˜dÒ- fÑ-Ð-r8   c           	      ój  € V\         P                  8X  dè   \         P                  ! VR J R 4       \         P                  ! ^ Vf   V P                  MTTVf   V P
                  MTVR7      pV P                  '       d?   VP                  V P                  4       V P                  4       V P                  4       4       M/VP                  V P                  4       V P                  4       ^ 4       VP                  R4       V# \        P                  P                  V VVVVVR7      pVP!                  ^ 4       V# )Nc                  ó   € R # )z9memory format option is only supported by strided tensorsr2   r2   r8   r6   rk   Úzeros_like.<locals>.<lambda>Q  rß  r8   rL  Tr3  )r\   Ú
sparse_coorn   r”   rd   r‹   Ú	is_sparseÚsparse_resize_and_clear_rÒ   Ú
sparse_dimÚ	dense_dimrŽ   Ú_coalesced_r,   r§   r»  Úfill_)r£   rd   rŠ   r‹   rŒ   rÛ   r_  s   &&&&&& r6   rç  rç  E  sþ   € ð ”×!Ñ!Ô!Ü�ŠØ˜TÐ!ÙOô	
ô
 �kŠkØØ %¢�$—*’*°5ØØ"(¢.�4—;’;°fØ!ô
ˆð �>�>ˆ>Ø×(Ñ(Ø—	‘	“˜TŸ_™_Ó.°·±Ó0@õð ×(Ñ(¨¯©«°d·h±h³jÀ!ÔDà�‰˜ÔØˆ
Ü
�/‰/×
!Ñ
!ØØØØØØ#ð "ó €Cð ‡I�Iˆa„LØ€Jr8   r�   c                óÀ   € Vf   \         P                  ! 4       pVf   \         P                  ! 4       pVf   \         P                  p\         P                  ! WW#VR7      # ©NrL  ©r\   r�   Úget_default_devicert  r”   ©rÒ   rd   rŠ   r‹   rŒ   r�   s   &$$$$$r6   Ú	meta_onesrb  r  óP   € ð ‚}Ü×'Ò'Ó)ˆØ‚~Ü×)Ò)Ó+ˆØ‚~Ü—‘ˆÜ�;Š;Ø &ÀJôð r8   c                óÀ   € Vf   \         P                  ! 4       pVf   \         P                  ! 4       pVf   \         P                  p\         P                  ! WW#VR7      # r^  r_  ra  s   &$$$$$r6   Ú
meta_zerosre  ˆ  rc  r8   c                 ó   € \        V 4      # rG   ©Ú_scatter_meta_output)r£   r­   rŽ   r›   s   &&&&r6   Úmeta_select_scatterri  ž  ó   € ä Ó%Ð%r8   c                 ó   € \        V 4      # rG   rg  )r£   r­   rŽ   r†   r…   Ústeps   &&&&&&r6   Úmeta_slice_scatterrm  £  rj  r8   c                 ó   € \        V 4      # rG   rg  )r£   r­   ÚoffsetrC  rD  s   &&&&&r6   Úmeta_diagonal_scatterrp  ¨  rj  r8   c                 ó¬   € ^ RI Hp V! V 4      '       g,   \        P                  ! V 4      ^8X  d   V P	                  4       # \
        P                  ! V 4      # )r   r¤  )rÈ   r¥  r\   r¦  rÉ   rU   Úclone_preserve_strides)r£   r¥  s   & r6   rh  rh  ­  sB   € ÝKñ
 ! ×&Ò&¬5×+LÒ+LÈTÓ+RÐVWÔ+WØ�z‰z‹|ÐÜ×'Ò'¨Ó-Ð-r8   c                ó<   € V ^8„  d   QhR\         R\         R\        /# )r@   rŽ   Údim_post_exprÚwrap_scalar)rÁ   rÂ   )rB   s   "r6   rC   rC   ¹  s!   € ÷ ñ œð ¬Cð ¼dñ r8   c           	      ó¾   € V^ 8:  d   V'       g   \        RV R24      h^pV) pV^,
          pW8  g   W8”  d   \        RV RV RV  R24      hV ^ 8  d	   W,          p V # )r   zdim_post_expr=z <= 0 but wrap_scalar is Falsez4Dimension out of range (expected to be in range of [r�   z], but got r‚   )r’   Ú
IndexError)rŽ   rt  ru  r*  r9  s   &&&  r6   rë   rë   ¹  s†   € Ø˜ÔßÜ Ø   Ð/MÐNóð ð ˆØˆ.€CØ
˜!Õ
€CØ
„y�C”IÜØBÀ3À%ÀrÈ#ÈÈkÐZ]ÐY^Ð^_Ð`ó
ð 	
ð ˆQ„wØÕˆØ€Jr8   c                 óV   € V P                  4       ^ 8X  d   ^# V P                  V,          # rû  r,  )r_  rŽ   s   &&r6   Úensure_nonempty_sizery  Ë  s!   € Ø—‘“˜1”ˆ1Ð. !§'¡'¨#¥,Ð.r8   c                 óJ  a aaa€ \        S P                  4       ^4      p\        SP                  4       ^4      p\        P                  ! W48H  R 4       \	        V4       FA  oSS8w  g   K  \        P                  ! \        SS4      \        S S4      8*  VVVV 3R l4       KC  	  R# )r1   c                  ó   € R # )zDIndex tensor must have the same number of dimensions as input tensorr2   r2   r8   r6   rk   Ú$gather_shape_check.<locals>.<lambda>Õ  s   € ÑVr8   c                  óV   <€ R S RSP                    2RSP                    RS  2,           # )z!Size does not match at dimension z expected index ú to be no larger than self ú apart from dimension ra  )rŽ   r  r›   r£   s   €€€€r6   rk   r|  Û  s5   ø€ Ð;¸A¸3Ð>NÈuÏ{É{ÈmÐ\Ø/°·
±
¨|Ð;QÐRUÐQVÐWöXr8   N)r9  rŽ   r\   rn   rú   ry  )r£   rŽ   r›   Ú	self_dimsÚ
index_dimsr  s   fff  @r6   Úgather_shape_checkr‚  Ð  s}   û€ Ü�D—H‘H“J Ó"€IÜ�U—Y‘Y“[ !Ó$€JÜ	‡L‚LØÑÙVôô �9ÖˆØ�Ž8Ü�LŠLÜ$ U¨AÓ.Ô2FÀtÈQÓ2OÑO÷Xöó r8   c                 óˆ  a€ ^ RI Hp \        WP                  4       4      pV! SP	                  4       ^ 8H  4      pV'       gh   \
        P                  ! SP                  \
        P                  8H  ;'       g    SP                  \
        P                  8H  V3R l4       \        WS4       V P                  SP                  4      # )r   rÄ   c                  ó"   <€ R S P                    2# )z8gather(): Expected dtype int32/int64 for index, but got r™   rš   s   €r6   rk   Úmeta_gather.<locals>.<lambda>é  s   ø€ ÐNÈuÏ{É{ÈmÑ\r8   )rÈ   rÅ   rë   rŽ   r    r\   rn   rd   rž   rÁ   r‚  r¡   r¢   )r£   rŽ   r›   Úsparse_gradrÅ   Úwrapped_dimÚis_index_emptys   &&f&   r6   Úmeta_gatherr‰  à  s�   ø€ åDä  §h¡h£jÓ1€KÙ# E§K¡K£M°QÑ$6Ó7€NßÜ�ŠØ�K‰Kœ5Ÿ:™:Ñ%×AÐA¨¯©¼¿	¹	Ñ)AÜ\ô	
ô 	˜4¨eÔ4Ø�>‰>˜%Ÿ+™+Ó&Ð&r8   c                 óø   € V'       dH   V R 8X  d   R# V R8X  d   R# V R8X  d   R# V R8X  d   R# V R8X  d   R	# \         P                  ! R
R 4       R# V R8X  d   R# V R8X  d   R# \         P                  ! R
R 4       R# )rî  Ú
REDUCE_ADDræ  ÚREDUCE_MULTIPLYr—  ÚREDUCE_MEANÚamaxÚREDUCE_MAXIMUMÚaminÚREDUCE_MINIMUMFc                  ó   € R # )z=reduce argument must be either sum, prod, mean, amax or amin.r2   r2   r8   r6   rk   Ú#get_operator_enum.<locals>.<lambda>þ  s   € ÑSr8   NÚaddÚmultiplyc                  ó   € R # )z/reduce argument must be either add or multiply.r2   r2   r8   r6   rk   r“    s   € Ñ$Ur8   r  )Úreduce_Úuse_new_optionss   &&r6   Úget_operator_enumr™  ð  s{   € ßØ�eÔÙØ˜ÔÙ$Ø˜ÔÙ Ø˜ÔÙ#Ø˜ÔÙ#Ü�ŠØÙSô	
ñ 	à�eÔÙØ˜
Ô"Ù$Ü�Š�UÑUÔVÙr8   c                 óx  a € ^ RI Hp V! VP                  4       ^ 8g  4      '       d\   \        P                  ! VP
                  \        P                  8H  ;'       g    VP
                  \        P                  8H  V 3R l4       Ve5   \        P                  ! VP
                  VP
                  8H  V 3R l4       R# R# )r   )r.  c                  ó   <€ S  R 2# )z((): Expected dtype int32/int64 for indexr2   ©Úmethod_names   €r6   rk   Ú,scatter_gather_dtype_check.<locals>.<lambda>  s   ø€ �{�mÐ#KÑLr8   Nc                  ó   <€ S  R 2# )z0(): Expected self.dtype to be equal to src.dtyper2   rœ  s   €r6   rk   rž    s   ø€ �{�mÐ#SÑTr8   )rÈ   r.  r    r\   rn   rd   rž   rÁ   )r�  r£   r›   Úsrc_optr.  s   f&&& r6   Úscatter_gather_dtype_checkr¡    s|   ø€ ÝCá�U—[‘[“] aÑ'×(Ò(Ü�ŠØ�K‰Kœ5Ÿ:™:Ñ%×AÐA¨¯©¼¿	¹	Ñ)AÜLô	
ð
 ÒÜ�ŠØ�J‰J˜'Ÿ-™-Ñ'ÜTö	
ñ r8   c                 ó   € \        V ^4      # r0   )r9  r4  s   &r6   Úensure_nonempty_dimr£    s   € Üˆs�A‹;Ðr8   c                 óò  a aaa€ ^ RI Hp V! SP                  4       ^ 8H  4      '       d   R# \        P                  ! \        S P                  4       4      \        SP                  4       4      8H  R 4       \        S P                  4       4      p\        V4       FC  pVS8X  d   K  \        SV4      p\        S V4      p\        P                  ! Wx8*  VVV 3R l4       KE  	  Se”   \        P                  ! \        S P                  4       4      \        SP                  4       4      8H  R 4       \        V4       F9  p\        SV4      p\        SV4      p	\        P                  ! Wy8*  VV3R l4       K;  	  R# R# )r   rÄ   Nc                  ó   € R # )zCIndex tensor must have the same number of dimensions as self tensorr2   r2   r8   r6   rk   Ú%scatter_shape_check.<locals>.<lambda>'  r¹  r8   c                  óP   <€ R SP                    RSP                    2RS  2,           # )úExpected index r~  r  ra  )rŽ   r›   r£   s   €€€r6   rk   r¦  5  s*   ø€ �o e§k¡k ]Ð2MÈdÏjÉjÈ\ÐZØ& s eÐ,ö-r8   c                  ó   € R # )zBIndex tensor must have the same number of dimensions as src tensorr2   r2   r8   r6   rk   r¦  =  s   € ÑXr8   c                  ó<   <€ R S P                    RSP                    2# )r¨  z to be no larger than src ra  )r›   r   s   €€r6   rk   r¦  D  s   ø€ ˜/¨%¯+©+¨Ð6PÐQX×Q^ÑQ^ÐP_Ñ`r8   )	rÈ   rÅ   r    r\   rn   r£  rŽ   rú   ry  )
r£   rŽ   r›   r   rÅ   r€  r	  Úindex_d_sizeÚself_d_sizeÚ
src_d_sizes
   ffff      r6   Úscatter_shape_checkr®     s"  û€ ÝDá�e—k‘k“m qÑ(×)Ò)ÙÜ	‡L‚LÜ˜DŸH™H›JÓ'Ô+>¸u¿y¹y»{Ó+KÑKÙUôô
 $ D§H¡H£JÓ/€Iô �9ÖˆØ�Œ8ÙÜ+¨E°1Ó5ˆÜ*¨4°Ó3ˆÜ�ŠØÑ'ö-ö	
ñ ð ÒÜ�ŠÜ §¡£
Ó+Ô/BÀ7Ç;Á;Ã=Ó/QÑQÙXô	
ô �yÖ!ˆAÜ/°°qÓ9ˆLÜ-¨g°qÓ9ˆJÜ�LŠLØÑ*Ý`öó "ñ r8   c                 óŒ   € \        WP                  4       4      p\        R WV4       \        WW#4       Ve   \	        WE4       R# R# )ÚscatterN)rë   rŽ   r¡  r®  r™  )r£   rŽ   r›   r­   r—  r˜  r‡  s   &&&&&& r6   Úscatter_meta_implr±  I  s;   € Ü  §h¡h£jÓ1€KÜ˜y¨$°sÔ;Ü˜¨5Ô6ØÒä˜'Ö3ñ r8   c                 óR   € \        WW#R 4       V P                  V P                  4      # ©r”  ©r±  r¡   r¢   ©r£   rŽ   r›   r­   s   &&&&r6   Úmeta_scatter_addr¶  R  s!   € ä�d ¨UÔ3Ø�>‰>˜$Ÿ*™*Ó%Ð%r8   c                 ó    € \        WW#R 4       V # r³  ©r±  rµ  s   &&&&r6   Úmeta_scatter_add_r¹  X  s   € ä�d ¨UÔ3Ø€Kr8   c                 óš   € \        V\        P                  4      '       d   TMR p\        WW%V4       V P	                  V P
                  4      # rG   )rx   r\   r   r±  r¡   r¢   ©r£   rŽ   r›   Úsrc_or_valuerñ  r­   s   &&&&& r6   Úmeta_scatterr½  ^  s:   € ô % \´5·<±<×@Ò@‰,Àd€CÜ�d ¨VÔ4Ø�>‰>˜$Ÿ*™*Ó%Ð%r8   c                 óh   € \        V\        P                  4      '       d   TMR p\        WW%V4       V # rG   )rx   r\   r   r±  r»  s   &&&&& r6   Úmeta_scatter_r¿  m  s,   € ô % \´5·<±<×@Ò@‰,Àd€CÜ�d ¨VÔ4Ø€Kr8   c                óz   € V ^8„  d   QhR\         R\         R\         R\        R\        R\        R\        R,          /# )	r@   Úqueryrõ   r}  Ú	dropout_pÚ	is_causalÚreturn_debug_maskrZ  N©r   r`   rÂ   )rB   s   "r6   rC   rC   |  sR   € ÷ <ñ <Üð<ä	ð<ô ð<ô ð	<ô
 ð<ô ð<ô �4�<ñ<r8   c           	      ót  € V P                  ^ 4      pV P                  ^4      pV P                  ^4      p	V P                  ^4      p
VP                  ^4      p\        P                  ! V 4      p\        P                  ! WxV	3\        P                  V P
                  R7      pV'       dk   V
^@8”  d   ^€MRp\        P                  ! Wž,          4      pV^€8:  d   ^€pM	VR8:  d   Rp\        P                  ! WxWŸ3V P                  V P
                  R7      pM-\        P                  ! ^ V P                  V P
                  R7      p\        P                  P                  '       d%   \        P                  P                  4       '       g   \        V 4      R8X  dP   \        P                  ! R\        P                  RR7      p\        P                  ! R\        P                  RR7      pMN\        P                  ! ^\        P                  RR7      p\        P                  ! R\        P                  RR7      pVVRRV	VVVV3	# )r   rÞ  é   r7  r‰   Nr2   )rÒ   r\   r§   r”   r`   r‹   rå  Úceilrd   r£  r¤  r  r)  r&  rž   rg  )rÁ  rõ   r}  rÂ  rÃ  rÄ  rZ  r  r¯   Úmax_seqlen_batch_qÚhead_dimÚmax_seqlen_batch_kÚ	attentionÚ	logsumexpÚblocksize_cÚmax_seqlen_kÚ
debug_maskÚseedro  s   &&&&&&&            r6   Ú(meta__scaled_dot_product_flash_attentionrÒ  {  s«  € ð —‘˜A“€JØ—
‘
˜1“€IØŸ™ A›ÐØ�z‰z˜!‹}€HØŸ™ !›Ðä× Ò  Ó'€IÜ—’Ø	Ð 2Ð3Ü�k‰kØ�|‰|ô€I÷ Ø%¨œ]‘c°ˆÜ—y’yÐ!3Õ!AÓBˆØ Ô$Ø‰LØ 3Ô&ØˆLÜ—[’[ØÐ$6ÐEØ—+‘+Ø—<‘<ô
‰
ô —[’[ ¨%¯+©+¸e¿l¹lÔKˆ
ô ‡}�}××ÐœUŸZ™Z×4Ñ4×6Ò6¼+ÀeÓ:LÐPUÔ:Uä�{Š{˜2¤U§Z¡Z¸Ô?ˆÜ—’˜R¤u§z¡z¸&ÔA‰ä�{Š{˜A¤e§l¡l¸6ÔBˆÜ—’˜R¤u§|¡|¸FÔCˆð 	ØØØØØØØØð
ð 
r8   c                óÈ   € V ^8„  d   QhR\         R\         R\         R\         R,          R\         R,          R\         R,          R\        R	\        R
\        R\        R,          /
# )r@   rÁ  rõ   r}  Ú	q_descaleNÚ	k_descaleÚ	v_descalerÂ  rÃ  rÄ  rZ  rÅ  )rB   s   "r6   rC   rC   ¼  s|   € ÷ ñ Üðä	ðô ðô ˜�}ð	ô
 ˜�}ðô ˜�}ðô ðô ðô ðô �4�<ñr8   c
           	      ó    € V P                   \        P                  8X  d    V P                  \        P                  4      p \        V VVVVVV	4      # rG   )rd   r\   rè  r¨  r<  rÒ  )
rÁ  rõ   r}  rÔ  rÕ  rÖ  rÂ  rÃ  rÄ  rZ  s
   &&&&&&&&&&r6   Ú2meta__scaled_dot_product_flash_attention_quantizedrØ  »  sJ   € ð ‡{�{”e×)Ñ)Ô)Ø—‘œŸ™Ó(ˆä3ØØØØØØØóð r8   c                óJ   € V ^8„  d   QhR\         R\        \        R3,          /# )r@   rÁ  Ú	res_shape.)r   rm   rÁ   )rB   s   "r6   rC   rC   Ö  s$   € ÷ ñ Üðä”S˜#�X�ñr8   c                 ób  a € \        S P                  4      V8X  d   \        P                  ! S 4      pV# \	        . ROV 3R lRR7      p^ .\        V4      ,          p^p\        V4       F  pWTV&   WQV,          ,          pK  	  \        P                  ! WS P                  S P                  R7      pV# )r   c                 ó2   <€ SP                  4       V ,          # rG   rû  )ÚidxrÁ  s   &€r6   rk   Ú,alloc_with_matching_layout.<locals>.<lambda>Þ  s   ø€ ¨%¯,©,«.¸Ö*=r8   Trô   rÞ  )r   r1   r@   rá  )
rm   r¢   r\   r§   r  rø   ÚreversedrÌ  rd   r‹   )rÁ  rÚ  r_  Ú	dim_orderr#  rû   rÝ  s   f&     r6   Úalloc_with_matching_layoutrá  Ö  s¢   ø€ ô ˆU�[‰[Ó˜YÔ&Ü×Ò˜uÓ%ˆð €Jô ÚÔ=Àtô
ˆ	ð �#œ˜I›Õ&ˆØˆÜ˜IÖ&ˆCØ!�C‰LØ •nÕ$ŠFñ 'ô ×!Ò!Ø e§k¡k¸%¿,¹,ô
ˆð €Jr8   c                ó    € V ^8„  d   QhR\         R\         R\         R\         R,          R\        R\        R\        R	\        R
\        R,          /	# )r@   rÁ  rõ   r}  Ú	attn_biasNÚcompute_log_sumexprÂ  rÃ  rÄ  rZ  ©r   rÂ   r`   )rB   s   "r6   rC   rC   í  sj   € ÷ (ñ (Üð(ä	ð(ô ð(ô ˜�}ð	(ô
 ð(ô ð(ô ð(ô ð(ô �4�<ñ(r8   c	           	      óä  € V P                  ^ 4      p	V P                  ^4      p
V P                  ^4      pVP                  ^4      pVP                  R4      pWšW½3p\        W4      p\        P                  ! WšV^3\        P                  V P
                  R7      p\        P                  ! R\        P                  RR7      p\        P                  ! R\        P                  RR7      pVVRRVVVVR3	# )r   rÞ  r‰   Nr÷   r2   )rÒ   rá  r\   r”   r`   r‹   rž   )rÁ  rõ   r}  rã  rä  rÂ  rÃ  rÄ  rZ  rm  r!  ÚS_QÚS_KVÚD_VrÚ  r_  Ú
logsum_exprÑ  ro  s   &&&&&&&&&          r6   Ú(meta__scaled_dot_product_cudnn_attentionrë  ì  sÓ   € ð 	�
‰
�1‹€AØ�
‰
�1‹€AØ
�*‰*�Q‹-€CØ�8‰8�A‹;€DØ
�*‰*�R‹.€Cà�sÐ €IÜ
$ UÓ
6€Cä—’Ø	
ˆs�AˆÜ�k‰kØ�|‰|ô€Jô �;Š;�r¤§¡°FÔ;€DÜ�[Š[˜¤5§:¡:°fÔ=€Fð 	ØØØØØØØØð
ð 
r8   c                ó”   € V ^8„  d   QhR\         R\         R\         R\         R,          R\        R\        R\        R	\        R,          /# )
r@   rÁ  rõ   r}  rã  NrÂ  rÃ  rÄ  rZ  rÅ  )rB   s   "r6   rC   rC     s`   € ÷ 0ñ 0Üð0ä	ð0ô ð0ô ˜�}ð	0ô
 ð0ô ð0ô ð0ô �4�<ñ0r8   c           	      ó‚  € ^ ^ ^ r©pV P                  4       ^8X  d   V P                  4       w  r‰r«M6V P                  4       ^8X  d   V P                  4       w  ršp^pM\        R4      hVP                  R4      pVP                  R4      p\        V P                  4      pWÞR&   \        V \        V4      4      p\        P                  ! W‰V
3\        P                  V P                  R7      p\        P                  ! R\        P                  RR7      p\        P                  ! R\        P                  RR7      pVVRRV
VVVR3	# )r   zquery must be 3D or 4DrÞ  r‰   NrO  r÷   r2   )rŽ   rÒ   r§  rù   r¢   rá  rm   r\   r”   r`   r‹   rž   )rÁ  rõ   r}  rã  rÂ  rÃ  rÄ  rZ  rm  ÚH_Qrç  rX   rè  ré  r×   r_  rê  rÑ  ro  s   &&&&&&&&           r6   Ú5meta__scaled_dot_product_fused_attention_overrideablerï    s  € ð �Q˜ˆC€AØ‡y�yƒ{�aÔØŸ™›‰ˆ��QØ	�‰‹˜Ô	Ø—j‘j“l‰ˆ�!Ø‰äÐ3Ó4Ð4Ø�8‰8�B‹<€DØ
�*‰*�R‹.€Cô �U—[‘[Ó!€IØˆb�MÜ
$ U¬E°)Ó,<Ó
=€Cä—’Ø	
�ˆÜ�k‰kØ�|‰|ô€Jô �;Š;�r¤§¡°FÔ;€DÜ�[Š[˜¤5§:¡:°fÔ=€Fð 	ØØØØØØØØð
ð 
r8   rZ  c          #      ó  € V ^8„  d   QhR\         R\         R\         R\         R\         R\        \        ,          R\         R\         R	\         R
\         R\        R\        R\        R\        R\         R\         R\        R,          /# )r@   r¡  rÁ  rõ   r}  rã  Úgrad_input_maskr  rÍ  Ú	cum_seq_qÚ	cum_seq_kÚmax_qÚmax_krÂ  rÃ  Úphilox_seedÚphilox_offsetrZ  N)r   rù   rÂ   rÁ   r`   )rB   s   "r6   rC   rC   M  sº   € ÷ 2ñ 2Üð2äð2ô 
ð2ô ð	2ô
 ð2ô œ$•Zð2ô 
ð2ô ð2ô ð2ô ð2ô ð2ô ð2ô ð2ô ð2ô ð2ô  ð!2ô$ �4�<ñ%2r8   c                óÊ   € \         P                  ! V4      p\         P                  ! V4      p\         P                  ! V4      pVe   \         P                  ! V4      MR pVVVV3# rG   r¦   )r¡  rÁ  rõ   r}  rã  rñ  r  rÍ  rò  ró  rô  rõ  rÂ  rÃ  rö  r÷  rZ  Úgrad_qÚgrad_krö  Úgrad_attn_biass   &&&&&&&&&&&&&&&&$    r6   Ú>meta__scaled_dot_product_fused_attention_overrideable_backwardrü  L  sZ   € ô* ×Ò˜eÓ$€FÜ×Ò˜cÓ"€FÜ×Ò˜eÓ$€FØ4=Ò4I”U×%Ò% iÔ0Èt€NØ�6˜6 >Ð1Ð1r8   c                óÚ   € V ^8„  d   Qh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÷  rZ  N©r   rÁ   r`   rÂ   )rB   s   "r6   rC   rC   m  s¢   € ÷ "ñ "Üð"äð"ô 
ð"ô ð	"ô
 
ð"ô ð"ô ð"ô ð"ô ð"ô ð"ô ð"ô ð"ô ð"ô ð"ô �4�<ñ"r8   c                 ó�   € \         P                  ! V4      p\         P                  ! V4      p\         P                  ! V4      pVVV3# rG   r¦   )r¡  rÁ  rõ   r}  r  rÍ  rò  ró  rô  rõ  rÂ  rÃ  rö  r÷  rZ  rù  rú  rö  s   &&&&&&&&&&&&&&&   r6   Ú'meta__scaled_dot_product_flash_backwardr 	  h  sA   € ô, ×Ò˜eÓ$€FÜ×Ò˜cÓ"€FÜ×Ò˜eÓ$€FØ�6˜6Ð!Ð!r8   c                óˆ   € V ^8„  d   QhR\         R\         R\         R\        R\        R\         R,          R\        R,          /# )	r@   rÁ  rõ   r}  rÂ  rÃ  Ú	attn_maskNrZ  rÅ  )rB   s   "r6   rC   rC   ‰  sV   € ÷ ñ Üðä	ðô ðô ð	ô
 ðô ˜�}ðô �4�<ñr8   c                 óD  € V P                  ^ 4      pV P                  ^4      pV P                  ^4      p	\        P                  ! V 4      p
\        P                  ! VV	V3\        P
                  ! V P                  4      V P                  R7      P                  ^^4      pV
V3# )r   rÞ  )	rÒ   r\   r§   r”   rU   Úget_computation_dtyperd   r‹   rž  )rÁ  rõ   r}  rÂ  rÃ  r	  rZ  r  r¯   rÉ  rÌ  rÍ  s   &&&&&&&     r6   Ú0meta__scaled_dot_product_flash_attention_for_cpur	  „  s•   € ð —‘˜A“€JØ—
‘
˜1“€IØŸ™ A›Ðä× Ò  Ó'€IÜ—’àØØð	
ô
 ×)Ò)¨%¯+©+Ó6Ø�|‰|ô÷ �i��1ƒoð ð 	Øðð r8   c                ó¬   € V ^8„  d   QhR\         R\         R\         R\         R\         R\         R\        R\        R	\         R
,          R\        R
,          /
# )r@   r¡  rÁ  rõ   r}  r  rÍ  rÂ  rÃ  r	  NrZ  rÅ  )rB   s   "r6   rC   rC   «  st   € ÷ !"ñ !"Üð!"äð!"ô 
ð!"ô ð	!"ô
 
ð!"ô ð!"ô ð!"ô ð!"ô ˜�}ð!"ô �4�<ñ!"r8   c
                 ór  € \         P                  ! VP                  4       RVP                  VP                  R7      p
\         P                  ! VP                  4       RVP                  VP                  R7      p\         P                  ! VP                  4       RVP                  VP                  R7      pW«V3# )r   rÞ  ©r   r@   r1   rá  )r\   Úempty_permutedrÒ   rd   r‹   )r¡  rÁ  rõ   r}  r  rÍ  rÂ  rÃ  r	  rZ  rù  rú  rö  s   &&&&&&&&&&   r6   Ú9meta__scaled_dot_product_flash_attention_for_cpu_backwardr
	  ¦  s“   € ô& ×!Ò!Ø�
‰
‹ØØ�k‰kØ�|‰|ô	€Fô ×!Ò!Ø�‰‹
ØØ�i‰iØ�z‰zô	€Fô ×!Ò!Ø�
‰
‹ØØ�k‰kØ�|‰|ô	€Fð ˜6Ð!Ð!r8   c                óÜ   € V ^8„  d   QhR\         R\         R\         R\         R,          R\        R\        R\         R,          R	\        R,          R
\        R\        \         \         3,          /
# )r@   rÁ  rõ   r}  r	  NrÂ  rÃ  Údropout_maskrZ  Ú
enable_gqarA   )r   r`   rÂ   rm   )rB   s   "r6   rC   rC   Ð  s�   € ÷ -ñ -Üð-ä	ð-ô ð-ô ˜�}ð	-ô
 ð-ô ð-ô ˜4•-ð-ô �4�<ð-ô ð-ô Œ6”6ˆ>Õñ-r8   c	                 óÂ   a aaaaaaa€ R  p	V	! S 4      w  ooV	! V4      w  r«V	! V4      w  rËSP                   w  ooopVP                   w   pooVVVVVV VV3R lpV! 4       # )c                 óŒ  € V P                  4       ^8X  d   V P                  ^ 4      R3# V P                  4       ^8”  d…   ^p\        V P                  4       ^,
          4       F  pWP                  V,          ,          pK  	  V P	                  WP                  R4      V P                  R4      V P                  R4      4      R3# V R3# )rá  TFrK  rO  r÷   )rŽ   rW  rú   r¢   ÚviewrÒ   )r;   r  r  s   &  r6   Ú	ensure_4dÚBmeta__scaled_dot_product_attention_math_for_mps.<locals>.ensure_4dÛ  s–   € Ø�5‰5‹7�aŒ<Ø—;‘;˜q“> 4Ð'Ð'Ø�U‰U‹W�qŒ[ØˆJÜ˜1Ÿ5™5›7 Q�;Ö'�ØŸg™g a�jÕ(’
ñ (à—6‘6˜*§f¡f¨R£j°!·&±&¸³*¸a¿f¹fÀR»jÓIÈ4ÐOÐOà�e�8ˆOr8   c                  ó
  <€ SP                  SSSS34      p SP                  SSSS34      pS
'       dÏ   S	P                  4       ^8X  d&   V P                  ^ 4      p VP                  ^ 4      pW3# \        S	P                  RR 4      \        V P                  R,          4      ,           p\        S	P                  RR 4      \        VP                  R,          4      ,           pV P                  V4      p VP                  V4      pW3# )rá  N:r1   râ  NrK  )r¡   rŽ   Úsqueezerù   r¢   r	  )r  Úattnr×   Ú
attn_shaper  Úmax_seq_lengthÚnum_headÚq_Úq_sizerÁ  Ú
unsqueezedÚvalue_head_sizes       €€€€€€€€r6   Úsdpa_general_mpsÚImeta__scaled_dot_product_attention_math_for_mps.<locals>.sdpa_general_mpsí  sÚ   ø€ Ø�l‰l˜J¨°&¸/ÐJÓKˆØ�|‰|˜Z¨°6¸>ÐJÓKˆßØ�y‰y‹{˜aÔØ—k‘k !“n�Ø—|‘| A“�ð ˆyÐô	 ! §¡¨S¨bÐ!1Ó2´T¸#¿)¹)ÀC½.Ó5IÕI�	Ü! %§+¡+¨c¨rÐ"2Ó3´d¸4¿:¹:Àc½?Ó6KÕK�
Ø—h‘h˜yÓ)�Ø—y‘y Ó,�ØˆyÐr8   ra  )rÁ  rõ   r}  r	  rÂ  rÃ  r	  rZ  r	  r	  Úk_rX   Úv_r	  r  r	  r	  r	  r	  r	  r	  s   f&&&&&&&&     @@@@@@@r6   Ú/meta__scaled_dot_product_attention_math_for_mpsr!	  Ï  sh   ÿ€ ò	ñ ˜uÓ%�N€Bˆ
Ù�c‹N�E€BÙ�eÓ�E€Bà&(§h¡hÑ#€J�˜& !Ø,.¯H©HÑ)€A€qˆ.˜/÷ô ñ  ÓÐr8   c                óˆ   € V ^8„  d   QhR\         R\         R\         R\         R,          R\        R\        R\        R,          /# )	r@   rÁ  rõ   r}  rã  Nrä  rÃ  rZ  rå  )rB   s   "r6   rC   rC     sV   € ÷ ))ñ ))Üð))ä	ð))ô ð))ô ˜�}ð	))ô
 ð))ô ð))ô �4�<ñ))r8   c           	      ó‚  € V P                  ^^4      p VP                  ^^4      pVP                  ^^4      pV P                  ^ 4      pV P                  ^4      p	V P                  R4      p
VP                  R4      p\        P                  ! W‰W«V P                  V P
                  R7      p\        P                  P                  '       d3   \        P                  P                  4       '       d    V'       d   T	M^ pM.V'       d%   \        P                  ! V	^ ,          4      ^ ,          M^ p\        P                  ! WŠV3\        P                  V P
                  R7      pVP                  ^^4      p\        P                  ! R\        P                  RR7      p\        P                  ! R\        P                  RR7      pWÎVV3# )r1   rÞ  r‰   rO  r÷   r2   )rž  rÒ   r\   r”   rd   r‹   r£  r¤  r  r)  rå  rÈ  r`   rž   )rÁ  rõ   r}  rã  rä  rÂ  rÃ  rZ  rm  rl  r¯   ÚKvr_  Úlogsumexp_dimrê  rÑ  ro  s   &&&&&&&&         r6   Ú,meta__scaled_dot_product_efficient_attentionr&	     sB  € ð �O‰O˜A˜qÓ!€EØ
�-‰-˜˜1Ó
€CØ�O‰O˜A˜qÓ!€Eà�
‰
�1‹€AØ�
‰
�1‹€AØ—
‘
˜2“€IØ	�‰�B‹€Bä
�+Š+�a˜I°·±ÀUÇ\Á\Ô
R€Cä‡}�}××ÐœUŸZ™Z×4Ñ4×6Ò6ð	÷ 0™°Q‰ç2DœŸ	š	 ! b¥&Ó)¨BÖ.È!ˆä—’Ø	
�}Ð%Ü�k‰kØ�|‰|ô€Jð �-‰-˜˜1Ó
€Cô �;Š;�r¤§¡°FÔ;€DÜ�[Š[˜¤5§:¡:°fÔ=€Fà˜D &Ð(Ð(r8   c                óæ   € V ^8„  d   QhR\         R\         R\         R\         R\         R,          R\         R\         R	\         R
\         R\        R\        \        ,          R\        R\        R,          /# )r@   r¡  rÁ  rõ   r}  rã  Nr  rÍ  rö  r÷  rÂ  rñ  rÃ  rZ  )r   r`   rù   rÂ   )rB   s   "r6   rC   rC   2  s–   € ÷ 6-ñ 6-Üð6-äð6-ô 
ð6-ô ð	6-ô
 ˜�}ð6-ô 
ð6-ô ð6-ô ð6-ô ð6-ô ð6-ô œ$•Zð6-ô ð6-ô �4�<ñ6-r8   c                 ó�  € VP                  ^ 4      pVP                  ^4      pVP                  ^4      pVP                  ^4      pVP                  ^4      pVP                  ^4      pVP                  ^4      pVP                  ^4      p\        P                  ! WÞVV3RVP                  VP                  R7      p\        P                  ! WßVV3RVP                  VP                  R7      p\        P                  ! VVVV3RVP                  VP                  R7      pRpVe    V
^,          '       d‘   VP                  R4      pV^,          ^ 8X  d   TMV^,           V^,          ,
          p\        VP                  4       4      pVVR&   \        P                  ! VVP                  VP                  R7      pVRRV13,          pVVVV3# )r   rÞ  N.r	  r÷   )rÒ   r\   r		  rd   r‹   rù   r”   )r¡  rÁ  rõ   r}  rã  r  rÍ  rö  r÷  rÂ  rñ  rÃ  rZ  r  Únum_heads_qÚnum_heads_kÚnum_heads_vrô  rÊ  Ú
head_dim_vrõ  rù  rú  rö  Ú	grad_biasÚlastDimÚlastDimAlignedÚ	new_sizess   &&&&&&&&&&&&&               r6   Ú+meta__scaled_dot_product_efficient_backwardr1	  -  s”  € ð( —‘˜A“€JØ—*‘*˜Q“-€KØ—(‘(˜1“+€KØ—*‘*˜Q“-€KØ�J‰J�q‹M€EØ�z‰z˜!‹}€HØ—‘˜A“€Jà�H‰H�Q‹K€Eä×!Ò!Ø	 %¨Ð2ØØ�k‰kØ�|‰|ô	€Fô ×!Ò!Ø	 %¨Ð2ØØ�i‰iØ�z‰zô	€Fô ×!Ò!Ø	�[ %¨Ð4ØØ�k‰kØ�|‰|ô	€Fð €IØÒ °×!3Ô!3Ø—.‘. Ó$ˆØ$+¨b¥L°AÔ$5™¸7ÀR½<È'ÐTVÍ,Õ;VˆÜ˜Ÿ™Ó)Ó*ˆ	Ø&ˆ	�"‰Ü—K’KØ˜YŸ_™_°Y×5EÑ5Eô
ˆ	ð ˜c 8 G 8˜mÕ,ˆ	à�6˜6 9Ð,Ð,r8   c          !      óæ   € V ^8„  d   Qh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Ã  rZ  Nrþ  )rB   s   "r6   rC   rC   p  s¬   € ÷ "ñ "Üð"äð"ô 
ð"ô ð	"ô
 
ð"ô ð"ô ð"ô ð"ô ð"ô ð"ô ð"ô ð"ô ð"ô ð"ô ð"ô  �4�<ñ!"r8   c                 ó�   € \         P                  ! V4      p\         P                  ! V4      p\         P                  ! V4      pVVV3# rG   r¦   )r¡  rÁ  rõ   r}  r  rÍ  rö  r÷  rã  rò  ró  rô  rõ  rÂ  rÃ  rZ  rù  rú  rö  s   &&&&&&&&&&&&&&&&   r6   Ú'meta__scaled_dot_product_cudnn_backwardr4	  k  sA   € ô. ×Ò˜eÓ$€FÜ×Ò˜cÓ"€FÜ×Ò˜eÓ$€FØ�6˜6Ð!Ð!r8   c          #      ób  € V ^8„  d   Qh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ò  Nró  rô  rõ  rÂ  rÃ  rÄ  rZ  Úwindow_size_leftÚwindow_size_rightÚ	seqused_kÚalibi_slopesÚblock_tablerf  rþ  )rB   s   "r6   rC   rC   �  sé   € ÷ Jñ JÜðJä	ðJô ðJô ˜�}ð	Jô
 ˜�}ðJô ðJô ðJô ðJô ðJô ðJô �4�<ðJô ˜D•jðJô ˜T•zðJô ˜�}ðJô ˜4•-ðJô  ˜$•ð!Jô" �d•
ñ#Jr8   c                 ó<  € Vf   V P                  ^ 4      MVP                  4       ^,
          pVf   V P                  ^4      MTpVf   VP                  ^4      MTpV P                  R4      pV P                  R4      p\        P                  ! V 4      pVf6   \        P                  ! VVV3\        P
                  V P                  R7      pMDV P                  ^ 4      p\        P                  ! VV3\        P
                  V P                  R7      pV	'       dn   V^@8”  d   ^€MRp\        P                  ! VV,          4      pV^€8:  d   ^€pM	VR8:  d   Rp\        P                  ! VVVV3V P                  V P                  R7      pM-\        P                  ! ^ V P                  V P                  R7      pR R pp\        P                  P                  '       dt   \        P                  P                  4       '       dP   \        P                  ! R\        P                  RR7      p\        P                  ! R\        P                  RR7      pMN\        P                  ! ^\        P                  RR7      p\        P                  ! R\        P                  RR7      pVVVVV3# )NrÞ  rÇ  r‰   rO  r÷   r2   )rÒ   r    r\   r§   r”   r`   r‹   rå  rÈ  rd   r£  r¤  r  r)  rž   rg  )rÁ  rõ   r}  rò  ró  rô  rõ  rÂ  rÃ  rÄ  rZ  r6	  r7	  r8	  r9	  r:	  rf  r  rÉ  rË  r¯   rÊ  rÌ  rÍ  Útotal_qrÎ  rÏ  rÐ  rÑ  ro  s   &&&&&&&&&&&&&&&&&             r6   Úmeta__flash_attention_forwardr=	  ˆ  sû  € ð8 #,Ò"3�—‘˜A”¸¿¹Ó9JÈQÕ9N€JØ*3Ò*;˜Ÿ™ AœÀÐØ(1Ò(9˜Ÿ™ !œ¸uÐØ—
‘
˜2“€IØ�z‰z˜"‹~€Hô × Ò  Ó'€IØÒÜ—K’KØ˜Ð$6Ð7Ü—+‘+Ø—<‘<ô
‰	ð —*‘*˜Q“-ˆÜ—K’KØ˜Ð ¬¯©¸E¿L¹Lô
ˆ	÷ Ø%¨œ]‘c°ˆÜ—y’yÐ!3°kÕ!AÓBˆØ Ô$Ø‰LØ 3Ô&ØˆLÜ—[’[Ø˜Ð$6¸ÐEØ—+‘+Ø—<‘<ô
‰
ô —[’[ ¨%¯+©+¸e¿l¹lÔKˆ
ð ˜ˆ&€DÜ‡}�}××ÐœUŸZ™Z×4Ñ4×6Ò6ä�{Š{˜2¤U§Z¡Z¸Ô?ˆÜ—’˜R¤u§z¡z¸&ÔA‰ä�{Š{˜A¤e§l¡l¸6ÔBˆÜ—’˜R¤u§|¡|¸FÔCˆàØØØØðð r8   c          %      ón  € V ^8„  d   Qh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ò  Nró  rô  rõ  rÂ  rÃ  rÄ  rZ  r6	  r7	  r8	  r9	  r:	  rf  rþ  )rB   s   "r6   rC   rC   Û  sà   € ÷ &ñ &Ü	ð&äð&ô 
ð&ô ð	&ô
 ˜�}ð&ô ˜�}ð&ô ð&ô ð&ô ð&ô ð&ô ð&ô �4�<ð&ô ˜D•jð&ô ˜T•zð&ô ˜�}ð&ô  ˜4•-ð!&ô" ˜$•ð#&ô$ �d•
ñ%&r8   c                 óF   € \        VVVVVVVVV	V
VVVVVV4      w  pp  pV# rG   )r=	  )r  rÁ  rõ   r}  rò  ró  rô  rõ  rÂ  rÃ  rÄ  rZ  r6	  r7	  r8	  r9	  r:	  rf  rX   rÍ  s   &&&&&&&&&&&&&&&&&&  r6   Ú0meta__flash_attention_forward_no_dropout_inplacer@	  Ú  sQ   € ô* :ØØØØØØØØØØØØØØØØó!Ñ€A€y�!�Q˜ð$ Ðr8   c          %      ó|  € V ^8„  d   Qh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ò  Nró  rô  rõ  rÂ  rÃ  rÄ  rÔ  rÕ  rÖ  rZ  r6	  r7	  r8	  r9	  rþ  )rB   s   "r6   rC   rC     sä   € ÷ 'ñ 'Üð'ä	ð'ô ð'ô ˜�}ð	'ô
 ˜�}ð'ô ð'ô ð'ô ð'ô ð'ô ð'ô ˜�}ð'ô ˜�}ð'ô ˜�}ð'ô �4�<ð'ô ˜D•jð'ô  ˜T•zð!'ô" ˜�}ð#'ô$ ˜4•-ñ%'r8   c                 ó°   € V P                   \        P                  8X  d    V P                  \        P                  4      p \        V VVVVVVVVV	VVVVV4      # rG   )rd   r\   rè  r¨  r<  r=	  )rÁ  rõ   r}  rò  ró  rô  rõ  rÂ  rÃ  rÄ  rÔ  rÕ  rÖ  rZ  r6	  r7	  r8	  r9	  s   &&&&&&&&&&&&&&&&&&r6   Ú'meta__flash_attention_forward_quantizedrC	    sb   € ð* ‡{�{”e×)Ñ)Ô)Ø—‘œŸ™Ó(ˆä(ØØØØØØØØØØØØØØØóð r8   c          #      ó  € V ^8„  d   Qh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÷  rZ  Nr6	  r7	  rþ  )rB   s   "r6   rC   rC   4  s¾   € ÷ ,ñ ,Üð,äð,ô 
ð,ô ð	,ô
 
ð,ô ð,ô ð,ô ð,ô ð,ô ð,ô ð,ô ð,ô ð,ô ð,ô �4�<ð,ô  ˜D•jð!,ô" ˜T•zñ#,r8   c                 ó�   € \         P                  ! V4      p\         P                  ! V4      p\         P                  ! V4      pVVV3# rG   r¦   )r¡  rÁ  rõ   r}  r  rÍ  rò  ró  rô  rõ  rÂ  rÃ  rö  r÷  rZ  r6	  r7	  Ú
grad_queryÚgrad_keyÚ
grad_values   &&&&&&&&&&&&&&&&&   r6   Úmeta__flash_attention_backwardrI	  /  sA   € ô0 ×!Ò! %Ó(€JÜ×Ò Ó$€HÜ×!Ò! %Ó(€Jà�x Ð+Ð+r8   c                óJ  € V ^8„  d   Qh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¼  NÚcu_seqlens_qÚcu_seqlens_kÚmax_seqlen_qrÏ  rÂ  Úcustom_mask_typerä  rZ  Úcausal_diagonalÚseqlen_kÚwindow_sizerþ  )rB   s   "r6   rC   rC   S  sÓ   € ÷ 6Sñ 6SÜð6Sä	ð6Sô ð6Sô �4�-ð	6Sô
 ˜4•-ð6Sô ˜4•-ð6Sô ˜•*ð6Sô ˜•*ð6Sô ð6Sô ð6Sô ð6Sô �4�<ð6Sô ˜d•]ð6Sô �t�mð6Sô �t•ñ6Sr8   c           	      óH  € V P                  ^ 4      pV P                  ^4      pVP                  ^4      pV P                  R4      pVP                  R4      p\        P                  ! VVVVV P                  V P                  R7      pVe   VP                  ^ 4      ^,
          MTpTpVe   Vf   \        R4      hTpVe   TMTp\        P                  P                  e   V
'       d   TM^ pM.V
'       d%   \        P                  ! V^ ,          4      ^ ,          M^ p\        P                  ! VVV3\        P                  V P                  R7      p\        P                  ! R\        P                  RR7      p\        P                  ! R\        P                  RR7      pVVVVVV3# )r   rÞ  z;max_seqlen_q must not be None when cu_seqlens_q is providedr‰   rO  r÷   r2   )rÒ   r\   r”   rd   r‹   r’   r£  r¤  rå  rÈ  r`   rž   )rÁ  rõ   r}  r¼  rK	  rL	  rM	  rÏ  rÂ  rN	  rä  rZ  rO	  rP	  rQ	  rm  rl  rl  r¯   r$	  r_  Úlogsumexp_batch_dimÚactual_max_seqlen_qÚactual_max_seqlen_kr%	  rê  rÑ  ro  s   &&&&&&&&&&&&&&&             r6   Ú!meta__efficient_attention_forwardrV	  N  sf  € ð, 	�
‰
�1‹€AØ�
‰
�1‹€AØ�‰�‹€AØ—
‘
˜2“€IØ	�‰�B‹€Bä
�+Š+�a˜˜I r°·±ÀUÇ\Á\Ô
R€Cà7CÒ7O˜,×+Ñ+¨AÓ.°Ö2ÐVWÐØÐØÒØÒÜ ØMóð ð +ÐØ*6Ò*B™,ÈÐä‡}�}×ÑÒ$÷ 0BÑ+Àq‰÷ 9KŒD�IŠIÐ)¨BÕ.Ó/°"Ö4ÐPQð 	ô —’Ø	˜i¨Ð7Ü�k‰kØ�|‰|ô€Jô �;Š;�r¤§¡°FÔ;€DÜ�[Š[˜¤5§:¡:°fÔ=€Fà�
˜D &Ð*=Ð?RÐRÐRr8   c          $      ó^  € V ^8„  d   QhR\         R\         R\         R\         R\         R,          R\         R,          R\         R,          R	\        P                  R
\        P                  R\         R\        R\         R\         R\        R\
        R\        R,          R\        R,          R\
        /# )r@   r¡  rÁ  rõ   r}  r¼  NrK	  rL	  rM	  rÏ  rÍ  rÂ  rö  r÷  rN	  Úbias_requires_gradrZ  Únum_splits_keyÚshared_storage_dqdkdv)r   r\   ÚSymIntr`   rÁ   rÂ   )rB   s   "r6   rC   rC   ‘  sØ   € ÷ 87ñ 87Üð87äð87ô 
ð87ô ð	87ô
 �4�-ð87ô ˜4•-ð87ô ˜4•-ð87ô —,‘,ð87ô —,‘,ð87ô ð87ô ð87ô ð87ô ð87ô ð87ô ð87ô  �4�<ð!87ô" ˜$•Jð#87ô$  ñ%87r8   c                 ó¸  € V'       EdT   \         P                  ! VP                  ^,          VP                  ^,          8H  R 4       \         P                  ! VP                  ^,          VP                  ^,          8H  R 4       \         P                  ! VP                  ^,          VP                  ^,          8H  R 4       \         P                  ! . VP                  ^ R O^NVP                  R,          NVP                  R	,          N5VP                  VP
                  R7      pVP                  R
^ 4      pVP                  R
^4      pVP                  R
^4      pMB\         P                  ! V4      p\         P                  ! V4      p\         P                  ! V4      pVe’   VP                  R	4      pV^,          ^ 8X  d   TMV^,           V^,          ,
          p\        VP                  4       4      pVVR	&   \         P                  ! VVP                  VP
                  R7      pVRRV13,          pM"\         P                  ! RVP
                  R7      pVVVV3# )r1   c                  ó   € R # )z,seqlen must match for `shared_storage_dqdkdvr2   r2   r8   r6   rk   Ú4meta__efficient_attention_backward.<locals>.<lambda>¨  s   € ÑBr8   c                  ó   € R # )z3embedding dim must match for `shared_storage_dqdkdvr2   r2   r8   r6   rk   r^	  ¬  ó   € ÑIr8   c                  ó   € R # )z/num heads must match for `shared_storage_dqdkdvr2   r2   r8   r6   rk   r^	  °  s   € ÑEr8   rÞ  N.r…  rO  r÷   rK  r2   )
r\   rn   r¢   r”   rd   r‹   rù  r§   rÒ   rù   )r¡  rÁ  rõ   r}  r¼  rK	  rL	  rM	  rÏ  rÍ  rÂ  rö  r÷  rN	  rX	  rZ  rY	  rZ	  ÚchunkrF	  rG	  rH	  r.	  r/	  r0	  r-	  s   &&&&&&&&&&&&&&&&&&        r6   Ú"meta__efficient_attention_backwardrc	  Œ  sÐ  € ÷2 ÐÜ�ŠØ�K‰K˜�N˜cŸi™i¨�lÑ*ÙBô	
ô 	�ŠØ�K‰K˜�N˜cŸi™i¨�lÑ*ÙIô	
ô 	�ŠØ�K‰K˜�N˜cŸi™i¨�lÑ*ÙEô	
ô —’ØEˆe�k‰k˜!˜BÐÐE ÐE E§K¡K°¥OÐE°U·[±[Àµ_ÑEØ—+‘+Ø—<‘<ô
ˆð
 —\‘\ " aÓ(ˆ
Ø—<‘<  AÓ&ˆØ—\‘\ " aÓ(‰
ä×%Ò% eÓ,ˆ
Ü×#Ò# CÓ(ˆÜ×%Ò% eÓ,ˆ
àÒØ—)‘)˜B“-ˆØ$+¨b¥L°AÔ$5™¸7ÀR½<È'ÐTVÍ,Õ;VˆÜ˜Ÿ™›Ó%ˆ	Ø&ˆ	�"‰Ü—K’K 	°·±ÀDÇKÁKÔPˆ	Ø˜c 8 G 8˜mÕ,‰	ä—K’K ¨5¯<©<Ô8ˆ	à�x ¨YÐ6Ð6r8   c                ó.  € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\         P                  R\         P                  R,          R\         P                  R,          R\         P                  R,          R	\        /# ©
r@   r£   rÍ  Úscale_aÚscale_br¼  NÚscale_resultr¾  Úuse_fast_accum©r\   r   rd   rÂ   )rB   s   "r6   rC   rC   Ì  s—   € ÷ RYñ RYÜ
�,‰,ðRYä
�,‰,ðRYô �\‰\ðRYô �\‰\ð	RYô
 �,‰,˜Õ
ðRYô —,‘, Õ%ðRYô �{‰{˜TÕ!ðRYô ñRYr8   c                 óX  a aaaaaaaa€ R  p\         P                  ! S P                  4       ^8H  ;'       d    SP                  4       ^8H  VV 3R l4       \         P                  ! V! S P                  4      ;'       d    V! SP                  4      VV 3R l4       \	        S 4      R8X  g"   \	        S 4      R8X  g   \	        S 4      R8X  Ed   R p	R p
R p\	        S 4      R8w  Ed
   \         P                  ! V	! S P                  4       4      ;'       g	    V! S 4      V 3R	 l4       \         P                  ! V
! SP                  4       4      ;'       g	    V! S4      V3R
 l4       \         P                  ! S P                  ^4      ^,          ^ 8H  V 3R l4       \         P                  ! SP                  ^ 4      ^,          ^ 8H  ;'       d    SP                  ^4      ^,          ^ 8H  V3R l4       S P                  w  ooSP                  ^4      oSP                  \         P                  8H  ;'       d&    SP                  \         P                  8H  ;'       gC    SP                  \         P                  8H  ;'       d    SP                  \         P                  8H  pSP                  4       ^8X  dp   SP                  4       ^8X  d[   \         P                  ! SP                  \         P                  8H  ;'       d    SP                  \         P                  8H  R 4       EM¹V'       Ed   SP                  \         P                  8X  d   ^pS^,          oM*^ pS P                  \         P                  8X  d
   S^,          o^€p\        SV4      p\	        S 4      R8X  d   VS,          oVS,          oMG\        V^4      ^,          pV\        SV4      ,          V,          oV\        SV4      ,          V,          oSP                  4       S8X  Ed   SP                  4       S8X  dù   \	        S 4      R8X  d›   \         P                  ! SP                  4       ;'       g    SP                  4       P                  4       R 4       \         P                  ! SP                  4       ;'       g    SP                  4       P                  4       R 4       EM\         P                  ! SP                  4       R 4       \         P                  ! SP                  4       R 4       EMÀ\         P                  ! RVVVV3R l4       EM \         P                  ! SP                  \         P                  8H  ;'       d    SP                  \         P                  8H  R 4       \         P                  ! SP                  4       ^8H  ;'       d    SP                  4       ^8H  VV3R l4       SP                  ^ 4      S8X  dƒ   SP                  ^4      ^8X  dm   SP                  ^ 4      ^8X  dW   SP                  ^4      S8X  dA   \         P                  ! SP                  4       ;'       d    SP                  4       R 4       EMhSP                  ^ 4      S8X  d\   SP                  ^4      SP                  ^ 4      u;8X  d   \        S^€4      8X  d%   M M!SP                  ^4      \        S^€4      8X  d   M÷SP                  ^ 4      S8X  dR   SP                  ^4      SP                  ^ 4      u;8X  d   \        S^€4      8X  d   M MSP                  ^4      S8X  d   M�SP                  ^ 4      \        S^€4      8X  dR   SP                  ^4      SP                  ^ 4      u;8X  d   \        S^€4      8X  d   M MSP                  ^4      S8X  d   M\         P                  ! RVVVVV3R l4       Ve   TMS P                  p\         P                   ! S P                  ^ 4      SP                  ^4      VS P"                  R7      # )c                 ó¢   € V \         P                  \         P                  \         P                  \         P                  \         P
                  39   # rG   )r\   rè  Úfloat8_e5m2Úfloat8_e4m3fnuzÚfloat8_e5m2fnuzÚfloat4_e2m1fn_x2r™   s   &r6   Úis_fp8_or_fp4_typeÚ2_check_scaled_mm_sizes.<locals>.is_fp8_or_fp4_typeÖ  sA   € ØÜ×ÑÜ×ÑÜ×!Ñ!Ü×!Ñ!Ü×"Ñ"ð
ñ 
ð 	
r8   c                  óL   <€ R SP                  4        RS P                  4        2# ©z%Inputs must be 2D but got self.dim()=z and mat2.dim()=r4  ©rÍ  r£   s   €€r6   rk   Ú(_check_scaled_mm_sizes.<locals>.<lambda>á  ó%   ø€ Ð7¸¿¹»
°|ÐCSÐTX×T\ÑT\ÓT^ÐS_Ñ`r8   c                  ó<   <€ R SP                    RS P                    2# )z?Expected both inputs to be fp8 or fp4 types but got self.dtype=z and mat2.dtype=r™   ru	  s   €€r6   rk   rv	  å  s$   ø€ ÐQÐRV×R\ÑR\ÐQ]Ð]mÐnr×nxÑnxÐmyÑzr8   r  r7  r  c                 óP   € V ^ ,          V ^,          8„  ;'       d    V ^,          ^8H  # rû  r2   rû  s   &r6   Úis_row_majorÚ,_check_scaled_mm_sizes.<locals>.is_row_majorî  s%   € Ø˜!•9˜v a�yÑ(×;Ð;¨V°A­Y¸!©^Ð;r8   c                 óB   € V ^ ,          ^8H  ;'       d    V ^,          ^8„  # rû  r2   rû  s   &r6   Úis_col_majorÚ,_check_scaled_mm_sizes.<locals>.is_col_majorñ  s    € Ø˜!•9 ‘>×3Ð3 f¨Q¥i°!¡mÐ3r8   c                 ób   € V P                  ^ 4      ^ 8H  ;'       g    V P                  ^4      ^ 8H  # rû  rÑ   )Ú	tensor_2ds   &r6   Úhas_zero_dimÚ,_check_scaled_mm_sizes.<locals>.has_zero_dimô  s,   € Ø—>‘> !Ó$¨Ñ)×CÐC¨Y¯^©^¸AÓ->À!Ñ-CÐCr8   c                  ó*   <€ R S P                  4        2# )z#self must be row_major, got stride rû  rà   s   €r6   rk   rv	  ú  ó   ø€ Ð=¸d¿k¹k»m¸_ÑMr8   c                  ó*   <€ R S P                  4        2# )z#mat2 must be col_major, got stride rû  ©rÍ  s   €r6   rk   rv	  þ  r„	  r8   c                  ó,   <€ R S P                  ^4       2# )zBExpected self.size(1) to be divisible by 16, but got self.size(1)=rÑ   rà   s   €r6   rk   rv	    s   ø€ Ð\Ð]a×]fÑ]fÐghÓ]iÐ\jÑkr8   c                  ó"   <€ R S P                    2# )z?Expected both dimensions of mat2 to be divisible by 16 but got ra  r†	  s   €r6   rk   rv	    s   ø€ ÐYÐZ^×ZdÑZdÐYeÑfr8   c                  ó   € R # )zNFor tensorwise scaling, both scale_a and scale_b must be float (fp32) tensors.r2   r2   r8   r6   rk   rv	    s   € Ñhr8   c                  ó   € R # )z5scale_a must be contiguous or column-major contiguousr2   r2   r8   r6   rk   rv	  G  ó   € Ñ Wr8   c                  ó   € R # )z5scale_b must be contiguous or column-major contiguousr2   r2   r8   r6   rk   rv	  K  r‹	  r8   c                  ó   € R # )zscale_a must be contiguousr2   r2   r8   r6   rk   rv	  P  ó   € Ñ <r8   c                  ó   € R # )zscale_b must be contiguousr2   r2   r8   r6   rk   rv	  T  rŽ	  r8   Fc            	      óZ   <€ R S  RSP                  4        RS RSP                  4        R2	# )zTInvalid blockwise scaling configuration. For blockwise scaling, scale_a should have ú elements, got z, scale_b should have rø  r|  )Úexpected_a_sizeÚexpected_b_sizerf	  rg	  s   €€€€r6   rk   rv	  Y  sC   ø€ ðFØFUÐEVÐVeÐfm×fsÑfsÓfuÐevð w/Ø/>Ð.?¸ÈwÏ}É}ËÐN_Ð_`ñbr8   c                  ó   € R # )zKFor rowwise scaling, both scale_a and scale_b must be float (fp32) tensors.r2   r2   r8   r6   rk   rv	  b  s   € Ñer8   c                  óP   <€ R S P                  4       : RSP                  4       : 2# )zLFor non-tensorwise scaling, scale tensors must be 2D, but got scale_a.dim()=z and scale_b.dim()=r4  ©rf	  rg	  s   €€r6   rk   rv	  g  s*   ø€ ÐgÐY`×YdÑYdÓYfÑXhÐh|Ðnu×nyÑnyÓn{Ñm}Ñ~r8   c                  ó   € R # )z@Both scale_a and scale_b must be contiguous for rowwise scaling.r2   r2   r8   r6   rk   rv	  s  s   € Ñ^r8   c                  ó¾  <€ R S RS RS R\        S ^€4       R2	R\        S ^€4       R\        S^€4       RS R\        S ^€4       R2	,           R\        S ^€4       RS R\        S^€4       R\        S ^€4       R2	,           R\        S ^€4       RS RSP                  ^ 4       RSP                  ^4       R	SP                  ^ 4       RSP                  ^4       R
2,           # )z}Invalid scaling configuration. For tensorwise scaling, both scales should be scalar. For rowwise scaling, scale_a should be (z, 1), scale_b should be (1, z>). For (BlockWise1x128, BlockWise128x128), scale_a should be (r�   z), zscale_b should be (z<). For (BlockWise1x128, BlockWise1x128), scale_a should be (z>). For (BlockWise128x128, BlockWise1x128), scale_a should be (z). Got scale_a.size()=(z) and scale_b.size()=(r‚   )r7   rÒ   )Ú_krê  rH  rf	  rg	  s   €€€€€r6   rk   rv	  Ž  sG  ø€ ðCàCDÀ#ÐEaÐbcÐadð eVØVWÐUXÐXZÔ[cÐdfÐhkÓ[lÐZmÐmpðrð 0´¸¸SÓ0AÐ/BÀ"ÄXÈaÐQTÓEUÐDVð WTØTUÐSVÐVXÔYaÐbdÐfiÓYjÐXkÐknðpõ	pð 0´¸¸SÓ0AÐ/BÀ"ÀQÀCð HVÜV^Ð_`ÐbeÓVfÐUgÐgiÔjrÐsuÐwzÓj{Ði|Ð|ðAõAð 0´¸¸SÓ0AÐ/BÀ"ÀQÀCð H/Ø/6¯|©|¸A«Ð.?¸rÀ'Ç,Á,ÈqÃ/ÐARð S/Ø/6¯|©|¸A«Ð.?¸rÀ'Ç,Á,ÈqÃ/ÐARÐRSðUö
Ur8   rÞ  )r\   rn   rŽ   rd   r&  rû   rÒ   r¢   Úfloat8_e8m0fnurè  r    r=  rp	  r7   re  r_  r”   r‹   )r£   rÍ  rf	  rg	  r¼  rh	  r¾  ri	  rq	  rz	  r}	  r�	  Úis_blockwise_scalingÚblock_size_kÚblock_size_mnÚnum_k_blocksÚpadded_num_k_blocksÚ
_out_dtyper™	  r’	  r“	  rê  rH  s   ffff&&&&          @@@@@r6   Ú_check_scaled_mm_sizesr¡	  Ì  s  ÿø€ ò
ô 
‡L‚LØ�‰‹
�a‰×+Ð+˜DŸH™H›J¨!™OÝ`ôô 
‡L‚LÙ˜4Ÿ:™:Ó&×IÐIÑ+=¸d¿j¹jÓ+IÝzôô 	�DÓ˜VÔ#Ü�tÓ Ô%Ü�tÓ Õ%ò	<ò	4ò	Dô �tÓ Õ%Ü�LŠLÙ˜TŸ[™[›]Ó+×AÐA©|¸DÓ/AÜMôô �LŠLÙ˜TŸ[™[›]Ó+×AÐA©|¸DÓ/AÜMôô �LŠLØ—	‘	˜!“˜rÕ! QÑ&Ükôô �LŠLØ—	‘	˜!“˜rÕ! QÑ&×AÐA¨4¯9©9°Q«<¸"Õ+<ÀÑ+AÜfôð —
‘
‰ˆˆ2Ø�I‰I�a‹Lˆð —‘¤×!5Ñ!5Ñ5÷ :ð :Ø—M‘M¤U×%9Ñ%9Ñ9÷ð ð
 —‘¤×!4Ñ!4Ñ4÷ 9ð 9Ø—M‘M¤U×%8Ñ%8Ñ8ð 	ð �=‰=‹?˜aÔ G§M¡M£O°qÔ$8ä�LŠLØ—‘¤§¡Ñ.×QÐQ°7·=±=ÄEÇMÁMÑ3QÙhö÷ "Ð!ð �}‰}¤× 3Ñ 3Ô3ð  "�Ø˜!•V‘à!�Ø—:‘:¤×!7Ñ!7Ô7Ø˜a��BàˆMä# B¨Ó5ˆLä˜4Ó  EÔ)ð #/°Õ"2�Ø".°Õ"2‘ä&.¨|¸QÓ&?À!Õ&CÐ#ð "¤H¨Q°Ó$>Õ>ÐATÕTð  ð "¤H¨Q°Ó$>Õ>ÐATÕTð  ð
 —‘“ ?Õ2Ø—M‘M“O Ô6ä˜tÓ$¨Ô-Ü—L’LØ×-Ñ-Ó/×NÐN°7·9±9³;×3LÑ3LÓ3NÙWôô —L’LØ×-Ñ-Ó/×NÐN°7·9±9³;×3LÑ3LÓ3NÙWöô
 —L’LØ×-Ñ-Ó/Ù<ôô —L’LØ×-Ñ-Ó/Ù<öô
 —’Ø÷öô �LŠLØ—‘¤§¡Ñ.×QÐQ°7·=±=ÄEÇMÁMÑ3QÙeôô
 �LŠLØ—‘“ Ñ"×9Ð9 w§{¡{£}¸Ñ'9Ý~ôð —‘˜Q“ 1Ô$Ø—L‘L “O qÔ(Ø—L‘L “O qÔ(Ø—L‘L “O qÔ(ô —’Ø×)Ñ)Ó+×GÐG°×0EÑ0EÓ0GÙ^öð
 —‘˜Q“ 1Ô$Ø—L‘L “O w§|¡|°A£ÖK¼(À2ÀsÓ:K×KØ—L‘L “O¤x°°3Ó'7Ô7ð à—‘˜Q“ 1Ô$Ø—L‘L “O w§|¡|°A£ÖK¼(À2ÀsÓ:K×KØ—L‘L “O qÔ(ð à—‘˜Q“¤8¨A¨sÓ#3Ô3Ø—L‘L “O w§|¡|°A£ÖK¼(À2ÀsÓ:K×KØ—L‘L “O qÔ(ð ô —’Ø÷ð ôð" (Ò3‘¸¿¹€JÜ�;Š;�t—y‘y “| T§Y¡Y¨q£\¸ÈDÏKÉKÔXÐXr8   c                ó.  € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\         P                  R\         P                  R,          R\         P                  R,          R\         P                  R,          R	\        /# re	  rj	  )rB   s   "r6   rC   rC   ¢  sƒ   € ÷ ñ Ü
�,‰,ðä
�,‰,ðô �\‰\ðô �\‰\ð	ô
 �,‰,˜Õ
ðô —,‘, Õ%ðô �{‰{˜TÕ!ðô ñr8   c           
      ó   € \        WW#WEWg4      # rG   )r¡	  )r£   rÍ  rf	  rg	  r¼  rh	  r¾  ri	  s   &&&&&&&&r6   Úmeta_scaled_mmr¤	  ¡  s   € ô "Ø�G d¸)óð r8   c                óä  € V ^8„  d   QhR\         P                  R\         P                  R\        \         P                  ,          R\        \        ,          R\        \        ,          R\        \         P                  ,          R\        \        ,          R\        \        ,          R	\         P                  R
,          R\         P                  R
,          R\        \        ,          R
,          R\
        /# )r@   r£   rÍ  rf	  Úscale_recipe_aÚ	swizzle_arg	  Úscale_recipe_bÚ	swizzle_br¼  Nr¾  Úcontraction_dimri	  ©r\   r   rù   rÁ   rd   rÂ   )rB   s   "r6   rC   rC   ²  sÓ   € ÷ *Yñ *YÜ
�,‰,ð*Yä
�,‰,ð*Yô ”%—,‘,Õð*Yô œ•Ið	*Yô
 ”C�yð*Yô ”%—,‘,Õð*Yô œ•Ið*Yô ”C�yð*Yô �,‰,˜Õ
ð*Yô �{‰{˜TÕ!ð*Yô œ#•Y Õ%ð*Yô ñ*Yr8   c                 óö  a aaa
€ \         P                  ! S P                  4       ^8H  ;'       d    SP                  4       ^8H  VV 3R l4       S
'       dN   \         P                  ! S P                  S
^ ,          4      SP                  S
^,          4      8H  V
VV 3R l4       M=\         P                  ! S P                  ^4      SP                  ^ 4      8H  VV 3R l4       \         P                  ! SRJ ;'       g#    SP	                  4       SP                  ^4      8H  VV3R l4       V	e   T	MS P
                  p\         P                  ! S P                  ^ 4      SP                  ^4      VS P                  R7      # )r@   c                  óL   <€ R SP                  4        RS P                  4        2# rt	  r4  ru	  s   €€r6   rk   Ú#meta_scaled_mm_v2.<locals>.<lambda>Ç  rw	  r8   c            	      ód   <€ R SP                    RSP                    RS ^ ,           RS ^,           2# )ú-mat_a and mat_b shapes cannot be multiplied (rÐ   z) with contraction dims mat_a: z	, mat_b: ra  )rª	  rÍ  r£   s   €€€r6   rk   r®	  Ì  s@   ø€ Ø?ÀÇ
Á
¸|È5ÐQU×Q[ÑQ[ÐP\ð ]0Ø0?ÀÕ0BÐ/CÀ9È_Ð]^ÕM_ÐL`ñbr8   c                  ó>   <€ R SP                    RS P                    R2# )r°	  rÐ   r‚   ra  ru	  s   €€r6   rk   r®	  Ô  s"   ø€ ÐCÀDÇJÁJÀ<ÈuÐUY×U_ÑU_ÐT`Ð`aÑbr8   Nc                  óN   <€ R SP                  ^4       RS P                  4        2# )zBias must be size z	 but got )rÒ   r    )r¼  rÍ  s   €€r6   rk   r®	  Ø  s!   ø€ Ð$ T§Y¡Y¨q£\ N°)¸D¿J¹J»L¸>ÑJr8   rÞ  )r\   rn   rŽ   rÒ   r    rd   r”   r‹   )r£   rÍ  rf	  r¦	  r§	  rg	  r¨	  r©	  r¼  r¾  rª	  ri	  r 	  s   ff&&&&&&f&f& r6   Úmeta_scaled_mm_v2r³	  ±  s  û€ ô( 
‡L‚LØ�‰‹
�a‰×+Ð+˜DŸH™H›J¨!™OÝ`ô÷ Ü�ŠØ�I‰I�o aÕ(Ó)¨T¯Y©Y°ÀqÕ7IÓ-JÑJöõ	
ô 	�ŠØ�I‰I�a‹L˜DŸI™I a›LÑ(Ýbô	
ô 
‡L‚LØ�ˆ×4Ð4˜Ÿ
™
›¨¯	©	°!«Ñ4ÝJôð
 (Ò3‘¸¿¹€JÜ�;Š;�t—y‘y “| T§Y¡Y¨q£\¸ÈDÏKÉKÔXÐXr8   c           	      óV   € \        WW#VR R7       V P                  V P                  4      # ©T)r˜  r´  ©r£   rŽ   r›   r­   rñ  rí  s   &&&&&&r6   Úmeta_scatter_reduce_twor·	  ß  s%   € ô �d ¨VÀTÕJØ�>‰>˜$Ÿ*™*Ó%Ð%r8   c           	      ó$   € \        WW#VR R7       V # rµ	  r¸  r¶	  s   &&&&&&r6   Úmeta_scatter_reduce__twor¹	  æ  s   € ä�d ¨VÀTÕJØ€Kr8   c                óŒ  a € \         P                  ! ^ S P                  4       u;8  ;'       d    ^8*  Mu V 3R l4       S P                  4       ^8X  d2   \         P                  ! V\         P                  S P
                  R7      # \         P                  ! S P                  ^ 4      V\         P                  S P
                  R7      # )r   c                  ó*   <€ R S P                  4        2# )zAThe probability distributions dimensions must be 1 or 2, but got r4  rÃ  s   €r6   rk   Ú"meta_multinomial.<locals>.<lambda>ñ  s   ø€ ÐSÐTY×T]ÑT]ÓT_ÐS`Ñar8   rÞ  )r\   rn   rŽ   r”   rž   r‹   rÒ   )r  Únum_samplesÚreplacementr©   s   f&&$r6   Úmeta_multinomialr¿	  ì  s   ø€ ô 
‡L‚LØ	ˆE�I‰I‹K×Ô˜1ÔÜaôð ‡y�yƒ{�aÔÜ�{Š{˜;¬e¯j©jÀÇÁÔNÐNÜ�;Š;Ø�
‰
�1‹�{¬%¯*©*¸U¿\¹\ôð r8   c                 ó,   € ^pV  F  pW,          pK  	  V# r0   r2   )Úvsr  Úvs   &  r6   Úmultiply_integersrÃ	  ú  s   € Ø	€AÛˆØ	�Šñ à€Hr8   c                 ó  a aaa€ \         P                  ! \        S4      S8H  VV3R  l4       S^,           o\         P                  ! \        S 4      S8H  VV 3R l4       \         P                  ! \        ;QJ d#    R S R,           4       F  '       d   K   RM	  RM! R S R,           4       4      ;'       d5    \        ;QJ d    R S 4       F  '       d   K   RM	  RM! R S 4       4      V V3R l4       S R,          w  r4W4.SO5# )	c                  ó&   <€ R S  R\        S4       2# )z%It is expected output_size equals to ú, but got size r—  )Únum_spatial_dimsr—  s   €€r6   rk   Ú'upsample_common_check.<locals>.<lambda>  s   ø€ Ð7Ð8HÐ7IÈÔY\Ð]hÓYiÐXjÑkr8   c                  ó&   <€ R S  R\        S4       2# )z$It is expected input_size equals to rÆ	  r—  )Úexpected_input_dimsrg  s   €€r6   rk   rÈ	  	  s   ø€ Ð6Ð7JÐ6KÈ?Ô[^Ð_iÓ[jÐZkÑlr8   c              3   ó*   "  € T F	  q^ 8„  x € K  	  R# 5i©r   Nr2   ©rz   r0  s   & r6   r|   Ú(upsample_common_check.<locals>.<genexpr>  s   é € Ð*™>�a�ŽE›>ùó   ‚rŽ  FTc              3   ó*   "  € T F	  q^ 8„  x € K  	  R# 5irÌ	  r2   rÍ	  s   & r6   r|   rÎ	    s   é € Ð2NÁ+¸Q°q¶5Ã+ùrÏ	  c                  ó   <€ R S  RS 2# )zDInput and output sizes should be greater than 0, but got input size z and output size r2   )rg  r—  s   €€r6   rk   rÈ	    s   ø€ ð Ø �\Ð!2°;°-ñAr8   :Nr@   N)r\   rn   rø   r‘  )rg  r—  rÇ	  rµ  ÚchannelsrÊ	  s   fff  @r6   Úupsample_common_checkrÓ	    sÂ   û€ Ü	‡L‚LÜˆKÓÐ,Ñ,Ýkôð +¨QÕ.ÐÜ	‡L‚LÜˆJ‹Ð.Ñ.Ýlôô
 
‡L‚Lß‹Ñ*˜: bž>Ó*��ŠÑ*˜: bž>Ó*Ó*×NÐN¯s«sÑ2NÁ+Ó2N¯s¯sªsÑ2NÁ+Ó2NÓ/Nõ	Aôð " "•~Ñ€FØÐ+˜{Ñ+Ð+r8   c                 óN  a € \         P                  ! S P                  4       ^ 8g  ;'       g!    \        S P	                  4       R,          4      V 3R l4       \        S P	                  4       V^R7      pS P                  V4      P                  \        P                  ! S 4      R7      # )r   ºr1   NNc                  ó*   <€ R S P                  4        2# )z>Non-empty 3D data tensor expected but got a tensor with sizes rÑ   rÃ  s   €r6   rk   Ú$upsample_nearest1d.<locals>.<lambda>  ó   ø€ ÐPÐQV×Q[ÑQ[ÓQ]ÐP^Ñ_r8   ©rÇ	  rÚ   ©
r\   rn   r    rÃ	  rÒ   rÓ	  r¡   r¨  rU   r   )r  r—  ÚscalesÚfull_output_sizes   f&& r6   Úupsample_nearest1drÝ	    ó‡   ø€ ô 
‡L‚LØ�‰‹˜Ñ×AÐAÔ/°·
±
³¸RÕ0@ÓAÜ_ôô -Ø�
‰
‹�k°AôÐð �?‰?Ð+Ó,×/Ñ/Ü×1Ò1°%Ó8ð 0ó ð r8   c                 óÞ  a € \         P                  ! S P                  4       ^ 8g  ;'       g!    \        S P	                  4       R,          4      V 3R l4       \        S P	                  4       V^R7      pS P                  V4      p\        P                  ! S 4      pS P                  w  rx pS P                  P                  R8X  d   V^8  d   \         P                  pVP                  VR7      pV# )r   rÕ	  c                  ó*   <€ R S P                  4        2# ©z>Non-empty 4D data tensor expected but got a tensor with sizes rÑ   rÃ  s   €r6   rk   Ú$upsample_nearest2d.<locals>.<lambda>,  rØ	  r8   rÙ	  r  rÚ   )r\   rn   r    rÃ	  rÒ   rÓ	  r¡   rU   r   r¢   r‹   rƒ   rß   Ú
contiguous)	r  r—  Úscales_hÚscales_wrÜ	  r-  rÛ   rX   Ú
n_channelss	   f&&&     r6   Úupsample_nearest2drç	  &  sÅ   ø€ ô 
‡L‚LØ�‰‹˜Ñ×AÐAÔ/°·
±
³¸RÕ0@ÓAÜ_ôô -Ø�
‰
‹�k°AôÐð �_‰_Ð-Ó.€Fô ×/Ò/°Ó6€Mð  Ÿ+™+Ñ€A�1�aØ‡|�|×Ñ˜FÔ" z°A¤~Ü×/Ñ/ˆà×Ñ¨]ÐÓ;€Fà€Mr8   c                óð   € V ^8„  d   QhR\         R\        \        \        P                  ,          ,          R\        \        \        P                  ,          ,          R\
        R,          R\
        R,          /# )r@   rÐ  r—  rg  rä	  Nrå	  )r   r   rÁ   r\   r[	  r`   )rB   s   "r6   rC   rC   F  s^   € ÷ ñ Üðäœ#¤§¡Õ,Õ-ðô œœuŸ|™|Õ+Õ,ðô �d�lð	ô
 �d�lñr8   c                 ól  a aa€ \        W!^R7      o\        P                  ! S P                  ^8H  V 3R l4       \	        ^4       F9  o\        P                  ! S P                  S4      SS,          8H  VV V3R l4       K;  	  S P                  V4      P                  \        P                  ! S 4      R7      # )r@   rÙ	  c                  ó"   <€ R S P                    2# ©zFExpected grad_output to be a tensor of dimension 4 but got: dimension r©  rÃ  s   €r6   rk   Ú-upsample_nearest2d_backward.<locals>.<lambda>R  ó   ø€ ÐXÐYd×YiÑYiÐXjÑkr8   c            
      óL   <€ R S RS S,           RS RSP                  S4       2# )zCExpected grad_output to have the same shape as output; output.size(ú) = z but got grad_output.size(rÑ   ©rÜ	  rÐ  r  s   €€€r6   rk   rì	  W  s9   ø€ ð Ø !˜s $Ð'7¸Õ':Ð&;Ø,¨Q¨C¨t°K×4DÑ4DÀQÓ4GÐ3HñJr8   rÚ   )
rÓ	  r\   rn   rÔ   rú   rÒ   r¡   r¨  rU   r   )rÐ  r—  rg  rä	  rå	  rÜ	  r  s   f&&&&@@r6   Úupsample_nearest2d_backwardrñ	  @  s¡   ú€ ô -Ø°!ôÐô 
‡L‚LØ×Ñ˜AÑÜkôô �1ŽXˆÜ�ŠØ×Ñ˜QÓÐ#3°AÕ#6Ñ6öö	
ñ ð × Ñ  Ó,×/Ñ/Ü×1Ò1°+Ó>ð 0ó ð r8   c                 óN  a € \         P                  ! S P                  4       ^ 8g  ;'       g!    \        S P	                  4       R,          4      V 3R l4       \        S P	                  4       V^R7      pS P                  V4      P                  \        P                  ! S 4      R7      # )r   rÕ	  c                  ó*   <€ R S P                  4        2# )z>Non-empty 5D data tensor expected but got a tensor with sizes rÑ   rÃ  s   €r6   rk   Ú$upsample_nearest3d.<locals>.<lambda>i  rØ	  r8   rÙ	  rÚ   rÚ	  )r  r—  Úscales_drä	  rå	  rÜ	  s   f&&&& r6   Úupsample_nearest3drö	  c  rÞ	  r8   c                 ó   € \         P                  ! V 4      \         P                  ! V \         P                  R 7      rvVeÎ   VeÊ   \        V\        4      '       g   \        R\        V4       24      h\        V\        4      '       g   \        R\        V4       24      hVP                  pVP                  4       p	\        WH4      p\        WX4      pVP                  W‰4       VP                  W‰4       \        WdR7       \        WuR7       WE3# Wg3# )r™   zvalues must be TensorLike, got z indices must be TensorLike, got )rT  rU  )r\   r§   rê   rx   r    r’   rƒ   r¢   rû   r"   r   r$   )
r£   ÚstablerŽ   Ú
descendingræ   rç   rÂ	  r  r×   Ú
out_strides
   &&&&&&    r6   Ú	meta_sortrû	  s  sß   € ô ×Ò˜DÓ!¤5×#3Ò#3°DÄÇÁÔ#L€qØÒ˜gÒ1Ü˜&¤*×-Ò-Ü Ð#BÄ4ÈÃ<À.Ð!QÓRÐRÜ˜'¤:×.Ò.Ü Ð#CÄDÈÃMÀ?Ð!SÓTÐTð —G‘Gˆ	Ø—X‘X“Zˆ
Ü" 6Ó5ˆÜ# GÓ7ˆØ×Ñ˜9Ô1Ø×Ñ˜IÔ2Ü Õ3Ü Õ4ØˆÐØˆ4€Kr8   c           	      ó¤  a aaaaaaa€ \         P                  ! S P                  ^8H  V 3R l4       \         P                  ! S P                  SP                  8H  VV 3R l4       S P	                  ^4      oSe‰   \         P                  ! SP                  ^8H  V3R l4       \         P                  ! SP                  4       S8H  VV3R l4       \         P                  ! SP                  SP                  8H  VV3R l4       \         P                  ! SP                  ^8H  V3R l4       S P	                  ^ 4      S,          S,          o\         P                  ! SP                  4       S8H  VVVV V3R l4       \         P                  ! \        ;QJ d#    V 3R	 lSSSS3 4       F  '       d   K   R
M	  RM! V 3R	 lSSSS3 4       4      R 4       R# )r@   c                  ó"   <€ S P                    R 2# ©z != 2r©  )Úinput_gatess   €r6   rk   Ú%rnn_cell_checkSizes.<locals>.<lambda>˜  ó   ø€ °;×3CÑ3CÐ2DÀEÑ0Jr8   c                  ó:   <€ SP                    R S P                    2# ©r  ra  )Úhidden_gatesrÿ	  s   €€r6   rk   r 
  ›  s   ø€ �;×$Ñ$Ð% T¨,×*<Ñ*<Ð)=Ñ>r8   Nc                  ó"   <€ S P                    R 2# )z != 1r©  )Ú
input_biass   €r6   rk   r 
  Ÿ  s   ø€ °j·o±oÐ5FÀeÑ3Lr8   c                  ó.   <€ SP                  4        R S  2# r
  r|  )Ú
gates_sizer
  s   €€r6   rk   r 
  ¢  s   ø€ �z×'Ñ'Ó)Ð*¨$¨z¨lÑ;r8   c                  ó:   <€ SP                    R S P                    2# r
  ra  )Úhidden_biasr
  s   €€r6   rk   r 
  ¦  s   ø€ �z×'Ñ'Ð(¨¨[×->Ñ->Ð,?Ñ@r8   c                  ó"   <€ S P                    R 2# rþ	  r©  )Úprev_hiddens   €r6   rk   r 
  ¨  r
  r8   c            
      ó`   <€ SP                  4        R SP                  ^ 4       RS RS RS  R2
# )r  z * z // z (aka r‚   )r    rÒ   )Úexpected_prev_hidden_numelÚfactorr
  rÿ	  r
  s   €€€€€r6   rk   r 
  ¬  s@   ø€ �;×$Ñ$Ó&Ð' t¨K×,<Ñ,<¸QÓ,?Ð+@ÀÀJÀ<ÈtÐTZÐS[Ð[aÐb|Ða}Ð}~Ñr8   c              3   óV   <"  € T F  pVP                   SP                   8H  x € K   	  R # 5irG   r…  )rz   r;   rÿ	  s   & €r6   r|   Ú&rnn_cell_checkSizes.<locals>.<genexpr>¯  s'   øé € ð 
áI�ð �H‰H˜×*Ñ*Ö*ÛIùs   ƒ&)FTc                  ó   € R # )z%expected all inputs to be same devicer2   r2   r8   r6   rk   r 
  ³  s   € Ñ7r8   )r\   rn   rÔ   r¢   rÒ   r    r‘  )rÿ	  r
  r
  r

  r
  r
  r
  r
  s   ffffff@@r6   Úrnn_cell_checkSizesr
  �  sa  ÿ€ ô 
‡L‚L�×!Ñ! QÑ&Ô(JÔKÜ	‡L‚LØ×Ñ˜\×/Ñ/Ñ/Ý>ôð ×!Ñ! !Ó$€JØÒÜ�Š�Z—_‘_¨Ñ)Ô+LÔMÜ�ŠØ×ÑÓ *Ñ,Ý;ô	
ô 	�ŠØ×Ñ × 1Ñ 1Ñ1Ý@ô	
ô 
‡L‚L�×!Ñ! QÑ&Ô(JÔKØ!,×!1Ñ!1°!Ó!4°zÕ!AÀVÕ!KÐÜ	‡L‚LØ×ÑÓÐ9Ñ9ßÐôô 
‡L‚Lß‹ô 
à" J°¸[ÑIó
��Šô 
à" J°¸[ÑIó
ó 	
ñ 	8ör8   c                 ó
  € \        WW4^V4       \        P                  ! V \        P                  R7      p\        P                  ! V\        P                  R7      p\        P                  ! V\        P                  R7      pWgV3# )râ  rÚ   )r
  r\   r§   rß   )rÿ	  r
  Úcxr
  r

  Ú	workspaceÚhyÚcys   &&&&&   r6   Ú_thnn_fused_lstm_cell_metar
  ·  se   € ô ˜°:ÈAÈrÔRÜ× Ò  ¼E×<SÑ<SÔT€IÜ	×	Ò	˜"¬E×,CÑ,CÔ	D€BÜ	×	Ò	˜"¬E×,CÑ,CÔ	D€BØ�IÐÐr8   c                 ó  € \        V4      ^ 8g  pV'       d)   \        V4      pV^ ,          pV P                  ^ ,          pM^V
'       d   V P                  ^,          MV P                  ^ ,          pV
'       d   V P                  ^ ,          MV P                  ^,          pRpV'       d   ^M^pV^ 8w  d   TMTpV'       d   VVV,          .pM V
'       d   VVVV,          .MVVVV,          .pV P                  V4      pV	V,          VV.pVf$   \        P                  ! ^ V P
                  R7      pMVP                  V4      pVP                  V	V,          VV.4      pV'       d   ^ M^ pV P                  V\        P                  R7      pVVVVV3# )r   r…  r™   r÷   )rø   r¢   r¡   r\   r”   r‹   rä  )r  rº  Úweight_stride0Ú
weight_bufÚhxr
  r  Úhidden_sizeÚ	proj_sizeÚ
num_layersÚbatch_firstÚdropoutÚtrainÚbidirectionalrh  Údropout_stateÚis_input_packedÚ
seq_lengthÚ
mini_batchÚbatch_sizes_sumÚnum_directionsÚout_sizer×   r-  Ú
cell_shaper
  r
  Úreserve_shapeÚreserves   &&&&&&&&&&&&&&&&             r6   Ú
_cudnn_rnnr/
  Æ  sS  € ô& ˜+Ó&¨!Ñ+€OßÜ˜Ó%ˆ
Ø  •^ˆ
ØŸ+™+ a�.‰ç'2�U—[‘[ –^¸¿¹ÀA½ˆ
ß'2�U—[‘[ –^¸¿¹ÀA½ˆ
Øˆç'‘Q¨Q€NØ%¨œN‰y°€HßØ$ h°Õ&?Ð@‰	÷ ð ˜ X°Õ%>Ñ?à˜j¨(°^Õ*CÐDð 	ð
 �_‰_˜YÓ'€Fà˜~Õ-¨z¸;ÐG€JØ	‚zÜ�[Š[˜ 5§<¡<Ô0‰à�\‰\˜*Ó%ˆà	�‰�z NÕ2°JÀÐIÓ	J€B÷ ‘A A€MØ�o‰o˜m´5·;±;ˆoÓ?€Gà�2�r˜7 JÐ.Ð.r8   c                 óÊ   € ^ pV F0  pVP                  4       ^ 8”  g   K  WïP                  4       ,          pK2  	  V P                  V34      p\        V VVVVVVV^ VVV	V
VVV4      # rû  )r    r¡   r/
  )r  rº  r
  r
  r
  r  r
  r 
  r!
  r"
  r#
  r$
  rh  r%
  Útotal_weight_elemsrç  r
  s   &&&&&&&&&&&&&&   r6   Ú
miopen_rnnr2
  þ  s�   € ð& ÐÛˆØ�7‰7‹9�qŽ=Ø§'¡'£)Õ+Òñ ð —‘Ð"4Ð!6Ó7€JÜØØØØØ
Ø
ØØØ	ØØØØØØØó!ð r8   c                 óz  € V'       d   V P                   ^,          MV P                   ^ ,          pV'       d   V P                   ^ ,          MV P                   ^,          pT
pV'       d   VVV.MVVV.pV P                  V4      pVf$   \        P                  ! ^ V P                  R7      pMVP                  VP                   4      pVf$   \        P                  ! ^ V P                  R7      pMVP                  VP                   4      p\        P                  ! ^ V P                  \        P
                  R7      pVVVV3# )r1   r…  ré   )r¢   r¡   r\   r”   r‹   rä  )r  Úw0Úw1Úw2Úw3Úhx_Úcx_rö   rh  r  r
  r 
  Ú
has_biasesr$
  r!
  r#
  r'
  r(
  Úoutput_chanelsr×   r-  r
  r
  r
  s   &&&&&&&&&&&&&&&&        r6   Úmkldnn_rnn_layerr<
  +  sê   € ÷& $/�—‘˜Q–°E·K±KÀµN€Jß#.�—‘˜Q–°E·K±KÀµN€JØ €N÷ ð 
�Z Ñ0à˜* nÐ5ð ð
 �_‰_˜YÓ'€FØ
‚{Ü�[Š[˜ 5§<¡<Ô0‰à�]‰]˜3Ÿ9™9Ó%ˆØ
‚{Ü�[Š[˜ 5§<¡<Ô0‰à�]‰]˜3Ÿ9™9Ó%ˆÜ—’˜A e§l¡l¼%¿+¹+ÔF€IØ�2�r˜9Ð$Ð$r8   c                 óä   aa€ V P                   ^ 8X  d/   \        P                  ! S^ 8H  ;'       g    SR8H  VV3R l4       R# \        P                  ! V P                  S4      ^ 8g  VV3R l4       R# )r   c                  ó   <€ S R S  2# )z4: Expected reduction dim -1 or 0 for scalar but got r2   ©rŽ   ru  s   €€r6   rk   Ú'zero_numel_check_dims.<locals>.<lambda>W  s   ø€ �w�iÐSÐTWÐSXÑYr8   c                  ó   <€ S R S  R2# )z: Expected reduction dim z to have non-zero size.r2   r?
  s   €€r6   rk   r@
  \  s   ø€ �w�iÐ8¸¸Ð=TÑUr8   Nr÷   )rÔ   r\   rŸ   rÒ   )r£   rŽ   ru  s   &ffr6   Úzero_numel_check_dimsrB
  S  sU   ù€ Ø‡y�y�A„~Ü×ÒØ�1‰H×!Ð!˜˜r™	ÝYö	
ô
 	×ÒØ�I‰I�c‹N˜aÑÝUö	
r8   c                 ó¶   a € Ve(   \        W!P                  4       4      p\        WS 4       R # \        P                  ! VP                  4       ^ 8g  V 3R l4       R # )Nc                  ó   <€ S  R 2# )z@: Expected reduction dim to be specified for input.numel() == 0.r2   r7  s   €r6   rk   Ú%check_argmax_argmin.<locals>.<lambda>h  s   ø€ �t�fÐ\Ñ]r8   )rë   rŽ   rB
  r\   rn   r    )rS  r£   rŽ   s   f&&r6   Úcheck_argmax_argminrF
  a  s?   ø€ Ø
‚Ü˜S§(¡(£*Ó-ˆÜ˜d¨Ö.ä�ŠØ�J‰J‹L˜AÑÜ]ö	
r8   c                 óÄ   € \        R W4       \        P                  ! V P                  Ve   V3MR4      p\	        WV4      pV P                  V\        P                  R7      # )ÚargmaxNr™   )rF
  rU   r  r¢   r  r¡   r\   rê   )r£   rŽ   r  rq  r¢   s   &&&  r6   Úargmax_argmin_metarI
  l  sM   € ä˜ $Ô,Ü×Ò §
¡
°c²o¨S©FÈ4ÓP€DÜ$ T°Ó9€EØ�>‰>˜%¤u§{¡{ˆ>Ó3Ð3r8   c                 ó~   € V\         P                  8X  d   \         P                  p\         P                  ! RWW4R 7      # )rL  r2   )r\   Újaggedrt  r”   )r0  rd   rŠ   r‹   rŒ   s   &&&&&r6   Úscalar_tensorrL
  t  s1   € ð
 ”—‘ÔÜ—‘ˆÜ�;Š;Ø
�%¨vôð r8   c                 ó¤  € \        W P                  4       R R7      pV P                  4       ^ 8X  d   ^MV P                  V4      p\        P                  ! V^ 8¬  4       \        P                  ! W8*  R 4       \        V P                  4      p\        V4      ^ 8”  d   WV&   V P                  V4      V P                  V\        P                  R7      3# )T©ru  c                  ó   € R # )zk not in range for dimensionr2   r2   r8   r6   rk   Útopk_meta.<locals>.<lambda>†  s   € Ñ)Gr8   r™   )
rë   rŽ   rÒ   r\   rn   rù   r¢   rø   r¡   rê   )r£   rò  rŽ   Úlargestr  Ú	sliceSizeÚtopKSizes   &&&&&  r6   Ú	topk_metarT
  €  s˜   € ô ˜Ÿh™h›j°dÔ
;€CØ—X‘X“Z 1”_‘¨$¯)©)°C«.€IÜ	‡L‚L��a‘ÔÜ	‡L‚L�‘Ñ!GÔHä�D—J‘JÓ€HÜ
ˆ8ƒ}�qÔØ�‰Ø�>‰>˜(Ó# T§^¡^°HÄEÇKÁK ^Ó%PÐPÐPr8   c                 óØ   € Vf   Vf   \        R4      hVP                  4       pV P                  4       p	\        P                  ! VV	P                  V	P
                  V	P                  R7      # )Nz;segment_reduce(): Either lengths or offsets must be defined)rd   r‹   rŠ   )r’   rã	  r\   r§   rd   r‹   rŠ   )
Úgradr-  rs  rñ  rþ  rÿ  r   r  Údata_contigÚgrad_contigs
   &&&&&&&&  r6   Úmeta__segment_reduce_backwardrY
  Ž  sh   € ð
 ‚˜7š?ÜØIó
ð 	
ð —/‘/Ó#€KØ—/‘/Ó#€KÜ×ÒØØ×ÑØ×!Ñ!Ø×!Ñ!ô	ð r8   c                 ó  a€ ^ RI Hp \        SV P                  4       RR7      oV P                  4       ^ 8”  d   V P	                  S4      M^p\
        P                  ! V! V^8¬  W8*  4      V3R l4       \        V P                  RS V P                  S^,           R ,           4      pV'       d(   V P                  4       ^ 8”  d   VP                  S^4       V P                  V4      V P                  V\
        P                  R7      3# )r   r¥  TrN
  c                  ó   <€ R S  2# )z9kthvalue(): selected number k out of range for dimension r2   r4  s   €r6   rk   Úkthvalue_meta.<locals>.<lambda>ª  s   ø€ ÐKÈCÈ5ÑQr8   Nr™   )rÈ   r›  rë   rŽ   rÒ   r\   rn   rù   r¢   r¯  r¡   rê   )r£   rò  rŽ   r  r›  ÚdimSizer¢   s   &&f&   r6   Úkthvalue_metar^
  ¡  sÃ   ø€ õ >ä
˜˜dŸh™h›j°dÔ
;€CØ $§¡£
¨Q¤ˆd�i‰i˜Œn°A€GÜ	‡L‚LÙ��Q‘˜™Ó%ÜQôô
 �—‘˜D˜SÐ! D§J¡J¨s°Q­w¨yÐ$9Õ9Ó:€Eß�4—8‘8“: ”>Ø�‰�S˜!ÔØ�>‰>˜%Ó  $§.¡.°¼e¿k¹k .Ó"JÐJÐJr8   c                 ó¼  € V e   T MTp\         P                  ! VP                  4       ^8H  R 4       VP                  4       pV e*   \         P                  ! V P                  4       V8H  R 4       Ve*   \         P                  ! VP                  4       V8H  R 4       \         P                  ! VP                  4       V8H  R 4       \         P                  ! VP                  4       V8H  R 4       \         P                  ! VP                  4       ^8H  R 4       \         P                  ! VP	                  4       V^ ,          V^,          ,          ^,          8H  R 4       R # )Nc                  ó   € R # ©Ú r2   r2   r8   r6   rk   Ú(checkLSTMBackwardSizes.<locals>.<lambda>¹  s   € ±"r8   c                  ó   € R # ra
  r2   r2   r8   r6   rk   rc
  ¼  ó   € ¹r8   c                  ó   € R # ra
  r2   r2   r8   r6   rk   rc
  ¾  re
  r8   c                  ó   € R # ra
  r2   r2   r8   r6   rk   rc
  ¿  ó   € ±r8   c                  ó   € R # ra
  r2   r2   r8   r6   rk   rc
  À  rh
  r8   c                  ó   € R # ra
  r2   r2   r8   r6   rk   rc
  Á  s   € ©rr8   c                  ó   € R # ra
  r2   r2   r8   r6   rk   rc
  Â  s   € ÉRr8   )r\   rn   rŽ   rÒ   r    )Úgrad_hyÚgrad_cyr
  r
  r
  Údefined_gradÚexp_sizes   &&&&&  r6   ÚcheckLSTMBackwardSizesrp
  ·  sí   € Ø%Ò1‘7°w€LÜ	‡L‚L�×!Ñ!Ó# qÑ(©*Ô5Ø× Ñ Ó"€HØÒÜ�Š�W—\‘\“^ xÑ/±Ô<ØÒÜ�Š�W—\‘\“^ xÑ/±Ô<Ü	‡L‚L�—‘“˜hÑ&©
Ô3Ü	‡L‚L�—‘“˜hÑ&©
Ô3Ü	‡L‚L�—‘“ AÑ%¡zÔ2Ü	‡L‚L�—‘Ó" h¨q¥k°H¸QµKÕ&?À!Õ&CÑCÁZÖPr8   c                 óâ   € V f   Vf   R# \        WW#V4       \        P                  ! V\        R7      p\        P                  ! V\        R7      pV'       d   VP	                  ^ RR7      MR pWgV3# )NrÚ   F)r  ©NNN)rp
  r\   r§   Úlegacy_contiguous_memory_formatrî  )	rl
  rm
  r
  r
  r
  Úhas_biasÚ
grad_gatesÚgrad_cxr-	  s	   &&&&&&   r6   Ú#_thnn_fused_lstm_cell_backward_implrw
  Æ  si   € à‚˜7š?ØÐÜ˜7¨R°YÔ?Ü×!Ò!ØÔ!@ô€Jô ×Ò˜rÔ1PÔQ€Gß4<�
—‘˜q¨%�Ô0À$€IØ 	Ð)Ð)r8   c                 óP  € R pR pR pV^ ,          '       d    VP                  V P                  4       4      pV^,          '       g   V^,          '       dR   VP                  VP                  R4      V P                  R4      34      pVP                  VP                  R4      4      pWEV3# rH  ©r¡   rÒ   )r  r  r  r  rÓ  Úgrad_weightr-	  s   &&&&   r6   Úlinear_backwardr{
  Ô  s�   € à€JØ€KØ€IØ�1‡~„~Ø!×+Ñ+¨F¯K©K«MÓ:ˆ
Ø�1‡~„~˜ QŸœØ"×,Ñ,¨l×.?Ñ.?ÀÓ.CÀVÇ[Á[ÐQSÃ_Ð-UÓVˆØ ×*Ñ*¨<×+<Ñ+<¸RÓ+@ÓAˆ	Ø YÐ/Ð/r8   c                 ó°  a a€ \         P                  ! \        S P                  4      ^8„  V 3R l4       \         P                  ! S P                  R,          SS,          ,          ^ 8H  V V3R l4       V 3R lpS P                  R,          SS,          ,          pS P                  R,          S,          pS P                  R,          S,          p. S P                  RR OVNVNVN5pV! 4       pV\         P                  J g   V\         P
                  J d   \        V4      pM\        V4      p\         P                  ! WhS P                  S P                  R7      # )	r@   c                  ó"   <€ R S P                    2# )ú'Invalid input shape for pixel_shuffle: ra  rà   s   €r6   rk   Ú$meta_pixel_shuffle.<locals>.<lambda>å  s   ø€ Ð9¸$¿*¹*¸ÑFr8   c                  ó(   <€ R S P                    RS 2# )r~
  z with upscale_factor = ra  )r£   Úupscale_factors   €€r6   rk   r
  é  s   ø€ Ð9¸$¿*¹*¸ÐE\Ð]kÐ\lÑmr8   c                  ó®   <€ \        S4      p V \        P                  J g   V \        P                  J d   \	        S4      R 8X  d   V # \        P
                  # r  )r   r\   rè  rÑ  r&  rß   )r·  r£   s    €r6   Úpick_memory_formatÚ.meta_pixel_shuffle.<locals>.pick_memory_formatì  sH   ø€ ô $ DÓ)ˆà”5×&Ñ&Ó&¨#´×1GÑ1GÓ*GÜ˜$Ó 5Ô(ØˆJÜ×&Ñ&Ð&r8   NrÞ  rK  rO  r÷   )r\   rn   rø   r¢   rè  rÑ  r   r   rÌ  rd   r‹   )	r£   r�
  rƒ
  r?  ÚHrÚWrr×   r·  r  s	   ff       r6   Úmeta_pixel_shuffler‡
  á  s  ù€ ä	‡L‚LÜˆD�J‰J‹˜!ÑÜFôô 
‡L‚LØ�
‰
�2�˜.¨>Õ9Õ:¸aÑ?Ýmôõ
'ð" 	�
‰
�2�˜>¨NÕ:Õ;€AØ	�‰�B�˜.Õ	(€BØ	�‰�B�˜.Õ	(€BØ-�$—*‘*˜S˜b�/Ð- 1Ð- bÐ-¨"Ñ-€Iñ Ó
€CØ
Œe×!Ñ!Ó! S¬E×,BÑ,BÓ%BÜ4°YÓ?‰ä1°)Ó<ˆÜ×ÒØ d§j¡j¸¿¹ôð r8   c                 óR  € V P                  V P                  \        P                  R 7      pVP                  VP                  \        P                  R 7      pVP                  VP                  \        P                  R 7      pVP                  VP                  \        P                  R 7      pVP                  VP                  \        P                  R 7      p^pVV8X  d   ^V,          pMVP                  ^ ,          pVP                  V.\        P                  R 7      pVVVVVVV3# r  )r¡   r¢   r\   r`   )r  Úweight0Úweight1Úweight2Úweight3r8
  Úcx_tmpr-  Úhy_Úcy_Úgrad_output_r_optÚgrad_hy_r_optÚgrad_cy_r_optrö   r  r
  r 
  r:
  r#
  r$
  rh  r!
  r
  Údiff_xÚdiff_hxÚdiff_cxÚdiff_w1Údiff_w2Ú	_GRU_MODEÚ	bias_sizeÚdiff_bs   &&&&&&&&&&&&&&&&&&&&&&&        r6   Úmkldnn_rnn_layer_backwardr›
    så   € ð4 �_‰_˜UŸ[™[´·±ˆ_Ó<€FØ�m‰m˜CŸI™I¬U¯[©[ˆmÓ9€GØ×Ñ˜vŸ|™|´5·;±;ÐÓ?€GØ×Ñ §¡´U·[±[ÐÓA€GØ×Ñ §¡´U·[±[ÐÓA€Gð €IØˆyÔØ˜•O‰	à—M‘M !Õ$ˆ	Ø×Ñ 	˜{´%·+±+ÐÓ>€FØ�7˜G V¨V°W¸gÐEÐEr8   Ú	out_int32Úrightc                óœ   € \         P                  ! T V'       d   \         P                  M\         P                  \         P                  R 7      # )©rd   rÛ   )r\   r§   rÅ  rê   rß   ©r£   Ú
boundariesrœ
  r�
  s   &&$$r6   Úmeta_bucketizer¢
  =  s2   € ô ×ÒØß&Œe�kŠk¬E¯K©KÜ×-Ñ-ôð r8   c                óH   € V ^8„  d   QhR\         R\        R\        R\        /# )r@   r£   r¡
  rœ
  r�
  )r   r   rÂ   )rB   s   "r6   rC   rC   H  s0   € ÷ 
ñ 
Ü
ð
äð
ô ð	
ô
 ñ
r8   c                ó~   € TP                  RV'       d   \        P                  R 7      # \        P                  R 7      # )r™   r2   )r¡   r\   rÅ  rê   r 
  s   &&$$r6   Úmeta_bucketize_scalarr¥
  G  s>   € ð ×ÑØ
ß&Œe�k‰kð  ó ð ä,1¯K©Kð  ó ð r8   c                 óÊ  a aaaa€ R o\        S 4      R8X  d*   \        P                  ! S P                  4       V 3R l4       \        S 4      R8X  d-   S P                  4       '       d   \        P
                  ! R4       \        P                  ! \        S\        4      VV3R l4       \        P                  ! S^ 8„  VV3R l4       \        P                  ! \        S\        4      VV3R l4       \        P                  ! \        S\        4      VV3R l4       \        P                  ! SS8¬  V3R	 l4       \        P                  ! SS P                  S P                  R
7      # )zhistc()r  c                  ó$   <€ R S P                    R2# )z%"histogram_cpu" not implemented for 'rÀ  r™   rÃ  s   €r6   rk   Úmeta_histc.<locals>.<lambda>\  s   ø€ Ð=¸e¿k¹k¸]È!ÑLr8   r  z%_histc_cuda with floating point inputc                  ó$   <€ S R \        S 4       2# )z#: argument 'bins' must be int, not r(  ©Úbinsru  s   €€r6   rk   r¨
  b  s   ø€ �7�)Ð>¼tÀD»z¸lÑKr8   c                  ó   <€ S R S  2# )z: bins must be > 0, but got r2   rª
  s   €€r6   rk   r¨
  d  s   ø€  g YÐ.JÈ4È&Ñ#Qr8   c                  ó$   <€ S  R \        S4       2# )z%: argument 'min' must be Number, not r(  )ru  r*  s   €€r6   rk   r¨
  g  ó   ø€ �7�)Ð@ÄÀcÃÀÑLr8   c                  ó$   <€ S  R \        S4       2# )z%: argument 'max' must be Number, not r(  )ru  r9  s   €€r6   rk   r¨
  k  r®
  r8   c                  ó   <€ S  R 2# )z: max must be larger than minr2   )ru  s   €r6   rk   r¨
  m  s   ø€ ¨ yÐ0MÑ%Nr8   ré   )r&  r\   rn   r;  rU   r  rx   r   r   r”   r‹   rd   )r  r«
  r*  r9  ru  s   ffff@r6   Ú
meta_histcr±
  U  sð   ü€ ð €GÜ�5Ó˜UÔ"Ü�ŠØ×#Ñ#Ó%ÜLô	
ô �5Ó˜VÔ#¨×(?Ñ(?×(AÒ(AÜ×%Ò%Ð&MÔNÜ	‡L‚LÜ�4œÓ!ÝKôô 
‡L‚L�˜‘ÕQÔRÜ	‡L‚LÜ�3œÓÝLôô 
‡L‚LÜ�3œÓÝLôô 
‡L‚L�˜‘ÔNÔOÜ�;Š;�t E§L¡L¸¿¹ÔDÐDr8   c                 óÊ  a € \        S P                  4       V^R7      p\        P                  ! S P	                  4       ^ 8g  ;'       g_    \
        ;QJ d1    R S P                  4       R,           4       F  '       d   K   RM&	  RM"! R S P                  4       R,           4       4      V 3R l4       S P                  V4      P                  \        P                  ! S 4      R7      # )r@   rÙ	  c              3   ó*   "  € T F	  q^ 8„  x € K  	  R# 5irÌ	  r2   )rz   rÒ   s   & r6   r|   Ú,meta_upsample_bimode2d_aa.<locals>.<genexpr>ƒ  s   é € Ð!HÑ7G¨t¨¦(Ó7GùrÏ	  rÕ	  FTc                  ó*   <€ R S P                  4        2# rá	  rÑ   rÃ  s   €r6   rk   Ú+meta_upsample_bimode2d_aa.<locals>.<lambda>„  rØ	  r8   rÚ   )
rÓ	  rÒ   r\   rn   r    r‘  r¡   r¨  rU   r   )r  r—  r>  rä	  rå	  rÜ	  s   f&&&& r6   Úmeta_upsample_bimode2d_aar·
  q  s§   ø€ ô -Ø�
‰
‹�k°AôÐô 
‡L‚LØ�‰‹˜Ñ×HÐHŸc›cÑ!H°u·z±z³|ÀBÖ7GÓ!HŸcŸcšcÑ!H°u·z±z³|ÀBÖ7GÓ!HÓHÜ_ôð �?‰?Ð+Ó,×/Ñ/Ü×1Ò1°%Ó8ð 0ó ð r8   c                 óp  a aa€ \        W!^R7      o\        P                  ! S P                  ^8H  V 3R l4       \	        ^4       F;  o\        P                  ! S P
                  S,          SS,          8H  VV V3R l4       K=  	  S P                  V4      P                  \        P                  ! S 4      R7      # )r@   rÙ	  c                  ó"   <€ R S P                    2# rë	  r©  rÃ  s   €r6   rk   Ú4meta_upsample_bimode2d_aa_backward.<locals>.<lambda>ž  rí	  r8   c            
      óL   <€ R S RS S,           RS RSP                  S4       2# )zD
Expected grad_output to have the same shape as output; output.size(rï	  z
but got grad_output_size(rÑ   rð	  s   €€€r6   rk   rº
  £  s>   ø€ ð DØDEÀ3ÀdÐK[Ð\]ÕK^ÐJ_ð `Ø˜˜D ×!1Ñ!1°!Ó!4Ð 5ñ9r8   rÚ   )
rÓ	  r\   rn   rÔ   rú   r¢   r¡   r¨  rU   r   )rÐ  r—  rg  r>  rä	  rå	  rÜ	  r  s   f&&&&&@@r6   Ú"meta_upsample_bimode2d_aa_backwardr¼
  ‹  s¡   ú€ ô -Ø°!ôÐô 
‡L‚LØ×Ñ˜AÑÜkôô �1ŽXˆÜ�ŠØ×Ñ˜aÕ Ð$4°QÕ$7Ñ7ö9ö	
ñ ð × Ñ  Ó,×/Ñ/Ü×1Ò1°+Ó>ð 0ó ð r8   c                 óZ  € \         P                  ! VP                  4       ^8H  R 4       \         P                  ! VP                  4       ^8H  R 4       \         P                  ! VP                  P                  R 4       \         P                  ! VP                  P                  R 4       R# )r1   c                  ó   € R # )z%found_inf must be a 1-element tensor.r2   r2   r8   r6   rk   Ú<_amp_foreach_non_finite_check_and_unscale_.<locals>.<lambda>°  ó   € Ñ(Or8   c                  ó   € R # )z%inv_scale must be a 1-element tensor.r2   r2   r8   r6   rk   r¿
  ³  rÀ
  r8   c                  ó   € R # )z!found_inf must be a float tensor.r2   r2   r8   r6   rk   r¿
  ·  ó   € Ñ3r8   c                  ó   € R # )z!inv_scale must be a float tensor.r2   r2   r8   r6   rk   r¿
  »  rÃ
  r8   N)r\   rn   r    rd   r;  )r£   r$  Ú	inv_scales   &&&r6   Ú*_amp_foreach_non_finite_check_and_unscale_rÆ
  ­  s|   € ä	‡L‚LØ�‰Ó˜QÑÑ Oôô 
‡L‚LØ�‰Ó˜QÑÑ Oôô 
‡L‚LØ�‰×)Ñ)Ù3ôô 
‡L‚LØ�‰×)Ñ)Ù3ör8   c                 ó.   € \         P                  ! V 4      # rG   r¦   )r£   ÚnanÚposinfÚneginfs   &&&&r6   Ú
nan_to_numrË
  À  r«   r8   c                 ó   € V P                   \        P                  \        P                  \        P                  \        P
                  09   d   \        R V P                    R24      hV P                  p\        W4      p\        W#4      pW8X  d   V # \        V P                  4       4      p\        V P                  4       4      pWR,          WQ,          uWQ&   WR&   WB,          WA,          uWA&   WB&   V P                  WE4       V # )z>torch.transpose_: in-place transposition is not supported for z layout)rŠ   r\   ru  Ú
sparse_cscrv  Ú
sparse_bscr’   rÔ   rë   rù   rÒ   rû   r   )r£   Údim0rC  ÚndimsrÒ   rû   s   &&&   r6   rg  rg  Æ  sÛ   € à‡{�{Ü×ÑÜ×ÑÜ×ÑÜ×Ñð	ô ô ØLÈTÏ[É[ÈMÐY`Ðaó
ð 	
ð �I‰I€Eä˜$Ó&€DÜ˜$Ó&€Dà„|Øˆä�—	‘	“Ó€DÜ�$—+‘+“-Ó €Fà!'¥¨v­|Ð€F�L�&‘,Ø!�Z¨­Ð€D�J�‘
à×Ñ�TÔ"Ø€Kr8   c                 ó<  € V P                   pV P                  '       dB   V P                  4       pV P                  4       pV^8:  d   V^ 8X  g   \	        RV RV R24      hM$V P                  4       ^8”  d   \	        RV R24      h\        T ^ V^8  d   ^ 4      # ^4      # )r@   zEt_ expects a tensor with <= 2 sparse and 0 dense dimensions, but got z sparse and z dense dimensionsz6t_ expects a tensor with <= 2 dimensions, but self is rÑ  )rÔ   rW  rY  rZ  r’   rŽ   rg  )r£   rÐ
  rY  rZ  s   &   r6   Út_rÒ
  ä  s«   € à�I‰I€Eà‡~‡~€~Ø—_‘_Ó&ˆ
Ø—N‘NÓ$ˆ	Ø˜a” I°¤NÜ ðØ%˜, l°9°+Ð=NðPóð ð %3ð �8‰8‹:˜Œ>Ü ØHÈÈÈqÐQóð ô �d˜A E¨A¤I˜qÓ5Ð5°1Ó5Ð5r8   ÚsideÚsorterc                ó°  a aa€ \         P                  ! \        S P                  4      ^8*  ;'       g     S P                  RR SP                  RR 8H  VV 3R l4       \         P                  ! SRJ ;'       g    S P                  SP                  8H  V V3R l4       \         P                  ! VR8g  ;'       g    V'       * R 4       V'       d   \         P                  M\         P
                  p\        S\         P                  4      '       d(   \         P                  ! SV\         P                  R7      # \         P                  ! R	VS P                  R7      # )
r1   Nc                  ó`   <€ R \        SP                  4       R\        S P                  4       2# )z¯torch.searchsorted(): boundaries tensor should be 1 dimension or the first N-1 dimensions of boundaries tensor and input value tensor must match, but we got boundaries tensor z and input value tensor r�  )r£   Úsorted_sequences   €€r6   rk   Ú#meta_searchsorted.<locals>.<lambda>	   s3   ø€ ð3ä37¸×8MÑ8MÓ3NÐ2Oð P"Ü"& t§z¡zÓ"2Ð!3ñ5r8   c                  óp   <€ R \        S P                  4       RSe   \        SP                  4       2# .  2# )z[torch.searchsorted(): boundary and sorter must have the same size, but got boundary tensor z and got sorter tensor r�  )r×
  rÔ
  s   €€r6   rk   rØ
     sB   ø€ ð#Ü#'¨×(=Ñ(=Ó#>Ð"?Ð?VØ%+Ò%7Œt�F—L‘LÓ!Ð@ñBà=?Ð@ñBr8   r
  c                  ó   € R # )zetorch.searchsorted(): side and right can't be set to opposites, got side of left while right was Truer2   r2   r8   r6   rk   rØ
     s   € ñ $r8   rŸ
  rÞ  r÷   r2   )r\   rn   rø   r¢   rÅ  rê   rx   r   r§   rß   r”   r‹   )r×
  r£   rœ
  r�
  rÓ
  rÔ
  rd   s   ff$$$d r6   Úmeta_searchsortedrÛ
  ù  s  ú€ ô 
‡L‚LÜˆO×!Ñ!Ó" aÑ'÷ 	9ð 	9Ø× Ñ   "Ð%¨¯©°C°R¨Ñ8õ	
ô	ô 
‡L‚LØ�$ˆ×?Ð?˜/×/Ñ/°6·<±<Ñ?õ	
ôô 
‡L‚LØ�‰×#Ð#˜eœ)ñ	$ô÷ %ŒE�KŠK¬%¯+©+€EÜ�$œŸ™×%Ò%Ü×ÒØ˜¬U×-DÑ-Dô
ð 	
ô �{Š{˜2 U°?×3IÑ3IÔJÐJr8   c                 óž   a € \         P                  ! S \         P                  \         P                  \         P                  39  V 3R  l4       R# )c                  ó   <€ R S  2# )z/Unsupported input type encountered for isin(): r2   r™   s   €r6   rk   Ú3_check_for_unsupported_isin_dtype.<locals>.<lambda>.   s   ø€ ÐAÀ%ÀÑIr8   N)r\   rn   rÂ   Ú
complex128Ú	complex64r™   s   fr6   Ú!_check_for_unsupported_isin_dtyperá
  +   s/   ø€ Ü	‡L‚LØ”e—j‘j¤%×"2Ñ"2´E·O±OÐDÑDÜIör8   c                 óH   € V P                  W P                  R4      34      pV# r  ry
  )rÐ  rç   Únum_weightsrü  r	  rz
  s   &&&&& r6   Úmeta_embedding_dense_backwardrä
  2   s(   € ð ×'Ñ'¨×6FÑ6FÀrÓ6JÐ(KÓL€KØÐr8   c                 óv   € V	'       d   \         P                  V VVVVVVVV
V4
      # \        V VVVVVVVV
V4
      # rG   )r,   Ú_embedding_bag_sparse_backwardÚ!meta_embedding_bag_dense_backward)rV
  rç   rÿ  r  r  Úmaximum_indicesrã
  r	  r  r
  rø  rü  s   &&&&&&&&&&&&r6   Úmeta_embedding_bag_backwardré
  >   se   € ÷ Ü×2Ñ2ØØØØØØØØØØó
ð 	
ô 1ØØØØØØØØØØó
ð 	
r8   c
                 óZ  a € \         P                  ! S P                  \         P                  \         P                  \         P
                  \         P                  39   V 3R  l4       V\        8X  d   \         P                  ! VRJ4       S P                  VS P                  ^4      34      p
V
# )c                  ó"   <€ R S P                    2# )z$Unsupported input type encountered: r™   )rV
  s   €r6   rk   Ú3meta_embedding_bag_dense_backward.<locals>.<lambda>x   s   ø€ Ð6°t·z±z°lÑCr8   N)
r\   rn   rd   rç  r<  r=  Úfloat64r  r¡   rÒ   )rV
  rç   r  r  rè
  rã
  r	  r  rø  rü  Úindex_grad_weights   f&&&&&&&&& r6   rç
  rç
  i   sv   ø€ ô 
‡L‚LØ�
‰
”u—}‘}¤e§n¡n´e·m±mÄUÇ]Á]ÐSÑSÜCôð ŒxÔÜ�Š�_¨DÐ0Ô1ØŸ™¨°T·Y±Y¸q³\Ð'BÓCÐØÐr8   c                 óæ  € V P                  ^4      p\        P                  ! V\        8H  R 4       \        P                  ! V P	                  4       ^8H  4       \        P                  ! VP	                  4       ^8H  4       VP                  ^ 4      p\        P                  ! VP	                  4       ^8H  4       \        P                  ! VP                  ^4      V8H  4       V P                  V34      p	V	# )r1   c                  ó   € R # )zHembedding_bag_backward: per_sample_weights only supported for mode='sum'r2   r2   r8   r6   rk   Ú@meta_embedding_bag_per_sample_weights_backward.<locals>.<lambda>�   r¿  r8   )rÒ   r\   rn   r  rŽ   r¡   )
rV
  rº  rç   rÿ  r  r  rü  Úembedding_featuresr½	  r-  s
   &&&&&&&   r6   Ú.meta_embedding_bag_per_sample_weights_backwardró
  €   s«   € ð Ÿ™ 1›ÐÜ	‡L‚LØ”ÑÙZôô 
‡L‚L�—‘“˜q‘Ô!Ü	‡L‚L�—‘“ !Ñ#Ô$Ø—,‘,˜q“/€KÜ	‡L‚L�—‘“ Ñ"Ô#Ü	‡L‚L�—‘˜Q“Ð#5Ñ5Ô6Ø�^‰^˜[˜NÓ+€FØ€Mr8   Úassume_uniqueÚinvertc                óú  € \         P                  ! \        V \        4      ;'       g    \        V\        4      R  4       \        V \        4      '       g"   \         P                  ! WP
                  R7      p \        V\        4      '       g"   \         P                  ! WP
                  R7      p\        V P                  4       \        VP                  4       \         P                  ! V \         P                  R7      # )c                  ó   € R # )z<At least one of elements and test_elements must be a Tensor.r2   r2   r8   r6   rk   Úmeta_isin.<locals>.<lambda>�   rö  r8   r…  r™   )
r\   rn   rx   r   r°  r‹   rá
  rd   r§   rÂ   )ÚelementsÚtest_elementsrô
  rõ
  s   &&$$r6   Ú	meta_isinrû
  ˜   sŸ   € ô 
‡L‚LÜ�8œVÓ$×IÐI¬
°=Ä&Ó(IÙNôô �h¤×'Ò'Ü—<’< ×1EÑ1EÔFˆä�m¤V×,Ò,ÜŸš ]¿?¹?ÔKˆä% h§n¡nÔ5Ü% m×&9Ñ&9Ô:Ü×Ò˜H¬E¯J©JÔ7Ð7r8   c                ó<   € V ^8„  d   QhR\         R\        R\        /# )r@   rH  r£   rA   )rÁ   r   )rB   s   "r6   rC   rC   ¬   s!   € ÷ 6ñ 6”cð 6¤ð 6¬Fñ 6r8   c                 ó    € \         P                  ! V ^ 8¬  R 4       \        V\        P                  R7      w  r#\         P
                  ! WR7      # )r   c                  ó   € R # )z,polygamma(n, x) does not support negative n.r2   r2   r8   r6   rk   Ú meta_polygamma.<locals>.<lambda>­   s   € Ñ!Or8   r  r™   )r\   rn   r   r   r   r§   )rH  r£   rX   rY   s   &&  r6   Úmeta_polygammar   ª   sB   € ô 
‡L‚L��a‘ÑOÔPÜ(ØÜ;×HÑHô�O€Aô ×Ò˜DÔ5Ð5r8   c                ó$   € V ^8„  d   QhR\         /# )r@   r£   r’  )rB   s   "r6   rC   rC   ¶   s   € ÷ Iñ I¤&ñ Ir8   c                 ó   € \        R 4      h)z.Tensor.item() cannot be called on meta tensors)r§  rà   s   &r6   Úmeta_local_scalar_denser  µ   s   € ä
ÐGÓ
HÐHr8   c                ó0   € V ^8„  d   QhR\         R\         /# ©r@   r£   rA   r’  )rB   s   "r6   rC   rC   ¼   s   € ÷ "ñ "Œvð "œ&ñ "r8   c                 ó.   € \         P                  ! V 4      # rG   r¦   rà   s   &r6   Úsilur  º   r«   r8   c                ó0   € V ^8„  d   QhR\         R\         /# r  r’  )rB   s   "r6   rC   rC   Â   s   € ÷ 6ñ 6”&ð 6œVñ 6r8   c                 ój   € \        V \        P                  R 7      w  r\        P                  ! WR7      # r  )r   r   r   r\   r§   )r£   rX   rY   s   &  r6   Úsigmoidr
  À   s/   € ô )ØÜ;×HÑHô�O€Aô ×Ò˜DÔ5Ð5r8   c                 óÔ  € V P                  4       ^8H  pVP                  4       ^8H  pV'       d™   V'       d5   VP                  ^ 4      V P                  ^ 4      VP                  ^4      .pEM+\        P                  ! VP                  ^ 4      VP                  ^ 4      8H  R 4       V P                  ^ 4      VP                  R4      .pMÏV'       d]   \        P                  ! VP                  ^ 4      V P                  ^ 4      8H  R 4       V P                  ^4      VP                  ^4      .pMk\        P                  ! V P                  ^ 4      VP                  ^ 4      8H  R 4       V P                  ^ 4      V P                  ^4      VP                  R4      .pT;'       g    V P                  p\        P
                  P                  '       d{   ^VP                  ,          pVR,          V,           ^,
          V,          V,          pWE8X  d   V^,          V,          V^.p	MV^.p	\        P                  ! WiW0P                  R7      p
V
# \        P                  ! WcV P                  R7      p
V
# )r@   c                  ó   € R # ©z matrix batch sizes have to matchr2   r2   r8   r6   rk   Ú2_create_grouped_mm_output_tensor.<locals>.<lambda>Ó   ó   € Ñ6Xr8   c                  ó   € R # r  r2   r2   r8   r6   rk   r  Ù   r  r8   c                  ó   € R # )zbatched dimension has to matchr2   r2   r8   r6   rk   r  ß   s   € Ñ6Vr8   rÞ  r÷   )rŽ   rÒ   r\   rn   rd   r£  r  ÚitemsizerÌ  r‹   r”   )rË  rÍ  Úoffsr¾  Ú
mat1_is_2dÚ
mat2_is_2dr+
  Ú	alignmentÚsize_paddedrú	  r  s   &&&&       r6   Ú _create_grouped_mm_output_tensorr  Ê   sÐ  € Ø—‘“˜q‘€JØ—‘“˜q‘€JçßØŸ	™	 !› d§i¡i°£l°D·I±I¸a³LÐAŠHä�LŠLØ—	‘	˜!“ §	¡	¨!£Ñ,Ñ.Xôð Ÿ	™	 !› d§i¡i°£mÐ4‰HçÜ�LŠLØ—	‘	˜!“ §	¡	¨!£Ñ,Ñ.Xôð Ÿ	™	 !› d§i¡i°£lÐ3‰Hô �LŠLØ—	‘	˜!“ §	¡	¨!£Ñ,Ñ.Vôð Ÿ	™	 !› d§i¡i°£l°D·I±I¸b³MÐBˆHà×'Ð'˜TŸZ™Z€Iä‡}�}××ÐØ˜)×,Ñ,Õ,ˆ	Ø •| iÕ/°!Õ3¸	ÕAÀIÕMˆØÔ#Ø" 1�+¨Õ3°[À!ÐD‰Jà% qÐ)ˆJÜ×!Ò!Ø¨	¿+¹+ô
ˆð
 €Jô �kŠk˜(¸D¿K¹KÔHˆØ€Jr8   c                ó(  € V ^8„  d   QhR\         R\         R\        P                   R,          R\        P                   R,          R\         R,          R\         R,          R\        P                   R,          R	\        P                  R,          R
\        /	# )r@   Úmat_aÚmat_brf	  Nrg	  r  r¼  rh	  r¾  ri	  )r   r\   rd   rÂ   )rB   s   "r6   rC   rC   ô   s¤   € ÷ qKñ qKÜðqKäðqKô �\‰\˜DÕ ðqKô �\‰\˜DÕ ð	qKô
 �4�-ðqKô �4�-ðqKô —,‘, Õ%ðqKô �{‰{˜TÕ!ðqKô ñqKr8   c	                 ó  a aaaaa€ \         P                  ! SR J SR J 8H  R 4       SR J;'       d    SR Jp	V	'       dÔ   \         P                  p
\         P                  P                  '       dc   \         P
                  P                  4       '       d?   R\         P
                  P                  ^ 4      P                  9   d   \         P                  p
\         P                  ! S P                  V
8H  ;'       d    SP                  V
8H  V V3R l4       MÁS P                  \         P                  8X  d5   \         P                  ! SP                  S P                  8H  V V3R l4       MnS P                  \         P                  8X  d5   \         P                  ! SP                  S P                  8H  V V3R l4       M\         P                  ! RV 3R l4       \         P                  ! S P                  4       R9   ;'       d    SP                  4       R9   V V3R l4       S P                  4       ^8H  pSP                  4       ^8H  pV'       d	   V'       g:   \         P                  ! S P                  R 4      SP                  R!4      8H  R	 4       V	'       dI   R
 pR p\         P                  ! V! S 4      V 3R l4       \         P                  ! V! S4      V3R l4       R pV! RS 4       V! RS4       SEeQ   SEeL   \         P                  ! SP                  \         P                  8H  ;'       d&    SP                  \         P                  8H  ;'       gC    SP                  \         P                   8H  ;'       d    SP                  \         P                   8H  VV3R l4       SP                  \         P                   8H  ;'       d    SP                  \         P                   8H  oR"V3R llpSe$   V'       d   V'       d   SP"                  ^ ,          M^pV! RSS ^ V4       V! RSS^V4       \         P                  ! VR J R 4       V'       g	   V'       d²   \         P                  ! SR JV V3R l4       Se�   \         P                  ! SP                  4       ^8H  V3R l4       \         P                  ! SP                  \         P$                  8H  V3R l4       \         P                  ! SP'                  4       R"8H  V3R l4       M\         P                  ! SR J R 4       S P                  \         P                  8X  d$   \         P                  ! \)        S SS4      R 4       \         P                  ! VR J R 4       V	'       d7   \         P                  ! VR J ;'       g    V\         P                  8H  R 4       M;T;'       g    S P                  p\         P                  ! VS P                  8H  R 4       \+        S SSV4      # )#Nc                  ó   € R # )z,Either both scale factors are given, or noner2   r2   r8   r6   rk   Ú)_meta_grouped_mm_common.<locals>.<lambda>!  s   € Ñ>r8   Úgfx94c                  ó>   <€ R S P                    RSP                    R2# )z5Expected inputs of E4M3 FP8 type but got mat_a.dtype=ú and mat_b.dtype=rø  r™   ©r  r  s   €€r6   rk   r  !  s#   ø€ ÐKÈEÏKÉKÈ=ÐXiÐjo×juÑjuÐivÐvwÑxr8   c                  ó>   <€ R S P                    RSP                    R2# ©z;Expected mat_b dtype to match mat_a dtype, got mat_a.dtype=r!  rø  r™   r"  s   €€r6   rk   r  !  ó'   ø€ ÐQÐRW×R]ÑR]ÐQ^Ð^oÐpu×p{Ñp{Ðo|Ð|}Ñ~r8   c                  ó>   <€ R S P                    RSP                    R2# r$  r™   r"  s   €€r6   rk   r  !  r%  r8   Fc                  ó$   <€ R S P                    R2# )z?Expected mat_a to be BFloat16 or supported Float16 matrix, got rø  r™   ©r  s   €r6   rk   r  "!  s   ø€ ÐUÐV[×VaÑVaÐUbÐbcÑdr8   c                  óL   <€ R S P                  4        RSP                  4        2# )z3Multiplicands must be 2D or 3D but got mat_a.dim()=z and mat_b.dim()=r4  r"  s   €€r6   rk   r  '!  s%   ø€ ÐEÀeÇiÁiÃkÀ]ÐRcÐdi×dmÑdmÓdoÐcpÑqr8   c                  ó   € R # )z3contraction dimension of mat_a and mat_b must matchr2   r2   r8   r6   rk   r  0!  r`	  r8   c                 ób   € V P                  4       pVR,          ^8„  ;'       d    VR,          ^8H  # ©r@   rO  r÷   rû  ©ÚmatÚ
mat_strides   & r6   rz	  Ú-_meta_grouped_mm_common.<locals>.is_row_major5!  s-   € ØŸ™›ˆJØ˜b•> AÑ%×=Ð=¨*°R­.¸AÑ*=Ð=r8   c                 ób   € V P                  4       pVR,          ^8H  ;'       d    VR,          ^8„  # r,  rû  r-  s   & r6   r}	  Ú-_meta_grouped_mm_common.<locals>.is_col_major9!  s-   € ØŸ™›ˆJØ˜b•> QÑ&×=Ð=¨:°b­>¸AÑ+=Ð=r8   c                  ó0   <€ R S P                  4       RR  2# )zNExpected mat_a tensor to be row major in the last two dimensions, got strides NrO  rû  r(  s   €r6   rk   r  ?!  s!   ø€ ÐdÐej×eqÑeqÓesÐtvÐtwÐexÐdyÑzr8   c                  ó0   <€ R S P                  4       RR  2# )zQExpected mat_b tensor to be column major in the last two dimensions, got strides NrO  rû  )r  s   €r6   rk   r  C!  s!   ø€ ÐgÐhm×htÑhtÓhvÐwyÐwzÐh{Ðg|Ñ}r8   c                 ó–  a aaa€ SP                  4       ^,
          o^SP                  4       ,          pSP                  4       oSS^,
          ,          ^8X  da   SS,          \        ^SP                  S^,
          ,          4      8¼  d1   \
        P                  ! SS,          V,          ^ 8H  VV V3R l4       R# SS,          ^8X  dh   SS^,
          ,          \        ^SP                  S,          4      8¼  d8   \
        P                  ! SS^,
          ,          V,          ^ 8H  VV V3R l4       R# \
        P                  ! RVV3R l4       R# )r1   c                  ó*   <€ R S RS  RSS ,           R2# ©rž  z stride along z% dim to be multiple of 16 bytes, got rø  r2   ©Úend_dimÚmat_namer/  s   €€€r6   rk   ÚF_meta_grouped_mm_common.<locals>.check_valid_strides.<locals>.<lambda>O!  s'   ø€ ˜) H :¨^¸G¸9ÐDiÐjtÐu|Õj}Ði~Ð~ñ  Ar8   c                  óF   <€ R S RS ^,
           RSS ^,
          ,           R2# r7  r2   r8  s   €€€r6   rk   r;  V!  sI   ø€ ˜) H :¨^¸GÀa½K¸=ÐHmÐnxð  zAð  DEõ  zEõ  oFð  nGð  GHñ  Ir8   Fc                  ó*   <€ R S RS P                    R2# )zInvalid strides/sizes, got z for strides and z for sizes.ra  r-  s   €€r6   rk   r;  [!  s   ø€ Ð5°j°\ÐARÐSV×S\ÑS\ÐR]Ð]hÑir8   N)rŽ   Úelement_sizerû   r9  r¢   r\   rn   )r:  r.  r  r9  r/  s   ff @@r6   Úcheck_valid_stridesÚ4_meta_grouped_mm_common.<locals>.check_valid_stridesF!  s   û€ Ø—'‘'“)˜a•-ˆØ˜#×*Ñ*Ó,Õ,ˆ	Ø—Z‘Z“\ˆ
Ø�g •kÕ" aÔ'¨J°wÕ,?Ä3Øˆs�y‰y˜ 1�Õ%óD
ô -
ô �LŠLØ˜7Õ# iÕ/°1Ñ4ö Aöð ˜Õ  AÔ%¨*°W¸qµ[Õ*AÄSØˆs�y‰y˜Õ!óF
ô +
ô �LŠLØ˜7 Q�;Õ'¨)Õ3°qÑ8ö Iöô
 �LŠLØÝiör8   r  r  c                  ó>   <€ R S P                    RSP                    R2# )zhFor FP8 scales must both be float32, or for MXFP8 both scales must be float8_e8m0fnu. Got scale_a.dtype=z and scale_b.dtype=rø  r™   r–	  s   €€r6   rk   r  h!  sR   ø€ Ð~ð  @G÷  @Mñ  @Mð  Nð  Nað  bi÷  boñ  boð  apð  pqñ  rr8   c                 óx  <a aaaaaa	a
€ SP                  4       ^8X  dê   \        P                  ! SP                  4       V 3R l4       S'       d?   \        P                  ! SP                  4       SP                  4       8H  VVV 3R l4       R# \        P                  ! SP                  4       ^8H  VV 3R l4       \        P                  ! SP                  ^ ,          SP                  S,          S,          8H  VVVV V3R l4       R# \        P                  ! SP                  R4      ^8H  V 3R l4       \        P                  ! SP                  ^ ,          SP                  ^ ,          8H  VVV 3R l4       S'       dÅ   \        P                  ! SP                  SP                  ^,
          8H  VVV 3R l4       SP                  w  orV^ p\        WW,          ^4      o	\        V^€4      o
\        P                  ! SP                  ^ ,          S8H  ;'       d    SP                  ^,          S	S
,          8H  VV	V
VV3R l4       R# \        P                  ! SP                  4       ^8H  VV 3R	 l4       \        P                  ! SP                  ^,          SP                  ^S,           ,          8H  VVV V3R
 l4       R# )r@   c                  ó   <€ R S  R2# )rž  z to be contiguous.r2   ©Ú
scale_names   €r6   rk   Ú>_meta_grouped_mm_common.<locals>.check_scale.<locals>.<lambda>s!  s   ø€ ˜i¨
 |Ð3EÑFr8   c                  óB   <€ R S RS P                    RSP                    2# )zKFor MXFP8, scale must have same number of dimensions as target tensor, but ú has mat.ndim=ú and scale.ndim=r©  ©r.  rZ  rE  s   €€€r6   rk   rF  |!  sX   ø€ Ð"mÐnxÐmyð  zHð  IL÷  IQñ  IQð  HRð  Rbð  ch÷  cmñ  cmð  bnñ  !or8   c                  ó2   <€ R S RS P                  4        R2# )rž  z to be 1D tensor, but got ú	D tensor.r4  ©rZ  rE  s   €€r6   rk   rF  �!  ó!   ø€  )¨J¨<Ð7QÐRW×R[ÑR[ÓR]ÐQ^Ð^gÑ hr8   c                  ón   <€ R S RS P                   S,          S,           RSP                   ^ ,           R2# )rž  z	 to have r‘	  z
 elements.ra  )r.  rZ  Úscale_multiplierrE  Ú
scaled_dims   €€€€€r6   rk   rF  …!  sU   ø€  )¨J¨<°yÀÇÁÈ:ÕAVÐYiÕAiÐ@jÐjyÐz÷  {Fñ  {Fð  GHõ  {Ið  zJð  JTñ  !Ur8   c                  ó   <€ R S  R2# )rž  z( to be contiguous in the last dimension.r2   rD  s   €r6   rk   rF  Š!  s   ø€ ˜i¨
 |Ð3[Ñ\r8   c                  ó`   <€ R S RS P                   ^ ,           RSP                   ^ ,           R2# )rž  z batch dimension to be ú, got rø  ra  rJ  s   €€€r6   rk   rF  Ž!  s4   ø€ ˜i¨
 |Ð3JÈ3Ï9É9ÐUVÍ<È.ÐX^Ð_d×_jÑ_jÐklÕ_mÐ^nÐnoÑpr8   c                  óB   <€ R S RS P                    RSP                    2# )z0For MXFP8, 3d tensor should have 2d scales, but rH  rI  r©  rJ  s   €€€r6   rk   rF  •!  sD   ø€ Ð"RÐS]ÐR^Ð^lÐmp×muÑmuÐlvð  wGð  HM÷  HRñ  HRð  GSñ  !Tr8   c                  óV   <€ R SP                    RS  RSS,           RSP                    2# )zFor MXFP8, expected mat.shape=z to have scale shape of (Ú,z), but got ra  )ÚGÚ	blocked_KÚ	blocked_Nr.  rZ  s   €€€€€r6   rk   rF  Ÿ!  sO   ø€ Ð"@ÀÇÁÀÐKdÐefÐdgÐghÐirÐu~Õi~Ðhð  @Kð  LQ÷  LWñ  LWð  KXñ  !Yr8   c                  ó2   <€ R S RS P                  4        R2# )rž  z to be 2D tensor, but got rL  r4  rM  s   €€r6   rk   rF  ¤!  rN  r8   c                  ón   <€ R S RS P                   ^S,           ,           RSP                   ^,           R2# )rž  z non-batch dimension to be rT  rø  ra  )r.  rZ  rE  rQ  s   €€€€r6   rk   rF  ¨!  sR   ø€  )¨J¨<Ð7RÐSV×S\ÑS\Ð]^ÐakÕ]kÕSlÐRmÐmsÐty×tÑtð  ABõ  uCð  tDð  DEñ  !Fr8   Nr÷   )rŽ   r\   rn   re  r¢   rû   rÔ   r=   )rE  rZ  r.  rQ  rP  r  rl  rµ  rX  rY  rZ  Úis_mxfp8s   fffff   @@@€r6   Úcheck_scaleÚ,_meta_grouped_mm_common.<locals>.check_scaleo!  så  ÿø€ Ø�w‰w‹y˜AŒ~Ü—’Ø×'Ñ'Ó)ÜFô÷ Ü—L’LØŸ	™	› s§w¡w£yÑ0ö oöô
 —L’LØŸ	™	› qÑ(Ýhôô —L’LØŸ™ A�¨#¯)©)°JÕ*?ÐBRÕ*RÑR÷ Uð  Uöô
 —’Ø—L‘L Ó$¨Ñ)Ü\ôô —’Ø—K‘K •N c§i¡i°¥lÑ2Þpô÷ Ü—L’LØŸ
™
 c§h¡h°¥lÑ2ö Tôð "Ÿi™i‘G�A�qØ!#�JÜ (¨­¸Ó ;�IÜ (¨¨CÓ 0�IÜ—L’LØŸ™ A�¨!Ñ+×WÐW°·±¸AµÀ)ÈiÕBWÑ0W÷ Yð  Yöô
 —L’LØŸ	™	› qÑ(Ýhôô —L’LØŸ™ A�¨#¯)©)°A¸
µNÕ*CÑC÷ För8   rf	  rg	  c                  ó   € R # )z:Scale result tensor provided, but it is not supported yet.r2   r2   r8   r6   rk   r  ³!  ru   r8   c                  óN   <€ R S P                  4        RSP                  4        R2# )z/Offsets tensor not provided, but is needed for zD/zD multiplicand layouts.r4  r"  s   €€r6   rk   r  ¹!  s(   ø€ ÐEÀeÇiÁiÃkÀ]ÐRTÐUZ×U^ÑU^ÓU`ÐTaÐaxÑyr8   c                  ó,   <€ R S P                  4        R2# )z.Offsets tensor must be 1D, but got offs.dim()=rø  r4  ©r  s   €r6   rk   r  ¾!  s   ø€ ÐHÈÏÉËÈÐTUÑVr8   c                  ó$   <€ R S P                    R2# )z7Offsets tensor must be integer (int32) tensor, but got rø  r™   rc  s   €r6   rk   r  Â!  s   ø€ ÐQÐRV×R\ÑR\ÐQ]Ð]^Ñ_r8   c                  ó,   <€ R S P                  4        R2# )z.Offsets tensor must have stride (1,), but got rø  rû  rc  s   €r6   rk   r  Æ!  s   ø€ ÐHÈÏÉËÈÐWXÑYr8   c                  ó   € R # )zJOffsets tensor provided, but is not needed for 3D/3D multiplicand layouts.r2   r2   r8   r6   rk   r  Ë!  s   € Ñ`r8   c                  ó   € R # )z:Float16 grouped_mm requires cuBLASLt grouped GEMM support.r2   r2   r8   r6   rk   r  Ñ!  ru   r8   c                  ó   € R # )z2Bias tensor provided, but it is not supported yet.r2   r2   r8   r6   rk   r  Ö!  s   € ÑDr8   c                  ó   € R # )z4If output dtype provided, it must be torch.bfloat16.r2   r2   r8   r6   rk   r  Ü!  s   € ÑJr8   c                  ó   € R # )z3Grouped gemm output dtype must match `mat_a` dtype.r2   r2   r8   r6   rk   r  â!  r`	  r8   )r@   rá  r÷   rO  r0   )r\   rn   rè  r£  r¤  r  r)  Úget_device_propertiesÚgcnArchNamern	  rd   r<  rç  rŽ   rÒ   r=  rš	  r¢   rÅ  rû   Ú#_grouped_mm_fp16_cublaslt_supportedr  )r  r  rf	  rg	  r  r¼  rh	  r¾  ri	  ÚscaledÚ	fp8_dtypeÚmat_a_is_2dÚmat_b_is_2drz	  r}	  r?  r^  rP  r]  s   fffff&&&&         @r6   Ú_meta_grouped_mm_commonrr  ô   sr  ý€ ô 
‡L‚LØ	�Dˆ˜g¨˜oÑ.Ù>ôð ˜DÐ ×8Ð8 W°DÐ%8€F÷ Ü×'Ñ'ˆ	ä�M‰M××ÐÜ—
‘
×'Ñ'×)Ò)Øœ5Ÿ:™:×;Ñ;¸AÓ>×JÑJÔJä×-Ñ-ˆIÜ�ŠØ�K‰K˜9Ñ$×AÐA¨¯©¸	Ñ)AÝxõ	
ð 
�‰œŸ™Ô	&Ü�ŠØ�K‰K˜5Ÿ;™;Ñ&Ý~õ	
ð 
�‰œŸ™Ô	%Ü�ŠØ�K‰K˜5Ÿ;™;Ñ&Ý~õ	
ô
 	�ŠØÜdô	
ô
 
‡L‚LØ�	‰	‹�vÑ×7Ð7 %§)¡)£+°Ñ"7Ýqôð
 —)‘)“+ Ñ"€KØ—)‘)“+ Ñ"€KçŸkÜ�ŠØ�J‰J�r‹N˜eŸj™j¨›nÑ,ÙIô	
÷
 ò	>ò	>ô 	�ŠÙ˜ÓÜzô	
ô 	�ŠÙ˜ÓÜ}ô	
ò
ñ0 ˜ Ô'Ù˜ Ô'àÓ˜wÓ2Ü�ŠØ�]‰]œeŸm™mÑ+×NÐN°·±ÄÇÁÑ0N÷ ð à—‘¤×!5Ñ!5Ñ5÷ :ð :Ø—M‘M¤U×%9Ñ%9Ñ9õ rô	
ð �M‰MœU×1Ñ1Ñ1÷ 6ð 6Ø—‘¤×!5Ñ!5Ñ5ð 	÷
:	ðz "Ò-·+Ç+ˆD�J‰J�qŽMÐSTð 	ñ 	�I˜w¨¨qÐ2BÔCÙ�I˜w¨¨qÐ2BÔCä�ŠØ˜DÐ ÙPô	
÷
 —kÜ�ŠØ˜ÐÝyô	
ð ÒÜ�LŠLØ—‘“
˜a‘ÜVôô �LŠLØ—
‘
œeŸk™kÑ)Ü_ôô �LŠLØ—‘“ Ñ%ÜYôøô
 	�ŠØ�DˆLÙ`ô	
ð
 ‡{�{”e—m‘mÔ#Ü�ŠÜ/°°u¸dÓCÙPô	
ô
 
‡L‚LØ�ˆÙDô÷
 Ü�ŠØ˜Ð×<Ð< ¬e¯n©nÑ!<ÙJõ	
ð
 ×,Ð, §¡ˆ	Ü�ŠØ˜Ÿ™Ñ$ÙIô	
ô
 ,¨E°5¸$À	ÓJÐJr8   c                óV   € V ^8„  d   QhR\         R\         R\         R,          R\        /# )r@   r  r  r  NrA   r¢  )rB   s   "r6   rC   rC   è!  s0   € ÷ ñ ÜðÜ ðÜ(.°­ðä	ñr8   c                 óÞ  € \        V 4      R 8w  g   \        V4      R 8w  d   R# \        P                  P                  4       '       g   R# V P	                  4       ^8H  pVP	                  4       ^8H  pVe"   V'       g	   V'       d   VP                  ^ 4      MV P                  ^ 4      pV^8  g   VR8”  d   R# \        P                  P                  4       pRp\        P                  P                  '       dN   \        P                  P                  P                  R4      p\        V^ ,          4      \        V^,          4      3pVR8¬  ;'       d!    V^ ,          ^	8¬  ;'       d    V^ ,          ^8*  # )r  Fi   rø  )r   r   )é   rá  )
r&  r\   r  r)  rŽ   rÒ   Úget_device_capabilityr£  ÚsplitrÁ   )	r  r  r  rp  rq  Úbatch_countÚdevice_capabilityÚcuda_versionÚpartss	   &&&      r6   rm  rm  è!  s%  € ô �5Ó˜VÔ#¤{°5Ó'9¸VÔ'CÙÜ�:‰:×"Ñ"×$Ò$ÙØ—)‘)“+ Ñ"€KØ—)‘)“+ Ñ"€Kð Ò§·ð 	�	‰	�!Œà�Z‰Z˜‹]ð ð
 �Q„˜+¨Ô,ÙÜŸ
™
×8Ñ8Ó:ÐØ$*€LÜ‡}�}××ÐÜ—‘×"Ñ"×(Ñ(¨Ó-ˆÜ˜E !�H›¤s¨5°­8£}Ð5ˆØ˜7Ñ"÷ ð Ø˜!Õ Ñ!×@Ð@Ð&7¸Õ&:¸bÑ&@ðr8   c                óž   € V ^8„  d   QhR\         R\         R\         R,          R\         R,          R\        P                  R,          R\         /# )r@   r  r  r  Nr¼  r¾  rA   rÎ  )rB   s   "r6   rC   rC   "  sU   € ÷ ñ Üðäðô �4�-ðô �4�-ð	ô
 �{‰{˜TÕ!ðô ñr8   c                 ó(   € \        V VR R VVR VR7      # )N)rf	  rg	  r  r¼  rh	  r¾  )rr  )r  r  r  r¼  r¾  s   &&&&&r6   Úmeta_grouped_mmr~  "  s)   € ô #ØØØØØØØØô	ð 	r8   c                ó\  € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\         P                  R\         P                  R,          R\         P                  R,          R\         P                  R,          R	\         P                  R,          R
\        /	# )r@   r  r  rf	  rg	  r  Nr¼  rh	  r¾  ri	  rj	  )rB   s   "r6   rC   rC   "  s–   € ÷ ñ Ü�<‰<ðä�<‰<ðô �\‰\ðô �\‰\ð	ô
 �,‰,˜Õ
ðô �,‰,˜Õ
ðô —,‘, Õ%ðô �{‰{˜TÕ!ðô ñr8   c	                 ó^   € T;'       g    \         P                  p\        V VVVVVVVVR 7	      # ))rf	  rg	  r  r¼  rh	  r¾  ri	  )r\   r<  rr  )	r  r  rf	  rg	  r  r¼  rh	  r¾  ri	  s	   &&&&&&&&&r6   Úmeta_scaled_grouped_mmr�  "  s=   € ð ×+Ð+œUŸ^™^€Iä"ØØØØØØØ!ØØ%ô
ð 
r8   c                ó  € V ^8„  d   QhR\         P                  R\         P                  R\        \         P                  ,          R\        \        ,          R\        \        ,          R\        \         P                  ,          R\        \        ,          R\        \        ,          R	\         P                  R
,          R\         P                  R
,          R\         P                  R
,          R\        \        ,          R
,          R\
        /# )r@   r  r  rf	  r¦	  r§	  rg	  r¨	  r©	  r  Nr¼  r¾  rª	  ri	  r«	  )rB   s   "r6   rC   rC   4"  sç   € ÷ Lñ LÜ�<‰<ðLä�<‰<ðLô ”%—,‘,ÕðLô œ•Ið	Lô
 ”C�yðLô ”%—,‘,ÕðLô œ•IðLô ”C�yðLô �,‰,˜Õ
ðLô �,‰,˜Õ
ðLô �{‰{˜TÕ!ðLô œ#•Y Õ%ðLô ñLr8   c                óN   € T
;'       g    \         P                  p\        WW�4      # )z‹Shape inference only, since the structured C++ meta doesn't support
dynamic shapes. Input validation lives there; same pattern as meta_mm.
)r\   r<  r  )r  r  rf	  r¦	  r§	  rg	  r¨	  r©	  r  r¼  r¾  rª	  ri	  r 	  s   &&&&&&&&&&&&& r6   Úmeta_scaled_grouped_mm_v2r„  3"  s"   € ð& ×,Ð,œeŸn™n€JÜ+¨E¸$ÓKÐKr8   c                 óT  € \        V4      \        R 4      8X  d3   V  F,  p\        P                  ! VP                  4       ^ 8„  R 4       K.  	  . pV  FT  pVe   TMVP                  pVP
                  '       d   \        V4      pVP                  VP                  RVR7      4       KV  	  V# )Úinfc                  ó   € R # )z:_foreach_norm cannot compute infinity norm on empty tensorr2   r2   r8   r6   rk   Ú#meta_foreach_norm.<locals>.<lambda>P"  s   € ÑTr8   r™   r2   )	r`   r\   rn   r    rd   r%  r   r¡  r¡   )ÚtensorsÚordrd   r_  Úresultsr¾  s   &&&   r6   Úmeta_foreach_normrŒ  J"  s�   € äˆSƒz”U˜5“\Ô!ÛˆAÜ�LŠLØ—‘“	˜A‘ÙTöñ ð
 €GÛˆØ"Ò.‘E°A·G±Gˆ	Ø××ÐÜ0°Ó;ˆIØ�‰�q—{‘{ 2¨Y�{Ó7Ö8ñ	 ð
 €Nr8   c                óH   € V ^8„  d   QhR\         R\        R\        R\         /# )r@   r;   rŽ   Úhalf_to_floatrA   ©r   rÁ   rÂ   )rB   s   "r6   rC   rC   ]"  s(   € ÷ ñ Œvð œCð ´ð ¼ñ r8   c                 ón  € V'       dI   V P                   \        P                  \        P                  39  d   \	        R V P                    R24      h\
        P                  ! V \
        P                  P                  R7      w  r4V'       g   TMTp\        P                  ! W\        P                  R7      pV# )z%half_to_float is True but x.dtype is z, expected half or bfloat16r  rŸ
  )rd   r\   r^   r<  r’   rU   r   r   rV   r§   rß   )r;   rŽ   rŽ  Úcomputation_dtyperY   r_  s   &&&   r6   Úsoftmaxr’  ["  sŽ   € ÷ Ø�7‰7œ5Ÿ:™:¤u§~¡~Ð6Ô6Ü Ø7¸¿¹°yÐ@[Ð\óð ô ',×&>Ò&>Ø	œu×DÑD×LÑLô'Ñ#Ð÷ (5‘<Ð:K€LÜ
×
Ò
˜1Ä×@WÑ@WÔ
X€CØ€Jr8   c           	      óø  aaaa	a
a€ \         P                  ! \        S4      ^,          ^ 8H  V3R l4       V P                  o\        S4      o
\        S4      ^,          pS
V,
          o	\         P                  ! S
V8¬  V
V3R l4       \        ;QJ d    R S 4       F  '       d   K   RM	  RM! R S 4       4      '       dÕ   T p\        S	S
4       F²  o^S
S,
          ^,
          ,          oSS,          ^ 8  d;   VP                  SSS,          ) VP                  S,          SS,          ,           4      pSS^,           ,          ^ 8  g   Ky  VP                  S^ VP                  S,          SS^,           ,          ,           4      pK´  	  VP                  4       # \        SRS	 4      p\        V4       F‰  o\        S4      S^,           ^,          ,
          oSS	S,           ,          SS,          ,           SS^,           ,          ,           p\         P                  ! V^ 8¬  VVV	VV3R l4       VP                  V4       K‹  	  \         P                  ! VV P                  V P                  V P                  \        V 4      R7      # )	r@   c                  ó    <€ R \        S 4       2# )z1Length of pad must be even but instead it equals r—  r­  s   €r6   rk   Ú'_constant_pad_nd_meta.<locals>.<lambda>s"  s   ø€ ÐCÄCÈÃHÀ:ÑNr8   c                  ó(   <€ R \        S4       RS  R2# )z`Length of pad should be no more than twice the number of dimensions of the input. Pad length is z while the input has r`  r—  )Úl_inpr®  s   €€r6   rk   r•  }"  s    ø€ ð 2Ü25°c³(°Ð;PØˆ'�ñr8   c              3   óp   "  € T F,  p\        V\        P                  4      ;'       d    V^ 8*  x € K.  	  R# 5irÌ	  )rx   rU   ÚIntWithoutSymInt)rz   r  s   & r6   r|   Ú(_constant_pad_nd_meta.<locals>.<genexpr>‚"  s,   é € Ð
IÁSÀŒ:�aœ×/Ñ/Ó0×;Ð;°Q¸!±VÔ;ÃSùs   ‚%6¨6FTNc            	      óv   <€ R SSS ,           ,           RSS,           RSS^,           ,           RSS ,            R2	# )zThe input size z, plus negative padding rÐ   zG resulted in a negative output size, which is invalid. Check dimension z of your input.r2   )r  r?  Úl_diffr®  Úpad_idxs   €€€€€r6   rk   r•  –"  sE   ø€ �o k°&¸1µ*Õ&=Ð%>Ð>VØ�7�|ˆn˜E # g°¥kÕ"2Ð!3ð 41Ø17¸!µ°¸OñMr8   )rd   r‹   r�   rÛ   )r\   rn   rø   r¢   r‘  rú   ÚnarrowrÉ   rù   r¡  r”   rd   r‹   r�   r   )r  r®  r}  Úl_padÚc_inputÚ	new_shapeÚnew_dimr  r?  rœ  r—  r�  s   &f&    @@@@@r6   Ú_constant_pad_nd_metar£  m"  sô  ý€ ô 
‡L‚LÜˆC‹�1�˜ÑÜNôð
 —+‘+€KÜ�Ó€EÜ�‹H˜�M€EØ�U�]€Fä	‡L‚LØ�‰õ	ô÷ ƒsÑ
IÁSÓ
I‡s‡s‚sÑ
IÁSÓ
I×IÒIØˆÜ�v˜uÖ%ˆAØ˜5 1�9 q�=Õ)ˆGØ�7�|˜aÔØ!Ÿ.™.Ø˜˜G��} g§m¡m°AÕ&6¸¸W½Õ&Eó�ð �7˜Q•;Õ !Ö#Ø!Ÿ.™.¨¨A¨w¯}©}¸QÕ/?À#ÀgÐPQÅkÕBRÕ/RÓS’ñ &ð �}‰}‹Ðä�[  &Ð)Ó*€IÜ�5Ž\ˆÜ�c“(˜q 1�u¨�kÕ*ˆØ˜f q�jÕ)¨C°­LÕ8¸3¸wÈ½{Õ;KÕKˆÜ�ŠØ�q‰L÷Mð Mô	
ð 	×Ñ˜Ö!ñ ô �;Š;ØØ�k‰kØ�|‰|Ø×)Ñ)Ü+¨EÓ2ôð r8   c                ó`   € V ^8„  d   QhR\         R\         R\        R\        R\        R\         /# )r@   rº  rç   rü  r	  r
  rA   r�  )rB   s   "r6   rC   rC   §"  sD   € ÷ 8ñ 8Üð8äð8ô ð8ô ð	8ô
 ð8ô ñ8r8   c                 óü  a€ V P                  4       ^8w  d   \        RV P                  4        R24      h\        P                  ! SP                  \        P
                  \        P                  39   V3R l4       V P                  pSP                  pSP                  ^ 8X  d   V^,          3pM2SP                  ^8X  d   V^ ,          V^,          3pM. VOV^,          N5pV P                  pV P                  WxR7      # )r@   z'weight' must be 2-D, got z-Dc                  ó$   <€ R S P                    R2# )zhExpected tensor for argument #1 'indices' to have one of the following scalar types: Long, Int; but got rá  r™   rï  s   €r6   rk   Úembedding.<locals>.<lambda>²"  s   ø€ ð0Ø07·±¨¸hñHr8   r™   )
rŽ   r’   r\   rn   rd   rž   rÅ  r¢   rÔ   r¡   )	rº  rç   rü  r	  r
  Úweight_shapeÚindices_shaper×   r¾  s	   &f&&&    r6   Ú	embeddingrª  ¥"  sÓ   ø€ ð ‡z�zƒ|�qÔÜÐ9¸&¿*¹*»,¸ÀrÐJÓKÐKÜ	‡L‚LØ�‰œ%Ÿ*™*¤e§k¡kÐ2Ñ2ô	
ôð —<‘<€LØ—M‘M€Mà‡|�|�qÔØ&2°1¥oÐ%7‰	Ø	�‰˜Ô	Ø" 1Õ% |°A¥Ð7‰	à5�mÐ5 \°!¥_Ñ5ˆ	à—‘€IØ×Ñ˜IÐÓ7Ð7r8   c                ót   € V ^8„  d   QhR\         R\        \         ,          R\        \        ,          R\        /# )r@   ræ   rÿ  Úmax_lengthsÚpadding_value)r   rù   rÁ   r`   )rB   s   "r6   rC   rC   Æ"  s8   € ÷ *ñ *Üð*ä”&�\ð*ô ”c•ð*ô ñ	*r8   c                 óF  € \        V4      ^8w  d   \        R\        V4       R24      h\        V4      ^8w  d   \        R\        V4       R24      hV^ ,          P                  ^ ,          ^,
          pV^ ,          pWE.V P                  R,          O5pV P                  V4      # )r1   z&Only one jagged dim is supported, got z offsetsz max_lengthsrÕ	  )rø   r’   r¢   r¡   )ræ   rÿ  r¬  r­  rm  r7  rë  s   &&&&   r6   Ú$meta__jagged_to_padded_dense_forwardr¯  Å"  s¦   € ô ˆ7ƒ|�qÔÜØ4´S¸³\°NÀ(ÐKó
ð 	
ô ˆ;Ó˜1ÔÜØ4´S¸Ó5EÐ4FÀlÐSó
ð 	
ð 	��
×Ñ˜Õ˜aÕ€AØ�A�€AØÐ,˜6Ÿ<™<¨Õ+Ñ,€LØ×Ñ˜LÓ)Ð)r8   c                 óB   € \        V 4      \        4       R  4       4       pV# )c                 ó8   € \        V \        P                  R 7      # rE  ©rZ   r   r   r  s   &r6   Ú_fÚ)_create_unary_float_meta_func.<locals>._fÝ"  s   € ô  ØÔ=×JÑJô
ð 	
r8   ©rP   r%   ©Úfuncr³  s   & r6   Ú_create_unary_float_meta_funcr¸  Ü"  ó*   € Ü�4ÓÜƒ]ñ
ó ó ð
ð
 €Ir8   c                 óT  € V P                   '       g%   VP                   '       g   VP                   '       d   \        R 4      h^ RIHp V! V P	                  4       ^ 8H  4      '       d-   V P                  V P                  4      V P                  ^ 4      3# V P                  ^ 4      pV P                  ^4      pVP                  ^ 4      pV P                  WïV4      pV
'       d6   V'       d   V P                  WïV4      pVV3# V P                  WäWÿ4      p VV3# V P                  ^ 4      pVV3# )zP_native_multi_head_attention fake implementation does not support nested tensorsrÄ   )rÆ   rÇ   rÈ   rÅ   r    r¡   r¢   rÒ   )rÁ  rõ   r}  r®   r	  r°   r±   r²   r³   r¿   Úneed_weightsÚaverage_attn_weightsrÀ   rÅ   rm  ÚTÚ
output_dimr-  Úattn_weightss   &&&&&&&&&&&&&      r6   Ú native_multi_head_attention_fakerÀ  è"  s  € ð  ‡‡€˜#Ÿ-Ÿ-˜-¨5¯?¯?¨?Ü!Ø^ó
ð 	
õ Eñ �e—k‘k“m qÑ(×)Ò)Ø—‘ §¡Ó,¨e¯o©o¸aÓ.@ÐAÐAà�
‰
�1‹€AØ�
‰
�1‹€Að ×!Ñ! !Ó$€JØ�_‰_˜Q :Ó.€Fçßð !Ÿ?™?¨1°Ó3ˆLð �LÐ!Ð!ð	 !Ÿ?™?¨1¸Ó=‰Lð �LÐ!Ð!ð —‘ qÓ)ˆà�LÐ!Ð!r8   c                 óB   € \        V 4      \        4       R  4       4       pV# )c                 ó8   € \        W\        P                  R 7      # rE  r²  r:   s   &&r6   r³  Ú*_create_binary_float_meta_func.<locals>._f#  s   € ô  ØÔ!@×!MÑ!Mô
ð 	
r8   rµ  r¶  s   & r6   Ú_create_binary_float_meta_funcrÄ  #  r¹  r8   c                 ó˜   a € \        S 4      V 3R  l4       pS P                   R2pW!n        \        \        \        V4      4      ! V4      pV# )c                 ó`   <€ S! V .VO5/ VB p\        V P                  VP                  4       V # rG   r|  )r£   rW   r!  r  rI   s   &*, €r6   Ú_fnÚ#_register_inplace_meta.<locals>._fnB#  s.   ø€ á�Ð'˜Ò' Ñ'ˆÜ §
¡
¨C¯I©IÔ6Øˆr8   rX   )r   r„   rP   Úgetattrr,   )rI   rÇ  Úinplace_names   f  r6   Ú_register_inplace_metarË  A#  sK   ø€ Ü
ˆ2ƒYôó ðð
 —k‘k�] !Ð$€LØ„LÜ
œ¤ lÓ3Ô
4°SÓ
9€Cà€Jr8   c                 ó~  a aa€ \         P                  ! S P                  SP                  8H  VV 3R  l4       S S.p\        S\        4      '       dV   SP
                  ^ 8w  d4   \         P                  ! S P                  SP                  8H  V V3R l4       VP                  S4       \        VR\        P                  / # )c                  ó<   <€ R SP                    RS P                    2# )r¦  z for `end`, but got dtype r™   )r…   r†   s   €€r6   rk   Úlerp.<locals>.<lambda>T#  s   ø€ �/ %§+¡+ Ð.HÈÏÉÈÑTr8   c                  ó<   <€ R S P                    RSP                    2# )r¦  z for `weight`, but got dtype r™   )r†   rº  s   €€r6   rk   rÎ  [#  s   ø€ ˜/¨%¯+©+¨Ð6SÐTZ×T`ÑT`ÐSaÑbr8   rR   )
r\   rn   rd   rx   r    rÔ   r¡  rZ   r   rV   )r†   r…   rº  rW   s   fff r6   ÚlerprÐ  O#  s“   ú€ ô 
‡L‚LØ�‰�s—y‘yÑ ÝTôð �3ˆ<€DÜ�&œ*×%Ò%Ø�;‰;˜!ÔÜ�LŠLØ—‘˜vŸ|™|Ñ+Ýbôð 	�‰�FÔÜØ	ðÜ=×EÑEñð r8   r}  c                ó:   € \        WV\        P                  R 7      # rE  rF  ©r  Útensor1Útensor2r}  s   &&&$r6   ÚaddcmulrÕ  c#  s   € ô Ø˜Ô0O×0WÑ0Wôð r8   c                ó   € \         P                  ! \        P                  ! VP                  4      ;'       d!    \        P                  ! VP                  4      '       * R  4       \        WV\        P                  R7      # )c                  ó   € R# )úFInteger division with addcdiv is no longer supported, and in a future )rØ  zErelease addcdiv will perform a true division of tensor1 and tensor2. z4The historic addcdiv behavior can be implemented as zA(input + value * torch.trunc(tensor1 / tensor2)).to(input.dtype) zfor integer inputs and as z6(input + value * tensor1 / tensor2) for float inputs. z?The future addcdiv behavior is just the latter implementation: z4(input + value * tensor1 / tensor2), for all dtypes.r2   r2   r8   r6   rk   Úaddcdiv.<locals>.<lambda>s#  s   € ñ 	
r8   r×  )r\   rn   rU   ræ  rd   rZ   r   rV   rÒ  s   &&&$r6   ÚaddcdivrÚ  k#  se   € ô 
‡L‚Lä×"Ò" 7§=¡=Ó1÷ 6ð 6Ü×&Ò& w§}¡}Ó5ô	
ñ		
ôô  Ø˜Ô0O×0WÑ0Wôð r8   c                  ó^  € / p R	 F+  p\         V,          pV F  pW09  g   K  W#,          W&   K  	  K-  	  V P                  4        EFä  w  rE\        V\        P                  P
                  4      '       d   K2  \        V\        4      '       g   \        R\        V4       24      hVP                  \        P                  P                  P                  4      ! V4       \        P                  P                  VP                  4       R4      '       d#   V\         R ,          9   d   \        V R24      hKî  VP                   '       d   EK  VP                  4       R
9   d   EK  RVP                  4       9   d   \"        P%                  WE4       EKH  RVP                  4       9   d   \&        P%                  WE4       EKu  RVP                  4       9   d   \(        P%                  WE4       EK¢  RVP                  4       9   d   \*        P%                  WE4       EKÏ  \,        P%                  WE4       EKç  	  R# )r‰   z$op_overload must be OpOverload, got ÚCompositeImplicitAutogradz« is a CompositeImplicitAutograd op, we shouldn't register meta function for it. Instead, we should let the decomposition run and write meta kernels for the base operators.zmkldnn::zmkl::zonednn::zquantized::N)r‰   Úpost_autogradÚpre_autograd>   úaten::cloneúaten::copy_úaten::rot90úaten::stackúaten::_to_copyúaten::empty_stridedúaten::constant_pad_ndúaten::as_strided_scatter)r   Úitemsrx   r\   Ú_opsÚHigherOrderOperatorr   r’   rƒ   Úpy_implÚ_CÚDispatchKeyr.   Ú%_dispatch_has_kernel_for_dispatch_keyrS  r§  Úis_viewÚ2_meta_lib_dont_use_me_use_register_meta_for_mkldnnÚimplÚ/_meta_lib_dont_use_me_use_register_meta_for_mklÚ2_meta_lib_dont_use_me_use_register_meta_for_onednnÚ5_meta_lib_dont_use_me_use_register_meta_for_quantizedÚ'_meta_lib_dont_use_me_use_register_meta)Úactivate_meta_tableÚtypÚregistryÚopoÚop_overloadrI   s         r6   Úactivate_metarú  �#  sÑ  € ØÐó 9ˆÜ-¨cÕ2ˆãˆCØÖ-Ø+3­=Ð#Ó(ó ñ 9ð /×4Ñ4×6‰ˆô
 �k¤5§:¡:×#AÑ#A×BÒBÙÜ˜+¤z×2Ò2Ü Ø6´t¸KÓ7HÐ6IÐJóð ð 	×ÑœEŸH™H×0Ñ0×5Ñ5Ô6°rÔ:ä�8‰8×9Ñ9Ø×ÑÓÐ ;÷
ò 
ð Ô8¸Õ@Ô@Ü"Ø"�mð $;ð ;óð ñ Að × × Ð ò à×ÑÓð	ô
ò à˜[×-Ñ-Ó/Ô/ÜB×GÑGÈ×XØ˜K×,Ñ,Ó.Ô.Ü?×DÑDÀ[×UØ˜{×/Ñ/Ó1Ô1ÜB×GÑGÈ×XØ +×"2Ñ"2Ó"4Ô4ÜE×JÑJØ÷ô 8×<Ñ<¸[×Móu 7r8   rG   )NNr÷   )F)ç        g      ð?rr
  )NNNFr   r1   r÷   r�  r[  )rs  )r€  T)FF)TT)r  )FTN)TFF)TFr¡  )g      à?Nrû  r0   )r2   rû  r0   F)r2   rû  FTN)Fr   FNFr÷   )NF)r÷   F)g      À?gUUUUUUÕ?FN)NNNNN)r   NNr1   )r   r   r1   )NNF)rû  FFN)Nrû  FFN)rû  FNN)Nrû  FNNF)rû  FN)FN)NNNNNNN)FNNNN)NNNF)Nr÷   FNN)NNNN)r÷   TT)NNr   N)éd   r   r   )r÷   )NNNNF)r@   N)r÷   FF)rû  )NTTN(Î  rå  Úcollections.abcr   r   Úenumr   Ú	functoolsr   Útypingr   Útyping_extensionsr   r\   Útorch._prims_commonr¬  rU   r	   r
   r   Útorch._decompr   r   r   r   Ú
torch._opsr   Útorch._primsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    Útorch._prims_common.wrappersr!   r"   r#   r$   r%   rú  r&   r'   Útorch.fx.experimentalr(   rA  Útorch.utilsr)   rL   r*   r+   r¹  r,   ÚlibraryÚLibraryrô  rú   r  r  r  r7   r=   rP   rZ   rf   rp   ÚlinspaceÚlogspacert  r–   Útaker»  r  r¤   Ú_standard_gammarª   Ú_transformer_encoder_layer_fwdrÊ   rØ   rá   rå   ÚcummaxÚcumminrì   rï   r  r  Ú_fft_c2cr1  r+  r5  Ú_fft_r2crE  ÚrandpermÚgenerator_outrI  rž   rN  ÚrandintrX  rT  Úlow_outr\  Úrandr^  Ú_philox_key_splitri  Ú_philox_key_fold_inrt  r}  r“  r•  r™  r›  rœ  Ú_fft_c2rr¢  r$  r­  r´  Ú
unsqueeze_r¸  Ú_sparse_semi_structured_linearrÉ  Ú_sparse_semi_structured_mmrØ  Ú_sparse_semi_structured_addmmrÝ  Ú_cslt_sparse_mmrì  Úindex_reducerö  Úindex_reduce_rù  Úindex_selectrý  Úsegment_reducer
  r9  Ú	unary_outr  rŽ   r  r*  r  r  r%  r!  r&  Ú_assert_asyncr*  Úmsgr.  Ú_printr1  Ú_make_dep_tokenr4  r;  Ú_functional_sym_constrain_ranger@  rC  Ú(_functional_sym_constrain_range_for_sizerE  Ú_functional_assert_asyncrG  rÝ   r]  rÞ   rk  rr  rz  r…  Ú_linalg_eighr†  r�  Ú_linalg_eigvalsÚlinalg_eigvalsr•  Ú
linalg_eigrš  rŸ  r¤  r¬  r²  r¹  rÎ  Úlinalg_inv_exrÒ  Úlinalg_ldl_factor_exrÚ  Úlinalg_ldl_solverê  Ú	linalg_luró  Úlinalg_lu_factor_exrù  Úlinalg_lu_solver  Ú	lu_unpackr  r  Ú	linalg_qrr   Úlinalg_polarr*  r/  r+  Ú_linalg_svdr8  rç  r­  rK  ra  Úlinalg_solve_triangularrj  rr  r{  Ú_linalg_detr~  r”  r£  r·  Úreflection_pad1dr¼  Úreplication_pad1drÆ  rÒ  Úreflection_pad1d_backwardr×  Úreplication_pad1d_backwardrÙ  rê  Úreflection_pad2drì  Úreplication_pad2drð  Ú_weight_norm_interface_backwardrø  Úreflection_pad2d_backwardrÓ  Úreplication_pad2d_backwardr   r  Úreflection_pad3dr  Úreplication_pad3dr  Úreflection_pad3d_backwardÚreplication_pad3d_backwardr  Ú_pdist_forwardr%  Ú_pdist_backwardr,  ÚbaddbmmrG  Ú	bernoullirI  Ú
bernoulli_r`   rL  r  rO  ÚpoissonrQ  Ú_fused_moving_avg_obs_fq_helperrb  Úmmrn  r  r&  rª  r®  Úmiopen_batch_normrÀ  ÚconvolutionrÆ  Ú_convolutionrÎ  rë  Ú_has_mkldnnrï  rÏ  Ú_convolution_pointwiserÖ  Ú_linear_pointwiserÙ  Úhas_mklrñ  r(  Ú_mkl_linearrÝ  rò  rÞ  Úqconv2d_pointwiseÚqconv_pointwiser°  rì  ÚbinaryÚbinary_tensorr÷  Úqlinear_pointwiserü  r  Úlinear_dynamic_fp16Úlinear_relu_dynamic_fp16r  Úqlinear_prepackr  ró  r  Ú
max_pool2dr  Úint4mm_packed_weight_cpur)  r/  Úquantize_per_tensorr2  Ú
avg_pool2drZ  r_  Úavg_pool2d_backwardrh  Ú
avg_pool3dr†  Úavg_pool3d_backwardr’  Ú_adaptive_avg_pool2dr˜  Ú_adaptive_avg_pool3drœ  Ú_adaptive_avg_pool2d_backwardr§  Ú_adaptive_avg_pool3d_backwardr¬  rª  Úadaptive_max_pool2drÀ  rÅ  rÇ  Úadaptive_max_pool3drÏ  rÑ  rÒ  Úrepeat_interleaverÕ  ry   rÚ  rà  ræ  r›   Ú_unsafe_indexr  Úconvolution_backwardr  Úaddbmmr  Úrandint_liker"  Ú_fused_adam_Ú_fused_adamw_r9  Ú_fused_adamrA  Ú_int_mmrJ  Ú_convert_weight_to_int4packrS  Ú#_convert_weight_to_int4pack_for_cpurY  Ú_weight_int4pack_mmrd  Ú_weight_int4pack_mm_for_cpurk  ru  rx  r­  Ú_dyn_quant_pack_4bit_weightr¹  Ú_dyn_quant_matmul_4bitrÀ  Ú_weight_int8pack_mmrÊ  Ú_cdist_forwardrâ  Ú_cdist_backwardrì  Ú_embedding_bagr  Ú_embedding_bag_forward_onlyr  r  Únansumr  ÚmedianÚ	nanmedianr  Ú
dim_valuesr  ræ   r  Úlogical_not_r!  Úrepeatr*  Úzero_r,  Úmul_ÚScalarÚlogical_and_Úlogical_or_Úlogical_xor_r/  Údiv_r6  Úadd_Úsub_rC  r”  ÚsubrH  ÚroundÚdecimalsrJ  rQ  Ú
__rshift__rU  Ú
__lshift__rY  Úzeror[  r\  rd  Úfillrh  Úrelu_rj  Ú	_add_relurm  Úrrelu_with_noiserr  Úrrelu_with_noise_functionalrt  Úrrelu_with_noise_rv  Ú	index_putÚ_unsafe_index_putrz  Úmasked_fill_r~  Ú_masked_scaler�  Úmasked_scatter_r†  Úmasked_scatterrˆ  Úmasked_scatter_backwardrŠ  Ú
index_put_rŒ  r›  ÚbmmrŸ  rd   Ú	dtype_outr¡  r£  r¨  rN  rO  r{  rÓ  rŽ  r  Ú max_pool2d_with_indices_backwardrç  Úmax_pool2d_with_indicesré  Úfractional_max_pool2dr   Úmax_pool3d_with_indicesr  Ú max_pool3d_with_indices_backwardr  r%  r'  r4  r;  Ú_grid_sampler_2d_cpu_fallbackrB  Ú&_grid_sampler_2d_cpu_fallback_backwardrE  Úgrid_sampler_2d_backwardrJ  rM  rO  rR  rç  Úonesrb  Úzerosre  Úselect_scatterri  Úslice_scatterrm  Údiagonal_scatterrp  rh  rë   ry  r‚  Úgatherr‰  r™  r¡  r£  r®  r±  Úscatter_addr¶  Úscatter_add_r¹  r°  r­   r}  rñ  Úvalue_reducer½  Úscatter_r¿  Ú#_scaled_dot_product_flash_attentionrÒ  rØ  rá  Ú#_scaled_dot_product_cudnn_attentionrë  Ú0_scaled_dot_product_fused_attention_overrideablerï  Ú9_scaled_dot_product_fused_attention_overrideable_backwardrü  Ú,_scaled_dot_product_flash_attention_backwardr 	  Ú+_scaled_dot_product_flash_attention_for_cpur	  Ú4_scaled_dot_product_flash_attention_for_cpu_backwardr
	  Ú*_scaled_dot_product_attention_math_for_mpsr!	  Ú'_scaled_dot_product_efficient_attentionr&	  Ú0_scaled_dot_product_efficient_attention_backwardr1	  Ú,_scaled_dot_product_cudnn_attention_backwardr4	  Ú_flash_attention_forwardr=	  Ú+_flash_attention_forward_no_dropout_inplacer@	  rC	  Ú_flash_attention_backwardrI	  Ú_efficient_attention_forwardrV	  Ú_efficient_attention_backwardrc	  r¡	  Ú
_scaled_mmr¤	  Ú_scaled_mm_v2r³	  Úscatter_reduceÚtwoÚtwo_outr·	  Úscatter_reduce_r¹	  Úmultinomialr¿	  rÃ	  rÓ	  rÝ	  Ú_upsample_nearest_exact1drç	  Ú_upsample_nearest_exact2drñ	  Ú"_upsample_nearest_exact2d_backwardrö	  Ú_upsample_nearest_exact3drü   rø	  Úvalues_stablerû	  r
  Ú_thnn_fused_lstm_cellr
  r/
  r2
  r<
  rB
  rF
  rH
  ÚargminrI
  rL
  ÚtopkrT
  Ú_segment_reduce_backwardrY
  Úkthvaluer^
  rß   rs
  rp
  rw
  r{
  Úpixel_shuffler‡
  r›
  Ú	bucketizeÚ
Tensor_outr¢
  Ú
Scalar_outr¥
  Úhistcr±
  Ú_upsample_bilinear2d_aaÚ_upsample_bicubic2d_aaÚ_upsample_lanczos2d_aar·
  Ú _upsample_bilinear2d_aa_backwardÚ_upsample_lanczos2d_aa_backwardr¼
  rÆ
  rË
  rg  rÒ
  ÚsearchsortedrÛ
  rá
  Úembedding_dense_backwardrä
  Ú_embedding_bag_backwardré
  Ú_embedding_bag_dense_backwardrç
  Ú*_embedding_bag_per_sample_weights_backwardró
  Úisinrû
  Ú	polygammar   Ú_local_scalar_denser  r  r
  r  rr  rm  Ú_grouped_mmr~  Ú_scaled_grouped_mmr�  Ú_scaled_grouped_mm_v2r„  Ú_foreach_normrŒ  Ú_softmaxr’  Úconstant_pad_ndr£  rª  Ú_jagged_to_padded_dense_forwardr¯  r¸  Ú_native_multi_head_attentionrÀ  rÄ  Úspecial_airy_aiÚspecial_bessel_y0Úspecial_bessel_y1Úspecial_modified_bessel_i0Úspecial_modified_bessel_i1Úspecial_modified_bessel_k0Úspecial_modified_bessel_k1Ú!special_scaled_modified_bessel_k0Ú!special_scaled_modified_bessel_k1Úspecial_chebyshev_polynomial_tÚspecial_chebyshev_polynomial_uÚspecial_chebyshev_polynomial_vÚspecial_chebyshev_polynomial_wÚ&special_shifted_chebyshev_polynomial_tÚ&special_shifted_chebyshev_polynomial_uÚ&special_shifted_chebyshev_polynomial_vÚ&special_shifted_chebyshev_polynomial_wÚspecial_hermite_polynomial_hÚspecial_hermite_polynomial_heÚspecial_laguerre_polynomial_lÚspecial_legendre_polynomial_prË  rÐ  rÕ  rÚ  Úlerp_Úaddcmul_Úaddcdiv_Útorch._refs.nn.functionalÚtorch._refs.specialrú  r2   r8   r6   Ú<module>r     s9  ðã ß .Ý Ý Ý Ý 'ã Ý #ß +Ñ +÷ó õ "ß U÷÷ ÷ ÷ ÷ õ ÷ <Ý 7Ý )ñ ˆTƒ]€Ùˆtƒ_€à‡y�y‡~�~€à*/¯-©-×*?Ñ*?ÀÈÐPVÓ*WÐ 'Ù % a£Ñ €ˆ)�Xòò"õ

õò(*òñ �—‘˜tŸ}™}Ð-Ó.Ùƒð
 
Ø
ØØ�=‰=ØØó7ó ó /ð7ñt �—	‘	×!Ñ! 4§9¡9§=¡=Ð1Ó2Ùƒñ'ó ó 3ð'ñ �×$Ñ$×,Ñ,¨d×.BÑ.B×.FÑ.FÐGÓHÙƒô"ó ó Ið"ñ à×+Ñ+×3Ñ3Ø×+Ñ+×/Ñ/ðóñ ƒ÷ !ó óð !ñF �×!Ñ!×)Ñ)¨4×+<Ñ+<×+@Ñ+@ÐAÓBÙƒð%¡Ró %ó ó Cð%ñ$ ˆt×%Ñ%Ó&ÙƒñIó ó 'ðIñ ˆt×'Ñ'Ó(ÙƒñIó ó )ðIñ Ø	‡[�[×Ñ˜$Ÿ+™+Ÿ/™/¨4¯;©;×+>Ñ+>ÀÇÁÇÁÐPóñ ˆX�yÓ!ñó "óðñ �×!Ñ!×)Ñ)¨4×+<Ñ+<×+@Ñ+@ÐAÓBÙƒñIó ó CðIò.÷bð ñ �—‘×%Ñ% t§}¡}×'8Ñ'8Ð9Ó:Ùƒñ"<ó ó ;ð"<ðJ €õñ �—‘×%Ñ% t§}¡}×'8Ñ'8Ð9Ó:ÙƒñI
ó ó ;ðI
ñX ˆt�}‰}×*Ñ*Ó+ð3 $ó 3ó ,ð3ñ ˆt�}‰}×$Ñ$Ó%ð
ð �*‰*ð
ð ð	
ð
 ð
ð ó
ó &ð
ñ �—‘×$Ñ$ d§l¡l×&6Ñ&6Ð7Ó8Ùƒðð �*‰*ð	ð
 ðð ðð óó ó 9ðñ& �—‘× Ñ  $§,¡,×"6Ñ"6Ð7Ó8Ùƒðð
 �*‰*ðð ðð ðð óó ó 9ðñ& �—	‘	×!Ñ! 4§9¡9§=¡=Ð1Ó2Ùƒð Tð °$ð ¸tð ÐPTó ó ó 3ðñ ˆt×%Ñ%×-Ñ-Ó.ñ8ó /ð8ñ" ˆt×'Ñ'×/Ñ/Ó0ñ	!ó 1ð	!ñ ˆt×'Ñ'×.Ñ.Ó/ñ!ó 0ð!ò(%
ñP ˆt×#Ñ#×+Ñ+Ó,ôó -ðñ
 ˆt×$Ñ$×,Ñ,Ó-ôó .ðñ
 �—‘×%Ñ% t§}¡}×'8Ñ'8Ð9Ó:Ùƒô*Ló ó ;ð*LñZ ˆt�z‰z×!Ñ!Ó"ôó #ðò:	(ñ ˆt�Š×&Ñ&Ó'ñó (ðñ ˆt×2Ò2Ó3÷)ó 4ð)ñX ˆt×.Ò.Ó/÷ó 0ðñ> ˆt×1Ò1Ó2ð)ð ð)ð 
ð)ð %)ö)ó 3ð)ñX ˆt×#Ò#Ó$÷8<ó %ð8<ñv ˆt× Ò ×(Ñ(Ó)ð	Ið ö	Ió *ð	Iñ ˆt×!Ò!×)Ñ)Ó*ð	ð ö	ó +ð	ñ ƒÙˆt× Ò ×(Ñ(Ó)ñ'ó *ó ð'ñ ˆt×"Ò"×*Ñ*Ó+ð Wð "ð	 Wð
 "ð Wð "ð Wð ð Wð ð Wð ö Wó ,ð WñF �—’× Ñ  $§(¢(×"4Ò"4Ð5Ó6Ùƒñó ó 7ðñ ˆt�xŠx�|Š|Óôó ðñ �—’× Ñ  $§(¢(×"4Ò"4Ð5Ó6Ùƒñó ó 7ðñ ˆt�xŠx�|Š|Óôó ðñ ˆt�zŠz×!Ñ!Ó"ñ6ó #ð6ñ ˆt�zŠz�~‰~Óñ(ó ð(ñ
 ˆt×!Ò!×)Ñ)Ó*ñó +ðñ ˆt×!Ò!×%Ò%Ó&ñó 'ðñ ˆt�{Š{×"Ñ"Ó#ñó $ðñ ˆt×#Ò#×+Ñ+Ó,ð*à
ð*ð ð*ð ð	*ð
 ð*ð ó*ó -ð*ñ ˆt×'Ò'×/Ñ/Ó0ô,ó 1ð,ñ ˆt×3Ò3×;Ñ;Ó<ôó =ðñ
 ˆt×0Ò0×8Ñ8Ó9ô6ó :ð6ñ& ˆt×<Ò<×DÑDÓEñó Fðñ
 ˆt×,Ò,×0Ò0Ó1ñó 2ðõ

õ  ÷H
ð 
÷$ð õ
÷ð õñ �×!Ò!×)Ñ)¨4×+<Ò+<×+HÒ+HÐIÓJÙˆ]˜NÓ+÷ó ,ó Kðñ" �×$Ò$×,Ñ,¨d×.AÒ.A×.EÑ.EÐFÓGÙƒôBó ó HðBñ �—’Ð Ó!Ùˆ]˜NÓ+ôó ,ó "ðõ&Qñ ˆt×*Ò*Ó+Ùƒô)ó ó ,ð)ñ ˆt×"Ò"Ó#Ùƒ÷Jó ó $ðJñ ˆt×$Ò$Ó%Ùƒ÷)ó ó &ð)ñ ˆt×&Ò&×.Ñ.Ó/÷ó 0ðñ" Ø	×$Ò$×,Ñ,¨d×.MÒ.M×.QÑ.QÐRóñ ƒô.ó óð.ñd ˆt×!Ò!×)Ñ)Ó*÷ó +ðñ �×)Ò)×1Ñ1°4×3LÒ3L×3PÑ3PÐQÓRÙˆT�8˜VÓ$ðð ðð ö	ó %ó Sðñ& �×%Ò%×-Ñ-¨t×/DÒ/D×/HÑ/HÐIÓJÙƒð'ð
 ö'ó ó Kð'ñT �—’×&Ñ&¨¯ª×(:Ñ(:Ð;Ó<ÙˆS�#�sÓð¨tö ó ó =ðñ6 �×(Ò(×0Ñ0°$×2JÒ2J×2NÑ2NÐOÓPÙˆT�8˜VÓ$ð ð ð ð ö	 ó %ó Qð ñF �×$Ò$×,Ñ,¨d×.BÒ.B×.FÑ.FÐGÓHÙƒð4ð
 ð4ð ö4ó ó Ið4ñn ˆt�~Š~ÓÙˆS�#�sÓ÷$ó ó ð$õPñ* �—’×&Ñ&¨¯ª×(:Ñ(:Ð;Ó<ÙˆS�#Ó÷ó ó =ðñ4 �×!Ò!×)Ñ)¨4×+<Ò+<×+@Ñ+@ÐAÓBÙˆS�#Óôó ó Cðñ4 �×$Ò$×,Ñ,¨d×.BÒ.B×.GÒ.GÐHÓIÙˆV�[ $¨Ó1ô'ó 2ó Jð'ñ$ ˆt×Ò×'Ñ'Ó(÷"ó )ð"õJ.õ".õ(ñ ˆt×$Ò$Ó%ð7ð ð	7ð
 ð7ð !ð7ð ð7ð !ð7ð ö7ó &ð7ñt �×,Ò,×4Ñ4°d×6RÒ6R×6VÑ6VÐWÓXðð
 ðð  ðð öó Yðñ4 ˆt×$Ò$Ó%ÙˆS�# 4Ô(÷+(ó )ó &ð+(ñ^ ˆt×Ò×'Ñ'Ó(ñ
ó )ð
ñ ˆt�zŠzÓÙƒ÷Wó ó ðWòtòB%;ñP ˆt×$Ò$Ó%Ùƒñ=ó ó &ð=ñ ˆt×%Ò%Ó&Ùƒñ>ó ó 'ð>ò(ñ@ ˆt×-Ò-Ó.Ùˆ\ÓñSó ó /ðSñ ˆt×.Ò.Ó/Ùˆ\ÓñTó ó 0ðTò<ñ~ ˆt×$Ò$Ó%Ùƒñ=ó ó &ð=ñ ˆt×%Ò%Ó&Ùƒñ>ó ó 'ð>ñ Ø×(Ò(×0Ñ0óñóðñ à×&Ò&×.Ñ.Ø×&Ò&×1Ò1Ø×'Ò'×/Ñ/Ø×'Ò'×2Ò2ð	óñ ˆ\Óñ&ó óð&ò:>GñB ˆt×$Ò$Ó%Ùƒñ=ó ó &ð=ñ ˆt×%Ò%Ó&Ùƒñ>ó ó 'ð>ñ à×&Ò&×.Ñ.Ø×&Ò&×1Ò1Ø×'Ò'×/Ñ/Ø×'Ò'×2Ò2ð	óñ ˆ\Óñ((ó óñ((ñV ˆt×"Ò"Ó#Ùƒ÷ó ó $ññ ˆt×#Ò#Ó$Ùƒô	Pó ó %ñ	Pñ �—’×$Ñ$ d§l¢l×&6Ñ&6Ð7Ó8Ù˜Ôð'¨qð '¸ó 'ó ó 9ñ'ñ: �—’×&Ñ&¨¯ª×(:Ñ(:Ð;Ó<ÙƒðI dó Ió ó =ñIñ
 ˆt�Š×$Ò$Ó%ôó &ññ ˆt�~Š~×ÒÓ ôIó !ñIñ
 �—’×$Ñ$ d§l¢l×&6Ñ&6Ð7Ó8Ùƒô"ó ó 9ñ"ñ ˆt×3Ò3×;Ñ;Ó<ô*ó =ñ*ñ. ˆt�wŠwÓÙ˜Ô÷3ó ó ñ3ó:Bö÷`ñ `óFQñ ˆt×%Ò%×-Ñ-Ó.ô$$ó /ñ$$ñN ˆt×Ò×'Ñ'Ó(ô#ó )ñ#ñL ˆt× Ò ×(Ñ(Ó)÷ó *ñð8 	‡8‚8××ÒØ9>¿¹×9NÑ9NØ�&˜&ó:Ñ6ñ �5—9‘9×#Ò#×:Ò:×BÑBÓCñó Dññ, �5—9‘9×#Ò#×5Ò5×=Ñ=Ó>ñSó ?ñSð
 ‡x‚x××ÑØ:?¿-¹-×:OÑ:OØ�6˜6ó;
Ñ7ñ 
�u—y‘y—}’}×0Ò0Ó	1ñ	ó 
2ñ	ð
 :?¿¹×9NÑ9NØ�&˜&ó:Ñ6ñ �5—9‘9×#Ò#×5Ò5×=Ñ=Ó>Ù�5—9‘9×#Ò#×3Ò3×;Ñ;Ó<Ù�5—9‘9×#Ò#×3Ò3×:Ò:Ó;ñ4ó <ó =ó ?ñ4ñl �5—9‘9×#Ò#×5Ò5×<Ò<Ó=Ù�5—9‘9×#Ò#×5Ò5×CÒCÓDòó Eó >ññ< �5—9‘9×#Ò#×5Ò5×=Ñ=Ó>Ù�5—9‘9×#Ò#×5Ò5×<Ò<Ó=òó >ó ?ññ> �5—9‘9×#Ò#×5Ò5×<Ò<Ó=Ù�5—9‘9×#Ò#×5Ò5×CÒCÓDò$ó Eó >ñ$ñL �5—9‘9×#Ò#×7Ò7×?Ñ?Ó@Ù�5—9‘9×#Ò#×<Ò<×DÑDÓEò	ó Fó Añ	ñ �5—9‘9×#Ò#×3Ò3×;Ñ;Ó<ò(ó =ñ(ð0 =B¿M¹M×<QÑ<QÙ�V˜Vó=Ñ9ñ �5—9‘9×&Ò&×1Ò1Ó2õ
ó 3ñ
ñ8 �5—9‘9×&Ò&×?Ò?Ó@ò@ó Añ@ô,ñ ˆt×'Ò'Ó(ö#ó )ñ#ñ ˆt�Š×&Ñ&Ó'õMó (ñMôb(<ñX ˆt×'Ò'×/Ñ/Ó0òEó 1ñEñP ˆt�ŠÓÙƒõUJó ó  ñUJñp ˆt×'Ò'Ó(Ùˆ\ÓòK(ó ó )ñK(ñ\ ˆt×(Ò(×0Ñ0Ó1òó 2ññ" ˆt×(Ò(×0Ñ0Ó1ò@ó 2ñ@ñ ˆt×1Ò1×9Ñ9Ó:òFó ;ñFñ, ˆt×1Ò1Ó2Ùˆ\ÓòPó ó 3ñP÷
	
ð 	
ñ ˆt×'Ò'Ó(ÙˆU�IÓò+ó ó )ñ+ñ\ ˆt×0Ò0Ó1Ùˆ\ÓòHó ó 2ñHñ$ ˆt×'Ò'Ó(ÙˆU�IÓò'ó ó )ñ'ñT ˆt×0Ò0Ó1Ùˆ\Óò(ó ó 2ñ(ñ
 ˆt×%Ò%×,Ñ,Ó-õ*ó .ñ*ñ �—’×$Ñ$ d§l¢l×&6Ñ&6Ð7Ó8Ùƒò
ó ó 9ñ
ñ �×#Ò#×+Ñ+¨T×-@Ò-@×-DÑ-DÐEÓFÙƒñ

±B÷ 

ð 

ó ó Gñ

ñ �—	‘	—‘×&Ò&×.Ñ.°·	±	·±×0FÒ0F×0JÑ0JÐKÓLÙƒòó ó Mññ" �—
’
×!Ñ! 4×#5Ò#5×#<Ñ#<Ð=Ó>òAó ?ñAñH �×)Ò)×1Ñ1Ð2Ó3ò.Hó 4ñ.Hñb �—’×#Ñ# T§[¢[§_¡_Ð5Ó6Ù˜Ôð'¨að '°qô 'ó ó 7ñ'ñ0 �×!Ò!×(Ñ(Ð)Ó*òó +ññ �×!Ò!×)Ñ)¨4×+=Ò+=×+EÑ+EÐFÓGñ
ð ñ
ð  ô!
ó Hñ
ñ2 �× Ò ×(Ñ(Ð)Ó*ñ!ð ñ!ð  ô!!ó +ñ!ñH �—’ˆ~ÓÙƒòBó ó ñBñ* �×0Ò0Ð1Ó2òó 3ññ& �×8Ò8Ð9Ó:òó ;ññ �×(Ò(Ð)Ó*ò8ó +ñ8ñ  �×0Ò0Ð1Ó2ò<ó 3ñ<ñ �×>Ò>Ð?Ó@ò<ó Añ<÷"ð "ô@ñF �×0Ò0Ð1Ó2öDó 3ñDñ4 �×+Ò+Ð,Ó-ò;ó .ñ;ñ( �×(Ò(Ð)Ó*ò<ó +ñ<ñ, ˆt×"Ò"×*Ñ*Ó+ò &ó ,ñ &ñF ˆt×#Ò#Ó$ÙƒòGó ó %ñGñ* ˆt×"Ò"×*Ñ*Ó+õ`5ó ,ñ`5ñF ˆt×/Ò/×7Ñ7Ó8ò5ó 9ñ5÷
ñ �—’×#Ñ# T§[¢[§_¡_Ð5Ó6Ùƒò=¸$õ =ó ó 7ñ=ñ �—’×#Ñ# T§^¢^×%;Ñ%;Ð<Ó=ò)ó >ñ)ñ à�Š�ŠØ�Š×ÒØ�Š×ÒØ�Š×!Ò!Ø�	Š	×ÑØ�	Š	×Òðó	ñ ˆX�yÓ!õó "ó	ññ ˆt× Ò ×(Ñ(Ó)òó *ññ ˆt�{Š{×"Ñ"Ó#ò'ó $ñ'ñ& ˆt�zŠz×!Ñ!Ó"òó #ññ à�	Š	×ÒØ�	Š	×ÑØ×Ò×!Ñ!Ø×Ò× Ñ Ø×Ò×!Ñ!ðóòóññ �—	’	× Ò  $§)¢)×"2Ñ"2Ð3Ó4òó 5ññ& à�	Š	×ÒØ�	Š	×ÒØ�	Š	×ÑØ�	Š	×Ñð	óõ*óñ*ñZ à�Š�ŠØ�Š�Šðóõóññ �—
’
×"Ñ" D§J¢J×$7Ò$7Ð8Ó9òó :ñô
ñ" �—’×&Ñ&¨¯ª×(>Ò(>Ð?Ó@òó Aññ �—’×&Ñ&¨¯ª×(>Ò(>Ð?Ó@òó Aññ ˆt�yŠy× Ñ Ó!ò"ó "ñ"ñ �—
’
×!Ñ! 4§:¢:×#4Ò#4Ð5Ó6òó 7ññ �—	’	× Ñ  $§)¢)×"2Ò"2Ð3Ó4ò"ó 5ñ"ñ ˆt�zŠz×!Ñ!Ó"òó #ññ ˆt�~Š~×$Ñ$Ó%Ùƒ÷ñ ó ó &ññ �×%Ò%Ð&Ó'Ùƒõ"ó ó (ñ"ñ �×0Ò0Ð1Ó2õ;ó 3ñ;ñ �×&Ò&Ð'Ó(õó )ññ �—’×&Ñ&¨×(>Ò(>×(FÑ(FÐGÓHõ"ó Iñ"ñ ˆt× Ò ×'Ò'Ó(òó )ññ
 ˆt×!Ò!×)Ñ)Ó*òó +ññ ˆt×#Ò#Ó$ò	ó %ñ	ñ ˆt×"Ò"Ó#Ùƒò6ó ó $ñ6ñ ˆt×+Ò+Ó,ò!ó -ñ!ñ ˆt�Š×&Ñ&Ó'õó (ñ÷3ñl �—’× Ñ  $§(¢(§,¡,Ð/Ó0Ù˜Ôò5ó ó 1ñ5ñ �—’—’ §¢× 2Ò 2Ð3Ó4Ù˜ÔòJó ó 5ñJôôô6ô?÷D[ó [ô|;4÷|38ð 38ôlI2ñX ˆt×4Ò4Ó5Ùˆ\Óò(ó ó 6ñ(ñV ˆt×+Ò+×3Ñ3Ó4õ#ó 5ñ#ñL ˆt×)Ò)×1Ñ1Ó2òQó 3ñQñh ˆt×+Ò+Ó,ÙˆU�IÓõ_ó ó -ñ_ñD ˆt×4Ò4Ó5Ùˆ\Óò\ó ó 6ñ\÷~%
ð %
öP˜tõ ÷ð ÷ð ñ2 ˆt×1Ò1Ó2Ùƒò1ó ó 3ñ1ñ  ˆt×:Ò:Ó;ò#ó <ñ#ñ ˆt×,Ò,×4Ñ4Ó5ò#ó 6ñ#ñ$ ˆt×#Ò#Ó$Ùƒò8ó ó %ñ8ñ" ˆt×,Ò,Ó-Ùˆ\™;Ó'ò!ó (ó .ñ!ñ, �—	’	×!Ñ!Ð"Ó#ò.ó $ñ.ñ ˆt�Š×&Ñ&Ó'õ)ó (ñ)ñX �—	’	×!Ñ! 4§9¢9§=¡=Ð1Ó2Ùƒðð ðð ð	ð
 ðð ñð ôó ó 3ññ( �—
’
×"Ñ" D§J¢J§N¡NÐ3Ó4Ùƒðð ðð ð	ð
 ðð ñð ôó ó 5ññ( ˆt×"Ò"×*Ñ*Ó+ò&ó ,ñ&ñ ˆt×!Ò!×)Ñ)Ó*õ&ó +ñ&ñ ˆt×$Ò$×,Ñ,Ó-õ&ó .ñ&ô.÷ó ô$/ô
ñ  ˆt�{Š{×"Ñ"Ó#õ'ó $ñ'÷÷6
ô ÷
%÷R4ñ ˆt×Ò×'Ñ'Ó(ò&ó )ñ&ñ
 ˆt× Ò Ó!òó "ññ
 à�Š×ÒØ�Š×ÒØ�Š×ÒØ�Š×!Ò!ð	óñ ƒõ&ó óñ&ñ à�Š×ÒØ�Š×ÒØ�Š×ÒØ�Š×"Ò"ð	óõóññ �×8Ò8×@Ñ@ÐAÓB÷<ñ <ó Cñ<ñ~ �×8Ò8×BÒBÐCÓD÷ñ ó Eñ÷4ð ñ, �×8Ò8Ð9Ó:÷(ñ (ó ;ñ(ñV �×EÒEÐFÓG÷0ñ 0ó Hñ0ñf ˆt×MÒMÓNñ2ð$ ÷%2ð 2ó Oñ2ñ6 à×9Ò9ðó÷
"ñ "óñ
"ñ. à×8Ò8ðó÷
ñ óñ
ñ: à×AÒAðó÷
!"ñ !"óñ
!"ñH �×?Ò?Ð@ÓA÷-ñ -ó Bñ-ñ` �×<Ò<Ð=Ó>÷))ñ ))ó ?ñ))ñX à×=Ò=ðó÷
6-ñ 6-óñ
6-ñr à×9Ò9ðó÷
"ñ "óñ
"ñ0 à×%Ò%×-Ñ-ðó÷
Jñ Jóñ
JñZ �×@Ò@×HÑHÐIÓJ÷&ñ &ó Kñ&ñR �×-Ò-×7Ò7Ð8Ó9÷'ñ 'ó :ñ'ñT à×&Ò&ðó÷
,ñ ,óñ
,ñ4 à×)Ò)ðó÷
6Sñ 6Sóñ
6Sñr à×*Ò*ðó÷
87ñ 87óñ
87÷vRYó RYñj �—’×'Ñ'Ð(Ó)÷ñ ó *ññ �×"Ò"×*Ñ*Ð+Ó,÷*Yñ *Yó -ñ*YñZ �×#Ò#×'Ò'¨×)<Ò)<×)DÒ)DÐEÓFÙƒõ&ó ó Gñ&ñ
 ˆt×#Ò#×'Ò'Ó(õó )ññ
 �× Ò ×(Ñ(¨$×*:Ò*:×*>Ñ*>Ð?Ó@Ùƒò	Èõ 	ó ó Añ	ôô,ñ* Ø	×Ò×$Ñ$ d×&DÒ&D×&LÑ&LÐMóõ
óñ
ñ Ø	×Ò×$Ñ$ d×&DÒ&D×&LÑ&LÐMóõóññ. à×(Ò(×0Ñ0Ø×/Ò/×7Ñ7ðó÷ñ óññ: Ø	×Ò×$Ñ$ d×&DÒ&D×&LÑ&LÐMóõ
óñ
ñ à�	Š	×ÑØ�	Š	×ÒØ�	Š	×ÒØ�	Š	×Òð	óõóñô*$ñN ˆt×)Ò)×1Ñ1Ó2õó 3ññ ˆt�Š×&Ñ&Ó'ò4/ó (ñ4/ñn ˆt�Š×&Ñ&Ó'ò)ó (ñ)ñX ˆt×$Ò$×,Ñ,Ó-ò$%ó .ñ$%ôN

ô
ñ �—’×#Ñ# T§[¢[×%8Ñ%8Ð9Ó:õ4ó ;ñ4ñ ˆt×!Ò!×)Ñ)Ó*õó +ññ ˆt�yŠy× Ñ Ó!õ
Qó "ñ
Qñ ˆt×,Ò,Ó-Ùƒõó ó .ññ" �—’×%Ñ% t§}¢}×';Ò';Ð<Ó=ÙˆX�yÓ!õKó "ó >ñKð  #(×"9Ò"9Ñ ôQñ ˆt×7Ò7×?Ñ?Ó@ò	*ó Añ	*ñ ˆt×#Ò#×+Ñ+Ó,ò	0ó -ñ	0ñ ˆt×!Ò!×)Ñ)Ó*ò+ó +ñ+ñ\ ˆt×-Ò-×5Ñ5Ó6ò)Fó 7ñ)FñX �—’×%Ñ% t§~¢~×'@Ò'@ÐAÓBÙƒñ°%ñ ¸uô ó ó Cññ �—’×%Ò% t§~¢~×'@Ò'@ÐAÓBñ
ð ñ	
ð
 ÷
ð 
ó Cñ
ñ �—
’
ˆ|ÓÙƒõEó ó ñEñ4 à×$Ò$×,Ñ,Ø×#Ò#×+Ñ+Ø×#Ò#×+Ñ+ðóõóññ& à×-Ò-×5Ñ5Ø×,Ò,×4Ñ4ðóõóññ8 ˆt×>Ò>×FÑFÓGòó Hññ$ �—’×'Ñ'¨¯ª×)<Ñ)<Ð=Ó>Ùƒõ"ó ó ?ñ"ñ ˆu�y‰y�~‰~×(Ò(Ó)òó *ññ: ˆu�y‰y�~‰~× Ò Ó!ò6ó "ñ6ñ( ˆt× Ò Ó!Ùƒñ-Kð ñ	-Kð
 ñ-Kð 
ñ-Kð ô-Kó ó "ñ-Kô`ñ ˆt×,Ò,Ó-òó .ññ ˆt×+Ò+Ó,õ'
ó -ñ'
ñT ˆt×1Ò1Ó2õó 3ññ, ˆt×>Ò>Ó?õó @ññ. ˆt�yŠyÓÙƒñ8¸ñ 8Àeô 8ó ó ñ8ñ  ˆt�~Š~ÓÙƒö6ó ó ñ6ñ ˆt×'Ò'Ó(öIó )ñIñ ˆt�yŠyÓÙ˜Ôö"ó ó ñ"ñ ˆt�|Š|ÓÙƒö6ó ó ñ6ô'÷TqKó qK÷hð ñ4 ˆt×ÒÓ Ùƒ÷ñ ó ó !ññ& �×'Ò'Ð(Ó)÷ñ ó *ññ6 �×*Ò*×2Ñ2Ð3Ó4÷Lñ Ló 5ñLñ, ˆt×!Ò!×(Ò(Ó)õó *ññ  ˆt�}Š}ÓÙƒöó ó ññ  ˆt×#Ò#Ó$Ùƒõ3ó ó %ñ3ñl ˆt�~Š~ÓÙƒ÷8ñ 8ó ó ñ8ñ< ˆt×3Ò3×;Ñ;Ó<÷*ñ *ó =ñ*ô,ñ ˆt×0Ò0×8Ñ8Ó9õ1"ó :ñ1"ôhò ˜d×2Ò2Ô 3Ú ˜d×4Ò4Ô 5Ú ˜d×4Ò4Ô 5Ú ˜d×=Ò=Ô >Ú ˜d×=Ò=Ô >Ú ˜d×=Ò=Ô >Ú ˜d×=Ò=Ô >Ú ˜d×DÒDÔ EÚ ˜d×DÒDÔ Eò ˜t×BÒBÔ CÚ ˜t×BÒBÔ CÚ ˜t×BÒBÔ CÚ ˜t×BÒBÔ CÚ ˜t×JÒJÔ KÚ ˜t×JÒJÔ KÚ ˜t×JÒJÔ KÚ ˜t×JÒJÔ KÚ ˜t×@Ò@Ô AÚ ˜t×AÒAÔ BÚ ˜t×AÒAÔ BÚ ˜t×AÒAÔ Bôñ ˆt�yŠyÓÙƒòó ó ññ$ ˆt�|Š|ÓÙƒñ¨aô ó ó ññ ˆt�|Š|ÓÙƒñ¨aô ó ó ñò, 	˜tŸyšyÓ)�Ú! $§,¢,Ó/�Ú! $§,¢,Ó/�ó
 Ü  Ü ôFNòR †r8   