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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? iso8583.cpp

?? ISO 8583 implementation.
?? CPP
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
/////////////////////////////////////////////////////////////////////////////////////////////////////
//
// IT24 Sistemas S.A.
// ISO-8583-Message Propietary Library
// 
//
//   Libreria Propietaria de Mensajes ISO-8583.
//   Propietaria implica que, como es de esperar de un estandard, se 
// respeta el formato, pero... se ajustan los mensajes a las necesidades 
// de B24-HISO.
//   Entonces, esta es la base que verifica los mensajes ISO-8583-B24
// hasta el Secondary BitMap inclusive, en forma parametrica, a traves de un profile
// o bien con valores por default. Esta tecnica utiliza una lista de strings de bitmaps
// para cada tipo de transaccion y verifica contra los bitmaps informados en el mensaje.
//   El modulo se basa en B24-HISO Release 4, en cuanto a Type, Offset y Length 
// de campos ISO8583, y la forma parametrica de cargar los bitmaps externamente (EMF). 
//   (*) Adaptados los BITMAPS especialmente por omision , para conexion con RED LINK S.A.
//
// Tarea        Fecha           Autor   Observaciones
// (Inicial)    1997.09.23      mdc     Base
// (Inicial)    1997.09.26      mdc     Base
// (Inicial)    1997.09.29      mdc     Extensiones Headers/TrxCode/Bitmap
// (Inicial)    1997.10.08      mdc     Extensiones Headers/TrxCode/Bitmap
// (Inicial)    1997.10.15      mdc     Recalculo de Offsets dinamicamente
// (Inicial)    1997.10.28      mdc     Tipo de Campo (0=Fijo,1,2,3=Variable)
// (Inicial)    1997.10.30      mdc     Extensiones Headers/TrxCode/Bitmap
// (Inicial)    1997.10.31      mdc     Longitud de mensaje
// (Inicial)    1997.11.06      mdc     Extensiones de Funcionalidad en Campos
// (Inicial)    1997.11.07      mdc     Extensiones de Tipos de Mensaje
// (Inicial)    1997.11.18      mdc     Establecer Codigo de Respuesta de Mensaje
// (Inicial)    1997.12.16      mdc     Chequeos fuertes de rangos de copia en InsertField()
// (Inicial)    1998.04.01      mdc     Aportes voluntarios AFJP=Bitmaps validos
// (Inicial)    1998.06.22      mdc     Reemplazo de CHAR[] por BYTE[], e inclusion de typedefs.h        
// (Inicial)    1998.06.23      mdc     Ultimos Movimientos=Bitmaps validos
// (Inicial)    1998.06.24      mdc     ISO-MsgTypes en defines
// (Alfa)       1998.06.25      mdc     Bitmaps ULTMOV corregidos
// (Beta)       1998.07.02      mdc     Bitmaps AFJP corregidos
// (Beta)       1998.07.31      mdc     BitMapList para cada TranTyp ahora parametrizable (SOAT)
// (Beta)       1998.08.06      mdc     Agrega BitMaps harcodeados del SOAT-NT
// (Beta)       1998.09.03      mdc     Buffer expandido a 4096 kbytes y agregado Tipo de Campo 4
// (Beta)       1998.10.15      mdc     Longitud campo #126 en 4 digitos
// (Beta)       1998.12.02      mdc     Exceso de copia en campo #126
// (Beta)       1998.12.23      mdc     Nulificacion de buffer antes de copiar datos externos
// (Beta)       1999.06.10      mdc     GetBitmapDescription() retorno dependiente de parametros.
// (Beta)       1999.07.07      mdc     Precondicion: Verificacion habilitada? : Parametrizable en .INI
// (Beta)       2000.02.15      mdc     Parametrizacion en archivo independinte de plataforma (.TXT)
// (Release)	2001.02.14		mdc		::InitMessage() con "Product-Id"="02" = POS
// (Release)    2001.06.27      mdc     Longitud campo #56 en 4 digitos
// (Release)    2005.08.24      mdc     _SYSTEM_ATM_ = _SYSTEM_BASE_
//
/////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////
/*              Base24 4.0 ISO-8583 FIELD NUMBER DEFINITIONS         */
/*      position    type         offset and length                   */
///////////////////////////////////////////////////////////////////////
/*         1,        0,      primary^field( secndry^bit^map     ),
           2,        2,      primary^field( pan                 ),
           3,        0,      primary^field( proc^cde            ),
           4,        0,      primary^field( tran^amt            ),
           5,        0,      primary^field( setl^amt            ),
           6,        0,      primary^field( bill^amt            ),
           7,        0,      primary^field( xmit^dat^tim        ),
           8,        0,      primary^field( bill^fee            ),
           9,        0,      primary^field( setl^conv^rat       ),
          10,        0,      primary^field( bill^conv^rat       ),
          11,        0,      primary^field( trace^num           ),
          12,        0,      primary^field( tran^tim            ),
          13,        0,      primary^field( tran^dat            ),
          14,        0,      primary^field( exp^dat             ),
          15,        0,      primary^field( setl^dat            ),
          16,        0,      primary^field( conv^dat            ),
          17,        0,      primary^field( cap^dat             ),
          18,        0,      primary^field( mrcht^typ^cde       ),
          19,        0,      primary^field( acq^inst^cntry^cde  ),
          20,        0,      primary^field( pan^ext^cntry^cde   ),
          21,        0,      primary^field( frwd^inst^cntry^cde ),
          22,        0,      primary^field( entry^mde           ),
          23,        0,      primary^field( mbr^num             ),
          24,        0,      primary^field( netw^intl^id        ),
          25,        0,      primary^field( pt^tran^spcl^cde    ),
          26,        0,      primary^field( pos^pin^capture^cde ),
          27,        0,      primary^field( auth^id^resp^len    ),
          28,        0,      primary^field( tran^fee            ),
          29,        0,      primary^field( setl^fee            ),
          30,        0,      primary^field( tran^proc^fee       ),
          31,        0,      primary^field( setl^proc^fee       ),
          32,        2,      primary^field( acq^inst^id         ),
          33,        2,      primary^field( frwd^inst^id        ),
          34,        2,      primary^field( pan^extnd           ),
          35,        2,      primary^field( track2              ),
          36,        3,      primary^field( track3              ),
          37,        0,      primary^field( retrvl^ref^num      ),
          38,        0,      primary^field( auth^id^resp        ),
          39,        0,      primary^field( resp^cde            ),
          40,        0,      primary^field( service^cde         ),
          41,        0,      primary^field( term^id             ),
          42,        0,      primary^field( crd^accpt^id^cde    ),
          43,        0,      primary^field( crd^accpt^name^loc  ),
          44,        2,      primary^field( resp^data           ),
          45,        2,      primary^field( track1              ),
          46,        3,      primary^field( add^data^iso        ),
          47,        3,      primary^field( add^data^natl       ),
          48,        3,      primary^field( add^data^prvt       ),
          49,        0,      primary^field( crncy^cde           ),
          50,        0,      primary^field( setl^crncy          ),
          51,        0,      primary^field( bill^crncy          ),
          52,        0,      primary^field( pin                 ),
          53,        0,      primary^field( sec^cntrl^info      ),
          54,        3,      primary^field( add^amts            ),
          55,        3,      primary^field( pri^rsrvd1^iso      ),
          56,        3,      primary^field( pri^rsrvd2^iso      ),
          57,        3,      primary^field( pri^rsrvd1^natl     ),
          58,        3,      primary^field( pri^rsrvd2^natl     ),
          59,        3,      primary^field( pri^rsrvd3^natl     ),
          60,        3,      primary^field( pri^rsrvd1^prvt     ),
          61,        3,      primary^field( pri^rsrvd2^prvt     ),
          62,        3,      primary^field( pri^rsrvd3^prvt     ),
          63,        3,      primary^field( pri^rsrvd4^prvt     ),
          64,        0,      primary^field( pri^mac^cde         ),
          65,       -1,      0, 0, ! Not defined in the standard !
          66,        0,      secndry^field( setl^cde            ),
          67,        0,      secndry^field( extd^pay^cde        ),
          68,        0,      secndry^field( rcv^inst^cntry^cde  ),
          69,        0,      secndry^field( setl^inst^cntry^cde ),
          70,        0,      secndry^field( netw^mgmt^cde       ),
          71,        0,      secndry^field( msg^num             ),
          72,        0,      secndry^field( lst^msg^num         ),
          73,        0,      secndry^field( action^dat          ),
          74,        0,      secndry^field( num^cr              ),
          75,        0,      secndry^field( num^cr^rvsl         ),
          76,        0,      secndry^field( num^db              ),
          77,        0,      secndry^field( num^db^rvsl         ),
          78,        0,      secndry^field( num^xfer            ),
          79,        0,      secndry^field( num^xfer^rvsl       ),
          80,        0,      secndry^field( num^inq             ),
          81,        0,      secndry^field( num^auth            ),
          82,        0,      secndry^field( amt^cr^proc^fees    ),
          83,        0,      secndry^field( amt^cr^tran^fees    ),
          84,        0,      secndry^field( amt^db^proc^fees    ),
          85,        0,      secndry^field( amt^db^tran^fees    ),
          86,        0,      secndry^field( amt^cr              ),
          87,        0,      secndry^field( amt^cr^rvsl         ),
          88,        0,      secndry^field( amt^db              ),
          89,        0,      secndry^field( amt^db^rvsl         ),
          90,        0,      secndry^field( orig^info           ),
          91,        0,      secndry^field( file^updt^cde       ),
          92,        0,      secndry^field( file^sec^cde        ),
          93,        0,      secndry^field( resp^ind            ),
          94,        0,      secndry^field( srv^ind             ),
          95,        0,      secndry^field( replacement         ),
          96,        0,      secndry^field( msg^sec^cde         ),
          97,        0,      secndry^field( setl^amt^net        ),
          98,        0,      secndry^field( payee               ),
          99,        2,      secndry^field( setl^inst           ),
         100,        2,      secndry^field( rcv^inst            ),
         101,        2,      secndry^field( fname               ),
         102,        2,      secndry^field( acct1               ),
         103,        2,      secndry^field( acct2               ),
         104,        3,      secndry^field( tran^descr          ),
         105,        3,      secndry^field( secndry^rsrvd1^iso  ),
         106,        3,      secndry^field( secndry^rsrvd2^iso  ),
         107,        3,      secndry^field( secndry^rsrvd3^iso  ),
         108,        3,      secndry^field( secndry^rsrvd4^iso  ),
         109,        3,      secndry^field( secndry^rsrvd5^iso  ),
         110,        3,      secndry^field( secndry^rsrvd6^iso  ),
         111,        3,      secndry^field( secndry^rsrvd7^iso  ),
         112,        3,      secndry^field( secndry^rsrvd1^natl ),
         113,        3,      secndry^field( secndry^rsrvd2^natl ),
         114,        3,      secndry^field( secndry^rsrvd3^natl ),
         115,        3,      secndry^field( secndry^rsrvd4^natl ),
         116,        3,      secndry^field( secndry^rsrvd5^natl ),
         117,        3,      secndry^field( secndry^rsrvd6^natl ),
         118,        3,      secndry^field( secndry^rsrvd7^natl ),
         119,        3,      secndry^field( secndry^rsrvd8^natl ),
         120,        3,      secndry^field( secndry^rsrvd1^prvt ),
         121,        3,      secndry^field( secndry^rsrvd2^prvt ),
         122,        3,      secndry^field( secndry^rsrvd3^prvt ),
         123,        3,      secndry^field( secndry^rsrvd4^prvt ),
         124,        3,      secndry^field( secndry^rsrvd5^prvt ),
         125,        3,      secndry^field( secndry^rsrvd6^prvt ),
         126,        3,      secndry^field( secndry^rsrvd7^prvt ),
         127,        3,      secndry^field( secndry^rsrvd8^prvt ),
         128,        0,      secndry^field( secndry^mac^cde )    ;
*/
///////////////////////////////////////////////////////////////////////


// Headers ANSI
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <string.h>
#include <limits.h>
#include <ctype.h>

// Headers propios
// Header Type Definitions
#include <qusrinc/typedefs.h>
// Aliases
#include <qusrinc/alias.h>
// ISO-8583
#include <qusrinc/iso8583.h>
// ISO8583 Customer definitions
#include <qusrinc/dpcsys.h>

// Longitud de bitmap segun ISO
#ifndef BITMAP_STR_LEN	
#define BITMAP_STR_LEN  16
#endif


#ifndef min
#define min(x,y)	(x<y) ? x : y
#define max(x,y)	(x>y) ? x : y
#endif // min-max


// Clase ISO8583MSG
// Constructor
 ISO8583MSG::ISO8583MSG(void) 
	{
	// Inicializacion
    memset((PBYTE)chMsg,0x00,sizeof chMsg); // Buffer Mensaje
	cbMsgLen = 0;                           // Longitud Buffer		
	// Buffer auxiliar de copia 
	memset(chAuxMsg,0x00,sizeof chAuxMsg);	// Buffer Mensaje
	cbAuxMsgLen = 0;						// Longitud Buffer		
	bCheckMessage = FALSE;					// No checking by default

	// Descripcion de Bitmaps y Campos por default
	DefaultBitmapsDescriptions();
	DefaultFieldsDescriptions();
	}

// Constructor opcional
 ISO8583MSG::ISO8583MSG(PBYTE lpbExtMsg	, 
							  WORD  cbExtLen	,
							  PSTR  szFldDescFile) 
	{
	// Inicializacion
    memset((PBYTE)chMsg,0x00,sizeof chMsg);            // Buffer Mensaje
	cbMsgLen = 0;                                   // Longitud Buffer		
	// Buffer auxiliar de copia 
	memset(chAuxMsg,0x00,sizeof chAuxMsg);	// Buffer Mensaje
	cbAuxMsgLen = 0;						// Longitud Buffer		
	bCheckMessage = TRUE;							// Checking by default
	// Descripcion de Bitmaps y Campos por default
	DefaultBitmapsDescriptions();
	DefaultFieldsDescriptions();
	// 緿escripcion de Bitmaps y Campos parametrica?
	if(szFldDescFile)
		{
		GetAllBitmapsDescriptions(szFldDescFile);
		GetFieldsDescription(szFldDescFile);
		}//end-if-szFldDescFile
	if((lpbExtMsg) && (cbExtLen))
		// Copia de buffer plano externo
		Import(lpbExtMsg, cbExtLen);
	}

// Destructor
 ISO8583MSG::~ISO8583MSG(void)
	{
	// ...nada especifico que desalojar dinamicamente...
	}

// Importador
 BOOL ISO8583MSG::Import(const PBYTE lpbExtMsg, WORD cbExtLen)
	{
	PBYTE lpbLocMsg = lpbExtMsg;
	PBYTE lpbMsgETX = NULL;

	// Copia de buffer plano, chequeando longitud
	if( (lpbExtMsg) &&
		(cbExtLen < sizeof(chMsg)) &&
	    (cbExtLen > 0) )	    
		{
		// Nulificacion
		memset((PBYTE)chMsg,0,sizeof chMsg);
		cbMsgLen = 0;
		///////////////////////////////////////////////////////////////
		memmove((PBYTE)chMsg, lpbLocMsg, cbExtLen);		
		chMsg[cbExtLen] = 0x00; // Fin de Mensaje es NULL
		cbMsgLen = cbExtLen;
		// Si hay caracteres ETX o longitudes invalidas
		lpbMsgETX = (PBYTE)strchr((char *)lpbLocMsg, 0x03);
		if(lpbMsgETX)
			{ 
			*lpbMsgETX = 0x00;
			cbMsgLen = strlen((char *)lpbLocMsg);
			}
		// Si hay caracteres ETX o longitudes invalidas
		lpbMsgETX = (PBYTE)strchr((char *)lpbLocMsg, 0x02);
		if(lpbMsgETX)
			{ 
			*lpbMsgETX = 0x00;
			cbMsgLen = strlen((char *)lpbLocMsg);
			}
		if(cbExtLen > CISOMESSAGESIZE-1)
			cbExtLen = CISOMESSAGESIZE-1;
		///////////////////////////////////////////////////////////////

		// Postcondicion: Recalculo dinamico de offsets de Campos presentes Ok?
		return RecalculateOffsets();
		}
	else
		// Error
		return (FALSE);
	}

// Exportador
 BOOL ISO8583MSG::Export(PBYTE lpbExtMsg, PWORD pcbExtMsgLen)
	{
	// Copia de buffer plano, chequeando longitud
	if( (lpbExtMsg)                   &&
		((*pcbExtMsgLen) >= cbMsgLen) &&		
	    ((*pcbExtMsgLen) > 0)         &&
		(cbMsgLen > 0))
		{
		// Copia
		memmove(lpbExtMsg, (PBYTE)chMsg, cbMsgLen);
		///////////////////////////////////////////////////////////////
#ifdef _USE_ETX_
		lpbExtMsg[cbMsgLen  ] = 0x03; // ETX
		lpbExtMsg[cbMsgLen+1] = 0x00; // NULL
		(*pcbExtMsgLen)       = cbMsgLen +1 ;
#else
		lpbExtMsg[cbMsgLen  ] = 0x00; // NUL		
		(*pcbExtMsgLen)       = cbMsgLen ;
#endif
		///////////////////////////////////////////////////////////////
		// Ok
		return (TRUE);
		}
	else
		// Error
		return (FALSE);
	}

// Valor de Campo
 BOOL ISO8583MSG::GetField(WORD wField,PWORD pwFieldLen,
	                             PBYTE szValue,WORD wValueLen)
	{	
	// Precondicion: Mensaje existente
	if(!cbMsgLen) 
		return (FALSE);

	// Precondicion: campo valido
	if(!IsValidField(wField)) 
		return (FALSE);

	// Precondicion: Destino no nulo
	if((pwFieldLen == NULL) || (szValue == NULL) || (wValueLen == 0))
		return (FALSE);

	// Implicit Length
	WORD wImpLength = 0; 
	// Propiedades del Campo especifico
	WORD wType      = FieldType(wField),
         wOffset    = FieldOffset(wField),
	     wLength    = FieldLength(wField);

	// Campo Fijo o Variable?
	if (wType == 0) 
		// Campo fijo, longitud explicita
	    wImpLength = wLength;
	else 
	    // Campo variable, extraer longitud implicita
		if(!GetImplicitLength(wField, &wImpLength))
			return (FALSE);

	// Chequeo de longitud de campo, y eventual correccion
	if(wImpLength == 0)
		return (FALSE);
	else if((INT)wImpLength > ((INT)cbMsgLen - 32)) // ISO Header=32 bytes
		{		
		// Correccion de longitud implicita al maximo posible
		wImpLength = cbMsgLen - 32;                  
		// Correccion de longitud en campo interno
		fdFields[wField].Set(wType,wOffset,wLength); 
		} // end-if

	// Chequeo de longitud implicita/explicita contra la maxima a copiar
	if(wValueLen < wImpLength)
		{		
		// Copia directa...

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频在线免费观看| 亚洲丝袜自拍清纯另类| 亚洲精品国产一区二区精华液| 国产九色精品成人porny | 91论坛在线播放| 久久久久久久网| 国产一区三区三区| 2024国产精品| 激情欧美日韩一区二区| 欧美色图在线观看| 亚洲国产成人porn| 欧美色爱综合网| 亚洲一区二区三区四区不卡| 粉嫩久久99精品久久久久久夜| 91精品啪在线观看国产60岁| 亚洲va国产天堂va久久en| 91麻豆6部合集magnet| 亚洲综合色成人| 欧美优质美女网站| 亚洲精品视频在线| 欧美偷拍一区二区| 蜜臀久久99精品久久久画质超高清| 欧美日本不卡视频| 美女mm1313爽爽久久久蜜臀| 精品国产污网站| 91国偷自产一区二区使用方法| 日韩电影在线一区二区| 中文字幕二三区不卡| 欧美三级在线看| 国产精品99久久久久久似苏梦涵| 亚洲乱码中文字幕| 欧美mv和日韩mv国产网站| www.亚洲精品| 麻豆中文一区二区| 亚洲综合色噜噜狠狠| 久久人人超碰精品| 91.com在线观看| 不卡区在线中文字幕| 蜜桃av一区二区三区电影| 亚洲精品国产无天堂网2021| 亚洲精品在线观| 欧美精品丝袜中出| 暴力调教一区二区三区| 久久99精品国产.久久久久| 亚洲人一二三区| 欧美国产综合一区二区| 日韩视频永久免费| 欧洲色大大久久| 成人av免费观看| 国产一区二区精品在线观看| 亚洲国产日韩在线一区模特| 国产欧美视频一区二区三区| 欧美日韩在线播| 91国偷自产一区二区三区观看| 成人一区二区三区| 国产酒店精品激情| 久久99国产精品麻豆| 日韩电影免费在线| 爽好多水快深点欧美视频| 亚洲欧美色一区| 国产精品久久久久久久蜜臀| 久久先锋影音av鲁色资源网| 欧美私模裸体表演在线观看| 色系网站成人免费| 国产激情91久久精品导航| 韩国理伦片一区二区三区在线播放| 亚洲一区二区三区自拍| 亚洲欧美日韩中文播放| 国产精品乱码妇女bbbb| 国产亚洲女人久久久久毛片| 欧美日韩精品专区| 精品视频一区三区九区| 色婷婷av一区二区三区大白胸| 成人动漫在线一区| 波多野结衣一区二区三区 | 精品一区二区免费| 奇米影视7777精品一区二区| 日韩av高清在线观看| 午夜成人免费视频| 午夜av区久久| 午夜久久久影院| 日韩黄色片在线观看| 一级女性全黄久久生活片免费| 亚洲青青青在线视频| 亚洲精品你懂的| 亚洲国产精品麻豆| 水蜜桃久久夜色精品一区的特点| 天天影视色香欲综合网老头| 五月综合激情网| 日韩二区三区四区| 日韩成人午夜精品| 国产一级精品在线| 成人永久免费视频| 日本国产一区二区| 欧美一级免费观看| 国产三级精品视频| 亚洲日本一区二区三区| 亚洲永久免费av| 毛片一区二区三区| eeuss鲁片一区二区三区在线观看| 成人黄色在线看| 日本高清不卡视频| 欧美日韩午夜精品| 欧美xxxx在线观看| 日韩国产在线观看| 国产最新精品免费| 99r国产精品| 欧美性做爰猛烈叫床潮| 精品三级av在线| 亚洲欧美在线aaa| 日韩中文字幕不卡| 国产91综合一区在线观看| 色94色欧美sute亚洲线路一久 | 成人v精品蜜桃久久一区| 色婷婷激情一区二区三区| 欧美一区国产二区| 国产精品久久综合| 日本成人在线不卡视频| 国产成人在线免费观看| 色就色 综合激情| 久久伊99综合婷婷久久伊| 亚洲免费av高清| 国产一二精品视频| 欧美日韩综合在线| 日本一区二区成人在线| 视频一区二区国产| 成人精品小蝌蚪| 欧美日韩高清一区二区| 亚洲国产精品高清| 日本不卡在线视频| 在线视频你懂得一区| 精品盗摄一区二区三区| 亚洲午夜私人影院| 成人网页在线观看| 精品国产乱码久久久久久浪潮| 一个色在线综合| 成人自拍视频在线观看| 日韩欧美国产一区二区在线播放 | 亚洲国产毛片aaaaa无费看 | 精品美女在线播放| 亚洲综合激情另类小说区| 国产成人8x视频一区二区 | 2022国产精品视频| 无码av中文一区二区三区桃花岛| 国产99久久久国产精品免费看| 日韩欧美中文一区二区| 亚洲免费观看在线视频| 激情伊人五月天久久综合| 欧美精品欧美精品系列| 国产精品狼人久久影院观看方式| 国产一区福利在线| 欧美一级久久久| 日韩电影一区二区三区四区| 色综合久久久久网| 亚洲欧美另类久久久精品2019| 国产成人综合视频| 久久人人爽人人爽| 国内精品国产三级国产a久久| 国产精品成人午夜| av一区二区三区在线| 中文字幕欧美国产| 国内精品免费在线观看| 精品国产麻豆免费人成网站| 日韩高清欧美激情| 欧美一二三四区在线| 首页国产欧美久久| 7777精品伊人久久久大香线蕉经典版下载| 一区二区三区四区视频精品免费| 成人免费视频视频| 国产精品久久久久影院色老大 | www.成人网.com| 国产精品无码永久免费888| 国产精品自产自拍| 欧美高清在线一区二区| 成人av电影在线网| 亚洲精品国产精品乱码不99| 色先锋久久av资源部| 亚洲.国产.中文慕字在线| 欧美伊人久久久久久午夜久久久久| 亚洲另类一区二区| 欧美性一二三区| 免费成人av资源网| 久久久精品国产免费观看同学| 国产成人av影院| 亚洲人一二三区| 欧美精品视频www在线观看| 日韩激情在线观看| 精品欧美黑人一区二区三区| 免播放器亚洲一区| 国产午夜精品一区二区三区嫩草| 成人一二三区视频| 一区二区三区影院| 日韩视频免费观看高清在线视频| 国产乱子伦视频一区二区三区 | 久久亚洲综合色| 97久久精品人人爽人人爽蜜臀| 亚洲国产美女搞黄色| 日韩视频在线你懂得| 高清不卡在线观看| 亚洲国产视频网站|