久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Perl Sort

發(fā)布時(shí)間:2023/12/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Perl Sort 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)自:http://www.sysarch.com/Perl/sort_paper.html


A Fresh Look at Efficient Perl Sorting

Uri Guttman and Larry Rosler

Uri Guttman is an independent Perl and Internet consultant; uri@sysarch.com
Larry Rosler is at Hewlett-Packard Laboratories, Palo Alto, CA; lr@hpl.hp.com

Abstract

Sorting can be a major bottleneck in Perl programs. Performancecan vary by orders of magnitude, depending on how the sort iswritten. In this paper, we examine Perl′s sort function indepth and describe how to use it with simple and complex data. Next weanalyze and compare several well-known Perl sorting optimizations(including the Orcish Maneuver and the Schwartzian Transform). We thenshow how to improve their performance significantly, by packing multiplesortkeys into a single string. Finally, we present a fresh approach,using the sort function with packed sortkeys and without asortsub. This provides much better performance than any of the othermethods, and is easy to implement directly or by using a new module wecreated, Sort::Records.

NOTE: Sort::Records died during development but five years later,Sort::Maker was released and does all that was promised and more. Findit on CPAN

What is sorting and why do we use it?

Sorting is the rearrangement of a list into an order defined by a monotonically increasing or decreasing sequence of sortkeys, where each sortkey is a single-valued function of the corresponding element of the list. (We will use the term sortkeys to avoid confusion with the keys of a hash.)

Sorting is used to reorder a list into a sequence suitable for further processing or searching. In many cases the sorted output is intended for people to read; sorting makes it much easier to understand the data and to find a desired datum.

Sorting is used in many types of programs and on all kinds of data. It is such a common, resource-consuming operation that sorting algorithms and the creation of optimal implementations comprise an important branch of computer science.

This paper is about creating optimal sorts using Perl. We start with a brief overview of sorting, including basic algorithm theory and notation, some well-known sorting algorithms and their efficiencies, sortkey processing, and sorting outside of Perl. Next we will describe Perl′s sort function [1] and basic ways to use it. Then we cover handling complex sortkeys, which raises the question of how to optimize their processing. Finally we introduce a relatively new method, which moves all the sortkey processing out of the sort function, and which produces the most efficient Perl sort. A new module is also described, which implements this sorting technique and which has powerful support for sortkey extraction (the processing of the input data to produce the sortkeys.

Algorithm and sorting theory

A complete discussion of algorithm and sorting theory is beyond the scope of this paper. This section will cover just enough theory and terminology to explain the methods that we use to compare sort techniques.

The complexity of an algorithm is a measure of the resources needed to execute the algorithm -- typically there is a critical operation that needs to be executed many times. Part of algorithm theory is figuring out which operation is the limiting factor, and then formulating a function that describes the number of times the operation is executed. This complexity function is commonly written with the big-O notation -- O(f(N)) -- where `O′ is read as `order of′ and `f(N)′ is some function of N, the size of the input data set.

O(f(N)) comparisons have some unusual properties. The actual size of N is usually irrelevant to the correct execution of an algorithm, but its influence on the behavior of f(N) is critical. If an algorithm′s order is O(N*logN + N), when N is large enough the effect of the N on the function′s value is negligible compared to the N*logN expression. So that algorithm′s order is just O(N*logN). In many cases the calculated order function for an algorithm is a polynomial of N, but you see only the term with the highest power, and no coefficient is shown. Similarly, if two algorithms have the same order but one does more work for each operation, they are still equivalent in order space, even though there may be a substantial difference in real-world speeds. That last point is crucial in the techniques we will show to optimize Perl sorts, all of which have the same big-O function, O(N*logN).

Here are some well-known algorithms and their order functions (adapted from [2]):

Notation

Name

Example

O(1)

constant

array or hash index

O(logN)

logarithmic

binary search

O(N)

linear

string comparison

O(N*logN)

n log n

advanced sort

O(N**2)

quadratic

simple sort

O(N**3)

cubic

matrix multiplication

O(2**N)

exponential

set partitioning

Sorting′s critical operation is determining in which order to put pairs of elements of the data. The comparison can be as simple as finding whether two numbers are equal or which is greater than the other (or doing similar operations on strings), or it can be quite complex.

Simple sorting algorithms (bubble or insertion sorts) compare each element to each of the others repeatedly, so their complexity is O(N**N). Even with the triangle optimization ($x is equal to $x, and $x compared to $y is the negative of $y compared to $x), which reduces the function to O((N * (N-1))/2), the complexity is still O(N**N), as explained above.

But these algorithms have their uses. When N is very small, they can actually be faster than the other methods, because the O(1) and O(N) overhead of the advanced sorts may outweigh the O(N**2) behavior of the simple sorts. "Fancy algorithms are slow when N is small, and N is usually small. Fancy algorithms have big constants." [3] The really important cases, which are worth care in the coding, occur when N is large.

Advanced sorting methods repeatedly partition the records to be sorted into smaller sets, to reduce the total number of comparisons needed. Their complexity is O(N*logN), which can be much less than O(N**2) for sufficiently large values of N. These algorithms include `tree sort′, `shell sort′, and `quicksort′. [4]

Some specialized sort algorithms (such as `radix sort′) work by comparing pieces of numeric sortkeys, and can achieve linear complexity (O(N)) [5]. These methods are not general-purpose, so we will not address them further.

One property of sort algorithms is whether they are stable. A stable sort preserves the order in the sorted data of two elements that compare equal. Some sorting problems require stability. The simple sorting algorithms are generally stable; the advanced ones are not. We will show how to make Perl′s advanced sort behave stably if required.

An important sorting variation is when the original data elements can′t conveniently be moved around by the sort algorithm′s shuffling. So instead of sorting the elements directly, you sort their index numbers. You then use the sorted indexes to create a list of sorted elements. Some sort operators in other languages (APL comes to mind) simply return sorted indexes, and it is up to the programmer to use them correctly. We will show how to create an efficient Perl index sort and where it is useful.

Sortkeys

If you are sorting a set of scalar-valued elements where the comparison looks at the entire element, the sortkey is simply the entire element. More generally, the sortkey is based on some properties that are functions of all or part of the element. Such subkeys may be extracted from internal properties of parts of the element (fields) or derived from external properties of the element (such as the modification date of a file named by the element, which is quite expensive to retrieve from the file system).

To avoid repeated computation of the sortkeys, the sort process has to retain the association between records and their extracted or derived sortkeys. Sorting theory and algorithms usually ignore the cost of this association, as it is typically a constant factor of the comparison operation. But as we will see later, in the real world, removing that overhead or reducing it from O(N*logN) to O(N) is very valuable, especially as N grows.

Complex sortkeys can add tremendously to the overhead of each comparison. This occurs where the records have to be sorted by primary, secondary, and lower-order subkeys. This is also known as doing a subsort on the lower keys. Extracting and comparing complex sortkeys can be costly and error-prone.

No general-purpose implementation of a sort algorithm can efficiently support extracting and comparing different types of sortkeys. Therefore, most sort implementations provide a simple interface to call a sortsub -- a custom comparison subroutine which is passed two operands. These operands can be the records themselves, or references to or indexes of complex records. The comparison returns a negative, zero, or positive value, depending on the ordering of the sortkeys of the two records. The programmer is responsible for any preprocessing of the records to generate the sortkeys and any postprocessing to retrieve the sorted data. The generic sort function only manages the comparisons and shuffles the operands into sorted order.

As Perl′s sort function is O(N*logN), efficiency must come from extracting and comparing the sortkeys using the least amount of work. Much of this paper will be about methods to make sortkey extraction and comparison as efficient as possible.

External sorting

Every popular commercial operating system offers a sort utility. Unix/POSIX flavors typically have a sort command which is fast and fairly flexible with regard to sortkey extraction from text files. In some cases, the Unix/POSIX sort command may be easier to code and more efficient than using the Perl sort function.

Several vendors sell highly optimized commercial sort packages that have received decades of attention and can handle massive amounts of data. But they are very expensive and not suitable for use inside a Perl program.

All of these are capable of dealing efficiently with very large amounts of data, using external media such as disk or tape files for intermediate storage when needed. In contrast, the Perl sort function requires that the entire list of operands be in (real or -- much more expensively -- virtual) memory at the same time. So Perl is not the appropriate tool to use for huge sorts (where huge is defined by your system′s memory limits), which we shall not consider further.

Internal sorting

The Perl sort function uses an implementation of the quicksort algorithm that is similar to (but more robust than) the qsort function in the ANSI/ISO Standard C Library [6]. In the simplest use, the Perl sort function requires no sortsub:

@out = sort @in;

This default sorts the data in ascending lexicographic order, using the fast C memcmp function as the comparison operation. If a locale is specified, it substitutes the more complicated and somewhat slower C strcoll function.

If you want any kind of ordering other than this, you must provide a custom comparison sortsub. The sortsub can be specified either as a code block, the name of a subroutine, or a typeglob that refers to a subroutine (a coderef). In Perl 5.6, a scalar variable that contains a coderef can also be used to specify the sortsub.

In order to optimize the calling of the sortsub, Perl bypasses the usual passing of arguments via @_, using instead a more efficient special-purpose method. Within the sortsub, the special global package variables $a and $b are aliases for the two operands being compared. The sortsub must return a number less than 0, equal to 0, or greater than 0, depending on the result of comparing the sortkeys of $a and $b. The special variables $a and $b should never be used to change the values of any input data, as this may break the sort algorithm.

Even the simplest custom sort in Perl will be less efficient than using the default comparison. The default sort runs entirely in C code in the perl core, but any sortsub must execute Perl code. A well-known optimization is to minimize the amount of Perl code executing and to try to stay inside the perl core as much as possible. Later we will see various optimization techniques that will reduce the amount of Perl code executed.

The primary goal of this paper is to perform all sorts using the default comparison. Here is how an explicit ascending lexicographic would be done using a sortsub:

@out = sort { $a cmp $b } @in;

For a simple measurement, compare Default and Explicit in Benchmark A1 of Appendix A. The default method is about twice as fast as the explicit method.

Trivial sorts

We call trivial sorts those that use the entire record as the sortkey and do only a minimal amount of processing of the record. To do trivial Perl sorts other than ascending lexicographic, you just need to create an appropriate sortsub. Here are some common ones that perform useful functions.

The simplest such example is the ascending numeric sort, which uses the picturesquely monikered `spaceship′ operator:

@out = sort { $a <=> $b } @in;

A numeric sort capability is required because the lexicographic order of, say, (1, 2, 10) does not correspond to the numeric order.

If you want the sort to be in descending order there are three techniques you can use. The worst is to negate the result of the comparison in the sortsub. Better is to reverse the order of the comparison by swapping $a and $b. This has the same speed as the corresponding forward sort.

# descending numeric@out = sort { $b <=> $a } @in; # descending lexicographic@out = sort { $b cmp $a } @in;

The best method is to apply the reverse function to the result of a default ascending lexicographic sort.

@out = reverse sort @in;

Note that this is faster than using the explicit descending lexicographic sort, for the reason discussed above: the default sort is faster than using a sortsub. The reverse function is efficient because it just moves pointers around.

Another common problem is sorting with case insensitivity. This is easily solved using the lc or uc function. Either one will give the same results.

@out = sort { lc $a cmp lc $b } @in;

Benchmark A1 analyzes these examples as a function of the input size. The O(N*logN) behavior is apparent, as well as the cost of using even a simple built-in function like lc in the sortsub.

Fielded and record sorts

The above trivial sorts sort the input list using as the sortkey the entire string (for a lexicographic sort) or the first number in each datum (for a numeric sort). More typically, the sortkey is based on some property that is a function of all or part of each datum. Several individual subkeys may be combined into a single sortkey or may be compared in pairs individually.

A complex string may be divided into fields, some of which may serve as subkeys. For example, the Unix/POSIX sort command provides built-in support for collation based on one or more fields of the input; the Perl sort function does not, and the programmer must provide it. One CPAN module focuses on fielded sorts [7].

If your data are records which are complex strings or references to arrays or hashes, you have to perform comparisons on selected parts of the records. This is called record sorting. (Fielded sorts are a subset of record sorts.)

In the code examples that follow, KEY() is meant to be substituted with some Perl code that performs sortkey extraction. It is best that it not be an actual subroutine call, because subroutine calls within sortsubs can be expensive. Calls to built-in Perl functions (such as the calls to lc in the example above) are like Perl operators, thus relatively less expensive.

When sorting string records, $a and $b are set to those strings, so to extract the sortkeys you generally perform various string operations on the records. Functions commonly used for this include split, substr, unpack, and m//. Here is one example, sorting a list of password-file lines by user name using split. The fields are separated by colons, and the user name is the first field.

@out = sort {(split ':', $a, 2)[0] cmp(split ':', $b, 2)[0]} @pw_lines;

Multi-subkey sorts

In some cases you need to sort records by a primary subkey, then for all the records with the same primary subkey value, you need to sort by a secondary subkey. One horribly inefficient way to do this is to sort first by the primary subkey, then get all the records with a given subkey and sort them by the secondary subkey. The standard method is to do a multi-key sort. This entails extracting a subkey for each field, and comparing paired subkeys in priority order. So if two records with the same primary subkey are compared, they will actually be compared based on the secondary subkey. Sorting on more than two subkeys is done by extending the logic.

Perl has a very nice feature which makes multi-key sorts easy to write. The || (short-circuit or) operator returns the actual value of the first logically true operand it sees. So if you use || to concatenate a set of key comparisons, the first comparison is the primary subkey. If a pair of primary subkeys compare equal, the sortsub′s return value will be the result of the secondary subkey comparison.

An example will illustrate this `ladder′ of comparisons better than more text. Here is a three-subkey sort:

@out = sort {# primary subkeys comparisonKEY1($a) cmp KEY1($b)||# or if they are equal# return secondary comparison# descending numeric comparisonKEY2($b) <=> KEY2($a)||# or if they are equal# return tertiary comparison# lexicographic comparisonKEY3($a) cmp KEY3($b)} @in;

Naive multi-subkey record sorts

In the two previous examples, we showed a sort with relatively expensive sortkey extraction (via split), and a multi-subkey sort. Let′s combine them. For concreteness, we shall deal with a problem that has received much attention in comp.lang.perl.misc -- sorting a list of IP addresses in `dotted-quad′ form. Each element of the list is a string of the form "nnn.nnn.nnn.nnn\tabc.xyz.com\n", where nnn represents a decimal integer between 0 and 255, with or without leading zero-padding.

In the most naive approach, we sort on each of these four numeric fields as individual subkeys, in succession.

@out = sort {my @a = $a =~/(\d+)\.(\d+)\.(\d+)\.(\d+)/;my @b = $b =~/(\d+)\.(\d+)\.(\d+)\.(\d+)/;$a[0] <=> $b[0] ||$a[1] <=> $b[1] ||$a[2] <=> $b[2] ||$a[3] <=> $b[3]} @in;

Even for small lists this is very slow, because of the many Perl operations executed in the sortsub for every one of the O(N*logN) comparisons.

Computing a single packed-string sortkey

To improve performance, we will derive from these four subkeys a single packed-string sortkey for each IP address, which we can then use to sort the array monotonically increasing.

The following expression produces the shortest key, a string of four bytes, with the least Perl calculation:

pack 'C4' => $string =~/(\d+)\.(\d+)\.(\d+)\.(\d+)/

This uses the fancy comma operator, =>, which you can read as `applied to′. We then sort these sortkeys lexicographically.

The following, then, is the next approach toward achieving an efficient sort:

@out = sort {pack('C4' => $a =~/(\d+)\.(\d+)\.(\d+)\.(\d+)/)cmppack('C4' => $b =~/(\d+)\.(\d+)\.(\d+)\.(\d+)/)} @in;

Benchmark A2 shows that comparing the subkeys in pairs is less efficient than packing them and comparing the packed strings. This observation applies to all sorting methods. In further benchmarks of advanced sorts for this problem, we will always used packed sortkeys.

Nevertheless, naive sorting is still woefully inefficient, because both sortkeys are recomputed every time one input operand is compared against another. What we need now is a way to compute each sortkey once only and to remember the result.

Advanced sorts

As all sorts in Perl use the builtin sort function and therefore the same quicksort algorithm, all Perl sorts are of order O(N*logN). We can′t improve upon that, so we have to address other issues to gain efficiency. As the complexity is fixed, tackling the constant factors can be fruitful and, in the real world, can produce significant improvements in efficiency. When a sortsub needs to generate a complex sortkey, that is normally done O(N*LogN) times, but there are only N records, hence N sortkeys. What if we were to extract the sortkey only once per record, and keep track of which sortkey belonged to which record?

Caching the sortkeys

The obvious way to associate sortkeys with the records from which they were created is to use a hash. The hash can be created in a preprocessing pass over the data. If the approximate size of the data set is known, preallocating the hash improves performance.

keys my %cache = @in;$cache{$_} = KEY($_) for @in;

The following sets up the cache more efficiently, using a hash slice:

keys my %cache = @in;@cache{@in} = map KEY($_) => @in;

Then the sortsub simply sorts by the values of the cached sortkeys.

@out = sort {$cache{$a} cmp $cache{$b)} @in;

In essence, we have replaced lengthy computations in the sortsub by speedy (O(1)) hash lookups.

If you want to do a complex multi-key comparison, you either have to use a separate cache for each subkey or combine subkeys in a similar way to the packed-sort optimizations we will describe later. Here is an example of the former:

keys my %cache1 = @in;keys my %cache2 = @in;($cache1{$_}, $cache2{$_}) =map { KEY1($_), KEY2($_) } $_for @in;@out = sort {$cache1{$a} cmp $cache1{$b) ||$cache2{$b} <=> $cache2{$a} }@in;

Alternatively, a multi-level cache can be used, which sacrifices speed to save some space:

keys my %cache = @in;$cache{@in} =map [ KEY0($_), KEY1($_) ]=> @in;@out = sort {$cache{$a}[0] cmp $cache{$b)[0]||$cache{$b}[1] <=> $cache{$a}[1]} @in;

An important point about cached sorts is that no postprocessing is needed to retrieve the sorted records. The method sorts the actual records, but uses the cache to reduce the sortkey extraction to O(N).

The Orcish Maneuver (OM)

The Orcish Maneuver (invented by Joseph N. Hall [8]) eliminates the preprocessing pass over the data, which might save keeping a copy of the data if they are being read directly from a file. It does the sortkey extraction only once per record, as it checks the hash to see if it was done before. The test and storage of the sortkey is done with the ||= operator (short-circuit or-assignment), which will evaluate and assign the expression on the right to the lvalue on the left, if the lvalue is false. The name `orcish′ is a pun on `or-cache′. The full statement in the sortsub looks like this:

keys my %or_cache = @in;@out = sort {($or_cache{$a} ||= KEY($a))cmp($or_cache{$b} ||= KEY($b))} @in;

That sees if the sortkey for $a is cached, and if not, extracts it and caches it. The sortkey for $a is then compared to the sortkey for $b (which is found in the same way).

Here is an example of a two-subkey comparison using two caches:

keys my %or_cache1 = @in;keys my %or_cache2 = @in;@out = sort {($or_cache1{$a} ||= KEY1($a))cmp($or_cache1{$b} ||= KEY1($b))||($or_cache2{$b} ||= KEY2($b))<=>($or_cache2{$a} ||= KEY2($a))} @in;

The OM has some minor efficiency flaws. An extra test is necessary after each sortkey is retrieved from the or-cache. Furthermore, if an extracted sortkey has a false value, it will be recomputed every time. This usually works out all right, because the extracted sortkeys are seldom false. However, except when the need to avoid reading the data twice is critical, the explicit cached sort is always slightly faster than the OM. (See Benchmark A3.)

The Schwartzian Transform (ST)

A more efficient approach to caching sortkeys, without using named temporary variables, was popularized by Randal L. Schwartz, and dubbed the Schwartzian Transform [9, 10]. (It should really be called the Schwartz Transform, after the model of the Fourier and Laplace Transforms, but it is too late to fix the name now.)

The significant invention in the ST is the use of anonymous arrays to store the records and their sortkeys. The sortkeys are extracted once, during a preprocessing pass over all the data in the list to be sorted (just as we did before in computing the cache of sortkeys).

@out =map $_->[0] =>sort { $a->[1] cmp $b->[1] }map [ $_, KEY($_) ] =>@in;

The ST doesn′t sort the actual input data. It sorts the references to anonymous arrays that contain the original records and the sortkeys. So we have to postprocess to retrieve the sorted records from the anonymous arrays.

Using the ST for a multi-subkey sort is straightforward. Just store each successive extracted subkey in the next entry in the anonymous array. In the sortsub, do an or between comparisons of successive subkeys, as with the OM and the naive sorts.

@out =map $_->[0] =>sort { $a->[1] cmp $b->[1] ||$b->[2] <=> $a->[2] }map [ $_, KEY1($_), KEY2($_) ]=> @in;

For a very illuminating deconstruction and reconstruction of the ST, see [11].

The packed-default sort

Each of the advanced sorting techniques described above saves the operands to be sorted together with their sortkeys. (In the cached sorts, the operands are the keys of a hash and the sortkeys are the values of the hash; in the Schwartzian Transform, the operands are the first elements of anonymous arrays, the sortkeys are the other elements of the arrays.) We now extend that idea to saving the operands to be sorted together with packed-string sortkeys, using concatenation.

This little-known optimization improves on the ST by eliminating the sortsub itself, relying on the default lexicographic sort, which as we showed earlier is very efficient. This is the method used in the new Sort::Maker module.

To accomplish this goal, we modify the ST by replacing its anonymous arrays by packed strings. First we pack into a single string each subkey followed last by the operand to be sorted. Then we sort lexicographically on those strings, and finally we retrieve the operands from the end of the strings.

@out =map substr($_, 4) =>sortmap pack('C4' =>/(\d+)\.(\d+)\.(\d+)\.(\d+)/). $_ => @in;

Several methods can be used, singly or in combination, to construct the packed strings, including concatenation, pack, or sprintf. Several methods can be used to retrieve the operands, including substr (shown here), which is likely to be the fastest, split, unpack or a regex.

Multiple subkeys are simply concatenated, suitably delimited if necessary. Techniques for computing subkeys of various types are presented in Appendix B.

Benchmarks of the packed-default sort

Benchmark A4 compares the two most advanced general-purpose sorting techniques, ST and packed-default. These multi-stage sorts are measured both as individual stages with saved intermediate data and as single statements.

The packed-default sort is about twice as fast as the ST, which is the fastest familiar Perl sorting algorithm.

Earlier, we showed a trivial sort using the lc function. Even for that case, the packed-default sort provides better performance when more than a few data items are being sorted. See Benchmark A5, which shows quasi-O(N) behavior for the packed-default sort (because the sorting time is small relative to the sortkey extraction).

Sorting a list of arrays or hashes

Consider the common problem of sorting a two-dimensional data structure, a list of references to arrays or to hashes, where the sortkeys are functions of the values of the submembers.

If we were to use the packed-default method, the references would be converted to strings and appended to the sortkeys. After sorting, the operands could be retrieved as strings, but would no longer be usable as references. Instead, we must use the indexes of the list members as the operands to be sorted.

The following benchmark compares a packed-sortkey ST sort with an indexed sort that uses the packed-default approach. The list being sorted comprises references to arrays, each of which has two elements: an IP address (which serves as the primary sortkey), and a domain name (which serves as the secondary sortkey). These are the same data as used in the above benchmarks, split into two array elements.

@out =map $_->[0] =>sort { $a->[1] cmp $b->[1] }map [ $_, pack('C4 A*' =>$_->[0] =~/(\d+)\.(\d+)\.(\d+)\.(\d+)/,$_->[1]) ] => @in;my $i = 0;keys my %h = @in;@h{ map pack('C4 A* x N' => $_->[0]=~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/,$_->[1], $i++) => @in } = @in;@out = @h{ sort keys %h };

The indexed sort is faster than the ST once again. (See Benchmark A6.)

Indexed sorts and stable sorts

In the indexed sort, the auto-incrementing index $i ensures that no array records will have identical packed sortkeys. It also ensures that the sort will be stable.

Any Perl sort can be stabilized by using such an index as the final tie-breaking subkey. For an indexed sort, the index is actually the operand being sorted. This fact offers another possible performance advantage for the indexed sort. The actual records to be sorted (which may be long strings) need not be appended to the sortkeys, which would create a second copy of each record. Using the indexed sort, the records may be recovered after the sort from the original data, using the sorted indexes.

The Sort::Maker module

Sort::Maker is on CPAN and implements the GRT forall types of Perl values.

Conclusions

Packing of subkeys into strings that can be compared lexicographically improves the performance of all sorting techniques, relative to the usual method of comparing the individual subkeys in pairs.

Packing the operands with the sortkeys allows the sort to be done using the default ascending lexicographic comparison (without a sortsub). This yields a markedly faster sort than the Orcish Maneuver or the Schwartzian Transform. The sorting process may approximate O(N) behavior, because the O(N*logN) time for the sort itself is small compared to the time required to extract the sortkeys.

The packed-sortkey sort may be written explicitly, or the new Sort::Maker module may be used.

Acknowledgments

This idea was brought to our attention by Michal Rutka [12]. John Porter participated in initiating this project and reviewed a draft of the paper.

References

1. The sort function man page, http://www.perl.com/CPAN/doc/manual/html/pod/perlfunc/sort.html

2. Kernighan, B. W. & Pike, R., (1999). The Practice of Programming, p. 41. Addison-Wesley.

3. Pike, R. (1989). Notes on Programming in C, http://wwwwbs.cs.tu-berlin.de/~jutta/c/pikestyle.html

4. Knuth, D. E. (1998). The Art of Computer Programming : Sorting and Searching (Vol 3, 2nd ed), chap. 5. Addison-Wesley.

5. Sedgewick, R. (1983). Algorithms, chap. 10. Addison-Wesley.

6. ANSI/ISO 9899-1992, sect. 4.10.5.2. American National Standards Institute.

7. Hall, J. N., Sort::Fields -- Sort lines containing delimited fields, http://www.perl.com/CPAN/modules/by-module/Sort/JNH/

8. Hall, J. N. (1998). Effective Perl Programming, p. 48. Addison-Wesley.

9. How do I sort an array by (anything)?, http://www.perl.com/CPAN/doc/manual/html/pod/perlfaq4.html#How_do_I_sort_an_array_by_anyth

10. Christiansen, T. & Torkington, N. (1998). The Perl Cookbook, Recipe 4.15: "Sorting a List by Computable Field". O′Reilly.

11. Christiansen, T., Far More Than Everything You′ve Ever Wanted to Know About Sorting, http://www.perl.com/CPAN/doc/FMTEYEWTK/sort.html

12. Rutka, M., in comp.lang.perl.misc. http://x4.dejanews.com/[ST_rn=ps]/getdoc.xp?AN=397853353)

Appendix A: Benchmarks

A caveat: Useful benchmarking depends on judicious isolation of relevant variables, both in the algorithms being benchmarked and in the data sets used. Different implementations may give different relative results even with the same algorithms and data. Thus all such results should be verified under your own conditions. In short, your mileage may vary.

In the following benchmarks, all data represent the time (in microseconds) per line in the input data, which averages 35 characters per line. All named arrays and hashes are preallocated, which reduces the variance in the measurements due to storage allocation.

Benchmark A1. Trivial sorts

Control

@out = @in;

Default

@out = sort @in;

Reverse

@out = reverse sort @in;

Explicit

@out = sort{ $a cmp $b } @in;

Insensitive

@out = sort{ lc $a cmp lc $b }@in;

Number of lines:

100

1000

10K

100K

Control

5

6

7

8

Default

9

13

19

25

Reverse

9

14

19

26

Explicit

17

25

37

50

Insensitive

47

62

91

119

Benchmark A2. Naive sorts (IP addresses)

Number of lines:

100

1000

10K

100K

Separate subkeys

697

1251

1732

2758

Packed sortkeys

583

1002

1363

1814

Benchmark A3. Cached sorts (packed sortkeys)

Number of lines:

100

1000

10K

100K

Caching

66

75

85

74

Sorting

49

87

122

164

Total cached sort

116

163

215

240

Orcish Maneuver

125

168

221

256

Benchmark A4. Advanced packed-key sorts

Number of lines:

100

1000

10K

100K

ST

?

?

?

?

Anon arrays

80

84

84

75

Sorting

27

47

76

97

Retrieval

13

18

20

17

One statement

116

150

177

191

Packed Default

?

?

?

?

Packing

61

63

65

67

Sorting

9

12

18

25

Retrieval

12

12

13

12

One statement

73

79

86

93

Benchmark A5. Another look at a trivial sort

Insensitive

@out = sort{ lc $a cmp lc $b }@in;

Packed

@out = map substr($_,1 + rindex $_, "\0")=>sort => map "\L$_\E\0$_"=> @in;

Number of lines:

10

100

1000

10K

100K

Insensitive

19

38

62

91

118

Packed

22

22

24

25

27

Benchmark A6. Two-dimensional packed-sortkey sorts

Number of lines:

100

1000

10K

100K

ST

243

314

359

435

Index

200

285

323

259

Appendix B: Explicit packed-default sorts

B1. Creating and combining sortable string subkeys

This is the preprocessing pass (the first map executed).

@sorted = map ... => sort =>map KEY($_) . $_ => @data;

To create and combine the subkeys and the operand to be sorted, any combination of concatenation, interpolation, pack, or sprintf may be used, the latter two with simple or compound formats.

Fixed-length strings (ascending):

simple interpolation

pack('... An ...', ...) sprintf('... %s ...', ...)

Fixed-length strings (descending):

Bit-complement the string first.

$subkey = $string ^"\xFF" x length $string

Then handle as an ascending fixed-length string.

Null bytes ("\0") are used to terminate string subkeys of varying length, as that ensures lexicographic ordering. If a string subkey may contain a null byte, then it must be of fixed length. If any of the operands to be sorted may contain null bytes, then every subkey must have fixed length.

Varying-length strings (ascending):

Terminate the string with a null byte, to separate it from succeeding subkeys or the operand.

interpolation: "$string\0"

pack('... A* x ...', ...)

sprintf('... %s\0 ...', ...)

Varying-length strings (descending):

Make a prepass over the data to find the length of the longest string.

my $len = 0;$len < length and $len = lengthfor map KEY($_) => @data;

Then null-pad each string to that length and proceed as above for fixed-length strings (descending).

$subkey = pack("a$len", $string)^ "\xFF" x $len

Unsigned 32-bit integers (ascending):

Pack or zero-pad to fixed length.

Preferred -- only 4 bytes:

pack('... N ...', ...)

Readable -- but 10 bytes:

sprintf('... %.10u ...', ...)

Signed two′s-complement 32-bit integers (ascending):

Bias to unsigned by xoring the sign bit, then treat as unsigned.

$subkey = pack('N',$number ^ (1 << 31));

Floating-point numbers (ascending):

This code assumes that floating-point numbers are represented in binary using IEEE format. Create a subroutine that packs a double in network order (big-endian).

BEGIN {my $big_endian =pack('N', 1) eqpack('L', 1);sub float_sort ($) {($big_endian ?pack 'd', $_[0] :reverse pack 'd', $_[0]) ^($_[0] < 0 ? "\xFF" x 8 :"\x80" . "\x00" x 7)}$subkey = float_sort($number);

Descending integers or floating-point numbers:

Negate the value, then use the appropriate one of the above.

B2. Extracting the operands from the sorted strings

This is the postprocessing pass (the second map executed).

@sorted = map RETRIEVE($_) =>sort => map ... => @data;

If all the subkeys have known length, use the total length:

Preferred for efficiency:

@sorted =map substr($_, $length) =>...

TMTOWTDI:

@sorted =map unpack("x$length A*",$_) => ...

If any of the subkeys has varying length, make sure that the last character in the complete packed sortkey is a null byte, then search for it from the right:

Preferred for efficiency:

@sorted = map substr($_,1 + rindex $_, "\0") => ...

TMTOWTDI:

@sorted =map (split /\0/)[-1] => ...@sorted = map /([^\0]+)$/ => ...

Appendix C: The Sort::Maker module

GO TO TOWN, URI! ...



總結(jié)

以上是生活随笔為你收集整理的Perl Sort的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

久久天天躁夜夜躁狠狠 | 久久国产精品_国产精品 | 少妇厨房愉情理9仑片视频 | 精品国偷自产在线视频 | 一区二区三区高清视频一 | 国产美女极度色诱视频www | 无码人妻丰满熟妇区毛片18 | 色欲av亚洲一区无码少妇 | 18无码粉嫩小泬无套在线观看 | 亚洲国产午夜精品理论片 | 久久久久久av无码免费看大片 | 日本熟妇人妻xxxxx人hd | 欧美兽交xxxx×视频 | 女人高潮内射99精品 | 久久综合九色综合97网 | 亚洲国产午夜精品理论片 | 性色欲情网站iwww九文堂 | 一本精品99久久精品77 | 国产真实伦对白全集 | 精品 日韩 国产 欧美 视频 | 77777熟女视频在线观看 а天堂中文在线官网 | 鲁一鲁av2019在线 | 内射欧美老妇wbb | 波多野结衣乳巨码无在线观看 | 国产一区二区不卡老阿姨 | 国内老熟妇对白xxxxhd | 精品成人av一区二区三区 | 国产极品美女高潮无套在线观看 | 骚片av蜜桃精品一区 | 国产亚洲欧美日韩亚洲中文色 | 精品成在人线av无码免费看 | 亚洲一区二区三区国产精华液 | 风流少妇按摩来高潮 | 97人妻精品一区二区三区 | 亚洲一区二区三区四区 | 熟妇人妻无码xxx视频 | 水蜜桃色314在线观看 | 少女韩国电视剧在线观看完整 | 亚洲欧美日韩国产精品一区二区 | 2020久久超碰国产精品最新 | 国产亚洲视频中文字幕97精品 | 内射老妇bbwx0c0ck | www成人国产高清内射 | 亚洲 高清 成人 动漫 | 亚洲 高清 成人 动漫 | 亚洲国产精品无码一区二区三区 | 国产手机在线αⅴ片无码观看 | 国产精品内射视频免费 | 亚洲国产高清在线观看视频 | 午夜精品久久久久久久 | 精品国产一区二区三区av 性色 | 国产无遮挡吃胸膜奶免费看 | 未满成年国产在线观看 | 欧美 日韩 人妻 高清 中文 | 国产av人人夜夜澡人人爽麻豆 | 九九在线中文字幕无码 | 偷窥村妇洗澡毛毛多 | 亚洲 另类 在线 欧美 制服 | 成人欧美一区二区三区黑人 | 少妇邻居内射在线 | 97久久国产亚洲精品超碰热 | 久久久www成人免费毛片 | 久久国内精品自在自线 | 日日干夜夜干 | 蜜桃臀无码内射一区二区三区 | 日本饥渴人妻欲求不满 | 成人性做爰aaa片免费看 | 成人欧美一区二区三区黑人 | 扒开双腿疯狂进出爽爽爽视频 | 国产人妻久久精品二区三区老狼 | 精品无码一区二区三区爱欲 | 成人动漫在线观看 | 亚洲精品国偷拍自产在线麻豆 | 无遮挡国产高潮视频免费观看 | 成人无码影片精品久久久 | 国产精品久久久久无码av色戒 | 久久久www成人免费毛片 | 久久精品国产日本波多野结衣 | 人人妻人人澡人人爽欧美一区九九 | 国产精品亚洲一区二区三区喷水 | 好爽又高潮了毛片免费下载 | 欧美午夜特黄aaaaaa片 | 国产极品视觉盛宴 | 中文精品无码中文字幕无码专区 | 色窝窝无码一区二区三区色欲 | 99视频精品全部免费免费观看 | 中文字幕无码免费久久9一区9 | 国产婷婷色一区二区三区在线 | 大胆欧美熟妇xx | 久久亚洲精品中文字幕无男同 | 激情亚洲一区国产精品 | 成人无码影片精品久久久 | 欧美性黑人极品hd | 1000部夫妻午夜免费 | 亚洲精品中文字幕久久久久 | 精品国产一区av天美传媒 | 色欲av亚洲一区无码少妇 | 日本精品人妻无码77777 天堂一区人妻无码 | 伦伦影院午夜理论片 | 国产精品国产自线拍免费软件 | 大色综合色综合网站 | 亚洲一区av无码专区在线观看 | 国产色xx群视频射精 | 亚洲人成网站色7799 | 日本大乳高潮视频在线观看 | 久久国产精品二国产精品 | 欧洲熟妇精品视频 | 67194成是人免费无码 | 青青青爽视频在线观看 | 久久久久久av无码免费看大片 | 麻豆国产丝袜白领秘书在线观看 | 玩弄人妻少妇500系列视频 | 国产精品亚洲一区二区三区喷水 | 熟女体下毛毛黑森林 | 理论片87福利理论电影 | 久久精品无码一区二区三区 | 国产情侣作爱视频免费观看 | 亚洲综合伊人久久大杳蕉 | 精品欧美一区二区三区久久久 | 国产精品无码久久av | 无码帝国www无码专区色综合 | 特大黑人娇小亚洲女 | 亚洲 日韩 欧美 成人 在线观看 | 粗大的内捧猛烈进出视频 | 国产精品国产三级国产专播 | 免费无码一区二区三区蜜桃大 | 西西人体www44rt大胆高清 | 99精品无人区乱码1区2区3区 | 欧美激情内射喷水高潮 | 日韩人妻无码中文字幕视频 | 麻豆精品国产精华精华液好用吗 | 成人精品视频一区二区 | 中文字幕无码视频专区 | 人妻少妇精品无码专区二区 | 99久久人妻精品免费二区 | 男女下面进入的视频免费午夜 | 亚洲熟妇自偷自拍另类 | 国产精品爱久久久久久久 | 亚洲日韩精品欧美一区二区 | 国产又爽又猛又粗的视频a片 | 中文字幕亚洲情99在线 | 国产色视频一区二区三区 | 久久99精品国产麻豆蜜芽 | 欧美乱妇无乱码大黄a片 | 樱花草在线社区www | 国产va免费精品观看 | 精品国产麻豆免费人成网站 | 国产情侣作爱视频免费观看 | 国产性生交xxxxx无码 | 日本乱人伦片中文三区 | 男女爱爱好爽视频免费看 | 中文字幕乱码亚洲无线三区 | 99久久精品午夜一区二区 | 国产农村妇女高潮大叫 | 男女作爱免费网站 | 精品一区二区不卡无码av | 粉嫩少妇内射浓精videos | 天堂亚洲2017在线观看 | 中文精品久久久久人妻不卡 | 久久久久99精品国产片 | 一个人免费观看的www视频 | 天天燥日日燥 | 荫蒂被男人添的好舒服爽免费视频 | 熟妇人妻无码xxx视频 | 久久这里只有精品视频9 | √8天堂资源地址中文在线 | 九九久久精品国产免费看小说 | 正在播放东北夫妻内射 | 黑人大群体交免费视频 | 欧美人与禽zoz0性伦交 | 老熟女乱子伦 | 清纯唯美经典一区二区 | 久久五月精品中文字幕 | 久久99精品国产.久久久久 | 又湿又紧又大又爽a视频国产 | 青青青爽视频在线观看 | 欧洲精品码一区二区三区免费看 | 岛国片人妻三上悠亚 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 欧美大屁股xxxxhd黑色 | 免费无码午夜福利片69 | 国产在线无码精品电影网 | 国产口爆吞精在线视频 | 国产成人无码a区在线观看视频app | 国产午夜亚洲精品不卡下载 | 精品 日韩 国产 欧美 视频 | 亚洲春色在线视频 | 人妻与老人中文字幕 | 久久久精品国产sm最大网站 | 亚洲va中文字幕无码久久不卡 | 综合人妻久久一区二区精品 | 久久五月精品中文字幕 | 国产亲子乱弄免费视频 | 成人精品天堂一区二区三区 | av无码电影一区二区三区 | 99在线 | 亚洲 | 国产熟妇另类久久久久 | 久久精品国产99久久6动漫 | 又大又黄又粗又爽的免费视频 | 99久久亚洲精品无码毛片 | 无码一区二区三区在线 | 免费人成网站视频在线观看 | 好屌草这里只有精品 | 国产美女精品一区二区三区 | 在线精品国产一区二区三区 | 亚洲人成人无码网www国产 | av香港经典三级级 在线 | 狂野欧美激情性xxxx | 女高中生第一次破苞av | aⅴ亚洲 日韩 色 图网站 播放 | 人妻与老人中文字幕 | 天堂一区人妻无码 | 国产精品久久国产精品99 | 成人无码精品1区2区3区免费看 | 国产97人人超碰caoprom | 一本久久a久久精品vr综合 | 国产乡下妇女做爰 | 色婷婷综合激情综在线播放 | 国产成人无码一二三区视频 | 天天躁日日躁狠狠躁免费麻豆 | 国产绳艺sm调教室论坛 | 激情国产av做激情国产爱 | 少妇愉情理伦片bd | 好爽又高潮了毛片免费下载 | 狠狠色噜噜狠狠狠7777奇米 | 久久国产精品偷任你爽任你 | 午夜精品一区二区三区的区别 | 色婷婷av一区二区三区之红樱桃 | 久久www免费人成人片 | 欧美精品无码一区二区三区 | 久久久亚洲欧洲日产国码αv | 麻豆成人精品国产免费 | 国产精品亚洲五月天高清 | 老头边吃奶边弄进去呻吟 | 亚洲欧美日韩国产精品一区二区 | 97精品国产97久久久久久免费 | 国产成人无码一二三区视频 | 欧美午夜特黄aaaaaa片 | 国产成人精品三级麻豆 | 色老头在线一区二区三区 | 国产国产精品人在线视 | 欧美一区二区三区视频在线观看 | 无码毛片视频一区二区本码 | 国产农村妇女高潮大叫 | 人人爽人人澡人人人妻 | 精品国产一区二区三区四区 | 国产成人精品视频ⅴa片软件竹菊 | 小sao货水好多真紧h无码视频 | 国产精品久久久一区二区三区 | 强开小婷嫩苞又嫩又紧视频 | 一个人免费观看的www视频 | 亚洲s色大片在线观看 | 自拍偷自拍亚洲精品10p | 99久久人妻精品免费一区 | 少妇性l交大片欧洲热妇乱xxx | 色欲久久久天天天综合网精品 | av人摸人人人澡人人超碰下载 | 亚洲精品成人福利网站 | 亚洲中文字幕无码中文字在线 | 国产亚洲tv在线观看 | 国内揄拍国内精品少妇国语 | 亚洲精品一区三区三区在线观看 | 奇米影视888欧美在线观看 | 国产办公室秘书无码精品99 | 精品国产国产综合精品 | 色婷婷av一区二区三区之红樱桃 | 午夜肉伦伦影院 | 少女韩国电视剧在线观看完整 | 亚洲娇小与黑人巨大交 | 熟妇激情内射com | www国产亚洲精品久久久日本 | 亚洲一区二区三区含羞草 | 日本饥渴人妻欲求不满 | 狠狠色噜噜狠狠狠7777奇米 | 亚洲精品久久久久中文第一幕 | 精品少妇爆乳无码av无码专区 | 无码国内精品人妻少妇 | 草草网站影院白丝内射 | 国产一区二区三区精品视频 | 国产麻豆精品一区二区三区v视界 | 亚洲狠狠婷婷综合久久 | 蜜臀aⅴ国产精品久久久国产老师 | 东北女人啪啪对白 | 欧美精品一区二区精品久久 | 国产成人无码av在线影院 | 日产精品高潮呻吟av久久 | 老子影院午夜伦不卡 | 日本丰满护士爆乳xxxx | 丁香啪啪综合成人亚洲 | 日韩精品无码一本二本三本色 | 国产人妻精品一区二区三区 | 欧美日韩一区二区三区自拍 | 午夜无码人妻av大片色欲 | 国産精品久久久久久久 | 亚洲成在人网站无码天堂 | 国产高潮视频在线观看 | 少妇激情av一区二区 | 夜夜高潮次次欢爽av女 | 日产国产精品亚洲系列 | 亚无码乱人伦一区二区 | 无码福利日韩神码福利片 | 午夜精品久久久久久久 | 久久五月精品中文字幕 | 精品国产一区二区三区四区 | 午夜精品久久久内射近拍高清 | 99久久婷婷国产综合精品青草免费 | 国产真实乱对白精彩久久 | 国产精品无码mv在线观看 | 欧美成人午夜精品久久久 | 亚洲国产精品无码久久久久高潮 | 欧美 日韩 人妻 高清 中文 | 精品欧美一区二区三区久久久 | 亚洲成在人网站无码天堂 | 一区二区传媒有限公司 | 99久久精品国产一区二区蜜芽 | 亚洲日韩中文字幕在线播放 | 久久国产自偷自偷免费一区调 | 久久精品视频在线看15 | 精品国产av色一区二区深夜久久 | 中文字幕乱码中文乱码51精品 | 1000部啪啪未满十八勿入下载 | 俺去俺来也在线www色官网 | 亚洲午夜无码久久 | 日本高清一区免费中文视频 | 波多野结衣乳巨码无在线观看 | 国产特级毛片aaaaaaa高清 | 国产精品99爱免费视频 | 性做久久久久久久免费看 | 亚洲欧洲中文日韩av乱码 | 国产色xx群视频射精 | 亚洲精品欧美二区三区中文字幕 | 久久久精品欧美一区二区免费 | 亚洲国产午夜精品理论片 | 国产成人精品久久亚洲高清不卡 | 久久久国产一区二区三区 | 一本无码人妻在中文字幕免费 | 亚洲精品中文字幕久久久久 | 精品人妻av区 | 超碰97人人做人人爱少妇 | 国产高潮视频在线观看 | 亚洲精品久久久久久一区二区 | 无码人妻出轨黑人中文字幕 | 国产精品永久免费视频 | 午夜精品久久久久久久 | а天堂中文在线官网 | 日韩av无码一区二区三区不卡 | 国产肉丝袜在线观看 | 亚洲欧洲日本无在线码 | 国产97人人超碰caoprom | 丰满肥臀大屁股熟妇激情视频 | 国内精品九九久久久精品 | 日韩少妇内射免费播放 | 亚洲人成网站在线播放942 | 欧美人与禽猛交狂配 | 鲁鲁鲁爽爽爽在线视频观看 | 国产真人无遮挡作爱免费视频 | 欧美放荡的少妇 | 亚洲区小说区激情区图片区 | 久久精品女人天堂av免费观看 | 日产精品高潮呻吟av久久 | 精品久久综合1区2区3区激情 | 国产精品亚洲一区二区三区喷水 | 久久久av男人的天堂 | 久久人人爽人人人人片 | 人人澡人人妻人人爽人人蜜桃 | 99国产精品白浆在线观看免费 | 精品国产一区av天美传媒 | 日日麻批免费40分钟无码 | 中文字幕无线码 | 给我免费的视频在线观看 | 51国偷自产一区二区三区 | 亚洲欧美日韩国产精品一区二区 | 婷婷丁香六月激情综合啪 | 亚洲欧美国产精品专区久久 | 麻豆国产97在线 | 欧洲 | 乱人伦人妻中文字幕无码久久网 | 全球成人中文在线 | 国产欧美熟妇另类久久久 | 国产精品亚洲专区无码不卡 | 国产精品久久久av久久久 | 一二三四在线观看免费视频 | 亚洲国产欧美日韩精品一区二区三区 | 最新国产麻豆aⅴ精品无码 | 成人无码视频在线观看网站 | 亚洲春色在线视频 | 欧美丰满熟妇xxxx性ppx人交 | 无套内谢的新婚少妇国语播放 | 国产性生大片免费观看性 | av无码久久久久不卡免费网站 | 国产人妻精品一区二区三区不卡 | 牲欲强的熟妇农村老妇女 | 午夜无码人妻av大片色欲 | 99久久亚洲精品无码毛片 | 国产一区二区三区影院 | 国产亚洲精品久久久ai换 | 国产女主播喷水视频在线观看 | 欧美日韩一区二区免费视频 | 无码人妻久久一区二区三区不卡 | a在线观看免费网站大全 | 国产精华av午夜在线观看 | 欧美日本免费一区二区三区 | 国产亚av手机在线观看 | 男女下面进入的视频免费午夜 | 色一情一乱一伦一区二区三欧美 | 欧美黑人巨大xxxxx | 国产午夜无码视频在线观看 | 亚洲色欲色欲天天天www | 老太婆性杂交欧美肥老太 | 十八禁视频网站在线观看 | 国产成人av免费观看 | 国产午夜手机精彩视频 | 国产卡一卡二卡三 | 亚洲成av人片在线观看无码不卡 | 成人精品视频一区二区 | 欧美自拍另类欧美综合图片区 | 内射巨臀欧美在线视频 | 精品国产麻豆免费人成网站 | 亚洲精品一区二区三区婷婷月 | 2019nv天堂香蕉在线观看 | 亚洲热妇无码av在线播放 | 国产精品18久久久久久麻辣 | 最新国产乱人伦偷精品免费网站 | 国产成人无码午夜视频在线观看 | 中文字幕无线码免费人妻 | 亚洲欧美日韩综合久久久 | 日韩欧美群交p片內射中文 | 老子影院午夜精品无码 | 人人妻人人澡人人爽人人精品 | 97无码免费人妻超级碰碰夜夜 | 亚洲日韩中文字幕在线播放 | 久久99精品久久久久婷婷 | 爽爽影院免费观看 | 国产午夜手机精彩视频 | 亚洲日韩乱码中文无码蜜桃臀网站 | 午夜性刺激在线视频免费 | a在线亚洲男人的天堂 | 久久综合久久自在自线精品自 | 99精品国产综合久久久久五月天 | 久久亚洲中文字幕精品一区 | 亚洲人成网站色7799 | 色婷婷综合中文久久一本 | 啦啦啦www在线观看免费视频 | 国产欧美精品一区二区三区 | 精品国产一区av天美传媒 | 亚洲 日韩 欧美 成人 在线观看 | 亚洲成av人片天堂网无码】 | 88国产精品欧美一区二区三区 | 国产偷抇久久精品a片69 | 波多野结衣一区二区三区av免费 | 婷婷五月综合缴情在线视频 | 窝窝午夜理论片影院 | 国产无av码在线观看 | 国产小呦泬泬99精品 | 成人精品视频一区二区三区尤物 | 日韩亚洲欧美中文高清在线 | 久久婷婷五月综合色国产香蕉 | 欧美zoozzooz性欧美 | 波多野结衣乳巨码无在线观看 | 人人妻人人澡人人爽欧美一区 | 久久午夜夜伦鲁鲁片无码免费 | 亚拍精品一区二区三区探花 | 无码吃奶揉捏奶头高潮视频 | 国产精品久久久久久久影院 | 国产真实乱对白精彩久久 | 人妻无码αv中文字幕久久琪琪布 | 久久精品国产大片免费观看 | 欧洲美熟女乱又伦 | 又大又硬又黄的免费视频 | 婷婷综合久久中文字幕蜜桃三电影 | 久久精品国产日本波多野结衣 | 国产无av码在线观看 | 久久人人97超碰a片精品 | 亚洲一区二区三区在线观看网站 | 中文精品久久久久人妻不卡 | 国产 浪潮av性色四虎 | 日韩精品乱码av一区二区 | 国产情侣作爱视频免费观看 | 国产精品无码一区二区桃花视频 | 国产极品美女高潮无套在线观看 | 亚洲成av人片天堂网无码】 | 白嫩日本少妇做爰 | 人人妻人人澡人人爽人人精品浪潮 | 亚洲日韩精品欧美一区二区 | 精品欧美一区二区三区久久久 | 精品一二三区久久aaa片 | 岛国片人妻三上悠亚 | 国产精品二区一区二区aⅴ污介绍 | 久久久久成人片免费观看蜜芽 | 午夜精品久久久久久久久 | 亚洲の无码国产の无码步美 | 成人免费视频视频在线观看 免费 | 亚洲欧美国产精品专区久久 | 亚洲最大成人网站 | 日韩精品无码一本二本三本色 | 国产无av码在线观看 | 国产精品内射视频免费 | 亚洲小说春色综合另类 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产另类ts人妖一区二区 | 亚洲色欲色欲欲www在线 | 久久国产精品萌白酱免费 | 鲁大师影院在线观看 | 又紧又大又爽精品一区二区 | 日本va欧美va欧美va精品 | 国产乱人偷精品人妻a片 | 两性色午夜视频免费播放 | 无码人妻久久一区二区三区不卡 | 亚洲乱码日产精品bd | 亚洲精品一区二区三区在线观看 | 国产午夜无码视频在线观看 | 综合激情五月综合激情五月激情1 | 精品无码一区二区三区的天堂 | 人妻无码久久精品人妻 | 7777奇米四色成人眼影 | 性欧美疯狂xxxxbbbb | 亚洲色在线无码国产精品不卡 | 国产精品欧美成人 | 熟妇人妻激情偷爽文 | 色窝窝无码一区二区三区色欲 | 亚洲国产欧美国产综合一区 | 国精产品一品二品国精品69xx | 国产凸凹视频一区二区 | 欧美日韩一区二区三区自拍 | aⅴ亚洲 日韩 色 图网站 播放 | 亚洲人成网站免费播放 | 夜先锋av资源网站 | 亚洲s码欧洲m码国产av | 亚拍精品一区二区三区探花 | 在线精品亚洲一区二区 | 国产高清av在线播放 | 少妇性俱乐部纵欲狂欢电影 | 欧美变态另类xxxx | 中文字幕无码乱人伦 | 国产精品亚洲专区无码不卡 | 在线视频网站www色 | 伊人久久大香线蕉亚洲 | 少妇人妻大乳在线视频 | 亚洲の无码国产の无码影院 | 亚洲欧美精品伊人久久 | 国产精品.xx视频.xxtv | 国产成人无码av在线影院 | 丰满少妇女裸体bbw | 无遮挡国产高潮视频免费观看 | 国产午夜手机精彩视频 | 草草网站影院白丝内射 | 成人精品一区二区三区中文字幕 | 老子影院午夜伦不卡 | 人妻体内射精一区二区三四 | 女人被男人爽到呻吟的视频 | 又粗又大又硬毛片免费看 | 欧美野外疯狂做受xxxx高潮 | 久久婷婷五月综合色国产香蕉 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 中文字幕无码日韩专区 | 一本色道婷婷久久欧美 | 日韩精品无码一区二区中文字幕 | 极品嫩模高潮叫床 | 无码人妻精品一区二区三区下载 | 无遮无挡爽爽免费视频 | 日本精品高清一区二区 | 青春草在线视频免费观看 | 亚洲精品鲁一鲁一区二区三区 | 人妻少妇精品视频专区 | 人妻少妇被猛烈进入中文字幕 | 女人色极品影院 | 任你躁在线精品免费 | 老子影院午夜精品无码 | 蜜臀av无码人妻精品 | 性欧美大战久久久久久久 | 色狠狠av一区二区三区 | 国内揄拍国内精品少妇国语 | 精品一区二区不卡无码av | 亚洲国产欧美国产综合一区 | 日韩精品无码一区二区中文字幕 | 麻花豆传媒剧国产免费mv在线 | 国产精品99爱免费视频 | 色综合久久88色综合天天 | 国产无av码在线观看 | 好男人社区资源 | 女人高潮内射99精品 | 精品一区二区不卡无码av | 亚洲中文字幕av在天堂 | 久久综合九色综合97网 | 国产办公室秘书无码精品99 | 性欧美videos高清精品 | 亚洲成a人片在线观看无码3d | 狂野欧美性猛xxxx乱大交 | 久久久久久久人妻无码中文字幕爆 | 欧美人与善在线com | 两性色午夜视频免费播放 | 成人免费无码大片a毛片 | а√资源新版在线天堂 | 亚洲国产成人a精品不卡在线 | 亚洲精品一区二区三区在线观看 | 国产人妻人伦精品1国产丝袜 | 国产精品美女久久久网av | 77777熟女视频在线观看 а天堂中文在线官网 | 亚洲精品国产第一综合99久久 | 国产亚洲欧美日韩亚洲中文色 | 狠狠躁日日躁夜夜躁2020 | 成人aaa片一区国产精品 | 成人亚洲精品久久久久软件 | 成人无码视频在线观看网站 | 蜜桃臀无码内射一区二区三区 | 成人三级无码视频在线观看 | 亚洲精品国偷拍自产在线观看蜜桃 | 免费无码午夜福利片69 | 欧美成人免费全部网站 | 成人免费无码大片a毛片 | 久久精品女人天堂av免费观看 | 亚洲精品无码人妻无码 | 欧美亚洲国产一区二区三区 | 国产精品亚洲专区无码不卡 | 国产免费久久精品国产传媒 | 亚洲色www成人永久网址 | 亚洲综合无码久久精品综合 | 中文字幕久久久久人妻 | 一本一道久久综合久久 | 日本精品人妻无码77777 天堂一区人妻无码 | 欧美性生交xxxxx久久久 | 无码免费一区二区三区 | 国产在线无码精品电影网 | 亚洲大尺度无码无码专区 | 中文字幕 人妻熟女 | 少妇邻居内射在线 | 国产精品久久国产三级国 | 久久久中文久久久无码 | 玩弄中年熟妇正在播放 | 精品无码一区二区三区的天堂 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产精品无码一区二区桃花视频 | 精品久久综合1区2区3区激情 | 亚洲成熟女人毛毛耸耸多 | 色综合久久中文娱乐网 | 久久国产精品萌白酱免费 | 少妇无码一区二区二三区 | 狠狠躁日日躁夜夜躁2020 | 亚洲啪av永久无码精品放毛片 | 亚洲色www成人永久网址 | 男女爱爱好爽视频免费看 | 男人的天堂2018无码 | 欧洲精品码一区二区三区免费看 | 三上悠亚人妻中文字幕在线 | www国产亚洲精品久久网站 | aⅴ亚洲 日韩 色 图网站 播放 | 午夜福利不卡在线视频 | 97久久精品无码一区二区 | 狠狠躁日日躁夜夜躁2020 | 又大又紧又粉嫩18p少妇 | 性开放的女人aaa片 | 大肉大捧一进一出好爽视频 | 亚洲一区av无码专区在线观看 | 黑森林福利视频导航 | 大色综合色综合网站 | 76少妇精品导航 | 国产三级精品三级男人的天堂 | 黑人巨大精品欧美一区二区 | 啦啦啦www在线观看免费视频 | 夜精品a片一区二区三区无码白浆 | 国产无套粉嫩白浆在线 | 夜夜夜高潮夜夜爽夜夜爰爰 | 色情久久久av熟女人妻网站 | 欧美日本精品一区二区三区 | 国产av一区二区精品久久凹凸 | 国产疯狂伦交大片 | 日本va欧美va欧美va精品 | 97久久精品无码一区二区 | 国产九九九九九九九a片 | 黑人粗大猛烈进出高潮视频 | 亚洲欧美日韩国产精品一区二区 | 成人欧美一区二区三区黑人免费 | 欧美日韩一区二区三区自拍 | 久久99精品国产麻豆蜜芽 | www国产亚洲精品久久久日本 | 88国产精品欧美一区二区三区 | 国产精品第一国产精品 | 成 人 免费观看网站 | 波多野结衣一区二区三区av免费 | 无码精品国产va在线观看dvd | 乱码午夜-极国产极内射 | 亚洲国产精华液网站w | 国产成人精品一区二区在线小狼 | 欧美放荡的少妇 | 日本熟妇浓毛 | 丰满诱人的人妻3 | 在线视频网站www色 | 久久精品国产一区二区三区肥胖 | 欧美亚洲国产一区二区三区 | 亚洲中文字幕无码一久久区 | 日本精品人妻无码77777 天堂一区人妻无码 | 成人精品视频一区二区 | 久久久久亚洲精品中文字幕 | 人妻中文无码久热丝袜 | 亚洲午夜无码久久 | 午夜熟女插插xx免费视频 | 国模大胆一区二区三区 | 久久人人爽人人爽人人片av高清 | 精品国产一区av天美传媒 | 欧美丰满老熟妇xxxxx性 | 久久天天躁狠狠躁夜夜免费观看 | 国产精品18久久久久久麻辣 | 亚洲国精产品一二二线 | 亚洲精品一区二区三区婷婷月 | 亚洲精品中文字幕 | 丰满少妇高潮惨叫视频 | 一本久道久久综合狠狠爱 | 97人妻精品一区二区三区 | 亚洲精品一区二区三区四区五区 | 成人片黄网站色大片免费观看 | 蜜桃无码一区二区三区 | 中文字幕乱码人妻无码久久 | 国产精品久久久久久亚洲影视内衣 | 免费无码的av片在线观看 | 亚洲码国产精品高潮在线 | 国产99久久精品一区二区 | 欧美日韩视频无码一区二区三 | 亚洲欧美日韩综合久久久 | 亚洲人交乣女bbw | 亚洲码国产精品高潮在线 | 天天摸天天透天天添 | 99久久无码一区人妻 | 久久亚洲a片com人成 | 丝袜美腿亚洲一区二区 | 亚洲国产精品成人久久蜜臀 | 精品无码一区二区三区爱欲 | 女人被男人躁得好爽免费视频 | 欧美日本免费一区二区三区 | 日日麻批免费40分钟无码 | 日本精品久久久久中文字幕 | 2019午夜福利不卡片在线 | 国产欧美亚洲精品a | 牲交欧美兽交欧美 | 国产一区二区三区影院 | 欧美野外疯狂做受xxxx高潮 | 啦啦啦www在线观看免费视频 | 成人性做爰aaa片免费看 | 久久熟妇人妻午夜寂寞影院 | 亚洲s码欧洲m码国产av | 丰满少妇弄高潮了www | 国产成人综合色在线观看网站 | 无码av免费一区二区三区试看 | 男女猛烈xx00免费视频试看 | 亚洲精品国产第一综合99久久 | 成人性做爰aaa片免费看 | 亚洲va欧美va天堂v国产综合 | 亚洲成a人片在线观看日本 | 亚洲熟妇色xxxxx欧美老妇 | 波多野结衣一区二区三区av免费 | 国内精品人妻无码久久久影院 | 国精产品一区二区三区 | 国内少妇偷人精品视频免费 | 激情综合激情五月俺也去 | 奇米影视7777久久精品 | 高潮毛片无遮挡高清免费视频 | 亚洲欧美日韩成人高清在线一区 | 亚洲热妇无码av在线播放 | 麻豆果冻传媒2021精品传媒一区下载 | 丰满妇女强制高潮18xxxx | 免费观看的无遮挡av | 亚洲中文字幕va福利 | 东北女人啪啪对白 | 两性色午夜免费视频 | 2020久久香蕉国产线看观看 | 1000部夫妻午夜免费 | 亚洲欧美综合区丁香五月小说 | 51国偷自产一区二区三区 | 岛国片人妻三上悠亚 | 亚洲啪av永久无码精品放毛片 | 亚洲中文字幕无码中字 | 国产亚洲精品久久久久久 | 精品亚洲成av人在线观看 | 性欧美疯狂xxxxbbbb | 最近的中文字幕在线看视频 | 亚洲成在人网站无码天堂 | 国产热a欧美热a在线视频 | 少妇愉情理伦片bd | 国产亚洲人成在线播放 | 婷婷丁香五月天综合东京热 | 国内丰满熟女出轨videos | 欧美日韩一区二区免费视频 | 无码纯肉视频在线观看 | 中文字幕亚洲情99在线 | 久久国产36精品色熟妇 | 无码人妻精品一区二区三区下载 | a在线亚洲男人的天堂 | 少妇高潮一区二区三区99 | 亚洲熟妇色xxxxx亚洲 | 亚洲熟熟妇xxxx | 兔费看少妇性l交大片免费 | 国产99久久精品一区二区 | 国产精品嫩草久久久久 | 欧美freesex黑人又粗又大 | 无码一区二区三区在线 | 成人性做爰aaa片免费看 | 亚洲の无码国产の无码步美 | 色爱情人网站 | 国产在线无码精品电影网 | 精品日本一区二区三区在线观看 | 国产真实夫妇视频 | 丰满人妻一区二区三区免费视频 | 内射后入在线观看一区 | 亚洲国产精品一区二区美利坚 | 少妇厨房愉情理9仑片视频 | 午夜丰满少妇性开放视频 | 国产性生大片免费观看性 | 在线成人www免费观看视频 | 日本www一道久久久免费榴莲 | 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲 欧美 激情 小说 另类 | 国产极品美女高潮无套在线观看 | 亚洲综合伊人久久大杳蕉 | 激情国产av做激情国产爱 | 色婷婷av一区二区三区之红樱桃 | 婷婷丁香六月激情综合啪 | 欧美丰满熟妇xxxx性ppx人交 | 久久亚洲a片com人成 | 精品少妇爆乳无码av无码专区 | 免费乱码人妻系列无码专区 | 男人扒开女人内裤强吻桶进去 | 国产精品a成v人在线播放 | 欧洲熟妇精品视频 | 亚洲精品午夜国产va久久成人 | 性做久久久久久久免费看 | 天天av天天av天天透 | 久久久中文久久久无码 | 亚洲精品www久久久 | 午夜精品久久久内射近拍高清 | 久久99精品久久久久久动态图 | 麻豆精产国品 | 夜精品a片一区二区三区无码白浆 | 好屌草这里只有精品 | 国产午夜视频在线观看 | 国产亚洲欧美在线专区 | 色婷婷欧美在线播放内射 | 内射老妇bbwx0c0ck | 精品久久久无码人妻字幂 | 亚洲熟熟妇xxxx | 国产人妻大战黑人第1集 | 狂野欧美性猛交免费视频 | 国产农村乱对白刺激视频 | 久久精品国产日本波多野结衣 | 婷婷六月久久综合丁香 | 亚洲国产精品毛片av不卡在线 | 久久久www成人免费毛片 | 久久这里只有精品视频9 | 亚洲一区二区三区在线观看网站 | 色五月丁香五月综合五月 | 夜夜高潮次次欢爽av女 | 六十路熟妇乱子伦 | 亚洲精品一区二区三区婷婷月 | 亚洲欧美精品伊人久久 | 伊人久久大香线焦av综合影院 | 精品乱码久久久久久久 | 久久精品无码一区二区三区 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 丰满人妻翻云覆雨呻吟视频 | 真人与拘做受免费视频 | 久久精品无码一区二区三区 | 中国女人内谢69xxxxxa片 | 牲欲强的熟妇农村老妇女视频 | 久久99精品久久久久久动态图 | 亚洲精品国产精品乱码不卡 | 鲁鲁鲁爽爽爽在线视频观看 | 高中生自慰www网站 | 久久www免费人成人片 | 人妻少妇精品久久 | 永久免费精品精品永久-夜色 | 在教室伦流澡到高潮hnp视频 | 日韩av无码一区二区三区不卡 | 人人超人人超碰超国产 | 精品国产精品久久一区免费式 | 精品成人av一区二区三区 | 黑人粗大猛烈进出高潮视频 | 日本欧美一区二区三区乱码 | 一本久久伊人热热精品中文字幕 | 欧美成人高清在线播放 | 国产真人无遮挡作爱免费视频 | 亚洲熟妇色xxxxx亚洲 | 99久久人妻精品免费二区 | 国产suv精品一区二区五 | 中文字幕无码日韩专区 | 国产香蕉尹人综合在线观看 | 欧美日韩综合一区二区三区 | 少妇厨房愉情理9仑片视频 | 亚洲中文字幕av在天堂 | 国内精品久久毛片一区二区 | 精品国精品国产自在久国产87 | 亚洲 激情 小说 另类 欧美 | 午夜无码人妻av大片色欲 | 丝袜 中出 制服 人妻 美腿 | 欧美乱妇无乱码大黄a片 | 欧美日韩色另类综合 | 午夜精品久久久内射近拍高清 | 国产精品内射视频免费 | 国产激情艳情在线看视频 | 无码吃奶揉捏奶头高潮视频 | 亚洲日本va中文字幕 | 日韩人妻无码一区二区三区久久99 | 国模大胆一区二区三区 | 日本熟妇大屁股人妻 | 丰满护士巨好爽好大乳 | 熟女少妇在线视频播放 | 亚洲成在人网站无码天堂 | 成人性做爰aaa片免费看不忠 | 国产精品福利视频导航 | 99久久人妻精品免费一区 | 无码国产色欲xxxxx视频 | 国产内射爽爽大片视频社区在线 | 久久久久人妻一区精品色欧美 | 国产亚洲精品久久久久久国模美 | 久久人人爽人人爽人人片ⅴ | 亚洲综合精品香蕉久久网 | 国内丰满熟女出轨videos | 久久久久久亚洲精品a片成人 | 无码人妻av免费一区二区三区 | 欧美日本精品一区二区三区 | 精品人妻人人做人人爽夜夜爽 | 国产精品久久久久久久影院 | 欧美精品免费观看二区 | 国产97在线 | 亚洲 | 国产精品va在线观看无码 | 好爽又高潮了毛片免费下载 | 少妇性l交大片欧洲热妇乱xxx | 婷婷色婷婷开心五月四房播播 | 亚洲精品成a人在线观看 | 5858s亚洲色大成网站www | 青青青手机频在线观看 | 欧美日本免费一区二区三区 | 欧美猛少妇色xxxxx | 免费看男女做好爽好硬视频 | 国产成人无码a区在线观看视频app | 无套内射视频囯产 | 精品国产av色一区二区深夜久久 | 久久精品国产一区二区三区 | 色综合天天综合狠狠爱 | 日韩精品无码免费一区二区三区 | 日本肉体xxxx裸交 | 国产精品久免费的黄网站 | 十八禁视频网站在线观看 | 国产疯狂伦交大片 | v一区无码内射国产 | 日本丰满护士爆乳xxxx | 欧美日韩色另类综合 | 黑森林福利视频导航 | 少妇人妻大乳在线视频 | 波多野结衣av一区二区全免费观看 | 久久久婷婷五月亚洲97号色 | 欧美人与牲动交xxxx | 无码人妻出轨黑人中文字幕 | 国产肉丝袜在线观看 | 真人与拘做受免费视频 | 一本色道婷婷久久欧美 | 国产舌乚八伦偷品w中 | 亚洲 欧美 激情 小说 另类 | 欧美精品无码一区二区三区 | 老熟女重囗味hdxx69 | 四十如虎的丰满熟妇啪啪 | 国产精品沙发午睡系列 | 国产艳妇av在线观看果冻传媒 | 男人扒开女人内裤强吻桶进去 | 妺妺窝人体色www婷婷 | 强开小婷嫩苞又嫩又紧视频 | 久久久久久久久888 | 少妇人妻偷人精品无码视频 | 一区二区三区乱码在线 | 欧洲 | 久久99精品国产.久久久久 | 亚洲国产一区二区三区在线观看 | 久久精品国产日本波多野结衣 | 人妻有码中文字幕在线 | 2019午夜福利不卡片在线 | 国产成人久久精品流白浆 | 色综合久久久久综合一本到桃花网 | 思思久久99热只有频精品66 | 最近的中文字幕在线看视频 | 在线精品国产一区二区三区 | 日本精品高清一区二区 | 亚洲欧美日韩成人高清在线一区 | 天堂亚洲2017在线观看 | 在线亚洲高清揄拍自拍一品区 | 久久久久亚洲精品男人的天堂 | 欧美熟妇另类久久久久久多毛 | 国产av无码专区亚洲awww | 红桃av一区二区三区在线无码av | 欧美激情一区二区三区成人 | 日日橹狠狠爱欧美视频 | 成人免费视频视频在线观看 免费 | 欧美日本精品一区二区三区 | 国产欧美熟妇另类久久久 | 国产成人无码av在线影院 | 亚洲成av人在线观看网址 | 亚洲精品一区二区三区大桥未久 | 日韩精品无码一区二区中文字幕 | 2019nv天堂香蕉在线观看 | 亚洲码国产精品高潮在线 | 久久人人爽人人爽人人片av高清 | 老司机亚洲精品影院无码 | 又大又硬又爽免费视频 | 国产亚洲精品久久久久久久久动漫 | 麻花豆传媒剧国产免费mv在线 | 精品人人妻人人澡人人爽人人 | 成年美女黄网站色大免费全看 | 亚洲色欲色欲欲www在线 | 久久精品国产一区二区三区 | 国产精品久久久久久亚洲毛片 | 国产精品久久久久7777 | 国产乱码精品一品二品 | 精品熟女少妇av免费观看 | 97色伦图片97综合影院 | 在线观看国产一区二区三区 | 偷窥村妇洗澡毛毛多 | 国产人妻精品午夜福利免费 | 免费无码午夜福利片69 | 亚洲男人av香蕉爽爽爽爽 | 青青青爽视频在线观看 | 国内精品久久久久久中文字幕 | 麻豆人妻少妇精品无码专区 | 麻豆精产国品 | 人妻体内射精一区二区三四 | 久久久国产精品无码免费专区 | 强伦人妻一区二区三区视频18 | 国产精品成人av在线观看 | 人人爽人人澡人人人妻 | 麻豆果冻传媒2021精品传媒一区下载 | 国产精品内射视频免费 | 人人澡人摸人人添 | www国产亚洲精品久久网站 | 国产精品沙发午睡系列 | 丰腴饱满的极品熟妇 | 欧美成人免费全部网站 | 欧美日韩亚洲国产精品 | 亚洲自偷精品视频自拍 | 又大又紧又粉嫩18p少妇 | 欧美精品免费观看二区 | 扒开双腿疯狂进出爽爽爽视频 | 久久久久99精品国产片 | 国产无遮挡又黄又爽又色 | 兔费看少妇性l交大片免费 | 思思久久99热只有频精品66 | 日韩av激情在线观看 | 亚洲国产欧美国产综合一区 | 自拍偷自拍亚洲精品被多人伦好爽 | 人妻有码中文字幕在线 | 久久久精品人妻久久影视 | 强奷人妻日本中文字幕 | 久久97精品久久久久久久不卡 | 精品国产一区二区三区av 性色 | 日本一卡二卡不卡视频查询 | 国产内射爽爽大片视频社区在线 | 亚洲色欲色欲欲www在线 | 色欲综合久久中文字幕网 | 欧美日韩视频无码一区二区三 | av无码不卡在线观看免费 | 激情五月综合色婷婷一区二区 | 国产精品igao视频网 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 国产一区二区三区四区五区加勒比 | 国产欧美精品一区二区三区 | 日日碰狠狠丁香久燥 | 网友自拍区视频精品 | 成人无码精品一区二区三区 | 午夜丰满少妇性开放视频 | 亚洲一区二区三区国产精华液 | 亚洲欧美精品aaaaaa片 | 亚洲男女内射在线播放 | 好男人www社区 | 任你躁国产自任一区二区三区 | 国产午夜手机精彩视频 | 领导边摸边吃奶边做爽在线观看 | 国产精品久久国产三级国 | 少妇激情av一区二区 | 色欲av亚洲一区无码少妇 | 久久久久久a亚洲欧洲av冫 | 麻豆成人精品国产免费 | 麻豆国产人妻欲求不满谁演的 | 成人欧美一区二区三区黑人免费 | 欧美丰满老熟妇xxxxx性 | 久久久亚洲欧洲日产国码αv | 国产精品久久久久久久影院 | 伊人久久婷婷五月综合97色 | 亚洲色成人中文字幕网站 | 免费播放一区二区三区 | 又大又硬又黄的免费视频 | 成人片黄网站色大片免费观看 | 在线播放免费人成毛片乱码 | 狠狠色噜噜狠狠狠狠7777米奇 | 一个人看的www免费视频在线观看 | 青青青爽视频在线观看 | 大胆欧美熟妇xx | 少妇被黑人到高潮喷出白浆 | 亚洲一区二区三区偷拍女厕 | 亚洲七七久久桃花影院 | 欧美激情综合亚洲一二区 | 麻豆md0077饥渴少妇 | 精品无人国产偷自产在线 | 亚洲一区二区三区国产精华液 | 久久久久av无码免费网 | 国产欧美亚洲精品a | 领导边摸边吃奶边做爽在线观看 | 天堂亚洲2017在线观看 | 老子影院午夜伦不卡 | 亚洲色无码一区二区三区 | 久久精品一区二区三区四区 | 久久人人爽人人爽人人片ⅴ | 性欧美熟妇videofreesex | 狠狠色噜噜狠狠狠7777奇米 | 欧美国产日韩亚洲中文 | 国产精品美女久久久久av爽李琼 | 欧美日本免费一区二区三区 | 欧美 日韩 亚洲 在线 | 99久久人妻精品免费一区 | 国产 浪潮av性色四虎 | 亚洲人亚洲人成电影网站色 | 亚洲熟女一区二区三区 | 极品尤物被啪到呻吟喷水 | 国产人妻大战黑人第1集 | 天天摸天天碰天天添 | 中文字幕精品av一区二区五区 | 无码人妻精品一区二区三区不卡 | 人人澡人人透人人爽 | 99久久精品无码一区二区毛片 | 水蜜桃色314在线观看 | 国产在线精品一区二区三区直播 | 18禁黄网站男男禁片免费观看 | 国内少妇偷人精品视频免费 | 夜夜影院未满十八勿进 | 成 人 免费观看网站 | 沈阳熟女露脸对白视频 | 成熟人妻av无码专区 | 十八禁真人啪啪免费网站 | 麻豆md0077饥渴少妇 | 丰满人妻一区二区三区免费视频 | 日韩精品无码一本二本三本色 | 中文字幕精品av一区二区五区 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 四虎4hu永久免费 | 波多野结衣av在线观看 | 人妻天天爽夜夜爽一区二区 | 美女极度色诱视频国产 | 精品乱码久久久久久久 | 天堂一区人妻无码 | 亚洲熟悉妇女xxx妇女av | 色婷婷综合激情综在线播放 | 国内精品人妻无码久久久影院蜜桃 | 男女作爱免费网站 | 日本乱人伦片中文三区 | 无码福利日韩神码福利片 | 丰满人妻被黑人猛烈进入 | a在线观看免费网站大全 | 午夜理论片yy44880影院 | 成人免费视频在线观看 | 国产精品办公室沙发 | 亚洲成av人综合在线观看 | 日韩精品一区二区av在线 | 国产熟妇高潮叫床视频播放 | 中文亚洲成a人片在线观看 | 国产综合色产在线精品 | 日韩人妻系列无码专区 | 激情爆乳一区二区三区 | 国产精品高潮呻吟av久久 | 日韩亚洲欧美精品综合 | 搡女人真爽免费视频大全 | 两性色午夜免费视频 | www一区二区www免费 | 亚洲色欲久久久综合网东京热 | 一本大道久久东京热无码av | 狠狠色色综合网站 | 中文精品久久久久人妻不卡 | 真人与拘做受免费视频一 | 无码精品国产va在线观看dvd | 亚洲区欧美区综合区自拍区 | 97无码免费人妻超级碰碰夜夜 | 精品偷自拍另类在线观看 | 日本成熟视频免费视频 | 东京无码熟妇人妻av在线网址 | 日韩精品无码一区二区中文字幕 | 国产亚av手机在线观看 | av人摸人人人澡人人超碰下载 | 欧美成人免费全部网站 | 精品人妻av区 | 大色综合色综合网站 | 一本色道久久综合亚洲精品不卡 | 男女作爱免费网站 | 国产精品久久久久9999小说 | 久久午夜夜伦鲁鲁片无码免费 | 亚洲第一无码av无码专区 | 无码精品人妻一区二区三区av | 无码毛片视频一区二区本码 | 任你躁在线精品免费 | 欧洲精品码一区二区三区免费看 | 国产乱人伦av在线无码 | 国产真人无遮挡作爱免费视频 | 日日噜噜噜噜夜夜爽亚洲精品 | 九九久久精品国产免费看小说 | 亚洲国产精品久久久天堂 | 天天摸天天碰天天添 | 色综合视频一区二区三区 | 综合激情五月综合激情五月激情1 | 超碰97人人射妻 | 丰满人妻精品国产99aⅴ | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 1000部啪啪未满十八勿入下载 | 黑人大群体交免费视频 | 亚洲成在人网站无码天堂 | 久久国内精品自在自线 | 久久久www成人免费毛片 | www国产亚洲精品久久久日本 | 亚洲国产欧美国产综合一区 | 成人无码视频免费播放 | 国内少妇偷人精品视频免费 | 国产成人综合色在线观看网站 | 疯狂三人交性欧美 | 欧美性猛交xxxx富婆 | 在线а√天堂中文官网 | 久久国产自偷自偷免费一区调 | 精品国产一区二区三区四区 | 少妇被粗大的猛进出69影院 | 亚洲啪av永久无码精品放毛片 | 97夜夜澡人人双人人人喊 | 中文字幕+乱码+中文字幕一区 | 国产一区二区三区日韩精品 | 麻豆国产人妻欲求不满谁演的 | 沈阳熟女露脸对白视频 | 欧美性色19p | 国产亚洲精品久久久久久 | 国产成人精品一区二区在线小狼 | 欧美日韩色另类综合 | 亚洲日本va午夜在线电影 | 亚洲gv猛男gv无码男同 | 亚洲国产精品久久久久久 | 国产人妻人伦精品 | 99riav国产精品视频 | 青春草在线视频免费观看 | 亚洲精品久久久久中文第一幕 | 国产成人无码a区在线观看视频app | 又大又黄又粗又爽的免费视频 | 欧美性猛交xxxx富婆 | 蜜桃视频插满18在线观看 | 中文字幕+乱码+中文字幕一区 | 亚洲狠狠婷婷综合久久 | 国产又爽又黄又刺激的视频 | 国内揄拍国内精品少妇国语 | 国产 精品 自在自线 | 无遮挡啪啪摇乳动态图 | 亚洲中文字幕久久无码 | 亚洲精品综合一区二区三区在线 | 在线观看国产一区二区三区 | 999久久久国产精品消防器材 | 中文字幕无码免费久久99 | 任你躁国产自任一区二区三区 | 一本一道久久综合久久 | 国产精品第一国产精品 | 国产人妖乱国产精品人妖 | 亚洲一区二区三区香蕉 | 又紧又大又爽精品一区二区 | 双乳奶水饱满少妇呻吟 | 亚洲男人av天堂午夜在 | 国产精品久久久一区二区三区 | 国产偷自视频区视频 | 中文字幕无线码免费人妻 | 纯爱无遮挡h肉动漫在线播放 | 中文字幕亚洲情99在线 | 老子影院午夜精品无码 | 国产69精品久久久久app下载 | 天天燥日日燥 | 男女下面进入的视频免费午夜 | 最近中文2019字幕第二页 | 国产免费无码一区二区视频 | 精品久久综合1区2区3区激情 | 蜜桃臀无码内射一区二区三区 | 婷婷丁香五月天综合东京热 | 一本大道久久东京热无码av | 综合激情五月综合激情五月激情1 | 亚洲成a人片在线观看日本 | 性欧美疯狂xxxxbbbb | 大肉大捧一进一出视频出来呀 | 亚洲色成人中文字幕网站 | 亚洲精品国产a久久久久久 | 免费观看激色视频网站 | 中文字幕精品av一区二区五区 | 久久国语露脸国产精品电影 | 亚洲色偷偷偷综合网 | 国产熟妇高潮叫床视频播放 | 国产欧美熟妇另类久久久 | 国产综合久久久久鬼色 | 国产精品亚洲综合色区韩国 | 久久国内精品自在自线 | 两性色午夜视频免费播放 | 国产疯狂伦交大片 | 免费无码av一区二区 | 日韩 欧美 动漫 国产 制服 | 色婷婷综合中文久久一本 | 特级做a爰片毛片免费69 | 丝袜 中出 制服 人妻 美腿 | 久久综合网欧美色妞网 | 中文字幕+乱码+中文字幕一区 | 人人妻在人人 | 国产精品福利视频导航 | 精品久久久无码中文字幕 | 人妻中文无码久热丝袜 | 亚洲精品中文字幕乱码 | 精品欧洲av无码一区二区三区 | 在教室伦流澡到高潮hnp视频 | 国产成人综合美国十次 | 亚洲人成网站色7799 | 亚洲码国产精品高潮在线 | 澳门永久av免费网站 | 久久人妻内射无码一区三区 | 国产精品国产自线拍免费软件 | 少妇邻居内射在线 | 亚洲国产日韩a在线播放 | 天天拍夜夜添久久精品大 | 亚洲国产成人a精品不卡在线 | 国产激情无码一区二区app | 亚洲aⅴ无码成人网站国产app | 久久国产精品萌白酱免费 | 中文字幕 亚洲精品 第1页 | 男女爱爱好爽视频免费看 | 亚洲综合无码一区二区三区 | 亚洲成av人在线观看网址 | 亚洲色欲久久久综合网东京热 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 国产精品a成v人在线播放 | 国产午夜精品一区二区三区嫩草 | 成人无码精品1区2区3区免费看 | 无码精品人妻一区二区三区av | 欧美一区二区三区 | 久久精品中文闷骚内射 | 欧美日韩视频无码一区二区三 | 性欧美牲交xxxxx视频 | 性啪啪chinese东北女人 | 欧美亚洲国产一区二区三区 | 成人免费无码大片a毛片 | 精品无人区无码乱码毛片国产 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产在线aaa片一区二区99 | 男人的天堂av网站 | 1000部夫妻午夜免费 | 亚洲精品午夜国产va久久成人 | 国产乱子伦视频在线播放 | 天下第一社区视频www日本 | 最近的中文字幕在线看视频 | 2020久久超碰国产精品最新 | 装睡被陌生人摸出水好爽 | 老头边吃奶边弄进去呻吟 | 在线观看欧美一区二区三区 | 国产精品久久久一区二区三区 | 99久久精品国产一区二区蜜芽 | 精品人妻人人做人人爽夜夜爽 | 国产另类ts人妖一区二区 | 任你躁在线精品免费 | 国产美女精品一区二区三区 | 色欲久久久天天天综合网精品 | 国产午夜福利100集发布 | 久久人人爽人人人人片 | 国产精品无码一区二区桃花视频 | 女高中生第一次破苞av | 欧美午夜特黄aaaaaa片 | 亚洲欧洲日本综合aⅴ在线 | 粗大的内捧猛烈进出视频 | 国产真实乱对白精彩久久 | 国产成人无码av片在线观看不卡 | 未满小14洗澡无码视频网站 | 国产亚av手机在线观看 | 最近免费中文字幕中文高清百度 | 国产人妻精品午夜福利免费 | 中文字幕无线码 | 欧美35页视频在线观看 | 色偷偷人人澡人人爽人人模 | 十八禁真人啪啪免费网站 | 亚洲精品一区三区三区在线观看 | 国产在线精品一区二区高清不卡 | 性做久久久久久久久 | 国产网红无码精品视频 | 亚洲精品国产精品乱码视色 | 国产午夜无码视频在线观看 | 久久久中文久久久无码 | 国产疯狂伦交大片 | 美女扒开屁股让男人桶 | 一本久久a久久精品亚洲 | 人人澡人人妻人人爽人人蜜桃 | 国产人妻精品一区二区三区 | 欧美刺激性大交 | 67194成是人免费无码 | 东京一本一道一二三区 | 国内精品九九久久久精品 | 色综合视频一区二区三区 | 亚洲中文字幕无码中文字在线 | 日韩成人一区二区三区在线观看 | 麻豆人妻少妇精品无码专区 | 国产又爽又猛又粗的视频a片 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 久久zyz资源站无码中文动漫 | 国产成人精品三级麻豆 | 国产精品久久久久无码av色戒 | 成人欧美一区二区三区 | 国语自产偷拍精品视频偷 | 国产亚洲精品久久久久久国模美 | 日韩亚洲欧美中文高清在线 | 国产特级毛片aaaaaa高潮流水 | 四虎永久在线精品免费网址 | 中文字幕无线码 | 国产乡下妇女做爰 | 伦伦影院午夜理论片 | 一本久道高清无码视频 | 日本免费一区二区三区最新 | 大地资源网第二页免费观看 | 亚洲色在线无码国产精品不卡 | 宝宝好涨水快流出来免费视频 | 日日鲁鲁鲁夜夜爽爽狠狠 | 天下第一社区视频www日本 | 国产精品欧美成人 | 狂野欧美性猛xxxx乱大交 | 熟妇女人妻丰满少妇中文字幕 | 国产 精品 自在自线 | 一个人免费观看的www视频 | 午夜熟女插插xx免费视频 | 无码福利日韩神码福利片 | 国产猛烈高潮尖叫视频免费 | 九九久久精品国产免费看小说 | 九九久久精品国产免费看小说 | 波多野结衣一区二区三区av免费 | 波多野结衣乳巨码无在线观看 | av人摸人人人澡人人超碰下载 | 亚洲自偷自偷在线制服 | 日本精品久久久久中文字幕 | 18禁黄网站男男禁片免费观看 | 中文字幕 人妻熟女 | 在线a亚洲视频播放在线观看 | 国内精品久久毛片一区二区 | 动漫av网站免费观看 | 色噜噜亚洲男人的天堂 | 99久久精品无码一区二区毛片 | 亚洲精品无码人妻无码 | 日日碰狠狠躁久久躁蜜桃 | 国产精品无码一区二区三区不卡 | 在线播放亚洲第一字幕 | 精品国产一区二区三区av 性色 | 国产精品亚洲一区二区三区喷水 | 无码国产乱人伦偷精品视频 | 少妇性俱乐部纵欲狂欢电影 | 精品国产国产综合精品 | 亚洲成av人片在线观看无码不卡 | 欧美黑人乱大交 | 黑人巨大精品欧美黑寡妇 | 亚洲中文字幕乱码av波多ji | 免费人成网站视频在线观看 | 久久国内精品自在自线 | 欧美日韩综合一区二区三区 | 黑人巨大精品欧美黑寡妇 | 亚洲熟妇色xxxxx亚洲 | 装睡被陌生人摸出水好爽 | 四虎国产精品免费久久 | 国产日产欧产精品精品app | 2019nv天堂香蕉在线观看 | 国产内射爽爽大片视频社区在线 | 久久97精品久久久久久久不卡 | 国产精品毛片一区二区 | 纯爱无遮挡h肉动漫在线播放 | 国产女主播喷水视频在线观看 | 四虎国产精品一区二区 | 亚洲精品一区二区三区大桥未久 | 国产亚洲精品久久久久久大师 | 纯爱无遮挡h肉动漫在线播放 | 好爽又高潮了毛片免费下载 | 97无码免费人妻超级碰碰夜夜 | 激情亚洲一区国产精品 | 久久国语露脸国产精品电影 | 亚洲中文字幕在线无码一区二区 | 国产香蕉97碰碰久久人人 | 国产农村乱对白刺激视频 | 亚洲一区二区三区在线观看网站 | 奇米影视7777久久精品人人爽 | 正在播放老肥熟妇露脸 | 人妻无码αv中文字幕久久琪琪布 | 国产午夜视频在线观看 | 人妻与老人中文字幕 | 国产精品va在线播放 | 男女猛烈xx00免费视频试看 | 国产成人综合在线女婷五月99播放 | 国产精品美女久久久久av爽李琼 | 成在人线av无码免费 | 亚洲中文字幕久久无码 | 国产亚洲精品精品国产亚洲综合 | 国产人妻精品一区二区三区 | 曰本女人与公拘交酡免费视频 | 无码一区二区三区在线观看 | 全球成人中文在线 | 亚洲色偷偷偷综合网 | 亚洲综合伊人久久大杳蕉 | 少妇无套内谢久久久久 | 爆乳一区二区三区无码 | 亚拍精品一区二区三区探花 | 精品偷自拍另类在线观看 | 国产成人综合在线女婷五月99播放 | 人妻有码中文字幕在线 | √8天堂资源地址中文在线 | 一本久久a久久精品vr综合 | 亚洲色成人中文字幕网站 | 国产亚洲人成a在线v网站 | 中文字幕无码乱人伦 | 久久精品国产一区二区三区肥胖 | 欧美人与牲动交xxxx | 中文无码精品a∨在线观看不卡 | 亚洲国产成人a精品不卡在线 | 婷婷色婷婷开心五月四房播播 | 日本一卡2卡3卡四卡精品网站 | 自拍偷自拍亚洲精品被多人伦好爽 | 日韩av无码一区二区三区不卡 | 国产人妖乱国产精品人妖 | 丝袜人妻一区二区三区 | 国产97人人超碰caoprom | 亚洲熟女一区二区三区 | 偷窥村妇洗澡毛毛多 | 自拍偷自拍亚洲精品10p | 一本久久a久久精品vr综合 | 欧美国产日韩久久mv | 任你躁国产自任一区二区三区 | 国产精品嫩草久久久久 | 亚洲精品一区二区三区婷婷月 | 熟妇人妻中文av无码 | 欧美放荡的少妇 | 婷婷丁香五月天综合东京热 | 中文字幕 亚洲精品 第1页 | 久久久久久av无码免费看大片 | 午夜精品久久久内射近拍高清 | 国产真实乱对白精彩久久 | 美女极度色诱视频国产 | 高潮毛片无遮挡高清免费 | 精品一二三区久久aaa片 | 欧美性猛交xxxx富婆 | 未满成年国产在线观看 | 色五月丁香五月综合五月 | 永久免费观看美女裸体的网站 | 色一情一乱一伦一视频免费看 | 99在线 | 亚洲 | 国产精品亚洲专区无码不卡 | 久久精品女人天堂av免费观看 | 国产 精品 自在自线 | 亚洲人成影院在线观看 | 久久亚洲中文字幕精品一区 | 国产亚洲精品久久久ai换 | 人妻少妇精品视频专区 | 丝袜人妻一区二区三区 | 国产精品多人p群无码 | 色综合久久久无码中文字幕 | 少妇邻居内射在线 | 无码人妻久久一区二区三区不卡 | 国产午夜无码精品免费看 | 在线看片无码永久免费视频 | 亚洲午夜无码久久 | 色情久久久av熟女人妻网站 | 一本久久a久久精品亚洲 | 久久久av男人的天堂 | 精品成在人线av无码免费看 | 国产美女精品一区二区三区 | 奇米影视7777久久精品人人爽 | 亚洲日本va中文字幕 | 国精品人妻无码一区二区三区蜜柚 | 亚洲国产精品久久久久久 | 日韩av无码中文无码电影 | 帮老师解开蕾丝奶罩吸乳网站 | 久久99精品国产麻豆蜜芽 | 国产精品人妻一区二区三区四 | 麻豆国产人妻欲求不满 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产成人午夜福利在线播放 | 欧美黑人性暴力猛交喷水 | 国内少妇偷人精品视频免费 | 国产情侣作爱视频免费观看 | 中文字幕日韩精品一区二区三区 | 99riav国产精品视频 | 亚洲国产精品无码一区二区三区 | 亚洲精品国产精品乱码不卡 | 国产又粗又硬又大爽黄老大爷视 | 狠狠噜狠狠狠狠丁香五月 | 精品无码一区二区三区爱欲 | 国产又粗又硬又大爽黄老大爷视 | 六十路熟妇乱子伦 | 国产亚洲精品久久久久久 | 少妇性l交大片欧洲热妇乱xxx | 久久亚洲中文字幕精品一区 | 午夜精品一区二区三区的区别 | 国产黄在线观看免费观看不卡 | 精品人人妻人人澡人人爽人人 | 青春草在线视频免费观看 | 18禁黄网站男男禁片免费观看 | 国产精品久久久久久亚洲毛片 | 99国产欧美久久久精品 | 女人高潮内射99精品 | 人人澡人人妻人人爽人人蜜桃 | 天天av天天av天天透 | 人人澡人人透人人爽 | 伦伦影院午夜理论片 | 国产人妖乱国产精品人妖 | 一本大道久久东京热无码av | 麻豆果冻传媒2021精品传媒一区下载 | 噜噜噜亚洲色成人网站 | 国产人妻大战黑人第1集 | 久久成人a毛片免费观看网站 | 国产精品欧美成人 | 狂野欧美激情性xxxx | 人妻aⅴ无码一区二区三区 | 日韩在线不卡免费视频一区 | 三上悠亚人妻中文字幕在线 | 国产午夜视频在线观看 | 中文字幕无码免费久久9一区9 | 99在线 | 亚洲 | 亚洲 激情 小说 另类 欧美 | 久久国产精品_国产精品 | 天天躁日日躁狠狠躁免费麻豆 | 精品欧洲av无码一区二区三区 | 奇米影视7777久久精品 | 领导边摸边吃奶边做爽在线观看 | 亚洲精品一区二区三区四区五区 | 久久五月精品中文字幕 | 精品无码一区二区三区爱欲 | 99精品国产综合久久久久五月天 | 狠狠色噜噜狠狠狠狠7777米奇 | 亚洲大尺度无码无码专区 | 国产亚洲人成a在线v网站 | 青青青爽视频在线观看 | 老司机亚洲精品影院 | 亚洲人成网站色7799 | 成人免费无码大片a毛片 | 熟妇人妻中文av无码 | 动漫av一区二区在线观看 | 夜精品a片一区二区三区无码白浆 | 日本欧美一区二区三区乱码 | 国产肉丝袜在线观看 | 色一情一乱一伦 | 国内揄拍国内精品人妻 | 国产日产欧产精品精品app | 国产精品香蕉在线观看 | 亚洲中文字幕无码中字 | 又色又爽又黄的美女裸体网站 | 亚洲色欲色欲天天天www | 免费看男女做好爽好硬视频 | 精品久久久无码中文字幕 | 国产精品18久久久久久麻辣 | 国产综合色产在线精品 | 欧美日韩亚洲国产精品 | 亚洲 日韩 欧美 成人 在线观看 | 伊人久久大香线蕉亚洲 | 在线а√天堂中文官网 | 国产精品沙发午睡系列 | 狠狠色噜噜狠狠狠7777奇米 | 乱码av麻豆丝袜熟女系列 | 国产精品久免费的黄网站 | 中文字幕无码免费久久9一区9 | 无码播放一区二区三区 | 精品亚洲成av人在线观看 | 精品国产一区二区三区四区 | 国内精品人妻无码久久久影院蜜桃 | 国精品人妻无码一区二区三区蜜柚 | 精品亚洲成av人在线观看 | 亚洲国产av美女网站 | 亚洲日本va午夜在线电影 | 成人精品天堂一区二区三区 | 老熟女乱子伦 | 亚洲国产精品毛片av不卡在线 | 人人澡人人妻人人爽人人蜜桃 | 中文字幕无码日韩欧毛 | 久久久久久九九精品久 | 午夜福利电影 | 伦伦影院午夜理论片 | 中文精品久久久久人妻不卡 | 欧美老妇交乱视频在线观看 | 全球成人中文在线 | 波多野42部无码喷潮在线 | 国産精品久久久久久久 | 亚洲热妇无码av在线播放 | 99久久婷婷国产综合精品青草免费 | 无码国产乱人伦偷精品视频 | 一二三四社区在线中文视频 | 色一情一乱一伦一区二区三欧美 | 国产精品无码一区二区桃花视频 |