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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Spark源码分析 -- SchedulableBuilder

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

SchedulableBuilder就是對(duì)Scheduleable tree的封裝,
在Pool層面(中間節(jié)點(diǎn)), 完成對(duì)TaskSet的調(diào)度(FIFO, FAIR)
在TaskSetManager 層面(葉子節(jié)點(diǎn)), 完成對(duì)TaskSet中task的調(diào)度(locality)以及track(retry)

TaskSetManager

用于封裝TaskSet, 主要提供對(duì)單個(gè)TaskSet內(nèi)部的tasks的track和schedule
所以主要的接口,
resourceOffer, 對(duì)于一個(gè)resource offer, 如何schedule一個(gè)task來執(zhí)行
statusUpdate, 對(duì)于task狀態(tài)的track

/*** Tracks and schedules the tasks within a single TaskSet. This class keeps track of the status of* each task and is responsible for retries on failure and locality. The main interfaces to it* are resourceOffer, which asks the TaskSet whether it wants to run a task on one node, and* statusUpdate, which tells it that one of its tasks changed state (e.g. finished).** THREADING: This class is designed to only be called from code with a lock on the TaskScheduler* (e.g. its event handlers). It should not be called from other threads.*/ private[spark] trait TaskSetManager extends Schedulable {def schedulableQueue = null def schedulingMode = SchedulingMode.NONEdef taskSet: TaskSetdef resourceOffer(execId: String,host: String,availableCpus: Int,maxLocality: TaskLocality.TaskLocality): Option[TaskDescription]def statusUpdate(tid: Long, state: TaskState, serializedData: ByteBuffer)def error(message: String) }

?

ClusterTaskSetManager

ClusterScheduler上對(duì)于TaskSetManager的實(shí)現(xiàn)

1 addPendingTask
locality, 在schedule時(shí)候需要考慮, 應(yīng)該優(yōu)先執(zhí)行盡可能近的task
所有未被執(zhí)行的tasks, 都是pending task, 并且是安裝不同locality粒度存儲(chǔ)在hashmap中的
pendingTasksForExecutor, hashmap, 每個(gè)executor被指定的task
pendingTasksForHost,? hashmap, 每個(gè)instance被指定的task
pendingTasksForRack, hashmap, 每個(gè)機(jī)架被指定的task
pendingTasksWithNoPrefs, ArrayBuffer, 沒有l(wèi)ocality preferences的tasks, 隨便在那邊執(zhí)行
allPendingTasks, ArrayBuffer, 所有的pending task
speculatableTasks, 重復(fù)的task, 熟悉hadoop的應(yīng)該容易理解
可以繼續(xù)看下addPendingTask, 如何把task加到各個(gè)list上去

addPendingTask(index: Int, readding: Boolean = false)
兩個(gè)參數(shù),
index, task的index, 用于從taskset中取得task
readding, 表示是否新的task, 因?yàn)楫?dāng)executor失敗的時(shí)候, 也需要把task重新再加到各個(gè)list中, list中有重復(fù)的task是沒有關(guān)系的, 因?yàn)檫x取task的時(shí)候會(huì)自動(dòng)忽略已經(jīng)run的task

?

2 resourceOffer
解決如何在taskset內(nèi)部schedule一個(gè)task, 主要需要考慮的是locality, 直接看注釋
其中比較意思的是, 對(duì)currentLocalityIndex的維護(hù)
初始時(shí)為0, PROCESS_LOCAL, 只能選擇PendingTasksForExecutor
每次調(diào)用resourceOffer, 都會(huì)計(jì)算和前一次task launch之間的時(shí)間間隔, 如果超時(shí)(各個(gè)locality的超時(shí)時(shí)間不同), currentLocalityIndex會(huì)加1, 即不斷的放寬
而代表前一次的lastLaunchTime, 只有在resourceOffer中成功的findTask時(shí)會(huì)被更新, 所以邏輯就是優(yōu)先選擇更local的task, 但當(dāng)findTask總失敗時(shí), 說明需要放寬
但是放寬后, 當(dāng)有比較local的task被選中時(shí), 這個(gè)currentLocalityIndex還會(huì)縮小, 因?yàn)槊看味紩?huì)把tasklocality賦值給currentLocality

?

3 statusUpdate
應(yīng)對(duì)statusUpdate, 主要是通過在clusterScheduler中注冊(cè)的listener通知DAGScheduler
當(dāng)然對(duì)于失敗的task, 還要再加到pending list里面去

/*** Schedules the tasks within a single TaskSet in the ClusterScheduler. This class keeps track of* the status of each task, retries tasks if they fail (up to a limited number of times), and* handles locality-aware scheduling for this TaskSet via delay scheduling. The main interfaces* to it are resourceOffer, which asks the TaskSet whether it wants to run a task on one node,* and statusUpdate, which tells it that one of its tasks changed state (e.g. finished).** THREADING: This class is designed to only be called from code with a lock on the* ClusterScheduler (e.g. its event handlers). It should not be called from other threads.*/ private[spark] class ClusterTaskSetManager(sched: ClusterScheduler,val taskSet: TaskSet,clock: Clock = SystemClock)extends TaskSetManagerwith Logging { val tasks = taskSet.tasksval numTasks = tasks.length
// Set of pending tasks for each executor. These collections are actually// treated as stacks, in which new tasks are added to the end of the// ArrayBuffer and removed from the end. This makes it faster to detect// tasks that repeatedly fail because whenever a task failed, it is put// back at the head of the stack. They are also only cleaned up lazily;// when a task is launched, it remains in all the pending lists except// the one that it was launched from, but gets removed from them later.private val pendingTasksForExecutor = new HashMap[String, ArrayBuffer[Int]]// Set of pending tasks for each host. Similar to pendingTasksForExecutor,// but at host level.private val pendingTasksForHost = new HashMap[String, ArrayBuffer[Int]]// Set of pending tasks for each rack -- similar to the above.private val pendingTasksForRack = new HashMap[String, ArrayBuffer[Int]]// Set containing pending tasks with no locality preferences.val pendingTasksWithNoPrefs = new ArrayBuffer[Int]// Set containing all pending tasks (also used as a stack, as above).val allPendingTasks = new ArrayBuffer[Int]// Tasks that can be speculated. Since these will be a small fraction of total// tasks, we'll just hold them in a HashSet.val speculatableTasks = new HashSet[Int] ? // Figure out which locality levels we have in our TaskSet, so we can do delay schedulingval myLocalityLevels = computeValidLocalityLevels() // 當(dāng)前TaskSet里面的task locality有哪些val localityWaits = myLocalityLevels.map(getLocalityWait) // 每個(gè)locality level默認(rèn)的等待時(shí)間(從配置讀)// Delay scheduling variables: we keep track of our current locality level and the time we// last launched a task at that level, and move up a level when localityWaits[curLevel] expires.// We then move down if we manage to launch a "more local" task.var currentLocalityIndex = 0 // 當(dāng)前myLocalityLevels中的index, 從0開始, 從最小的開始schedulevar lastLaunchTime = clock.getTime() // 記錄最后launch task的時(shí)間, 用于后面會(huì)算超時(shí), 如果發(fā)生超時(shí), currentLocalityIndex+1 ? /*** Add a task to all the pending-task lists that it should be on. If readding is set, we are* re-adding the task so only include it in each list if it's not already there.*/private def addPendingTask(index: Int, readding: Boolean = false) {// Utility method that adds `index` to a list only if readding=false or it's not already theredef addTo(list: ArrayBuffer[Int]) {if (!readding || !list.contains(index)) { // 新的的task或在該list里面沒有list += index}}var hadAliveLocations = falsefor (loc <- tasks(index).preferredLocations) {for (execId <- loc.executorId) {if (sched.isExecutorAlive(execId)) {addTo(pendingTasksForExecutor.getOrElseUpdate(execId, new ArrayBuffer)) // 首先加到相應(yīng)的executor列表中hadAliveLocations = true}}if (sched.hasExecutorsAliveOnHost(loc.host)) {addTo(pendingTasksForHost.getOrElseUpdate(loc.host, new ArrayBuffer)) // 加到host的列表中 for (rack <- sched.getRackForHost(loc.host)) {addTo(pendingTasksForRack.getOrElseUpdate(rack, new ArrayBuffer)) // 加到Rack的列表中}hadAliveLocations = true}}if (!hadAliveLocations) { // 如果上面的選擇都失敗了, 或本來就沒有preferred locations, 那就加到pendingTasksWithNoPrefs中// Even though the task might've had preferred locations, all of those hosts or executors// are dead; put it in the no-prefs list so we can schedule it elsewhere right away.addTo(pendingTasksWithNoPrefs)}if (!readding) { // 對(duì)于新的task, 需要加到allPendingTasks中allPendingTasks += index // No point scanning this whole list to find the old task there}} ? /*** Dequeue a pending task for a given node and return its index and locality level.* Only search for tasks matching the given locality constraint.*/private def findTask(execId: String, host: String, locality: TaskLocality.Value): Option[(Int, TaskLocality.Value)] ={// 先從Executor for (index <- findTaskFromList(getPendingTasksForExecutor(execId))) { // findTaskFromList, Dequeue a pending task from the given list and return its index.return Some((index, TaskLocality.PROCESS_LOCAL))}// Node, 需要先check localityif (TaskLocality.isAllowed(locality, TaskLocality.NODE_LOCAL)) { // locality >= TaskLocality.NODE_LOCAL for (index <- findTaskFromList(getPendingTasksForHost(host))) {return Some((index, TaskLocality.NODE_LOCAL))}}// Rack, 需要先check locality if (TaskLocality.isAllowed(locality, TaskLocality.RACK_LOCAL)) {for {rack <- sched.getRackForHost(host)index <- findTaskFromList(getPendingTasksForRack(rack))} {return Some((index, TaskLocality.RACK_LOCAL))}}// Look for no-pref tasks after rack-local tasks since they can run anywhere.for (index <- findTaskFromList(pendingTasksWithNoPrefs)) {return Some((index, TaskLocality.PROCESS_LOCAL))}if (TaskLocality.isAllowed(locality, TaskLocality.ANY)) {for (index <- findTaskFromList(allPendingTasks)) {return Some((index, TaskLocality.ANY))}}// Finally, if all else has failed, find a speculative taskreturn findSpeculativeTask(execId, host, locality)}

?

/*** Respond to an offer of a single executor from the scheduler by finding a task*/override def resourceOffer(execId: String,host: String,availableCpus: Int,maxLocality: TaskLocality.TaskLocality): Option[TaskDescription] ={if (tasksFinished < numTasks && availableCpus >= CPUS_PER_TASK) { // 前提是task沒有執(zhí)行完和有足夠的available cores(>1)val curTime = clock.getTime()var allowedLocality = getAllowedLocalityLevel(curTime) // 取到當(dāng)前allowed LocalityLevelif (allowedLocality > maxLocality) { // 不能超出作為參數(shù)傳入的maxLocality, 調(diào)用者限定allowedLocality = maxLocality // We're not allowed to search for farther-away tasks}findTask(execId, host, allowedLocality) match { // 調(diào)用findTask, 并對(duì)返回值進(jìn)行case, findTask邏輯很簡單就是依次從不同的locality中取taskcase Some((index, taskLocality)) => {// Found a task; do some bookkeeping and return a task descriptionval task = tasks(index)val taskId = sched.newTaskId()// Figure out whether this should count as a preferred launchlogInfo("Starting task %s:%d as TID %s on executor %s: %s (%s)".format(taskSet.id, index, taskId, execId, host, taskLocality))// Do various bookkeepingcopiesRunning(index) += 1val info = new TaskInfo(taskId, index, curTime, execId, host, taskLocality)taskInfos(taskId) = infotaskAttempts(index) = info :: taskAttempts(index)// Update our locality level for delay schedulingcurrentLocalityIndex = getLocalityIndex(taskLocality) // 用當(dāng)前Task的locality來更新currentLocalityIndex, 這里index有可能會(huì)減少, 因?yàn)閠askLocality <= currentLocality lastLaunchTime = curTime // 更新lastLaunchTime // Serialize and return the taskval startTime = clock.getTime()// We rely on the DAGScheduler to catch non-serializable closures and RDDs, so in here// we assume the task can be serialized without exceptions.val serializedTask = Task.serializeWithDependencies(task, sched.sc.addedFiles, sched.sc.addedJars, ser)val timeTaken = clock.getTime() - startTimeincreaseRunningTasks(1)logInfo("Serialized task %s:%d as %d bytes in %d ms".format(taskSet.id, index, serializedTask.limit, timeTaken))val taskName = "task %s:%d".format(taskSet.id, index)if (taskAttempts(index).size == 1)taskStarted(task,info)return Some(new TaskDescription(taskId, execId, taskName, index, serializedTask)) // 最終返回schedule得到的那個(gè)task}case _ =>}}return None} ? /*** Get the level we can launch tasks according to delay scheduling, based on current wait time.*/private def getAllowedLocalityLevel(curTime: Long): TaskLocality.TaskLocality = {while (curTime - lastLaunchTime >= localityWaits(currentLocalityIndex) && // 發(fā)生超時(shí)currentLocalityIndex < myLocalityLevels.length - 1){// Jump to the next locality level, and remove our waiting time for the current one since// we don't want to count it again on the next onelastLaunchTime += localityWaits(currentLocalityIndex)currentLocalityIndex += 1 // currentLocalityIndex 加 1}myLocalityLevels(currentLocalityIndex)} ? /*** Find the index in myLocalityLevels for a given locality. This is also designed to work with* localities that are not in myLocalityLevels (in case we somehow get those) by returning the* next-biggest level we have. Uses the fact that the last value in myLocalityLevels is ANY.*/def getLocalityIndex(locality: TaskLocality.TaskLocality): Int = { // 查詢locality在myLocalityLevels中的indexvar index = 0while (locality > myLocalityLevels(index)) {index += 1}index} /*** Compute the locality levels used in this TaskSet. Assumes that all tasks have already been* added to queues using addPendingTask.*/ // 僅僅從各個(gè)pending list中看看當(dāng)前的taskset中的task有哪些preference locality, 從小到大 private def computeValidLocalityLevels(): Array[TaskLocality.TaskLocality] = {import TaskLocality.{PROCESS_LOCAL, NODE_LOCAL, RACK_LOCAL, ANY}val levels = new ArrayBuffer[TaskLocality.TaskLocality]if (!pendingTasksForExecutor.isEmpty && getLocalityWait(PROCESS_LOCAL) != 0) {levels += PROCESS_LOCAL}if (!pendingTasksForHost.isEmpty && getLocalityWait(NODE_LOCAL) != 0) {levels += NODE_LOCAL}if (!pendingTasksForRack.isEmpty && getLocalityWait(RACK_LOCAL) != 0) {levels += RACK_LOCAL}levels += ANYlogDebug("Valid locality levels for " + taskSet + ": " + levels.mkString(", "))levels.toArray} /** Called by cluster scheduler when one of our tasks changes state */override def statusUpdate(tid: Long, state: TaskState, serializedData: ByteBuffer) {SparkEnv.set(env)state match {case TaskState.FINISHED =>taskFinished(tid, state, serializedData)case TaskState.LOST =>taskLost(tid, state, serializedData)case TaskState.FAILED =>taskLost(tid, state, serializedData)case TaskState.KILLED =>taskLost(tid, state, serializedData)case _ =>}} def taskStarted(task: Task[_], info: TaskInfo) {sched.listener.taskStarted(task, info) } }

?

Pool

一種對(duì)schedulableQueue的抽象, 什么是schedulable?
注釋說的, 包含Pools and TaskSetManagers, 這里設(shè)計(jì)有問題, 你會(huì)發(fā)現(xiàn)Pools和TaskSetManagers的核心接口完全不同, 雖然TaskSetManagers里面也實(shí)現(xiàn)了這些接口, 但都是meanless的
簡單理解成, 作者想要統(tǒng)一對(duì)待, 泛化Pools和TaskSetManagers, 所以這樣做了

所以對(duì)于Pool, 可以理解為TaskSetManagers的容器, 當(dāng)然由于Pool本身也是Schedulable, 所以容器里面也可以放Pool
核心接口getSortedTaskSetQueue, 通過配置不同的SchedulingAlgorithm來調(diào)度TaskSetManagers(或pool)

所以注意那些FIFO或FAIR都是用來調(diào)度TaskSet的, 所以Spark調(diào)度的基礎(chǔ)是stage

/*** An interface for schedulable entities.* there are two type of Schedulable entities(Pools and TaskSetManagers)*/ private[spark] trait Schedulable {var parent: Schedulable// child queuesdef schedulableQueue: ArrayBuffer[Schedulable]def schedulingMode: SchedulingModedef weight: Intdef minShare: Intdef runningTasks: Intdef priority: Intdef stageId: Intdef name: Stringdef increaseRunningTasks(taskNum: Int): Unitdef decreaseRunningTasks(taskNum: Int): Unitdef addSchedulable(schedulable: Schedulable): Unitdef removeSchedulable(schedulable: Schedulable): Unitdef getSchedulableByName(name: String): Schedulabledef executorLost(executorId: String, host: String): Unitdef checkSpeculatableTasks(): Booleandef getSortedTaskSetQueue(): ArrayBuffer[TaskSetManager]def hasPendingTasks(): Boolean }

?

package org.apache.spark.scheduler.cluster //An Schedulable entity that represent collection of Pools or TaskSetManagers private[spark] class Pool(val poolName: String,val schedulingMode: SchedulingMode,initMinShare: Int,initWeight: Int)extends Schedulablewith Logging {var schedulableQueue = new ArrayBuffer[Schedulable] // 用于buffer Schedulable, TaskSetManagervar schedulableNameToSchedulable = new HashMap[String, Schedulable]var priority = 0var stageId = 0var name = poolNamevar parent:Schedulable = nullvar taskSetSchedulingAlgorithm: SchedulingAlgorithm = { // SchedulingAlgorithm其實(shí)就是定義comparator,后面好將TaskSet排序schedulingMode match {case SchedulingMode.FAIR => new FairSchedulingAlgorithm() // Faircase SchedulingMode.FIFO =>new FIFOSchedulingAlgorithm() // FIFO}}override def addSchedulable(schedulable: Schedulable) { // 增加一個(gè)TaskSetManagerschedulableQueue += schedulableschedulableNameToSchedulable(schedulable.name) = schedulableschedulable.parent= this}override def removeSchedulable(schedulable: Schedulable) { // 刪除一個(gè)TaskSetManager schedulableQueue -= schedulableschedulableNameToSchedulable -= schedulable.name}override def getSortedTaskSetQueue(): ArrayBuffer[TaskSetManager] = { // 返回排過序的TaskSetManager列表var sortedTaskSetQueue = new ArrayBuffer[TaskSetManager]val sortedSchedulableQueue = schedulableQueue.sortWith(taskSetSchedulingAlgorithm.comparator) // sortWith for (schedulable <- sortedSchedulableQueue) {sortedTaskSetQueue ++= schedulable.getSortedTaskSetQueue() // 這里的schedulable有可能也是pool, 所以需要遞歸調(diào)用}return sortedTaskSetQueue} }

?

SchedulableBuilder

上面說了Pool里面可以是TaskSetManagers也可以是pool, 這樣是不是可以形成tree
SchedulableBuilder就是對(duì)Schedulable Tree的封裝, 通過TaskSetManagers(葉節(jié)點(diǎn))和pools(中間節(jié)點(diǎn)), 來生成Schedulable Tree
這里只列出最簡單的FIFO, 看不出tree的感覺
對(duì)于FIFO很簡單, 直接使用一個(gè)Pool就可以, 把所有的TaskSet使用addSchedulable加進(jìn)去, 然后排序讀出來即可

這里沒有列出Fair的實(shí)現(xiàn), 比較復(fù)雜, 后面再分析吧

/*** An interface to build Schedulable tree* buildPools: build the tree nodes(pools)* addTaskSetManager: build the leaf nodes(TaskSetManagers)*/ private[spark] trait SchedulableBuilder {def buildPools()def addTaskSetManager(manager: Schedulable, properties: Properties) }private[spark] class FIFOSchedulableBuilder(val rootPool: Pool)extends SchedulableBuilder with Logging {override def buildPools() {// nothing}override def addTaskSetManager(manager: Schedulable, properties: Properties) {rootPool.addSchedulable(manager)} }

轉(zhuǎn)載于:https://www.cnblogs.com/fxjwind/p/3507307.html

總結(jié)

以上是生活随笔為你收集整理的Spark源码分析 -- SchedulableBuilder的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

波多野结衣在线视频免费观看 | 久久久久亚洲精品国产 | 亚洲欧美日本一区二区三区 | 欧美极品久久 | 日韩一区二区三区免费电影 | 成人午夜精品久久久久久久3d | 日韩一级电影在线观看 | 国产不卡免费 | 成年人在线播放视频 | 国产黄色片在线 | 国产精品欧美 | 午夜视频免费 | 在线中文字幕电影 | 国产精品成人免费精品自在线观看 | 精品成人久久 | 日韩精品一区二区三区不卡 | 香蕉视频导航 | 日韩最新在线 | 成人小视频在线 | 91激情小视频| 午夜成人影视 | 国产99久久久国产精品 | 免费日韩 精品中文字幕视频在线 | av福利网址导航 | 在线免费成人 | 亚洲午夜久久久影院 | 激情综合五月 | 免费av在| 久久久91精品国产一区二区精品 | 天天爽人人爽 | 久久观看最新视频 | 99产精品成人啪免费网站 | 欧美一区二区伦理片 | 成 人 免费 黄 色 视频 | 久久免费片| 日韩在线免费高清视频 | 在线观看亚洲国产 | 97精品一区 | 国内免费久久久久久久久久久 | 国产日韩欧美在线播放 | 成人免费看片网址 | 中文字幕黄色网 | 成年在线观看 | 国产精品电影在线 | 国产成视频在线观看 | 亚洲涩涩色 | 成年人免费av网站 | 制服丝袜在线 | 91九色视频在线 | 香蕉网在线 | 日韩在线视频免费播放 | 国产精品中文字幕av | 综合天天色 | 久久国产精品一二三区 | 成人久久久久久久久久 | www.99久久.com| 国产免费一区二区三区最新6 | 午夜私人影院久久久久 | 在线视频 你懂得 | 日韩视频一二三区 | 中文字幕乱码在线播放 | 久久tv| 五月婷久久| 日本久久不卡视频 | 一区二区三区在线免费观看视频 | 欧美日韩视频网站 | 国产99久久久国产精品成人免费 | av一级网站 | 深爱激情五月网 | 国产精品久久久久久久毛片 | 狠狠干 狠狠操 | 国产视频在线一区二区 | h动漫中文字幕 | 成年人国产精品 | 嫩草av影院| 91av在 | 最新91在线视频 | 日韩欧美大片免费观看 | 91视频在线免费看 | 日日干视频 | 日韩成人一级大片 | 天天草天天色 | 久久69av | 国产精品久久久免费 | 黄色a在线观看 | av免费看看 | 精品国产免费人成在线观看 | 天天草天天草 | 亚洲电影av在线 | 99视频偷窥在线精品国自产拍 | 色噜噜日韩精品一区二区三区视频 | 天堂av色婷婷一区二区三区 | 天天插天天 | 午夜精品久久久久久中宇69 | 99c视频高清免费观看 | 99国产精品 | 亚洲人视频在线 | 国产精品岛国久久久久久久久红粉 | 欧洲亚洲国产视频 | 国产精品久久久久av免费 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 国产精品亚州 | 精品国自产在线观看 | 日韩高清在线一区二区三区 | 国产日本亚洲高清 | 福利电影久久 | 久久久久久国产精品美女 | 日韩久久视频 | 久久精品中文视频 | 美女视频a美女大全免费下载蜜臀 | 国产成人精品一区二区三区 | 奇米影视777四色米奇影院 | 久久免费在线观看 | 久久国产精品久久国产精品 | 天天操夜夜操 | 九九久久精品视频 | 99在线热播精品免费 | 中文字幕区 | 国模精品在线 | 在线观看香蕉视频 | 500部大龄熟乱视频使用方法 | 麻豆国产视频下载 | 欧美怡红院 | 国产在线精品国自产拍影院 | 亚洲午夜精品福利 | 色香蕉网| 九九热在线精品 | 久久a免费视频 | www.色午夜| 欧美日韩在线电影 | 7777精品伊人久久久大香线蕉 | 国产一区免费在线 | 91污在线| 日韩理论片中文字幕 | 99精品免费在线 | 亚洲香蕉在线观看 | 欧美xxxxx在线视频 | 久久精品99国产精品 | 99热国产精品 | 亚洲精品一区二区三区新线路 | 在线免费黄 | 88av网站 | 国产明星视频三级a三级点| 夜夜骑日日操 | 热久久影视 | 日日碰狠狠添天天爽超碰97久久 | 欧美激情片在线观看 | 99c视频在线| 久久不卡视频 | 一区视频在线 | 天天操夜夜操天天射 | 精品av在线播放 | 亚洲视频电影在线 | 色综合久久久久综合 | 亚洲黄色区 | av三级在线免费观看 | 日韩视频中文字幕 | 国产爽妇网 | 天天玩天天操天天射 | 色在线最新| 高清视频一区 | 欧美亚洲精品在线观看 | 视频一区二区免费 | 一区二区三区四区久久 | 成人午夜免费剧场 | 日韩羞羞| 一区二区不卡高清 | 欧美日韩在线视频观看 | 亚洲精品婷婷 | 午夜国产影院 | 午夜精品久久久久 | 国产一级二级视频 | 久久国产精品小视频 | 国产精品一区二区电影 | 成人av高清在线 | 在线观看免费黄视频 | 激情五月婷婷综合网 | 国产 日韩 欧美 自拍 | 国内视频一区二区 | 超碰免费成人 | 精品久久精品久久 | 丁香婷婷在线观看 | 高清有码中文字幕 | 国产无套精品久久久久久 | 狠狠操精品 | 日韩精品短视频 | 中文网丁香综合网 | 国产成人专区 | 国产成人精品日本亚洲999 | 日韩在线视频观看免费 | 国产精品欧美久久久久天天影视 | 免费日韩电影 | 91精品久久久久久久久久入口 | 色视频网址 | 免费av看片 | 国产欧美在线一区 | 在线播放第一页 | 日本h视频在线观看 | 国产群p视频 | 国产视频不卡一区 | 黄色网址在线播放 | 久久久免费毛片 | 黄色av成人在线观看 | 在线视频免费观看 | 日批在线观看 | 免费中午字幕无吗 | 日韩欧美精品一区 | 日本黄色免费播放 | 久久不卡日韩美女 | 丁香视频全集免费观看 | 国内久久精品 | 99久久www免费| 日韩综合在线观看 | 91丨九色丨蝌蚪丰满 | 综合久久一本 | 日韩极品在线 | 丰满少妇对白在线偷拍 | 精品一区二区在线免费观看 | 欧美肥妇free | 久久字幕网 | 色资源网免费观看视频 | 这里只有精品视频在线观看 | 国产精品一区专区欧美日韩 | 久久精品免费观看 | 亚洲永久国产精品 | 17videosex性欧美 | 999热视频 | 国产中年夫妇高潮精品视频 | 婷婷日日 | 久草免费在线观看视频 | 四虎在线观看视频 | 国产精品久久久久久久久软件 | 日韩中文字幕免费 | 日韩三级中文字幕 | 国产91区| 国产成人一区二区三区免费看 | 日韩在线一二三区 | 国产精品久久久久久久av电影 | 久久久久久综合网天天 | 亚洲精品白浆高清久久久久久 | 欧美日韩在线视频观看 | 国产精品免费久久久久影院仙踪林 | 亚洲综合欧美日韩狠狠色 | 国产精品99久久久久的智能播放 | 亚洲最大免费成人网 | 免费看日韩| 四虎国产永久在线精品 | 丁香在线视频 | 久久久久成人精品 | 精品在线视频一区二区三区 | 日韩精品你懂的 | 国产福利小视频在线 | 天天干人人干 | 97超碰成人在线 | 免费成人短视频 | 五月天婷婷在线视频 | 成人在线视频你懂的 | 国产在线一区观看 | 国产精品视频地址 | 国产成人精品久久久久蜜臀 | 国产麻豆精品免费视频 | 欧美日韩国产一区二区三区 | 色婷婷导航| 97av视频在线观看 | 日本特黄一级 | 99精品视频在线观看 | 亚洲精品乱码久久久久久高潮 | 美女网站视频免费都是黄 | 中文字幕在线免费观看 | 99产精品成人啪免费网站 | 最新中文字幕在线资源 | 天天综合天天做天天综合 | 日日夜夜综合网 | 国产在线综合视频 | 亚洲国产午夜 | 最新久久久 | 欧美日韩在线播放 | 99精品视频在线观看视频 | 国产a级免费 | 69亚洲乱| 91九色porny在线 | 精品主播网红福利资源观看 | 成人毛片网 | 99综合视频 | 久久综合精品国产一区二区三区 | 日韩视频免费播放 | 色婷久久 | 欧美动漫一区二区三区 | 国产高清在线观看av | 98久9在线 | 免费 | 亚洲开心激情 | 91系列在线观看 | 午夜影院一区 | 久久色视频 | 黄色免费高清视频 | 日韩精品第1页 | 日韩一级成人av | 亚洲精品资源在线 | 国产免费一区二区三区网站免费 | h视频在线看 | 免费大片av | 天天射日| 久久精品电影网 | 日韩69av | 91一区啪爱嗯打偷拍欧美 | 一区二区中文字幕在线播放 | 久久久私人影院 | 亚洲国产手机在线 | 97超碰中文字幕 | 亚洲一区日韩 | 久久精品视频在线免费观看 | 肉色欧美久久久久久久免费看 | 久久成人精品电影 | 99精品视频免费观看视频 | 特级a毛片 | av福利超碰网站 | 久久久 精品 | 香蕉网站在线观看 | 精品久久久免费 | 精品国产精品一区二区夜夜嗨 | 久久高清片 | 夜夜视频欧洲 | 激情黄色av | 精品久久视频 | 91视频午夜| 18国产精品福利片久久婷 | 国产美腿白丝袜足在线av | 国产伦精品一区二区三区在线 | 日韩久久激情 | 亚洲国产精品999 | 国产精品自产拍在线观看 | 精品成人网 | 美女久久网站 | 久久久久久综合 | 午夜美女福利直播 | 国产精品女主播一区二区三区 | 中文字幕在线播出 | 亚洲一区视频免费观看 | 综合色站| 国产视频一区在线播放 | 久久99影院 | 久久8精品| 亚洲a色| 国产精品免费久久久 | 在线亚洲日本 | 亚洲美女在线国产 | 日韩丝袜在线 | www.国产高清 | 爱av在线网 | 高清av中文字幕 | 亚洲精品一区二区久 | 麻豆国产网站入口 | 激情伊人 | 一区二精品 | 久久久久久久网 | 国产亚洲精品中文字幕 | 国产精品麻豆视频 | 在线免费高清视频 | 91福利区一区二区三区 | 天天草天天草 | 黄色视屏免费在线观看 | x99av成人免费 | 久久久免费高清视频 | 免费成人黄色 | 亚洲高清在线观看视频 | 亚洲免费观看视频 | 日韩av电影中文字幕 | 免费视频久久久久 | 91香蕉国产在线观看软件 | 久久精品黄色 | 国产精品视频地址 | 欧美不卡视频在线 | 日韩久久精品 | 国产高清视频免费在线观看 | 天天夜夜狠狠操 | 91自拍91 | 黄色一级动作片 | 亚洲欧洲日韩在线观看 | 手机av看片 | 久久综合九色99 | 久久久精品网站 | 免费日韩av片 | 免费国产黄线在线观看视频 | 激情久久五月 | 中文字幕在线视频第一页 | 欧美日韩一区二区在线观看 | 久草在线观看 | 久久激情五月激情 | 日韩超碰 | 午夜精品久久久久久99热明星 | 久久精品视频日本 | 久久久久日本精品一区二区三区 | 久久只有精品 | 国产伦理久久精品久久久久_ | 国产色在线视频 | 66av99精品福利视频在线 | 97在线观看视频 | 久久这里只有精品视频99 | 国产一区国产二区在线观看 | 99精品视频在线观看视频 | 亚洲国产成人久久综合 | 日本少妇高清做爰视频 | 黄色毛片视频免费观看中文 | 一区二区三区四区五区在线视频 | 国产高清一级 | 99久久日韩精品免费热麻豆美女 | 日韩欧美在线视频一区二区三区 | 五月婷婷操 | 中文不卡视频在线 | 色av婷婷| 亚洲综合国产精品 | 久草免费新视频 | 三级小视频在线观看 | 亚洲久草网 | 国产又粗又长的视频 | 国产一区免费 | 免费在线成人 | 久久久综合香蕉尹人综合网 | 欧美一区二区三区激情视频 | 亚洲a成人v | 国产成人在线网站 | 国产精品一区二区视频 | 91在线色 | 日本免费一二三区 | 欧美怡红院视频 | 天天操天天摸天天爽 | 婷婷av电影 | 五月香视频在线观看 | 丁香久久| 亚洲激情免费 | 91麻豆高清视频 | 欧美精品亚洲精品 | 久久99精品国产一区二区三区 | 免费a级黄色毛片 | 免费观看www7722午夜电影 | 奇米网在线观看 | 麻豆精品视频在线观看免费 | 亚洲综合色av | 男女男视频 | 国产日韩三级 | 国产成年人av | 精品免费久久 | 天天干人人 | 欧美va电影 | 日日骑| 久久精品99国产精品亚洲最刺激 | 国产精品a久久 | av中文字幕在线电影 | 337p西西人体大胆瓣开下部 | 麻豆视频免费在线 | 婷婷av综合 | 中文字幕在线观看的网站 | 欧美激情综合色 | 精品国产乱码一区二 | 欧美亚洲国产日韩 | 精品亚洲欧美一区 | 中文字幕在线播放第一页 | 丁香5月婷婷 | 亚洲精品乱码久久久一二三 | 久久久国产影视 | 久久99精品久久久久久三级 | 国产精品毛片 | 久久免费av | 色资源二区在线视频 | 国产最顶级的黄色片在线免费观看 | 国产亚洲久久 | 国产不卡网站 | 国产精品美 | 国产亚洲精品久久久久久网站 | 精品国产一区二区三区久久久蜜臀 | 日韩精品极品视频 | 色在线中文字幕 | 欧美日韩国产综合一区二区 | 天天拍夜夜拍 | 在线日韩 | 色婷婷97 | 在线观看黄a | 亚洲精品一区中文字幕乱码 | 久久看片网站 | 中文字幕你懂的 | 91九色porny蝌蚪视频 | 国产96av| 手机看片午夜 | 免费看一级 | 九九导航 | 久久婷婷色 | 亚洲黄色免费网站 | 人人干人人干人人干 | 精品久久久久久一区二区里番 | 涩涩网站在线看 | 欧美成人基地 | 国产欧美在线一区二区三区 | 久久久久区 | 久久国产一区 | 天天天操天天天干 | 91夫妻视频| 天天天天天干 | 免费在线观看av网站 | 在线国产黄色 | 欧美孕妇与黑人孕交 | 一级成人免费视频 | 久久这里精品视频 | 三上悠亚一区二区在线观看 | 中文字幕在线观看第一区 | 中文字幕在线观看一区 | 日韩二区在线 | 久久久综合 | 91av官网| 中文字幕亚洲精品在线观看 | 国产99久久 | av一本久道久久波多野结衣 | av黄色免费看 | 五月激情综合婷婷 | 国产欧美最新羞羞视频在线观看 | 91高清完整版在线观看 | 精品在线观看一区二区三区 | 有码一区二区三区 | 久久高清免费视频 | 国产精品一区免费在线观看 | 中文字幕日韩伦理 | 毛片网在线 | 色婷婷国产精品一区在线观看 | 日本久久综合视频 | 精品国产综合区久久久久久 | 最近中文字幕免费大全 | 999视频在线播放 | 天天激情站 | 久久久久99999| 国产精品视频永久免费播放 | 国产一区二区高清 | 亚洲高清久久久 | 人人干天天干 | 久久激情五月激情 | 四虎伊人| 一区二区三区国产精品 | 国产色区 | 97中文字幕| 国产夫妻性生活自拍 | 狠狠色丁香婷综合久久 | 九九在线播放 | 三级视频片| 999国产| 99视频精品在线 | 免费在线a | 日韩videos高潮hd | av在线中文 | 久久久视频在线 | 亚洲精品福利在线观看 | 久久视频网址 | 日本在线观看一区二区 | 国产偷国产偷亚洲清高 | 五月天六月丁香 | 国产精品精品国产 | 欧美色图一区 | 国产女人免费看a级丨片 | 特级大胆西西4444www | 久久精品中文字幕 | 成人a毛片 | 国产精品一区二区三区四区在线观看 | 少妇av网 | www.99av| 成人禁用看黄a在线 | 在线97| 国产日韩欧美在线免费观看 | 国产精品九九久久久久久久 | 成人av一区二区兰花在线播放 | 久久99精品国产麻豆宅宅 | 天天综合网天天综合色 | 久久久久久国产精品999 | 97人人模人人爽人人喊网 | 国产精品一区二区吃奶在线观看 | 久久国产精品色av免费看 | 99re热精品视频 | 国内精品久久久久久久影视麻豆 | 日韩一级精品 | 久久福利精品 | 日韩网站在线看片你懂的 | 天天干夜夜操视频 | 中文字幕国产一区 | 亚洲黄色a| 日韩a级黄色 | 婷婷视频在线观看 | 天天天天射 | 国内少妇自拍视频一区 | 国产这里只有精品 | 干干干操操操 | 国产系列 在线观看 | 激情久久久久 | 91精品国产91 | 国产一区欧美在线 | 久久国产高清 | 综合激情网... | 国产精品一区二区在线免费观看 | 日b黄色片| 亚洲区精品视频 | 视频在线99re | 日日噜噜噜噜夜夜爽亚洲精品 | 在线v片| 中文字幕在线观看一区二区 | 亚州精品视频 | 国产精品久久久一区二区三区网站 | 国产精品女同一区二区三区久久夜 | www.福利视频 | 欧美精品国产综合久久 | 在线视频免费观看 | 国产成人精品一区二区在线 | 国模视频一区二区三区 | 亚洲永久精品国产 | 久久久国产电影 | 国产精品久久久久久久久久久免费看 | 成人91免费视频 | 久久99视频精品 | 欧美一区二区在线 | 久久激情片 | 国产色秀视频 | 日韩精品综合在线 | av片在线观看免费 | 黄色av网站在线观看免费 | 91污污视频在线观看 | 色综合久久88色综合天天免费 | 国产精品久久久久久久久久久免费看 | 一区二区高清在线 | 伊人国产女 | 999在线视频 | 国产手机精品视频 | 狠狠干2018 | 成人一级免费电影 | 国产高清在线 | 天天插视频 | 国产精品第二十页 | 97成人免费视频 | 国内少妇自拍视频一区 | 丁香婷婷激情国产高清秒播 | 国产精品高清免费在线观看 | 人人爽人人舔 | 激情av资源| 福利视频入口 | av网站免费线看精品 | 精品国产91亚洲一区二区三区www | 黄色小网站在线 | 国产精品视频地址 | 成人免费视频网 | 欧美激情第一区 | 久草网视频在线观看 | 视频一区久久 | 国产精品女主播一区二区三区 | 欧美在线aaa | 亚洲色图 校园春色 | 国产免费人成xvideos视频 | 丁香激情网| 国产97碰免费视频 | 国产视频在线观看一区 | 国产精品视频一二三 | 国产亚洲精品久久久久久网站 | 欧美91精品 | 97超级碰碰 | 欧美久久久久久久久 | 91视频在线国产 | 精品欧美一区二区在线观看 | 日韩国产精品久久久久久亚洲 | 麻豆久久精品 | av在线中文 | 欧美一二三区播放 | 中文网丁香综合网 | 欧美一级日韩免费不卡 | 久久久久国产精品免费免费搜索 | mm1313亚洲精品国产 | 特级毛片aaa | 国产在线观看免费观看 | 韩国av电影网 | 亚洲精品国产日韩 | 国产精品成人国产乱一区 | 国产一区av在线 | 伊人天天狠天天添日日拍 | av最新资源 | 日本久久中文字幕 | 国产精品黄色在线观看 | 亚洲开心激情 | 在线高清 | 日韩视频免费观看高清完整版在线 | 久久国产系列 | 久久精品99国产精品亚洲最刺激 | 久久久久久久国产精品 | 黄色午夜| 在线日韩av | 国产青青青 | 国产1区2区3区精品美女 | 国产日女人 | 久久精品99精品国产香蕉 | 精久久久久| 狠狠色丁婷婷日日 | 99精品欧美一区二区 | 午夜三级福利 | 天天操天天操天天操天天操 | 999久久久国产精品 高清av免费观看 | 国产精品久久久久久久久免费 | 色91av | 成人av在线影视 | 国产亚洲成av人片在线观看桃 | 国产91精品久久久久 | 麻豆传媒在线视频 | 91av视频在线观看 | 91天堂影院| a黄色一级片 | 中文字幕免费观看全部电影 | 国产精品久久久久aaaa | 91亚洲精品在线观看 | 亚洲国内精品 | 亚洲最快最全在线视频 | 美女久久久| 久久小视频 | 免费看v片网站 | 一区二区三区免费在线观看 | 久久精品999 | 久久久久99999 | 超碰在线国产 | 久久99偷拍视频 | 天天躁天天操 | 精品在线视频一区二区三区 | 亚洲婷婷网 | 一区二区伦理电影 | 成 人 黄 色视频免费播放 | 99色在线 | 国产在线91精品 | 日本激情动作片免费看 | 三级av网站 | 国产在线观看国语版免费 | 一区二区三区免费在线观看视频 | 肉色欧美久久久久久久免费看 | 精品久久一区二区三区 | 日本午夜在线亚洲.国产 | 天天射天天做 | 亚洲狠狠操| 日韩精品视频久久 | 激情综合狠狠 | 成人三级网址 | 中文字幕av日韩 | 国产传媒一区在线 | 欧美资源在线观看 | 国内久久久| 欧美一区二区三区在线 | 久久久久国产精品厨房 | 东方av在线免费观看 | 91麻豆视频 | 天天操天天摸天天干 | 国产v欧美| 国产男女爽爽爽免费视频 | 依人成人综合网 | 成人免费av电影 | 色婷婷影视 | 黄色一级大片在线免费看国产一 | 久久热首页 | 三级av片| 人人射人人澡 | av一级久久 | 天天射综合 | 久草视频在线免费播放 | 国产一级黄色电影 | 粉嫩av一区二区三区四区五区 | 麻豆视频www | 色99之美女主播在线视频 | 欧美成亚洲 | 午夜12点 | 婷婷综合网 | 久久久黄色免费网站 | 91在线资源 | 成人av中文字幕 | 天天操比 | 91九色性视频 | 最近中文国产在线视频 | 香蕉视频免费在线播放 | 欧美十八 | 欧美在线久久 | 亚洲在线视频播放 | 久久久久国产成人免费精品免费 | 国产女做a爱免费视频 | 天天射夜夜爽 | 中文字幕成人在线观看 | 有码中文在线 | av黄色av| 在线免费观看国产 | 狠狠干网站 | 久久久91精品国产一区二区精品 | 亚洲精品mv在线观看 | 超碰在线亚洲 | 四虎在线免费观看视频 | 成人av久久 | 99久久久久成人国产免费 | 黄色在线看网站 | 不卡的av在线播放 | 超碰在线色 | 欧美a影视 | 色婷婷精品 | 国产成人精品a | 激情久久久 | 日韩欧美国产成人 | 一本一本久久aa综合精品 | 亚洲综合在线一区二区三区 | 国产在线高清 | 91视频免费看 | 在线日韩视频 | 干干操操 | 美女视频久久 | 二区三区在线 | 欧美精品中文字幕亚洲专区 | 97在线看 | 特级a老妇做爰全过程 | 国产美女精品视频 | 在线观看日韩精品视频 | 人人爱人人爽 | 一区二区三区在线观看免费 | 黄av资源| 人人舔人人干 | 色97在线 | 在线中文字幕播放 | 欧美性超爽 | 精品久久中文 | 国产成人久久精品一区二区三区 | 极品中文字幕 | 欧美另类调教 | 免费看色视频 | 4438全国亚洲精品在线观看视频 | 在线免费看片 | 免费a一级 | 黄色福利网站 | 免费日韩 精品中文字幕视频在线 | 伊人看片| 久久久久免费精品视频 | 久久99精品一区二区三区三区 | 欧美激情精品久久久久久免费 | 精品久久久久久久久中文字幕 | 丁香六月网 | 中文资源在线观看 | 久久黄色片 | 在线观看久草 | 中文字幕人成人 | 国产黄色精品 | 77国产精品 | 亚洲精品久久久久久久蜜桃 | www.91av在线| 天天干天天操天天爱 | www国产一区 | 91在线看免费 | 久久精品99国产国产 | 国产日韩精品在线 | 亚洲精品视频播放 | 欧美日韩高清在线观看 | 午夜黄色一级片 | 91亚洲国产成人久久精品网站 | 免费日韩av片 | 亚洲天天摸日日摸天天欢 | 国产免费人成xvideos视频 | 久久久精品综合 | 婷婷色av | 日韩videos高潮hd | 久久久午夜电影 | 成人在线你懂得 | 99久久超碰中文字幕伊人 | 色999视频| 免费男女羞羞的视频网站中文字幕 | 日韩专区中文字幕 | 91麻豆精品国产自产在线游戏 | 久久精品—区二区三区 | 91看片在线观看 | 国产日韩欧美在线观看视频 | 国产精品嫩草55av | 欧美一区二区精美视频 | 国产精品久久久久aaaa九色 | 国产麻豆精品一区二区 | av超碰免费在线 | 日韩欧美一区二区三区在线观看 | 免费福利在线观看 | 国产69久久久欧美一级 | 久草精品电影 | 国产高清无线码2021 | 丰满少妇在线 | 国产精品11 | 久久99精品久久久久婷婷 | 青青久草在线视频 | 超碰97成人 | 精品视频久久久久久 | 日韩精品网址 | 夜色成人网 | 天海冀一区二区三区 | 亚洲国产高清在线观看视频 | 在线韩国电影免费观影完整版 | 91激情视频在线观看 | 免费观看特级毛片 | 丝袜美腿亚洲综合 | 96av视频 | 色综合婷婷 | 中文字幕有码在线播放 | 中文字幕888 | 超级碰碰免费视频 | 久久公开免费视频 | 久章草在线观看 | 免费av试看| 一区电影 | 久草av在线播放 | 免费国产亚洲视频 | 国内精品免费久久影院 | 五月婷婷综合激情 | 5月丁香婷婷综合 | 在线视频麻豆 | 日韩理论| 五月婷婷视频在线 | 日韩天堂在线观看 | 欧美高清成人 | 免费视频网| 国产成人久久精品一区二区三区 | 三三级黄色片之日韩 | 国产不卡精品 | 亚洲免费永久精品国产 | 在线亚洲欧美视频 | 日韩av视屏在线观看 | 综合网久久| 97在线观看免费高清完整版在线观看 | 日韩在线免费播放 | 国产免费一区二区三区最新6 | 亚州日韩中文字幕 | 色婷婷综合视频在线观看 | 99成人免费视频 | 国产一区视频导航 | 日本乱视频 | 人人看人人爱 | 毛片无卡免费无播放器 | 一区二区精品久久 | 一区二区三区中文字幕在线 | 国产精品va在线播放 | 奇米影音四色 | 激情婷婷亚洲 | 亚洲久草在线视频 | 在线网站黄 | 狠狠伊人 | 日批网站在线观看 | 91久久奴性调教 | 91毛片视频| 国产亚洲精品久久久久动 | 91看片在线看片 | 天天操天天干天天操天天干 | 免费av的网站 | 中文字幕亚洲精品在线观看 | 午夜电影中文字幕 | 久久成| 免费在线观看的av网站 | 成人在线黄色 | 国产91区 | 久久av免费电影 | av久久久久久| 免费美女av| 中日韩三级视频 | 91香蕉国产| 色视频在线免费 | 国产精品免费久久久久久久久久中文 | 日操干| 观看免费av | 久久久久久高潮国产精品视 | 在线看黄色的网站 | 亚洲成aⅴ人在线观看 | 欧美在线18 | 国产亚洲精品成人av久久影院 | 国产精品一区二区你懂的 | 国产中文在线观看 | av播放在线 | 成人羞羞视频在线观看免费 | 国产一级免费片 | 欧美男男激情videos | 成人aⅴ视频 | 韩国av免费观看 | 亚洲综合视频在线播放 | 免费网站v | 51久久成人国产精品麻豆 | 日产av在线播放 | 欧美色图亚洲图片 | 狠狠做深爱婷婷综合一区 | 91久久国产露脸精品国产闺蜜 | 激情五月在线观看 | 丁香婷婷网 | 91原创在线观看 | 中文字幕在线成人 | 日韩丝袜视频 | 丝袜一区在线 | .国产精品成人自产拍在线观看6 | 国产综合香蕉五月婷在线 | 亚洲日本在线一区 | av女优中文字幕在线观看 | 黄色av成人在线 | 久久免费国产电影 | 色综合久久久久综合99 | 二区三区在线视频 | 精品国产一区二区三区四 | 人人澡人人爱 | 国产日韩精品在线观看 | 伊人天堂av | 久久久精品一区二区 | 国产精品不卡av | 国产一级在线免费观看 | 黄色片免费电影 |