国产一区二区三区香蕉-2020国产成人精品视频-欧美日韩亚洲三区-www.91桃色-最美情侣中文第5季免费观看-久草毛片-国产成人精品av-男女猛烈拍拍拍无挡视频-中文字幕看片-色视频欧美一区二区三区-久久久久久久久久影院-一级a爱片久久毛片-精品久久久久久无码中文字幕一区-欧美色图网站-无码色偷偷亚洲国内自拍-国产一区在线免费观看

代做CS252編程、代寫C++設(shè)計程序

時間:2024-03-03  來源:  作者: 我要糾錯



Lab 3 - Implementing a Shell
FAQ | Additional Notes | Grading Form P1 | Grading Form P2 | Final Grading Form
Updates
Any changes that need to be made to the handout / lab will be mentioned here.
Introduction
Getting Started
Part 1: Parsing and Executing Commands
Part 1A: Lex and Yacc - Accepting more complex commands
Part 1B: Executing commands
1B.1: Simple command process creation and execution
1B.2: File redirection
1B.3: Pipes
1B.4: isatty()
Testing
Submission
Part 2: Signal Handling, More Parsing, and Subshells
2.1: Ctrl-C
2.2: Zombie Elimination
2.3: Exit
2.4: Quotes
2.5: Escaping
2.6: Builtin Functions
2.7: Creating a Default Source File: “.shellrc”
2.8: Subshells
2.9: Process Substitution
Submission
Part 3: Expansions, Wildcards, and Line Editing
3.1: Environment variable expansion
3.2: Tilde expansion
3.3: Wildcarding
3.4: Edit mode
3.5: History
3.6: Path completion
3.7: Variable prompt
Submission
NOTE: Text in green indicates extra credit features.
Introduction
The goal of this project is to build a shell interpreter which combines behavior from common
shells including bash and csh. The project has been divided into parts. Some skeleton code has
been provided, so you will not be starting from scratch.
Getting Started
Login to a CS department machine (a lab machine or data.cs.purdue.edu), navigate to
your preferred directory, and run
Cd
cd cs252
tar -xvf /homes/cs252/Spring2024/lab3-shell-x86-Spring2024-if-while/lab3-test.tar
git clone /homes/cs252/sourcecontrol/work/$USER/lab3-src.git
cd lab3-src
Notice that the lab3-test/ and lab3-src/ are different directories.
Build the shell by typing make, and start it by typing ./shell. Type in some commands, for
example:
ls -al
ls -al aaa bbb > out
At this point, the shell does not have much implemented; notice what happens if you try to use
some shell features that you used in Lab 2. For example, try redirecting input or editing a typo in
a command.
Part 1: Parsing and Executing Commands
To begin, you will write a scanner and parser for your shell using the open source versions of
Lex and Yacc (Flex and Bison). Look through the skeleton code and try to understand how it
works. First, read the Makefile to understand how the program is built; notice that it is mostly
written in C++.
The file command.hh implements a data structure that represents a shell command. The struct
SimpleCommand implements an argument list for a simple command (i.e. a command of the
form mycmd arg1 arg2 arg3). When pipes are used, a command will be composed of
multiple SimpleCommands. The struct Command represents a list of simple commands.
Additionally, Command has fields which allow the user to specify files to use for input, output,
and error redirection.
Much of the provided code uses C style data structure; however, you may find it easier to
manage the code by making use of C++ features. Feel free to modify the skeleton code to make
better use of C++ types such as string, vector, map, etc. In fact, you may find that doing so
eases the memory management difficulty of this lab significantly.
Part 1A: Lex and Yacc - Accepting more complex commands
You will use Lex and Yacc to implement the grammar of your shell. See here and here for
tutorials on Lex and Yacc. Here is an updated manual for Flex
The skeleton shell initially implements only a very limited grammar:
cmd [arg]* [> filename]
The first objective for Part 1 is to modify shell.l and shell.y to support a more complex
grammar:
cmd [arg]* [| cmd [arg]* ]* [ [> filename] [< filename] [2> filename]
[>& filename] [>> filename] [>>& filename] ]* [&]
Insert the necessary code in shell.l and shell.y to fill in the Command struct. Make sure
that the Command struct is printed correctly.
Some example commands to test with are included in the table below:
ls
ls -al
ls -al aaa bbb cc
ls -al aaa bbb cc > outfile
ls | cat | grep
ls | cat | grep > out < inp
ls aaaa | grep cccc | grep jjjj ssss dfdffdf
ls aaaa | grep cccc | grep jjjj ssss dfdffdf >& out < in
httpd &
ls aaaa | grep cccc | grep jjjj ssss dfdffdf >>& out < in
Part 1B: Executing commands
Now you will implement the execution of simple commands, IO redirection, piping, and allowing
processes to run in the background.
1B.1: Simple command process creation and execution
For each simple command, create a new process using fork() and call execvp() to execute
the corresponding executable. If the Command is not set to execute in the background, then
your shell will have to wait for the last simple command to finish using waitpid(). Refer to the
man pages of these functions for information on their arguments and return values. Additionally,
we have provided the file cat_grep.cc as an example, which is a program that creates
processes and performs redirection.
After you have completed Part 1B.1, you should be able to execute commands such as:
ls -al
ls -al /etc &
1B.2: File redirection
If the the Command specifies files for IO redirection (of input, output, or error), then create those
files as necessary. To change the file descriptors to point to the specified files, you will need to
use dup2(). Note that file descriptors 0, 1, and 2 correspond to input, output, and error
respectively. See the example redirection in cat_grep.cc.
After you have completed Part 1B.2, you should be able to execute commands such as:
ls -al > out
cat -q cat 2> dog
ls
cat out
ls /tttt >& err
cat err
cat < out
cat < out > out2
cat out2
ls /tt >>& out2
Note:
● 2> the command redirects stderr to the specified file
● >& the command redirects both stdout and stderr to the specified file
● >> the command appends stdout to the specified file
● >>& the command appends both stdout and stderr to the specified file
1B.3: Pipes
Pipes are an interface that allow for inter-process communication. They have two ends, one for
reading and one for writing. Data which is written into the write end of the pipe is buffered until it
is read from the read end by another process.
Use pipe() to create a pipe that will redirect the output of one simple command to the input of
the next simple command. You will again need to use dup2() to handle the redirection. See the
example piping in cat_grep.cc.
After you have completed Part 1B.3, you should be able to execute commands such as:
ls -al | grep command
ls -al | grep command | grep command.o
ls -al | grep command
ls -al | grep command | grep command.o > out
cat out
1B.4: isatty()
When your shell uses a file as standard input your shell should not print a prompt. This is
important because your shell will be graded by redirecting small scripts into your shell and
comparing the output. Use the function isatty() to find out if the input comes from a file or
from a terminal.
Note: due to how the automated tests are built, you will need to complete this portion of part 1
before your shell will pass any of the automated tests.
Testing
Much of your shell will be graded using automatic testing, so make sure that your shell passes
the provided tests. Your grade for this lab will partially depend on the number of tests that pass.
The tests provided will be used for each part of the project, so don’t worry if you are unable to
pass all of the tests after finishing part 1.
See ~/cs252/lab3-test/README for an explanation of how to run the tests. The tests will
also give you an estimated grade. This grade is just an approximation. Other tests which are
not provided will be used as well during official grading; some points will also be awarded based
on a demo of your shell.
Submission
To turn in Part 1:
1. Login to a CS department machine
2. Navigate to your lab3-src directory
3. Run make clean
4. Run make to check that your shell builds correctly
5. Run git tag -f part1
6. Run git push -f origin part1
7. Run git show part1
8. The show command should show the diff from the most recent commit
Part 2: Signal Handling, More Parsing, and
Subshells
In Part 2, you will begin to add features that make your shell more useful and fully featured.
2.1: Ctrl-C
In csh, bash, and other common shells, you can type Ctrl-C to stop a running command; this
can be especially helpful if a command you are running takes longer to finish than expected or if
you are running a buggy program that falls into an infinite loop. This is accomplished by
generating a SIGINT signal which is passed on to the program currently being run. If Ctrl-C is
typed when no command is running, the current prompt is discarded and a fresh prompt is
printed. As-is, your shell will simply exit when Ctrl-C is typed and no command is running. Make
your shell behave as csh does with respect to Ctrl-C. See ctrl-c.cc for an example of detecting
and ignoring a SIGINT signal. Also see the man page for sigaction().
2.2: Zombie Elimination
Try running the following set of commands in the shell you have written:
ls &
ls &
ls &
ls &
/bin/ps -u <your-login> | grep defu
The last command shows all processes that show up as "defu" (for “defunct”). Such processes
are called zombie processes: they no longer run, but wait for the parent to acknowledge that
they have finished. Notice that each of the processes that are created in the background
become zombie processes.
To cleanup these processes you will have to set up a signal handler, like the one you used for
Ctrl-C, to catch the SIGCHLD signals that are sent to the parent when a child process finishes.
The signal handler will then call waitpid() to cleanup the zombie child. Check the man pages
for the waitpid() and sigaction() system calls. The shell should print the process ID of
the child when a process in the background exits in the form "[PID] exited."
2.3: Exit
Implement a special command called exit which will exit the shell when run. Note that exit
should not cause a new process to be created; it should be picked up by your shell during
parsing and cause your shell to exit. Also, make your shell print a goodbye message, like so:
myshell> exit
Good bye!!
bash$
2.4: Quotes
Add support for quotes in your shell. It should be possible to pass arguments with spaces if they
are surrounded by quotes. For example:
myshell> ls "command.cc Makefile"
command.cc Makefile not found
Here, "command.cc Makefile" is only one argument. You will need to remove the quotes
before using the argument they contain. Note: wildcard expansion will not be expected inside
quotes in the next part of the lab.
2.5: Escaping
Allow the escape character. Any character can be part of an argument if it comes immediately
after , including special characters such as quotation marks (“”) and an ampersand (&). For
example:
myshell> echo "Hello between quotes"
"Hello between quotes"
myshell> echo this is an ampersand &
this is an ampersand &
2.6: Builtin Functions
Certain commands you can run in csh or bash do not actually correspond to executables;
much like the exit command implemented for part 2.2, these commands are detected by the
shell during parsing to carry out certain special functions. Implement the following builtin
commands:
printenv Prints the environment variables of the shell. The environment variables of
a process are stored in the variable char **environ;, a
null-terminated array of strings. Refer to the man page for environ.
setenv A B Sets the environment variable A to value B. See article.
unsetenv A Un-sets environment variable A
source A Runs file A line-by-line, as though it were being typed into the shell by a
user. See Multiple Input Buffers or look at Flex manual
cd A Changes the current directory to A. If no directory is specified, default to
the home directory. See the man page for chdir().
You should be able to use builtins like any other commands (e.g. grep, cat, etc.), including with
redirection and piping.
2.7: Creating a Default Source File: “.shellrc” (Extra credit)
When your shell starts, it should attempt to do the equivalent of running “source
.shellrc”. (This feature will be considered extra credit).
2.8: Subshells
Sometimes a user will need to run a complex command that uses the output from one shell
command as the input of another. Any argument of the form $(command and args) will be
processed by another shell (the subshell) which is executed as a child process and the output
will be fed back into the original parent shell. For example:
● echo $(expr 1 + 1) will become echo 2
● echo a b > dir; ls $(cat dir) will list the contents of directories a and b
The example below further explains how your shell should interpret and processes commands
with and without backticks:
myshell> echo test
Lex & Yacc parses the command and executes it normally
myshell> echo $(ls)
Lex & Yacc parses the command, but must evaluate the ls command before the echo
command can be executed. Below is a step by step example of how a subshell command is
processed.
myshell> echo $(ls) “and more”
file1 file2 file3 and more
1. A command containing a subshell command is passed to the shell
Input buffer=echo $(ls) ”and more”
Command Word=
Arguments=
2. The shell parses the echo command normally.
Input buffer=echo $(ls) ”and more”
Command Word=echo
Arguments=
3. The shell parses the subshell command `ls`
Input buffer=echo $(ls) ”and more”
Command Word=echo
Arguments=
4. After executing the command in the subshell the input is injected at the head of the buffer
Input buffer=echo $(ls) file1 file2 file3 ”and more”
Command Word=echo
Arguments=
5. Finally the shell parses file1, file2, file3, and “and more” as the arguments to echo.
Input buffer=echo $(ls) file1 file2 file3 ”and more”
Command Word=echo
Arguments=file1, file2, file3, “and more”
You will implement this feature by
1. Scanning the command between backticks in shell.l
2. Calling your own shell as a child process and passing it the command as input. You will
need two pipes to communicate with the child process; one to pass the command to the
child, and the other to read the output from the child.
3. Reading the output from the child process and putting the characters of the output back
into the scanner’s buffer using the function yy_unput(int c) in reverse order. See the
FAQ for more details.
Hint: It is common for students to redirect the current shell’s stdin and stdout file descriptors to
communicate with the subshell process, however this is not necessary. The current shell can
communicate with the subshell by writing to the pipes directly.
IMPORTANT: Do not use the popen() call or a temporary file for the interprocess
communication. You must use the method discussed above.
Submission
To turn in Part 2:
1. Login to a CS department machine
2. Navigate to your lab3-src directory
3. Run make clean
4. Run make to check that your shell builds correctly
5. Run git tag -f part2
6. Run git push -f origin part2
7. Run git show part2
8. The show command should show the diff from the most recent commit
Part 3: Expansions, Wildcards, and Line Editing
The final part of the lab involves adding a few major usability features to your shell. You will allow
for your parser to expand a few types of input, handle wildcards, and implement a line editor that
allows you to do things like fixing typos and traversing a history of previously submitted
commands.
3.1: Environment variable expansion
You will implement environment variable expansion. Recall that in the previous part of the lab,
you allowed users to set and retrieve environmental variables using builtin functions. When a
string of the form ${var} appears in an argument, it will be expanded to the value that
corresponds to the variable var in the environment table. For example:
myshell> setenv A Hello
myshell> setenv B World
myshell> echo ${A} ${B}
Hello World
myshell> setenv C ap
myshell> setenv D les
myshell> echo I like ${C}p${D}
I like apples
Additionally, the following special expansions are required to be implemented:
${$} The PID of the shell process
${?} The return code of the last executed simple command (ignoring
commands sent to the background).
${!} PID of the last process run in the background
${_} The last argument in the fully expanded previous command
Note: this excludes redirects
${SHELL} The path of your shell executable.
Hint: realpath() can expand a relative path to an absolute path. You can
obtain the relative path to the shell in argv[0]
3.2: Tilde expansion
When the character "~" appears itself or before "/" it will be expanded to the home directory of the
current user. If "~" appears before a word, the characters after the "~" up to the first "/" will be
expanded to the home directory of the user with that login. For example:
ls ~ -- List the home directory
ls ~george -- List george's home directory
ls ~george/dir -- List subdirectory "dir" in george's directory
3.3: Wildcarding
In most shells, including bash and csh, you can use * and ? as wildcard characters in file and
directory names. The "*" wildcard matches 0 or more non-blank characters, except "." if it is the first
character in the file name. The "?" wildcard matches one non-blank character, except "." if it is the first
character in the file name. Try wildcarding in csh to see the results. You will implement wildcarding as
follows:
1. First, handle wildcarding only within the current directory.
○ Before you insert a new argument in the current simple command, check if the
argument has wild card (* or ?). If it does, then insert the file names that match the
wildcard (including their absolute paths).
○ Use opendir and readdir to get all the entries of the current directory (check the
man pages).
○ Use the functions regcomp and regexec to find the entries that match the wildcard.
Check the example provided in regular.cc to see how to do this. Notice that the
wildcards and the regular expressions used in the library are different, so you will have
to convert from wildcards to regular expressions.
2. Once your wildcarding implementation works for the current directory, make it work for any
absolute path.
IMPORTANT: Do not use the glob() call. You must use the functions discussed above.
Reminder: you do not need to handle wildcard expansion between quotation marks!
3.3: Supporting if/while/for
The file shell.y already includes rules for matching if/while/for expressions. You will complete the
implementation of these script constructions in your shell.
3.3.1 Implementing if statement
When the shell receives an input such as:
myshell> if [ -f Shell.o ]; then echo File Exists; fi
File Exists
Also, it can be used in the following way
myshell>if [ -f Shell.o ]; then
echo File Exists
fi
File Exists
Or in a shell script
vim testif.sh
#!./shell
if [ -f Shell.o ]; then
echo File Exists
fi
:x
chmod +x testif.sh
./testif.sh
File Exists
The arguments inside the brackets [ -f Shell.o ] will be executed by your shell in a child process using
the UNIX command "test -f Shell.o" and if the exit value is 0 (success) then the list of commands
inside the if statement (echo File Exists) will be executed.
You can run the UNIX "test" command as follows.
bash> test -f Shell.o
echo $?
0
Type "man test" to see other arguments for the test command.
3.3.2 Implementing while statement
When the shell receives an input such as:
myshell> setenv count 5; while[ $count -ne 0 ]; do echo $count; setenv
count `expr count - 1`; done
5
4
3
2
1
Also, it can be used in the following way
myshell>setenv count 5; while[ $count -ne 0 ]; do
echo $count; setenv count `expr count - 1`;
done
5
4
3
2
1
Or in a shell script
vim testwhile.sh
#!./shell
setenv count 5;
while[ $count -ne 0 ]; do
echo $count;
setenv count `expr count - 1`;
done
:x
chmod +x testwhile.sh
./testwhile.sh
5
4
3
2
1
The arguments inside the brackets [ -f Shell.o ] will be executed by your shell in a child process using
the UNIX command "test -f Shell.o" and if the exit value is 0 (success) then the list of commands
inside the while statement will be executed. After executing the list of commands, it will reevaluate the
expression in brackets.
3.3.3 Implementing for statement
When the shell receives an input such as:
myshell> for t in a b c d; do echo $t $t.org; done
a a.org
b b.org
c c.org
d d.org
Also, it can be used in the following way
myshell>for t in a b c d; do
echo $t $t.org;
done
a a.org
b b.org
c c.org
d d.org
Or in a shell script
vim testfor.sh
#!./shell
for t in a b c d; do
echo $t $t.org;
done
chmod +x testfor.sh
./testwhile.sh
5
4
3
2
1
The arguments inside the brackets [ -f Shell.o ] will be executed by your shell in a child process using
the UNIX command "test -f Shell.o" and if the exit value is 0 (success) then the list of commands
inside the while statement will be executed. After executing the list of commands, it will reevaluate the
expression in brackets.
3.3.4 Implementing Argument Environment Variables
To be able top interact with the shell script arguments, you will Add the following environment
variables:
${#} Number of arguments
${0} The shell script name
${1},
${2},...
${n}
Argument 1 to n of the script
${*} Expands to all the arguments passed to the script.
3.4: Edit mode (Extra only after finishing required parts)
tty-raw-mode.c and read-line.c contains the sample code that you will need to change your
terminal’s input from canonical to raw mode. In raw mode you will have more control over the terminal,
passing the characters to the shell as they are typed.
There are two example programs to look at: keyboard-example and read-line-example.
Run keyboard-example and type letters from your keyboard. You will see the corresponding
ascii code immediately printed on the screen.
The other program, read-line-example, is a simple line editor. Run this program and type
cread-line.ctrl-? to see the options of this program. The up-arrow causes the program to
print the previous command in its history.
The file tty-raw-mode.c contains sample code which switches the terminal from canonical
to raw mode. The file read-line.c contains sample code which implements the simple line
editor. Study the source code in these files.
To connect the line editor to your shell, add the following code to shell.l after the #include
lines:
%{
#include <string.h
#include "y.tab.h"
//////////// Start added code ///////////
extern “C” char * read_line();
int mygetc(FILE * f) {
static char *p;
char ch;
if (!isatty(0)) {
// stdin is not a tty. Call real getc
return getc(f);
}
// stdin is a tty. Call our read_line.
if (p==NULL || *p == 0) {
char * s = read_line();
p = s;
}
ch = *p;
p++;
return ch;
}
#undef getc
#define getc(f) mygetc(f)
/////////// End added code ///////////
%}
%%
Now modify your Makefile to compile your shell with the line editor. To do this just
defineEDIT_MODE_ON variable in the Makefile to be something for example “yes”.
EDIT_MODE_ON=yes
Now modify read-line.c to add the following editor commands:
● Left arrow key: Move the cursor to the left and allow insertion at that position. If the
cursor is at the beginning of the line it does nothing.
● Right arrow key: Move the cursor to the right and allow insertion at that position. If the
cursor is at the end of the line it does nothing.
● Delete key (ctrl-D): Removes the character at the cursor. The characters in the right side
are shifted to the left.
● Backspace key (ctrl-H): Removes the character at the position before the cursor. The
characters in the right side are shifted to the left.
● Home key (ctrl-A): The cursor moves to the beginning of the line
● End key (ctrl-E): The cursor moves to the end of the line
IMPORTANT: Do not use the readline library. You must implement your own line editor.
3.5: History (Extra only after finishing required parts)
In addition to the line editor above, also implement a history list. Currently the provided history is
static. You need to update the history by creating your own history table. Every time the user
runs a new command, a row will be added to the table. Implement the following editor
commands:
● Up arrow key: Shows the previous command in the history list.
● Down arrow key: Shows the next command in the history list.
3.6: Path completion (Extra only after finishing required
parts)
Implement path completion. When the <tab> key is typed, the editor will try to expand the
current word to the matching files similar to what csh and bash do.
bash$ ls
cart.txt card.txt
bash$ c<tab>
When tab is pressed, the line above becomes:
bash$ car
With the line indicator after c.
3.7: Variable prompt (Extra only after finishing required
parts)
The shell has a default prompt indicator: myprompt>. If there is an environment variable called
PROMPT, your shell should print the value of that variable as the prompt instead. Additionally, if
there is an environment variable called ON_ERROR, the shell should print its value whenever the
last simple command in a command exits with a nonzero code.
myshell> setenv PROMPT --cs252--
--cs252-- gcc
gcc: fatal error: no input files
compilation terminated
--cs252-- setenv ON_ERROR oops
--cs252-- gcc
gcc: fatal error: no input files
compilation terminated
oops
--cs252--
IMPORTANT: There are no automatic tests for the line editor so it will be
tested manually by the TAs. Make sure that you update the ctrl-? output
correctly with the commands you have added. Manual testing will count for
10% of the total grade of the shell.
Submission
Add a README file to the lab3-src/ directory with the following:
1. Features specified in the handout that work.
2. Features specified in the handout that do not work.
3. Extra features you have implemented.
To turn in Part 3:
1. Login to a CS department machine
2. Navigate to your lab3-src directory
3. Run make clean
4. Run make to check that your shell builds correctly
5. Run git tag -f part3
6. Run git push -f origin part3
7. Run git show part3
8. The show command should show the diff from the most recent commit
Grading
10% Milestone 1 (./testall p1 in lab)
10% Milestone 2 (./testall p2 in lab)
70% Final Testall
10% Manual Grading of readline and Ctrl+C
-5% For Memory Leaks
-5% For File Descriptor Leaks
Resources
Lex and Yacc Primer
Lab3 part1 slides (parsing)
Lab3 part1 slides (executing)
Lab3 part2 slides
Lab3 part3 slides
請加QQ:99515681  郵箱:99515681@qq.com   WX:codehelp 









 

標(biāo)簽:

掃一掃在手機(jī)打開當(dāng)前頁
  • 上一篇:CS1083代做、代寫Java設(shè)計編程
  • 下一篇:CS5012代做、代寫Python設(shè)計程序
  • 無相關(guān)信息
    昆明生活資訊

    昆明圖文信息
    蝴蝶泉(4A)-大理旅游
    蝴蝶泉(4A)-大理旅游
    油炸竹蟲
    油炸竹蟲
    酸筍煮魚(雞)
    酸筍煮魚(雞)
    竹筒飯
    竹筒飯
    香茅草烤魚
    香茅草烤魚
    檸檬烤魚
    檸檬烤魚
    昆明西山國家級風(fēng)景名勝區(qū)
    昆明西山國家級風(fēng)景名勝區(qū)
    昆明旅游索道攻略
    昆明旅游索道攻略
  • NBA直播 短信驗證碼平臺 幣安官網(wǎng)下載 歐冠直播 WPS下載

    關(guān)于我們 | 打賞支持 | 廣告服務(wù) | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責(zé)聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 kmw.cc Inc. All Rights Reserved. 昆明網(wǎng) 版權(quán)所有
    ICP備06013414號-3 公安備 42010502001045

    主站蜘蛛池模板: 欧美国产三级 | 天天色天天射天天操 | 91久久爱 | 中文字幕3页 | 宅男av在线 | 97蜜桃网 | 福利精品| 视频在线观看一区二区三区 | 欧美偷拍精品 | 亚洲九色| 国产亚洲精品久久久久久 | 丰满少妇在线观看资源站 | 在线国产小视频 | 在线观看wwww | 成人毛片网站 | 精品少妇久久久 | 欧美成人午夜精品免费 | 色免费视频 | 亚洲欧美字幕 | 岛国av噜噜噜久久久狠狠av | 成人亚洲网 | 国产视频最新 | 天天爽夜夜爽夜夜爽 | 最近中文字幕无免费 | 丁香综合网 | 永久免费在线视频 | 天天操夜夜操狠狠操 | 在线观看成人黄色 | 91免费国产| 日本一级做a爱片 | 日本久久久久久久久久 | 三级小视频在线观看 | 成人精品视频99在线观看免费 | 亚洲精品乱码久久久久久蜜桃动漫 | 国产精品911 | 国产乱码77777777 | 亚洲精品18 | 国产麻豆精品久久一二三 | 欧美 日韩 国产 一区 | 日韩一区在线视频 | 午夜色影院 | 国产91精品一区二区 | 国产欧美一区二区精品老汉影院 | 成人动漫一区二区 | 日本在线观看中文字幕 | 国产精品一品二区三区的使用体验 | 免费中文视频 | 久久精品视频8 | 国产精品永久久久久 | 日本在线观看网站 | 毛片一级视频 | 三级少妇| 一色综合 | 欧美一级片 | 黄色精品免费看 | 天天色小说 | 加勒比色综合 | 久久青青热 | 高清免费视频日本 | 国产精品久久久久久影院8一贰佰 | 91久色| 国产最新毛片 | 中文字幕在线看片 | 日韩综合久久 | 精品不卡视频 | 成人福利视频在线观看 | 亚洲手机在线观看 | 插插插日日日 | 激情综合五月天 | 国产精品久久久久久久久久久久久久久 | 人人草人人射 | 欧美在线激情视频 | 91精品成人| 91精品国产综合久久婷婷香蕉 | 天天操天天摸天天干 | 中文字幕精品视频在线 | 五月久久 | 一本色综合亚洲精品蜜桃冫 | 日韩不卡免费视频 | 黄色一毛片 | jizzjizz亚洲 | 国内精品少妇在线播放98 | 国产精品久久网 | 五月天在线 | 亚洲精品国产精品乱码视色 | 亚洲精品久久久久久久久久吃药 | fc2成人免费人成在线观看播放 | 在线观看日韩免费视频 | 日韩 欧美 精品 | 久久久精品一区二区三区 | 国语对白真实视频播放 | 亚洲少妇视频 | 国产第100页 | 亚洲最新中文字幕 | 国产福利一区二区三区在线观看 | 午夜国产视频 | 狠狠干欧美 | 亚洲免费视 | 淫五月天| theav精尽人亡av | 午夜国产在线观看 | 天天干天天拍 | 久久综合av | 潘金莲一级淫片aaaaa武则天 | 国产中文字幕一级片 | 黄色网址在线免费观看 | 精品国产精品三级精品av网址 | 夜夜躁狠狠躁日日躁av | 91香蕉在线看| 国产精品日韩在线 | 亚洲欧洲av在线 | 亚洲综合一 | 中国黄色在线视频 | 超碰毛片 | 亚洲男人网站 | 偷拍欧美亚洲 | 色婷婷九月 | 国产激情视频一区二区 | 尤物av午夜精品一区二区入口 | 中文在线一区二区 | 色网站免费观看 | 久热精品视频在线播放 | av一级大片| 精品一区二区三区免费毛片爱 | 四虎黄网| av噜噜噜 | 91极品视频 | 麻豆va| 开心成人激情 | 91精品视频在线免费观看 | 综合色视频 | 伊人伊人 | 老色驴综合网 | 久久久久久婷婷 | 99re在线视频播放 | 午夜毛片在线观看 | 国产精品成人免费看片 | www.毛片| 国产精品视频久久久 | 亚洲日本japanese丝袜 | 国产精品自拍一区 | 女人性做爰69片免费看 | 伊人av在线免费观看 | 在线播放一区 | www.精品一区 | 色涩色| 亚洲丁香色 | 国产乱码精品一区二区三区爽爽爽 | 国产亚洲在线观看 | 中文字幕网站免费观看 | www啪啪| 小草毛片 | 综合国产一区 | 小草毛片| 久久婷婷色综合 | 五月亚洲婷婷 | 中文字幕免费观看 | 亚洲激情在线观看 | 日本欧美激情 | 懂色av一区二区三区 | 国产三级在线观看视频 | 人人人人爽 | 国产第一区第二区 | 男人午夜视频 | 一级做a爰片性色毛片 | 色先锋资源网 | 超碰在线网 | 嫩草视频在线观看免费 | 性毛片| 中国精品妇女性猛交bbw | 久久午夜网站 | 国产精品资源站 | 国产一区二区三区高清 | 午夜激情免费视频 | www.亚洲成人| 亚洲高清视频在线观看免费 | 在线观看欧美一区二区三区 | 污污在线看 | 超碰91在线观看 | 日韩大片免费在线观看 | 黄色三级免费网站 | 金8天国av| 日韩精品一区二区在线观看 | 狠狠躁| 国产男人搡女人免费视频 | 精品蜜桃一区二区三区 | 成人免费看片98 | 亚洲艹 | 一级特黄色片子 | 中文字幕av一区二区三区 | 欧美综合一区 | 一级欧美黄色大片 | www.中文字幕 | 麻豆91精品 | 中文字幕有码在线视频 | 国产片天天弄 | 狠狠干夜夜爽 | 在线观看97 | 91三级视频 | 美女免费毛片 | 狠狠干婷婷 | av操操| 中国免费黄色片 | 国产免费高清视频 | xxxxxx日本| 91高跟黑色丝袜呻吟在线观看 | 日韩无马| 亚洲码国产精品高潮在线 | 超碰人人超碰 | 少妇一级淫片免费看 | 一道本综合久久 | 日本一二三区不卡 | 欧美成人一区二免费视频软件 | 欧美亚韩一区二区三区 | 亚洲成人网络 | 欧美日韩国产精品综合 | 国产精品视频一二三 | 国产综合欧美 | 香蕉国产片一级一级一级一级 | 狠狠操影视 | 亚洲男人天堂久久 | 久久精品女人毛片国产 | 狠狠干2020 | 成人宗合 | 草久久| 国产拍拍视频 | 国产成人激情视频 | 色乱码一区二区三在线看 | 香蕉久久夜色精品国产使用方法 | 色中文字幕 | 亚洲欧美激情视频 | 成人国产| 国产精品成人免费精品自在线观看 | 国产 欧美 日韩 | 国产福利精品在线观看 | 亚洲性xx | 五月天精品 | 黄色av免费看 | 欧美www在线观看 | 在线一区二区三区做爰视频网站 | 综合黄色 | 国产精品815.cc红桃 | 一区二区三区欧美在线观看 | av在线播放网 | 在线观看免费毛片视频 | 手机在线看片1024 | 在线色| 黄色aaa视频 | 看黄网站在线 | 色婷婷综合视频 | 在线观看毛片的网站 | 嫩草伊人 | 吃奶在线观看 | 91日批| 手机看片欧美日韩 | 亚洲无遮挡 | 超碰网站在线 | 欧美7777 | www.蜜臀av | av二区在线 | 青青草97国产精品麻豆 | 在线播放免费人成毛片乱码 | www视频在线免费观看 | 狠狠干一区二区 | 亚洲欧洲综合在线 | 国产精品久久久久久久久夜色 | 182av| 亚洲天堂中文在线 | 性xxxx摔跤视频 | 91久久久久 | 一区av在线| 亚洲一级黄色片 | 精品成人在线观看 | 337p粉嫩大胆色噜噜狠狠图片 | 成人爽a毛片一区二区免费 激情伊人 | 1024精品一区二区三区日韩 | 一级成人欧美一区在线观看 | 亚洲成av人片在线观看www | 亚洲成人系列 | 在线黄色大片 | 在线观看www.| 中日黄色片 | 狠狠久久亚洲欧美专区 | 一级片播放 | 插插插天天影视 | 国产视频成人 | 婷婷色站 | 台湾久久 | 95看片淫黄大片一级 | 天堂色av| 国产男女爽爽爽免费视频 | 日本亲胸视频免费视频大全 | 成人午夜免费观看 | www.亚洲| 国产黄页视频 | 久久伊人亚洲 | 毛茸茸毛片 | 国产福利99| 成人福利视频网站 | 久久久久女人精品毛片九一 | 久久99精品久久久久久秒播放器 | 欧美交换 | 落日余晖 | 中文字幕7 | 在线视频中文字幕 | 青草视频在线观看免费 | 国产免费一区二区三区免费视频 | 91红桃视频 | 欧美巨大乳 | 亚洲成人第一区 | 狠狠躁18三区二区一区 | 四虎免费在线观看 | 日韩成人小视频 | 亚洲精品午夜视频 | 韩国黄色精品 | 性色av免费观看 | 丰满少妇在线观看网站 | 日本成人在线网站 | 日韩三级黄色 | 夜夜狠狠擅视频 | 亚洲天堂一区二区三区 | 久久成人精品视频 | 亚洲成人黄色影院 | 91免费黄色| 成人在线免费网址 | 99热这里只有精品8 黄色小视频在线看 | 在线免费观看污污 | 看一级黄色大片 | 欧美大片一区 | 国产精品第2页 | 中文字幕35页 | 国产白丝精品 | 九色av| 毛片毛多水多 | 伊人网91 | 欧美第1页| 超碰cc| 激情六月| 操色网 | av激情小说| 久久久精品国产99久久精品麻追 | 成人午夜一区 | 蝌蚪网在线视频 | 国产在线第一页 | av色成人| 日韩免费一二三区 | 男女69视频 | 久久免费观看视频 | 久久黄色一级视频 | 69福利社区 | 亚洲激情国产 | 久久精品精品 | 一区二区三区亚洲视频 | 国产精品三级在线 | 爱搞国产 | 日韩国产成人 | 国产传媒在线视频 | 永久免费精品视频 | 一区二区三区麻豆 | 亚洲精品国产一区二区 | av55 | 免费高清av在线看 | 超碰在线成人 | 亚洲成人av | 午夜av免费在线观看 | 全黄一级裸体片 | 国产又大又黄又粗 | 中文字字幕在线观看 | 一区二区视频在线 | 亚洲天堂精品在线观看 | 亚洲品质自拍视频 | 亚洲欧美爱爱 | 黄色片一级 | 成人xxxxx| 亚洲欧洲成人在线 | 国产污污视频 | 96久久 | 91精品视频免费在线观看 | 久久综合91 | 亚洲视频在线网站 | 超碰激情在线 | 婷婷久久精品 | 在线观看黄色国产 | 国产精品国产三级国产专区52 | 亚洲综合91 | 中文在线第一页 | xxxxxhd亚洲人hd| 在线观看亚洲免费视频 | 最新超碰 | 五月婷婷小说 | 9i看片成人免费看片 | 黄色小视频在线看 | 黄色一级a毛片 | 精品欧美久久 | www.污在线观看 | 国产精选久久久 | 久久久久国产精品视频 | 亚洲成年人在线 | 国产情侣啪啪 | 久久久精品毛片 | 自拍偷拍综合 | 日本成人一级片 | 国产第一网站 | 色偷偷资源 | 伊人资源 | 日本一区二区免费视频 | 在线精品一区 | 国产乱码精品一区二区三 | 国产动漫av | 中文在线视频 | 2015成人永久免费视频 | 在线观看免费高清在线观看 | 最新永久地址 | 一区不卡av | aaa日韩 | 欧美成人免费一级人片100 | 中国一级特黄毛片 | 综合婷婷 | 99视频在线精品免费观看2 | 最新日韩在线 | 中国三级视频 | 亚洲一区二区日本 | 国产91av在线| 欧美,日韩,国产精品免费观看 | 午夜精品999 | 人人干在线 | 人妖av在线 | www.69视频 | 国产91对白在线播放 | av成人免费观看 | 欧美一级不卡 | 级毛片 | 怡红院成人影院 | 欧美巨大荫蒂茸毛毛人妖 | 在线观看精品视频 | 一区二区三区免费看 | 亚洲作爱 | 欧美国产免费 | 免费人成年激情视频在线观看 | 精品成人av一区二区在线播放 | 久久久久久亚洲视频 | 91视频看片 | 日日夜夜狠狠操 | 亚洲国产日韩在线观看 | 亚洲高清视频在线观看免费 | 日韩精品成人在线 | 午夜精品久久久久久久久久久久久 | 国产中文字幕在线视频 | 91在线欧美 | 久久久久中文字幕亚洲精品 | 性色浪潮av | 黄色1级大片| 福利网站在线 | 亚洲一区www | 激情综 | 狠狠躁18三区二区一区传媒剧情 | 女同性恋一区二区三区 | 亚洲成肉网| 成人黄色大片 | 黄色无遮挡网站 | 色猫咪av| 国产你懂得 | 亚洲国产剧情在线观看 | 成av人片一区二区三区久久 | 香蕉视频2020 | 麻豆乱淫一区二区三区 | 午夜污 | www亚洲视频 | 91免费网址| 天堂在线一区二区 | 激情五月婷婷网 | 亚洲免费资源 | 亚洲成a人片77777精品 | 99ri在线| 色婷婷av一区二区三区之e本道 | 97在线免费视频 | 1024精品一区二区三区日韩 | 韩国三级做爰高潮 | 亚洲精品国产精品乱码不卡√香蕉 | 99久久精品无免国产免费 | 国产又粗又猛又爽又黄91 | 亚洲麻豆精品 | 日韩欧美亚 | 亚洲爱色 | 午夜精品久久久久久久久 | 久久久久成人精品免费播放动漫 | 中文在线字幕免费观看电 | 亚洲欲色 | 成人免费毛片日本片视频 | 一区二区精品在线观看 | 国产欧美一区二区三区精品酒店 | 国产另类自拍 | 欧美精品在线免费观看 | av在线免费网址 | 国产一级生活片 | 波多野结衣一二区 | 亚洲黄v| av最新地址 | 日韩欧美第一页 | 伊人77| 在线视频精品播放 | 不卡av影院 | www.四虎.| 日批视频免费看 | 午夜美女福利视频 | 免费又黄又爽又猛大片午夜 | 久久久久久久穴 | 波多野结衣视频一区 | 男人的天堂中文字幕 | 自拍啪啪| 国产传媒第一页 | 亚洲在线一区 | 九九亚洲| 国产精品久久欧美日韩 | 国产午夜精品一区 | www.成人在线| 欧美成年人视频 | 精品国产乱码久久久久久绯色 | www.日韩av.com| 国产精品福利片 | 国产精品污视频 | 777奇米视频 | 九九热九九热 | 极品少妇一区 | av少妇在线 | 天天碰天天干 | 国产清纯白嫩初高中在线观看性色 | 91xxx在线观看 | 三级视频久久 | 国产破处视频 | 99精品一区二区三区 | 天堂影院av| 欧美精品99 | 98国产视频 | 啪啪激情网 | 日韩在线视屏 | 婷婷国产视频 | 人人草人人看 | 国产成人午夜视频 | 精品成人在线视频 | 亚洲五月花 | 婷婷六月色| 日韩免费视频网站 | www.色亚洲| 成人乱人乱一区二区三区 | 成年人免费高清视频 | 日本a v网站 | 6080黄色| 亚洲永久精品在线观看 | 日韩福利视频在线观看 | 日韩午夜av | 欧美理论视频 | 五月婷婷丁香激情 | 日本a v网站 | 久久久www成人免费无遮挡大片 | 国产69页| 色老大影院 | 超清av | 一路向西在线看 | 久久国产加勒比精品无码 | 亚洲自拍第二页 | 午夜视频免费在线 | 色呦| 亚洲精品美女 | 99久热在线精品996热是什么 | 成人高潮片免费网站 | 国产精品国产三级国产a | 国产成人97精品免费看片 | 精品免费在线 | 超薄肉色丝袜一区二区 | 日韩亚洲在线观看 | 久久国产精品一区二区三区 | 日日射视频 | 久插视频 | 爱情岛亚洲首页论坛小巨 | 欧美性大战xxxxx久久久 | 中文字幕亚洲精品在线 | 成人在线中文字幕 | 国产午夜一区 | 91啦中文 | 91午夜精品亚洲一区二区三区 | 成年人黄色大全 | 日日夜夜精品 | www.国产.com | 日本xxx在线观看 | 日日摸天天添天天添破 | 强开乳罩摸双乳吃奶羞羞www | 成人久久18免费网站麻豆 | 人超碰 | 精品少妇一区二区三区免费观看 | 好吊日在线观看 | 91亚洲精品在线观看 | 国产精品jizz在线观看美国 | 婷婷四房综合激情五月 | 开心春色激情网 | 中文字幕不卡免费视频 | 久操视频网| 亚洲激情视频一区 | 国产一国产一级毛片视频 | 日在线视频 | 变态 另类 国产 亚洲 | 日本三级中文 | 亚洲国产成人精品久久久国产成人 | 99在线免费视频 | 黄频在线播放 | 色婷婷综合视频 | 午夜激情视频在线 | 日韩黄网站| 九色蝌蚪9l视频蝌蚪9l视频 | 精品国产成人 | 91欧美激情一区二区三区成人 | av网站地址| 99爱免费视频 | 羞羞动漫免费观看 | 成人a v视频| 午夜在线观看免费 | 亚洲国产精品成人va在线观看 | 天堂av√ | 黄色免费视频 | 精品福利在线 | 日日cao| 久久综合导航 | 成年人视频网站 | 国产99在线观看 | 日本不卡一区二区 | 最新最近中文字幕 | 成年人黄色片网站 | 欧美日韩一区二区三区不卡 | 国产精品福利一区二区三区 | 不卡在线播放 | 好看的中文字幕第一页 | 久久久精品日韩 | 久久网中文字幕 | 免费观看黄色av | 亚洲欧美日韩影院 | 亚洲婷婷丁香 | 96av在线 | 欧美精彩视频 | 夜夜操夜夜干 | 人人干人人干 | 亚洲成人精品视频 | 欧美日韩h | 丝袜综合网 | 国产乱码精品一区二区三区五月婷 | 亚洲第一综合网 | 精品视频免费在线观看 | 亚洲成人婷婷 | 青草伊人久久 | 久久av影院| 欧美日韩一区二区在线播放 | 天堂在线视频tv | 欧美在线专区 | 日韩av免费在线观看 | 徐锦江一级淫片免费看 | 亚洲爱爱网 | 一级特黄aaa大片在线观看 | 国产v在线| 91狠狠 | 伦理片波多野结衣 | 亚洲天堂区 | 亚洲专区中文字幕 | 伊人视频 | 亚洲永久 | www.国产成人 | 九九热在线视频播放 | 精品国产一区一区二区三亚瑟 | 欧美一区二区三区婷婷月色 | 高h av | 国产白丝av | 黄色小视频免费观看 | 最新四季av在线 | 99色在线视频 | 插插宗合网 | 黄p在线播放| 亚洲系列在线 | 直接看的毛片 | 毛片aaaaa| 毛片黄色一级 | av在线播放观看 | 好男人www免费高清视频在线观看 | 又色又爽又高潮久久精品 | 国产午夜麻豆影院在线观看 | 国产一级在线观看视频 | 男女国产精品 | 国产激情免费 | 欧美日韩性生活 | 久久久久久久久黄色 | 亚洲精品成人在线 | 99国产精品99久久久久久粉嫩 | 色射色| 蜜芽久久 | 起碰在线| 欧美日韩国内 | 亚洲av毛片 | 青苹果av | 日韩av午夜| 免费一级片网站 | 黄色一级片 | 天天操婷婷 | 国产嫩草影院久久久久 | 五月婷婷六月天 | 亚洲无套 | 97在线公开视频 | 亚洲欧美丝袜中文综合 | wwwav视频| 国产成人综合网 | 亚洲国产高清视频 | 国产日韩欧美在线播放 | 天天操天天操天天操天天操 | 欧美特级黄 | 五月激情啪啪 | 全部免费毛片在线播放高潮 | 色图综合网 | 精品第一页 | 国产91国语对白在线 | 尤物精品在线 | 国产黄色片免费看 | 午夜高潮视频 | 不卡av网 | 亚洲午夜片 | 国产午夜一区二区 | 精品热 | 久操五月天 | 亚洲综合小说区 | 夜夜草导航 | 亚洲国产中文字幕 | 伊人久久久久久久久久久 | 天堂成人国产精品一区 | 国产999视频 | 亚洲第一天堂影院 | 综合色av | 四虎影视免费永久大全 | 国产情侣露脸自拍 | 国产精品久久久久久久久久妇女 | 日韩一级久久 | www.四虎在线观看 | 午夜特级毛片 | a国产一区二区免费入口 | www.亚洲.com | 毛片最新网址 | 夜夜嗷 | 天天草夜夜 | 99精品偷自拍 | 黄色一级一片免费播放 | 免费性视频 | 一级片免费观看 | 在线欧美视频 | 亚洲免费专区 | 国产91精品一区二区三区四区 | 亚洲成人日韩在线 | 精品少妇视频 | 欧美视频在线观看一区 | 亚洲涩涩图 | 五月综合色 | 在线观看福利网站 | 亚洲蜜桃av一区二区 | 久久久一 | 亚洲成av人片在线观看无码 | 国产露脸国语对白在线 | 国产精品免费一区二区三区都可以 | 午夜色婷婷 | 一本久道久久综合 | 欧美激情一区二区三区四区 | 免费在线观看国产精品 | 国产精品三级久久久久三级 | 日本va欧美va国产激情 | 日日日插插插 | 亚洲精品久久久艾草网 | 国产精品12 | 色视频网 | 日韩精品播放 | 一色桃子juy758在线播放 | 成人午夜免费在线观看 | 美女伊人网 | 日韩福利在线观看 | 欧美中出 | 国产精品久久久久久影院8一贰佰 | 日本黄网在线观看 | 日本一级大毛片a一 | 国产真实生活伦对白 | 日日干夜夜艹 | 国产一区在线免费 | 日韩在线成人 | 亚洲人高潮女人毛茸茸 | 国产精品偷乱一区二区三区 | 亚洲乱码中文字幕 | 在线免费色 | 午夜影院在线观看18 | 一区二区日韩精品 | 成人91在线观看 | 久久成人精品 | 幸福宝在线观看 | 亚洲精品视 | 网站av在线 | 亚洲成av人片在线观看无 | www.69视频 | 国产毛片毛片毛片毛片 | 草碰在线视频 | 色呦呦国产 | 黄污视频在线观看 | 欧美日一本 | 国外亚洲成av人片在线观看 | 岛国精品| 亚洲无马砖区2021 | 国产aa视频| 欧美日韩性生活 | 91av在线网站 | 亚洲精品综合久久 | 亚洲美女性视频 | 欧美日韩不卡在线 | 国产精品免费看 | 99国产精品久久久久久久成人热 | 欧美日本综合 | av黄色影院 | 日韩三级免费观看 | 欧美日韩成人 | 婷婷视频网 | 超碰成人av| 亚洲欧美日韩一区二区三区四区 | 久久大香伊蕉在人线观看热2 | 爱情岛亚洲首页论坛小巨 | 性xxxx搡xxxxx搡欧美 | 国产精品玖玖玖 | 日本黄色免费大片 | 涩涩视频免费观看 | 99re这里只有精品在线 | 中文字幕视频免费 | 午夜国产一区 | 亚洲看片| 91最新国产 | 亚洲欧美国产精品 | 久草视频在线播放 | 国产成人资源 | 啪啪天堂| 美女网站av | 亚洲开心激情网 | 香蕉97视频观看在线观看 | 国产亚洲美女精品久久久2020 | 在线成人中文字幕 | 亚洲欧美自拍偷拍 | 久久免费视频99 | 国产亚洲欧美视频 | 国产精品精 | 大伊人网 | 亚州一级 | 你懂的网址在线观看 | 欧美 日韩 国产 成人 在线 91 | 国产亚洲资源 | 亚洲成人免费在线视频 | 成人午夜小视频 | 国产精品高潮呻吟av久久4虎 | 男男做爰猛烈叫床爽爽小说 | 亚洲国产成人精品久久久国产成人一区 | 一级黄色片在线播放 | 天天色天天操天天射 | 波多野结衣一区二区三区高清 | 午夜影视福利 | 99久久99久久 | 操网站 | 9i看片成人免费 | 在线观看91av | 天堂色网 | 国产精品久久久久毛片软件 | 欧美日韩一级黄色片 | 最新在线黄色网址 | 日韩精品三级 | 天堂社区av | 国内精品视频在线 | 日韩在线观看视频网站 | 亚洲区小说区 | 午夜激情毛片 | 欧洲美一区二区三区亚洲 | 久久精品女人毛片国产 | 五月婷婷综合在线 | 亚洲综人网 | 亚洲一区综合 | www.在线看| 亚洲第一黄网站 | 色网址在线观看 | 久久国产综合 | 亚洲欧美日韩偷拍 | 主播粉嫩国产在线精品 | 亚洲自拍第二页 | 中文字幕视频播放 | 色综合国产 | 啪啪中文字幕 | 99久久国产毛片 | 久久人人爱 | 天天色天天射天天干 | 99在线精品视频免费观看软件 | 天堂俺去俺来也www久久婷婷 | 性的免费视频 | 国产精品一区二区三区在线免费观看 | 国产三级韩国三级日本带黄 | 亚洲欧美日韩一区二区 | 国产一级免费av | 欧美七区 | 久久久一区二区三区 | 午夜国产精品视频 | 日韩经典一区二区 | 网站黄在线观看 | 亚洲成人免费网站 | 免费黄色网址在线观看 | 91亚洲精品国偷拍 | 国产第一页在线播放 | 亚洲成人av免费 | 一本久道久久综合 | 亚洲无线视频 | 日本中文字幕视频 | 91国视频| 99插插插| av国产免费| 日韩一区二区视频在线 | 免费毛片在线播放 | 在线视频三区 | 久久亚洲天堂网 | 亚洲欧美综合一区 | 操皮视频| 色综合五月天 | 国产第6页| 日本中文字幕在线 | 国产wwwwwww| 国产一区免费看 | 日韩精品一二 | www..com黄色 | 亚洲精品视频一区二区 | 爽爽影院在线 | 视频一区 中文字幕 | 色老二导航 | 成人午夜影视 | 字幕网av | av成人免费 | 亚洲天堂免费在线 | 加勒比综合在线 | 天天爽天天插 | 国产又爽又黄又嫩又猛又粗 | 久久久精品免费视频 | 日啪| 国产精品av在线 | av72成人| 在线色| 午夜精品三级久久久有码 | 久久久久久激情 | 亚洲最大av网 | 男女插鸡视频 | 一区二区三区日韩在线 | 亚洲精品一区二区在线 | 亚洲欧洲第一页 | 欧美国产精品 | 午夜性视频| 黄色片久久 | 亚洲综合中文网 | 一级片视频在线观看 | 伊人春色视频 | 不卡精品视频 | 国产男女猛烈无遮挡免费观看网站 | 69性视频| 午夜h| 在线色一区| 2017天天干| 激情午夜影院 | 免费黄色av网站 | 在线高清观看免费观看 | 青青草日韩 | 大伊人久久 | 在线看毛片网站 | 国产精品美女久久久久av爽 | 欧美综合区 | 日日噜噜噜夜夜爽爽狠狠视频97 | 国产精品地址 | 亚洲精品国产精品国自产 | 久久久久久国产精品免费播放 | 日本黄色三级视频 | 亚洲自拍诱惑 | 亚洲资源网 | 一区二区三区在线免费播放 | 国产a级免费 | 爱爱综合网 | 中文幕无线码中文字蜜桃 | 欧美性极品xxxx做受 | a级亚洲| 在线看91| 成人亚洲网站 | 粗大黑人巨茎大战欧美成人 | 色先锋影院 | 国产超碰人人爽人人做人人爱 | 婷婷色av| 一本色道久久综合精品竹菊 | 免费看色 | 懂色tv| 草碰在线视频 | 中文字幕有码在线 | 国产系列在线 | 在线永久看片免费的视频 | 国产不卡一二三 | 国产真实乱人偷精品视频 | 亚洲乱人伦| 伊人久久大香线 | 免费视频网站在线观看入口 | 久久蜜桃香蕉精品一区二区三区 |