国产凹凸在线-国产拗女一区二区三区-国产白白视-国产白领-国产白拍-国产白丝jk被疯狂输-国产白丝喷-国产白丝在线

金喜正规买球

logo Swift編程語言中文教程
文檔金喜正規買球>>Swift編程語言中文教程>>Swift編程語言中文教程(二十一):Swift協議

Swift編程語言中文教程(二十一):Swift協議


本頁包含內容:

Protocol(協議)用于統一方法和屬性的名稱,而不實現任何功能。協議能夠被類,枚舉,結構體實現,滿足協議要求的類,枚舉,結構體被稱為協議的遵循者。

遵循者需要提供協議指定的成員,如屬性,方法,操作符,下標等。

協議的語法

協議的定義與類,結構體,枚舉的定義非常相似,如下所示:

protocol SomeProtocol {
    // 協議內容
}

在類,結構體,枚舉的名稱后加上協議名稱,中間以冒號:分隔即可實現協議;實現多個協議時,各協議之間用逗號,分隔,如下所示:

struct SomeStructure: FirstProtocol, AnotherProtocol {
    // 結構體內容
}

當某個類含有父類的同時并實現了協議,應當把父類放在所有的協議之前,如下所示:

class SomeClass: SomeSuperClass, FirstProtocol, AnotherProtocol {
    // 類的內容
}

屬性要求

協議能夠要求其遵循者必須含有一些特定名稱和類型的實例屬性(instance property)或類屬性 (type property),也能夠要求屬性具有(設置權限)settable 和(訪問權限)gettable,但它不要求屬性是存儲型屬性(stored property)還是計算型屬性(calculate property)。

如果協議要求屬性具有設置權限和訪問權限,那常量存儲型屬性或者只讀計算型屬性都無法滿足此要求。如果協議只要求屬性具有訪問權限,那任何類型的屬性都可以滿足此要求,無論這些屬性是否具有設置權限。

通常前置var關鍵字將屬性聲明為變量。在屬性聲明后寫上{ get set }表示屬性為可讀寫的。{ get }用來表示屬性為可讀的。即使你為可讀的屬性實現了setter方法,它也不會出錯。

protocol SomeProtocol {
    var musBeSettable : Int { get set }
    var doesNotNeedToBeSettable: Int { get }
}

在協議中定義類屬性 (type property)時使用class前綴關鍵字,即使在結構體或者枚舉中類屬性是要求使用static前綴關鍵字:

protocol AnotherProtocol {
    class var someTypeProperty: Int { get set }
}

protocol FullyNamed {
    var fullName: String { get }
}

FullyNamed協議含有fullName屬性。因此其遵循者必須含有一個名為fullName,類型為String的可讀屬性。

struct Person: FullyNamed{
    var fullName: String
}
let john = Person(fullName: "John Appleseed")
//john.fullName 為 "John Appleseed" 

Person結構體含有一個名為fullName的存儲型屬性,完整的遵循了協議。(若協議未被完整遵循,編譯時則會報錯)。

如下所示,Startship類遵循了FullyNamed協議:

class Starship: FullyNamed {
    var prefix: String?
    var name: String
    init(name: String, prefix: String? = nil ) {
        self.anme = name
        self.prefix = prefix
    }
    var fullName: String {
    return (prefix ? prefix ! + " " : " ") + name
    }
}
var ncc1701 = Starship(name: "Enterprise", prefix: "USS")
// ncc1701.fullName == "USS Enterprise"

Starship類將fullName實現為可讀的計算型屬性。它的每一個實例都有一個名為name的必備屬性和一個名為prefix的可選屬性。 當prefix存在時,將prefix插入到name之前來為Starship構建fullName。

方法要求

協議能夠要求其遵循者必備某些特定的實例方法和類方法。協議方法的聲明與普通方法聲明相似,但它不需要方法內容。

注意: 協議方法支持變長參數(variadic parameter),不支持默認參數(default parameter)。

前置class關鍵字表示協議中的成員為類成員;當協議用于被枚舉或結構體遵循時,則使用static關鍵字。如下所示: 像類屬性的要求一樣,協議中定義類方法時也總是使用class關鍵字,即使類方法在枚舉或結構體中實現時要求使用static關鍵字

protocol SomeProtocol {
    class func someTypeMethod()
}

protocol RandomNumberGenerator {
    func random() -> Double
}

RandomNumberGenerator協議要求其遵循者必須擁有一個名為random, 返回值類型為Double的實例方法。(我們假設隨機數在[0,1]區間內)。

LinearCongruentialGenerator類遵循了RandomNumberGenerator協議,并提供了一個叫做線性同余生成器(linear congruential generator)的偽隨機數算法。

class LinearCongruentialGenerator: RandomNumberGenerator {
    var lastRandom = 42.0
    let m = 139968.0
    let a = 3877.0
    let c = 29573.0
    func random() -> Double {
        lastRandom = ((lastRandom * a + c) % m)
        return lastRandom / m
    }
}
let generator = LinearCongruentialGenerator()
println("Here's a random number: \(generator.random())")
// 輸出 : "Here's a random number: 0.37464991998171"
println("And another one: \(generator.random())")
// 輸出 : "And another one: 0.729023776863283"

突變方法要求

能在方法或函數內部改變實例類型的方法稱為突變方法。在值類型(Value Type)(譯者注:特指結構體和枚舉)中的的函數前綴加上mutating關鍵字來表示該函數允許改變該實例和其屬性的類型。 這一變換過程在實例方法(Instance Methods)章節中有詳細描述。

(譯者注:類中的成員為引用類型(Reference Type),可以方便的修改實例及其屬性的值而無需改變類型;而結構體和枚舉中的成員均為值類型(Value Type),修改變量的值就相當于修改變量的類型,而Swift默認不允許修改類型,因此需要前置mutating關鍵字用來表示該函數中能夠修改類型)

注意: 用class實現協議中的mutating方法時,不用寫mutating關鍵字;用結構體,枚舉實現協議中的mutating方法時,必須寫mutating關鍵字。

如下所示,Togglable協議含有toggle函數。根據函數名稱推測,toggle可能用于切換或恢復某個屬性的狀態。mutating關鍵字表示它為突變方法:

protocol Togglable {
    mutating func toggle()
}

當使用枚舉或結構體來實現Togglabl協議時,必須在toggle方法前加上mutating關鍵字。

如下所示,OnOffSwitch枚舉遵循了Togglable協議,On,Off兩個成員用于表示當前狀態

enum OnOffSwitch: Togglable {
    case Off, On
    mutating func toggle() {
        switch self {
        case Off:
            self = On
        case On:
            self = Off
        }
    }
}
var lightSwitch = OnOffSwitch.Off
lightSwitch.toggle()
//lightSwitch 現在的值為 .On

協議類型

協議本身不實現任何功能,但你可以將它當做類型來使用。

使用場景:

  • 作為函數,方法或構造器中的參數類型,返回值類型
  • 作為常量,變量,屬性的類型
  • 作為數組,字典或其他容器中的元素類型

注意: 協議類型應與其他類型(Int,Double,String)的寫法相同,使用駝峰式

class Dice {
    let sides: Int
    let generator: RandomNumberGenerator
    init(sides: Int, generator: RandomNumberGenerator) {
        self.sides = sides
        self.generator = generator
    }
    func roll() -> Int {
        return Int(generator.random() * Double(sides)) +1
    }
}

這里定義了一個名為 Dice的類,用來代表桌游中的N個面的骰子。

Dice含有sides和generator兩個屬性,前者用來表示骰子有幾個面,后者為骰子提供一個隨機數生成器。由于后者為RandomNumberGenerator的協議類型。所以它能夠被賦值為任意遵循該協議的類型。

此外,使用構造器(init)來代替之前版本中的setup操作。構造器中含有一個名為generator,類型為RandomNumberGenerator的形參,使得它可以接收任意遵循RandomNumberGenerator協議的類型。

roll方法用來模擬骰子的面值。它先使用generator的random方法來創建一個[0-1]區間內的隨機數種子,然后加工這個隨機數種子生成骰子的面值。

如下所示,LinearCongruentialGenerator的實例作為隨機數生成器傳入Dice的構造器

var d6 = Dice(sides: 6,generator: LinearCongruentialGenerator())
for _ in 1...5 {
    println("Random dice roll is \(d6.roll())")
}
//輸出結果
//Random dice roll is 3
//Random dice roll is 5
//Random dice roll is 4
//Random dice roll is 5
//Random dice roll is 4

委托(代理)模式

委托是一種設計模式,它允許類或結構體將一些需要它們負責的功能交由(委托)給其他的類型。

委托模式的實現很簡單: 定義協議來封裝那些需要被委托的函數和方法, 使其遵循者擁有這些被委托的函數和方法。

委托模式可以用來響應特定的動作或接收外部數據源提供的數據,而無需要知道外部數據源的類型。

下文是兩個基于骰子游戲的協議:

protocol DiceGame {
    var dice: Dice { get }
    func play()
}

protocol DiceGameDelegate {
    func gameDidStart(game: DiceGame)
    func game(game: DiceGame, didStartNewTurnWithDiceRoll diceRoll:Int)
    func gameDidEnd(game: DiceGame)
}

DiceGame協議可以在任意含有骰子的游戲中實現,DiceGameDelegate協議可以用來追蹤DiceGame的游戲過程。

如下所示,SnakesAndLadders是Snakes and Ladders(譯者注:控制流章節有該游戲的詳細介紹)游戲的新版本。新版本使用Dice作為骰子,并且實現了DiceGame和DiceGameDelegate協議

class SnakesAndLadders: DiceGame {
    let finalSquare = 25
    let dic = Dice(sides: 6, generator: LinearCongruentialGenerator())
    var square = 0
    var board: Int[]
    init() {
        board = Int[](count: finalSquare + 1, repeatedValue: 0)
        board[03] = +08; board[06] = +11; borad[09] = +09; board[10] = +02
        borad[14] = -10; board[19] = -11; borad[22] = -02; board[24] = -08
    }
     var delegate: DiceGameDelegate?
     func play() {
         square = 0
         delegate?.gameDidStart(self)
         gameLoop: while square != finalSquare {
             let diceRoll = dice.roll()
             delegate?.game(self,didStartNewTurnWithDiceRoll: diceRoll)
             switch square + diceRoll {
             case finalSquare:
                 break gameLoop
             case let newSquare where newSquare > finalSquare:
                 continue gameLoop
             default:
             square += diceRoll
             square += board[square]
             }
         }
         delegate?.gameDIdEnd(self)
     }
}

游戲的初始化設置(setup)被SnakesAndLadders類的構造器(initializer)實現。所有的游戲邏輯被轉移到了play方法中。

注意: 因為delegate并不是該游戲的必備條件,delegate被定義為遵循DiceGameDelegate協議的可選屬性

DicegameDelegate協議提供了三個方法用來追蹤游戲過程。被放置于游戲的邏輯中,即play()方法內。分別在游戲開始時,新一輪開始時,游戲結束時被調用。

因為delegate是一個遵循DiceGameDelegate的可選屬性,因此在play()方法中使用了可選鏈來調用委托方法。 若delegate屬性為nil, 則委托調用優雅地失效。若delegate不為nil,則委托方法被調用

如下所示,DiceGameTracker遵循了DiceGameDelegate協議

class DiceGameTracker: DiceGameDelegate {
    var numberOfTurns = 0
    func gameDidStart(game: DiceGame) {
        numberOfTurns = 0
        if game is SnakesAndLadders {
            println("Started a new game of Snakes and Ladders")
        }
        println("The game is using a \(game.dice.sides)-sided dice")
    }
    func game(game: DiceGame, didStartNewTurnWithDiceRoll diceRoll: Int) {
        ++numberOfTurns
        println("Rolled a \(diceRoll)")
    }
    func gameDidEnd(game: DiceGame) {
        println("The game lasted for \(numberOfTurns) turns")
    }
}

DiceGameTracker實現了DiceGameDelegate協議的方法要求,用來記錄游戲已經進行的輪數。 當游戲開始時,numberOfTurns屬性被賦值為0;在每新一輪中遞加;游戲結束后,輸出打印游戲的總輪數。

gameDidStart方法從game參數獲取游戲信息并輸出。game在方法中被當做DiceGame類型而不是SnakeAndLadders類型,所以方法中只能訪問DiceGame協議中的成員。

DiceGameTracker的運行情況,如下所示:

let tracker = DiceGameTracker()
let game = SnakesAndLadders()
game.delegate = tracker
game.play()
// Started a new game of Snakes and Ladders
// The game is using a 6-sided dice
// Rolled a 3
// Rolled a 5
// Rolled a 4
// Rolled a 5
// The game lasted for 4 turns

在擴展中添加協議成員

即便無法修改源代碼,依然可以通過擴展(Extension)來擴充已存在類型(譯者注: 類,結構體,枚舉等)。擴展可以為已存在的類型添加屬性,方法,下標,協議等成員。詳情請在擴展章節中查看。

注意: 通過擴展為已存在的類型遵循協議時,該類型的所有實例也會隨之添加協議中的方法

TextRepresentable協議含有一個asText,如下所示:

protocol TextRepresentable {
    func asText() -> String
}

通過擴展為上一節中提到的Dice類遵循TextRepresentable協議

extension Dice: TextRepresentable {
    cun asText() -> String {
        return "A \(sides)-sided dice"
    }
}

從現在起,Dice類型的實例可被當作TextRepresentable類型:

let d12 = Dice(sides: 12,generator: LinearCongruentialGenerator())
println(d12.asText())
// 輸出 "A 12-sided dice"

SnakesAndLadders類也可以通過擴展的方式來遵循協議:

extension SnakeAndLadders: TextRepresentable {
    func asText() -> String {
        return "A game of Snakes and Ladders with \(finalSquare) squares"
    }
}
println(game.asText())
// 輸出 "A game of Snakes and Ladders with 25 squares"

通過擴展補充協議聲明

當一個類型已經實現了協議中的所有要求,卻沒有聲明時,可以通過擴展來補充協議聲明:

struct Hamster {
    var name: String
    func asText() -> String {
        return "A hamster named \(name)"
    }
}
extension Hamster: TextRepresentabl {}

從現在起,Hamster的實例可以作為TextRepresentable類型使用

let simonTheHamster = Hamster(name: "Simon")
let somethingTextRepresentable: TextRepresentabl = simonTheHamester
println(somethingTextRepresentable.asText())
// 輸出 "A hamster named Simon"

注意: 即時滿足了協議的所有要求,類型也不會自動轉變,因此你必須為它做出明顯的協議聲明

集合中的協議類型

協議類型可以被集合使用,表示集合中的元素均為協議類型:

let things: TextRepresentable[] = [game,d12,simoTheHamster]

如下所示,things數組可以被直接遍歷,并調用其中元素的asText()函數:

for thing in things {
    println(thing.asText())
}
// A game of Snakes and Ladders with 25 squares
// A 12-sided dice
// A hamster named Simon

thing被當做是TextRepresentable類型而不是Dice,DiceGame,Hamster等類型。因此能且僅能調用asText方法

協議的繼承

協議能夠繼承一到多個其他協議。語法與類的繼承相似,多個協議間用逗號,分隔

protocol InheritingProtocol: SomeProtocol, AnotherProtocol {
    // 協議定義
}

如下所示,PrettyTextRepresentable協議繼承了TextRepresentable協議

protocol PrettyTextRepresentable: TextRepresentable {
    func asPrettyText() -> String
} 

遵循``PrettyTextRepresentable協議的同時,也需要遵循TextRepresentable`協議。

如下所示,用擴展為SnakesAndLadders遵循PrettyTextRepresentable協議:

extension SnakesAndLadders: PrettyTextRepresentable {
    func asPrettyText() -> String {
        var output = asText() + ":\n"
        for index in 1...finalSquare {
            switch board[index] {
                case let ladder where ladder > 0:
                output += "▲ "
            case let snake where snake < 0:
                output += "▼ "
            default:
                output += "○ "
            }
        }
        return output
    }
}

在for in中迭代出了board數組中的每一個元素:

  • 當從數組中迭代出的元素的值大于0時,用▲表示
  • 當從數組中迭代出的元素的值小于0時,用▼表示
  • 當從數組中迭代出的元素的值等于0時,用○表示

任意SankesAndLadders的實例都可以使用asPrettyText()方法。

println(game.asPrettyText())
// A game of Snakes and Ladders with 25 squares:
// ○ ○ ▲ ○ ○ ▲ ○ ○ ▲ ▲ ○ ○ ○ ▼ ○ ○ ○ ○ ▼ ○ ○ ▼ ○ ▼ ○

協議合成

一個協議可由多個協議采用protocol<SomeProtocol, AnotherProtocol>這樣的格式進行組合,稱為協議合成(protocol composition)。

舉個例子:

protocol Named {
    var name: String { get }
}
protocol Aged {
    var age: Int { get }
}
struct Person: Named, Aged {
    var name: String
    var age: Int
}
func wishHappyBirthday(celebrator: protocol<Named, Aged>) {
    println("Happy birthday \(celebrator.name) - you're \(celebrator.age)!")
}
let birthdayPerson = Person(name: "Malcolm", age: 21)
wishHappyBirthday(birthdayPerson)
// 輸出 "Happy birthday Malcolm - you're 21!

Named協議包含String類型的name屬性;Aged協議包含Int類型的age屬性。Person結構體遵循了這兩個協議。

wishHappyBirthday函數的形參celebrator的類型為protocol<Named,Aged>。可以傳入任意遵循這兩個協議的類型的實例

注意: 協議合成并不會生成一個新協議類型,而是將多個協議合成為一個臨時的協議,超出范圍后立即失效。

檢驗協議的一致性

使用is檢驗協議一致性,使用as將協議類型向下轉換(downcast)為的其他協議類型。檢驗與轉換的語法和之前相同(詳情查看類型檢查):

  • is操作符用來檢查實例是否遵循了某個協議。
  • as?返回一個可選值,當實例遵循協議時,返回該協議類型;否則返回nil
  • as用以強制向下轉換型。
@objc protocol HasArea {
    var area: Double { get }
}

注意: @objc用來表示協議是可選的,也可以用來表示暴露給Objective-C的代碼,此外,@objc型協議只對類有效,因此只能在類中檢查協議的一致性。詳情查看。

class Circle: HasArea {
    let pi = 3.1415927
    var radius: Double
    var area:≈radius }
    init(radius: Double) { self.radius = radius }
}
class Country: HasArea {
    var area: Double
    init(area: Double) { self.area = area }
}

Circle和Country都遵循了HasArea協議,前者把area寫為計算型屬性(computed property),后者則把area寫為存儲型屬性(stored property)。

如下所示,Animal類沒有實現任何協議

class Animal {
    var legs: Int
    init(legs: Int) { self.legs = legs }
}

Circle,Country,Animal并沒有一個相同的基類,所以采用AnyObject類型的數組來裝載在它們的實例,如下所示:

let objects: AnyObject[] = [
    Circle(radius: 2.0),
    Country(area: 243_610),
    Animal(legs: 4)
]

如下所示,在迭代時檢查object數組的元素是否遵循了HasArea協議:

for object in objects {
    if let objectWithArea = object as? HasArea {
        println("Area is \(objectWithArea.area)")
    } else {
        println("Something that doesn't have an area")
    }
}
// Area is 12.5663708
// Area is 243610.0
// Something that doesn't have an area

當數組中的元素遵循HasArea協議時,通過as?操作符將其可選綁定(optional binding)到objectWithArea常量上。

objects數組中元素的類型并不會因為向下轉型而改變,當它們被賦值給objectWithArea時只被視為HasArea類型,因此只有area屬性能夠被訪問。

可選協議要求

可選協議含有可選成員,其遵循者可以選擇是否實現這些成員。在協議中使用@optional關鍵字作為前綴來定義可選成員。

可選協議在調用時使用可選鏈,詳細內容在可選鏈章節中查看。

像someOptionalMethod?(someArgument)一樣,你可以在可選方法名稱后加上?來檢查該方法是否被實現。可選方法和可選屬性都會返回一個可選值(optional value),當其不可訪問時,?之后語句不會執行,并返回nil。

注意: 可選協議只能在含有@objc前綴的協議中生效。且@objc的協議只能被類遵循。

Counter類使用CounterDataSource類型的外部數據源來提供增量值(increment amount),如下所示:

@objc protocol CounterDataSource {
    @optional func incrementForCount(count: Int) -> Int
    @optional var fixedIncrement: Int { get }
}

CounterDataSource含有incrementForCount的可選方法和fiexdIncrement的可選屬性。

注意: CounterDataSource中的屬性和方法都是可選的,因此可以在類中聲明但不實現這些成員,盡管技術上允許這樣做,不過最好不要這樣寫。

Counter類含有CounterDataSource?類型的可選屬性dataSource,如下所示:

@objc class Counter {
    var count = 0
    var dataSource: CounterDataSource?
    func increment() {
        if let amount = dataSource?.incrementForCount?(count) {
            count += amount
        } else if let amount = dataSource?.fixedIncrement? {
            count += amount
        }
    }
}

count屬性用于存儲當前的值,increment方法用來為count賦值。

increment方法通過可選鏈,嘗試從兩種可選成員中獲取count。

  1. 由于dataSource可能為nil,因此在dataSource后邊加上了?標記來表明只在dataSource非空時才去調用incrementForCount`方法。
  2. 即使dataSource存在,但是也無法保證其是否實現了incrementForCount方法,因此在incrementForCount方法后邊也加有?標記。

在調用incrementForCount方法后,Int型可選值通過可選綁定(optional binding)自動拆包并賦值給常量amount。

當incrementForCount不能被調用時,嘗試使用可選屬性``fixedIncrement來代替。

ThreeSource實現了CounterDataSource協議,如下所示:

class ThreeSource: CounterDataSource {
    let fixedIncrement = 3
}

使用ThreeSource作為數據源開實例化一個Counter:

var counter = Counter()
counter.dataSource = ThreeSource()
for _ in 1...4 {
    counter.increment()
    println(counter.count)
}
// 3
// 6
// 9
// 12

TowardsZeroSource實現了CounterDataSource協議中的incrementForCount方法,如下所示:

class TowardsZeroSource: CounterDataSource {
func incrementForCount(count: Int) -> Int {
        if count == 0 {
            return 0
        } else if count < 0 {
            return 1
        } else {
            return -1
        }
    }
}

下邊是執行的代碼:

counter.count = -4
counter.dataSource = TowardsZeroSource()
for _ in 1...5 {
    counter.increment()
    println(counter.count)
}
// -3
// -2
// -1
// 0
// 0
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
亚洲天天做日日做天天谢日日欢 | 欧美二区 | 高清免费大 | 精品视频一区二区观看 | 国产又黄又爽又色在线观看视频 | 日本阿v片在线 | 一区视频中文字幕 | 国产又黄又大又粗又硬又猛樱花 | 视频播放 | 区一区二区三视频日韩 | 国产一区不卡 | 国产在线观看91精品不卡 | 国产欧美日韩综合一区二区三区 | 国产频99热精品在线 | 国产精品一区成人精品网站 | 亚洲精品日韩一区 | 国产精品日韩精品在线播放 | 激情综合在线亚洲五月天 | 国语在线看免费观 | 亚洲午夜成人精 | 国内三级自拍小视频在线观看 | 亚洲色国产观看在线另类 | 国产免费观看久 | 免费在线播放视频 | 国产日本视频二本道在线观看 | 日本免费一区二区在线观看 | 亚洲国产日韩精品 | 初次深交流请多指教第二话 | 欧美日韩一区二区高清不卡 | 男人把女人桶的直叫爽 | 成人午夜爽 | 蜜桃影视 | 夜夜未满十八勿进的爽爽影院 | 最近的中文字幕视频完整 | 国产欧美日韩精 | 国产在线观看一区二区 | 在线观看www成人影院 | 亚洲欧美中文日韩aⅴ | 国产一区二区三区不卡 | 国产亚洲精品精品国产亚洲综合 | 亚洲精品1卡2卡三卡23卡 | 777奇米四色成人影视色区 | 国产高清在线精 | 国产1区精品 | 欧美乱码精品乱码一区二区三区 | 九色91国偷自产中文字幕 | 电视剧大全免 | 亚洲经典一区 | 精品午夜一级一二三区 | 国产大片好看免费 | 女人扒开屁股爽桶30分钟免费 | 欧美成妇人吹潮在线播放 | 国产在线精品观看免费观看 | 欧美日韩福利电影一区二区三 | 国产中文字幕永久在线观看 | 日韩伦理一区二区 | 国产日韩欧美亚洲精品中字 | 日韩v亚洲ⅴ欧美v精品综合 | 性激片在线播放欧美 | 人人添逼人人摸人人 | 日韩在线视频欧美一区 | 日本视频不卡一区二区 | 国产玖玖在线观看 | 99热日韩 | 高清一区二区亚洲 | 国产高清在线精品一区二区三区 | 91免费视 | 国产另类亚洲第1页在线 | 国产男女爽爽爽免 | 日本高清中文字幕免费一区二区 | 亚洲精品自拍视频在线免费 | 国产妇女性爽视频免费 | 亚洲欧美日韩中文国产不卡 | 99国产在线精品观看二区 | 日韩精品成人亚洲欧美在线 | 欧美日产成人高清视频 | 乱码一二区在线亚洲 | 9.1网站平台 | 视频在线看免费观看 | 欧美一级aaaaa免费高清 | 亚洲人成亚洲精品 | 精品一区二区日本高清 | 另类癖好| 免费99精品国产自在现线 | 精品国产品国语在线不卡 | 最近中文字幕2025免费 | 羞羞视频免费网 | 中文字幕精品亚洲电影 | 国产特黄a三级三级三级 | 最新国产精品精品视频 | 日韩欧美一卡二区 | 欧美亚洲国产日韩在线播放 | 蜜桃臀aⅴ精品一 | 欧美日韩亚洲高清精品 | 最近高清中文字幕免费mv视 | 欧洲无人区卡一卡二卡三 | 青青草中国三 | 青青青国产爽爽视频免费观看 | 久1精品视频 | 99国产精品日韩欧美视频 | 精品女同国产99 | 日韩精品一卡二卡3卡四卡2 | 国产一区二区精品在线观看 | 免费阿v网站在线观看g | 欧美高清国产一区二区三区 | 欧美处破视频免费观看 | 日本欧美高清全视频 | 精品欧美国产一区二区三区不卡 | 欧美日韩国产综合视频 | 精品国产免费 | 天堂va欧美ⅴa亚洲va一国产 | 成人国产欧美日韩在线观看 | 国产亚洲精品日韩已满十八 | 日韩欧美一区二区三区免费 | 免费欧三a大片 | 欧美女同小视频在线网站 | 国产系列丝袜熟女精品视频 | 国产揄拍视频在线观看 | 欧美精品a欧洲黑 | 成视频免费 | 日韩午夜免费不卡视频 | 精品一区二区三区 | 56prom精品视频在放免费 | 免费人成视网站在线观 | 国产91影院| 国产a视频| 亚洲一区二区三区四区视频 | 日韩欧美精品在线 | 中文字幕精品亚洲电影 | 87影院午夜福利 | 91免费视频在线 | 国产经典三级在线播放 | 羞羞影院午夜男女爽爽 | 夜爽夜夜网 | 500第一精品福利导航 | 善良的么公和熄日本中文字幕 | 日本午夜欧洲亚洲精品国产 | 男女xxⅹ爽免费视频 | 猛又大的视频在线播放 | 羞羞影院午夜男女爽爽影 | 国产a级三级三级三级视频 日本高清在线播放 | 色拍自拍亚洲综合图区 | 91最新精 | 91秦先生久 | 亚洲精品r级在线观看网站 182tvc午夜福利在线观看污 | 黑人巨大精品欧美一区二区免费 | 欧美一厂区二厂区三厂区 | 日本精品视频在线观看 | 国产精品精品国内自产拍 | 伦理片国产精品 | 秋霞日韩欧美一区二区三区 | 国产精品青青青高清在线密亚 | 日韩最新无 | 日韩中文字幕精品一区 | 国产又爽又色又刺激视频 | 本一区二区三区 | 九九视频在线免费观看 | 日本黄在线观 | 女同互添下身视频在线观看 | 欧美日韩精品在线视频一区 | 亚洲欧美v视色一区二区 | 欧美三级韩国三级日本三斤 | 又黄的免费视频 | 米奇欧美777四色影视在线 | 国产一区二区三区乱码 | 国产香蕉一区二区三区在线视频 | 日韩一区二区在线看片视频 | 欧美精品成人一区二区三区影院 | 国内精品视频一区二区 | 午夜国产小视频 | 艾栗栗国产精品视频一区 | 欧美精品一区三区在线观看 | 日本一区二区三区在线播 | 人摸人爱视频 | 无人视频在线观看播放免费 | 东京道一本热大交乱 | 国产伦精一区二区三区视频 | 欧美freesex黑人又粗又大 | 国产不卡一区二区三区 | 日本免费综合 | 成年片色大黄全 | 亚洲911国产精品 | 亚洲欧美一区二区三区 | 怡红院在线a男人的天堂 | 美女丰满精品 | 忘忧草影院在线www韩国日本 | 国产性爱在线视频 | 国产裸舞在线一区二区 | 国产精品网红尤物福利在线观看 | 日韩综合一区二区三区 | 国产综合第1页国产 | 国产最新亚洲精品 | 国产熟女一区二区三区五月婷 | 亚洲精品视频免费观看 | 老司机网 | 国产不卡视频在线观看 | 国产玖玖玖九九精品视频 | 国产精品自产拍在线观看网站 | 国产高清在线精品一区小说 | 日本黄页网站免费大全 | 国产精品日韩欧美在线 | a级国产乱理伦片在线播放 夫妻之间免费观看完整版 精品女同 | 自偷自拍 | 国产特级毛 | 成人免费观看男女 | 日日夜夜 | 免费h在线观看视频网站 | 免费看片黄 | 日韩天天精品综合 | 国产福利精 | 欧美日韩第一区第138页 | 水蜜桃视频网站在线观看网址 | 日韩一区二区三区在线精品 | 国产自偷酒店在线观看 | 欧美亚洲精品一区二区在线观看 | 精品国产爱片 | 日本一区二区三区四区在线 | 国产在线精品一区不卡 | 欧美特黄三级在线观看 | 香蕉视观看在线a | 国产精品一级婬片免费 | 国产精鲁鲁网在线视频 | 免费观看日韩黄 | 国产综合激情在线观看视频 | 91一区二区在线观看精品 | 电影在线免费高清中文 | 欧美日韩在线视频制服 | 国产久热精品 | 国产亚洲老熟女视频 | 日韩欧美在线观看 | 国产大片在线播放 | 国产欧美成 | 岛国一区二区三区在线 | 国产一区二区三区免费视频 | 99国产在线国语精品2025 | 精品国产污污免费网站aⅴ 欧美极品日韩极品1 | 一区在线观 | 91视频国产亚洲精品 | 国产婷婷精品任我爽欧美 | 亚洲精品国产第一区二区小说 | 国产福利自产拍在线观看 | 日本一区二区电影 | 妇女偷汉对白视频 | 91社影院在线观看 | 果冻传媒国产电影免费看 | 亚洲欧美韩国三级 | 五月天久 | 人人玩人人添人人澡免费 | 国产视频一区在线一区在线看 | 一本到在线观看视频 | 欧一美一性一交一乱一性一 | 成全高清在线播放电视剧 | 青青草国产精品视频 | 青青草原亚洲之五月婷 | 日韩欧美国产一区二区浪潮 | 亚洲视频第一页精品 | 综合图区亚洲 | 二区三在线播放 | 亚洲第一网站a√在线观看 日韩亚洲产 | 国色天香社区视频免费观看 | 日韩欧美国产中文综合 | 精品一区 | 717电影琪琪午夜理论 | 欧美一区二区三区日韩免费播 | 日本高清www色视 | 亚洲视频中文字幕 | 国产在线精品国自产拍影 | 欧美亚洲国产高清在线 | 国产亚洲男人的天堂在线观看 | 国产日韩中文字幕 | 国产拍拍拍在线观看视频免费 | 中文字幕在线亚洲二区 | 亚洲国产中文日韩欧美在线 | 国产一级a毛一级a看免费 | 日韩欧美制服丝袜在线播放 | 日韩美女网站在线看 | 1024手机看片国产日韩欧美 | 国产自约视频 | 999在线观看国产 | 播放高清mba | 欧美va亚洲va在 | 精品国产资源站 | 亚洲欧美日韩看片 | 日本理论片和搜子同居的日子电 | 欧美激情在线免费观看 | 国产色片大全在线观看 | 中文字幕精品亚洲无线码二 | 五月综合激情婷 | 欧美复古毛绒绒电影在线 | 日本一本免费高清在线dvd | a级国产片| 99视频在线精品自拍 | 亚洲欧美一区二区三区电影 | 91短视频福利导航 | 国产网站免费在线观看 | 中文字幕第一页在线观 | 亚洲成色综 | 中国领先的综合视频网站 | 一色屋色费精品视频在线看 | 亚洲欧美大码a在线观看 | 7799免费视频天天看 | 综合影视亚洲中文 | 欧美日韩在线视频一区 | 日韩精品免费一区二区三区高清 | 亚洲欧美日韩中文字幕二区 | 中文字幕午夜福利片午夜福利片 | 7799天天综合入口精品 | 免费高清资源等你来享 | 二区三区在线视频 | 成人精品欧美一区二区三区 | 国产精品视频色拍拍 | 国产国产乱老熟视频网站 | 国产伦精一品二品三品 | 亚洲欧美日韩国产精品专区网 | 亚洲日韩高清在线亚洲专区 | 99精品欧美一区蜜桃在线 | 精品国产免费第一区二区三区 | 国产一级淫片免费播放 | 日本三级手机在线播放线观看 | 欧美日韩一区免费 | 国产一级精品在线播 | 精品日韩一区二区三区四区五 | 日韩在线一区 | 成人欧美在线观看 | 国产剧情mv天美传媒 | 人人爰人人人人人鲁 | 欧美色五月天激情 | 精品精品国产高清 | 精品亚洲a∨码国产一区二区 | 日本猛妇色xxxxx在线 | 成人一级免费激情网 | 国产精品亲子乱子伦 | 精品全国在线一区二区 | 国产又粗又猛又爽又黄的视频 | 军训完被教官灌满精子男男 | 国内性色精| 亚洲自偷自拍另类第1页 | 网站资源多午夜激情影院 | 日韩一区二区www | 亚洲高清国 | 国产拍偷| 欧美性黑人极品hd另类 | 激情深爱五月开心婷婷综合 | 天堂在线视频网站 | 亚洲电影| 亚洲国产专区一区 | 观看免费视频 | 国产精品日韩一 | 欧美一区二区在线观看视频 | 在线看片国产日韩欧美亚洲 | 日韩视频精品一区二区在线观看 | 天天射网 | 97色精品 | 第四色伊人 | 国产高清免费a级在线 | 10000部禁人视频免费网站 | 日韩视频不卡在线 | 国产精品欧美亚洲 | 中国特级黄大片视频 | 国产精品伦理一二三区伦理 | 伦理片97影视网 | 日产精品一区二区三区免费 | 亚洲国产精品综合小说图片区 | 国产一区二区三区美女图片 | 欧美乱妇高清乱码视频 | 日韩v亚洲ⅴ欧美v精品综合 | 日韩一区二区视频免费观看 | 蜜臀91精品国产免费观看 | 欧美日本综合一区二区三区 | 日韩女优一区视频 | 国产大片在线播放 | 日本精品一区二区在线播放 | 蜜桃臀無碼內射一區二區三區 | 性色a码一区二区三区天美传媒 | 国产稀缺另类刺激对白 | 欧美视频在线视频精品 | 最新md传| 无尽动漫性视频╳╳╳3d | 国产自在现线看 | 亚洲国产剧情一区在线观看 | 国产免费观 | 国产香蕉一区二区三区在线视频 | 日本三级一区 | 亚洲精品亚洲欧美综合区 | 国产精品免费在线观看 | 欧美日韩国产亚洲综合网一区 | 视频三区 | 欧洲大肥女bbw | 欧美激情第1页 | 国产精品欧美亚洲韩国日本不卡 | 国产精彩视频在线观看91 | 激性欧美在线播激性欧美 | 中文字幕资源网在线观看免费 | 欧美日韩国产一区二区三区在线 | 69影院 | 日韩欧美国产综合在线播放 | 国产亚洲欧美精品一区 | 国产你懂 | 国产亚洲精品自在在线观看 | 成人精品免费视频在线观看 | 日韩电影在线观看视频 | 中文字幕在线永久 | 腿露私下 | 最新手机在线电影 | 阿v视频国产免在线手机观看 | 国内精品在线观看看 | 国产精品国语对白露脸在线播放 | 日本成片免费观看视频在线 | 福利一区在线观看 | 国产第一页屁屁影院 | 国产高清一区二区在线免费观看 | 日韩一区在线欧美激情 | 国产免费真实喷潮视频 | 日本精品国产一区二区在线 | 日日插人人插天天插 | 99这里都是精品 | 青青爽在线视频精品 | 91po最新国产在线 | 精品香蕉一区二区三区 | 国产啪精品视频免费网站 | 中文字幕v亚洲日本在线电影 | 国产在线观看片免费人成视频 | 国产a∨精品一区 | 国产综合在线观看视频 | 誠鼎影院 | 国产精品国产自线在线观看 | 精品视频一区二区三区 | 亚洲国产精品高清在线第1页 | 国产欧美视频综合二区 | 女人与动zz | 国产欧美一成人不卡视频 | 国产日韩精品一区二区三 | 国产精品视频网站 | 蜜桃盗摄精品一区二区三区 | 国产开嫩苞实拍在线播放 | 成人精品一区二区电影 | 精品亚洲欧美无人 | 欧美精品视频一区 | 欧美整片sss第一页视频 | 欧美日韩在线观看区一二 | 欧美亚一区二区三区不卡视频 | 国产日韩精品影院 | 国内免费视频一区二区三区 | 日本欧美人成免费视频 | 人人揉揉揉揉揉日日 | 国产精华 | 亚洲中文字幕乱伦 | 国产精品99| 国产精品女人在线观看 | 亚洲最新国产一区二区三区 | 国产区女主播在线观看 | 一二区视频免费在线观看 | 免费aⅴa级视 | 成a人v在线观看 | 菊花综合网亚洲中文字幕 | 色偷偷2025免费视频观看 | 精品亚洲国产成v人片传媒 日本一本二本在线观看 | 五月婷婷国产在线 | 国产欧美日本在 | 国产日韩欧美视频免费看 | 一区二区三区在线日 | 97午夜理论电影影院 | 日韩一区二区四区高清免费 | 成人欧美 | 国产精品韩国一区二区三区 | 欧美乱强伦xxxx | 欧美在线精品视频a | 日本+国产+高清 | 免费在线电影网站 | 69视频免费在线观看 | 精品国色天香新区卡一卡二 | 小明加密通道最新三 | 99热这里只有精品免费播放 | 农村妇女偷汉视频过程 | 欧美推油无尺码 | 日韩成人精品无v国产 | 日本一二线不卡在线观看 | 欧美中文字幕无线码视频 | 亚洲精品国产一级高清在线观看 | 国产女和黑人 | 日韩精品高清在线 | 日韩另类在线一区二区三区 | 日韩在线观看免费完整版 | 国产精品精品自在线拍 | 国产69| 国内精品视频在线中文字幕 | 韩国精品一区二区三区在线 | 午夜亚洲一区 | 性色a∨人人 | 精品一区二区在 | 国产欧美自拍视频 | 国产人在线成免费 | 国产女主播喷水 | 成人亚欧| a午夜福利精品国产 | 免费国产不卡一区二区三区 | 日韩精品视频免费在线观看 | 国产精品网站在线播放 | 国产亚洲tv在线观看 | 三三影院网 | 精品一线天学生在线观看 | 免费在线播放视频 | 欧美日韩视频在线第一区 | 精品国产品香蕉在 | 国产亚洲精品九九久在线观看 | 欧美精品一区二区三区在线观看 | 亚洲性爱国 | 91神马 | 精品动漫一区二区 | 国产精彩视频一区二区三区 | 三级在线观看 | 国产vr在| 亚洲日韩欧美一区二区在线 | 亚洲高清精品一区 | 亚洲国产aⅴ综合网 | 99久9久免费国产动漫 | 精品自拍视频400部 亚洲日韩v | 水蜜桃国产在线观看免费视频 | 国产乱子影视频上线免费观看 | 中文字幕不卡高清dvd | 国精产品999国精产品视频 | 精品国产亚洲人成在 | 国产中文另类二区 | 国产精品亚洲欧美大片在线看 | 欧美日本系列亚洲第一页 | 国产99视频精品免费播放 | 中文国产欧美不卡 | 九九九九九热 | 欧美亚洲高清国产一区二区三区 | 日韩视频免费在线观看 | 污污视频软件下载 | 国产高清在线精 | 国产精品偷伦视频免费观看了 | 亚洲色久婷婷 | 偷拍视频一区二区三区 | anquya俺去了俺来了 | 国产边添边摸边做边爱 | 精品亚洲欧 | 欧美日韩综合不卡一区二区三区 | 欧美亚洲国产另类制服丝袜 | 成人福利在线免费观看 | 精品一线二线三线 | 精品国产一区二区三区不卡在 | 日韩欧美在线一区二区三区 | 高清欧美日韩一区二区三区在线 | 欧美日韩国产免费一区二区三区 | 日韩vr欧美vr性视频 | 国产日韩综合一区在线观看 | 欧美日韩视频一区二区三区 | 国精产品一区二区三区有限公司 | 日韩高清| 日本在线看片免费人成视频 | 日韩在线电影大全免费观看 | 欧美日韩精品一区二区三区 | 美女爽到尿喷出来 | 国产在线精品50页 | 国产熟女 | 日韩在线国产 | 国产在线拍揄自揄拍免费下载 | 欧美精品a欧洲黑 | 欧美午夜一区二区之蜜桃 | 日本不卡一区二区三区 | 9999热| 国产在线乱码 | 国产经典在线观看一区 | 国产在线精品成人一区二 | 欧洲女人性开放视频过性 | 又大又粗又黄又硬又爽又免费视 | 欧美高清另类自拍视频在线看 | 在线视频一区二 | 国外精品视频在线观看免费 | 视频一区视频二区日韩专区 | 九九国产精品 | 99国产精 | 韩国三级伦理在线 | 少女的第一的视频 | 92手机看片 | 国产自产一二三区 | 欧美日韩在线视频一区 | 国产高跟鞋丝袜在线观看 | 国产在线一区二区三区不卡在线 | 伊人插菊网 | 免费观看性生交大片 | 欧美成a高清在线观看www | 免费香蕉一区二区在线观看 | а√天堂8资源中文在线 | 自拍偷自拍亚洲 | 按摩偷拍一区不卡 | 日本www视频在线观看 | 天堂va欧美ⅴa亚洲va一国产 | 日韩国产一区二区在线播放 | 青青青国产在线观看 | 国产模特精品私拍在线 | 国产成年人免费在线观看 | 卡一卡二卡三卡四 | 三三电影网 | 亚洲人成在线观看影院 | 欧美人成在线播放网站色 | 国产揄拍视频在线观看 | 欧美老妇人xxxx | 国产精品一二三四区免费 | 精品国产柚木在线观看 | 精品亚洲一区二区三区 | 欧美国产日韩a在线视频 | 国产黄页在线观看黄a∨ | 国产精品亚洲社区在线观看 | 欧美日韩国产亚洲一区二区三区 | 国产中文字幕手机视频 | 国产淫秽性爱视频在线 | 99精品热这里只有精品 | 国产精品资源站在线 | 欧美精品一区 | 欧美高清性色生活 | 大肉大捧一进一出视频 | 国产农村乱子伦精品视频 | 欧美日本一区二区综合另类 | 日韩一区二区三区四区电影 | 亚洲免费在线国产视频午夜精 | 国产在线播放不 | 韩国三级全部电影在线观看 | 国产草莓社区在线观看 | 老师喂我乳我脱她内裤 | 韩日精品一区二区 | 国产日韩欧美新地址 | 国产在线观看网址精品 | 99这里只有免费费精品 | 91tv在线播放| 老司机黄污app下载 91精品国产免费观看 | 国产制服国产制服一区二区 | 精品国精品国产自在久国产87 | 国产特黄a三级三级三级 | 免费观看最新电影和热门影视剧 | 国产欧美精品12区发布 | 欧美伦理一区二区 | 日本视频在线免费观看 | 欧美色欧美 | 99亚洲中文字幕精品一区二区 | 免费看精品网站视频在线观看 | 亚洲无线观看国产高 | 日韩亚洲欧美三区中文字幕 | 欧美日本亚欧在线观看欧亚 | 国产精品高 | 免费观看全黄做爰的视频 | 国产精品成人aaaa网站女吊丝 | 五月天激情 | 精品乱伦一级二级三级 | 国产高清乱理伦片中文小说 | 搡老熟女老 | 日韩激情视频网站 | 欭美日韩颜射在线 | 国产免费福利不 | 国产日韩欧美精 | 最新日韩欧美不卡一二三 | 动漫精品欧美一区二区三 | 欧美日韩国产综合视频专区 | 亚联创展包装(清远)有限公司 | 国产啪在线91 | 九九热精品视频在线观看 | 国产综合精品一区99成人 | 日韩免费精品视频一区二区三区 | 另类国产亚洲日韩 | 中文字幕国产第1页直播在线 | 日本欧美一区二区三区免费不卡 | 成人三级网站精品 | 欧美性精品h | 91人成亚洲高清在线观看 | 国产精品爽爽ⅴ?在线观看 亚洲免费一区二区 | 菠萝菠萝蜜视频在线观看时 | 91精品啪在线观看国产线免费 | 国产在线视频一区二区三区 | 成人动画在线观看免费污 | 在线看片免费人成视久网 | 欧美一区二区在线观看 | 宝宝真骚是不是想被c | 美女露胸无遮 | www在线播 | 国产精品r级最新在线观看 国产欧美日韩亚洲精品中文专区 | 伊人成色综 | 国产91精品对自露脸全集观看 | 丰满大码女优aⅴ在线 | 91九色在线| 欧美亚洲性| 国产免国产免费 | 国产定点盗摄女厕所合集 | 日本日韩中文字幕 | 亚洲激情乱伦 | 午夜福利电影在线观看 | 国产萌白酱喷水在线播放尤物 | 蜜桃视频91 | 日韩欧美一区精品 | 日本道免费一区不卡 | 国产亚洲一区区二 | 午夜在线观看视频 | 精品一区二区三区三级视频 | 亚洲第二页 | 国产盗摄xxxx视频xxxⅹ | 免费观看国产一区二区三区 | 日韩在线观看精品第一页 | 北京国贸大酒店张津 | 在线国产亚洲91 | 一区二区本码 | 精品国产乱码在线观看 | 亚洲国产中文日韩精品乱码 | 成年人在线免费观看视频 | 欧美一厂区二厂区三厂区 | 国产精品三级在线播放 | 亚欧成人 | 美女视频免费观看网站黄 | 欧美大片黑寡妇免费观看 | 成人永久免费视频网站在线观看 | 日本高清天码一区 | 欧美激情国产日韩 | 国语自产视频在线 | 亚洲经典一区二区三区爱妃记歌词 | 国产色综合久 | 国产又色又爽 | 高清影视电视剧免费在线观看 | 精品日韩国产欧美视频 | 中文字幕无线码中文字幕网站 | 中文www新版资源在线天堂√ | 午夜免费观看福利片 | 欧美96 | 伦理电影在线观看视频 | 好吊日在线视频观看97 | 亚洲人成小说网站色在线观看 | 国产痴汉系列在线播放 | 不卡一卡 | 日产精品一卡2卡三卡4卡乱码 | 精品大臿蕉视频在线观看 | 国产精品搭 | 亚洲开心婷婷中文字幕一区 | 成人国产亚| 亚洲日本欧美日韩髙清观看 | 日韩亚欧美一二三四视频 | 国产日韩欧美女同一区二区 | 日本欧美| 国产乱码伦精品一区二区三区 | 日韩欧美一级中文字幕 | 国产午夜一区二 | 日本免费在线 | 激情欧美一区二区三区 | 精品国产理论片在线观看 | 57pao视频国产在线观看 | 日韩欧美一级视频网站 | 日本三级 | 精品視頻無碼一區二區三區 | 国产盗撮视频在线观看 | 国产91足控脚交在线观看 | 欧美bbw性色大片 | 国产精品一区二区免费16 | 一区二区三区中文字幕 | 一本大道在线 | 国产欧美日韩综合视频专区 | 大地影院mv在线观看视频免费 | 亚洲综合狠狠99婷婷 | 欧美精品欧美人与动人物牲 | 国产主播在线一区二区 | 日本视频一区在线播放 | 超级媚药痉 | 在线观看成人性生 | 亚洲偷偷自拍高清 | 日韩大乳视频中文字幕 | 热门好看动漫综艺 | 国产精品网站不卡在线观看 | 96533电视影片免费 | 无色码中文字幕亚洲精品 | 国产日韩一区二 | 欧美日韩视频一区二区三区 | 产免费一区二区三区视频 | 国偷盗摄自产福利一区在线 | 国产国产成年在线影视区 | 亚洲三级网站 | 国产激情影视综合 | 女人一级特纯黄 | 97色轮| 日韩欧美国产综合 | 国产在线ts人妖 | 精品午夜一区二区福利 | 欧美日韩国产中文精品字幕自 | 欧美高清爽一区 | 99视频在线国产 | 中文精品免费视频 | 欧美床戏吻戏摸下面吻胸 | 精品国产一区二区三区不卡 | 欧美日韩在线在线观看 | 欧美亚洲中文字幕免费观看 | 99精品视频在线 | 综合永久入口 | 国产一区二区高清在线国产综合 | 欧美与黑人午夜性猛交 | 国产老妇伦国产熟女老妇视频 | 99re66在线观看精品免费 | 国产一级特黄a大片免费 | 欧美伦费免费全部午夜最新 | 韩国福利影视一区二区三区 | 亚洲综合精品网站在线观看 | 日韩欧美亚洲综合久 | 国产免费人成在线看视频 | 精品国偷自产在线视频 |