code: def q05(lineitem, orders, customer, nation, region, supplier):
      date1 = md.Timestamp("1996-01-01")
      date2 = md.Timestamp("1997-01-01")
      rsel = region.R_NAME == "ASIA"
      osel = (orders.O_ORDERDATE >= date1) & (
          orders.O_ORDERDATE < date2
      )
      forders = orders[osel]
      fregion = region[rsel]
      jn1 = fregion.merge(
          nation, left_on="R_REGIONKEY", right_on="N_REGIONKEY"
      )
      jn2 = jn1.merge(
          customer, left_on="N_NATIONKEY", right_on="C_NATIONKEY"
      )
      jn3 = jn2.merge(
          forders, left_on="C_CUSTKEY", right_on="O_CUSTKEY"
      )
      jn4 = jn3.merge(
          lineitem, left_on="O_ORDERKEY", right_on="L_ORDERKEY"
      )
      jn5 = supplier.merge(
          jn4,
          left_on=["S_SUPPKEY", "S_NATIONKEY"],
          right_on=["L_SUPPKEY", "N_NATIONKEY"],
      )
      jn5["TMP"] = jn5.L_EXTENDEDPRICE * (1.0 - jn5.L_DISCOUNT)
      gb = jn5.groupby("N_NAME", as_index=False, sort=False)[
          "TMP"
      ].sum()
      total = gb.sort_values("TMP", ascending=False)
      print(total.execute())
  
imports: import argparse
  import functools
  import time
  from typing import Callable, List, Optional, Set, Union
  import mars
  import mars.dataframe
label_desc: Use image node_id 14 for calling a global function with example usage: q05(lineitem, orders, customer, nation, region, supplier) without return types