超碰91资源站-超碰97豆花-超碰97人妻-超碰97人人干-超碰97人人香蕉-超碰97天天操-超碰97在线资源站-超碰97资源站共享-超碰97资源站总站-超碰aa在线91-超碰av操-超碰爱爱

半岛外围网上直营

深度剖析Java中的Lambda表達式

原創(chuàng)|行業(yè)資訊|編輯:郝浩|2017-08-11 17:52:08.000|閱讀 1097 次

概述:本文將從字節(jié)碼(Bytecode)的級別研究Lambda表達式是如何工作的,以及如何將它與getter、setter和其它技巧組合起來的。

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

在本文中,我們將介紹Java 8中Lambda表達式的一些鮮為人知的技巧及其局限性,其主要受眾包括中高級Java開發(fā)人員、研究人員和工具編寫者。在這里我們將只使用公共Java API而不使用com.sun和其它的內(nèi)部類,因此代碼可以在不同的JVM中實現(xiàn)。

快速介紹


Lambda表達式在Java 8中被引入,作為一種實現(xiàn)匿名函數(shù)的方法,在某些情況下,可作為匿名類的替代方案。在字節(jié)碼(Bytecode)的級別中,Lambda表達式用invokedynamic指令替代,該指令能夠簡化JVM上動態(tài)類型語言的編譯器和運行時系統(tǒng)的實現(xiàn)。其delegates類能夠調(diào)用Lambda主體內(nèi)所定義的代碼的實例。

例如,我們有以下代碼:

void printElements(List<String> strings){
    strings.forEach(item -> System.out.println("Item = %s", item));
}

這段代碼由Java編譯器編譯后成為這樣:

private static void lambda_forEach(String item) { //generated by Java compiler
    System.out.println("Item = %s", item);
}
private static CallSite bootstrapLambda(Lookup lookup, String name, MethodType type) { //
    //lookup = provided by VM
    //name = "lambda_forEach", provided by VM
    //type = String -> void
    MethodHandle lambdaImplementation = lookup.findStatic(lookup.lookupClass(), name, type);
    return LambdaMetafactory.metafactory(lookup,
        "accept",
        MethodType.methodType(Consumer.class), //signature of lambda factory
        MethodType.methodType(void.class, Object.class), //signature of method Consumer.accept after type erasure  
        lambdaImplementation, //reference to method with lambda body
        type);
}
void printElements(List < String > strings) {
    Consumer < String > lambda = invokedynamic# bootstrapLambda, #lambda_forEach
    strings.forEach(lambda);
}

invokedynamic指令可以將其粗略地表達為以下代碼:

private static CallSite cs;
void printElements(List < String > strings) {
    Consumer < String > lambda;
    //begin invokedynamic
    if (cs == null)
        cs = bootstrapLambda(MethodHandles.lookup(), "lambda_forEach", MethodType.methodType(void.class, String.class));
    lambda = (Consumer < String > ) cs.getTarget().invokeExact();
    //end invokedynamic
    strings.forEach(lambda);
}

正如你所看到的,LambdaMetafactory用于生成某個目標函數(shù)(匿名類)在工廠模式下的調(diào)用點(call site)。而工廠模式會返回這個函數(shù)接口在使用invokeExact的實現(xiàn)結(jié)果。如果Lambda附加了變量,那么invokeExact將會把這些變量作為實際參數(shù)。

在Oracle JRE 8中,metafactory會使用,通過實現(xiàn)函數(shù)接口的方式,動態(tài)生成一個Java類。如果Lambda表達式包含外部變量,則可以在生成類中添加附加字段。這種方法類似于Java語言中的匿名類,但有以下的不同點:

  • 匿名類是由Java編譯器在編譯時生成的。
  • 而Lambda實現(xiàn)的類是由JVM在運行時生成的。

注意:metafactory的實現(xiàn)依賴于JVM供應(yīng)商和版本

invokedynamic指令并不只用于Java中的Lambda表達式,該指令的引入主要是為了JVM之上動態(tài)語言的運行。Nashorn,Java開箱即用的下一代JavaScript引擎中大量地使用了這個指令。

在本文的后面部分,我們將重點討論LambdaMetafactory類及其功能。本文的下一節(jié)是基于假設(shè)你完全理解了metafactory方法的工作原理和方法。

關(guān)于Lambda的技巧


在本節(jié)中我們將介紹如何在日常任務(wù)中使用Lambda的動態(tài)構(gòu)建。

Lambda與受檢查異常(Checked Exception

并不是Java提供的所有函數(shù)接口都支持受檢查異常。是否支持受檢查異常在Java世界中是一場古老的圣戰(zhàn)。

如果為了結(jié)合使用Java Stream,你需要lambda中含有受檢查異常的代碼,那該怎么做?比如,我們需要將字符串列表轉(zhuǎn)換成這樣的url列表:

Arrays.asList("//localhost/", "//github.com")
.stream()
.map(URL::new)
.collect(Collectors.toList())

在throws中已聲明了受檢查異常,因此,它不能在中直接作為函數(shù)引用。

你可能會說:“這沒問題啊,我可以這么干。”

public static <T> T uncheckCall(Callable<T> callable) {
  try { return callable.call(); }
  catch (Exception e) { return sneakyThrow(e); }
}
private static <E extends Throwable, T> T sneakyThrow0(Throwable t) throws E { throw (E)t; }
public static <T> T sneakyThrow(Throwable e) {
  return Util.<RuntimeException, T>sneakyThrow0(e);
}
// Usage sample
//return s.filter(a -> uncheckCall(a::isActive))
//        .map(Account::getNumber)
//        .collect(toSet());

這個做法并不高明,原因如下:

  • 使用了try-catch語句。
  • 重新拋出了異常。
  • 使用了Java的類型擦除。

上述行為所想要解決的問題我們可以更“規(guī)范”的作如下表達:

  • 受檢查異常只能由Java語言的編譯器來識別。
  • 在JVM級別上,throws的異常只是無語義函數(shù)的元數(shù)據(jù)。
  • 在字節(jié)碼和JVM級別,受檢查異常和非受檢查異常不易區(qū)分。

解決方法是在函數(shù)中包裹Callable.call的調(diào)用,而不引入throws的部分:

static <V> V callUnchecked(Callable<V> callable){
    return callable.call();
}

這段代碼不會被Java編譯器所編譯,因為Callable.call的throws部分包含受檢查異常。但是我們可以使用動態(tài)構(gòu)建的lambda表達式來刪除這個部分。

首先,我們應(yīng)當(dāng)聲明一個沒有throws部分但能夠委托調(diào)用Callable.call的函數(shù)接口:

@FunctionalInterface
interface SilentInvoker {
    MethodType SIGNATURE = MethodType.methodType(Object.class, Callable.class);//signature of method INVOKE
    <V> V invoke(final Callable<V> callable);
}

第二步是使用LambdaMetafactory創(chuàng)建這個接口的實現(xiàn),并委托SilentInvoker.invoke調(diào)用Callable.call。如前所述,在字節(jié)碼級別,throws部分被忽略了,因此,SilentInvoker.invoke可以在不聲明受檢查異常的情況下調(diào)用Callable.call。

private static final SilentInvoker SILENT_INVOKER;
final MethodHandles.Lookup lookup = MethodHandles.lookup();
final CallSite site = LambdaMetafactory.metafactory(lookup,
                    "invoke",
                    MethodType.methodType(SilentInvoker.class),
                    SilentInvoker.SIGNATURE,
                    lookup.findVirtual(Callable.class, "call", MethodType.methodType(Object.class)),
                    SilentInvoker.SIGNATURE);
SILENT_INVOKER = (SilentInvoker) site.getTarget().invokeExact();

第三步編寫在不需要聲明受檢查異常的情況下調(diào)用Callable.call的函數(shù)。

public static <V> V callUnchecked(final Callable<V> callable) /*no throws*/ {
    return SILENT_INVOKER.invoke(callable);
}

現(xiàn)在,我們可以毫無問題的使用檢查異常重寫stream。

Arrays.asList("//localhost/", "//dzone.com")
.stream()
.map(url -> callUnchecked(() -> new URL(url)))
.collect(Collectors.toList());

這段代碼會被成功編譯,因為callUnchecked沒有聲明受檢查異常。此外,由于JVM中只有一個類來實現(xiàn)接口SilentInvoker,因此調(diào)用此方法可能會使用單態(tài)內(nèi)聯(lián)緩存。

如果Callable.call在運行時拋出了一些異常,它將會通過調(diào)用來進行捕捉,而不會出現(xiàn)任何問題:

try{
    callUnchecked(() -> new URL("Invalid URL"));
} catch (final Exception e){
    System.out.println(e);
}

盡管有這樣的方法來實現(xiàn)功能,但我還是強烈推薦以下的用法:

只有當(dāng)調(diào)用代碼保證了無異常產(chǎn)生的情況下才使用callUnchecked隱藏受檢查異常。

下面的示例演示了這種方法:

callUnchecked(() -> new URL("//dzone.com")); //this URL is always valid and the constructor never throws MalformedURLException

這個方法的可在開源項目中找到。

與Getters和Setters的協(xié)同工作

這一節(jié)對于編寫JSON、Thrift等不同格式的序列化/反序列化的程序員很有幫助。另外,如果你的代碼嚴重依賴于用于JavaBean的getter和setter的Java反射,那么它將讓你收益良多。

JavaBean中聲明的getter,命名為getXXX,是無參數(shù)和非void返回類型的函數(shù),JavaBean中聲明的setter,命名為setXXX,是帶有單個參數(shù)和返回類型為void的函數(shù)。它們可以表示為這樣的函數(shù)接口:

  • getter可以表示為一個函數(shù)參數(shù)由this引用的 。
  • setter可以表示為一個第一參數(shù)由this引用,第二參數(shù)為傳遞給setter的。

現(xiàn)在我們創(chuàng)建兩個可將任意getter或setter轉(zhuǎn)換成這些函數(shù)接口的方法。這兩個函數(shù)接口是否為泛型并不重要。在類型消除之后,實際的類型等于對象。自動選擇返回類型和參數(shù)可以由LambdaMetafactory完成。此外,有助于緩存有相同getter或setter的lambda。

首先,有必要為getter和setter聲明一個緩存,來自Reflection API的代表了當(dāng)前getter或setter,并作為一個key使用。緩存中的值表示特定getter或setter的動態(tài)構(gòu)造函數(shù)接口。

private static final Cache<Method, Function> GETTERS = CacheBuilder.newBuilder().weakValues().build();
private static final Cache<Method, BiConsumer> SETTERS = CacheBuilder.newBuilder().weakValues().build();

其次,創(chuàng)建工廠方法,通過從方法句柄中指向getter或setter來創(chuàng)建函數(shù)接口的實例: 

private static Function createGetter(final MethodHandles.Lookup lookup,
                                         final MethodHandle getter) throws Exception{
        final CallSite site = LambdaMetafactory.metafactory(lookup, "apply",
                MethodType.methodType(Function.class),
                MethodType.methodType(Object.class, Object.class), //signature of method Function.apply after type erasure
                getter,
                getter.type()); //actual signature of getter
        try {
            return (Function) site.getTarget().invokeExact();
        } catch (final Exception e) {
            throw e;
        } catch (final Throwable e) {
            throw new Error(e);
        }
}
private static BiConsumer createSetter(final MethodHandles.Lookup lookup,
                                           final MethodHandle setter) throws Exception {
        final CallSite site = LambdaMetafactory.metafactory(lookup,
                "accept",
                MethodType.methodType(BiConsumer.class),
                MethodType.methodType(void.class, Object.class, Object.class), //signature of method BiConsumer.accept after type erasure
                setter,
                setter.type()); //actual signature of setter
        try {
            return (BiConsumer) site.getTarget().invokeExact();
        } catch (final Exception e) {
            throw e;
        } catch (final Throwable e) {
            throw new Error(e);
        }

}

通過對samMethodType和instantiatedMethodType(分別對應(yīng)metafactory的第三個和第五個參數(shù))之間的區(qū)分,可以實現(xiàn)類型擦除后的函數(shù)接口中基于對象的參數(shù)和實際參數(shù)類型之間的自動轉(zhuǎn)換并以getter或setter作為返回類型。實例化方法類型是提供lambda實現(xiàn)的特殊方法。

然后,在緩存的支持下,為這些工廠創(chuàng)建一個外觀:

public static Function reflectGetter(final MethodHandles.Lookup lookup, final Method getter) throws ReflectiveOperationException {
        try {
            return GETTERS.get(getter, () -> createGetter(lookup, lookup.unreflect(getter)));
        } catch (final ExecutionException e) {
            throw new ReflectiveOperationException(e.getCause());
        }
}
public static BiConsumer reflectSetter(final MethodHandles.Lookup lookup, final Method setter) throws ReflectiveOperationException {
        try {
            return SETTERS.get(setter, () -> createSetter(lookup, lookup.unreflect(setter)));
        } catch (final ExecutionException e) {
            throw new ReflectiveOperationException(e.getCause());
        }
}

作為使用 Java 反射 API 的 Method 實例,獲取的方法信息可以輕松地轉(zhuǎn)換為 MethodHandle。考慮到實例方法總是有隱藏的第一個參數(shù)用于將其傳遞給方法。靜態(tài)方法沒有這些隱藏的參數(shù)。例如,方法具有 int intValue 的實際簽名(Integer this)。這個技巧用于實現(xiàn) getter 和 setter 的功能包裝器。

現(xiàn)在是時候測試代碼了:

final Date d = new Date();
final BiConsumer<Date, Long> timeSetter = reflectSetter(MethodHandles.lookup(), Date.class.getDeclaredMethod("setTime", long.class));
timeSetter.accept(d, 42L); //the same as d.setTime(42L);
final Function<Date, Long> timeGetter = reflectGetter(MethodHandles.lookup(), Date.class.getDeclaredMethod("getTime"));
System.out.println(timeGetter.apply(d)); //the same as d.getTime()
//output is 42

這種緩存getter和setter的方法可以有效地用于序列化和反序列化期間,使用getter和setter的序列化/反序列化庫(如Jackson)。

使用LambdaMetafactory動態(tài)生成的實現(xiàn)調(diào)用函數(shù)接口比通過Java Reflection API的調(diào)用要。

你可以在開源項目中找到。

限制和缺陷

在本節(jié)中,我們將給出在 Java 編譯器和 JVM 中與 lambdas 相關(guān)的一些錯誤和限制。 所有這些限制都可以在 OpenJDK 和 Oracle JDK 上重現(xiàn),它們適用于 Windows 和 Linux 的 javac 1.8.0_131。

從方法句柄構(gòu)建 Lambdas

如你所知,可以使用 LambdaMetafactory 動態(tài)構(gòu)建 lambda。要實現(xiàn)這一點,你應(yīng)該指定一個 MethodHandle,其中包含一個由函數(shù)接口聲明的單個方法的實現(xiàn)。我們來看看這個簡單的例子:

final class TestClass {
            String value = "";
            public String getValue() {
                return value;
            }
            public void setValue(final String value) {
                this.value = value;
            }
        }
final TestClass obj = new TestClass();
obj.setValue("Hello, world!");
final MethodHandles.Lookup lookup = MethodHandles.lookup();
final CallSite site = LambdaMetafactory.metafactory(lookup,
                "get",
                MethodType.methodType(Supplier.class, TestClass.class),
                MethodType.methodType(Object.class),
                lookup.findVirtual(TestClass.class, "getValue", MethodType.methodType(String.class)),
                MethodType.methodType(String.class));
final Supplier<String> getter = (Supplier<String>) site.getTarget().invokeExact(obj);
System.out.println(getter.get());

上面的代碼等價于:

final TestClass obj = new TestClass();
obj.setValue("Hello, world!");
final Supplier<String> elementGetter = () -> obj.getValue();
System.out.println(elementGetter.get());

但如果我們用一個可以表示一個字段獲取方法的方法處理器來替換指向 getValue 的方法處理器的話,情況會如何呢:

final CallSite site = LambdaMetafactory.metafactory(lookup,
                "get",
                MethodType.methodType(Supplier.class, TestClass.class),
                MethodType.methodType(Object.class),
                lookup.findGetter(TestClass.class, "value", String.class), //field getter instead of method handle to getValue
                MethodType.methodType(String.class));

該代碼應(yīng)該是可以按照預(yù)期來運行的,因為 findGetter 會返回一個指向字段獲取方法、并且具備有效簽名的方法處理器。 但是如果你運行了代碼,就會看到如下異常:

java.lang.invoke.LambdaConversionException: Unsupported MethodHandle kind: getField

有趣的是,如果我們使用 ,字段獲取方法卻可以運行得很好:

final Supplier<String> getter = MethodHandleProxies
                                       .asInterfaceInstance(Supplier.class, lookup.findGetter(TestClass.class, "value", String.class)
                                       .bindTo(obj));

要注意 MethodHandleProxies 并非動態(tài)創(chuàng)建 lambda 表達式的理想方法,因為這個類只是把 MethodHandle 封裝到一個代理類里面,然后把對的調(diào)用指派給了 方法。 這種方法使得 Java 反射機制運行起來非常的慢。

如前所述,并不是所有的方法句柄都可以在運行時用于構(gòu)建 lambdas。

只有幾種與方法相關(guān)的方法句柄可以用于 lambda 表達式的動態(tài)構(gòu)造

這包括:

  • REF_invokeInterface: 對于接口方法可通過 來構(gòu)建
  • REF_invokeVirtual: 對于由類提供的虛方法可以通過 Lookup.findVirtual 來構(gòu)建
  • REF_invokeStatic: 對于靜態(tài)方法可通過 構(gòu)建
  • REF_newInvokeSpecial: 對于構(gòu)造函數(shù)可通過 構(gòu)建
  • REF_invokeSpecial: 對于私有方法和由類提供的早綁定的虛方法可通過構(gòu)建

其他方法的句柄將會觸發(fā) LambdaConversionException 異常。

泛型異常

這個 bug 與 Java 編譯器以及在 throws 部分聲明泛型異常的能力有關(guān)。下面的示例代碼演示了這種行為:

interface ExtendedCallable<V, E extends Exception> extends Callable<V>{
        @Override
        V call() throws E;
}
final ExtendedCallable<URL, MalformedURLException> urlFactory = () -> new URL("//localhost");
urlFactory.call();

這段代碼應(yīng)該編譯成功因為 URL 構(gòu)造器拋出 MalformedURLException。但事實并非如此。編譯器產(chǎn)生以下錯誤消息:


Error:(46, 73) java: call() in <.anonymous Test$CODEgt; cannot implement call() in ExtendedCallable
overridden method does not throw java.lang.Exception

但如果我們用一個匿名類替換 lambda 表達式,那么代碼就編譯成功了:

final ExtendedCallable<URL, MalformedURLException> urlFactory = new ExtendedCallable<URL, MalformedURLException>() {
            @Override
            public URL call() throws MalformedURLException {
                return new URL("//localhost");
            }
        };
urlFactory.call();

結(jié)論很簡單:

當(dāng)與lambda表達式配合使用時,泛型異常的類型推斷不能正確工作。

泛型邊界

一個帶有多個邊界的泛型可以用 & 號構(gòu)造:&lt;T extends A &amp; B & C & ... Z>。這種泛型參數(shù)定義很少被使用,但由于其局限性,它對 Java 中的 lambda 表達式有某些影響:

  • 每一個邊界,除了第一個邊界,都必須是一個接口。
  • 具有這種泛型的類的原始版本只考慮了約束中的第一個邊界。

第二個局限性使 Java 編譯器在編譯時和 JVM 在運行時產(chǎn)生不同的行為,當(dāng) Lambda 表達式的聯(lián)動發(fā)生時。可以使用以下代碼重現(xiàn)此行為:

final class MutableInteger extends Number implements IntSupplier, IntConsumer { //mutable container of int value
    private int value;
    public MutableInteger(final int v) {
        value = v;
    }
    @Override
    public int intValue() {
        return value;
    }
    @Override
    public long longValue() {
        return value;
    }
    @Override
    public float floatValue() {
        return value;
    }
    @Override
    public double doubleValue() {
        return value;
    }
    @Override
    public int getAsInt() {
        return intValue();
    }
    @Override
    public void accept(final int value) {
        this.value = value;
    }
}
static < T extends Number & IntSupplier > OptionalInt findMinValue(final Collection < T > values) {
    return values.stream().mapToInt(IntSupplier::getAsInt).min();
}
final List < MutableInteger > values = Arrays.asList(new MutableInteger(10), new MutableInteger(20));
final int mv = findMinValue(values).orElse(Integer.MIN_VALUE);
System.out.println(mv);

這段代碼絕對沒錯,而且用 Java 編譯器編譯也會成功。MutableInteger 這個類可以滿足泛型 T 的多個類型綁定約束:

  • MutableInteger 是從 Number 繼承的
  • MutableInteger 實現(xiàn)了 IntSupplier

但是在運行的時候會拋出異常:

java.lang.BootstrapMethodError: call site initialization exception
    at java.lang.invoke.CallSite.makeSite(CallSite.java:341)
    at java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:307)
    at java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:297)
    at Test.minValue(Test.java:77)
Caused by: java.lang.invoke.LambdaConversionException: Invalid receiver type class java.lang.Number; not a subtype of implementation type interface java.util.function.IntSupplier
    at java.lang.invoke.AbstractValidatingLambdaMetafactory.validateMetafactoryArgs(AbstractValidatingLambdaMetafactory.java:233)
    at java.lang.invoke.LambdaMetafactory.metafactory(LambdaMetafactory.java:303)
    at java.lang.invoke.CallSite.makeSite(CallSite.java:302)

之所以會這樣是因為 Java Stream 的管道只捕獲到了一個原始類型,它是一個 Number 類。Number 類本身并沒有實現(xiàn) IntSupplier 接口。 要修復(fù)此問題,可以在一個作為方法引用的單獨方法中明確定義一個參數(shù)類型:

private static int getInt(final IntSupplier i){
    return i.getAsInt();
}
private static <T extends Number & IntSupplier> OptionalInt findMinValue(final Collection<T> values){
    return values.stream().mapToInt(UtilsTest::getInt).min();
}

這個示例就演示了 Java 編譯器和運行時所進行的一次不正確的類型推斷。

在 Java 中的編譯時和運行時處理與 lambdas 結(jié)合的多個類型綁定會導(dǎo)致不兼容。

 

本文翻譯自


標簽:Java

本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn


為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產(chǎn)品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
利記足球官網(wǎng)(官方)網(wǎng)站/網(wǎng)頁版登錄入口/手機版登錄入口-最新版(已更新) 真人boyu·博魚滾球網(wǎng)(官方)網(wǎng)站/網(wǎng)頁版登錄入口/手機版登錄入口-最新版(已更新) 最大網(wǎng)上PM娛樂城盤口(官方)網(wǎng)站/網(wǎng)頁版登錄入口/手機版登錄入口-最新版(已更新) 正規(guī)雷火競技官方買球(官方)網(wǎng)站/網(wǎng)頁版登錄入口/手機版登錄入口-最新版(已更新) 雷火競技權(quán)威十大網(wǎng)(官方)網(wǎng)站/網(wǎng)頁版登錄入口/手機版登錄入口-最新版(已更新) boyu·博魚信譽足球官網(wǎng)(官方)網(wǎng)站/網(wǎng)頁版登錄入口/手機版登錄入口-最新版(已更新) 權(quán)威188BET足球網(wǎng)(官方)網(wǎng)站/網(wǎng)頁版登錄入口/手機版登錄入口-最新版(已更新) 正規(guī)188BET足球大全(官方)網(wǎng)站/網(wǎng)頁版登錄入口/手機版登錄入口-最新版(已更新) 国产狂喷潮在线观看中文 | 不卡中文一二三区 | 国产无套乱子伦精彩是白视频 | 国产午夜福利精品一 | 国产精品一二级 | 国产成年无码av片 | 国产欧美高清精品一区2 | 2025国产精品自在自线 | 国产裸体裸拍在线观看 | 国产美女视频网在久久69 | 国产欧美丝袜小视频 | 国产毛片女人18水多 | 国产高潮流白浆免费视频 | 国产日韩精品一区 | 成人在线毛片 | 99久久最新视频免费观看 | 2025日本三级理论影院 | 国产一区二区三区视频在线观看 | 国产丝袜大长腿精品丝袜美女 | 国产美女一级性大黄片 | 国模少妇无码一区二区三区 | 国产av一区二区三区不卡 | 国产妇女野外性一级毛片视频 | 国产尤物在线观看视频 | 精品人妻少妇一区 | 国产自产亚洲精品国产 | 国产精品无码片在线看 | 99国产精品久久久久成人热 | 国产精品精品自在线拍 | 精品无码网站 | 国产激情一区二区三区成人 | 国产精品天干天干天干 | 国产超高清麻豆精品传媒麻豆精品 | 国产精品福利在线 | 国产内射合集颜射 | 国产av午夜精品一区二区三区 | 成人午夜精品久久久久久久小说 | 18禁黄污吃奶免费看网站 | 国产女优在线 | 国产在线观看不卡 | 国产精品国产三级国产剧情 | 国产精品一国产精 | 国产亚洲欧美免费视频 | 国产亚洲欧美在线观看 | 国产精品高清一区二区三区99 | 高清视频一区二区三区 | 精品久久免费一区二区三区四区 | 国产精品麻豆专区 | 国产免费高清mv视频在线观看 | 精品无码永久在线 | 国产经典一区二区三区蜜芽 | 国产成人高清在线观看视频 | 国产三级毛片 | 国产精品丝袜久久久久久聚色 | 精品国内自产拍在线播放观看 | 国产白丝喷水娇喘视 | av一区二区在线播放 | 国产精品一区二区毛卡片 | 国产午夜福利在线播放无删减 | 经典日韩中文字幕综合网 | 69精品偷拍在线中文字幕 | 精品少妇人妻一区二区黑料社 | 成年人午夜必备 | 国产av一区二区 | ā片在线观看免费看无码 | 国产成人激烈叫床声视频对白 | 激情国产av做激情国产爱 | av一区二区三区高清久久 | 国产盗摄aⅴ一区二区 | 91麻豆国产自产在线观看 | 国产综合亚洲欧美日韩一区二 | 国产高清一区二区三区 | 国产白丝| 国产av日韩毛片 | 国产综合一千收藏 | 91在线无码精品秘在线观看 | 91国在线高清视频 | 国产精品成人av无码久久 | 国产av无码专区亚洲av琪琪 | 国产亚洲成人三级 | 国产91精品花蝴蝶在线观看 | 国产在线自在拍91精品黑人 | a级片网站在线观看 | 国产av无码精品 | 国产精品欧美日韩一区二区 | 成人午夜无码影院视频在线观看 | 2025国产视频 | 精品日韩欧美一区二区三区 | 国产一区二区在线午夜福利 | 国产精品午夜一级毛片密呀 | 国产女人高潮免费视频在线观看 | 3d动漫精品专区久久电影 | 国产成人无码一二三区视频 | 国产欧美日韩综合在线一区二区 | 91制片厂制作果冻传 | 国产韩国精品一区二区三区久久 | 国产女性无遮挡免费裸体视频 | 国产欧美va天堂在线观看视频 | 国产在线精品免费一区二区三区 | 精品视频一区二区三区 | 精品91自产拍在线观看二区 | 国产精品日韩欧美一区二区视频 | 国产91av在线免费观看 | 国产v片在线播放免费无码 国产v片在线播放免费无遮挡 | 国产ol丝袜高跟在线观看不卡 | 白丝jk小仙女自慰喷白浆 | 国产福利视频一区二区三区 | 国产精品一品道加勒比 | 91精品国产一区二区无码 | 国产一区二区 | 国产成人av一区二区三区无码 | 国产精品亚洲日韩欧美色窝窝色欲 | 69视频在线 | 国产午夜福利综合区 | 91麻豆精品国产自产在线观 | 国产激情无码一区二区app | 国产激情久久久久影院老熟 | 97人妻熟女成人免费视频色戒 | 国产av综合影院 | 国产成人精品一二 | 91精品人妻一区二区 | 国产精品十八禁一区二区三区 | 2025最新无码国产在线 | 囯产精品一区二区免费在线观看 | 国产日本精品在线观看 | 成人国产欧美日韩在线观看 | 国产丰满老熟女厨房乱 | 国产无码专区亚洲 | 国产成人一区二区三区毛片 | 丰满少妇偷人51视频 | 国产精品一国产av麻豆 | 成人国产免费av一区二区三区 | 东京热无码人妻系列综合 | 国产精品日韩欧美在线 | 2025国产成人福利精品视频 | 国产精品无码素人福利 | 国产91av视频在线观看 | 国产三级放荡的护士 | 国产精品va在线播放我和闺蜜 | 国产人妻久久精品一区二 | 国产亚洲成人日韩 | 国产午夜精品一区二区三区 | 精品人妻一区二区三区夜夜嗨 | 国产精品爽爽在线观看 | 国产欧美va欧美va香蕉在线观 | 国产精品日韩av在线播放 | 国产精品成人一区二区三区视 | 国产激情无码视频一区二区三区 | 精品国产亚洲爽啪在线观看 | 成人一区二区三区视频 | 精品伦精品一区二区三区视频 | 国产高清japanese在线播放 | 国产成人无码久久久精品一 | 国产精品成人观看视频国产奇米 | 国产精品日韩精品在线播放 | 国产成人免费av片在线观看婷婷 | 国产高清在线观看 | 91精品成人免费国产片 | 精品国产日韩欧美一级一区二区 | 高潮爽到爆的喷水女主 | 国产午夜免费啪视频观看视频 | 国产三级九九久久三级av | 韩国日韩欧美久久久 | 国语对白一区二区三区 | 国产欧美日韩视频在 | 国产午夜电影久久 | 国产日韩精品视频无码 | 国产在线丝袜一区二区三区 | 国产无套粉嫩白浆在线观看 | 国产成人经典视频在线 | 国产激情av一区二区 | 国产成人涩涩涩视频在线观看 | 国产精品人成在线观看 | 国产精品无码日韩主播 | 国产91在线看| 精品高清美女精 | 国产精品无码av在线播放不 | 2025年最新无码电影 | 国产91视频在线观看 | 国产成人无码a区在线播放 国产成人无码a区在线观9 | 国产午夜三级一区二区三 | 国产轮奸精品一区二区三区 | 国产精品视频第一区二 | 精品国产亚洲av | av无码免费永久在线观看 | 成无码三级视频 | 国产一精品一av一免费爽爽 | 18禁高清无遮挡一 | 国产精品无码aⅴ在线观看播放 | 国产成人av无码一二三区 | 97人人添人澡人人爽超碰 | 国产一区二区三精品久久久无 | 黑色丝袜秘书夹住巨龙摩擦 | 国产成人aⅴ片在线观看 | 东京无码熟妇人 | 国产精品午夜无码av体验区 | 国产成人免费影院在线 | 粉嫩极品国产在线观看 | 国产成人mv在线播放 | 国产精品成人永久在线 | 国产一区二区三区高清av | 精品日本三级在线观看视频 | 精品视频一区二区在线 | 成人无码国产 | 黑人巨大精品欧美一区二区o | 国产精品九九九午夜 | 国产aⅴ无码精品一品二区 国产aⅴ无码精品一区二区 | 国产白袜脚足j棉袜在线观看 | 国产三级观看 | 东京热无码人妻系列综合网站 | 精品久久久久久无码人妻 | 97人人超碰国产精品旧版 | 国产欧美另类在线视频 | 国产亚洲成av人片在线观黄桃 | 国产无码在线视频高清无删减 | 91国内自产精华天堂 | 国产人妖在线精品 | 国产精品一二三四级电影 | 国产盗摄视频一区二区三区 | 成人碰碰视频公开老师 | 国产在线观看在线直播 | 国产精品边做奶水狂喷有码 | 成人国产免费av一区二区三区 | 2025国产亚洲精品无码专区 | 国产成人无码免费视频97动漫 | 国产av福利片一二三四区 | 国产91在线视频观看 | 动漫av永久无码精品每 | 国产精品v片在线观看 | 国产精品女人呻吟在 | 国产蜜桃扣扣传媒av性色 | 国产剧情精品亚洲一区二区 | 国产av无码专区亚洲a∨ | 国产狂喷潮视频 | 国产一区二区高 | 成人在线观看av网站 | 国产精品色婷婷99久久精品 | 国产极品高清在线播放 | 国产中文无码av无码 | 国产成人αv无码专区亚洲αv | 国产美女福利视频一区二区 | 风流老熟女一区二区三区 | 精品少妇无码一区二区三批 | 福利姬国产精品一区在线 | 二区本道av特级毛片 | 国产欧美日韩综合一区二区 | 大尺度精品福利视频 | 国产欧美a级成人 | 成人午夜无码影院视频在线观看 | 10000部无码免费视频拍拍拍 | 国产精品美女网站在线观看 | 国产精品毛片aⅴ一区二区三区 | 国产成人调教视频在线观看 | 国产精品日本一区二区在线 | 国产精品成人一区二区三区 | 国产成人a区在线观看 | 精品久久久久久天美传媒 | 国产经典av | 国产高清国产精品国产k | a亚洲欧美中文日韩 | 动漫成年美女黄漫网站在线观看 | 精品国偷自产在线视频 | 精品久久久久久亚洲偷窥一区 | 精品国产a∨无码一区二区三 | 成人欧美一区二区三区 | 国产毛a片啊久久久久久按摩 | 成人欧美一区二区三 | 国产在线观看无遮挡无码aⅴ多人 | 国产精品无码电影在线观 | 国产麻豆一区二区三区精品视频 | 国产偷窥女洗浴在线观 | 91麻豆国产福利精品 | 国产午夜在线免费视频 | 国产成人无码剧情久久久久 | 国产成人无码av片在线观看 | 国产成人久久精品一区二区三 | 国产高清精品一区 | 2025久久超碰国产精品最新 | 国产在线精品一区二区三区不卡 | 国产精品一区二区三区在线观看 | 国产精品成人无码专区 | 福利一区二区三区视频午夜观看 | 国产日韩欧美集合一区二区三区 | 国产激情无码久久 | 国产一区日韩二区欧美三区在线 | 国产免费午夜在线观看 | 福利一区二区久久 | 国产一区二区精品久久91 | 国产熟睡乱子伦午夜视频 | 国产成人综合久久av | 91国内精品久久久久怡红院 | 精品91自产拍在线 | 国产做a爰片毛片a片美国 | 极品中文字幕国产视频 | 国产在线拍揄自揄视频网 | 91精彩视频在线观看 | 国产精品无码一区二区三四区 | 成人无码a区在线观看视 | 丰满人妻熟妇乱又伦精品视频三 | 国产黄色视频在线播放 | 国产精品另类亚洲精品久久小说 | 国产精品无码专区在线观看不卡 | 国产无码在线观看免费在线 | 国产精品白嫩极品久久久久 | 国产精品一区久久精品 | 果冻传媒app在线播放 | 92国产福利久久青青草原 | 国产成人精品午夜日本亚洲 | 国产v亚洲v天堂a无码99 | 国产三上悠亚日韩在线 | 精品国产免费一区二区 | 91视频国产精品免费观看 | 国产午夜人免费视频成69 | 精品无码欧美一区二区三区不卡 | 国产精品自产拍在线网站 | 韩国高清一区二区午夜无码 | av中文字幕音影先锋天堂 | 国产极品熟女沙发内射av | 国产成人精品午夜精品 | 国产成人综合久久精品下载 | 成人午夜精品久久久久久久 | 不卡中文一二三区 | 91人人妻人人做人人爽男同 | 国产91麻豆免费观看 | 精品无码一区二区三区av | 国产一区二区视频91 | 国产精品欧美亚洲韩国日本久 | 国产av一区二区三区久久久综 | 国产亚洲综合专区在线播放 | 91精品婷| 国产精品制服丝袜亚洲欧美 | 国产精品成人观看视频网站 | 国产91丝袜美腿在线观看 | 国模国产精品嫩模大尺度视频 | 国产精品自产拍在线免费看 | 国产精品制服丝袜欧美 | 成人午夜小视频手机在线看 | 国产白浆喷 | 国产成人精品影院狼色在线 | 国产精品无码久久aⅴ裸体 国产精品无码久久av | 国产精品一区精品国产自在 | 国产精品无码影院av | 国产欧美久久久另类精品 | 国产高潮视频免费观看 | 国产成人高清在线观看播放 | 国产一级精品在线观看 | 91亚洲自偷手机在线观看 | 97人妻熟女成人免费视频色戒 | 国产一区二区四五区在线视频 | 国产69精品久久久久无码小说 | 丰满老熟妇好大bbbbb | 国产一区二区四区在线视频 | 国产精品白富美调教在线 | 国产精品日韩欧美制服 | 国产免费人成在线视频 | 国产精品一区久久 | 国产在线精品一区免费香蕉 | 国产极品美女高潮无套在线观看 | 2025无码最新 | 国产精品成熟老妇女 | 91精品人妻一区二区蜜桃 | 精品日韩亚洲欧美高清a | 国产成人精品日本亚洲专区 | 91精品国产乱码久久久久 | 国产一级片内射视频播放蘑菇 | 国产精品偷伦视频 | 国色天香成人一区二区 | 国产色婷婷精品免费视频 | 91丝袜在线观看亚 | 国产免费无码v片在线观看不卡 | 国产原创中文字幕在线观看 | 国产成人最新毛片基地 | 成人免费一区二区三区 | 国产精品嫩草影院在线 | 国产日韩亚洲中文在线 | 国产精品一区二区免费看 | 国产精品无码直接看 | av免费网 | 国产成人一区二区三区在线播放 | 国产精品无码无卡 | 高潮真紧好爽我视频 | 国产一区二区高清在线国产综合 | 国产三级在线播放第一页 | av无码精品一区二区三区宅噜噜 | 国产成人无码av | 18国产精品白浆在线观看免费 | 国产美女深夜福利在线一 | 3d动漫精品专区久久 | 国产成人午夜精品影院游乐网 | 成人无码视频在线观看 | 成人家庭影院日韩午夜 | 国外b站刺激战场直播app | 国产福利91三级97伦色 | 国产高潮流白浆喷水免费观看 | 国产精品va欧美精品v日韩 | 高清无码爆乳护士在线播放 | av在线中文观看 | 国产一区二区av在线播放 | 国产av巨作国产剧情 | 国产成人人人97超碰超爽8 | 国产在线一区二区三区蝌蚪 | 国产精品亚洲色婷婷99久久精品 | 国产综合中文字幕在线 | 国模一区二区三区久久 | 国产成人综合亚洲欧美天堂 | 91视频免 | 国产成人剧情av麻豆果冻 | 精品四虎免费观看国产高清 | 成人精品一区二区三区久久 | 国产成人高清在线观看播放 | 精品国偷自产在线亚洲 | 国产制服丝袜欧美在线观看 | 成人在线免费观看 | 国内精品视频一区二区三区 | 国产精品内射久 | 99国产精品一区二区 | 91亚洲自偷手机在线观看 | 精品无码一区二区三区土豆 | 国产在线观看一级 | 国产三级电影免费 | 成人国产精品一级毛片视频老鬼 | 国产无码专区在线看 | 91海角大神邻居在线观看 | av在线最新网址不卡 | 国产在线一区二区三区av | 91免费在线 | 国产av毛片影院精品资源 | 国产av无码专区亚洲av琪琪 | 粉嫩无套白浆 | 国产日韩欧美一区二区在线高清 | 国产精品嫩草影院av | 国产麻无矿码直接观看 | 国产精品美女久久网 | 91精选日韩综合永 | 国产一区二区精选 | 91精产国品一二三产区粉粉 | 国产三级精品久久三级国专区 | 国产精品黑色丝袜高跟鞋 | 国产亚洲综合色就色 | 成在线观看免费网站 | 国产精品午夜无码体验区 | 国产毛片久久久久久国产毛片 | 国产在线观看精品不卡 | 福利视频一区二区三区四区 | 精品人妻av区波多野结衣 | 国产午夜福利在线播放87 | 18禁美女裸身无遮挡免费网站 | 91亚洲国产成人久久精品网站 | 高清无码毛片国产 | av色原在线观看 | 精品麻豆视频播放 | 国产成人啪精品视频免费软件 | 国产一区二区三区高清av | www亚洲精品少妇裸乳一区 | 精品人妻无码一区二区色欲产成 | 国产91精品花蝴蝶在线观看 | 精品视频一区二区三区中文字 | 国产午夜精品久久久 | 精品高潮无码专区久久综合久中 | 国产精品原创巨作在线影院 | 91久久人人妻人人澡人人爽 | 国产精品无码一区二区久久 | 韩国精品福利一区二区三区 | 国产成人啪精品午夜 | 国产极品高颜值美女在线 | 国产巨作原创 | 精品久久久久久久无码人妻 | 国产国拍亚洲精品午夜不卡嘿嘿 | av无码精品一区二区久久 | 精品国产一区二区三区高清观看 | 国产尤物亚洲精品不卡 | 国产一级片内射 | 国产一区二区视频在线观看 | 国产对白刺激视频 | 91精品国产一区二区三区左线 | 99精品国产在热久久国产乱 | 国产三级精品三级男人的天堂 | 调教人人传媒牛牛视频一区二区三区 | 成人亚洲性情网站w | 国产熟女真实乱精品 | 国产在线观看乱码精品 | 精品无码久久久久国产动漫3d | 国产美女免费牲交视频 | 精品久久黑丝高跟鞋 | 国产一区免费看久久无码精品 | 国产午夜怕怕 | 国产极品尤物粉嫩泬在线观看 | 爆乳无码中文字幕在线观看 | 国产三级电影免费观看 | 91麻精品国产91久久久久 | 成人在线免费观看网站 | 国产区视频在线网站 | 国产丝袜在线精品丝袜 | 国产欧美综合在线观看第七页 | 成人在线一区二区三区四区 | 成年女人免费视频播放人 | 精品精品国产高清a毛片 | 国产高清在线精品一区不卡 | 99久久精品午夜一区二区 | 91麻豆精品国产自产在线观看一区 | 91麻豆产精品久 | 国产av秘无码一区二区三区 | 91久久极品黑色自慰喷出白 | 国产精品老女人精品视 | www国产内插视频 | a三级三级成人网站在线视频 | 国产成人精品久久亚洲高清不卡 | 国产av午夜精品一区 | 精品少妇人妻一区二区黑料社区 | 国产呦精品一区二区三区网站 | 国产成人精品无 | 国产精品成人免费视频一区 | 成人毛片无码一区二区三区 | 国码无码久久99 | 91久久精品国产一区二区 | 国产精品无码av片 | 91在线无精精品秘?入口 | 国产原创一区在线 | 国产成人久久精品麻豆一区 | 国产成人av性色在线影院 | 成人国内精品久久久久影院 | 国产成人免费在线视频 | 国产成人无码电影在线观看 | av麻豆| 高清欧美剧正版在线观看 | 国产高清成人久久 | 国产一级无码午夜大片 | 成人午夜免费福利视频 | av国语在线观看 | 福利姬一区二 | 成人色屋精品视频 | 91免费观看| 97精品视频在线免费观看 | 国产av永久无码精品 | 成人无码在线视频网 | 成人国产精品一级毛片久久 | 精品国产拍拍拍无遮挡 | 国产三级精品在线观 | 成人午夜影视 | 国产三级级在线电影 | 国产国语熟妇视频在线观看 | 国产传媒亚洲综合一区二区 | 国产在线精品无码不不卡 | 不卡无码人妻一区三区 | 国产原创麻豆顾美玲在线观看 | 国产成人户外露出视频在线观看 | 国产午夜乱子伦一区二区 | 成人亚洲色欲色一欲 | 国产成人综合久久网站 | 国产偷窥熟女高潮精品视频 | 国产高清视频在线观看不卡 | 国产91久久麻豆黄片 | 国产美女高潮抽搐在线播放 | 成人区精品一 | 国产91成人精品亚洲精品 | 国产成人亚洲精品无码不卡 | 国产精品无码片在线看 | 国产精品色拉拉免费看 | 97人妻免费精品视频 | 2025国产精品最新在线 | 国产mv天美传媒在线视频播放 | 国产av电影区二区三区曰曰骚网 | av中文字幕专区 | 国产成人特级毛片无码视频二 | 国产精品亚洲五月天 | 国产精品女人伦一区二区三区 | 国产免费又色又爽又黄的视频 | 69成品人视频免费看手机最新 | 国产精品国内免费一区二区三区 | 国产人妻精品一区二区三区 | 动漫久章草在线视频播放国产 | 国产另类ts人妖一区二区 | 国精品人妻无码一区二区三区性色 | 国产av天堂首页 | 国产成人a在线观看视频免费 | 国产二区视频在线观看 | 丰满巨臀大屁股bbw 丰满老熟妇aaaa片 | 国产精品露出91 | 成片一卡二卡三卡观看 | 东京无码熟妇人妻av在线网址 | a亚洲欧美中文日 | 国产精品爆乳奶水无码视频免费 | 丰满人妻系列无码专区 | 成人国内精品久 | 国产高清无码日韩一区 | 成在人线av无码免费看网站 | 国产午夜无码精品免费看动漫 | 精品国产91高清在线观看 | 国产高清精品自拍 | 国产成人无码av在线播放动漫 | 精品无码久久久久国产动漫3d | 2025国产精品91 | 国产尤物在线观看一区二区 | 成人无码区免费aⅴ片www | 国产精品大奶视频 | 国语对白精品一区二区在线观看 | 国产极品美女无套内射 | 国产综合精品国产精品va在线观看 | 91麻豆免费国产在线 | 精品国产一区二区三区久久久81 | 国产成人久久精品毛片 | 国产av福利片一二三四区 | 国产三级在线观看中文字幕 | 国产无套露脸视频在线观看 | 国产一区二区在线不卡 | a级毛片在线免费 | 国产精品日本 | 高清中文字幕mv在线观看 | 国产成人精品无码免费看夜聊软件 | 国产91在线播放中文 | 国产精品欧美亚洲韩国日本 | 国产精品秘麻豆免费版热议不断 | 精品丝袜国产在线播放 | 97无码人妻视频在线 | 国产综合变态自虐重口另类 | 91精品福利一区二区三区野战 | av片在线观看免费光看高清 | 国产另类无码专区 | 国产91精品在线 | 69式真人无码精品视频免费 | 国产毛片一区二区三区精品 | 国产a级三级三级三级 | 精品丝袜人妻 | 1024亚洲精品| 国产动漫一区二区三区在线观看 | 国产成人毛片在线视频 | 国产综合久久精品综合v无码 | 国产成人午夜福利在线观看视 | 国产综合精麻豆 | av在线资源网址 | 国产一区二区在线视频免费看 | 国产精品一区二区免费不卡 | 国产高清国际精品福利色噜噜 | 国产亚洲日韩a欧美在线观看 | 国产亚洲中文日本不卡二区 | 97人人人人 | 国产精品爽爽久久久久久蜜臀 | 1024国产你懂的在线视频 | 二区三区四川人 | 国产成年人免费黄色视频 | 国产午夜激情无码av毛片 | 99久久精品国产一区二区 | 国产大片在线观看 | 2025国产在线观看 | 京野结衣免费一区二区 | 国产精品探花一区 | 国产黑色丝袜在线观看片不卡顿 | av夜夜躁狠狠躁日日躁 | 国产高清女同学巨大乳在线 | 国产精品免 | 国产av国片精品jk制服 | 国产成人精品午夜一区 | 国产丝袜视频一区二区三区 | 91精品国产91热久久久久 | 国产亚洲欧美一区二区在线观看 | 99久re热视频这只有精品6 | 国产午夜精品一区二区不卡 | 国产精品怕怕怕免费视频大全 | 国产一区二区三区精品久久 | 国产欧美日韩综合在线 | 91在线精品一区二区大受欢迎 | 国产成人免费高清在线观看 | 国产午夜精品一区二区三区 | 成人精品一区二区91毛片不卡 | 国产精品蜜桃美乳在线观看 | 国产av一区 | 国产精品v片在线观 | 国产精品无码av在毛片 | 国产精品高清m3u8在线播放 | 国产福利在线永久视频 | av中文字幕一区少妇 | 国产成人手机在线视频在线观看 | 国产高清一级a片在线视频 国产高清一级黄色片 | 成人亚洲精品影院老金 | 精品国产男人的天 | 精品国产一区二区三区不卡 | 国产精彩视频在线观看91 | 国产一区二区三区在线免费观看 | 91精品国产八戒影视 | 国产成人av网站手机不卡 | 国产精品视频无码一区二区免 | 91尤物在线视频 | 国产极品美女无套内射 | 国产精品亚洲手机观看每日更新 | a级毛片在线播放 | 3d动漫精品一区视频 | 国产精品午夜福利天堂 | 国内无码三级v观看 | 国产成人亚洲精品大帝 | 国产91熟女高潮一区二区 | 国产日韩欧美一区二区东京热a | 97人妻人人做人碰人人爽 | 国产成人欧美一区二区三区不卡 | 成人免费视频在线播 | av无码一区在线观看 | 国产美女69视频免费观看 | 91大神在线精品视频一区 | 成人免费aa片| 国产精品午夜福利不卡 | 成人无码h免费动漫在线观看 | 超碰国产在线高清无码 | 成人精品视频99在线观看免费 | 国产一区二区三区免费视频 | 国产精品大陆第一页 | 国产精品视频系列专区 | 东京热无码人妻一区二区三区av | 成人在线永久 | 国产美女精品久久久 | 国产不卡在线播放 | 国产成人无码a区在线视频 国产成人无码mv精品 | 国产福利不卡在线观看 | 精品人妻一区二区三区浪 | 国产中文字字幕乱码在线电影 | 国产成人一区二区三区在线播放 | 91尤物国产尤物福利 | 国产偷啪视频一区 | 国产精品毛片一区二区三区四区 | 国产精品无码av片在线观看 | 大帝av在线一区二区三区 | 国产三级在线播放第一页 | 国产盗摄av在线综合网 | 国产精品一线二线三线精华液 | 激情欧美视频一区二区三区 | 国产成人福利院免费观看 | 成人欧美一区二区三区的电影 | 国产日韩久久久久精品院 | 国产成人a视频在线观看 | 国产成人99精品免费观看 | 国产精品亚洲专区在线观 | 成年女人免费视频播放成年m | 高清无码一区二区在线观看吞 | 精品国产免费人成网站 | 91精品国产色综合久久不 | 99精品视频在线观看免费 | 国产午夜精品理论片a级在线观看 | 国产爽的冒白浆的视频高清 | 国产精品无码dvd在线观看 | 国产二区交换配乱婬 | 成人亚洲欧美成αⅴ人在线观看 | 国产福利姬精品福利 | 国产高清不卡秒播在线播放 | 国产av中文字幕乱码高清 | 国产精品偷伦视频免费观看 | 国产精品私密保养 | av激情亚洲男人的天堂国语 | 18禁白丝喷水视频www视 | 国产午夜无码精品免费看动漫 | 69精彩对白视频国产 | 精品蜜臀国产aⅴ一区二区三区 | 激情内射亚洲一区二区三区 | 国产成人麻豆精品午夜国产精 | 91麻豆爆料 | 国产人妻人伦精品1国产盗摄 | 国产福利91精品一区 | 国产精品日韩欧美在线 | 国产成人久久精品综合 | 国产女人喷液 | 国产成人免费永 | 激情欧美成人久久综合小说 | 国产偷人妻精 | 成人午夜福利视频镇东影视 | 国产午夜鲁丝片av无码第一 | 成人综合网站 | 白嫩美女国产在线观看 | 国产精品无码一区二区在线 | 国产精品秘麻豆果冻传媒在线 | 国产专区亚洲欧美另类在线91 | 国产精品乱| 成人午夜福利电影 | 国产精品一区二区国产馆蜜桃 | 91精品国产综合久久青草 | 国产午夜福利小视频 | 国产内射爽爽大片 | 国产色视频在线观看 | 国产精品剧情一区二区在线观看 | 国产日韩一区在线精品 | av无码一区 | 国产视频一区在线 | 精品人妻毛片免费视频 | 国产精品美女久久久久久麻 | 国产精品美女 | 91人妻人人做人碰 | 国产亚洲欧美在手机线专区 | 国产精品成人a片在线播放 国产精品成人a区在线观看 | 国产黄色淫荡视频网 | 国产精品熟女人妻久久 | 国产午夜精品夜夜骚久久久久 | 国产三级片在线免费观看 | 国产精品女人呻吟在 | 国产美女福利在线 | 国产女同一区二区在线观看 | 国产一级a爱做片天天视频 国产一级a大黄片毛片视频 | 国产做无码视频在线观看 | 99久久无码一区 | 国模少妇一区二区三区咪咕 | 国产精品专区一区二区三区久久 | 91人妻人人澡人人爽人人精品 | av无码久久久久不卡蜜桃 | 国产成人人人97超碰超爽8 |