亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? svm.cs

?? 這是C#版本開發(fā)的SVM類庫包,適合不同愛好的同學學習.
?? CS
?? 第 1 頁 / 共 5 頁
字號:
					start[i] = start[i - 1] + count[i - 1];
				
				svm_node[][] x = new svm_node[l][];
				
				for (i = 0; i < l; i++)
				{
					x[start[index[i]]] = prob.x[i];
					++start[index[i]];
				}
				
				start[0] = 0;
				for (i = 1; i < nr_class; i++)
					start[i] = start[i - 1] + count[i - 1];
				
				// calculate weighted C
				
				double[] weighted_C = new double[nr_class];
				for (i = 0; i < nr_class; i++)
					weighted_C[i] = param.C;
				for (i = 0; i < param.nr_weight; i++)
				{
					int j;
					for (j = 0; j < nr_class; j++)
						if (param.weight_label[i] == label[j])
							break;
					if (j == nr_class)
						System.Console.Error.Write("warning: class label " + param.weight_label[i] + " specified in weight is not found\n");
					else
						weighted_C[j] *= param.weight[i];
				}
				
				// train k*(k-1)/2 models
				
				bool[] nonzero = new bool[l];
				for (i = 0; i < l; i++)
					nonzero[i] = false;
				decision_function[] f = new decision_function[nr_class * (nr_class - 1) / 2];
				
				double[] probA = null, probB = null;
				if (param.probability == 1)
				{
					probA = new double[nr_class * (nr_class - 1) / 2];
					probB = new double[nr_class * (nr_class - 1) / 2];
				}
				
				int p = 0;
				for (i = 0; i < nr_class; i++)
					for (int j = i + 1; j < nr_class; j++)
					{
						svm_problem sub_prob = new svm_problem();
						int si = start[i], sj = start[j];
						int ci = count[i], cj = count[j];
						sub_prob.l = ci + cj;
						sub_prob.x = new svm_node[sub_prob.l][];
						sub_prob.y = new double[sub_prob.l];
						int k;
						for (k = 0; k < ci; k++)
						{
							sub_prob.x[k] = x[si + k];
							sub_prob.y[k] = + 1;
						}
						for (k = 0; k < cj; k++)
						{
							sub_prob.x[ci + k] = x[sj + k];
							sub_prob.y[ci + k] = - 1;
						}
						
						if (param.probability == 1)
						{
							double[] probAB = new double[2];
							svm_binary_svc_probability(sub_prob, param, weighted_C[i], weighted_C[j], probAB);
							probA[p] = probAB[0];
							probB[p] = probAB[1];
						}
						
						f[p] = svm_train_one(sub_prob, param, weighted_C[i], weighted_C[j]);
						for (k = 0; k < ci; k++)
							if (!nonzero[si + k] && System.Math.Abs(f[p].alpha[k]) > 0)
								nonzero[si + k] = true;
						for (k = 0; k < cj; k++)
							if (!nonzero[sj + k] && System.Math.Abs(f[p].alpha[ci + k]) > 0)
								nonzero[sj + k] = true;
						++p;
					}
				
				// build output
				
				model.nr_class = nr_class;
				
				model.label = new int[nr_class];
				for (i = 0; i < nr_class; i++)
					model.label[i] = label[i];
				
				model.rho = new double[nr_class * (nr_class - 1) / 2];
				for (i = 0; i < nr_class * (nr_class - 1) / 2; i++)
					model.rho[i] = f[i].rho;
				
				if (param.probability == 1)
				{
					model.probA = new double[nr_class * (nr_class - 1) / 2];
					model.probB = new double[nr_class * (nr_class - 1) / 2];
					for (i = 0; i < nr_class * (nr_class - 1) / 2; i++)
					{
						model.probA[i] = probA[i];
						model.probB[i] = probB[i];
					}
				}
				else
				{
					model.probA = null;
					model.probB = null;
				}
				
				int nnz = 0;
				int[] nz_count = new int[nr_class];
				model.nSV = new int[nr_class];
				for (i = 0; i < nr_class; i++)
				{
					int nSV = 0;
					for (int j = 0; j < count[i]; j++)
						if (nonzero[start[i] + j])
						{
							++nSV;
							++nnz;
						}
					model.nSV[i] = nSV;
					nz_count[i] = nSV;
				}
				
				System.Console.Out.Write("Total nSV = " + nnz + "\n");
				
				model.l = nnz;
				model.SV = new svm_node[nnz][];
				p = 0;
				for (i = 0; i < l; i++)
					if (nonzero[i])
						model.SV[p++] = x[i];
				
				int[] nz_start = new int[nr_class];
				nz_start[0] = 0;
				for (i = 1; i < nr_class; i++)
					nz_start[i] = nz_start[i - 1] + nz_count[i - 1];
				
				model.sv_coef = new double[nr_class - 1][];
				for (i = 0; i < nr_class - 1; i++)
					model.sv_coef[i] = new double[nnz];
				
				p = 0;
				for (i = 0; i < nr_class; i++)
					for (int j = i + 1; j < nr_class; j++)
					{
						// classifier (i,j): coefficients with
						// i are in sv_coef[j-1][nz_start[i]...],
						// j are in sv_coef[i][nz_start[j]...]
						
						int si = start[i];
						int sj = start[j];
						int ci = count[i];
						int cj = count[j];
						
						int q = nz_start[i];
						int k;
						for (k = 0; k < ci; k++)
							if (nonzero[si + k])
								model.sv_coef[j - 1][q++] = f[p].alpha[k];
						q = nz_start[j];
						for (k = 0; k < cj; k++)
							if (nonzero[sj + k])
								model.sv_coef[i][q++] = f[p].alpha[ci + k];
						++p;
					}
			}
			return model;
		}
		
		public static void  svm_cross_validation(svm_problem prob, svm_parameter param, int nr_fold, double[] target)
		{
			int i;
			int[] perm = new int[prob.l];
			
			// random shuffle
			for (i = 0; i < prob.l; i++)
				perm[i] = i;
			for (i = 0; i < prob.l; i++)
			{
				//UPGRADE_WARNING: Data types in Visual C# might be different.  Verify the accuracy of narrowing conversions. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1042_3"'
				int j = i + (int) (SupportClass.Random.NextDouble() * (prob.l - i));
				do 
				{
					int _ = perm[i]; perm[i] = perm[j]; perm[j] = _;
				}
				while (false);
			}
			for (i = 0; i < nr_fold; i++)
			{
				int begin = i * prob.l / nr_fold;
				int end = (i + 1) * prob.l / nr_fold;
				int j, k;
				svm_problem subprob = new svm_problem();
				
				subprob.l = prob.l - (end - begin);
				subprob.x = new svm_node[subprob.l][];
				subprob.y = new double[subprob.l];
				
				k = 0;
				for (j = 0; j < begin; j++)
				{
					subprob.x[k] = prob.x[perm[j]];
					subprob.y[k] = prob.y[perm[j]];
					++k;
				}
				for (j = end; j < prob.l; j++)
				{
					subprob.x[k] = prob.x[perm[j]];
					subprob.y[k] = prob.y[perm[j]];
					++k;
				}
				svm_model submodel = svm_train(subprob, param);
				if (param.probability == 1 && (param.svm_type == svm_parameter.C_SVC || param.svm_type == svm_parameter.NU_SVC))
				{
					double[] prob_estimates = new double[svm_get_nr_class(submodel)];
					for (j = begin; j < end; j++)
						target[perm[j]] = svm_predict_probability(submodel, prob.x[perm[j]], prob_estimates);
				}
				else
					for (j = begin; j < end; j++)
						target[perm[j]] = svm_predict(submodel, prob.x[perm[j]]);
			}
		}
		
		public static int svm_get_svm_type(svm_model model)
		{
			return model.param.svm_type;
		}
		
		public static int svm_get_nr_class(svm_model model)
		{
			return model.nr_class;
		}
		
		public static void  svm_get_labels(svm_model model, int[] label)
		{
			if (model.label != null)
				for (int i = 0; i < model.nr_class; i++)
					label[i] = model.label[i];
		}
		
		public static double svm_get_svr_probability(svm_model model)
		{
			if ((model.param.svm_type == svm_parameter.EPSILON_SVR || model.param.svm_type == svm_parameter.NU_SVR) && model.probA != null)
				return model.probA[0];
			else
			{
				System.Console.Error.Write("Model doesn't contain information for SVR probability inference\n");
				return 0;
			}
		}
		
		public static void  svm_predict_values(svm_model model, svm_node[] x, double[] dec_values)
		{
			if (model.param.svm_type == svm_parameter.ONE_CLASS || model.param.svm_type == svm_parameter.EPSILON_SVR || model.param.svm_type == svm_parameter.NU_SVR)
			{
				double[] sv_coef = model.sv_coef[0];
				double sum = 0;
				for (int i = 0; i < model.l; i++)
					sum += sv_coef[i] * Kernel.k_function(x, model.SV[i], model.param);
				sum -= model.rho[0];
				dec_values[0] = sum;
			}
			else
			{
				int i;
				int nr_class = model.nr_class;
				int l = model.l;
				
				double[] kvalue = new double[l];
				for (i = 0; i < l; i++)
					kvalue[i] = Kernel.k_function(x, model.SV[i], model.param);
				
				int[] start = new int[nr_class];
				start[0] = 0;
				for (i = 1; i < nr_class; i++)
					start[i] = start[i - 1] + model.nSV[i - 1];
				
				int p = 0;
				int pos = 0;
				for (i = 0; i < nr_class; i++)
					for (int j = i + 1; j < nr_class; j++)
					{
						double sum = 0;
						int si = start[i];
						int sj = start[j];
						int ci = model.nSV[i];
						int cj = model.nSV[j];
						
						int k;
						double[] coef1 = model.sv_coef[j - 1];
						double[] coef2 = model.sv_coef[i];
						for (k = 0; k < ci; k++)
							sum += coef1[si + k] * kvalue[si + k];
						for (k = 0; k < cj; k++)
							sum += coef2[sj + k] * kvalue[sj + k];
						sum -= model.rho[p++];
						dec_values[pos++] = sum;
					}
			}
		}
		
		public static double svm_predict(svm_model model, svm_node[] x)
		{
			if (model.param.svm_type == svm_parameter.ONE_CLASS || model.param.svm_type == svm_parameter.EPSILON_SVR || model.param.svm_type == svm_parameter.NU_SVR)
			{
				double[] res = new double[1];
				svm_predict_values(model, x, res);
				
				if (model.param.svm_type == svm_parameter.ONE_CLASS)
					return (res[0] > 0)?1:- 1;
				else
					return res[0];
			}
			else
			{
				int i;
				int nr_class = model.nr_class;
				double[] dec_values = new double[nr_class * (nr_class - 1) / 2];
				svm_predict_values(model, x, dec_values);
				
				int[] vote = new int[nr_class];
				for (i = 0; i < nr_class; i++)
					vote[i] = 0;
				int pos = 0;
				for (i = 0; i < nr_class; i++)
					for (int j = i + 1; j < nr_class; j++)
					{
						if (dec_values[pos++] > 0)
							++vote[i];
						else
							++vote[j];
					}
				
				int vote_max_idx = 0;
				for (i = 1; i < nr_class; i++)
					if (vote[i] > vote[vote_max_idx])
						vote_max_idx = i;
				return model.label[vote_max_idx];
			}
		}
		
		public static double svm_predict_probability(svm_model model, svm_node[] x, double[] prob_estimates)
		{
			if ((model.param.svm_type == svm_parameter.C_SVC || model.param.svm_type == svm_parameter.NU_SVC) && model.probA != null && model.probB != null)
			{
				int i;
				int nr_class = model.nr_class;
				double[] dec_values = new double[nr_class * (nr_class - 1) / 2];
				svm_predict_values(model, x, dec_values);
				
				double min_prob = 1e-7;
				double[][] tmpArray = new double[nr_class][];
				for (int i2 = 0; i2 < nr_class; i2++)
				{
					tmpArray[i2] = new double[nr_class];
				}
				double[][] pairwise_prob = tmpArray;
				
				int k = 0;
				for (i = 0; i < nr_class; i++)
					for (int j = i + 1; j < nr_class; j++)
					{
						pairwise_prob[i][j] = System.Math.Min(System.Math.Max(sigmoid_predict(dec_values[k], model.probA[k], model.probB[k]), min_prob), 1 - min_prob);
						pairwise_prob[j][i] = 1 - pairwise_prob[i][j];
						k++;
					}
				multiclass_probability(nr_class, pairwise_prob, prob_estimates);
				
				int prob_max_idx = 0;
				for (i = 1; i < nr_class; i++)
					if (prob_estimates[i] > prob_estimates[prob_max_idx])
						prob_max_idx = i;
				return model.label[prob_max_idx];
			}
			else
				return svm_predict(model, x);
		}
		
		//UPGRADE_NOTE: Final was removed from the declaration of 'svm_type_table'. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1003_3"'
		internal static readonly System.String[] svm_type_table = new System.String[]{"c_svc", "nu_svc", "one_class", "epsilon_svr", "nu_svr"};
		
		//UPGRADE_NOTE: Final was removed from the declaration of 'kernel_type_table'. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1003_3"'
		internal static readonly System.String[] kernel_type_table = new System.String[]{"linear", "polynomial", "rbf", "sigmoid"};
		
		public static void  svm_save_model(System.String model_file_name, svm_model model)
		{
			//UPGRADE_TODO: Class 'java.io.DataOutputStream' was converted to 'System.IO.BinaryWriter' which has a different behavior. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1073_javaioDataOutputStream_3"'
			//UPGRADE_TODO: Constructor 'java.io.FileOutputStream.FileOutputStream' was converted to 'System.IO.FileStream.FileStream' which has a different behavior. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1073_javaioFileOutputStreamFileOutputStream_javalangString_3"'
			/* Original System.IO.BinaryWriter fp = new System.IO.BinaryWriter(new System.IO.FileStream(model_file_name, System.IO.FileMode.Create));*/
			System.IO.StreamWriter fp = new System.IO.StreamWriter(new System.IO.FileStream(model_file_name, System.IO.FileMode.Create), System.Text.Encoding.Default);
			
			svm_parameter param = model.param;
			
			fp.Write("svm_type " + svm_type_table[param.svm_type] + "\n");
			fp.Write("kernel_type " + kernel_type_table[param.kernel_type] + "\n");
			
			if (param.kernel_type == svm_parameter.POLY)
				fp.Write("degree " + param.degree + "\n");
			
			if (param.kernel_type == svm_parameter.POLY || param.kernel_type == svm_parameter.RBF || param.kernel_type == svm_parameter.SIGMOID)
				fp.Write("gamma " + param.gamma + "\n");
			
			if (param.kernel_type == svm_parameter.POLY || param.kernel_type == svm_parameter.SIGMOID)
				fp.Write("coef0 " + param.coef0 + "\n");
			
			int nr_class = model.nr_class;
			int l = model.l;
			fp.Write("nr_class " + nr_class + "\n");
			fp.Write("total_sv " + l + "\n");
			
			{
				fp.Write("rho");
				for (int i = 0; i < nr_class * (nr_class - 1) / 2; i++)
					fp.Write(" " + model.rho[i]);
				fp.Write("\n");
			}
			
			if (model.label != null)
			{
				fp.Write("label");
				for (int i = 0; i < nr_class; i++)
					fp.Write(" " + model.label[i]);
				fp.Write("\n");
			}
			
			if (model.probA != null)
			// regression has probA only
			{
				fp.Write("probA");
				for (int i = 0; i < nr_class * (nr_class - 1) / 2; i++)
					fp.Write(" " + model.probA[i]);
				fp.Write("\n");
			}
			if (model.probB != null)
			{
				fp.Write("probB");
				for (int i = 0; i < nr_class * (nr_class - 1) / 2; i++)
					fp.Write(" " + model.probB[i]);
				fp.Write("\n");
			}
			
			if (model.nSV != null)
			{
				fp.Write("nr_sv");
				for (int i = 0; i < nr_class; i++)
					fp.Write(" " + model.nSV[i]);
				fp.Write("\n");
			}
			
			fp.Write("SV\n");
			double[][] sv_coef = model.sv_coef;
			svm_node[][] SV = model.SV;
			
			for (int i = 0; i < l; i++)
			{
				for (int j = 0; j < nr_class - 1; j++)
					fp.Write(sv_coef[j][i] + " ");
				
				svm_node[] p = SV[i];
				for (int j = 0; j < p.Length; j++)
					fp.Write(p[j].index + ":" + p[j].value_Renamed + " ");
				fp.Write("\n");
			}
			
			fp.Close();
		}
		
		private static double atof(System.String s)
		{
			return System.Double.Parse(s);
		}
		
		private static int atoi(System.String s)
		{
			return System.Int32.Parse(s);
		}
		
		public static svm_model svm_load_model(System.String model_file_name)
		{
			//UPGRADE_TODO: The differences in the expected value  of parameters for constructor 'java.io.BufferedReader.BufferedReader'  may cause compilation errors.  'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1092_3"'
			//UPGRADE_WARNING: At least one expression was used more than once in the target code. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1181_3"'
			//UPGRADE_TODO: Constructor 'java.io.FileReader.FileReader' was converted to 'System.IO.StreamReader' which has a different behavior. 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="jlca1073_3"'
			/*Original System.IO.StreamReader fp = new System.IO.StreamReader(new System.IO.StreamReader(model_file_name, System.Text.Encoding.Default).BaseStream, new System.IO.StreamReader(model_file_name, System.Text.Encoding.Default).CurrentEncoding);*/
			System.IO.StreamReader fp = new System.IO.StreamReader(new System.IO.FileStream(model_file_name, System.IO.FileMode.Open), System.Text.Encoding.Default);
			
			// read parameter

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲av在线精品| 精品国产免费一区二区三区香蕉| 欧美午夜电影在线播放| 欧美一区二区免费视频| 亚洲欧美日韩一区二区 | 色94色欧美sute亚洲线路一久| 欧美日韩成人高清| 国产精品久久久久影院| 狠狠色丁香婷综合久久| 在线观看国产91| 中文字幕高清不卡| 激情综合网最新| 欧美美女网站色| 一级做a爱片久久| 成人av电影在线网| 久久久亚洲综合| 蜜桃一区二区三区四区| 欧美三区免费完整视频在线观看| 中文字幕精品综合| 久久99精品久久久久婷婷| 欧美精品第1页| 亚洲制服丝袜在线| 色噜噜狠狠成人网p站| 中文字幕日韩av资源站| 成人永久看片免费视频天堂| 精品国产免费人成电影在线观看四季| 五月综合激情网| 欧美性猛交xxxxxxxx| 亚洲裸体在线观看| 色综合天天性综合| 日韩毛片视频在线看| 99精品视频在线观看免费| 中文字幕av不卡| 春色校园综合激情亚洲| 国产精品亲子乱子伦xxxx裸| 国产不卡视频一区| 国产精品美女www爽爽爽| 波多野结衣亚洲| 中文字幕日本乱码精品影院| 91亚洲精品久久久蜜桃网站| 中文字幕一区二区三区四区不卡| av动漫一区二区| 亚洲男人的天堂一区二区| 色诱视频网站一区| 亚洲观看高清完整版在线观看 | 国产精品456| 久久精品无码一区二区三区| 高潮精品一区videoshd| 国产精品久久久久四虎| 在线免费观看成人短视频| 亚洲18色成人| 精品国产一区二区三区忘忧草| 国产尤物一区二区| 中文字幕亚洲精品在线观看| 欧美天堂一区二区三区| 免费高清成人在线| 国产精品免费久久久久| 欧亚一区二区三区| 美国欧美日韩国产在线播放| 国产色一区二区| 在线观看不卡一区| 精品一区二区三区免费观看| 中文字幕一区二区三区在线播放| 欧美日韩在线播| 国内精品久久久久影院薰衣草| 中文字幕在线一区| 911精品产国品一二三产区| 国产福利精品导航| 亚洲电影在线免费观看| 精品国产青草久久久久福利| 91精品国产麻豆国产自产在线 | 自拍偷拍国产亚洲| 欧美一级一区二区| 99久久精品免费观看| 青青国产91久久久久久| 国产精品理伦片| 日韩一区二区三区视频| 99精品视频一区| 久久精品国产99国产| 亚洲综合偷拍欧美一区色| 久久久久久久av麻豆果冻| 欧美手机在线视频| 成人aa视频在线观看| 美国三级日本三级久久99| 亚洲一区二区精品久久av| 国产视频亚洲色图| 日韩免费观看高清完整版| 91麻豆免费观看| 国产精品综合一区二区三区| 午夜电影久久久| 亚洲三级小视频| 欧美极品美女视频| 欧美成人三级电影在线| 欧美日韩一区视频| 91年精品国产| 成人福利电影精品一区二区在线观看| 免费在线观看精品| 性做久久久久久免费观看欧美| 中文字幕中文字幕一区| 日本一区二区三区视频视频| 日韩精品一区二区三区在线观看| 欧美伊人久久大香线蕉综合69| av不卡在线观看| 成人av免费在线观看| 国产99一区视频免费| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲一区二区三区四区五区黄| 日韩视频中午一区| 91麻豆精品国产91久久久久| 欧美色图在线观看| 欧美天堂亚洲电影院在线播放| 色偷偷88欧美精品久久久| 94-欧美-setu| 91美女蜜桃在线| 色婷婷精品久久二区二区蜜臂av| gogogo免费视频观看亚洲一| 粉嫩av一区二区三区粉嫩| 国产丶欧美丶日本不卡视频| 国产精品一线二线三线精华| 国产一区二区三区蝌蚪| 国产成人精品在线看| 成人综合婷婷国产精品久久| 成人自拍视频在线观看| 白白色 亚洲乱淫| 91麻豆产精品久久久久久| 一本大道久久a久久精二百| 在线看日韩精品电影| 欧美日韩精品三区| 日韩美女视频在线| 国产视频911| 亚洲色图欧洲色图| 调教+趴+乳夹+国产+精品| 青青草国产精品亚洲专区无| 久久精品国产一区二区| 国产成人精品综合在线观看 | 香蕉av福利精品导航| 日韩国产一区二| 久久99国产精品免费| 国产乱码精品一区二区三| bt7086福利一区国产| 色香色香欲天天天影视综合网| 欧美日韩一区二区不卡| 欧美成人官网二区| 国产精品人妖ts系列视频| 一区二区三区资源| 捆绑变态av一区二区三区| 成人午夜伦理影院| 欧美日韩你懂得| www成人在线观看| 亚洲精品国产精品乱码不99| 日韩高清一区二区| 成人精品视频.| 欧美日本一区二区三区四区| 精品国产一区二区精华| 亚洲日本一区二区| 美女视频黄久久| 91免费看`日韩一区二区| 日韩亚洲欧美在线| 玉足女爽爽91| 国产乱人伦精品一区二区在线观看 | 亚洲超碰精品一区二区| 日韩精品一区第一页| 大白屁股一区二区视频| 欧美日韩精品一区二区三区| 欧美国产97人人爽人人喊| 无码av中文一区二区三区桃花岛| 高清日韩电视剧大全免费| 欧美久久久久中文字幕| 国产精品国产三级国产aⅴ中文| 丝袜亚洲另类欧美| 色婷婷av久久久久久久| 久久精品一区二区三区av| 亚洲专区一二三| 99久久99久久精品国产片果冻| 在线观看91av| 亚洲综合丝袜美腿| 91在线精品秘密一区二区| 久久久精品综合| 日本系列欧美系列| 在线观看网站黄不卡| 最新日韩av在线| 国产麻豆精品theporn| 亚洲美女在线一区| 高清成人免费视频| 久久精品日韩一区二区三区| 天堂蜜桃一区二区三区| 91久久国产最好的精华液| 国产精品天干天干在线综合| 国内久久精品视频| 精品乱码亚洲一区二区不卡| 婷婷丁香激情综合| 欧美精品vⅰdeose4hd| 亚洲自拍偷拍欧美| 91黄色免费网站| 亚洲主播在线观看| 欧美午夜影院一区| 午夜精品久久久久久久99樱桃 | 顶级嫩模精品视频在线看| 精品久久五月天| 国产一区二区中文字幕|