Pandas dataframe применяет проблемы со скоростью - есть ли другой способ? - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть телефонные звонки с данными и кадры с заказами - я пытаюсь записать детали заказа в телефонный кадр данных, если заказ был создан примерно в одно и то же время И номера счетов совпадают.

В настоящее время я панда "применяю" вместе с функцией, которую я написал, но она МЕДЛЕННАЯ.Кажется, что он перебирает каждую запись и берет ее навсегда.

Я бы использовал соединение или слияние, поскольку они быстро осветляются, но я не могу представить какую-либо реальную форму условной логики там?И я хочу указать, что заказ создается в течение 5 минут после звонка. Любые предложения?

Мой текущий метод ниже (будьте осторожны со мной - я все еще учусь)

функция

def get_order_from_call_time_and_person(row):

    row = pd.Series(row)
    mn = row["MINUTE"]
    hr = row["HOUR"]    
    dy = row["DAY"]
    mt = row["MONTH"]
    yr = row["YEAR"]
    ac = row["oprano"]

    mnFrom = mn
    mnTo = mn
    hrFrom = hr
    hrTo = hr
    mnIN = 0
    mnFrom = (mn - 5)
    mnTo = (mn + 5)
    hrFrom = hr
    hrTo = hr
    if mnFrom < 0:
        mnFrom = (mn-5)+60
        hrFrom = hr-1
    if mnTo > 60:
        mnTo = mnTo-60
        hrTo =hr+1
    if mnFrom > mnTo:
        mnIN = mnFrom
        mnFrom = mnTo
        mnTo = mnIN

    order1 = orders_df[(orders_df["hour_created"].between(hrFrom,hrTo)) &
          (orders_df["day_created"] == int(dy)) & 
          (orders_df["month_created"] == int(mt)) & 
          (orders_df["year_created"] == int(yr)) & 
          (orders_df["slaccount"] == str(ac))]

    try:

        value = order1["value"].iloc[0]
        quoteno = order1["quoteno"].iloc[0]
        cost = order1["costvalue"].iloc[0]
        orderno = order1["ordernumber"].iloc[0]
        if orderno == "" or orderno == "NAN":
            orderno = "none"
        margin = order1["value"].iloc[0] - order1["costvalue"].iloc[0]
        minute_confirmed = order1["minute_confirmed"].iloc[0]
        hour_confirmed = order1["hour_confirmed"].iloc[0]
        day_confirmed = order1["day_confirmed"].iloc[0]
        month_confirmed = order1["month_confirmed"].iloc[0]
        year_confirmed = order1["year_confirmed"].iloc[0]
        print( "OK")
        return pd.Series((value, margin, cost, int(quoteno), orderno , minute_confirmed, hour_confirmed, day_confirmed, month_confirmed, year_confirmed))
    except Exception as e:
        print("Not Found")
        return pd.Series(("none", "none" , "none", "none", "none","none", "none" , "none", "none", "none"))

код вызова для проверки заказов по журналам вызовов.

df[['value', 'margin','cost','quote_no','order_no','minute_confirmed','hour_confirmed','day_confirmed','month_confirmed',"year_confirmed"]] = df[["MINUTE","HOUR","DAY","MONTH","YEAR","oprano"]].apply(lambda x : get_order_from_call_time_and_person(x),axis=1)

example data

запустить его, чтобы получить таблицу HTMLверсия данных

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; charset=3Dwindows-125=
2">
<meta name=3DProgId content=3DExcel.Sheet>
<meta name=3DGenerator content=3D"Microsoft Excel 15">
<link id=3DMain-File rel=3DMain-File href=3D"../dataex.htm">
<link rel=3DFile-List href=3Dfilelist.xml>
<![if IE]>
<base href=3D"file:///C:/0E4B9118/dataex_files/sheet001.htm"
id=3D"webarch_temp_base_tag">
<![endif]>
<link rel=3DStylesheet href=3Dstylesheet.css>
<style>
<!--table
	{mso-displayed-decimal-separator:"\.";
	mso-displayed-thousand-separator:"\,";}
@page
	{margin:.75in .7in .75in .7in;
	mso-header-margin:.3in;
	mso-footer-margin:.3in;}
-->
</style>
<![if !supportTabStrip]><script language=3D"JavaScript">
<!--
function fnUpdateTabs()
 {
  if (parent.window.g_iIEVer>=3D4) {
   if (parent.document.readyState=3D=3D"complete"
    && parent.frames['frTabs'].document.readyState=3D=3D"complete")
   parent.fnSetActiveSheet(0);
  else
   window.setTimeout("fnUpdateTabs();",150);
 }
}

if (window.name!=3D"frSheet")
 window.location.replace("../dataex.htm");
else
 fnUpdateTabs();
//-->
</script>
<![endif]>
</head>

<body link=3D"#0563C1" vlink=3D"#954F72" class=3Dxl65>

<table border=3D0 cellpadding=3D0 cellspacing=3D0 width=3D1922 style=3D'bor=
der-collapse:
 collapse;table-layout:fixed;width:1445pt'>
 <col class=3Dxl65 width=3D119 style=3D'mso-width-source:userset;mso-width-=
alt:4352;
 width:89pt'>
 <col class=3Dxl65 width=3D69 style=3D'mso-width-source:userset;mso-width-a=
lt:2523;
 width:52pt'>
 <col class=3Dxl65 width=3D82 style=3D'mso-width-source:userset;mso-width-a=
lt:2998;
 width:62pt'>
 <col class=3Dxl65 width=3D70 style=3D'mso-width-source:userset;mso-width-a=
lt:2560;
 width:53pt'>
 <col class=3Dxl65 width=3D53 style=3D'mso-width-source:userset;mso-width-a=
lt:1938;
 width:40pt'>
 <col class=3Dxl65 width=3D70 style=3D'mso-width-source:userset;mso-width-a=
lt:2560;
 width:53pt'>
 <col class=3Dxl65 width=3D62 style=3D'mso-width-source:userset;mso-width-a=
lt:2267;
 width:47pt'>
 <col class=3Dxl65 width=3D82 style=3D'mso-width-source:userset;mso-width-a=
lt:2998;
 width:62pt'>
 <col class=3Dxl65 width=3D69 style=3D'mso-width-source:userset;mso-width-a=
lt:2523;
 width:52pt'>
 <col class=3Dxl65 width=3D63 style=3D'mso-width-source:userset;mso-width-a=
lt:2304;
 width:47pt'>
 <col class=3Dxl65 width=3D83 span=3D2 style=3D'mso-width-source:userset;ms=
o-width-alt:
 3035;width:62pt'>
 <col class=3Dxl65 width=3D95 style=3D'mso-width-source:userset;mso-width-a=
lt:3474;
 width:71pt'>
 <col class=3Dxl65 width=3D78 style=3D'mso-width-source:userset;mso-width-a=
lt:2852;
 width:59pt'>
 <col class=3Dxl65 width=3D84 style=3D'mso-width-source:userset;mso-width-a=
lt:3072;
 width:63pt'>
 <col class=3Dxl65 width=3D98 span=3D2 style=3D'mso-width-source:userset;ms=
o-width-alt:
 3584;width:74pt'>
 <col class=3Dxl65 width=3D109 style=3D'mso-width-source:userset;mso-width-=
alt:3986;
 width:82pt'>
 <col class=3Dxl65 width=3D167 style=3D'mso-width-source:userset;mso-width-=
alt:6107;
 width:125pt'>
 <col class=3Dxl65 width=3D112 span=3D2 style=3D'mso-width-source:userset;m=
so-width-alt:
 4096;width:84pt'>
 <col class=3Dxl65 width=3D64 style=3D'width:48pt'>
 <tr height=3D20 style=3D'height:15.0pt'>
  <td height=3D20 class=3Dxl65 width=3D119 style=3D'height:15.0pt;width:89p=
t'>CALL DATA</td>
  <td class=3Dxl65 width=3D69 style=3D'width:52pt'></td>
  <td class=3Dxl65 width=3D82 style=3D'width:62pt'></td>
  <td class=3Dxl65 width=3D70 style=3D'width:53pt'></td>
  <td class=3Dxl65 width=3D53 style=3D'width:40pt'></td>
  <td class=3Dxl65 width=3D70 style=3D'width:53pt'></td>
  <td class=3Dxl65 width=3D62 style=3D'width:47pt'></td>
  <td class=3Dxl65 width=3D82 style=3D'width:62pt'></td>
  <td class=3Dxl65 width=3D69 style=3D'width:52pt'></td>
  <td class=3Dxl65 width=3D63 style=3D'width:47pt'></td>
  <td class=3Dxl65 width=3D83 style=3D'width:62pt'></td>
  <td class=3Dxl65 width=3D83 style=3D'width:62pt'></td>
  <td class=3Dxl65 width=3D95 style=3D'width:71pt'></td>
  <td class=3Dxl65 width=3D78 style=3D'width:59pt'></td>
  <td class=3Dxl65 width=3D84 style=3D'width:63pt'></td>
  <td class=3Dxl65 width=3D98 style=3D'width:74pt'></td>
  <td class=3Dxl65 width=3D98 style=3D'width:74pt'></td>
  <td class=3Dxl65 width=3D109 style=3D'width:82pt'></td>
  <td class=3Dxl65 width=3D167 style=3D'width:125pt'></td>
  <td class=3Dxl65 width=3D112 style=3D'width:84pt'></td>
  <td class=3Dxl65 width=3D112 style=3D'width:84pt'></td>
  <td class=3Dxl65 width=3D64 style=3D'width:48pt'></td>
 </tr>
 <tr height=3D20 style=3D'height:15.0pt'>
  <td height=3D20 class=3Dxl65 style=3D'height:15.0pt'></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
 </tr>
 <tr height=3D20 style=3D'height:15.0pt'>
  <td height=3D20 class=3Dxl66 style=3D'height:15.0pt'>CALLDATEANDTIME</td>
  <td class=3Dxl66 style=3D'border-left:none'>INITIAL</td>
  <td class=3Dxl66 style=3D'border-left:none'>CALLTYPE</td>
  <td class=3Dxl66 style=3D'border-left:none'>CALLFROM</td>
  <td class=3Dxl66 style=3D'border-left:none'>CALLTO</td>
  <td class=3Dxl66 style=3D'border-left:none'>RING</td>
  <td class=3Dxl66 style=3D'border-left:none'>TALK</td>
  <td class=3Dxl66 style=3D'border-left:none'>PHONE</td>
  <td class=3Dxl66 style=3D'border-left:none'>DATE</td>
  <td class=3Dxl66 style=3D'border-left:none'>DAYNAME</td>
  <td class=3Dxl66 style=3D'border-left:none'>DAY</td>
  <td class=3Dxl66 style=3D'border-left:none'>MONTH</td>
  <td class=3Dxl66 style=3D'border-left:none'>YEAR</td>
  <td class=3Dxl66 style=3D'border-left:none'>MINUTE</td>
  <td class=3Dxl66 style=3D'border-left:none'>HOUR</td>
  <td class=3Dxl66 style=3D'border-left:none'>INEXTNAME</td>
  <td class=3Dxl66 style=3D'border-left:none'>OUTEXTNAME</td>
  <td class=3Dxl66 style=3D'border-left:none'>divno</td>
  <td class=3Dxl66 style=3D'border-left:none'>divname</td>
  <td class=3Dxl66 style=3D'border-left:none'>oprano</td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
 </tr>
 <tr height=3D20 style=3D'height:15.0pt'>
  <td height=3D20 class=3Dxl67 style=3D'height:15.0pt;border-top:none;box-s=
izing: border-box;
  max-width:none'>16/09/2019 10:18</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>Y</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>2</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>4</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>230</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>7</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>10</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>1618343361</td>
  <td class=3Dxl69 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>16/09/2019</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>Monday</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>1</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>9</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>2019</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>18</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>10</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>SJ</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>none</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>23351</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>World Wide Fancy Good LTD</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>WFG1</td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
 </tr>
 <tr height=3D20 style=3D'height:15.0pt'>
  <td height=3D20 class=3Dxl70 style=3D'height:15.0pt;border-top:none;box-s=
izing: border-box;
  max-width:none'>16/09/2019 12:06</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>Y</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>1</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>228</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>12</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>-5</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>103</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>7901976152</td>
  <td class=3Dxl72 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>16/09/2019</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>Monday</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>2</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>9</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>2019</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>6</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>12</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>none</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>Robby</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>55503</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>Handy Hardware</td>
  <td class=3Dxl71 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>HHA1</td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
 </tr>
 <tr height=3D20 style=3D'height:15.0pt'>
  <td height=3D20 class=3Dxl65 style=3D'height:15.0pt'></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
 </tr>
 <tr height=3D20 style=3D'height:15.0pt'>
  <td height=3D20 class=3Dxl65 style=3D'height:15.0pt'>ORDER DATA</td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
 </tr>
 <tr height=3D20 style=3D'height:15.0pt'>
  <td height=3D20 class=3Dxl65 style=3D'height:15.0pt'></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
 </tr>
 <tr height=3D20 style=3D'height:15.0pt'>
  <td height=3D20 class=3Dxl66 style=3D'height:15.0pt'>quoteno</td>
  <td class=3Dxl66 style=3D'border-left:none'>quotedate</td>
  <td class=3Dxl66 style=3D'border-left:none'>ammenddate</td>
  <td class=3Dxl66 style=3D'border-left:none'>orderdate</td>
  <td class=3Dxl66 style=3D'border-left:none'>value</td>
  <td class=3Dxl66 style=3D'border-left:none'>opco_code</td>
  <td class=3Dxl66 style=3D'border-left:none'>costvalue</td>
  <td class=3Dxl66 style=3D'border-left:none'>ordernumber</td>
  <td class=3Dxl66 style=3D'border-left:none'>orderedby</td>
  <td class=3Dxl66 style=3D'border-left:none'>slaccount</td>
  <td class=3Dxl66 style=3D'border-left:none'>year_created</td>
  <td class=3Dxl66 style=3D'border-left:none'>month_create<span style=3D'di=
splay:
  none'>d</span></td>
  <td class=3Dxl66 style=3D'border-left:none'>day_created</td>
  <td class=3Dxl66 style=3D'border-left:none'>hour_created</td>
  <td class=3Dxl66 style=3D'border-left:none'>minute_create<span style=3D'd=
isplay:
  none'>d</span></td>
  <td class=3Dxl66 style=3D'border-left:none'>year_confirmed</td>
  <td class=3Dxl66 style=3D'border-left:none'>month_confirme<span style=3D'=
display:
  none'>d</span></td>
  <td class=3Dxl66 style=3D'border-left:none'>day_confirmed</td>
  <td class=3Dxl66 style=3D'border-left:none'>hour_confirmed</td>
  <td class=3Dxl66 style=3D'border-left:none'>minute_confirmed</td>
  <td class=3Dxl65></td>
  <td class=3Dxl65></td>
 </tr>
 <tr height=3D20 style=3D'height:15.0pt'>
  <td height=3D20 class=3Dxl68 style=3D'height:15.0pt;border-top:none;box-s=
izing: border-box;
  max-width:none'>1508</td>
  <td class=3Dxl69 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>11/06/2013</td>
  <td class=3Dxl69 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>12/06/2013</td>
  <td class=3Dxl69 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>11/06/2013</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>36.36</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>L</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>16.77</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>ORD00060</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>SAM</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>AAA1</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>2013</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>6</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>11</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>16</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>51</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>2013</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>6</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>11</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>8</td>
  <td class=3Dxl68 style=3D'border-top:none;border-left:none;box-sizing: bo=
rder-box;
  max-width:none'>26</td>
  <td class=3Dxl74>&nbsp;</td>
  <td class=3Dxl65></td>
 </tr>
 <tr height=3D20 style=3D'height:15.0pt'>
  <td height=3D20 class=3Dxl73 style=3D'height:15.0pt'></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
 </tr>
 <tr height=3D20 style=3D'height:15.0pt'>
  <td height=3D20 class=3Dxl75 style=3D'height:15.0pt'></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
  <td class=3Dxl73></td>
 </tr>
 <![if supportMisalignedColumns]>
 <tr height=3D0 style=3D'display:none'>
  <td width=3D119 style=3D'width:89pt'></td>
  <td width=3D69 style=3D'width:52pt'></td>
  <td width=3D82 style=3D'width:62pt'></td>
  <td width=3D70 style=3D'width:53pt'></td>
  <td width=3D53 style=3D'width:40pt'></td>
  <td width=3D70 style=3D'width:53pt'></td>
  <td width=3D62 style=3D'width:47pt'></td>
  <td width=3D82 style=3D'width:62pt'></td>
  <td width=3D69 style=3D'width:52pt'></td>
  <td width=3D63 style=3D'width:47pt'></td>
  <td width=3D83 style=3D'width:62pt'></td>
  <td width=3D83 style=3D'width:62pt'></td>
  <td width=3D95 style=3D'width:71pt'></td>
  <td width=3D78 style=3D'width:59pt'></td>
  <td width=3D84 style=3D'width:63pt'></td>
  <td width=3D98 style=3D'width:74pt'></td>
  <td width=3D98 style=3D'width:74pt'></td>
  <td width=3D109 style=3D'width:82pt'></td>
  <td width=3D167 style=3D'width:125pt'></td>
  <td width=3D112 style=3D'width:84pt'></td>
  <td width=3D112 style=3D'width:84pt'></td>
  <td width=3D64 style=3D'width:48pt'></td>
 </tr>
 <![endif]>
</table>

</body>

</html>
...