; Vega's Hyper States
;---------------------------------------------------------------------------
; Super Slash Uppercut
[Statedef 995]
type    = S
movetype= A
physics = S
ctrl = 0
velset = 0,0
anim = 902

[State 995, NotHitBy]
type = NotHitBy
trigger1 = 1
value = SCA
time = 1

[State 995, SuperPause]
type = SuperPause
trigger1 = AnimElem = 1
pos = -52, -68
anim = 100
time = 30
sound = S3,4 ;20, 0
poweradd = -1000

[State 995, AfterImage]
type = AfterImage
trigger1 = AnimElem = 1
time = 0

[State 995, AfterImageTime]
type = AfterImageTime
trigger1 = 1
time = 2

[State 995, 1]
type = PlaySnd
trigger1 = Anim = 902
trigger1 = AnimElem = 3
value = 10, 2
channel = 0

[State 995, 2]
type = PosAdd
trigger1 = Anim = 902
trigger1 = AnimElem = 3
x = 20

[State 995, 2]
type = PosAdd
trigger1 = Anim = 902
trigger1 = AnimElem = 4
x = 5

[State 995, 2]
type = PosAdd
trigger1 = Anim = 902
trigger1 = AnimElem = 6
x = -5

[State 995, 3]
type = HitDef
triggerall = Var(2) = 0
trigger1 = Anim = 902
trigger1 = AnimElem = 4
attr = S, HA
damage = 300, 10
getpower = 0
animtype = Up
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 10, 10
guard.pausetime = 5, 5
sparkno = 12
sparkxy = -10, -90
hitsound = S2, 9
guardsound = S2, 0
ground.type = Low
ground.slidetime = 5
ground.hittime  = 20
ground.velocity = -1,-20
airguard.velocity = -1,-10
fall.animtype = Up
air.type = Low
air.velocity = -1,-20
air.hittime = 20
envshake.time = 10
envshake.freq = 100
envshake.ampl = -5
envshake.phase = 5
fall.recover = 0
air.fall = 1
yaccel = .5
fall = 1

[State 995, State]
type = ChangeAnim
triggerall = P2MoveType = H
triggerall = Time <= 60
trigger1 = Anim = 902
trigger1 = MoveHit
value = 902
elem = 5

[State 995, State]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; Super Slash Combo
[Statedef 996]
type    = S
movetype= A
physics = S
ctrl = 0
velset = 0,0
anim = 900

[State 995, NotHitBy]
type = NotHitBy
trigger1 = 1
value = SCA
time = 1

[State 995, SuperPause]
type = SuperPause
trigger1 = Anim = 900
trigger1 = AnimElem = 2
pos = -52, -68
anim = 101
time = 30
sound = S3,4 ;20, 0
poweradd = -2000

[State 995, AfterImage]
type = AfterImage
trigger1 = Anim = 900
trigger1 = AnimElem = 2
time = 0

[State 995, AfterImageTime]
type = AfterImageTime
trigger1 = 1
time = 2

[State 995, Width]
type = Width
triggerall = Anim = 900
trigger1 = AnimElem = 2 >= 0
value = 10,0

[State 995, Width]
type = Width
triggerall = Anim = 900
trigger1 = AnimElem = 3 >= 0
trigger1 = AnimElem = 7 < 0
value = 20,0

[State 995, Width]
type = Width
triggerall = Anim = 900
trigger1 = AnimElem = 4 >= 0
trigger1 = AnimElem = 7 < 0
value = 30,0

[State 995, 1]
type = PlaySnd
trigger1 = Anim = 900
trigger1 = AnimElem = 3
value = 10, 8
channel = 0

[State 995, 1]
type = PlaySnd
trigger1 = Anim = 901
trigger1 = AnimElem = 3
value = 10, 7
channel = 0

[State 995, 1]
type = PlaySnd
trigger1 = Anim = 902
trigger1 = AnimElem = 3
value = 10, 2
channel = 0

[State 995, 2]
type = PosAdd
trigger1 = Anim = 902
trigger1 = AnimElem = 3
x = 20

[State 995, 2]
type = PosAdd
trigger1 = Anim = 902
trigger1 = AnimElem = 4
x = 5

[State 995, 2]
type = PosAdd
trigger1 = Anim = 902
trigger1 = AnimElem = 6
x = -5

[State 995, 3]
type = HitDef
triggerall = Var(2) = 0
trigger1 = Anim = 900
trigger1 = AnimElem = 4
attr = S, HA
damage = 150, 10
getpower = 0
animtype = Heavy
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 0, 50
guard.pausetime = 5, 5
sparkno = 12
sparkxy = -10, -80
hitsound = S2, 9
guardsound = S2, 0
ground.type = High
ground.slidetime = 5
ground.hittime  = 20
ground.velocity = 0
airguard.velocity = 0
fall.animtype = Medium
air.type = Low
air.velocity = 0
air.hittime = 20
envshake.time = 20
envshake.freq = 100
envshake.ampl = -5
envshake.phase = 5
fall.recover = 0
kill = 0

[State 995, Anim]
type = ChangeAnim
triggerall = P2MoveType = H
triggerall = Time = 50
trigger1 = MoveHit
value = 901

[State 995, 3]
type = HitDef
triggerall = Var(2) = 0
trigger1 = Anim = 901
trigger1 = AnimElem = 3
attr = S, HA
damage = 150, 10
getpower = 0
animtype = Medium
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 0, 50
sparkno = 12
sparkxy = -10, -65
hitsound = S2, 9
guardsound = S2, 0
ground.type = Low
ground.slidetime = 5
ground.hittime  = 20
ground.velocity = 0
airguard.velocity = 0
fall.animtype = Heavy
air.type = Low
air.velocity = 0
air.hittime = 20
envshake.time = 20
envshake.freq = 100
envshake.ampl = -5
envshake.phase = 5
fall.recover = 0
kill = 0

[State 995, Anim]
type = ChangeAnim
triggerall = P2MoveType = H
triggerall = Time = 100
trigger1 = MoveHit
value = 902

[State 995, 3]
type = HitDef
triggerall = Var(2) = 0
trigger1 = Anim = 902
trigger1 = AnimElem = 4
attr = S, HA
damage = 200, 10
getpower = 0
animtype = Up
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 10, 10
sparkno = 12
sparkxy = -10, -90
hitsound = S2, 9
guardsound = S2, 0
ground.type = Low
ground.slidetime = 5
ground.hittime  = 20
ground.velocity = -1,-20
airguard.velocity = -1,-10
fall.animtype = Up
air.type = Low
air.velocity = -1,-20
air.hittime = 20
envshake.time = 10
envshake.freq = 100
envshake.ampl = -5
envshake.phase = 5
fall.recover = 0
air.fall = 1
yaccel = .5
fall = 1

[State 995, Anim]
type = ChangeAnim
triggerall = P2MoveType = H
triggerall = Anim = 900
triggerall = Time >= 10
triggerall = Time <= 50
trigger1 = MoveHit
value = 900
elem = 6

[State 995, Anim]
type = ChangeAnim
triggerall = P2MoveType = H
triggerall = Anim = 901
triggerall = Time >= 60
triggerall = Time <= 100
trigger1 = MoveHit
value = 901
elem = 4

[State 995, Anim]
type = ChangeAnim
triggerall = P2MoveType = H
triggerall = Anim = 902
triggerall = Time >= 110
triggerall = Time <= 150
trigger1 = MoveHit
value = 902
elem = 5

[State 995, State]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; Super Slash Combo
[Statedef 997]
type    = S
movetype= A
physics = S
ctrl = 0
velset = 0,0
anim = 900

[State 995, NotHitBy]
type = NotHitBy
trigger1 = 1
value = SCA
time = 1

[State 995, SuperPause]
type = SuperPause
trigger1 = Anim = 900
trigger1 = AnimElem = 2
pos = -52, -68
anim = 102
time = 30
sound = S3,4 ;20, 0
poweradd = -3000

[State 995, AfterImage]
type = AfterImage
trigger1 = Anim = 900
trigger1 = AnimElem = 2
time = 0

[State 995, AfterImageTime]
type = AfterImageTime
trigger1 = 1
time = 2

[State 995, Width]
type = Width
triggerall = Anim = 900
trigger1 = AnimElem = 2 >= 0
value = 10,0

[State 995, Width]
type = Width
triggerall = Anim = 900
trigger1 = AnimElem = 3 >= 0
trigger1 = AnimElem = 7 < 0
value = 20,0

[State 995, Width]
type = Width
triggerall = Anim = 900
trigger1 = AnimElem = 4 >= 0
trigger1 = AnimElem = 7 < 0
value = 30,0

[State 995, 1]
type = PlaySnd
trigger1 = Anim = 900
trigger1 = AnimElem = 3
trigger2 = P2MoveType = H
trigger2 = Time = 80
value = 10, 8
channel = 0

[State 995, 1]
type = PlaySnd
trigger1 = Anim = 901
trigger1 = AnimElem = 3
value = 10, 7
channel = 0

[State 995, 1]
type = PlaySnd
trigger1 = Anim = 902
trigger1 = AnimElem = 3
value = 10, 2
channel = 0

[State 995, 2]
type = PosAdd
trigger1 = Anim = 902
trigger1 = AnimElem = 3
x = 20

[State 995, 2]
type = PosAdd
trigger1 = Anim = 902
trigger1 = AnimElem = 4
x = 5

[State 995, 2]
type = PosAdd
trigger1 = Anim = 902
trigger1 = AnimElem = 6
x = -5

[State 995, 3]
type = HitDef
triggerall = Var(2) = 0
trigger1 = Anim = 900
trigger1 = AnimElem = 4
attr = S, HA
damage = 100, 10
getpower = 0
animtype = Heavy
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 0, 50
guard.pausetime = 5, 5
sparkno = 12
sparkxy = -10, -80
hitsound = S2, 9
guardsound = S2, 0
ground.type = High
ground.slidetime = 5
ground.hittime  = 20
ground.velocity = 0
airguard.velocity = 0
fall.animtype = Medium
air.type = Low
air.velocity = 0
air.hittime = 20
envshake.time = 20
envshake.freq = 100
envshake.ampl = -5
envshake.phase = 5
fall.recover = 0
kill = 0

[State 995, 3]
type = HitDef
triggerall = Var(2) = 0
trigger1 = Anim = 901
trigger1 = AnimElem = 3
attr = S, HA
damage = 100, 10
getpower = 0
animtype = Medium
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 0, 50
sparkno = 12
sparkxy = -10, -65
hitsound = S2, 9
guardsound = S2, 0
ground.type = Low
ground.slidetime = 5
ground.hittime  = 20
ground.velocity = 0
airguard.velocity = 0
fall.animtype = Heavy
air.type = Low
air.velocity = 0
air.hittime = 20
envshake.time = 20
envshake.freq = 100
envshake.ampl = -5
envshake.phase = 5
fall.recover = 0
kill = 0

[State 995, 3]
type = HitDef
triggerall = Var(2) = 0
trigger1 = Anim = 902
trigger1 = AnimElem = 4
attr = S, HA
damage = 200, 10
getpower = 0
animtype = Up
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 10, 10
sparkno = 12
sparkxy = -10, -90
hitsound = S2, 9
guardsound = S2, 0
ground.type = Low
ground.slidetime = 5
ground.hittime  = 20
ground.velocity = -1,-20
airguard.velocity = -1,-10
fall.animtype = Up
air.type = Low
air.velocity = -1,-20
air.hittime = 20
envshake.time = 10
envshake.freq = 100
envshake.ampl = -5
envshake.phase = 5
fall.recover = 0
air.fall = 1
yaccel = .5
fall = 1

[State 995, Anim]
type = ChangeAnim
triggerall = P2MoveType = H
triggerall = Time = 40
trigger1 = MoveHit
value = 901

[State 995, Anim]
type = ChangeAnim
triggerall = P2MoveType = H
triggerall = Time = 80
trigger1 = MoveHit
value = 900
elem = 3

[State 995, Anim]
type = ChangeAnim
triggerall = P2MoveType = H
triggerall = Time = 120
trigger1 = MoveHit
value = 901

[State 995, Anim]
type = ChangeAnim
triggerall = P2MoveType = H
triggerall = Time = 160
trigger1 = MoveHit
value = 902

[State 995, Anim]
type = ChangeAnim
triggerall = P2MoveType = H
triggerall = MoveHit
triggerall = Anim = 900
trigger1 = Time >= 10
trigger1 = Time <= 40
trigger2 = Time >= 90
trigger2 = Time <= 120
value = 900
elem = 6

[State 995, Anim]
type = ChangeAnim
triggerall = P2MoveType = H
triggerall = MoveHit
triggerall = Anim = 901
trigger1 = Time >= 50
trigger1 = Time <= 80
trigger2 = Time >= 130
trigger2 = Time <= 160
value = 901
elem = 4

[State 995, Anim]
type = ChangeAnim
triggerall = P2MoveType = H
triggerall = MoveHit
triggerall = Anim = 902
trigger1 = Time >= 170
trigger1 = Time <= 210
value = 902
elem = 5

[State 995, State]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; Red Impact - Claw Attack
[Statedef 3000]
type    = S
movetype= A
physics = S
ctrl = 0
velset = 0,0
anim = 3000

[State 3000, AfterImageTime]
type = AfterImageTime
trigger1 = 1
time = 2

[State 3000, NotHitBy]
type = NotHitBy
trigger1 = 1
value = SCA
time = 1

[State 3000, State]
type = TargetState
trigger1 = AnimElem = 1
value = 3005

[State 3000, Bind 1]
type = TargetBind
trigger1 = Anim = 3000
trigger1 = AnimElem = 1
pos = 80, 0

[State 3000, Bind 1]
type = TargetBind
trigger1 = Anim = 3000
trigger1 = AnimElem = 2
pos = 70, 0

[State 3000, Bind 1]
type = TargetBind
trigger1 = Anim = 3000
trigger1 = AnimElem = 3
pos = 50, 0

[State 3000, 2]
type = PosAdd
trigger1 = Anim = 3000
trigger1 = AnimElem = 3
x = 10

[State 3000, 2]
type = PlaySnd
trigger1 = Anim = 3000
trigger1 = AnimElem = 15
value = 10, 2
channel = 0

[State 3000, 2]
type = HitDef
triggerall = Var(25) = 1
trigger1 = Time = 0
attr = S, HA
damage = 300, 0
getpower = 0
animtype = Heavy
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 30, 30
sparkno = 12
sparkxy = 0, -120
hitsound = S2, 9
guardsound = S2, 0
ground.type = Low
ground.slidetime = 5
ground.hittime  = 15
ground.velocity = -1,-10
airguard.velocity = -1,-3
air.velocity = -1,-8
air.hittime = 15
envshake.time = 20
envshake.freq = 100
envshake.ampl = -5
envshake.phase = 5
fall.recover = 0
air.fall = 1
fall = 1

[State 3000, 2]
type = HitDef
triggerall = Var(25) = 2
trigger1 = Time = 0
attr = S, HA
damage = 250, 0
getpower = 0
animtype = Heavy
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 40, 40
sparkno = 12
sparkxy = 0, -120
hitsound = S2, 9
guardsound = S2, 0
ground.type = Low
ground.slidetime = 5
ground.hittime  = 15
ground.velocity = -1,-10
airguard.velocity = -1,-3
air.velocity = -1,-10
air.hittime = 15
envshake.time = 30
envshake.freq = 100
envshake.ampl = -5
envshake.phase = 5
fall.recover = 0
air.fall = 1
fall = 1

[State 3000, 2]
type = HitDef
triggerall = Var(25) >= 3
trigger1 = Time = 0
attr = S, HA
damage = 200, 0
getpower = 0
animtype = Heavy
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 50, 50
sparkno = 12
sparkxy = 0, -120
hitsound = S2, 9
guardsound = S2, 0
ground.type = Low
ground.slidetime = 5
ground.hittime  = 15
ground.velocity = -1,-10
airguard.velocity = -1,-3
air.velocity = -1,-12
air.hittime = 15
envshake.time = 40
envshake.freq = 100
envshake.ampl = -5
envshake.phase = 5
fall.recover = 0
air.fall = 1
fall = 1

[State 3000, 3]
type = PosAdd
trigger1 = Anim = 3000
trigger1 = AnimElem = 25
x = -25

[State 3000, State]
type = ChangeState
trigger1 = AnimTime = 0
value = 11
ctrl = 1

;---------------------------------------------------------------------------
; Scarlet Mirage
[Statedef 3200]
type = A
movetype = A
physics = N
ctrl = 0
anim = 131
sprpriority = 1
velset = 0,0

[State 3200, NotHitBy]
type = NotHitBy
trigger1 = Time < 50
value = SCA
time = 1

[State 3200, VarSet]
type = VarSet
trigger1 = Time <= 1
v = 0
value = 0

[State 3200, VarAdd]
type = VarAdd
trigger1 = Anim = 3200
trigger1 = AnimTime = 0
v = 0
value = 1

[State 3200, VarSet]
type = VarSet
triggerall = Time <= 1
trigger1 = Command = "scarletm_a"
v = 25
value = 1

[State 3200, VarSet]
type = VarSet
triggerall = Time <= 1
trigger1 = Command = "scarletm_b"
v = 25
value = 2

[State 3200, VarSet]
type = VarSet
triggerall = Time <= 1
trigger1 = Command = "scarletm_c"
v = 25
value = 3

[State 3200, AfterImage]
type = AfterImage
trigger1 = Time = 0
time = 0

[State 3200, AfterImageTime]
type = AfterImageTime
trigger1 = 1
time = 2

[State 3200, PlaySnd]
type = PlaySnd
trigger1 = Anim = 131
trigger1 = Time = 2
value = 10, 1
channel = 0

[State 3200, SuperPause]
type = SuperPause
triggerall = Var(25) = 1
trigger1 = Anim = 131
trigger1 = Time = 2
pos = -10, -55
anim = 100
time = 30
sound = S3,4 ;20, 0
poweradd = -1000

[State 3200, SuperPause]
type = SuperPause
triggerall = Var(25) = 2
trigger1 = Anim = 131
trigger1 = Time = 2
pos = -10, -55
anim = 101
time = 30
sound = S3,4 ;20, 0
poweradd = -2000

[State 3200, SuperPause]
type = SuperPause
triggerall = Var(25) >= 3
trigger1 = Anim = 131
trigger1 = Time = 2
pos = -10, -55
anim = 102
time = 30
sound = S3,4 ;20, 0
poweradd = -3000

[State 3200, State]
type = ChangeAnim
trigger1 = Time = 4
trigger1 = Anim = 131
value = 3200

[State 3200, Anim]
type = ChangeAnim
triggerall = Anim = 3200
triggerall = AnimTime = 0
trigger1 = Var(25) <= 2
trigger1 = Var(0) < 2
trigger2 = Var(25) >= 3
trigger2 = Var(0) >= 2
value = 1200

[State 3200, 0]
type = VelSet
triggerall = Var(25) <= 1
trigger1 = Anim = 3200
trigger1 = AnimElem = 2
x = 5

[State 3200, 0]
type = VelSet
triggerall = Var(25) >= 2
trigger1 = Anim = 3200
trigger1 = AnimElem = 2
x = 6

[State 3200, 0]
type = VelSet
trigger1 = Anim = 1200
trigger1 = AnimElem = 2
x = 2
y = -8

[State 3200, 0]
type = VelMul
trigger1 = Vel X > 0
trigger1 = Vel Y = 0
x = .9

[State 3200, 0]
type = VelAdd
trigger1 = Pos Y != 0
y = .4

[State 3200, 1]
type = PlaySnd
trigger1 = Anim = 3200
trigger1 = AnimElem = 2
value = 10, 3
channel = 0

[State 3200, 1]
type = PlaySnd
trigger1 = Anim = 1200
trigger1 = AnimElem = 2
value = 10, 2
channel = 0

[State 3200, 2]
type = PlaySnd
trigger1 = AnimElem = 3
value = 1, 3
channel = 1

[State 3200, 4]
type = HitDef
trigger1 = Anim = 3200
trigger1 = AnimElem = 2
attr = A, HA
damage = 60, 10
getpower = 0
animtype = Heavy
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 5, 5
sparkno = 2
sparkxy = -10, -30
hitsound = S2, 6
guardsound = S2, 0
ground.type = Low
ground.slidetime = 5
ground.hittime  = 20
ground.velocity = -3
airguard.velocity = -2,-1
air.type = Low
air.velocity = -2,-3
air.hittime = 20
air.fall = 1

[State 3200, 4]
type = HitDef
trigger1 = Anim = 3200
trigger1 = AnimElem = 3
attr = A, HA
damage = 70, 10
getpower = 0
animtype = Light
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 5, 5
sparkno = 2
sparkxy = -10, -70
hitsound = S2, 6
guardsound = S2, 0
ground.type = High
ground.slidetime = 5
ground.hittime  = 20
ground.velocity = -3
airguard.velocity = -2,-1
air.type = Low
air.velocity = -2,-3
air.hittime = 20
air.fall = 1

[State 3200, 4]
type = HitDef
triggerall = Var(25) >= 2
trigger1 = Anim = 3200
trigger1 = AnimElem = 4
attr = A, HA
damage = 80, 10
getpower = 0
animtype = Heavy
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 10, 10
sparkno = 2
sparkxy = -10, -100
hitsound = S2, 6
guardsound = S2, 0
ground.type = High
ground.slidetime = 5
ground.hittime  = 20
ground.velocity = -3
airguard.velocity = -2,-1
air.type = High
air.velocity = -2,-3
air.hittime = 20
air.fall = 1

[State 3200, 4]
type = HitDef
trigger1 = Anim = 1200
trigger1 = AnimElem = 2
attr = A, HA
damage = 60, 10
getpower = 0
animtype = Heavy
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 5, 5
sparkno = 2
sparkxy = -10, -30
hitsound = S2, 6
guardsound = S2, 0
ground.type = Low
ground.slidetime = 5
ground.hittime  = 20
ground.velocity = -3,-9
airguard.velocity = -2,-4
air.type = Low
air.velocity = -3,-9
air.hittime = 20
air.fall = 1
fall = 1

[State 3200, 4]
type = HitDef
trigger1 = Anim = 1200
trigger1 = AnimElem = 3
attr = A, HA
damage = 70, 10
getpower = 0
animtype = Light
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 5, 5
sparkno = 2
sparkxy = -10, -70
hitsound = S2, 6
guardsound = S2, 0
ground.type = High
ground.slidetime = 5
ground.hittime  = 20
ground.velocity = -3,-9
airguard.velocity = -2,-4
air.type = Low
air.velocity = -3,-9
air.hittime = 20
air.fall = 1
fall = 1

[State 3200, 4]
type = HitDef
triggerall = Var(25) >= 2
trigger1 = Anim = 1200
trigger1 = AnimElem = 4
attr = A, HA
damage = 80, 10
getpower = 0
animtype = Heavy
guardflag = MA
hitflag = MAF
priority = 3, Hit
pausetime = 10, 10
sparkno = 2
sparkxy = -10, -100
hitsound = S2, 6
guardsound = S2, 0
ground.type = High
ground.slidetime = 5
ground.hittime  = 20
ground.velocity = -3,-9
airguard.velocity = -2,-4
air.type = High
air.velocity = -3,-9
air.hittime = 20
air.fall = 1
fall = 1

[State 3200, State]
type = ChangeState
triggerall = Time > 60
triggerall = Anim = 1200
trigger1 = Vel Y > 0
trigger1 = Pos Y >= 0
value = 80

;---------------------------------------------------------------------------
