using system;
using system.collections;
using system.componentmodel;
using system.drawing;
using system.data;
using system.windows.forms;
using system.xml ;
namespace chartcontrol
{
/// <summary>
/// chartcontrol 1.0 的摘要说明。此控件是画图的,根据xml文档的数据生成图表。
/// 目前能够画2维图和3维图 柱形图 和 折线图 饼形图。韩永矗5apr2005制作。
/// 柱形图请将xml文件中的“add key=”diagramtype””修改为histogram
/// 折线图请将xml文件中的“add key=”diagramtype””修改为flexdiagram
/// 饼形图请将xml文件中的“add key=”diagramtype””修改为cakydiagram
/// xml文件不能修改名字,需要和你的程序执行文件在同一个目录。
/// </summary>
public class chartcontrol : system.windows.forms.usercontrol
{
private system.windows.forms.label label1;
private system.windows.forms.label label2;
private system.windows.forms.label label3;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private system.componentmodel.container components = null;
public chartcontrol()
{
// 该调用是 windows.forms 窗体设计器所必需的。
initializecomponent();
// todo: 在 initcomponent 调用后添加任何初始化
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void dispose( bool disposing )
{
if( disposing )
{
if( components != null )
components.dispose();
}
base.dispose( disposing );
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 – 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void initializecomponent()
{
this.label1 = new system.windows.forms.label();
this.label2 = new system.windows.forms.label();
this.label3 = new system.windows.forms.label();
this.suspendlayout();
//
// label1
//
this.label1.location = new system.drawing.point(104, 16);
this.label1.name = “label1”;
this.label1.size = new system.drawing.size(160, 24);
this.label1.tabindex = 0;
this.label1.text = “label1”;
//
// label2
//
this.label2.location = new system.drawing.point(8, 56);
this.label2.name = “label2”;
this.label2.tabindex = 1;
this.label2.text = “label2”;
//
// label3
//
this.label3.location = new system.drawing.point(288, 320);
this.label3.name = “label3”;
this.label3.tabindex = 2;
this.label3.text = “label3”;
//
// chartcontrol
//
this.backcolor = system.drawing.color.white;
this.controls.add(this.label3);
this.controls.add(this.label2);
this.controls.add(this.label1);
this.name = “chartcontrol”;
this.size = new system.drawing.size(448, 360);
this.load += new system.eventhandler(this.chartcontrol_load);
this.resumelayout(false);
}
#endregion
#region 读写xml文件的几个小函数,2005 4 2 by hyc
public void setxmlfilevalue(string xmlpath,string appkey,string appvalue)//写xmlpath是文件路径+文件名,appkey是 key name,appvalue是value
{
xmldocument xdoc = new xmldocument();
xdoc.load(xmlpath);
xmlnode xnode;
xmlelement xelem1;
xmlelement xelem2;
xnode = xdoc.selectsinglenode(“//appsettings”);
xelem1 = (xmlelement)xnode.selectsinglenode(“//add[@key=” + appkey + “]”);
if ( xelem1 != null )
{
xelem1.setattribute(“value”,appvalue);
}
else
{
xelem2 = xdoc.createelement(“add”);
xelem2.setattribute(“key”,appkey);
xelem2.setattribute(“value”,appvalue);
xnode.appendchild(xelem2);
}
xdoc.save(xmlpath);
}
public void getxmlfilevalue(string xmlpath,string appkey,ref string appvalue)//读xmlpath是文件路径+文件名,appkey是 key name,appvalue是value
{
xmldocument xdoc = new xmldocument();
xdoc.load(xmlpath);
xmlnode xnode;
xmlelement xelem1;
xnode = xdoc.selectsinglenode(“//appsettings”);
xelem1 = (xmlelement)xnode.selectsinglenode(“//add[@key=” + appkey + “]”);
if ( xelem1 != null )
{
appvalue=xelem1.getattribute (“value”);
}
else
{
// messagebox.show (“there is not any information!”);
}
}
#endregion
#region 变量声明,2005 4 4 by hyc
public int formheight;
public int formwidth;
public int num=1;
public int max=1;
public int min=1;
public int jnum=1;//维数
public int polebold;
public int heightxs=100;//高度系数
public int[] startangl=new int [100];//开始角度
public int[] sweepangl=new int [100]; //跨越弧度
public int allsweep;
public int kuandu;
public int[,] x=new int [100,100];
public int [,] y=new int[100,100];
public int[,] yy=new int [100,100];
public string[] typename=new string [100];
public string[,] typevalue=new string [100,100];
public string appvalue;
public string pathfilename=system.windows .forms .application.startuppath +”\\xmlchart.xml”;
system.windows .forms .label [] typenamelabel;
system.windows .forms .label [,] typevaluelabel;
#endregion
#region 自定义函数,2005 4 4 by hyc
public void allbegain()//all 初始化
{
formheight=this.height ;
formwidth=this.width ;
getxmlfilevalue(pathfilename,”diagramname”,ref appvalue);
label1.text =appvalue+”(此图表控件是测试版)”;
getxmlfilevalue(pathfilename,”yname”,ref appvalue);
label2.text =appvalue;
getxmlfilevalue(pathfilename,”xname”,ref appvalue);
label3.text =appvalue;
label1.autosize =true;
label1.top =5;
label1.left =(formwidth-label1.width )/2;
label2.autosize =true ;
label3.autosize=true;
label2.top =15;
label2.left =5;
label3.top=formheight-10;
label3.left=formwidth-label3.width-5;
getxmlfilevalue(pathfilename,”num”,ref appvalue);
num=int32.parse (appvalue);
getxmlfilevalue(pathfilename,”jnum”,ref appvalue);
jnum=int32.parse (appvalue);
}
public void histogrambegain()//histogram 初始化
{
for(int i=1;i<=num;i++)
{
getxmlfilevalue(pathfilename,”id”+i.tostring (),ref typename[i]);
for(int j=1;j<=jnum;j++)
{
getxmlfilevalue(pathfilename,”id”+j.tostring()+”num”+i.tostring (),ref typevalue[j,i]);
}
}
polebold=formwidth*2/(3*num*jnum);
max=int32.parse (typevalue[1,1]);
min=int32.parse (typevalue[1,1]);
for(int i=1;i<=num;i++)
{
for(int j=1;j<=jnum;j++)
{
if(int32.parse (typevalue[j,i])>max)
{
max=int32.parse (typevalue[j,i]);
}
if(int32.parse (typevalue[j,i])<min)
{
min=int32.parse (typevalue[j,i]);
}
}
}
for(int i=1;i<100;i++)
{
if(max>(formheight-50))
{
heightxs=heightxs/2;
max=max/2;
}
if(max<(formheight-50)/2)
{
heightxs=heightxs*2;
max=max*2;
}
if(max<(formheight-50) && max>(formheight-50)/2)
{
break;
}
}
for(int i=1;i<=num;i++)
{
for(int j=1;j<=jnum;j++)
{
x[j,i]=(label3.left -(label2.left +label2.width ))/num*i-(label2.left +label2.width )+(polebold+1)*(j-1)-label3.width ;//????
y[j,i]=label3.top-5-(int32.parse (typevalue[j,i])*heightxs/100);
yy[j,i]=int32.parse (typevalue[j,i]);
yy[j,i]=yy[j,i]*heightxs/100;
}
}
typenamelabel = new system.windows .forms.label[100];
for(int i=1;i<=num;i++)
{
typenamelabel[i]=new label ();
typenamelabel[i].top =label3.top ;
typenamelabel[i].text =typename[i];
typenamelabel[i].autosize =true;
typenamelabel[i].left =x[1,i]+polebold*jnum/2;
this.controls .add (typenamelabel[i]);
}
typevaluelabel = new system.windows .forms.label[100,100];
for(int i=1;i<=num;i++)
{
for(int j=1;j<=jnum;j++)
{
typevaluelabel[j,i]=new label ();
typevaluelabel[j,i].top =y[j,i]-20 ;
typevaluelabel[j,i].text =typevalue[j,i];
typevaluelabel[j,i].autosize =true;
typevaluelabel[j,i].left =x[j,i];
this.controls .add (typevaluelabel[j,i]);
}
}
}
public void flexdiagrambegain()//flex diagram 初始化
{
for(int i=1;i<=num;i++)
{
getxmlfilevalue(pathfilename,”id”+i.tostring (),ref typename[i]);
for(int j=1;j<=jnum;j++)
{
getxmlfilevalue(pathfilename,”id”+j.tostring()+”num”+i.tostring (),ref typevalue[j,i]);
}
}
typenamelabel = new system.windows .forms.label[100];
for(int i=1;i<=num;i++)
{
typenamelabel[i]=new label ();
typenamelabel[i].top =label3.top ;
typenamelabel[i].text =typename[i];
typenamelabel[i].autosize =true;
typenamelabel[i].left =(label3.left -(label2.left +label2.width ))/num*i-(label2.left +label2.width )-typenamelabel[i].width /2;
this.controls .add (typenamelabel[i]);
}
max=int32.parse (typevalue[1,1]);
min=int32.parse (typevalue[1,1]);
for(int i=1;i<=num;i++)
{
for(int j=1;j<=jnum;j++)
{
if(int32.parse (typevalue[j,i])>max)
{
max=int32.parse (typevalue[j,i]);
}
if(int32.parse (typevalue[j,i])<min)
{
min=int32.parse (typevalue[j,i]);
}
}
}
for(int i=1;i<100;i++)
{
if(max>(formheight-50))
{
heightxs=heightxs/2;
max=max/2;
}
if(max<(formheight-50)/2)
{
heightxs=heightxs*2;
max=max*2;
}
if(max<(formheight-50) && max>(formheight-50)/2)
{
break;
}
}
for(int i=1;i<=num;i++)
{
for(int j=1;j<=jnum;j++)
{
x[j,i]=(label3.left -(label2.left +label2.width ))/num*i-(label2.left +label2.width );
y[j,i]=label3.top-5-(int32.parse (typevalue[j,i])*heightxs/100);
yy[j,i]=int32.parse (typevalue[j,i]);
yy[j,i]=yy[j,i]*heightxs/100;
}
}
typevaluelabel = new system.windows .forms.label[100,100];
for(int i=1;i<=num;i++)
{
for(int j=1;j<=jnum;j++)
{
typevaluelabel[j,i]=new label ();
typevaluelabel[j,i].top =y[j,i]-20 ;
typevaluelabel[j,i].text =typevalue[j,i];
typevaluelabel[j,i].autosize =true;
typevaluelabel[j,i].left =(label3.left -(label2.left +label2.width ))/num*i-(label2.left +label2.width )-typevaluelabel[j,i].width /2;
this.controls .add (typevaluelabel[j,i]);
}
}
}
public void cakydiagrambegain()//饼形图初始化
{
for(int i=1;i<=num;i++)
{
getxmlfilevalue(pathfilename,”id”+i.tostring (),ref typename[i]);
getxmlfilevalue(pathfilename,”id1num”+i.tostring (),ref typevalue[1,i]);
}
for(int i=1;i<=num;i++)
{
getxmlfilevalue(pathfilename,”id1num”+i.tostring (),ref appvalue);
sweepangl[i]=int32.parse (appvalue);
}
allsweep=0;
for(int i=1;i<=num;i++)
{
allsweep=allsweep+sweepangl[i];
}
for(int i=1;i<=num;i++)
{
sweepangl[i]=(sweepangl[i]*360)/allsweep;
}
//去掉白边
int tempsw;
for(int j=1;j<360;j++)
{
tempsw=0;
for(int i=1;i<=num;i++)
{
tempsw=tempsw+sweepangl[i];
}
if(tempsw<360)
{
for(int k=1;k<=360-tempsw;k++)
{
if(k<num)
{
sweepangl[k]++;
}
else
{
break;
}
}
}
if(tempsw>=360)
{
break;
}
}
startangl[1]=0;
int tempallsweep;
for(int i=2;i<=num;i++)
{
tempallsweep=0;
for(int j=1;j<=i-1;j++)
{
tempallsweep=tempallsweep+sweepangl[j];
}
startangl[i]=tempallsweep;
}
if(formwidth>=formheight)
{
kuandu=formheight*2/3;
}
else
{
kuandu=formwidth*2/3;
}
double angle;
typenamelabel = new system.windows .forms.label[100];
for(int i=1;i<=num;i++)
{
angle=(360-startangl[i]+90-sweepangl[i]/2)*3.141592653579/180;
typenamelabel[i]=new label ();
typenamelabel[i].top =(int)((kuandu+60)/2* math.cos (angle))+(formheight/6+kuandu/2);
typenamelabel[i].text =typename[i];
typenamelabel[i].autosize =true;
typenamelabel[i].left =(int)((kuandu+60)/2* math.sin (angle))+(formwidth/6+kuandu/2);
this.controls .add (typenamelabel[i]);
}
typevaluelabel = new system.windows .forms.label[100,100];
string tempstr1;
for(int i=1;i<=num;i++)
{
tempstr1=(int32.parse (typevalue[1,i])*1.0/allsweep*100.0).tostring()+” “;
typevaluelabel[1,i]=new label ();
typevaluelabel[1,i].top =typenamelabel[i].top ;
typevaluelabel[1,i].text =tempstr1.substring(0,5)+”%”;
typevaluelabel[1,i].autosize =true;
typevaluelabel[1,i].left =typenamelabel[i].left+typenamelabel[i].width +2;
this.controls .add (typevaluelabel[1,i]);
}
}
#endregion
private void chartcontrol_load(object sender, system.eventargs e)
{
allbegain();
}
#region draw diagram函数,2005 4 4 by hyc
protected override void onpaint(painteventargs paintevent)
{
graphics g = paintevent.graphics;
solidbrush brush=new solidbrush (color.blue );
pen pen=new pen (color.black);
pen pen2=new pen (color.darkgray );
solidbrush[] bb;
bb=new solidbrush [100];
bb[1]=new solidbrush (color.darkred);
bb[2]=new solidbrush (color.darkslateblue);
bb[3]=new solidbrush (color.darkgray);
bb[4]=new solidbrush (color.yellowgreen);
bb[5]=new solidbrush (color.darksalmon);
bb[6]=new solidbrush (color.darkorange);
bb[7]=new solidbrush (color.lightyellow);
bb[8]=new solidbrush (color.slateblue);
bb[9]=new solidbrush (color.black);
bb[10]=new solidbrush (color.yellowgreen);
bb[11]=new solidbrush (color.darkseagreen);
bb[12]=new solidbrush (color.darkslategray);
bb[13]=new solidbrush (color.darkturquoise);
bb[14]=new solidbrush (color.darkviolet);
bb[15]=new solidbrush (color.deeppink);
pen[] pp;
pp=new pen [100];
pp[1]=new pen (color.darkred);
pp[2]=new pen (color.darkslateblue);
pp[3]=new pen (color.darkgray);
pp[4]=new pen (color.yellowgreen);
pp[5]=new pen (color.darksalmon);
pp[6]=new pen (color.darkorange);
pp[7]=new pen (color.lightyellow);
pp[8]=new pen (color.slateblue);
pp[9]=new pen (color.black);
pp[10]=new pen (color.yellowgreen);
pp[11]=new pen (color.darkseagreen);
pp[12]=new pen (color.darkslategray);
pp[13]=new pen (color.darkturquoise);
pp[14]=new pen (color.darkviolet);
pp[15]=new pen (color.deeppink);
getxmlfilevalue(pathfilename,”diagramtype”,ref appvalue);
switch(appvalue)
{
case “histogram”://柱形图
histogrambegain();
g.drawline (pen,label2.left +label2.width ,label3.top-5,label3.left+label3.width,label3.top-5);
g.drawline (pen,label2.left +label2.width ,label3.top-5,label2.left +label2.width ,label2.top-5);
for(int i=1;i<=num;i++)
{
for(int j=1;j<=jnum;j++)
{
g.fillrectangle(bb[j],x[j,i],y[j,i],polebold,yy[j,i]);
}
}
break;
case”flexdiagram”://折线图
flexdiagrambegain();
g.drawline (pen,label2.left +label2.width ,label3.top-5,label3.left+label3.width,label3.top-5);
g.drawline (pen,label2.left +label2.width ,label3.top-5,label2.left +label2.width ,label2.top-5);
for(int i=1;i<num;i++)
{
for(int j=1;j<=jnum;j++)
{
g.drawline (pp[j],x[j,i],y[j,i],x[j,i+1],y[j,i+1]);
}
}
for(int i=1;i<=num;i++)
{
for(int j=1;j<=jnum;j++)
{
g.drawline(pen2,x[j,i],y[j,i],x[j,i],label3.top-5);
}
}
break;
case”cakydiagram”://饼形图
cakydiagrambegain();
g.drawline (pen,label2.left +label2.width ,label3.top-5,label3.left+label3.width,label3.top-5);
g.drawline (pen,label2.left +label2.width ,label3.top-5,label2.left +label2.width ,label2.top-5);
for(int i=1;i<=num;i++)
{
g.fillpie (bb[i],formwidth/6,formheight/6,kuandu,kuandu,startangl[i],sweepangl[i]);
}
break;
default:
break;
}
}
#endregion
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//xml文件内容,此文件必须放在应用程序目录,文件名xmlchart.xml
<?xml version=”1.0″ encoding=”utf-8″ ?>
<configuration>
<appsettings>
<add key=”diagramtype” value=”histogram” />
<add key=”diagramname” value=”1-12月产品数量对比” />
<add key=”xname” value=”月份” />
<add key=”yname” value=”数量” />
<add key=”jnum” value=”2″ />
<add key=”num” value=”5″ />
<add key=”text” value=”yes” />
<add key=”id1″ value=”1月” />
<add key=”id2″ value=”2月” />
<add key=”id3″ value=”3月” />
<add key=”id4″ value=”4月” />
<add key=”id5″ value=”5月” />
<add key=”id6″ value=”6月” />
<add key=”id7″ value=”7月” />
<add key=”id8″ value=”8月” />
<add key=”id9″ value=”9月” />
<add key=”id10″ value=”10月” />
<add key=”id11″ value=”11月” />
<add key=”id12″ value=”12月” />
<add key=”id13″ value=”1月” />
<add key=”id14″ value=”2月” />
<add key=”id15″ value=”3月” />
<add key=”id16″ value=”4月” />
<add key=”id17″ value=”5月” />
<add key=”id18″ value=”6月” />
<add key=”id19″ value=”7月” />
<add key=”id20″ value=”8月” />
<add key=”id21″ value=”9月” />
<add key=”id22″ value=”10月” />
<add key=”id23″ value=”11月” />
<add key=”id24″ value=”12月” />
<add key=”id25″ value=”1月” />
<add key=”id1num1″ value=”9″ />
<add key=”id1num2″ value=”5″ />
<add key=”id1num3″ value=”6″ />
<add key=”id1num4″ value=”7″ />
<add key=”id1num5″ value=”4″ />
<add key=”id1num6″ value=”6″ />
<add key=”id1num7″ value=”5″ />
<add key=”id1num8″ value=”3″ />
<add key=”id1num9″ value=”2″ />
<add key=”id1num10″ value=”1″ />
<add key=”id1num11″ value=”2″ />
<add key=”id1num12″ value=”2″ />
<add key=”id1num13″ value=”2″ />
<add key=”id1num14″ value=”2″ />
<add key=”id1num15″ value=”2″ />
<add key=”id1num16″ value=”2″ />
<add key=”id1num17″ value=”2″ />
<add key=”id1num18″ value=”2″ />
<add key=”id1num19″ value=”2″ />
<add key=”id1num20″ value=”2″ />
<add key=”id1num21″ value=”2″ />
<add key=”id1num22″ value=”2″ />
<add key=”id1num23″ value=”2″ />
<add key=”id1num24″ value=”2″ />
<add key=”id1num25″ value=”2″ />
<add key=”id2num1″ value=”4″ />
<add key=”id2num2″ value=”5″ />
<add key=”id2num3″ value=”4″ />
<add key=”id2num4″ value=”1″ />
<add key=”id2num5″ value=”5″ />
<add key=”id2num6″ value=”3″ />
<add key=”id2num7″ value=”4″ />
<add key=”id2num8″ value=”1″ />
<add key=”id2num9″ value=”2″ />
<add key=”id2num10″ value=”4″ />
<add key=”id2num11″ value=”5″ />
<add key=”id2num12″ value=”2″ />
<add key=”id2num13″ value=”2″ />
<add key=”id2num14″ value=”2″ />
<add key=”id2num15″ value=”2″ />
<add key=”id2num16″ value=”2″ />
<add key=”id2num17″ value=”2″ />
<add key=”id2num18″ value=”2″ />
<add key=”id2num19″ value=”2″ />
<add key=”id2num20″ value=”2″ />
<add key=”id2num21″ value=”2″ />
<add key=”id2num22″ value=”2″ />
<add key=”id2num23″ value=”2″ />
<add key=”id2num24″ value=”2″ />
<add key=”id2num25″ value=”2″ />
<add key=”id3num1″ value=”4″ />
<add key=”id3num2″ value=”5″ />
<add key=”id3num3″ value=”6″ />
<add key=”id3num4″ value=”1″ />
<add key=”id3num5″ value=”2″ />
<add key=”id3num6″ value=”2″ />
<add key=”id3num7″ value=”5″ />
<add key=”id3num8″ value=”2″ />
<add key=”id3num9″ value=”5″ />
<add key=”id3num10″ value=”7″ />
<add key=”id3num11″ value=”9″ />
<add key=”id3num12″ value=”2″ />
<add key=”id3num13″ value=”2″ />
<add key=”id3num14″ value=”2″ />
<add key=”id3num15″ value=”2″ />
<add key=”id3num16″ value=”2″ />
<add key=”id3num17″ value=”2″ />
<add key=”id3num18″ value=”2″ />
<add key=”id3num19″ value=”2″ />
<add key=”id3num20″ value=”2″ />
<add key=”id3num21″ value=”2″ />
<add key=”id3num22″ value=”2″ />
<add key=”id3num23″ value=”2″ />
<add key=”id3num24″ value=”2″ />
<add key=”id3num25″ value=”2″ />
<add key=”id4num1″ value=”2″ />
<add key=”id4num2″ value=”5″ />
<add key=”id4num3″ value=”4″ />
<add key=”id4num4″ value=”2″ />
<add key=”id4num5″ value=”4″ />
<add key=”id4num6″ value=”3″ />
<add key=”id4num7″ value=”1″ />
<add key=”id4num8″ value=”1″ />
<add key=”id4num9″ value=”4″ />
<add key=”id4num10″ value=”5″ />
<add key=”id4num11″ value=”8″ />
<add key=”id4num12″ value=”2″ />
<add key=”id4num13″ value=”2″ />
<add key=”id4num14″ value=”2″ />
<add key=”id4num15″ value=”2″ />
<add key=”id4num16″ value=”2″ />
<add key=”id4num17″ value=”2″ />
<add key=”id4num18″ value=”2″ />
<add key=”id4num19″ value=”2″ />
<add key=”id4num20″ value=”2″ />
<add key=”id4num21″ value=”2″ />
<add key=”id4num22″ value=”2″ />
<add key=”id4num23″ value=”2″ />
<add key=”id4num24″ value=”2″ />
<add key=”id4num25″ value=”2″ />
<add key=”id5num1″ value=”2″ />
<add key=”id5num2″ value=”5″ />
<add key=”id5num3″ value=”4″ />
<add key=”id5num4″ value=”2″ />
<add key=”id5num5″ value=”4″ />
<add key=”id5num6″ value=”3″ />
<add key=”id5num7″ value=”1″ />
<add key=”id5num8″ value=”1″ />
<add key=”id5num9″ value=”4″ />
<add key=”id5num10″ value=”5″ />
<add key=”id5num11″ value=”8″ />
<add key=”id5num12″ value=”2″ />
<add key=”id5num13″ value=”2″ />
<add key=”id5num14″ value=”2″ />
<add key=”id5num15″ value=”2″ />
<add key=”id5num16″ value=”2″ />
<add key=”id5num17″ value=”2″ />
<add key=”id5num18″ value=”2″ />
<add key=”id5num19″ value=”2″ />
<add key=”id5num20″ value=”2″ />
<add key=”id5num21″ value=”2″ />
<add key=”id5num22″ value=”2″ />
<add key=”id5num23″ value=”2″ />
<add key=”id5num24″ value=”2″ />
<add key=”id5num25″ value=”2″ />
<add key=”id6num1″ value=”2″ />
<add key=”id6num2″ value=”5″ />
<add key=”id6num3″ value=”4″ />
<add key=”id6num4″ value=”2″ />
<add key=”id6num5″ value=”4″ />
<add key=”id6num6″ value=”3″ />
<add key=”id6num7″ value=”1″ />
<add key=”id6num8″ value=”1″ />
<add key=”id6num9″ value=”4″ />
<add key=”id6num10″ value=”5″ />
<add key=”id6num11″ value=”8″ />
<add key=”id6num12″ value=”2″ />
<add key=”id6num13″ value=”2″ />
<add key=”id6num14″ value=”2″ />
<add key=”id6num15″ value=”2″ />
<add key=”id6num16″ value=”2″ />
<add key=”id6num17″ value=”2″ />
<add key=”id6num18″ value=”2″ />
<add key=”id6num19″ value=”2″ />
<add key=”id6num20″ value=”2″ />
<add key=”id6num21″ value=”2″ />
<add key=”id6num22″ value=”2″ />
<add key=”id6num23″ value=”2″ />
<add key=”id6num24″ value=”2″ />
<add key=”id6num25″ value=”2″ />
<add key=”id7num1″ value=”2″ />
<add key=”id7num2″ value=”5″ />
<add key=”id7num3″ value=”4″ />
<add key=”id7num4″ value=”2″ />
<add key=”id7num5″ value=”4″ />
<add key=”id7num6″ value=”3″ />
<add key=”id7num7″ value=”1″ />
<add key=”id7num8″ value=”1″ />
<add key=”id7num9″ value=”4″ />
<add key=”id7num10″ value=”5″ />
<add key=”id7num11″ value=”8″ />
<add key=”id7num12″ value=”2″ />
<add key=”id7num13″ value=”2″ />
<add key=”id7num14″ value=”2″ />
<add key=”id7num15″ value=”2″ />
<add key=”id7num16″ value=”2″ />
<add key=”id7num17″ value=”2″ />
<add key=”id7num18″ value=”2″ />
<add key=”id7num19″ value=”2″ />
<add key=”id7num20″ value=”2″ />
<add key=”id7num21″ value=”2″ />
<add key=”id7num22″ value=”2″ />
<add key=”id7num23″ value=”2″ />
<add key=”id7num24″ value=”2″ />
<add key=”id7num25″ value=”2″ />
<add key=”id8num1″ value=”2″ />
<add key=”id8num2″ value=”5″ />
<add key=”id8num3″ value=”4″ />
<add key=”id8num4″ value=”2″ />
<add key=”id8num5″ value=”4″ />
<add key=”id8num6″ value=”3″ />
<add key=”id8num7″ value=”1″ />
<add key=”id8num8″ value=”1″ />
<add key=”id8num9″ value=”4″ />
<add key=”id8num10″ value=”5″ />
<add key=”id8num11″ value=”8″ />
<add key=”id8num12″ value=”2″ />
<add key=”id8num13″ value=”2″ />
<add key=”id8num14″ value=”2″ />
<add key=”id8num15″ value=”2″ />
<add key=”id8num16″ value=”2″ />
<add key=”id8num17″ value=”2″ />
<add key=”id8num18″ value=”2″ />
<add key=”id8num19″ value=”2″ />
<add key=”id8num20″ value=”2″ />
<add key=”id8num21″ value=”2″ />
<add key=”id8num22″ value=”2″ />
<add key=”id8num23″ value=”2″ />
<add key=”id8num24″ value=”2″ />
<add key=”id8num25″ value=”2″ />
<add key=”id9num1″ value=”2″ />
<add key=”id9num2″ value=”5″ />
<add key=”id9num3″ value=”4″ />
<add key=”id9num4″ value=”2″ />
<add key=”id9num5″ value=”4″ />
<add key=”id9num6″ value=”3″ />
<add key=”id9num7″ value=”1″ />
<add key=”id9num8″ value=”1″ />
<add key=”id9num9″ value=”4″ />
<add key=”id9num10″ value=”5″ />
<add key=”id9num11″ value=”8″ />
<add key=”id9num12″ value=”2″ />
<add key=”id9num13″ value=”2″ />
<add key=”id9num14″ value=”2″ />
<add key=”id9num15″ value=”2″ />
<add key=”id9num16″ value=”2″ />
<add key=”id9num17″ value=”2″ />
<add key=”id9num18″ value=”2″ />
<add key=”id9num19″ value=”2″ />
<add key=”id9num20″ value=”2″ />
<add key=”id9num21″ value=”2″ />
<add key=”id9num22″ value=”2″ />
<add key=”id9num23″ value=”2″ />
<add key=”id9num24″ value=”2″ />
<add key=”id9num25″ value=”2″ />
<add key=”id10num1″ value=”2″ />
<add key=”id10num2″ value=”5″ />
<add key=”id10num3″ value=”4″ />
<add key=”id10num4″ value=”2″ />
<add key=”id10num5″ value=”4″ />
<add key=”id10num6″ value=”3″ />
<add key=”id10num7″ value=”1″ />
<add key=”id10num8″ value=”1″ />
<add key=”id10num9″ value=”4″ />
<add key=”id10num10″ value=”5″ />
<add key=”id10num11″ value=”8″ />
<add key=”id10num12″ value=”2″ />
<add key=”id10num13″ value=”2″ />
<add key=”id10num14″ value=”2″ />
<add key=”id10num15″ value=”2″ />
<add key=”id10num16″ value=”2″ />
<add key=”id10num17″ value=”2″ />
<add key=”id10num18″ value=”2″ />
<add key=”id10num19″ value=”2″ />
<add key=”id10num20″ value=”2″ />
<add key=”id10num21″ value=”2″ />
<add key=”id10num22″ value=”2″ />
<add key=”id10num23″ value=”2″ />
<add key=”id10num24″ value=”2″ />
<add key=”id10num25″ value=”2″ />
</appsettings>
</configuration>