日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

你真的了解load方法么?(转载)

發布時間:2025/3/15 编程问答 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 你真的了解load方法么?(转载) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文授權轉載,作者:左書祺(關注倉庫,及時獲得更新:iOS-Source-Code-Analyze)

因為 ObjC 的 runtime 只能在 Mac OS 下才能編譯,所以文章中的代碼都是在 Mac OS,也就是 x86_64 架構下運行的,對于在 arm64 中運行的代碼會特別說明。

寫在前面

文章的標題與其說是問各位讀者,不如說是問筆者自己:我真的了解 + load 方法么?

+ load 作為 Objective-C 中的一個方法,與其它方法有很大的不同。它只是一個在整個文件被加載到運行時,在 main 函數調用之前被 ObjC 運行時調用的鉤子方法。其中關鍵字有這么幾個:

  • 文件剛加載

  • main 函數之前

  • 鉤子方法

我在閱讀 ObjC 源代碼之前,曾經一度感覺自己對 + load 方法的作用非常了解,直到看了源代碼中的實現,才知道以前的以為,只是自己的以為罷了。

這篇文章會假設你知道:

  • 使用過 + load 方法

  • 知道 + load 方法的調用順序(文章中會簡單介紹)

在這篇文章中并不會用大篇幅介紹 + load 方法的作用其實也沒幾個作用,關注點主要在以下兩個問題上:

  • + load 方法是如何被調用的

  • + load 方法為什么會有這種調用順序

load 方法的調用棧

首先來通過 load 方法的調用棧,分析一下它到底是如何被調用的。

下面是程序的全部代碼:

1 2 3 4 5 6 7 8 9 10 11 12 //?main.m #import?<foundation foundation.h=""> @interface?XXObject?:?NSObject?@end @implementation?XXObject +?(void)load?{ ????NSLog(@"XXObject?load"); } @end int?main(int?argc,?const?char?*?argv[])?{ ????@autoreleasepool?{?} ????return?0; }</foundation>

代碼總共只實現了一個 XXObject 的 + load 方法,主函數中也沒有任何的東西:

雖然在主函數中什么方法都沒有調用,但是運行之后,依然打印了 XXObject load 字符串,也就是說調用了 + load 方法。

使用符號斷點

使用 Xcode 添加一個符號斷點 +[XXObject load]:

注意這里 + 和 [ 之間沒有空格

為什么要加一個符號斷點呢?因為這樣看起來比較高級。

重新運行程序。這時,代碼會停在 NSLog(@"XXObject load"); 這一行的實現上:

左側的調用棧很清楚的告訴我們,哪些方法被調用了:

1 2 3 4 5 6 0??+[XXObject?load] 1??call_class_loads() 2??call_load_methods 3??load_images 4??dyld::notifySingle(dyld_image_states,?ImageLoader?const*) 11?_dyld_start

dyld?是 the dynamic link editor 的縮寫,它是蘋果的動態鏈接器。

在系統內核做好程序準備工作之后,交由 dyld 負責余下的工作。本文不會對其進行解釋

每當有新的鏡像加載之后,都會執行 3 load_images 方法進行回調,這里的回調是在整個運行時初始化時 _objc_init 注冊的(會在之后的文章中具體介紹):

1 dyld_register_image_state_change_handler(dyld_image_state_dependents_initialized,?0/*not?batch*/,?&load_images);

有新的鏡像被加載到 runtime 時,調用 load_images 方法,并傳入最新鏡像的信息列表 infoList:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 const?char?* load_images(enum?dyld_image_states?state,?uint32_t?infoCount, ????????????const?struct?dyld_image_info?infoList[]) { ????bool?found; ????found?=?false; ????for?(uint32_t?i?=?0;?i?<?infoCount;?i++)?{ ????????if?(hasLoadMethods((const?headerType?*)infoList[i].imageLoadAddress))?{ ????????????found?=?true; ????????????break; ????????} ????} ????if?(!found)?return?nil; ????recursive_mutex_locker_t?lock(loadMethodLock); ????{ ????????rwlock_writer_t?lock2(runtimeLock); ????????found?=?load_images_nolock(state,?infoCount,?infoList); ????} ????if?(found)?{ ????????call_load_methods(); ????} ????return?nil; }

什么是鏡像

這里就會遇到一個問題:鏡像到底是什么,我們用一個斷點打印出所有加載的鏡像:

從控制臺輸出的結果大概就是這樣的,我們可以看到鏡像并不是一個 Objective-C 的代碼文件,它應該是一個 target 的編譯產物。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (const?dyld_image_info)?$52?=?{ ??imageLoadAddress?=?0x00007fff8a144000 ??imageFilePath?=?0x00007fff8a144168?"/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices" ??imageFileModDate?=?1452737802 } (const?dyld_image_info)?$53?=?{ ??imageLoadAddress?=?0x00007fff946d9000 ??imageFilePath?=?0x00007fff946d9480?"/usr/lib/liblangid.dylib" ??imageFileModDate?=?1452737618 } (const?dyld_image_info)?$54?=?{ ??imageLoadAddress?=?0x00007fff88016000 ??imageFilePath?=?0x00007fff88016d40?"/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation" ??imageFileModDate?=?1452737917 } (const?dyld_image_info)?$55?=?{ ??imageLoadAddress?=?0x0000000100000000 ??imageFilePath?=?0x00007fff5fbff8f0?"/Users/apple/Library/Developer/Xcode/DerivedData/objc-dibgivkseuawonexgbqssmdszazo/Build/Products/Debug/debug-objc" ??imageFileModDate?=?0 }

這里面有很多的動態鏈接庫,還有一些蘋果為我們提供的框架,比如 Foundation、 CoreServices 等等,都是在這個 load_images 中加載進來的,而這些 imageFilePath 都是對應的二進制文件的地址。

但是如果進入最下面的這個目錄,會發現它是一個可執行文件,它的運行結果與 Xcode 中的運行結果相同:

準備 + load 方法

我們重新回到 load_images 方法,如果在掃描鏡像的過程中發現了 + load 符號:

1 2 3 4 5 6 for?(uint32_t?i?=?0;?i?<?infoCount;?i++)?{ ????if?(hasLoadMethods((const?headerType?*)infoList[i].imageLoadAddress))?{ ????????found?=?true; ????????break; ????} }

就會進入 load_images_nolock 來查找 load 方法:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 bool?load_images_nolock(enum?dyld_image_states?state,uint32_t?infoCount, ???????????????????const?struct?dyld_image_info?infoList[]) { ????bool?found?=?NO; ????uint32_t?i; ????i?=?infoCount; ????while?(i--)?{ ????????const?headerType?*mhdr?=?(headerType*)infoList[i].imageLoadAddress; ????????if?(!hasLoadMethods(mhdr))?continue; ????????prepare_load_methods(mhdr); ????????found?=?YES; ????} ????return?found; }

調用 prepare_load_methods 對 load 方法的調用進行準備(將需要調用 load 方法的類添加到一個列表中,后面的小節中會介紹):

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 void?prepare_load_methods(const?headerType?*mhdr) { ????size_t?count,?i; ????runtimeLock.assertWriting(); ????classref_t?*classlist?=? ????????_getObjc2NonlazyClassList(mhdr,?&count); ????for?(i?=?0;?i?<?count;?i++)?{ ????????schedule_class_load(remapClass(classlist[i])); ????} ????category_t?**categorylist?=?_getObjc2NonlazyCategoryList(mhdr,?&count); ????for?(i?=?0;?i?<?count;?i++)?{ ????????category_t?*cat?=?categorylist[i]; ????????Class?cls?=?remapClass(cat->cls); ????????if?(!cls)?continue;??//?category?for?ignored?weak-linked?class ????????realizeClass(cls); ????????assert(cls->ISA()->isRealized()); ????????add_category_to_loadable_list(cat); ????} }

通過 _getObjc2NonlazyClassList 獲取所有的類的列表之后,會通過 remapClass 獲取類對應的指針,然后調用 schedule_class_load 遞歸地安排當前類和沒有調用 + load 父類進入列表。

1 2 3 4 5 6 7 8 9 static?void?schedule_class_load(Class?cls) { ????if?(!cls)?return; ????assert(cls->isRealized()); ????if?(cls->data()->flags?&?RW_LOADED)?return; ????schedule_class_load(cls->superclass); ????add_class_to_loadable_list(cls); ????cls->setInfo(RW_LOADED);? }

在執行 add_class_to_loadable_list(cls) 將當前類加入加載列表之前,會先把父類加入待加載的列表,保證父類在子類前調用 load 方法。

調用 + load 方法

在將鏡像加載到運行時、對 load 方法的準備就緒之后,執行 call_load_methods,開始調用 load 方法:

1 2 3 4 5 6 7 8 9 10 11 void?call_load_methods(void) { ????... ????do?{ ????????while?(loadable_classes_used?>?0)?{ ????????????call_class_loads(); ????????} ????????more_categories?=?call_category_loads(); ????}?while?(loadable_classes_used?>?0??||??more_categories); ????... }

方法的調用流程大概是這樣的:

其中 call_class_loads 會從一個待加載的類列表 loadable_classes 中尋找對應的類,然后找到 @selector(load) 的實現并執行。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 static?void?call_class_loads(void) { ????int?i; ????struct?loadable_class?*classes?=?loadable_classes; ????int?used?=?loadable_classes_used; ????loadable_classes?=?nil; ????loadable_classes_allocated?=?0; ????loadable_classes_used?=?0; ????for?(i?=?0;?i?<?used;?i++)?{ ????????Class?cls?=?classes[i].cls; ????????load_method_t?load_method?=?(load_method_t)classes[i].method; ????????if?(!cls)?continue; ????????(*load_method)(cls,?SEL_load); ????} ????if?(classes)?free(classes); }

這行 (*load_method)(cls, SEL_load) 代碼就會調用 +[XXObject load] 方法。

我們會在下面介紹 loadable_classes 列表是如何管理的。

到現在,我們回答了第一個問題:

Q:load 方法是如何被調用的?

A:當 Objective-C 運行時初始化的時候,會通過 dyld_register_image_state_change_handler 在每次有新的鏡像加入運行時的時候,進行回調。執行 load_images 將所有包含 load 方法的文件加入列表 loadable_classes ,然后從這個列表中找到對應的 load 方法的實現,調用 load 方法。

加載的管理

ObjC 對于加載的管理,主要使用了兩個列表,分別是 loadable_classes 和 loadable_categories。

方法的調用過程也分為兩個部分,準備 load 方法和調用 load 方法,我更覺得這兩個部分比較像生產者與消費者:

add_class_to_loadable_list 方法負責將類加入 loadable_classes 集合,而 call_class_loads 負責消費集合中的元素。

而對于分類來說,其模型也是類似的,只不過使用了另一個列表 loadable_categories。

“生產” loadable_class

在調用 load_images -> load_images_nolock -> prepare_load_methods -> schedule_class_load -> add_class_to_loadable_list 的時候會將未加載的類添加到 loadable_classes 數組中:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 void?add_class_to_loadable_list(Class?cls) { ????IMP?method; ????loadMethodLock.assertLocked(); ????method?=?cls->getLoadMethod(); ????if?(!method)?return; ????if?(loadable_classes_used?==?loadable_classes_allocated)?{ ????????loadable_classes_allocated?=?loadable_classes_allocated*2?+?16; ????????loadable_classes?=?(struct?loadable_class?*) ????????????realloc(loadable_classes, ??????????????????????????????loadable_classes_allocated?* ??????????????????????????????sizeof(struct?loadable_class)); ????} ????loadable_classes[loadable_classes_used].cls?=?cls; ????loadable_classes[loadable_classes_used].method?=?method; ????loadable_classes_used++; }

方法剛被調用時:

  • 會從 class 中獲取 load 方法: method = cls->getLoadMethod();

  • 判斷當前 loadable_classes 這個數組是否已經被全部占用了:loadable_classes_used == loadable_classes_allocated

  • 在當前數組的基礎上擴大數組的大小:realloc

  • 把傳入的 class 以及對應的方法的實現加到列表中

另外一個用于保存分類的列表 loadable_categories 也有一個類似的方法 add_category_to_loadable_list。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 void?add_category_to_loadable_list(Category?cat) { ????IMP?method; ????loadMethodLock.assertLocked(); ????method?=?_category_getLoadMethod(cat); ????if?(!method)?return; ????if?(loadable_categories_used?==?loadable_categories_allocated)?{ ????????loadable_categories_allocated?=?loadable_categories_allocated*2?+?16; ????????loadable_categories?=?(struct?loadable_category?*) ????????????realloc(loadable_categories, ??????????????????????????????loadable_categories_allocated?* ??????????????????????????????sizeof(struct?loadable_category)); ????} ????loadable_categories[loadable_categories_used].cat?=?cat; ????loadable_categories[loadable_categories_used].method?=?method; ????loadable_categories_used++; }

實現幾乎與 add_class_to_loadable_list 完全相同。

到這里我們完成了對 loadable_classes 以及 loadable_categories 的提供,下面會開始消耗列表中的元素。

“消費” loadable_class

調用 load 方法的過程就是“消費” loadable_classes 的過程,load_images -> call_load_methods -> call_class_loads 會從 loadable_classes 中取出對應類和方法,執行 load。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 void?call_load_methods(void) { ????static?bool?loading?=?NO; ????bool?more_categories; ????loadMethodLock.assertLocked(); ????if?(loading)?return; ????loading?=?YES; ????void?*pool?=?objc_autoreleasePoolPush(); ????do?{ ????????while?(loadable_classes_used?>?0)?{ ????????????call_class_loads(); ????????} ????????more_categories?=?call_category_loads(); ????}?while?(loadable_classes_used?>?0??||??more_categories); ????objc_autoreleasePoolPop(pool); ????loading?=?NO; }

上述方法對所有在 loadable_classes 以及 loadable_categories 中的類以及分類執行 load 方法。

1 2 3 4 5 6 do?{ ????while?(loadable_classes_used?>?0)?{ ????????call_class_loads(); ????} ????more_categories?=?call_category_loads(); }?while?(loadable_classes_used?>?0??||??more_categories);

調用順序如下:

  • 不停調用類的 + load 方法,直到 loadable_classes 為空

  • 調用一次 call_category_loads 加載分類

  • 如果有 loadable_classes 或者更多的分類,繼續調用 load 方法

相比于類 load 方法的調用,分類中 load 方法的調用就有些復雜了:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 static?bool?call_category_loads(void) { ????int?i,?shift; ????bool?new_categories_added?=?NO; ????//?1.?獲取當前可以加載的分類列表 ????struct?loadable_category?*cats?=?loadable_categories; ????int?used?=?loadable_categories_used; ????int?allocated?=?loadable_categories_allocated; ????loadable_categories?=?nil; ????loadable_categories_allocated?=?0; ????loadable_categories_used?=?0; ????for?(i?=?0;?i?<?used;?i++)?{ ????????Category?cat?=?cats[i].cat; ????????load_method_t?load_method?=?(load_method_t)cats[i].method; ????????Class?cls; ????????if?(!cat)?continue; ????????cls?=?_category_getClass(cat); ????????if?(cls??&&??cls->isLoadable())?{ ????????????//?2.?如果當前類是可加載的?`cls??&&??cls->isLoadable()`?就會調用分類的?load?方法 ????????????(*load_method)(cls,?SEL_load); ????????????cats[i].cat?=?nil; ????????} ????} ????//?3.?將所有加載過的分類移除?`loadable_categories`?列表 ????shift?=?0; ????for?(i?=?0;?i?<?used;?i++)?{ ????????if?(cats[i].cat)?{ ????????????cats[i-shift]?=?cats[i]; ????????}?else?{ ????????????shift++; ????????} ????} ????used?-=?shift; ????//?4.?為?`loadable_categories`?重新分配內存,并重新設置它的值 ????new_categories_added?=?(loadable_categories_used?>?0); ????for?(i?=?0;?i?<?loadable_categories_used;?i++)?{ ????????if?(used?==?allocated)?{ ????????????allocated?=?allocated*2?+?16; ????????????cats?=?(struct?loadable_category?*) ????????????????realloc(cats,?allocated?* ??????????????????????????????????sizeof(struct?loadable_category)); ????????} ????????cats[used++]?=?loadable_categories[i]; ????} ????if?(loadable_categories)?free(loadable_categories); ????if?(used)?{ ????????loadable_categories?=?cats; ????????loadable_categories_used?=?used; ????????loadable_categories_allocated?=?allocated; ????}?else?{ ????????if?(cats)?free(cats); ????????loadable_categories?=?nil; ????????loadable_categories_used?=?0; ????????loadable_categories_allocated?=?0; ????} ????return?new_categories_added; }

這個方法有些長,我們來分步解釋方法的作用:

  • 獲取當前可以加載的分類列表

  • 如果當前類是可加載的 cls && cls->isLoadable() 就會調用分類的 load 方法

  • 將所有加載過的分類移除 loadable_categories 列表

  • 為 loadable_categories 重新分配內存,并重新設置它的值

調用的順序

你過去可能會聽說過,對于 load 方法的調用順序有兩條規則:

  • 父類先于子類調用

  • 類先于分類調用

這種現象是非常符合我們的直覺的,我們來分析一下這種現象出現的原因。

第一條規則是由于 schedule_class_load 有如下的實現:

1 2 3 4 5 6 7 8 9 static?void?schedule_class_load(Class?cls) { ????if?(!cls)?return; ????assert(cls->isRealized()); ????if?(cls->data()->flags?&?RW_LOADED)?return; ????schedule_class_load(cls->superclass); ????add_class_to_loadable_list(cls); ????cls->setInfo(RW_LOADED);? }

這里通過這行代碼 schedule_class_load(cls->superclass) 總是能夠保證沒有調用 load 方法的父類先于子類加入 loadable_classes 數組,從而確保其調用順序的正確性。

類與分類中 load 方法的調用順序主要在 call_load_methods 中實現:

1 2 3 4 5 6 do?{ ????while?(loadable_classes_used?>?0)?{ ????????call_class_loads(); ????} ????more_categories?=?call_category_loads(); }?while?(loadable_classes_used?>?0??||??more_categories);

上面的 do while 語句能夠在一定程度上確保,類的 load 方法會先于分類調用。但是這里不能完全保證調用順序的正確。

如果分類的鏡像在類的鏡像之前加載到運行時,上面的代碼就沒法保證順序的正確了,所以,我們還需要在 call_category_loads 中判斷類是否已經加載到內存中(調用 load 方法):

1 2 3 4 if?(cls??&&??cls->isLoadable())?{ ????(*load_method)(cls,?SEL_load); ????cats[i].cat?=?nil; }

這里,檢查了類是否存在并且是否可以加載,如果都為真,那么就可以調用分類的 load 方法了。

load 的應用

load 可以說我們在日常開發中可以接觸到的調用時間最靠前的方法,在主函數運行之前,load 方法就會調用。

由于它的調用不是惰性的,且其只會在程序調用期間調用一次,最最重要的是,如果在類與分類中都實現了 load 方法,它們都會被調用,不像其它的在分類中實現的方法會被覆蓋,這就使 load 方法成為了方法調劑的絕佳時機。

但是由于 load 方法的運行時間過早,所以這里可能不是一個理想的環境,因為某些類可能需要在在其它類之前加載,但是這是我們無法保證的。不過在這個時間點,所有的 framework 都已經加載到了運行時中,所以調用 framework 中的方法都是安全的。

參考資料

NSObject +load and +initialize - What do they do?

Method Swizzling

Objective-C Class Loading and Initialization

總結

以上是生活随笔為你收集整理的你真的了解load方法么?(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

精品国产乱码久久 | 99视频+国产日韩欧美 | 超碰97国产精品人人cao | 欧美极度另类 | 激情网婷婷 | 久久久精品国产一区二区电影四季 | 亚洲狠狠操 | 久久国产精品99久久久久久老狼 | 国产亚洲欧美一区 | 亚洲午夜精品久久久久久久久久久久 | 在线你懂 | 肉色欧美久久久久久久免费看 | av成人在线观看 | 精品uu | 热久久免费国产视频 | 久久国产精品一国产精品 | 国产精品私拍 | 特级毛片爽www免费版 | 欧美一级片免费 | 精品99久久 | 免费视频 三区 | 日本aa在线 | 国产在线国偷精品产拍免费yy | 五月天综合色激情 | 亚洲 欧美 日韩 综合 | 亚洲精品视频第一页 | 91在线精品播放 | 精品爱爱| 久久久精品网站 | 久久色中文字幕 | 精品亚洲男同gayvideo网站 | 欧美精彩视频在线观看 | 久久综合狠狠综合久久狠狠色综合 | 久久久精品一区二区 | 成人精品福利 | 欧美久久成人 | 日韩欧美在线视频一区二区三区 | 久久国产高清 | 日日爱影视 | 九色视频自拍 | 久久一区二 | 国产毛片久久久 | 中文字幕一区二区三区视频 | 一区二区在线电影 | 久草视频在线新免费 | 亚洲精品999 | 五月婷婷一区 | 久久久久99精品成人片三人毛片 | 免费高清影视 | 国内成人综合 | 久久久亚洲成人 | 国产一区视频免费在线观看 | 中文字幕亚洲精品日韩 | 久草在线国产 | 婷婷视频 | 国产精品综合久久久久 | 国产精品久久久久久久久久三级 | 成全免费观看视频 | 中文字幕在线网址 | 国产精品久久久区三区天天噜 | 国产不卡一区二区视频 | 激情视频免费观看 | 亚洲一级免费观看 | 一区二区免费不卡在线 | 色香com. | 欧美无极色| 久草久草在线观看 | 色婷婷久久久综合中文字幕 | 国产一区二区久久久久 | 伊人色综合久久天天网 | www.久草.com| 日日操网 | 涩涩网站在线 | av播放在线| 国产成人精品三级 | 久草网视频在线观看 | 日韩网页 | 91网在线看| 狂野欧美激情性xxxx | 国产亚洲精品久久久久久电影 | 国产亚洲精品女人久久久久久 | 在线免费观看麻豆视频 | 波多野结衣一区三区 | 91久久在线观看 | 99色精品视频 | 91成人小视频| 香蕉视频国产在线 | 久草综合在线 | 久久人人爽视频 | 日日干夜夜草 | 狠狠久久伊人 | 精品国产区 | 天天操夜夜操国产精品 | 久久九九影院 | 天天操夜夜爱 | 久草色在线观看 | 久久免费在线 | 久久久久精| 国产电影一区二区三区四区 | 夜夜嗨av色一区二区不卡 | 久久99久久99精品免观看软件 | 超碰人人草人人 | av免费片 | 成人sm另类专区 | 国产精品美女久久久 | 黄色成人在线网站 | 色噜噜噜 | a久久久久久 | 99精品毛片| 国产午夜免费视频 | 日韩av线观看 | 国产主播大尺度精品福利免费 | 一性一交视频 | 伊香蕉大综综综合久久啪 | 亚洲欧美日韩中文在线 | av888.com| 中文字幕在线观看完整版电影 | 国产一级视频在线 | 久久久久久久久久久久久久av | 欧美精品网站 | 亚洲黄色在线 | 91亚洲精品久久久久图片蜜桃 | 超碰97在线人人 | 欧美日韩中文字幕综合视频 | 精品美女视频 | 亚洲午夜久久久久久久久久久 | 日韩精品免费一区二区三区 | 久久精品中文字幕一区二区三区 | 欧美 日韩 久久 | 色一色在线 | 91九色pron| 色av资源网| 色a网| 国产精品美女视频网站 | 成人a视频 | 国产91成人 | 成人午夜在线观看 | 欧美日韩亚洲精品在线 | 亚洲精品理论片 | 欧美有色 | 91最新网址在线观看 | 成人一区二区三区在线观看 | 国产日产精品一区二区三区四区 | 国产高清无线码2021 | 黄色一级大片在线免费看产 | 香蕉视频国产在线 | 国产系列在线观看 | 日韩激情网 | 欧美 另类 交 | 正在播放亚洲精品 | 97碰在线视频 | 亚洲精品美女久久17c | 中文字幕高清免费日韩视频在线 | 久久a久久 | 亚洲欧美怡红院 | 久久久国产精品成人免费 | 日韩色高清 | 国产日韩亚洲 | 四虎影院在线观看av | 亚洲成 人精品 | 99re8这里有精品热视频免费 | 国产精品久久99精品毛片三a | 国产中文字幕亚洲 | 91成人在线观看喷潮 | 午夜天天操| 97视频免费在线观看 | 网站你懂的 | 日日精品 | wwwww.国产| 天天操操操操操操 | 日韩中午字幕 | 国产一级三级 | 久久国产精品视频免费看 | 九九日韩 | 日韩精品一区二区三区免费观看视频 | 黄色成人小视频 | 国产又粗又硬又爽视频 | 中文字幕在线观看一区 | av高清一区二区三区 | 91日韩精品一区 | 日韩综合精品 | 91福利在线观看 | 中文字幕在线看片 | 亚洲 精品在线视频 | 欧美亚洲国产精品久久高清浪潮 | 免费在线日韩 | 黄色小说视频在线 | 亚洲日本va中文字幕 | x99av成人免费 | 免费看片成人 | 国产视频一级 | 亚洲精品乱码白浆高清久久久久久 | 精品国产理论 | 久久国产精品久久精品国产演员表 | 麻豆91在线看 | 久久综合加勒比 | 亚洲三级性片 | 婷婷丁香花五月天 | 精品视频97 | 99精品国产一区二区三区不卡 | 精品国产精品久久一区免费式 | 亚洲 欧美变态 另类 综合 | 免费看国产一级片 | 国产视频日韩 | 美女视频黄在线观看 | 精品超碰| 国产精品一区二区三区电影 | 精品av网站 | 五月天丁香视频 | 三级黄色在线观看 | 精品国产电影一区 | 日韩精品亚洲专区在线观看 | 在线视频观看亚洲 | 人人干人人草 | 韩国三级av在线 | 国产精品免费久久久久 | 特级毛片在线观看 | 国产福利免费在线观看 | 国产无遮挡又黄又爽在线观看 | 亚洲在线资源 | 超碰夜夜| 在线日韩精品视频 | 日韩免费看 | 国产综合福利在线 | 久久狠狠婷婷 | 免费在线观看黄网站 | 在线免费成人 | 人人澡超碰碰97碰碰碰软件 | 天天干天天射天天爽 | 日韩精品一区二区在线观看 | 狠狠色丁香婷婷综合久久片 | 中文字幕999 | 国产系列 在线观看 | 日韩免费网址 | 国产h片在线观看 | 热久久免费视频精品 | 91亚洲成人 | 日韩在线视频免费播放 | 久久久久女教师免费一区 | 在线免费观看涩涩 | 国产精品久久久久久久久软件 | 91黄色在线看 | 91久久国产露脸精品国产闺蜜 | 欧美成人播放 | 在线免费观看国产视频 | 亚洲国产精品99久久久久久久久 | 日日夜夜天天 | 999久久久免费视频 午夜国产在线观看 | 亚洲精品小区久久久久久 | 欧美视频xxx | 亚洲人在线视频 | 日韩激情在线视频 | 欧美 日韩 久久 | 国产高清网站 | www国产亚洲精品久久麻豆 | 国产婷婷 | 国产一区视频在线播放 | 亚洲午夜久久久影院 | av在线一| 99精品视频一区二区 | av看片网| 国产精品久久久久久久久久不蜜月 | av大全在线播放 | 永久免费精品视频 | 国产精品手机视频 | 99久久久久久久久久 | 欧美精品小视频 | 九九免费精品视频在线观看 | 国产精品第一视频 | 日韩免费播放 | 最近乱久中文字幕 | 成人免费观看网址 | 久久激情小说 | 欧美动漫一区二区三区 | 黄色成人在线观看 | 天天干视频在线 | www.色就是色 | 亚洲精品五月天 | 欧美一级特黄高清视频 | 欧美一区二区三区免费观看 | 亚洲国产免费av | 久久96国产精品久久99漫画 | 精品国产午夜 | 欧美日韩国产一二三区 | 亚洲精品国偷拍自产在线观看 | 久久精品—区二区三区 | 午夜精品久久久久久久久久久久 | 91在线视频精品 | 一区视频在线 | 日本久久久久久科技有限公司 | 欧美一级日韩三级 | 国产福利一区二区在线 | 又黄又爽又刺激 | 精品久久1 | 狠狠操欧美 | 久久最新视频 | 国产精品一区二区 91 | 美女国产在线 | 久久怡红院 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产二区免费视频 | 欧美另类亚洲 | 亚洲成人网在线 | 99精品系列 | 亚洲国产日韩精品 | 亚洲热久久 | 99国产视频| 欧美日韩xxxxx | 美女视频黄免费网站 | 亚洲永久精品视频 | 欧美另类交人妖 | 曰韩在线 | 久久久久 | 欧美成人在线网站 | 精品久久久久久综合日本 | 成人啪啪18免费游戏链接 | 日日操日日插 | www.色五月.com | 国产精品人人做人人爽人人添 | 亚洲精选在线 | 激情综合五月天 | 人人爽久久久噜噜噜电影 | 天天爽天天碰狠狠添 | 五月色婷 | 色综合a | 色在线免费观看 | 色播五月激情五月 | 免费黄色激情视频 | 五月开心激情网 | 成人av资源在线 | 一二三久久久 | 日韩 国产| av大全在线播放 | 欧美乱码精品一区二区 | se视频网址 | 99免费在线视频观看 | 午夜视频一区二区三区 | 五月天国产 | 中文字幕在线免费看线人 | 中文字幕日本电影 | 97免费| 在线国产欧美 | 久久免费视频精品 | 在线观看视频你懂得 | 444av| 国产欧美综合视频 | 五月天激情视频在线观看 | 国产精品18久久久 | 日韩视频一区二区在线观看 | 波多野结衣在线中文字幕 | 久草热视频| 五月激情丁香婷婷 | 91视视频在线直接观看在线看网页在线看 | 外国av网 | 中文字幕综合在线 | 综合久久久 | 色婷婷 亚洲 | 97视频免费 | 欧美成人久久 | 天海翼一区二区三区免费 | 国产精品 日本 | 婷婷九月激情 | 人人人爽 | 亚洲精品综合一二三区在线观看 | 色综合咪咪久久网 | 丁香婷婷射| 天堂在线成人 | 五月天亚洲综合小说网 | 亚洲精品理论 | 97精品国产 | 午夜日b视频 | 97视频入口免费观看 | 国产伦精品一区二区三区在线 | 日本最新中文字幕 | 欧美日韩一区二区三区免费视频 | 天天做天天爱天天爽综合网 | 国产午夜一区二区 | 精品在线小视频 | 久久高清视频免费 | 视频在线观看99 | 国产一区高清在线 | 国产视频九色蝌蚪 | 97狠狠操| 国产中文字幕亚洲 | 特级a老妇做爰全过程 | 狠狠色噜噜狠狠狠狠2022 | 久久九九影视网 | 亚洲成人网在线 | 午夜三级影院 | 成人av视屏 | 国产色秀视频 | 久久人人爽人人爽人人片 | 欧美日本不卡高清 | 香蕉视频亚洲 | 青青草华人在线视频 | 久久久精品国产免费观看同学 | 91一区二区在线 | 97视频人人免费看 | 五月婷婷激情网 | 91传媒91久久久 | 亚洲日本一区二区在线 | 日本久久久久 | 91看片麻豆 | 日夜夜精品视频 | 国产精品18久久久久久久 | 国产色婷婷精品综合在线手机播放 | 国产一区二区三区免费视频 | 欧美亚洲成人xxx | 国产中文字幕在线视频 | 黄色福利 | 丁香婷婷综合网 | 在线观看一级视频 | 婷婷.com| 国产又粗又猛又黄又爽的视频 | 欧美精品v国产精品v日韩精品 | 婷婷视频在线 | 日韩一区二区免费播放 | 国产精品成人一区二区三区吃奶 | 在线视频精品播放 | 又黄又爽又色无遮挡免费 | 91黄色在线视频 | 成年人天堂com | 久久香蕉国产 | 超级碰99| 欧美男男激情videos | 7777xxxx | 国产精品视频在线看 | 免费97视频 | 国产视频999 | 免费精品视频 | 99视屏 | 综合色天天 | 国产色婷婷在线 | 国产麻豆精品免费视频 | 久久av中文字幕片 | 美国av大片 | 黄色大全在线观看 | 亚色视频在线观看 | 久久伊人精品一区二区三区 | 免费视频久久久 | 日日弄天天弄美女bbbb | 天天操天天干天天干 | 伊人色综合久久天天网 | 最新av网址在线观看 | 国产精品99久久久久 | 在线网站黄 | 中文字幕免费久久 | 国产123区在线观看 国产精品麻豆91 | 国产精品久久久久久久久久久久久 | 在线观看日韩精品 | 4438全国亚洲精品观看视频 | 国产1级毛片 | 9色在线视频 | 伊人五月 | 国产精品一区二区三区99 | 亚洲午夜不卡 | 四虎成人精品永久免费av九九 | 中文字幕综合在线 | 国产区免费在线 | 欧美精品一级视频 | 丁香五香天综合情 | 国产精品黄 | 97在线观看视频免费 | 中文字幕亚洲五码 | 最新av在线网站 | 成人久久亚洲 | 高清中文字幕av | 超碰97人人在线 | av资源免费看 | 最近高清中文字幕 | 日韩欧美一区二区在线播放 | 日韩区欧美久久久无人区 | 精品国产乱码久久久久 | 2000xxx影视 | 97在线精品国自产拍中文 | av资源免费观看 | 久久久综合香蕉尹人综合网 | av网址在线播放 | 欧洲色综合 | 欧美亚洲成人免费 | 国产精品永久久久久久久久久 | 国产国语在线 | 欧美日韩不卡一区二区三区 | 国内精品久久久久久久97牛牛 | 久久久影院一区二区三区 | 国产玖玖精品视频 | 亚洲人av免费网站 | 欧美日韩一级在线 | 波多野结衣电影一区 | 人人爽人人干 | 在线亚洲欧美视频 | 亚洲欧美国产日韩在线观看 | 国产视频一二区 | 性色av香蕉一区二区 | 中文字幕日韩av | 欧美成年黄网站色视频 | 免费视频一二三区 | 欧美在线不卡一区 | 91福利视频网站 | 日韩精品一区二区三区在线播放 | 中文av免费| 在线视频麻豆 | 久久精品看片 | 欧美一级久久 | 国产中文字幕视频在线观看 | 国产999精品久久久影片官网 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 久久久久久久影院 | www.久久精品视频 | 天天拍天天色 | 成人黄色电影免费观看 | 欧美黄色高清 | 国产字幕av | 国产成人精品在线播放 | 天天做日日做天天爽视频免费 | 亚洲视频一区二区三区在线观看 | 久久久久在线观看 | 久艹视频在线免费观看 | 在线观看成人小视频 | 日韩视频一区二区 | 高清av免费一区中文字幕 | 色综合天天视频在线观看 | 天天做天天爱夜夜爽 | 亚洲 综合 国产 精品 | av线上看| 久久激情电影 | 日韩欧美一区二区在线观看 | 亚洲一区二区黄色 | 婷婷久久综合九色综合 | 九九交易行官网 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 久久久久久久久久久久电影 | 在线观看中文字幕网站 | 亚洲情感电影大片 | 久久国产精品99国产 | 1024手机基地在线观看 | 韩国在线一区 | 91在线精品秘密一区二区 | 国产免费午夜 | 在线欧美小视频 | a黄色大片 | 色九九影院| 人人射人人爱 | 国产精品免费人成网站 | 极品国产91在线网站 | 国产精品资源在线观看 | 国产一区二区三区免费视频 | 成人性生爱a∨ | 国产精品ssss在线亚洲 | 国产中文欧美日韩在线 | 中文久草 | 国产福利一区二区三区视频 | 国产日韩欧美在线播放 | 成年人免费看 | 国产品久精国精产拍 | 国产精品午夜av | 国产精品一区二区在线观看免费 | 国产日韩一区在线 | 香蕉视频免费看 | 国产一区二区高清 | 国产精品免费人成网站 | 亚洲国产中文字幕在线观看 | 色婷婷狠狠干 | 色鬼综合网 | 国产亚洲欧美一区 | 91桃色视频| 欧美特一级片 | 超碰人人在线观看 | 国产小视频在线 | 久久精品一二区 | 久久国内视频 | 激情五月播播久久久精品 | 免费美女av| 丁香导航 | 91网址在线| 久久久国产一区二区三区四区小说 | 免费99精品国产自在在线 | 最新中文在线视频 | 久草线 | 福利视频精品 | 日本精品视频在线播放 | 亚洲精品午夜久久久久久久 | 91免费日韩 | 日本三级国产 | 操操日日| aaa日本高清在线播放免费观看 | 久草电影免费在线观看 | 成人av高清| 欧美韩日视频 | 国产视频一区二区在线观看 | 五月婷婷另类国产 | 美腿丝袜一区二区三区 | 成人黄色电影在线播放 | 三级av片 | 国产色久| 91 在线视频播放 | 久草久| 成人h动漫在线看 | 怡红院久久 | 欧洲一区二区三区精品 | 亚洲小视频在线 | 欧美精品在线视频 | 国产精品亚洲片在线播放 | 中文字幕亚洲欧美日韩 | 免费福利在线观看 | 草久久影院 | 成人免费视频网站在线观看 | 亚洲综合一区二区精品导航 | 97在线精品国自产拍中文 | 日日干天天爽 | www.久久com | 三级视频片| 国产黄在线免费观看 | 超碰在线资源 | 亚州av网站 | 丁香午夜 | 日韩精品第一区 | 中文字幕在线一二 | 中文字幕五区 | 三级在线视频观看 | 日日干天天插 | 婷婷久久网 | 69精品久久| 婷婷在线色 | 日韩专区在线 | 日韩黄色免费在线观看 | 天天射天| 国产69精品久久久久9999apgf | 成人午夜av电影 | 免费看三级 | 狠狠网亚洲精品 | 超碰在线公开 | 99久久影视 | 在线视频 你懂得 | 久久三级视频 | 亚洲在线观看av | 天天操综合网 | 黄色三级av | 黄在线免费观看 | 麻豆91精品视频 | 亚洲精选在线观看 | 四虎影视欧美 | 国产无限资源在线观看 | 精品久久久久久久久久久久 | 色资源在线 | 日本高清免费中文字幕 | 久久观看最新视频 | 激情xxxx | 午夜精品一二三区 | 丁香视频全集免费观看 | 一区二区三区免费看 | 一区二区不卡 | 91女神的呻吟细腰翘臀美女 | 欧美一级视频在线观看 | 久久久久久久国产精品视频 | 久草在线最新免费 | 中文字幕日韩av | 成人 国产 在线 | 在线观看av黄色 | 九九久久久久99精品 | 91精品欧美一区二区三区 | 在线导航av | 久久久精品 一区二区三区 国产99视频在线观看 | 亚洲第一香蕉视频 | 亚洲精品视频免费 | 久久久在线观看 | 在线成人性视频 | 国产老熟 | 国产手机在线视频 | 日韩精品在线免费播放 | 在线播放一区 | 超碰97国产| 91av社区| 国产精品综合久久久久 | 麻豆传媒视频在线免费观看 | 中文字幕亚洲不卡 | 麻豆国产露脸在线观看 | 99精品久久精品一区二区 | 日韩中文字幕免费在线观看 | 免费又黄又爽视频 | 操操操日日| 免费日韩精品 | 国产人成在线视频 | 国产精品精品视频 | 日韩av高清在线观看 | av看片在线观看 | 五月婷婷影院 | 国产黄色大片 | 婷婷资源站 | 狠狠狠狠狠狠天天爱 | 精品一二三区视频 | 尤物一区二区三区 | 日韩乱色精品一区二区 | 亚洲精品黄网站 | 日韩电影久久久 | 免费无遮挡动漫网站 | ,午夜性刺激免费看视频 | 亚洲乱码国产乱码精品天美传媒 | 久久国产精品视频观看 | 999热线在线观看 | 91免费版在线 | 欧美日韩一二三四区 | 中文字幕免费久久 | 天天干天天插 | 国产精品99久久久久 | 久久久久久久久免费视频 | 91视频91蝌蚪 | 久久免费99精品久久久久久 | 午夜精品久久久久久久99 | 国产精品免费小视频 | 日韩精品视 | 久久国精品 | 国产一级免费片 | 992tv人人草 黄色国产区 | 婷婷久久亚洲 | 国产精品精品国产婷婷这里av | av资源在线看 | 九九视频网站 | 国产在线久久久 | 黄色字幕网 | 欧美日韩天堂 | 欧美精品亚洲精品日韩精品 | 521色香蕉网站在线观看 | 国产一区二区三精品久久久无广告 | 亚洲男男gaygay无套同网址 | 婷婷网站天天婷婷网站 | 久久精品专区 | 国产日本亚洲高清 | 精品久久久精品 | 婷婷丁香色综合狠狠色 | 美女视频免费精品 | 欧美乱码精品一区 | 久久第四色 | 国产精品精品国产婷婷这里av | 香蕉在线观看视频 | 黄色在线成人 | 国产黄色看片 | 美女中文字幕 | 中文字幕在线不卡国产视频 | 成人小视频在线播放 | 欧美精品亚洲精品日韩精品 | 色五月成人 | 99re6热在线精品视频 | 国产精品久久一 | 日韩字幕| 亚洲人av免费网站 | 成人啊 v | 色综合天天综合在线视频 | 国产伦精品一区二区三区无广告 | 不卡av在线免费观看 | 韩国av免费观看 | 在线观看国产亚洲 | 日韩在线视频一区 | 国内免费的中文字幕 | av综合在线观看 | 九九热1 | 久久电影中文字幕视频 | www日韩在线观看 | 美女网站在线播放 | 久久高清免费观看 | 免费看黄20分钟 | 人人舔人人舔 | 国内精品久久久久久 | 天天射网| 毛片视频网址 | 免费热情视频 | 日本高清免费中文字幕 | 亚洲精品88欧美一区二区 | 男女视频久久久 | 日日干网 | 亚洲 欧美 国产 va在线影院 | 亚洲一区精品二人人爽久久 | 99欧美视频 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 91丨九色丨国产女 | 国产色综合 | 狠狠色噜噜狠狠狠合久 | 一区二区在线影院 | 国产精品美 | 日韩黄色大片在线观看 | 精品美女久久久久久免费 | 在线免费观看国产精品 | 久久99国产精品久久 | 久久久九色精品国产一区二区三区 | 1000部国产精品成人观看 | 69绿帽绿奴3pvideos | 天天综合久久 | www.久久色 | 免费视频91蜜桃 | 91高清视频在线 | 又爽又黄在线观看 | av电影亚洲 | 欧美性生活久久 | 99精品久久99久久久久 | 久久国产免费视频 | 午夜久久福利视频 | 天天躁日日躁狠狠躁av中文 | 九九热免费观看 | 99久久久国产精品免费观看 | 日韩欧美精品在线 | 成人av午夜 | 日韩高清激情 | 久久av中文字幕片 | 在线免费中文字幕 | 午夜精品一区二区三区在线 | 麻豆综合网 | 欧美男男激情videos | 国产剧情一区二区 | 久久天| 色噜噜狠狠狠狠色综合久不 | 久久精品免视看 | 午夜在线观看影院 | 日韩无在线 | 久久怡红院 | 天天爱天天操天天爽 | 首页中文字幕 | 91av视频在线观看免费 | 日韩三级视频在线观看 | 久久av一区二区三区亚洲 | 国产亚洲精品久久久久久电影 | 日日干天夜夜 | 成年人在线免费看视频 | 欧美精品网站 | 中文字幕久久网 | 91在线精品秘密一区二区 | 亚洲黄色免费网站 | 黄色毛片视频免费观看中文 | 国产精品永久免费在线 | 国产91大片 | 国产高清在线观看av | 欧美精品一区二区性色 | 香蕉视频导航 | 日日操夜夜操狠狠操 | 久久国内精品视频 | 菠萝菠萝在线精品视频 | 国产精品99久久免费观看 | 日本成人免费在线观看 | 久久久高清一区二区三区 | 国产日韩视频在线播放 | 成年人在线观看免费视频 | av中文字幕在线电影 | 久草综合在线观看 | 国产精品12345 | 精品久久久一区二区 | 黄色高清视频在线观看 | 91大神精品视频 | 国产一区在线播放 | 亚洲精品麻豆 | 国产一区二区高清 | 久草网视频 | 伊人亚洲精品 | 中文字幕视频网站 | 日韩中文字幕电影 | 97在线视频免费观看 | www激情com| 国产一区二区在线播放视频 | 亚洲精品色婷婷 | 久久久久久黄色 | 又爽又黄又无遮挡网站动态图 | 91成人免费看 | 又黄又爽又无遮挡免费的网站 | a在线观看视频 | 二区三区在线观看 | 久久99亚洲热视 | 午夜精品久久久久久久久久 | 久久精品中文 | 精品一区精品二区 | 99这里只有精品99 | 成人久久久久久久久久 | 麻豆视频www | 亚洲视频在线播放 | 一级片色播影院 | bbw av| 久久九九精品 | 欧美欧美| 亚洲欧洲国产精品 | 五月天av在线| 欧美精品久久久久久久 | 亚洲区精品视频 | 欧美日韩视频在线观看一区二区 | av电影中文| 日韩试看 | 国产精选在线观看 | www五月| 国产精品久久久久久久久久久不卡 | 伊人影院在线观看 | 91久久精品一区二区二区 | 狠狠躁18三区二区一区ai明星 | 久久久久久久国产精品视频 | 69av免费视频 | 午夜国产一区二区 | 国产视频精品久久 | 国产精品视频久久久 | 亚洲精品影视 | 日韩一区正在播放 | 西西444www大胆高清图片 | 婷婷在线网站 | 日韩av电影中文字幕 | 狠狠躁夜夜躁人人爽超碰91 | av中文在线 | 天天视频色 | 亚州精品一二三区 | 一个色综合网站 | 99久久久国产精品免费观看 | 久久国产精品色av免费看 | 五月花激情 | 久久电影国产免费久久电影 | 亚洲综合色婷婷 | 9999在线观看 | 国产网站在线免费观看 | 在线欧美国产 | www.香蕉视频在线观看 | 波多野结衣一区二区三区中文字幕 | 久青草国产在线 | 日日夜夜亚洲 | 精品伊人久久久 | 97在线观| 91丨九色丨蝌蚪丨老版 | 久久国产美女 | 日韩www在线| 亚洲一区二区精品3399 | 久久er99热精品一区二区三区 | 国产日韩欧美精品在线观看 | 欧美黑人性猛交 | 成人毛片一区二区三区 | 国产小视频免费在线观看 | 久久a国产 | 99久久精品日本一区二区免费 | 在线看小早川怜子av | 国产精品成人久久 | 亚洲精品中文字幕视频 | 久久这里只有精品1 | 国内精品在线一区 | 中文字幕一区在线 | 欧美激情视频一二三区 | 在线播放亚洲 | 久久久成人精品 | 成人精品国产 | 不卡在线一区 | 成人h电影在线观看 | 日韩精品免费一区二区 | 国产精品18久久久久白浆 | 欧美一级免费高清 | 国产精品综合在线观看 | 日韩高清精品一区二区 | 亚洲视频综合在线 | 国产成人777777 | www.av中文字幕.com | 97在线精品| 婷婷色中文字幕 | 亚洲成人黄 | 91综合视频在线观看 | 国产99色| 在线观看免费成人av | 久久不见久久见免费影院 | 日韩电影久久久 | 欧美91在线 | 国产+日韩欧美 | 精品久久国产 | 韩日精品在线观看 | 国产乱码精品一区二区三区介绍 | 香蕉日日 | 国产美女黄网站免费 | 99久久久久久久 | 激情欧美一区二区三区免费看 | 免费下载高清毛片 | 成人久久影院 | 日韩精品一区二区三区外面 | 免费av大片 | 99精品视频免费在线观看 | 国产日本亚洲 | 婷婷色综合网 | 国产人成看黄久久久久久久久 | 五月婷婷激情六月 | www.天天成人国产电影 | 日韩精品一区电影 | 精品国产三级a∨在线欧美 免费一级片在线观看 | av在线免费观看不卡 | 黄色亚洲免费 | 色噜噜噜| 中国一级片在线观看 | 国产精品综合av一区二区国产馆 | 91黄色小视频 | 亚洲人在线 | 欧美日产一区 | 国产欧美精品在线观看 | 国产亚洲情侣一区二区无 | 国产一区二区手机在线观看 | 97日日碰人人模人人澡分享吧 | 欧美精品久久久久久久久久白贞 | 日韩乱色精品一区二区 | 狠狠干电影 | 韩日精品中文字幕 | 亚洲精品777 | av福利电影 | 国产成人精品亚洲日本在线观看 | 久久免费视频在线观看 | 国产精品久久久久久久午夜 |