From a19b90b250f4485bd64f04132cdb42bf0aa154a4 Mon Sep 17 00:00:00 2001 From: Corey Winkelmann <350215+CoreyWinkelmann@users.noreply.github.com> Date: Wed, 6 Mar 2024 23:40:59 +1300 Subject: [PATCH] adds optional over clause to aggregate functions in sqlparser (#13444) Signed-off-by: Corey Winkelmann Signed-off-by: Manan Gupta Co-authored-by: Manan Gupta --- go/vt/sqlparser/ast.go | 56 +- go/vt/sqlparser/ast_clone.go | 16 + go/vt/sqlparser/ast_copy_on_rewrite.go | 70 +- go/vt/sqlparser/ast_equals.go | 47 +- go/vt/sqlparser/ast_format.go | 48 + go/vt/sqlparser/ast_format_fast.go | 64 + go/vt/sqlparser/ast_rewrite.go | 88 +- go/vt/sqlparser/ast_visit.go | 48 + go/vt/sqlparser/cached_size.go | 64 +- go/vt/sqlparser/parse_test.go | 48 + go/vt/sqlparser/sql.go | 16139 ++++++++-------- go/vt/sqlparser/sql.y | 76 +- .../planbuilder/testdata/select_cases.json | 22 + .../testdata/unsupported_cases.json | 5 + go/vt/vtgate/semantics/check_invalid.go | 2 + 15 files changed, 8643 insertions(+), 8150 deletions(-) diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index f3dd8644ed3..aeaad44c08b 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -2882,8 +2882,9 @@ type ( } Count struct { - Args Exprs - Distinct bool + Args Exprs + Distinct bool + OverClause *OverClause } CountStar struct { @@ -2914,66 +2915,81 @@ type ( // The solution we employed was to add a dummy field `_ bool` to the otherwise empty struct `CountStar`. // This ensures that each instance of `CountStar` is treated as a separate object, // even in the context of out semantic state which uses these objects as map keys. + OverClause *OverClause } Avg struct { - Arg Expr - Distinct bool + Arg Expr + Distinct bool + OverClause *OverClause } Max struct { - Arg Expr - Distinct bool + Arg Expr + Distinct bool + OverClause *OverClause } Min struct { - Arg Expr - Distinct bool + Arg Expr + Distinct bool + OverClause *OverClause } Sum struct { - Arg Expr - Distinct bool + Arg Expr + Distinct bool + OverClause *OverClause } BitAnd struct { - Arg Expr + Arg Expr + OverClause *OverClause } BitOr struct { - Arg Expr + Arg Expr + OverClause *OverClause } BitXor struct { - Arg Expr + Arg Expr + OverClause *OverClause } Std struct { - Arg Expr + Arg Expr + OverClause *OverClause } StdDev struct { - Arg Expr + Arg Expr + OverClause *OverClause } StdPop struct { - Arg Expr + Arg Expr + OverClause *OverClause } StdSamp struct { - Arg Expr + Arg Expr + OverClause *OverClause } VarPop struct { - Arg Expr + Arg Expr + OverClause *OverClause } VarSamp struct { - Arg Expr + Arg Expr + OverClause *OverClause } Variance struct { - Arg Expr + Arg Expr + OverClause *OverClause } // GroupConcatExpr represents a call to GROUP_CONCAT diff --git a/go/vt/sqlparser/ast_clone.go b/go/vt/sqlparser/ast_clone.go index 5156eb6df6b..a266015e72b 100644 --- a/go/vt/sqlparser/ast_clone.go +++ b/go/vt/sqlparser/ast_clone.go @@ -799,6 +799,7 @@ func CloneRefOfAvg(n *Avg) *Avg { } out := *n out.Arg = CloneExpr(n.Arg) + out.OverClause = CloneRefOfOverClause(n.OverClause) return &out } @@ -842,6 +843,7 @@ func CloneRefOfBitAnd(n *BitAnd) *BitAnd { } out := *n out.Arg = CloneExpr(n.Arg) + out.OverClause = CloneRefOfOverClause(n.OverClause) return &out } @@ -852,6 +854,7 @@ func CloneRefOfBitOr(n *BitOr) *BitOr { } out := *n out.Arg = CloneExpr(n.Arg) + out.OverClause = CloneRefOfOverClause(n.OverClause) return &out } @@ -862,6 +865,7 @@ func CloneRefOfBitXor(n *BitXor) *BitXor { } out := *n out.Arg = CloneExpr(n.Arg) + out.OverClause = CloneRefOfOverClause(n.OverClause) return &out } @@ -1077,6 +1081,7 @@ func CloneRefOfCount(n *Count) *Count { } out := *n out.Args = CloneExprs(n.Args) + out.OverClause = CloneRefOfOverClause(n.OverClause) return &out } @@ -1086,6 +1091,7 @@ func CloneRefOfCountStar(n *CountStar) *CountStar { return nil } out := *n + out.OverClause = CloneRefOfOverClause(n.OverClause) return &out } @@ -2117,6 +2123,7 @@ func CloneRefOfMax(n *Max) *Max { } out := *n out.Arg = CloneExpr(n.Arg) + out.OverClause = CloneRefOfOverClause(n.OverClause) return &out } @@ -2138,6 +2145,7 @@ func CloneRefOfMin(n *Min) *Min { } out := *n out.Arg = CloneExpr(n.Arg) + out.OverClause = CloneRefOfOverClause(n.OverClause) return &out } @@ -2879,6 +2887,7 @@ func CloneRefOfStd(n *Std) *Std { } out := *n out.Arg = CloneExpr(n.Arg) + out.OverClause = CloneRefOfOverClause(n.OverClause) return &out } @@ -2889,6 +2898,7 @@ func CloneRefOfStdDev(n *StdDev) *StdDev { } out := *n out.Arg = CloneExpr(n.Arg) + out.OverClause = CloneRefOfOverClause(n.OverClause) return &out } @@ -2899,6 +2909,7 @@ func CloneRefOfStdPop(n *StdPop) *StdPop { } out := *n out.Arg = CloneExpr(n.Arg) + out.OverClause = CloneRefOfOverClause(n.OverClause) return &out } @@ -2909,6 +2920,7 @@ func CloneRefOfStdSamp(n *StdSamp) *StdSamp { } out := *n out.Arg = CloneExpr(n.Arg) + out.OverClause = CloneRefOfOverClause(n.OverClause) return &out } @@ -3002,6 +3014,7 @@ func CloneRefOfSum(n *Sum) *Sum { } out := *n out.Arg = CloneExpr(n.Arg) + out.OverClause = CloneRefOfOverClause(n.OverClause) return &out } @@ -3271,6 +3284,7 @@ func CloneRefOfVarPop(n *VarPop) *VarPop { } out := *n out.Arg = CloneExpr(n.Arg) + out.OverClause = CloneRefOfOverClause(n.OverClause) return &out } @@ -3281,6 +3295,7 @@ func CloneRefOfVarSamp(n *VarSamp) *VarSamp { } out := *n out.Arg = CloneExpr(n.Arg) + out.OverClause = CloneRefOfOverClause(n.OverClause) return &out } @@ -3301,6 +3316,7 @@ func CloneRefOfVariance(n *Variance) *Variance { } out := *n out.Arg = CloneExpr(n.Arg) + out.OverClause = CloneRefOfOverClause(n.OverClause) return &out } diff --git a/go/vt/sqlparser/ast_copy_on_rewrite.go b/go/vt/sqlparser/ast_copy_on_rewrite.go index d44f525b7a0..a7aabf2a810 100644 --- a/go/vt/sqlparser/ast_copy_on_rewrite.go +++ b/go/vt/sqlparser/ast_copy_on_rewrite.go @@ -1074,9 +1074,11 @@ func (c *cow) copyOnRewriteRefOfAvg(n *Avg, parent SQLNode) (out SQLNode, change out = n if c.pre == nil || c.pre(n, parent) { _Arg, changedArg := c.copyOnRewriteExpr(n.Arg, n) - if changedArg { + _OverClause, changedOverClause := c.copyOnRewriteRefOfOverClause(n.OverClause, n) + if changedArg || changedOverClause { res := *n res.Arg, _ = _Arg.(Expr) + res.OverClause, _ = _OverClause.(*OverClause) out = &res if c.cloned != nil { c.cloned(n, out) @@ -1158,9 +1160,11 @@ func (c *cow) copyOnRewriteRefOfBitAnd(n *BitAnd, parent SQLNode) (out SQLNode, out = n if c.pre == nil || c.pre(n, parent) { _Arg, changedArg := c.copyOnRewriteExpr(n.Arg, n) - if changedArg { + _OverClause, changedOverClause := c.copyOnRewriteRefOfOverClause(n.OverClause, n) + if changedArg || changedOverClause { res := *n res.Arg, _ = _Arg.(Expr) + res.OverClause, _ = _OverClause.(*OverClause) out = &res if c.cloned != nil { c.cloned(n, out) @@ -1180,9 +1184,11 @@ func (c *cow) copyOnRewriteRefOfBitOr(n *BitOr, parent SQLNode) (out SQLNode, ch out = n if c.pre == nil || c.pre(n, parent) { _Arg, changedArg := c.copyOnRewriteExpr(n.Arg, n) - if changedArg { + _OverClause, changedOverClause := c.copyOnRewriteRefOfOverClause(n.OverClause, n) + if changedArg || changedOverClause { res := *n res.Arg, _ = _Arg.(Expr) + res.OverClause, _ = _OverClause.(*OverClause) out = &res if c.cloned != nil { c.cloned(n, out) @@ -1202,9 +1208,11 @@ func (c *cow) copyOnRewriteRefOfBitXor(n *BitXor, parent SQLNode) (out SQLNode, out = n if c.pre == nil || c.pre(n, parent) { _Arg, changedArg := c.copyOnRewriteExpr(n.Arg, n) - if changedArg { + _OverClause, changedOverClause := c.copyOnRewriteRefOfOverClause(n.OverClause, n) + if changedArg || changedOverClause { res := *n res.Arg, _ = _Arg.(Expr) + res.OverClause, _ = _OverClause.(*OverClause) out = &res if c.cloned != nil { c.cloned(n, out) @@ -1639,9 +1647,11 @@ func (c *cow) copyOnRewriteRefOfCount(n *Count, parent SQLNode) (out SQLNode, ch out = n if c.pre == nil || c.pre(n, parent) { _Args, changedArgs := c.copyOnRewriteExprs(n.Args, n) - if changedArgs { + _OverClause, changedOverClause := c.copyOnRewriteRefOfOverClause(n.OverClause, n) + if changedArgs || changedOverClause { res := *n res.Args, _ = _Args.(Exprs) + res.OverClause, _ = _OverClause.(*OverClause) out = &res if c.cloned != nil { c.cloned(n, out) @@ -1660,6 +1670,16 @@ func (c *cow) copyOnRewriteRefOfCountStar(n *CountStar, parent SQLNode) (out SQL } out = n if c.pre == nil || c.pre(n, parent) { + _OverClause, changedOverClause := c.copyOnRewriteRefOfOverClause(n.OverClause, n) + if changedOverClause { + res := *n + res.OverClause, _ = _OverClause.(*OverClause) + out = &res + if c.cloned != nil { + c.cloned(n, out) + } + changed = true + } } if c.post != nil { out, changed = c.postVisit(out, parent, changed) @@ -3870,9 +3890,11 @@ func (c *cow) copyOnRewriteRefOfMax(n *Max, parent SQLNode) (out SQLNode, change out = n if c.pre == nil || c.pre(n, parent) { _Arg, changedArg := c.copyOnRewriteExpr(n.Arg, n) - if changedArg { + _OverClause, changedOverClause := c.copyOnRewriteRefOfOverClause(n.OverClause, n) + if changedArg || changedOverClause { res := *n res.Arg, _ = _Arg.(Expr) + res.OverClause, _ = _OverClause.(*OverClause) out = &res if c.cloned != nil { c.cloned(n, out) @@ -3916,9 +3938,11 @@ func (c *cow) copyOnRewriteRefOfMin(n *Min, parent SQLNode) (out SQLNode, change out = n if c.pre == nil || c.pre(n, parent) { _Arg, changedArg := c.copyOnRewriteExpr(n.Arg, n) - if changedArg { + _OverClause, changedOverClause := c.copyOnRewriteRefOfOverClause(n.OverClause, n) + if changedArg || changedOverClause { res := *n res.Arg, _ = _Arg.(Expr) + res.OverClause, _ = _OverClause.(*OverClause) out = &res if c.cloned != nil { c.cloned(n, out) @@ -5441,9 +5465,11 @@ func (c *cow) copyOnRewriteRefOfStd(n *Std, parent SQLNode) (out SQLNode, change out = n if c.pre == nil || c.pre(n, parent) { _Arg, changedArg := c.copyOnRewriteExpr(n.Arg, n) - if changedArg { + _OverClause, changedOverClause := c.copyOnRewriteRefOfOverClause(n.OverClause, n) + if changedArg || changedOverClause { res := *n res.Arg, _ = _Arg.(Expr) + res.OverClause, _ = _OverClause.(*OverClause) out = &res if c.cloned != nil { c.cloned(n, out) @@ -5463,9 +5489,11 @@ func (c *cow) copyOnRewriteRefOfStdDev(n *StdDev, parent SQLNode) (out SQLNode, out = n if c.pre == nil || c.pre(n, parent) { _Arg, changedArg := c.copyOnRewriteExpr(n.Arg, n) - if changedArg { + _OverClause, changedOverClause := c.copyOnRewriteRefOfOverClause(n.OverClause, n) + if changedArg || changedOverClause { res := *n res.Arg, _ = _Arg.(Expr) + res.OverClause, _ = _OverClause.(*OverClause) out = &res if c.cloned != nil { c.cloned(n, out) @@ -5485,9 +5513,11 @@ func (c *cow) copyOnRewriteRefOfStdPop(n *StdPop, parent SQLNode) (out SQLNode, out = n if c.pre == nil || c.pre(n, parent) { _Arg, changedArg := c.copyOnRewriteExpr(n.Arg, n) - if changedArg { + _OverClause, changedOverClause := c.copyOnRewriteRefOfOverClause(n.OverClause, n) + if changedArg || changedOverClause { res := *n res.Arg, _ = _Arg.(Expr) + res.OverClause, _ = _OverClause.(*OverClause) out = &res if c.cloned != nil { c.cloned(n, out) @@ -5507,9 +5537,11 @@ func (c *cow) copyOnRewriteRefOfStdSamp(n *StdSamp, parent SQLNode) (out SQLNode out = n if c.pre == nil || c.pre(n, parent) { _Arg, changedArg := c.copyOnRewriteExpr(n.Arg, n) - if changedArg { + _OverClause, changedOverClause := c.copyOnRewriteRefOfOverClause(n.OverClause, n) + if changedArg || changedOverClause { res := *n res.Arg, _ = _Arg.(Expr) + res.OverClause, _ = _OverClause.(*OverClause) out = &res if c.cloned != nil { c.cloned(n, out) @@ -5702,9 +5734,11 @@ func (c *cow) copyOnRewriteRefOfSum(n *Sum, parent SQLNode) (out SQLNode, change out = n if c.pre == nil || c.pre(n, parent) { _Arg, changedArg := c.copyOnRewriteExpr(n.Arg, n) - if changedArg { + _OverClause, changedOverClause := c.copyOnRewriteRefOfOverClause(n.OverClause, n) + if changedArg || changedOverClause { res := *n res.Arg, _ = _Arg.(Expr) + res.OverClause, _ = _OverClause.(*OverClause) out = &res if c.cloned != nil { c.cloned(n, out) @@ -6277,9 +6311,11 @@ func (c *cow) copyOnRewriteRefOfVarPop(n *VarPop, parent SQLNode) (out SQLNode, out = n if c.pre == nil || c.pre(n, parent) { _Arg, changedArg := c.copyOnRewriteExpr(n.Arg, n) - if changedArg { + _OverClause, changedOverClause := c.copyOnRewriteRefOfOverClause(n.OverClause, n) + if changedArg || changedOverClause { res := *n res.Arg, _ = _Arg.(Expr) + res.OverClause, _ = _OverClause.(*OverClause) out = &res if c.cloned != nil { c.cloned(n, out) @@ -6299,9 +6335,11 @@ func (c *cow) copyOnRewriteRefOfVarSamp(n *VarSamp, parent SQLNode) (out SQLNode out = n if c.pre == nil || c.pre(n, parent) { _Arg, changedArg := c.copyOnRewriteExpr(n.Arg, n) - if changedArg { + _OverClause, changedOverClause := c.copyOnRewriteRefOfOverClause(n.OverClause, n) + if changedArg || changedOverClause { res := *n res.Arg, _ = _Arg.(Expr) + res.OverClause, _ = _OverClause.(*OverClause) out = &res if c.cloned != nil { c.cloned(n, out) @@ -6343,9 +6381,11 @@ func (c *cow) copyOnRewriteRefOfVariance(n *Variance, parent SQLNode) (out SQLNo out = n if c.pre == nil || c.pre(n, parent) { _Arg, changedArg := c.copyOnRewriteExpr(n.Arg, n) - if changedArg { + _OverClause, changedOverClause := c.copyOnRewriteRefOfOverClause(n.OverClause, n) + if changedArg || changedOverClause { res := *n res.Arg, _ = _Arg.(Expr) + res.OverClause, _ = _OverClause.(*OverClause) out = &res if c.cloned != nil { c.cloned(n, out) diff --git a/go/vt/sqlparser/ast_equals.go b/go/vt/sqlparser/ast_equals.go index 5cfb46f6cde..44fb632fb53 100644 --- a/go/vt/sqlparser/ast_equals.go +++ b/go/vt/sqlparser/ast_equals.go @@ -1911,7 +1911,8 @@ func (cmp *Comparator) RefOfAvg(a, b *Avg) bool { return false } return a.Distinct == b.Distinct && - cmp.Expr(a.Arg, b.Arg) + cmp.Expr(a.Arg, b.Arg) && + cmp.RefOfOverClause(a.OverClause, b.OverClause) } // RefOfBegin does deep equals between the two objects. @@ -1960,7 +1961,8 @@ func (cmp *Comparator) RefOfBitAnd(a, b *BitAnd) bool { if a == nil || b == nil { return false } - return cmp.Expr(a.Arg, b.Arg) + return cmp.Expr(a.Arg, b.Arg) && + cmp.RefOfOverClause(a.OverClause, b.OverClause) } // RefOfBitOr does deep equals between the two objects. @@ -1971,7 +1973,8 @@ func (cmp *Comparator) RefOfBitOr(a, b *BitOr) bool { if a == nil || b == nil { return false } - return cmp.Expr(a.Arg, b.Arg) + return cmp.Expr(a.Arg, b.Arg) && + cmp.RefOfOverClause(a.OverClause, b.OverClause) } // RefOfBitXor does deep equals between the two objects. @@ -1982,7 +1985,8 @@ func (cmp *Comparator) RefOfBitXor(a, b *BitXor) bool { if a == nil || b == nil { return false } - return cmp.Expr(a.Arg, b.Arg) + return cmp.Expr(a.Arg, b.Arg) && + cmp.RefOfOverClause(a.OverClause, b.OverClause) } // RefOfCallProc does deep equals between the two objects. @@ -2239,7 +2243,8 @@ func (cmp *Comparator) RefOfCount(a, b *Count) bool { return false } return a.Distinct == b.Distinct && - cmp.Exprs(a.Args, b.Args) + cmp.Exprs(a.Args, b.Args) && + cmp.RefOfOverClause(a.OverClause, b.OverClause) } // RefOfCountStar does deep equals between the two objects. @@ -2250,7 +2255,7 @@ func (cmp *Comparator) RefOfCountStar(a, b *CountStar) bool { if a == nil || b == nil { return false } - return true + return cmp.RefOfOverClause(a.OverClause, b.OverClause) } // RefOfCreateDatabase does deep equals between the two objects. @@ -3441,7 +3446,8 @@ func (cmp *Comparator) RefOfMax(a, b *Max) bool { return false } return a.Distinct == b.Distinct && - cmp.Expr(a.Arg, b.Arg) + cmp.Expr(a.Arg, b.Arg) && + cmp.RefOfOverClause(a.OverClause, b.OverClause) } // RefOfMemberOfExpr does deep equals between the two objects. @@ -3465,7 +3471,8 @@ func (cmp *Comparator) RefOfMin(a, b *Min) bool { return false } return a.Distinct == b.Distinct && - cmp.Expr(a.Arg, b.Arg) + cmp.Expr(a.Arg, b.Arg) && + cmp.RefOfOverClause(a.OverClause, b.OverClause) } // RefOfModifyColumn does deep equals between the two objects. @@ -4317,7 +4324,8 @@ func (cmp *Comparator) RefOfStd(a, b *Std) bool { if a == nil || b == nil { return false } - return cmp.Expr(a.Arg, b.Arg) + return cmp.Expr(a.Arg, b.Arg) && + cmp.RefOfOverClause(a.OverClause, b.OverClause) } // RefOfStdDev does deep equals between the two objects. @@ -4328,7 +4336,8 @@ func (cmp *Comparator) RefOfStdDev(a, b *StdDev) bool { if a == nil || b == nil { return false } - return cmp.Expr(a.Arg, b.Arg) + return cmp.Expr(a.Arg, b.Arg) && + cmp.RefOfOverClause(a.OverClause, b.OverClause) } // RefOfStdPop does deep equals between the two objects. @@ -4339,7 +4348,8 @@ func (cmp *Comparator) RefOfStdPop(a, b *StdPop) bool { if a == nil || b == nil { return false } - return cmp.Expr(a.Arg, b.Arg) + return cmp.Expr(a.Arg, b.Arg) && + cmp.RefOfOverClause(a.OverClause, b.OverClause) } // RefOfStdSamp does deep equals between the two objects. @@ -4350,7 +4360,8 @@ func (cmp *Comparator) RefOfStdSamp(a, b *StdSamp) bool { if a == nil || b == nil { return false } - return cmp.Expr(a.Arg, b.Arg) + return cmp.Expr(a.Arg, b.Arg) && + cmp.RefOfOverClause(a.OverClause, b.OverClause) } // RefOfStream does deep equals between the two objects. @@ -4457,7 +4468,8 @@ func (cmp *Comparator) RefOfSum(a, b *Sum) bool { return false } return a.Distinct == b.Distinct && - cmp.Expr(a.Arg, b.Arg) + cmp.Expr(a.Arg, b.Arg) && + cmp.RefOfOverClause(a.OverClause, b.OverClause) } // TableExprs does deep equals between the two objects. @@ -4761,7 +4773,8 @@ func (cmp *Comparator) RefOfVarPop(a, b *VarPop) bool { if a == nil || b == nil { return false } - return cmp.Expr(a.Arg, b.Arg) + return cmp.Expr(a.Arg, b.Arg) && + cmp.RefOfOverClause(a.OverClause, b.OverClause) } // RefOfVarSamp does deep equals between the two objects. @@ -4772,7 +4785,8 @@ func (cmp *Comparator) RefOfVarSamp(a, b *VarSamp) bool { if a == nil || b == nil { return false } - return cmp.Expr(a.Arg, b.Arg) + return cmp.Expr(a.Arg, b.Arg) && + cmp.RefOfOverClause(a.OverClause, b.OverClause) } // RefOfVariable does deep equals between the two objects. @@ -4795,7 +4809,8 @@ func (cmp *Comparator) RefOfVariance(a, b *Variance) bool { if a == nil || b == nil { return false } - return cmp.Expr(a.Arg, b.Arg) + return cmp.Expr(a.Arg, b.Arg) && + cmp.RefOfOverClause(a.OverClause, b.OverClause) } // VindexParam does deep equals between the two objects. diff --git a/go/vt/sqlparser/ast_format.go b/go/vt/sqlparser/ast_format.go index e90b8b6344b..87d498a68d4 100644 --- a/go/vt/sqlparser/ast_format.go +++ b/go/vt/sqlparser/ast_format.go @@ -2703,10 +2703,16 @@ func (node *Count) Format(buf *TrackedBuffer) { buf.literal(DistinctStr) } buf.astPrintf(node, "%v)", node.Args) + if node.OverClause != nil { + buf.astPrintf(node, " %v", node.OverClause) + } } func (node *CountStar) Format(buf *TrackedBuffer) { buf.WriteString("count(*)") + if node.OverClause != nil { + buf.astPrintf(node, " %v", node.OverClause) + } } func (node *AnyValue) Format(buf *TrackedBuffer) { @@ -2719,6 +2725,9 @@ func (node *Avg) Format(buf *TrackedBuffer) { buf.literal(DistinctStr) } buf.astPrintf(node, "%v)", node.Arg) + if node.OverClause != nil { + buf.astPrintf(node, " %v", node.OverClause) + } } func (node *Max) Format(buf *TrackedBuffer) { @@ -2727,6 +2736,9 @@ func (node *Max) Format(buf *TrackedBuffer) { buf.literal(DistinctStr) } buf.astPrintf(node, "%v)", node.Arg) + if node.OverClause != nil { + buf.astPrintf(node, " %v", node.OverClause) + } } func (node *Min) Format(buf *TrackedBuffer) { @@ -2735,6 +2747,9 @@ func (node *Min) Format(buf *TrackedBuffer) { buf.literal(DistinctStr) } buf.astPrintf(node, "%v)", node.Arg) + if node.OverClause != nil { + buf.astPrintf(node, " %v", node.OverClause) + } } func (node *Sum) Format(buf *TrackedBuffer) { @@ -2743,46 +2758,79 @@ func (node *Sum) Format(buf *TrackedBuffer) { buf.literal(DistinctStr) } buf.astPrintf(node, "%v)", node.Arg) + if node.OverClause != nil { + buf.astPrintf(node, " %v", node.OverClause) + } } func (node *BitAnd) Format(buf *TrackedBuffer) { buf.astPrintf(node, "bit_and(%v)", node.Arg) + if node.OverClause != nil { + buf.astPrintf(node, " %v", node.OverClause) + } } func (node *BitOr) Format(buf *TrackedBuffer) { buf.astPrintf(node, "bit_or(%v)", node.Arg) + if node.OverClause != nil { + buf.astPrintf(node, " %v", node.OverClause) + } } func (node *BitXor) Format(buf *TrackedBuffer) { buf.astPrintf(node, "bit_xor(%v)", node.Arg) + if node.OverClause != nil { + buf.astPrintf(node, " %v", node.OverClause) + } } func (node *Std) Format(buf *TrackedBuffer) { buf.astPrintf(node, "std(%v)", node.Arg) + if node.OverClause != nil { + buf.astPrintf(node, " %v", node.OverClause) + } } func (node *StdDev) Format(buf *TrackedBuffer) { buf.astPrintf(node, "stddev(%v)", node.Arg) + if node.OverClause != nil { + buf.astPrintf(node, " %v", node.OverClause) + } } func (node *StdPop) Format(buf *TrackedBuffer) { buf.astPrintf(node, "stddev_pop(%v)", node.Arg) + if node.OverClause != nil { + buf.astPrintf(node, " %v", node.OverClause) + } } func (node *StdSamp) Format(buf *TrackedBuffer) { buf.astPrintf(node, "stddev_samp(%v)", node.Arg) + if node.OverClause != nil { + buf.astPrintf(node, " %v", node.OverClause) + } } func (node *VarPop) Format(buf *TrackedBuffer) { buf.astPrintf(node, "var_pop(%v)", node.Arg) + if node.OverClause != nil { + buf.astPrintf(node, " %v", node.OverClause) + } } func (node *VarSamp) Format(buf *TrackedBuffer) { buf.astPrintf(node, "var_samp(%v)", node.Arg) + if node.OverClause != nil { + buf.astPrintf(node, " %v", node.OverClause) + } } func (node *Variance) Format(buf *TrackedBuffer) { buf.astPrintf(node, "variance(%v)", node.Arg) + if node.OverClause != nil { + buf.astPrintf(node, " %v", node.OverClause) + } } // Format formats the node. diff --git a/go/vt/sqlparser/ast_format_fast.go b/go/vt/sqlparser/ast_format_fast.go index 4ebdbcf8475..ad1db4c8e11 100644 --- a/go/vt/sqlparser/ast_format_fast.go +++ b/go/vt/sqlparser/ast_format_fast.go @@ -3568,10 +3568,18 @@ func (node *Count) FormatFast(buf *TrackedBuffer) { } node.Args.FormatFast(buf) buf.WriteByte(')') + if node.OverClause != nil { + buf.WriteByte(' ') + node.OverClause.FormatFast(buf) + } } func (node *CountStar) FormatFast(buf *TrackedBuffer) { buf.WriteString("count(*)") + if node.OverClause != nil { + buf.WriteByte(' ') + node.OverClause.FormatFast(buf) + } } func (node *AnyValue) FormatFast(buf *TrackedBuffer) { @@ -3587,6 +3595,10 @@ func (node *Avg) FormatFast(buf *TrackedBuffer) { } buf.printExpr(node, node.Arg, true) buf.WriteByte(')') + if node.OverClause != nil { + buf.WriteByte(' ') + node.OverClause.FormatFast(buf) + } } func (node *Max) FormatFast(buf *TrackedBuffer) { @@ -3596,6 +3608,10 @@ func (node *Max) FormatFast(buf *TrackedBuffer) { } buf.printExpr(node, node.Arg, true) buf.WriteByte(')') + if node.OverClause != nil { + buf.WriteByte(' ') + node.OverClause.FormatFast(buf) + } } func (node *Min) FormatFast(buf *TrackedBuffer) { @@ -3605,6 +3621,10 @@ func (node *Min) FormatFast(buf *TrackedBuffer) { } buf.printExpr(node, node.Arg, true) buf.WriteByte(')') + if node.OverClause != nil { + buf.WriteByte(' ') + node.OverClause.FormatFast(buf) + } } func (node *Sum) FormatFast(buf *TrackedBuffer) { @@ -3614,66 +3634,110 @@ func (node *Sum) FormatFast(buf *TrackedBuffer) { } buf.printExpr(node, node.Arg, true) buf.WriteByte(')') + if node.OverClause != nil { + buf.WriteByte(' ') + node.OverClause.FormatFast(buf) + } } func (node *BitAnd) FormatFast(buf *TrackedBuffer) { buf.WriteString("bit_and(") buf.printExpr(node, node.Arg, true) buf.WriteByte(')') + if node.OverClause != nil { + buf.WriteByte(' ') + node.OverClause.FormatFast(buf) + } } func (node *BitOr) FormatFast(buf *TrackedBuffer) { buf.WriteString("bit_or(") buf.printExpr(node, node.Arg, true) buf.WriteByte(')') + if node.OverClause != nil { + buf.WriteByte(' ') + node.OverClause.FormatFast(buf) + } } func (node *BitXor) FormatFast(buf *TrackedBuffer) { buf.WriteString("bit_xor(") buf.printExpr(node, node.Arg, true) buf.WriteByte(')') + if node.OverClause != nil { + buf.WriteByte(' ') + node.OverClause.FormatFast(buf) + } } func (node *Std) FormatFast(buf *TrackedBuffer) { buf.WriteString("std(") buf.printExpr(node, node.Arg, true) buf.WriteByte(')') + if node.OverClause != nil { + buf.WriteByte(' ') + node.OverClause.FormatFast(buf) + } } func (node *StdDev) FormatFast(buf *TrackedBuffer) { buf.WriteString("stddev(") buf.printExpr(node, node.Arg, true) buf.WriteByte(')') + if node.OverClause != nil { + buf.WriteByte(' ') + node.OverClause.FormatFast(buf) + } } func (node *StdPop) FormatFast(buf *TrackedBuffer) { buf.WriteString("stddev_pop(") buf.printExpr(node, node.Arg, true) buf.WriteByte(')') + if node.OverClause != nil { + buf.WriteByte(' ') + node.OverClause.FormatFast(buf) + } } func (node *StdSamp) FormatFast(buf *TrackedBuffer) { buf.WriteString("stddev_samp(") buf.printExpr(node, node.Arg, true) buf.WriteByte(')') + if node.OverClause != nil { + buf.WriteByte(' ') + node.OverClause.FormatFast(buf) + } } func (node *VarPop) FormatFast(buf *TrackedBuffer) { buf.WriteString("var_pop(") buf.printExpr(node, node.Arg, true) buf.WriteByte(')') + if node.OverClause != nil { + buf.WriteByte(' ') + node.OverClause.FormatFast(buf) + } } func (node *VarSamp) FormatFast(buf *TrackedBuffer) { buf.WriteString("var_samp(") buf.printExpr(node, node.Arg, true) buf.WriteByte(')') + if node.OverClause != nil { + buf.WriteByte(' ') + node.OverClause.FormatFast(buf) + } } func (node *Variance) FormatFast(buf *TrackedBuffer) { buf.WriteString("variance(") buf.printExpr(node, node.Arg, true) buf.WriteByte(')') + if node.OverClause != nil { + buf.WriteByte(' ') + node.OverClause.FormatFast(buf) + } } // FormatFast formats the node. diff --git a/go/vt/sqlparser/ast_rewrite.go b/go/vt/sqlparser/ast_rewrite.go index ff5f72b2ef2..2375e1a6a23 100644 --- a/go/vt/sqlparser/ast_rewrite.go +++ b/go/vt/sqlparser/ast_rewrite.go @@ -1284,6 +1284,11 @@ func (a *application) rewriteRefOfAvg(parent SQLNode, node *Avg, replacer replac }) { return false } + if !a.rewriteRefOfOverClause(node, node.OverClause, func(newNode, parent SQLNode) { + parent.(*Avg).OverClause = newNode.(*OverClause) + }) { + return false + } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent @@ -1419,6 +1424,11 @@ func (a *application) rewriteRefOfBitAnd(parent SQLNode, node *BitAnd, replacer }) { return false } + if !a.rewriteRefOfOverClause(node, node.OverClause, func(newNode, parent SQLNode) { + parent.(*BitAnd).OverClause = newNode.(*OverClause) + }) { + return false + } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent @@ -1451,6 +1461,11 @@ func (a *application) rewriteRefOfBitOr(parent SQLNode, node *BitOr, replacer re }) { return false } + if !a.rewriteRefOfOverClause(node, node.OverClause, func(newNode, parent SQLNode) { + parent.(*BitOr).OverClause = newNode.(*OverClause) + }) { + return false + } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent @@ -1483,6 +1498,11 @@ func (a *application) rewriteRefOfBitXor(parent SQLNode, node *BitXor, replacer }) { return false } + if !a.rewriteRefOfOverClause(node, node.OverClause, func(newNode, parent SQLNode) { + parent.(*BitXor).OverClause = newNode.(*OverClause) + }) { + return false + } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent @@ -2140,6 +2160,11 @@ func (a *application) rewriteRefOfCount(parent SQLNode, node *Count, replacer re }) { return false } + if !a.rewriteRefOfOverClause(node, node.OverClause, func(newNode, parent SQLNode) { + parent.(*Count).OverClause = newNode.(*OverClause) + }) { + return false + } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent @@ -2167,12 +2192,15 @@ func (a *application) rewriteRefOfCountStar(parent SQLNode, node *CountStar, rep return true } } + if !a.rewriteRefOfOverClause(node, node.OverClause, func(newNode, parent SQLNode) { + parent.(*CountStar).OverClause = newNode.(*OverClause) + }) { + return false + } if a.post != nil { - if a.pre == nil { - a.cur.replacer = replacer - a.cur.parent = parent - a.cur.node = node - } + a.cur.replacer = replacer + a.cur.parent = parent + a.cur.node = node if !a.post(&a.cur) { return false } @@ -5486,6 +5514,11 @@ func (a *application) rewriteRefOfMax(parent SQLNode, node *Max, replacer replac }) { return false } + if !a.rewriteRefOfOverClause(node, node.OverClause, func(newNode, parent SQLNode) { + parent.(*Max).OverClause = newNode.(*OverClause) + }) { + return false + } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent @@ -5555,6 +5588,11 @@ func (a *application) rewriteRefOfMin(parent SQLNode, node *Min, replacer replac }) { return false } + if !a.rewriteRefOfOverClause(node, node.OverClause, func(newNode, parent SQLNode) { + parent.(*Min).OverClause = newNode.(*OverClause) + }) { + return false + } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent @@ -7829,6 +7867,11 @@ func (a *application) rewriteRefOfStd(parent SQLNode, node *Std, replacer replac }) { return false } + if !a.rewriteRefOfOverClause(node, node.OverClause, func(newNode, parent SQLNode) { + parent.(*Std).OverClause = newNode.(*OverClause) + }) { + return false + } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent @@ -7861,6 +7904,11 @@ func (a *application) rewriteRefOfStdDev(parent SQLNode, node *StdDev, replacer }) { return false } + if !a.rewriteRefOfOverClause(node, node.OverClause, func(newNode, parent SQLNode) { + parent.(*StdDev).OverClause = newNode.(*OverClause) + }) { + return false + } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent @@ -7893,6 +7941,11 @@ func (a *application) rewriteRefOfStdPop(parent SQLNode, node *StdPop, replacer }) { return false } + if !a.rewriteRefOfOverClause(node, node.OverClause, func(newNode, parent SQLNode) { + parent.(*StdPop).OverClause = newNode.(*OverClause) + }) { + return false + } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent @@ -7925,6 +7978,11 @@ func (a *application) rewriteRefOfStdSamp(parent SQLNode, node *StdSamp, replace }) { return false } + if !a.rewriteRefOfOverClause(node, node.OverClause, func(newNode, parent SQLNode) { + parent.(*StdSamp).OverClause = newNode.(*OverClause) + }) { + return false + } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent @@ -8211,6 +8269,11 @@ func (a *application) rewriteRefOfSum(parent SQLNode, node *Sum, replacer replac }) { return false } + if !a.rewriteRefOfOverClause(node, node.OverClause, func(newNode, parent SQLNode) { + parent.(*Sum).OverClause = newNode.(*OverClause) + }) { + return false + } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent @@ -9076,6 +9139,11 @@ func (a *application) rewriteRefOfVarPop(parent SQLNode, node *VarPop, replacer }) { return false } + if !a.rewriteRefOfOverClause(node, node.OverClause, func(newNode, parent SQLNode) { + parent.(*VarPop).OverClause = newNode.(*OverClause) + }) { + return false + } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent @@ -9108,6 +9176,11 @@ func (a *application) rewriteRefOfVarSamp(parent SQLNode, node *VarSamp, replace }) { return false } + if !a.rewriteRefOfOverClause(node, node.OverClause, func(newNode, parent SQLNode) { + parent.(*VarSamp).OverClause = newNode.(*OverClause) + }) { + return false + } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent @@ -9172,6 +9245,11 @@ func (a *application) rewriteRefOfVariance(parent SQLNode, node *Variance, repla }) { return false } + if !a.rewriteRefOfOverClause(node, node.OverClause, func(newNode, parent SQLNode) { + parent.(*Variance).OverClause = newNode.(*OverClause) + }) { + return false + } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent diff --git a/go/vt/sqlparser/ast_visit.go b/go/vt/sqlparser/ast_visit.go index b63cd94ca3d..6188aa146fa 100644 --- a/go/vt/sqlparser/ast_visit.go +++ b/go/vt/sqlparser/ast_visit.go @@ -884,6 +884,9 @@ func VisitRefOfAvg(in *Avg, f Visit) error { if err := VisitExpr(in.Arg, f); err != nil { return err } + if err := VisitRefOfOverClause(in.OverClause, f); err != nil { + return err + } return nil } func VisitRefOfBegin(in *Begin, f Visit) error { @@ -938,6 +941,9 @@ func VisitRefOfBitAnd(in *BitAnd, f Visit) error { if err := VisitExpr(in.Arg, f); err != nil { return err } + if err := VisitRefOfOverClause(in.OverClause, f); err != nil { + return err + } return nil } func VisitRefOfBitOr(in *BitOr, f Visit) error { @@ -950,6 +956,9 @@ func VisitRefOfBitOr(in *BitOr, f Visit) error { if err := VisitExpr(in.Arg, f); err != nil { return err } + if err := VisitRefOfOverClause(in.OverClause, f); err != nil { + return err + } return nil } func VisitRefOfBitXor(in *BitXor, f Visit) error { @@ -962,6 +971,9 @@ func VisitRefOfBitXor(in *BitXor, f Visit) error { if err := VisitExpr(in.Arg, f); err != nil { return err } + if err := VisitRefOfOverClause(in.OverClause, f); err != nil { + return err + } return nil } func VisitRefOfCallProc(in *CallProc, f Visit) error { @@ -1236,6 +1248,9 @@ func VisitRefOfCount(in *Count, f Visit) error { if err := VisitExprs(in.Args, f); err != nil { return err } + if err := VisitRefOfOverClause(in.OverClause, f); err != nil { + return err + } return nil } func VisitRefOfCountStar(in *CountStar, f Visit) error { @@ -1245,6 +1260,9 @@ func VisitRefOfCountStar(in *CountStar, f Visit) error { if cont, err := f(in); err != nil || !cont { return err } + if err := VisitRefOfOverClause(in.OverClause, f); err != nil { + return err + } return nil } func VisitRefOfCreateDatabase(in *CreateDatabase, f Visit) error { @@ -2650,6 +2668,9 @@ func VisitRefOfMax(in *Max, f Visit) error { if err := VisitExpr(in.Arg, f); err != nil { return err } + if err := VisitRefOfOverClause(in.OverClause, f); err != nil { + return err + } return nil } func VisitRefOfMemberOfExpr(in *MemberOfExpr, f Visit) error { @@ -2677,6 +2698,9 @@ func VisitRefOfMin(in *Min, f Visit) error { if err := VisitExpr(in.Arg, f); err != nil { return err } + if err := VisitRefOfOverClause(in.OverClause, f); err != nil { + return err + } return nil } func VisitRefOfModifyColumn(in *ModifyColumn, f Visit) error { @@ -3655,6 +3679,9 @@ func VisitRefOfStd(in *Std, f Visit) error { if err := VisitExpr(in.Arg, f); err != nil { return err } + if err := VisitRefOfOverClause(in.OverClause, f); err != nil { + return err + } return nil } func VisitRefOfStdDev(in *StdDev, f Visit) error { @@ -3667,6 +3694,9 @@ func VisitRefOfStdDev(in *StdDev, f Visit) error { if err := VisitExpr(in.Arg, f); err != nil { return err } + if err := VisitRefOfOverClause(in.OverClause, f); err != nil { + return err + } return nil } func VisitRefOfStdPop(in *StdPop, f Visit) error { @@ -3679,6 +3709,9 @@ func VisitRefOfStdPop(in *StdPop, f Visit) error { if err := VisitExpr(in.Arg, f); err != nil { return err } + if err := VisitRefOfOverClause(in.OverClause, f); err != nil { + return err + } return nil } func VisitRefOfStdSamp(in *StdSamp, f Visit) error { @@ -3691,6 +3724,9 @@ func VisitRefOfStdSamp(in *StdSamp, f Visit) error { if err := VisitExpr(in.Arg, f); err != nil { return err } + if err := VisitRefOfOverClause(in.OverClause, f); err != nil { + return err + } return nil } func VisitRefOfStream(in *Stream, f Visit) error { @@ -3816,6 +3852,9 @@ func VisitRefOfSum(in *Sum, f Visit) error { if err := VisitExpr(in.Arg, f); err != nil { return err } + if err := VisitRefOfOverClause(in.OverClause, f); err != nil { + return err + } return nil } func VisitTableExprs(in TableExprs, f Visit) error { @@ -4180,6 +4219,9 @@ func VisitRefOfVarPop(in *VarPop, f Visit) error { if err := VisitExpr(in.Arg, f); err != nil { return err } + if err := VisitRefOfOverClause(in.OverClause, f); err != nil { + return err + } return nil } func VisitRefOfVarSamp(in *VarSamp, f Visit) error { @@ -4192,6 +4234,9 @@ func VisitRefOfVarSamp(in *VarSamp, f Visit) error { if err := VisitExpr(in.Arg, f); err != nil { return err } + if err := VisitRefOfOverClause(in.OverClause, f); err != nil { + return err + } return nil } func VisitRefOfVariable(in *Variable, f Visit) error { @@ -4216,6 +4261,9 @@ func VisitRefOfVariance(in *Variance, f Visit) error { if err := VisitExpr(in.Arg, f); err != nil { return err } + if err := VisitRefOfOverClause(in.OverClause, f); err != nil { + return err + } return nil } func VisitVindexParam(in VindexParam, f Visit) error { diff --git a/go/vt/sqlparser/cached_size.go b/go/vt/sqlparser/cached_size.go index 11d7dc30c36..bea0c096080 100644 --- a/go/vt/sqlparser/cached_size.go +++ b/go/vt/sqlparser/cached_size.go @@ -407,12 +407,14 @@ func (cached *Avg) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(24) + size += int64(32) } // field Arg vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.Arg.(cachedObject); ok { size += cc.CachedSize(true) } + // field OverClause *vitess.io/vitess/go/vt/sqlparser.OverClause + size += cached.OverClause.CachedSize(true) return size } func (cached *Begin) CachedSize(alloc bool) int64 { @@ -506,12 +508,14 @@ func (cached *BitAnd) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(16) + size += int64(24) } // field Arg vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.Arg.(cachedObject); ok { size += cc.CachedSize(true) } + // field OverClause *vitess.io/vitess/go/vt/sqlparser.OverClause + size += cached.OverClause.CachedSize(true) return size } func (cached *BitOr) CachedSize(alloc bool) int64 { @@ -520,12 +524,14 @@ func (cached *BitOr) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(16) + size += int64(24) } // field Arg vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.Arg.(cachedObject); ok { size += cc.CachedSize(true) } + // field OverClause *vitess.io/vitess/go/vt/sqlparser.OverClause + size += cached.OverClause.CachedSize(true) return size } func (cached *BitXor) CachedSize(alloc bool) int64 { @@ -534,12 +540,14 @@ func (cached *BitXor) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(16) + size += int64(24) } // field Arg vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.Arg.(cachedObject); ok { size += cc.CachedSize(true) } + // field OverClause *vitess.io/vitess/go/vt/sqlparser.OverClause + size += cached.OverClause.CachedSize(true) return size } func (cached *CallProc) CachedSize(alloc bool) int64 { @@ -935,7 +943,7 @@ func (cached *Count) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(32) + size += int64(48) } // field Args vitess.io/vitess/go/vt/sqlparser.Exprs { @@ -946,6 +954,8 @@ func (cached *Count) CachedSize(alloc bool) int64 { } } } + // field OverClause *vitess.io/vitess/go/vt/sqlparser.OverClause + size += cached.OverClause.CachedSize(true) return size } func (cached *CountStar) CachedSize(alloc bool) int64 { @@ -954,8 +964,10 @@ func (cached *CountStar) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(8) + size += int64(16) } + // field OverClause *vitess.io/vitess/go/vt/sqlparser.OverClause + size += cached.OverClause.CachedSize(true) return size } func (cached *CreateDatabase) CachedSize(alloc bool) int64 { @@ -2727,12 +2739,14 @@ func (cached *Max) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(24) + size += int64(32) } // field Arg vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.Arg.(cachedObject); ok { size += cc.CachedSize(true) } + // field OverClause *vitess.io/vitess/go/vt/sqlparser.OverClause + size += cached.OverClause.CachedSize(true) return size } func (cached *MemberOfExpr) CachedSize(alloc bool) int64 { @@ -2759,12 +2773,14 @@ func (cached *Min) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(24) + size += int64(32) } // field Arg vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.Arg.(cachedObject); ok { size += cc.CachedSize(true) } + // field OverClause *vitess.io/vitess/go/vt/sqlparser.OverClause + size += cached.OverClause.CachedSize(true) return size } func (cached *ModifyColumn) CachedSize(alloc bool) int64 { @@ -3855,12 +3871,14 @@ func (cached *Std) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(16) + size += int64(24) } // field Arg vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.Arg.(cachedObject); ok { size += cc.CachedSize(true) } + // field OverClause *vitess.io/vitess/go/vt/sqlparser.OverClause + size += cached.OverClause.CachedSize(true) return size } func (cached *StdDev) CachedSize(alloc bool) int64 { @@ -3869,12 +3887,14 @@ func (cached *StdDev) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(16) + size += int64(24) } // field Arg vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.Arg.(cachedObject); ok { size += cc.CachedSize(true) } + // field OverClause *vitess.io/vitess/go/vt/sqlparser.OverClause + size += cached.OverClause.CachedSize(true) return size } func (cached *StdPop) CachedSize(alloc bool) int64 { @@ -3883,12 +3903,14 @@ func (cached *StdPop) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(16) + size += int64(24) } // field Arg vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.Arg.(cachedObject); ok { size += cc.CachedSize(true) } + // field OverClause *vitess.io/vitess/go/vt/sqlparser.OverClause + size += cached.OverClause.CachedSize(true) return size } func (cached *StdSamp) CachedSize(alloc bool) int64 { @@ -3897,12 +3919,14 @@ func (cached *StdSamp) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(16) + size += int64(24) } // field Arg vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.Arg.(cachedObject); ok { size += cc.CachedSize(true) } + // field OverClause *vitess.io/vitess/go/vt/sqlparser.OverClause + size += cached.OverClause.CachedSize(true) return size } func (cached *Stream) CachedSize(alloc bool) int64 { @@ -4024,12 +4048,14 @@ func (cached *Sum) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(24) + size += int64(32) } // field Arg vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.Arg.(cachedObject); ok { size += cc.CachedSize(true) } + // field OverClause *vitess.io/vitess/go/vt/sqlparser.OverClause + size += cached.OverClause.CachedSize(true) return size } func (cached *TableAndLockType) CachedSize(alloc bool) int64 { @@ -4383,12 +4409,14 @@ func (cached *VarPop) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(16) + size += int64(24) } // field Arg vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.Arg.(cachedObject); ok { size += cc.CachedSize(true) } + // field OverClause *vitess.io/vitess/go/vt/sqlparser.OverClause + size += cached.OverClause.CachedSize(true) return size } func (cached *VarSamp) CachedSize(alloc bool) int64 { @@ -4397,12 +4425,14 @@ func (cached *VarSamp) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(16) + size += int64(24) } // field Arg vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.Arg.(cachedObject); ok { size += cc.CachedSize(true) } + // field OverClause *vitess.io/vitess/go/vt/sqlparser.OverClause + size += cached.OverClause.CachedSize(true) return size } func (cached *Variable) CachedSize(alloc bool) int64 { @@ -4423,12 +4453,14 @@ func (cached *Variance) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(16) + size += int64(24) } // field Arg vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.Arg.(cachedObject); ok { size += cc.CachedSize(true) } + // field OverClause *vitess.io/vitess/go/vt/sqlparser.OverClause + size += cached.OverClause.CachedSize(true) return size } func (cached *VindexParam) CachedSize(alloc bool) int64 { diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index 0dce5eae5bc..91cc3c13029 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -3711,6 +3711,54 @@ var ( }, { input: "select _ascii 'b' 'a' 'c'", output: "select _ascii 'bac' from dual", + }, { + input: "SELECT time, subject, AVG(val) OVER (PARTITION BY time, subject) AS window_result FROM observations GROUP BY time, subject;", + output: "select `time`, subject, avg(val) over ( partition by `time`, subject) as window_result from observations group by `time`, subject", + }, { + input: "SELECT time, subject, BIT_AND(val) OVER (PARTITION BY time, subject) AS window_result FROM observations GROUP BY time, subject;", + output: "select `time`, subject, bit_and(val) over ( partition by `time`, subject) as window_result from observations group by `time`, subject", + }, { + input: "SELECT time, subject, BIT_OR(val) OVER (PARTITION BY time, subject) AS window_result FROM observations GROUP BY time, subject;", + output: "select `time`, subject, bit_or(val) over ( partition by `time`, subject) as window_result from observations group by `time`, subject", + }, { + input: "SELECT time, subject, BIT_XOR(val) OVER (PARTITION BY time, subject) AS window_result FROM observations GROUP BY time, subject;", + output: "select `time`, subject, bit_xor(val) over ( partition by `time`, subject) as window_result from observations group by `time`, subject", + }, { + input: "SELECT time, subject, COUNT(val) OVER (PARTITION BY time, subject) AS window_result FROM observations GROUP BY time, subject;", + output: "select `time`, subject, count(val) over ( partition by `time`, subject) as window_result from observations group by `time`, subject", + }, { + input: "SELECT time, subject, COUNT(*) OVER (PARTITION BY time, subject) AS window_result FROM observations GROUP BY time, subject;", + output: "select `time`, subject, count(*) over ( partition by `time`, subject) as window_result from observations group by `time`, subject", + }, { + input: "SELECT time, subject, MAX(val) OVER (PARTITION BY time, subject) AS window_result FROM observations GROUP BY time, subject;", + output: "select `time`, subject, max(val) over ( partition by `time`, subject) as window_result from observations group by `time`, subject", + }, { + input: "SELECT time, subject, MIN(val) OVER (PARTITION BY time, subject) AS window_result FROM observations GROUP BY time, subject;", + output: "select `time`, subject, min(val) over ( partition by `time`, subject) as window_result from observations group by `time`, subject", + }, { + input: "SELECT time, subject, STD(val) OVER (PARTITION BY time, subject) AS window_result FROM observations GROUP BY time, subject;", + output: "select `time`, subject, std(val) over ( partition by `time`, subject) as window_result from observations group by `time`, subject", + }, { + input: "SELECT time, subject, STDDEV(val) OVER (PARTITION BY time, subject) AS window_result FROM observations GROUP BY time, subject;", + output: "select `time`, subject, stddev(val) over ( partition by `time`, subject) as window_result from observations group by `time`, subject", + }, { + input: "SELECT time, subject, STDDEV_POP(val) OVER (PARTITION BY time, subject) AS window_result FROM observations GROUP BY time, subject;", + output: "select `time`, subject, stddev_pop(val) over ( partition by `time`, subject) as window_result from observations group by `time`, subject", + }, { + input: "SELECT time, subject, STDDEV_SAMP(val) OVER (PARTITION BY time, subject) AS window_result FROM observations GROUP BY time, subject;", + output: "select `time`, subject, stddev_samp(val) over ( partition by `time`, subject) as window_result from observations group by `time`, subject", + }, { + input: "SELECT time, subject, SUM(val) OVER (PARTITION BY time, subject) AS window_result FROM observations GROUP BY time, subject;", + output: "select `time`, subject, sum(val) over ( partition by `time`, subject) as window_result from observations group by `time`, subject", + }, { + input: "SELECT time, subject, VAR_POP(val) OVER (PARTITION BY time, subject) AS window_result FROM observations GROUP BY time, subject;", + output: "select `time`, subject, var_pop(val) over ( partition by `time`, subject) as window_result from observations group by `time`, subject", + }, { + input: "SELECT time, subject, VAR_SAMP(val) OVER (PARTITION BY time, subject) AS window_result FROM observations GROUP BY time, subject;", + output: "select `time`, subject, var_samp(val) over ( partition by `time`, subject) as window_result from observations group by `time`, subject", + }, { + input: "SELECT time, subject, VARIANCE(val) OVER (PARTITION BY time, subject) AS window_result FROM observations GROUP BY time, subject;", + output: "select `time`, subject, variance(val) over ( partition by `time`, subject) as window_result from observations group by `time`, subject", }, { input: `kill connection 18446744073709551615`, }, { diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index e694847c784..b4dced75fa7 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -1523,7 +1523,7 @@ var yyExca = [...]int{ 244, 817, -2, 815, -1, 122, - 241, 1595, + 241, 1597, -2, 133, -1, 124, 1, 160, @@ -1542,14 +1542,14 @@ var yyExca = [...]int{ 165, 41, -2, 45, -1, 942, - 88, 1612, - -2, 1461, + 88, 1614, + -2, 1463, -1, 943, - 88, 1613, - 224, 1617, - -2, 1462, + 88, 1615, + 224, 1619, + -2, 1464, -1, 944, - 224, 1616, + 224, 1618, -2, 42, -1, 1028, 61, 889, @@ -1563,8 +1563,8 @@ var yyExca = [...]int{ 735, 582, -2, 167, -1, 1504, - 224, 1617, - -2, 1462, + 224, 1619, + -2, 1464, -1, 1715, 61, 890, -2, 906, @@ -1585,11 +1585,11 @@ var yyExca = [...]int{ 257, 44, -2, 422, -1, 2300, - 224, 1621, - -2, 1615, + 224, 1623, + -2, 1617, -1, 2301, - 224, 1617, - -2, 1613, + 224, 1619, + -2, 1615, -1, 2404, 137, 167, 179, 167, @@ -1605,13 +1605,13 @@ var yyExca = [...]int{ -1, 2934, 710, 702, -2, 676, - -1, 3144, - 51, 1563, - -2, 1557, - -1, 3969, + -1, 3156, + 51, 1565, + -2, 1559, + -1, 3986, 710, 702, -2, 690, - -1, 4055, + -1, 4072, 91, 634, 96, 634, 106, 634, @@ -1657,91 +1657,91 @@ var yyExca = [...]int{ 220, 634, 221, 634, 222, 634, - -2, 1986, + -2, 1988, } const yyPrivate = 57344 -const yyLast = 55539 +const yyLast = 55816 var yyAct = [...]int{ - 958, 3625, 953, 87, 3626, 3950, 3624, 945, 946, 4143, - 2107, 4130, 4036, 4024, 3296, 3196, 3203, 4097, 1269, 2095, - 4098, 3934, 2401, 3245, 2329, 1982, 4053, 3857, 3254, 3426, - 3259, 3256, 911, 3255, 3253, 42, 3258, 3257, 3157, 3932, - 2038, 1267, 2761, 5, 3575, 3562, 3274, 2331, 3095, 3211, - 2475, 739, 3273, 3161, 3158, 3473, 3467, 3667, 2998, 2356, - 3155, 2825, 733, 3457, 2438, 907, 3145, 3493, 734, 1775, - 767, 2899, 1831, 2980, 906, 2931, 4001, 3303, 1078, 3276, - 2463, 2443, 2900, 2506, 1731, 2901, 1026, 163, 87, 2375, - 2389, 1046, 1023, 2850, 1148, 2376, 2372, 41, 2831, 2377, - 1053, 1878, 2253, 2817, 2801, 43, 2285, 1026, 1124, 2091, - 2252, 2972, 2484, 149, 1860, 2046, 2462, 2364, 1025, 2523, - 1029, 2445, 1088, 1111, 2892, 1106, 1764, 2867, 2129, 1744, - 2379, 1696, 1517, 100, 104, 105, 2350, 2135, 2066, 1048, - 1443, 1428, 1978, 1867, 3160, 1085, 749, 2460, 1959, 1082, - 1117, 1114, 2435, 2434, 1086, 1112, 1113, 1763, 1063, 1035, - 2838, 1065, 1749, 1718, 737, 2162, 3662, 2143, 2799, 1500, - 744, 1476, 2357, 2037, 1032, 1045, 107, 85, 1257, 1990, - 127, 3654, 1826, 1852, 132, 1030, 167, 125, 126, 1197, - 99, 133, 1033, 1031, 1021, 1058, 743, 93, 1521, 98, - 84, 4131, 908, 736, 1265, 1243, 2477, 2478, 2479, 3985, - 3563, 1526, 3242, 1057, 2477, 2954, 2953, 106, 2922, 2521, - 3555, 1020, 4080, 726, 2988, 2989, 1444, 3981, 2326, 2327, - 2053, 2052, 3980, 1038, 671, 3986, 3629, 134, 2051, 128, - 1944, 2050, 1153, 1079, 2049, 1128, 1150, 2048, 2, 2021, - 1213, 668, 4074, 669, 2797, 2571, 3141, 4153, 3099, 1167, - 1168, 1169, 4101, 1172, 1173, 1174, 1175, 1161, 4096, 1178, - 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, - 1189, 1190, 1191, 1192, 1193, 1194, 1024, 1072, 1127, 1073, - 3264, 1039, 1735, 111, 112, 113, 727, 116, 3518, 1214, - 122, 1103, 1022, 191, 1047, 1102, 663, 1154, 1157, 1158, - 711, 128, 1101, 1100, 2827, 2510, 1439, 1460, 724, 725, - 1733, 4121, 1736, 3628, 2353, 1095, 3959, 2924, 1014, 1015, - 1016, 1017, 1090, 3981, 1454, 1028, 3264, 4136, 95, 3431, - 1170, 912, 3430, 4084, 95, 1019, 3262, 3629, 95, 3261, - 1734, 711, 4082, 2352, 2947, 705, 3935, 2762, 2058, 2509, - 3322, 3853, 4135, 1060, 1061, 3852, 1152, 2069, 4083, 2944, - 3568, 1151, 3268, 3569, 1071, 1075, 910, 4081, 95, 128, - 4111, 3863, 705, 4078, 3587, 961, 962, 963, 1071, 1075, - 910, 1430, 3262, 3576, 4025, 4033, 2503, 3862, 702, 86, - 2100, 190, 4058, 3343, 1725, 961, 962, 963, 1841, 2876, - 3193, 3194, 2875, 2396, 2397, 2877, 2961, 2962, 3268, 705, - 2030, 2031, 2798, 86, 1104, 129, 2508, 3192, 2987, 86, - 2578, 2395, 1444, 705, 3628, 4037, 2575, 1765, 172, 1766, - 2971, 1262, 1233, 1450, 1012, 1221, 687, 2841, 705, 1011, - 1222, 2925, 2171, 3951, 1457, 1986, 1458, 1459, 1220, 685, - 1219, 1221, 2888, 1234, 2414, 2413, 1222, 1227, 3300, 3586, - 705, 1099, 2842, 1206, 1207, 2834, 2835, 95, 3680, 705, - 3033, 2881, 3330, 1238, 1239, 3328, 3265, 2569, 3298, 2029, - 2454, 2360, 719, 2033, 169, 2576, 723, 170, 2973, 682, - 2328, 95, 717, 1700, 3304, 1209, 1761, 95, 697, 2932, - 4063, 4041, 1171, 2448, 3905, 4102, 3906, 1196, 2485, 86, - 189, 2957, 88, 692, 2524, 3291, 3964, 4133, 4061, 1097, - 1440, 4041, 3265, 3292, 695, 1960, 4103, 4067, 4068, 1259, - 1454, 1934, 1236, 1237, 2530, 1242, 3213, 3214, 2528, 1202, - 2163, 1261, 1254, 4062, 1429, 2165, 2975, 1260, 1235, 2170, - 2166, 3301, 1228, 2167, 2168, 2169, 3837, 706, 2164, 2172, - 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2572, 3557, - 2573, 3299, 2547, 3556, 2548, 1935, 2549, 1936, 1240, 2550, - 2527, 1177, 2526, 1987, 706, 1176, 1137, 95, 1241, 2531, - 1135, 1064, 672, 2529, 674, 688, 1703, 708, 2488, 707, - 678, 3633, 676, 680, 689, 681, 2127, 675, 2373, 686, - 3553, 1108, 677, 690, 691, 694, 698, 699, 700, 696, - 693, 706, 684, 709, 173, 2537, 2533, 2535, 2536, 2534, - 2538, 2539, 2540, 179, 1107, 706, 3034, 1477, 1108, 1450, - 4075, 1146, 1442, 1145, 1144, 3212, 1143, 1142, 1098, 1141, - 706, 1140, 2447, 1139, 1134, 1845, 3215, 3215, 3098, 3319, - 1147, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1486, 1485, - 1487, 1488, 706, 1083, 2358, 2359, 1083, 4154, 1120, 4108, - 1081, 706, 1083, 1156, 3470, 1074, 1068, 1066, 1119, 1119, - 1979, 2461, 1266, 1155, 1266, 1266, 1059, 2976, 2514, 1074, - 1068, 1066, 1839, 2513, 2119, 2108, 2109, 2110, 2111, 2121, - 2112, 2113, 2114, 2126, 2122, 2115, 2116, 2123, 2124, 2125, - 2117, 2118, 2120, 1762, 1975, 3552, 1431, 1164, 1449, 1446, - 1447, 1448, 1453, 1455, 1452, 1138, 1451, 3235, 2926, 1136, - 2956, 2942, 1026, 1501, 1506, 1507, 1445, 1510, 1512, 1513, - 1514, 1515, 1516, 2959, 1519, 1520, 1522, 1522, 164, 1522, + 958, 3642, 3643, 87, 3641, 4147, 3967, 4053, 3308, 4160, + 2107, 946, 4115, 953, 4114, 945, 2095, 4041, 2329, 2401, + 1269, 3208, 4070, 3215, 3951, 3443, 1267, 2130, 3874, 3257, + 3169, 3266, 3271, 3268, 1775, 3267, 3265, 3270, 3269, 3949, + 3592, 3024, 1982, 3579, 2331, 3107, 3286, 2038, 2475, 3223, + 5, 3285, 739, 3173, 3170, 3490, 3484, 3684, 2998, 3157, + 2356, 907, 767, 906, 2825, 911, 3288, 1731, 42, 3167, + 2375, 733, 4018, 3023, 2438, 734, 1831, 2899, 3315, 2980, + 2931, 3510, 2463, 3474, 2443, 2900, 1026, 2901, 87, 2389, + 2372, 2506, 1078, 1148, 2850, 163, 1046, 1023, 1878, 2377, + 2831, 41, 729, 1053, 2376, 43, 2817, 1026, 2801, 2252, + 2285, 2129, 2253, 2972, 2046, 2484, 149, 2091, 2445, 2364, + 2462, 1860, 1088, 2523, 2892, 1106, 1764, 1111, 2867, 1744, + 100, 2379, 1696, 1517, 2135, 2066, 1443, 2350, 1428, 104, + 105, 1085, 1978, 1867, 749, 3172, 1082, 1117, 2838, 1114, + 1959, 1025, 2460, 1029, 2434, 2435, 1086, 1112, 1113, 1124, + 1763, 1063, 736, 1065, 1749, 1035, 3679, 2143, 744, 2799, + 1718, 2162, 1048, 107, 1045, 2357, 3671, 1032, 1476, 1500, + 85, 2037, 1257, 1990, 127, 167, 125, 99, 126, 1030, + 1826, 1021, 1852, 1031, 132, 908, 133, 737, 1197, 1058, + 743, 1033, 1526, 1265, 106, 1243, 98, 84, 93, 1521, + 4148, 2477, 2478, 2479, 4002, 3580, 1057, 726, 3254, 2477, + 2954, 2953, 2521, 2922, 3572, 4097, 1020, 2988, 2989, 3535, + 1038, 3998, 2326, 2327, 3997, 2053, 2052, 671, 128, 2051, + 4003, 2050, 2049, 2048, 3276, 1150, 134, 1079, 2021, 1213, + 1153, 668, 2797, 669, 4091, 2571, 3153, 2510, 1167, 1168, + 1169, 3646, 1172, 1173, 1174, 1175, 4118, 3111, 1178, 1179, + 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, + 1190, 1191, 1192, 1193, 1194, 1072, 1127, 2, 1039, 1022, + 727, 1735, 1073, 1024, 1460, 2827, 1128, 1944, 3646, 711, + 3274, 2509, 1439, 3976, 1103, 1154, 1157, 1158, 1090, 1102, + 128, 1101, 95, 1100, 2924, 1047, 1733, 4170, 1161, 1214, + 4113, 1736, 4153, 4138, 3448, 1095, 3280, 2944, 3447, 705, + 2353, 711, 111, 112, 113, 3998, 116, 95, 3276, 122, + 4101, 95, 191, 1170, 912, 663, 1734, 4152, 3645, 190, + 1019, 3273, 961, 962, 963, 1725, 2069, 724, 725, 2352, + 2947, 3952, 1071, 1075, 910, 4100, 4099, 1014, 1015, 1016, + 1017, 1104, 2762, 129, 1028, 2058, 705, 3334, 128, 3870, + 95, 3869, 961, 962, 963, 3645, 172, 3585, 1152, 1151, + 3586, 4098, 4128, 3880, 3274, 4095, 86, 86, 3604, 3593, + 4080, 4042, 1060, 1061, 1071, 1075, 910, 705, 4050, 2503, + 1430, 3879, 2100, 4075, 86, 3360, 1841, 2798, 4078, 702, + 3280, 2841, 3205, 3206, 2396, 2397, 3204, 4084, 4085, 2881, + 2987, 1457, 4054, 1458, 1459, 2575, 3225, 3226, 2030, 2031, + 3277, 2578, 169, 4079, 2395, 170, 2842, 3603, 2876, 705, + 1765, 2875, 1766, 2971, 2877, 1233, 1012, 1011, 3968, 1221, + 2888, 1234, 3342, 3697, 1222, 3312, 1221, 687, 189, 1238, + 1239, 1222, 2508, 3045, 95, 95, 705, 1986, 4058, 1220, + 685, 1219, 705, 1262, 2414, 2413, 2454, 705, 1099, 2171, + 1206, 1207, 95, 3310, 3340, 1444, 2834, 2835, 2569, 2029, + 3981, 719, 2033, 1227, 2328, 723, 2576, 717, 4058, 2448, + 2999, 705, 86, 1761, 2973, 88, 1440, 1196, 1171, 4119, + 682, 3316, 1209, 1700, 1965, 2360, 2932, 2485, 3922, 697, + 3923, 2957, 2524, 4150, 3277, 3303, 1960, 1934, 1477, 1254, + 4120, 706, 1259, 3304, 692, 3224, 1097, 2547, 1242, 2548, + 1202, 2549, 2975, 3574, 2360, 695, 1235, 3227, 3313, 3573, + 3331, 2530, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1486, + 1485, 1487, 1488, 1429, 1240, 1236, 1237, 1250, 2572, 1252, + 2573, 1935, 173, 1936, 1241, 2550, 3311, 2163, 706, 1064, + 95, 179, 2165, 1261, 3001, 1177, 2170, 2166, 1228, 1260, + 2167, 2168, 2169, 1454, 1176, 2164, 2172, 2173, 2174, 2175, + 2176, 2177, 2178, 2179, 2180, 1987, 2531, 1249, 1251, 706, + 2526, 3854, 3570, 672, 2488, 674, 688, 2925, 708, 3650, + 707, 678, 2373, 676, 680, 689, 681, 1107, 675, 3046, + 686, 1108, 1108, 677, 690, 691, 694, 698, 699, 700, + 696, 693, 4092, 684, 709, 2528, 2961, 2962, 2447, 1146, + 1145, 706, 1144, 1703, 1491, 3011, 3010, 3009, 1143, 1142, + 3003, 1141, 3007, 4171, 3002, 1098, 3000, 3110, 1140, 1139, + 1134, 3005, 1845, 1074, 1068, 1066, 3227, 1147, 706, 4125, + 3004, 3487, 1083, 1083, 706, 1083, 1081, 2527, 1120, 706, + 1119, 1156, 1266, 1979, 1266, 1266, 2461, 1119, 3006, 3008, + 2529, 1155, 1450, 1059, 2976, 1442, 164, 2514, 2358, 2359, + 2513, 1975, 1431, 706, 1247, 1074, 1068, 1066, 1248, 2537, + 2533, 2535, 2536, 2534, 2538, 2539, 2540, 3569, 1253, 1968, + 1762, 1966, 1967, 1164, 1969, 1970, 1971, 2358, 2359, 3247, + 2992, 2956, 1026, 1501, 1506, 1507, 1839, 1510, 1512, 1513, + 1514, 1515, 1516, 1246, 1519, 1520, 1522, 1522, 1838, 1522, 1522, 1527, 1527, 1527, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, @@ -1754,1097 +1754,1344 @@ var yyAct = [...]int{ 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, - 1646, 1647, 1648, 1649, 1650, 1651, 3627, 1255, 1498, 2890, - 1652, 2507, 1654, 1655, 1656, 1657, 1658, 710, 1422, 1423, - 1494, 1495, 1496, 1497, 1527, 1527, 1527, 1527, 1527, 1527, - 1508, 3958, 2923, 1946, 1945, 1947, 1948, 1949, 703, 1665, + 1646, 1647, 1648, 1649, 1650, 1651, 1498, 1255, 3975, 1421, + 1652, 1105, 1654, 1655, 1656, 1657, 1658, 1422, 1423, 2923, + 3278, 3279, 3533, 3534, 1527, 1527, 1527, 1527, 1527, 1527, + 1511, 3644, 2946, 3282, 2926, 4056, 4083, 959, 710, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, - 1676, 1677, 1678, 704, 1449, 1446, 1447, 1448, 1453, 1455, - 1452, 1421, 1451, 959, 1105, 1502, 3266, 3267, 4039, 959, - 1693, 1511, 1445, 959, 2946, 1523, 3199, 1524, 1525, 3270, - 94, 1067, 1217, 3585, 1223, 1224, 1225, 1226, 4039, 1438, - 89, 3516, 3517, 1528, 1529, 1067, 3414, 2577, 1218, 1208, - 4038, 1690, 2451, 3471, 94, 1965, 1205, 1838, 1263, 1264, - 94, 1491, 3266, 3267, 1200, 1126, 165, 3627, 2945, 1491, - 4038, 3200, 1837, 177, 1699, 3270, 1126, 1250, 2576, 1252, - 2979, 1724, 1866, 1026, 1976, 1835, 1212, 1026, 662, 1126, - 1126, 4076, 2452, 1026, 1094, 3202, 4066, 1096, 705, 2450, - 2802, 2804, 2970, 3947, 1231, 2969, 2402, 1163, 3507, 1492, - 1493, 3489, 2872, 3197, 185, 1707, 1691, 1249, 1251, 1711, - 4147, 2837, 2505, 2774, 1126, 1025, 2103, 1753, 1653, 1211, - 3107, 3213, 3214, 2453, 3106, 2832, 124, 670, 3198, 1491, - 4065, 2360, 1488, 2449, 3191, 2601, 3320, 2992, 1471, 3972, - 94, 1725, 1042, 119, 1149, 2590, 1258, 166, 171, 168, - 174, 175, 176, 178, 180, 181, 182, 183, 1125, 1216, - 3548, 1244, 3204, 184, 186, 187, 188, 1709, 1710, 1125, - 3483, 104, 105, 2525, 1691, 1659, 1660, 1661, 1662, 1663, - 1664, 1865, 1125, 1125, 1991, 2042, 1099, 1964, 1091, 1119, - 1122, 1123, 1697, 1083, 1972, 1093, 1092, 1116, 1120, 3126, - 1684, 2999, 1483, 1484, 1486, 1485, 1487, 1488, 2144, 1126, - 3124, 1099, 1195, 107, 1247, 1767, 120, 1125, 1248, 3019, - 2601, 2136, 2145, 1119, 1122, 1123, 2915, 1083, 1253, 4112, - 3212, 1116, 1120, 2136, 2982, 2610, 2982, 1126, 1459, 2981, - 2071, 2981, 3215, 1858, 1097, 3676, 1460, 1705, 1842, 1843, - 1844, 1460, 1115, 1246, 2072, 1489, 1490, 2070, 3523, 2803, - 1968, 1126, 1966, 1967, 3522, 1969, 1970, 1971, 4104, 1708, - 1706, 1727, 1458, 1459, 1851, 2492, 1199, 1730, 1929, 1875, - 1984, 1868, 1868, 1024, 1694, 3001, 1880, 1911, 1881, 1870, - 1883, 1885, 1022, 1874, 1889, 1891, 1893, 1895, 1897, 1230, - 706, 1864, 2497, 1215, 1266, 2502, 1758, 1759, 2504, 1245, - 1232, 2500, 1125, 2497, 1162, 1919, 1920, 1869, 1159, 1201, - 1137, 1925, 1926, 1460, 2358, 2359, 1712, 1135, 3508, 1834, - 1460, 4145, 1992, 1037, 4146, 4149, 4144, 1961, 1954, 1962, - 1125, 2501, 1963, 1848, 1849, 1129, 1119, 1460, 4003, 1861, - 1131, 1847, 2499, 2142, 1132, 1130, 3011, 3010, 3009, 3201, - 3940, 3003, 3845, 3007, 1125, 3002, 1460, 3000, 3844, 1129, - 1119, 4155, 3005, 1098, 1131, 1133, 3835, 1725, 1132, 1130, - 1872, 3004, 1198, 1457, 2141, 1458, 1459, 1915, 1457, 2637, - 1458, 1459, 3021, 4004, 1840, 1477, 3599, 1952, 1098, 3006, - 3008, 1980, 1953, 3598, 1460, 3941, 3530, 1907, 4117, 1725, - 1910, 2290, 1912, 1941, 3529, 4115, 1725, 3519, 1477, 1478, + 1676, 1677, 1678, 1494, 1495, 1496, 1497, 2507, 1502, 703, + 1444, 3602, 959, 1508, 165, 4056, 959, 4055, 3644, 1067, + 1693, 177, 2890, 3431, 704, 1438, 2945, 94, 94, 1218, + 4082, 1126, 1205, 89, 1528, 1529, 1523, 3332, 1524, 1525, + 1946, 1945, 1947, 1948, 1949, 94, 1692, 4055, 2451, 1208, + 3488, 1200, 1217, 1126, 1223, 1224, 1225, 1226, 2577, 1491, + 2576, 1067, 185, 2959, 3278, 3279, 1137, 1449, 1446, 1447, + 1448, 1453, 1455, 1452, 1699, 1451, 1135, 3282, 1263, 1264, + 1724, 1126, 1126, 1026, 1690, 1445, 1837, 1026, 2452, 1094, + 2942, 4164, 1096, 1026, 2979, 2450, 1866, 2802, 2804, 1976, + 1835, 1212, 662, 1231, 1126, 166, 171, 168, 174, 175, + 176, 178, 180, 181, 182, 183, 3119, 1163, 1454, 1964, + 1691, 184, 186, 187, 188, 1126, 2505, 2970, 4093, 2453, + 2969, 1492, 1493, 3964, 1125, 3524, 3506, 1126, 3118, 2449, + 2872, 2837, 2774, 94, 2103, 2590, 1753, 1653, 1707, 1211, + 2832, 124, 1711, 1488, 670, 2402, 1125, 1491, 1025, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1486, 1485, 1487, 1488, - 3243, 711, 1102, 1725, 2582, 2583, 2584, 3295, 128, 1101, - 1100, 190, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1486, - 1485, 1487, 1488, 2290, 2060, 2062, 2063, 2287, 4156, 1997, - 1457, 1951, 1458, 1459, 3231, 129, 2289, 1457, 2897, 1458, - 1459, 1266, 1266, 2896, 2895, 1993, 1994, 1940, 172, 2061, - 957, 2457, 1955, 2019, 1457, 87, 1458, 1459, 87, 1998, - 4106, 961, 962, 963, 1939, 1425, 2005, 2006, 2007, 1477, - 3582, 2991, 3583, 1457, 1938, 1458, 1459, 1460, 2018, 1481, - 1482, 1483, 1484, 1486, 1485, 1487, 1488, 42, 1937, 2606, - 42, 1927, 1921, 1478, 1479, 1480, 1481, 1482, 1483, 1484, - 1486, 1485, 1487, 1488, 169, 1918, 1917, 170, 1916, 1887, - 1477, 1457, 1704, 1458, 1459, 2098, 2098, 3513, 711, 1761, - 2096, 2096, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1462, - 189, 4105, 2649, 2099, 1478, 1479, 1480, 1481, 1482, 1483, - 1484, 1486, 1485, 1487, 1488, 2879, 711, 1995, 1460, 2473, - 2472, 3967, 2064, 1738, 1999, 3966, 2001, 2002, 2003, 2004, - 110, 101, 2605, 2008, 1477, 1690, 110, 1473, 2127, 1474, - 3205, 109, 102, 108, 3209, 2020, 1477, 109, 2589, 108, - 2182, 3208, 103, 1475, 1489, 1490, 1472, 3944, 1478, 1479, - 1480, 1481, 1482, 1483, 1484, 1486, 1485, 1487, 1488, 1739, - 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1486, 1485, 1487, - 1488, 2471, 2470, 2647, 1457, 3210, 1458, 1459, 2469, 2468, - 3206, 2823, 4132, 1456, 1725, 3207, 3943, 1725, 1460, 85, - 1691, 2043, 85, 4047, 1725, 4092, 1725, 1456, 1725, 2068, - 3942, 1725, 2823, 4032, 173, 2026, 2027, 1725, 2823, 4011, - 1460, 101, 3840, 179, 1460, 2823, 4007, 1725, 103, 3824, - 2075, 3823, 102, 2131, 3675, 2073, 2119, 2108, 2109, 2110, + 3203, 2601, 1725, 1471, 1042, 3138, 1659, 1660, 1661, 1662, + 1663, 1664, 1709, 1710, 1125, 1125, 104, 105, 1691, 1129, + 1119, 1099, 2144, 1091, 1131, 1216, 1258, 3136, 1132, 1130, + 1093, 1092, 119, 1697, 3989, 1865, 2145, 1125, 1099, 1195, + 2136, 1149, 1129, 1119, 1684, 1138, 3565, 1131, 3500, 1133, + 107, 1132, 1130, 1244, 2525, 1136, 2982, 1450, 1125, 1126, + 2042, 2981, 1991, 1972, 1119, 1122, 1123, 1767, 1083, 3019, + 1125, 3211, 1116, 1120, 2915, 1460, 1119, 1122, 1123, 1097, + 1083, 2601, 1458, 1459, 1116, 1120, 1705, 1842, 1843, 1844, + 2982, 4129, 2136, 1115, 2610, 2981, 2803, 1858, 1459, 1961, + 3693, 1962, 3540, 1199, 1963, 120, 1708, 3539, 1727, 1483, + 1484, 1486, 1485, 1487, 1488, 1929, 3212, 1851, 1694, 1022, + 2492, 1706, 1984, 1880, 1875, 1881, 1730, 1883, 1885, 1460, + 1024, 1889, 1891, 1893, 1895, 1897, 1870, 1874, 1230, 1864, + 3214, 1911, 4162, 4121, 1266, 4163, 3525, 4161, 2127, 1232, + 1758, 1759, 2504, 2502, 1919, 1920, 2500, 1869, 3209, 2497, + 1925, 1926, 1125, 2497, 1162, 2071, 4020, 2142, 1159, 1215, + 1137, 1135, 1868, 1868, 1201, 3957, 3225, 3226, 1834, 2072, + 1489, 1490, 2070, 3210, 1481, 1482, 1483, 1484, 1486, 1485, + 1487, 1488, 1848, 1037, 1849, 1460, 1847, 1861, 2501, 4166, + 3862, 1245, 2499, 1460, 3599, 1712, 3600, 2645, 1098, 1198, + 1992, 4021, 1457, 1872, 1458, 1459, 1725, 3216, 4172, 1954, + 3958, 3021, 1460, 2141, 3861, 1098, 2637, 3852, 1460, 3616, + 1915, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1462, 3615, + 1907, 1980, 1952, 1910, 3547, 1912, 2119, 2108, 2109, 2110, 2111, 2121, 2112, 2113, 2114, 2126, 2122, 2115, 2116, 2123, - 2124, 2125, 2117, 2118, 2120, 1457, 3673, 1458, 1459, 1460, - 3595, 2102, 2300, 3925, 1725, 3566, 3957, 3960, 2074, 2299, - 2076, 2077, 2078, 2079, 2080, 2081, 2083, 2085, 2086, 2087, - 2088, 2089, 2090, 4045, 1725, 2298, 2204, 1725, 3872, 2146, - 2147, 2148, 2149, 1460, 1502, 3848, 1725, 3871, 2288, 2823, - 3836, 2286, 1689, 2160, 2181, 4043, 1725, 3482, 1688, 3918, - 1725, 3828, 2137, 1478, 1479, 1480, 1481, 1482, 1483, 1484, - 1486, 1485, 1487, 1488, 1479, 1480, 1481, 1482, 1483, 1484, - 1486, 1485, 1487, 1488, 1687, 1457, 3527, 1458, 1459, 3566, - 1725, 2823, 3564, 103, 3916, 1725, 1456, 3512, 164, 2381, - 2497, 1725, 2130, 2196, 3305, 1460, 3302, 1457, 3234, 1458, - 1459, 1457, 2300, 1458, 1459, 3487, 1725, 1460, 3233, 2370, - 2906, 2297, 104, 105, 2303, 2304, 2729, 1725, 3913, 1725, - 3827, 2383, 3224, 3223, 3574, 2298, 3221, 3222, 2411, 3219, - 3220, 2933, 1460, 104, 105, 2893, 1457, 1460, 1458, 1459, - 3219, 3218, 1725, 1460, 2067, 2345, 1686, 1460, 2847, 1725, - 2576, 2955, 1460, 1830, 2936, 2929, 2930, 2911, 2333, 2645, - 1679, 1088, 2823, 2822, 2101, 1725, 2410, 729, 2560, 2820, - 1457, 1460, 1458, 1459, 2559, 2519, 2420, 2421, 2422, 2423, - 3895, 1725, 2406, 2415, 103, 2416, 2417, 2418, 2419, 2518, - 2405, 1038, 3456, 1725, 1088, 1460, 2355, 2334, 2022, 1988, - 1950, 2426, 2427, 2428, 2429, 2387, 1942, 1932, 1460, 1928, - 1924, 2346, 2321, 1460, 2339, 3337, 2340, 3449, 1725, 2348, - 2440, 1923, 3446, 1725, 2839, 1922, 1740, 2409, 3444, 1725, - 2846, 1460, 1457, 1725, 1458, 1459, 2486, 3406, 1725, 1460, - 2446, 1256, 2818, 2368, 1457, 3186, 1458, 1459, 2839, 2392, - 2393, 1460, 2391, 1830, 1829, 2576, 3404, 1725, 1460, 2408, - 2407, 1072, 3156, 1073, 1773, 1772, 2483, 3484, 3999, 1457, - 2498, 1458, 1459, 3482, 1457, 3971, 1458, 1459, 2823, 2456, - 1457, 1725, 1458, 1459, 1457, 2847, 1458, 1459, 2868, 1457, - 2847, 1458, 1459, 3400, 1725, 1128, 2847, 109, 3397, 1725, - 1460, 3435, 2430, 2432, 2433, 1868, 2441, 2437, 1457, 2491, - 1458, 1459, 2494, 2459, 2495, 2455, 3395, 1725, 2467, 2511, - 3482, 1460, 3221, 3129, 3393, 1725, 165, 2394, 2497, 2729, - 2634, 1460, 1457, 177, 1458, 1459, 3391, 1725, 1127, 2490, - 2493, 2441, 2489, 3389, 1725, 1457, 2633, 1458, 1459, 2497, - 1457, 2869, 1458, 1459, 2512, 2515, 1460, 3531, 2480, 2516, - 2517, 2871, 1460, 2363, 1729, 2324, 1456, 2101, 1457, 1460, - 1458, 1459, 2044, 2028, 185, 1974, 1457, 1460, 1458, 1459, - 2868, 1460, 1726, 1728, 1760, 3387, 1725, 1460, 1457, 2581, - 1458, 1459, 1460, 1903, 1110, 1457, 1460, 1458, 1459, 1109, - 95, 1460, 4071, 2522, 4014, 1460, 3385, 1725, 3532, 3533, - 3534, 3859, 1460, 1512, 1027, 1512, 3867, 166, 171, 168, - 174, 175, 176, 178, 180, 181, 182, 183, 1732, 3825, - 3687, 2593, 3547, 184, 186, 187, 188, 1457, 1460, 1458, - 1459, 3383, 1725, 2869, 1904, 1905, 1906, 3381, 1725, 2553, - 3544, 3525, 2300, 2576, 3379, 1725, 3348, 3347, 1457, 2299, - 1458, 1459, 3377, 1725, 1832, 3246, 3375, 1725, 1457, 1460, - 1458, 1459, 3373, 1725, 1460, 2596, 2903, 3371, 1725, 2439, - 1460, 3369, 1725, 3293, 3248, 1200, 3367, 1725, 3244, 2902, - 3353, 1725, 95, 1457, 2937, 1458, 1459, 3335, 1725, 1457, - 2568, 1458, 1459, 1460, 2436, 2431, 1457, 1460, 1458, 1459, - 2425, 1460, 2424, 2599, 1457, 2574, 1458, 1459, 1457, 1957, - 1458, 1459, 3535, 2598, 1457, 1863, 1458, 1459, 1859, 1457, - 1828, 1458, 1459, 1457, 121, 1458, 1459, 2903, 1457, 2585, - 1458, 1459, 1457, 3297, 1458, 1459, 3860, 2068, 2454, 1457, - 1460, 1458, 1459, 2337, 2794, 1725, 1460, 3494, 3495, 2792, - 1725, 4127, 1460, 2024, 4125, 2767, 1725, 2587, 1460, 3536, - 3537, 3538, 4099, 3979, 1460, 1457, 3900, 1458, 1459, 3497, - 1460, 2365, 2366, 3240, 1460, 2597, 3239, 3238, 2744, 1725, - 3156, 2916, 2736, 1725, 1460, 2554, 2727, 1725, 3178, 1460, - 3500, 667, 2609, 3179, 3499, 2586, 1457, 2588, 1458, 1459, - 3175, 1457, 1460, 1458, 1459, 1899, 2591, 1457, 2592, 1458, - 1459, 3176, 3174, 2562, 2563, 2025, 3177, 3975, 2565, 2773, - 3861, 3653, 1460, 3652, 2594, 2725, 1725, 2566, 2354, 2343, - 1457, 1460, 1458, 1459, 1457, 1040, 1458, 1459, 1457, 1737, - 1458, 1459, 2643, 2712, 1725, 1460, 3488, 3134, 3133, 2710, - 1725, 2805, 1900, 1901, 1902, 2708, 1725, 3939, 2098, 2706, - 1725, 3666, 3668, 2096, 1460, 728, 3478, 3143, 1460, 3502, - 1026, 3651, 3146, 3148, 3451, 2808, 1973, 1457, 1460, 1458, - 1459, 3149, 3475, 1457, 1041, 1458, 1459, 2704, 1725, 1457, - 3474, 1458, 1459, 2844, 2845, 1457, 1010, 1458, 1459, 3217, - 2806, 1457, 2381, 1458, 1459, 1026, 2864, 1457, 3955, 1458, - 1459, 1457, 2886, 1458, 1459, 1166, 2702, 1725, 2809, 1043, - 2811, 1457, 2907, 1458, 1459, 42, 1457, 1044, 1458, 1459, - 2700, 1725, 2067, 2843, 2861, 2824, 1165, 2863, 1460, 1457, - 3313, 1458, 1459, 1460, 3180, 101, 2856, 2857, 1460, 2698, - 1725, 2144, 1460, 2696, 1725, 2902, 102, 2985, 1460, 1457, - 1424, 1458, 1459, 2694, 1725, 2145, 101, 1460, 1457, 2943, - 1458, 1459, 3480, 103, 129, 1697, 2796, 102, 2833, 4141, - 1460, 103, 1457, 3236, 1458, 1459, 2852, 2855, 2856, 2857, - 2853, 2862, 2854, 2858, 2365, 2366, 2889, 2891, 2816, 1691, - 2557, 1457, 4050, 1458, 1459, 1457, 3956, 1458, 1459, 3855, - 3216, 2860, 2882, 2836, 1460, 1457, 2821, 1458, 1459, 2941, - 2349, 2546, 2866, 2692, 1725, 1460, 1051, 1052, 2690, 1725, - 1460, 3132, 2545, 2688, 1725, 1460, 2870, 2686, 1725, 3131, - 3458, 2873, 2544, 2684, 1725, 2446, 2580, 1460, 2543, 2880, - 2883, 1460, 2682, 1725, 2542, 1460, 108, 2541, 2952, 3924, - 1460, 110, 2905, 3923, 2139, 2680, 1725, 2908, 2909, 2140, - 2894, 1460, 109, 109, 108, 1457, 3903, 1458, 1459, 3674, - 1457, 1460, 1458, 1459, 3672, 1457, 2904, 1458, 1459, 1457, - 1742, 1458, 1459, 3671, 3664, 1457, 2912, 1458, 1459, 2913, - 3832, 2917, 2918, 2919, 1457, 2200, 1458, 1459, 2949, 3545, - 2678, 1725, 3479, 1460, 1851, 2673, 1725, 1457, 1460, 1458, - 1459, 3549, 2995, 2996, 1460, 3477, 3249, 2938, 2939, 2481, - 3663, 1460, 2669, 1725, 1846, 3468, 2667, 1725, 2928, 1460, - 2660, 1725, 1050, 2839, 2948, 2658, 1725, 110, 4129, 4128, - 4129, 1457, 1460, 1458, 1459, 3637, 1741, 1460, 109, 2820, - 3035, 1460, 1457, 2635, 1458, 1459, 3447, 1457, 2335, 1458, - 1459, 1460, 1457, 4128, 1458, 1459, 2974, 3012, 2993, 1754, - 1746, 1460, 114, 115, 1457, 2283, 1458, 1459, 1457, 2977, - 1458, 1459, 1457, 3945, 1458, 1459, 3511, 1457, 3412, 1458, - 1459, 110, 2041, 3408, 2039, 10, 3, 9, 1457, 3345, - 1458, 1459, 109, 97, 108, 2315, 3344, 1460, 1457, 1, - 1458, 1459, 1460, 103, 3341, 2040, 1018, 1460, 8, 3013, - 1427, 1426, 3515, 1726, 2322, 4060, 2950, 3339, 683, 2325, - 1695, 1692, 4100, 2898, 1460, 4056, 2790, 4057, 1943, 1933, - 1457, 3577, 1458, 1459, 2251, 1457, 2789, 1458, 1459, 3856, - 3252, 1457, 2487, 1458, 1459, 3543, 2785, 2444, 1457, 2347, - 1458, 1459, 1118, 154, 2403, 2994, 1457, 3037, 1458, 1459, - 2404, 4027, 118, 3093, 1076, 117, 1121, 2983, 1229, 1457, - 2984, 1458, 1459, 2482, 1457, 3567, 1458, 1459, 1457, 2887, - 1458, 1459, 2784, 2412, 1460, 1779, 1777, 2783, 1457, 1778, - 1458, 1459, 2782, 1460, 1776, 1781, 1780, 2997, 1457, 3321, - 1458, 1459, 2636, 3413, 2032, 3014, 718, 3100, 2859, 2781, - 712, 192, 1768, 1747, 3427, 3102, 3111, 1160, 673, 1460, - 3225, 2381, 2520, 679, 1460, 1509, 3028, 2023, 2288, 3130, - 2288, 2286, 3073, 2286, 1457, 2874, 1458, 1459, 1070, 1457, - 1460, 1458, 1459, 3163, 1457, 87, 1458, 1459, 2381, 2381, - 2381, 2381, 2381, 2383, 1460, 2458, 3083, 3084, 3085, 3086, - 3087, 1457, 1062, 1458, 1459, 2336, 2810, 1069, 2381, 2780, - 3833, 2381, 3101, 3164, 3103, 3472, 3142, 1029, 2771, 3111, - 2383, 2383, 2383, 2383, 2383, 3168, 1460, 3144, 2826, 3147, - 3185, 1984, 3140, 3938, 3665, 4012, 1460, 2884, 1743, 3434, - 2383, 2608, 3110, 2383, 2770, 3122, 2134, 3128, 1499, 2769, - 3138, 3123, 3125, 3127, 2380, 3632, 1460, 2059, 741, 3137, - 3135, 1457, 1460, 1458, 1459, 2768, 1460, 3150, 3151, 740, - 1457, 738, 1458, 1459, 2812, 3269, 2840, 1463, 947, 2765, - 2800, 1755, 1030, 3169, 1460, 3277, 3172, 3167, 3170, 3171, - 1031, 3173, 3181, 104, 105, 1460, 1457, 3187, 1458, 1459, - 3188, 1457, 3189, 1458, 1459, 2851, 2849, 2848, 2555, 3195, - 2388, 2760, 3496, 1460, 3492, 4052, 2382, 1457, 3136, 1458, - 1459, 2753, 3226, 2378, 3228, 2819, 3227, 898, 897, 750, - 742, 1457, 1460, 1458, 1459, 732, 960, 3229, 3230, 896, - 1460, 2752, 895, 3279, 1460, 3280, 2958, 2751, 3250, 3294, - 3281, 2750, 2960, 2885, 3153, 3278, 3290, 2446, 3271, 3282, - 1441, 1460, 1714, 1457, 3288, 1458, 1459, 1717, 2344, 2749, - 1460, 1089, 3318, 1457, 3962, 1458, 1459, 2579, 3342, 1713, - 2748, 3969, 3260, 3561, 3159, 3241, 2934, 2474, 69, 3159, - 3309, 3308, 3306, 1457, 46, 1458, 1459, 1460, 2747, 1457, - 3316, 1458, 1459, 1457, 1460, 1458, 1459, 3933, 3326, 4000, - 890, 887, 3323, 3324, 3272, 3325, 3634, 2746, 3327, 3635, - 3329, 1457, 3331, 1458, 1459, 2745, 3636, 3096, 3097, 2739, - 3982, 3983, 1457, 886, 1458, 1459, 3984, 2852, 2855, 2856, - 2857, 2853, 2189, 2854, 2858, 1512, 2738, 3494, 3495, 1512, - 1457, 1437, 1458, 1459, 1434, 2737, 4073, 2034, 96, 36, - 35, 34, 33, 32, 2595, 3459, 26, 3461, 2600, 1457, - 25, 1458, 1459, 24, 23, 3251, 22, 1457, 3429, 1458, - 1459, 1457, 2734, 1458, 1459, 3433, 29, 19, 21, 2733, - 20, 2603, 18, 2604, 3263, 4095, 4140, 3317, 1457, 2612, - 1458, 1459, 123, 2614, 2615, 55, 52, 1457, 50, 1458, - 1459, 131, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, - 2629, 2630, 130, 2632, 3162, 53, 49, 2381, 1203, 3460, - 47, 3462, 3464, 31, 1457, 30, 1458, 1459, 17, 16, - 3509, 1457, 3469, 1458, 1459, 15, 2638, 2639, 2640, 2641, - 2642, 3476, 2644, 14, 13, 12, 2646, 11, 3481, 2383, - 2651, 2652, 7, 2653, 6, 39, 2656, 2657, 2659, 2661, - 2662, 2663, 2664, 2665, 2666, 2668, 2670, 2671, 2672, 2674, - 3498, 2676, 2677, 2679, 2681, 2683, 2685, 2687, 2689, 2691, - 2693, 2695, 2697, 2699, 2701, 2703, 2705, 2707, 2709, 2711, - 2713, 2714, 2715, 730, 2717, 3281, 2719, 3501, 2721, 2722, - 3278, 2724, 2726, 2728, 3282, 1692, 3504, 2731, 3526, 3510, - 3528, 2735, 3503, 3311, 3312, 2740, 2741, 2742, 2743, 38, - 37, 28, 3571, 3572, 1460, 27, 3466, 40, 2754, 2755, - 2756, 2757, 2758, 2759, 3520, 3521, 2763, 2764, 3436, 4, - 3438, 3439, 3440, 2921, 2766, 2476, 0, 0, 0, 2772, - 2194, 0, 0, 0, 2775, 2776, 2777, 2778, 2779, 3491, - 1460, 0, 0, 0, 0, 2786, 2787, 1460, 2788, 0, - 0, 2791, 2793, 2347, 1460, 2795, 0, 0, 3505, 3506, - 1723, 1719, 0, 1460, 0, 2807, 0, 3554, 1460, 0, - 0, 3558, 3559, 3560, 0, 1720, 0, 1460, 1723, 1719, - 0, 0, 1049, 0, 3573, 1055, 1055, 1460, 0, 2732, - 0, 0, 0, 1720, 3589, 3550, 3551, 0, 0, 0, - 2341, 2342, 1722, 1460, 1721, 0, 0, 0, 0, 0, - 2277, 2278, 2279, 2280, 2281, 0, 1460, 0, 1715, 1716, - 1722, 1460, 1721, 0, 0, 2730, 1460, 2302, 0, 0, - 2305, 2306, 2723, 0, 0, 0, 0, 1460, 0, 2720, - 0, 1457, 0, 1458, 1459, 1460, 0, 0, 2718, 0, - 0, 0, 0, 2716, 0, 0, 0, 3640, 0, 3641, - 3642, 3643, 2675, 0, 0, 0, 2323, 0, 3650, 0, - 0, 3657, 2655, 3659, 0, 0, 0, 1457, 0, 1458, - 1459, 0, 0, 3630, 1457, 0, 1458, 1459, 2654, 0, - 0, 1457, 0, 1458, 1459, 3163, 0, 87, 3660, 3163, - 1457, 2650, 1458, 1459, 0, 1457, 2648, 1458, 1459, 0, - 0, 2613, 0, 0, 1457, 2098, 1458, 1459, 0, 0, - 2096, 0, 2607, 0, 1457, 0, 1458, 1459, 3594, 42, - 2602, 0, 3689, 3661, 0, 0, 0, 3681, 3670, 3669, - 1457, 0, 1458, 1459, 0, 0, 0, 3677, 3679, 0, - 0, 0, 0, 1457, 0, 1458, 1459, 0, 1457, 0, - 1458, 1459, 0, 1457, 3839, 1458, 1459, 0, 0, 0, - 0, 0, 0, 3693, 1457, 0, 1458, 1459, 0, 0, - 0, 0, 1457, 0, 1458, 1459, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3831, 3830, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3846, 0, - 0, 0, 0, 3851, 3850, 0, 0, 0, 3858, 0, - 0, 0, 0, 0, 3829, 0, 3897, 0, 0, 3898, - 0, 0, 2098, 3683, 0, 0, 0, 2096, 3023, 3024, - 3025, 3026, 3027, 3658, 0, 0, 0, 0, 0, 3901, - 3841, 3842, 3843, 0, 0, 0, 0, 0, 3032, 0, - 0, 0, 0, 0, 3690, 3691, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3163, 0, 3904, 3834, 3159, 3685, 3907, 0, 0, - 0, 0, 0, 0, 0, 1530, 1531, 1532, 1533, 1534, - 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, - 1545, 1546, 1547, 1548, 1550, 1551, 1552, 1553, 1554, 1555, - 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, - 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, - 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, - 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, - 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, - 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, - 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, - 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, - 1637, 1638, 1639, 1640, 1641, 1642, 1648, 1649, 1650, 1651, - 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, - 1675, 1676, 1677, 1678, 3949, 3946, 3162, 3902, 3931, 3930, - 3162, 0, 3921, 0, 0, 0, 0, 0, 3963, 3927, - 0, 3929, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, - 0, 3948, 0, 0, 0, 0, 3165, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3183, 3952, 0, 0, 42, 3965, - 0, 0, 0, 0, 3968, 3838, 3970, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2616, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2631, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3988, 0, 0, - 3989, 0, 4009, 0, 0, 0, 0, 87, 0, 0, - 0, 0, 3954, 0, 0, 0, 0, 0, 0, 0, - 0, 3998, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4015, 4005, 0, 0, 0, 0, 42, - 0, 0, 0, 4040, 0, 1461, 3973, 4013, 4018, 4026, - 4023, 4020, 0, 4019, 4017, 0, 4022, 4021, 0, 0, - 0, 0, 3315, 3858, 4029, 0, 0, 0, 0, 0, - 0, 4048, 3162, 0, 0, 0, 1518, 4069, 4059, 4064, - 0, 0, 0, 4051, 3332, 3333, 0, 3334, 3336, 3338, - 0, 0, 0, 0, 0, 0, 4040, 4077, 0, 0, - 4079, 4090, 0, 3346, 0, 0, 0, 0, 3350, 3351, - 3352, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, - 3363, 3364, 3365, 3366, 3368, 3370, 3372, 3374, 3376, 3378, - 3380, 3382, 3384, 3386, 3388, 3390, 3392, 3394, 3396, 3398, - 3399, 3401, 3402, 3403, 3405, 1984, 4113, 3407, 2098, 3409, - 3410, 3411, 4109, 2096, 3415, 3416, 3417, 3418, 3419, 3420, - 3421, 3422, 3423, 3424, 3425, 4123, 4126, 4122, 4124, 4120, - 4119, 4040, 4110, 3432, 4094, 4134, 4089, 3437, 4010, 4142, - 0, 3441, 3442, 0, 3443, 3445, 0, 3448, 3450, 4148, - 3452, 3453, 3454, 3455, 4150, 0, 0, 0, 3159, 0, - 3463, 0, 0, 0, 0, 0, 2098, 0, 0, 4159, - 4160, 2096, 0, 3898, 4158, 0, 0, 0, 0, 0, - 0, 0, 0, 4157, 0, 0, 0, 0, 0, 3961, - 0, 0, 0, 0, 0, 3485, 3486, 0, 0, 3490, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4107, 0, - 0, 0, 0, 0, 4093, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1796, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4085, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1008, 0, 2290, 0, 0, 1009, 0, 0, - 0, 0, 0, 0, 0, 3565, 0, 2097, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1745, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3584, 0, 0, 3588, 0, 0, 0, 0, 0, 0, - 0, 0, 1833, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 943, 0, 3015, 0, 0, 0, 0, - 1784, 3600, 966, 967, 968, 969, 970, 971, 972, 973, - 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, - 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, - 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, - 1004, 1005, 1006, 1007, 0, 0, 0, 0, 0, 195, - 0, 0, 195, 0, 0, 0, 716, 0, 0, 0, - 0, 722, 0, 0, 0, 3623, 0, 0, 0, 0, - 0, 0, 195, 0, 0, 0, 0, 0, 3631, 0, - 0, 0, 0, 0, 1797, 0, 3638, 0, 195, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1989, 0, 0, 722, 195, 722, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3075, 0, 3077, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3088, 3089, 3090, 3091, 1810, 1813, 1814, - 1815, 1816, 1817, 1818, 0, 1819, 1820, 1822, 1823, 1821, - 1824, 1825, 1798, 1799, 1800, 1801, 1782, 1783, 1811, 0, - 1785, 0, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, - 1794, 0, 0, 1795, 1802, 1803, 1804, 1805, 0, 1806, - 1807, 1808, 1809, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3847, 0, 0, 0, 0, 0, 0, - 0, 0, 3854, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3864, 3865, 3866, 0, 3868, 0, 3869, 3870, - 0, 0, 0, 3873, 3874, 3875, 3876, 3877, 3878, 3879, - 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, - 3890, 3891, 3892, 3893, 3894, 0, 3896, 3899, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3908, 3909, 3910, 3911, 3912, 3914, 3915, 3917, - 3919, 3920, 3922, 0, 0, 0, 3926, 0, 0, 0, - 3928, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3953, 0, 0, 0, 0, 0, - 2054, 2055, 2056, 2057, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2065, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812, - 2104, 2105, 0, 0, 0, 0, 2128, 0, 0, 2132, - 2133, 0, 0, 0, 2138, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2150, - 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 0, - 2161, 0, 0, 0, 2183, 2184, 2185, 2186, 2187, 2188, - 2190, 0, 2195, 0, 2197, 2198, 2199, 0, 2201, 2202, - 2203, 0, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, - 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, - 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, - 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, - 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2254, 2255, - 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, - 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, - 2276, 0, 0, 0, 0, 0, 2282, 0, 2284, 0, - 2291, 2292, 2293, 2294, 2295, 2296, 0, 0, 0, 3978, - 0, 0, 0, 0, 0, 0, 1692, 0, 0, 2307, - 2308, 2309, 2310, 2311, 2312, 2313, 2314, 0, 2316, 2317, - 2318, 2319, 2320, 3993, 0, 0, 0, 0, 0, 3996, - 0, 3997, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4008, 0, 0, 0, 0, 0, 1055, 0, - 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4034, 4035, - 0, 0, 0, 0, 0, 2361, 2362, 129, 0, 151, - 0, 0, 4042, 4044, 4046, 0, 0, 0, 0, 0, - 172, 0, 0, 0, 0, 0, 195, 0, 195, 0, - 0, 2400, 0, 0, 0, 0, 0, 0, 4072, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, - 0, 162, 0, 0, 0, 0, 0, 150, 0, 0, - 2927, 0, 0, 0, 0, 722, 0, 722, 722, 0, - 0, 0, 0, 129, 4091, 151, 169, 0, 0, 170, - 0, 0, 0, 0, 0, 0, 172, 722, 195, 0, - 0, 0, 2442, 0, 0, 0, 0, 0, 138, 139, - 161, 160, 189, 0, 0, 0, 0, 0, 4114, 4116, - 4118, 0, 0, 0, 0, 0, 1504, 162, 0, 0, - 0, 0, 0, 150, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4139, 169, 0, 0, 170, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4151, - 4152, 0, 0, 0, 1854, 1855, 161, 160, 189, 0, - 0, 3621, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 155, 136, 158, 143, 135, 0, 156, - 157, 0, 0, 0, 0, 0, 173, 0, 0, 0, - 0, 0, 0, 0, 0, 179, 144, 0, 0, 0, - 86, 44, 45, 88, 0, 0, 0, 0, 0, 0, - 147, 145, 140, 141, 142, 146, 0, 0, 0, 0, - 92, 0, 137, 0, 48, 76, 77, 0, 74, 78, - 0, 148, 0, 0, 0, 0, 0, 75, 0, 155, - 1856, 158, 0, 1853, 0, 156, 157, 0, 0, 0, - 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, - 0, 179, 0, 0, 0, 0, 62, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 95, 0, - 0, 0, 0, 0, 0, 0, 0, 1504, 0, 0, + 2124, 2125, 2117, 2118, 2120, 3546, 1457, 1941, 1458, 1459, + 2582, 2583, 2584, 1840, 3536, 3255, 1102, 128, 1101, 3243, + 1100, 1725, 2290, 1953, 2897, 3224, 1479, 1480, 1481, 1482, + 1483, 1484, 1486, 1485, 1487, 1488, 711, 3227, 2896, 1460, + 961, 962, 963, 1997, 2895, 4173, 1951, 4134, 1725, 2457, + 1955, 1266, 1266, 4132, 1725, 1993, 1994, 1939, 1938, 1460, + 2060, 2062, 2063, 1460, 1937, 87, 1927, 2019, 87, 1998, + 1921, 1940, 1457, 1918, 1458, 1459, 2005, 2006, 2007, 1917, + 1457, 1916, 1458, 1459, 1887, 2061, 3307, 2018, 1477, 1704, + 2991, 1425, 1449, 1446, 1447, 1448, 1453, 1455, 1452, 1457, + 1451, 1458, 1459, 3530, 711, 1457, 1761, 1458, 1459, 4122, + 1445, 3984, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1486, + 1485, 1487, 1488, 3983, 4064, 1725, 3499, 2879, 711, 1738, + 42, 1477, 3961, 42, 2473, 2472, 2098, 2098, 2096, 2096, + 2099, 1456, 2471, 2470, 4062, 1725, 2823, 4149, 4060, 1725, + 3501, 2469, 2468, 2649, 3213, 1478, 1479, 1480, 1481, 1482, + 1483, 1484, 1486, 1485, 1487, 1488, 4109, 1725, 1460, 2064, + 1692, 3960, 2647, 3959, 101, 1739, 1457, 1995, 1458, 1459, + 1460, 103, 1456, 1725, 1999, 102, 2001, 2002, 2003, 2004, + 2182, 2597, 1477, 2008, 3857, 1473, 1457, 1474, 1458, 1459, + 1457, 3841, 1458, 1459, 1477, 2020, 2589, 3840, 1690, 1456, + 1725, 1475, 1489, 1490, 1472, 2194, 1478, 1479, 1480, 1481, + 1482, 1483, 1484, 1486, 1485, 1487, 1488, 1460, 1478, 1479, + 1480, 1481, 1482, 1483, 1484, 1486, 1485, 1487, 1488, 1460, + 1725, 1725, 85, 3692, 1691, 85, 3690, 2068, 1460, 2043, + 2823, 4049, 3977, 1460, 2026, 2027, 2131, 2823, 4028, 1477, + 2823, 4024, 3889, 1460, 3612, 3935, 1725, 2074, 1460, 2076, + 2077, 2078, 2079, 2080, 2081, 2083, 2085, 2086, 2087, 2088, + 2089, 2090, 2073, 1478, 1479, 1480, 1481, 1482, 1483, 1484, + 1486, 1485, 1487, 1488, 1689, 2277, 2278, 2279, 2280, 2281, + 3942, 1725, 3888, 2075, 2300, 1457, 1688, 1458, 1459, 2204, + 2298, 2102, 2302, 1725, 3845, 2305, 2306, 1457, 1687, 1458, + 1459, 3583, 3974, 3844, 3933, 1725, 2299, 1502, 1460, 2146, + 2147, 2148, 2149, 3930, 1725, 1460, 3544, 2286, 3912, 1725, + 3865, 1725, 3591, 2160, 1460, 2137, 101, 2288, 3473, 1725, + 2181, 2323, 2196, 3466, 1725, 2290, 3529, 102, 3317, 2287, + 1460, 110, 110, 3314, 1457, 3246, 1458, 1459, 2289, 2823, + 3853, 2933, 109, 109, 108, 108, 1457, 1460, 1458, 1459, + 3349, 3245, 957, 103, 1460, 1457, 2906, 1458, 1459, 2381, + 1457, 2893, 1458, 1459, 2297, 3217, 1686, 2303, 2304, 3221, + 1457, 1679, 1458, 1459, 2300, 1457, 3220, 1458, 1459, 2820, + 2298, 1460, 1725, 3463, 1725, 3583, 1725, 104, 105, 2560, + 3461, 1725, 2823, 3581, 103, 2411, 2370, 2497, 1725, 3423, + 1725, 3504, 1725, 2911, 1460, 2559, 2365, 2366, 104, 105, + 3222, 2333, 1725, 1725, 103, 3218, 1725, 2067, 2345, 1460, + 3219, 2729, 1725, 1460, 2383, 3236, 3235, 2410, 1460, 3233, + 3234, 1088, 3421, 1725, 95, 1457, 2519, 1458, 1459, 3417, + 1725, 4016, 1457, 1460, 1458, 1459, 2518, 2420, 2421, 2422, + 2423, 1457, 2818, 1458, 1459, 2606, 2355, 2415, 1038, 2416, + 2417, 2418, 2419, 2334, 1088, 2022, 2406, 1457, 2405, 1458, + 1459, 3231, 3232, 1725, 2387, 2426, 2427, 2428, 2429, 2321, + 3231, 3230, 2868, 2339, 1457, 2340, 1458, 1459, 2346, 3414, + 1725, 1457, 1988, 1458, 1459, 2348, 2847, 1725, 2576, 2955, + 2440, 2409, 1830, 2936, 3412, 1725, 2486, 1950, 3410, 1725, + 1460, 2868, 2446, 3408, 1725, 2368, 2929, 2930, 1457, 1942, + 1458, 1459, 2392, 2393, 2391, 1932, 1460, 1928, 2605, 1072, + 2839, 2408, 2407, 1924, 1460, 1923, 1073, 1922, 1460, 2823, + 2822, 1457, 1740, 1458, 1459, 2869, 2101, 1725, 3988, 1460, + 2483, 2456, 1830, 1829, 1460, 2871, 1457, 2498, 1458, 1459, + 1457, 1256, 1458, 1459, 2823, 1457, 2846, 1458, 1459, 1773, + 1772, 2839, 109, 2441, 2869, 2430, 2432, 2433, 2437, 3168, + 1457, 2847, 1458, 1459, 2576, 2459, 2491, 2455, 3198, 2494, + 3499, 2495, 3452, 2467, 1460, 3406, 1725, 3233, 2576, 3141, + 2394, 2729, 2847, 2511, 2634, 2490, 1127, 2633, 2441, 2489, + 2493, 3404, 1725, 2497, 2480, 2497, 1128, 1460, 2363, 3402, + 1725, 2847, 1460, 3400, 1725, 1729, 1868, 2512, 2324, 1460, + 2101, 2044, 190, 2515, 3398, 1725, 1460, 2516, 2517, 3396, + 1725, 1456, 2028, 3499, 3548, 1974, 1760, 1457, 1027, 1458, + 1459, 1726, 1728, 1460, 1110, 1109, 129, 1460, 151, 2581, + 1903, 4088, 4031, 1457, 3876, 1458, 1459, 1732, 3842, 172, + 3704, 1457, 2522, 1458, 1459, 1457, 3564, 1458, 1459, 3394, + 1725, 3561, 3542, 1512, 3365, 1512, 1457, 3364, 1458, 1459, + 1832, 1457, 1460, 1458, 1459, 3549, 3550, 3551, 1460, 3309, + 162, 2593, 3392, 1725, 2439, 3305, 150, 3390, 1725, 3260, + 3256, 1904, 1905, 1906, 3388, 1725, 2937, 2436, 2431, 2553, + 3258, 3386, 1725, 1460, 2300, 169, 95, 1460, 170, 2425, + 2596, 1457, 2424, 1458, 1459, 1957, 1863, 2902, 3384, 1725, + 1460, 2903, 3370, 1725, 1859, 1828, 2299, 138, 139, 161, + 160, 189, 121, 1200, 1457, 3877, 1458, 1459, 2454, 1457, + 2337, 1458, 1459, 1460, 3511, 3512, 1457, 2568, 1458, 1459, + 4144, 2616, 667, 1457, 4142, 1458, 1459, 3347, 1725, 2024, + 3517, 2574, 1460, 2794, 1725, 2903, 4116, 3996, 2631, 3917, + 1457, 3514, 1458, 1459, 1457, 3252, 1458, 1459, 1460, 3251, + 3250, 3516, 1460, 3168, 2916, 2554, 2585, 3187, 2792, 1725, + 3186, 3190, 2767, 1725, 1737, 2068, 3191, 3188, 3192, 1460, + 2856, 2857, 3189, 1460, 3552, 2744, 1725, 1040, 3992, 1457, + 1460, 1458, 1459, 3878, 2586, 1457, 2588, 1458, 1459, 2354, + 2343, 2025, 3158, 3160, 1460, 2591, 728, 2592, 2736, 1725, + 1460, 3161, 155, 136, 158, 143, 135, 1460, 156, 157, + 1457, 1460, 1458, 1459, 1457, 173, 1458, 1459, 4123, 2609, + 2587, 3553, 3554, 3555, 179, 144, 1041, 1457, 3685, 1458, + 1459, 3505, 3146, 2727, 1725, 3956, 1460, 2725, 1725, 147, + 145, 140, 141, 142, 146, 1460, 3145, 2594, 3683, 2773, + 1457, 137, 1458, 1459, 2712, 1725, 1460, 3495, 2710, 1725, + 148, 1973, 3492, 2562, 2563, 2708, 1725, 1899, 2565, 1457, + 3491, 1458, 1459, 2643, 3155, 2761, 1460, 2566, 3229, 2706, + 1725, 2805, 1460, 1010, 2886, 1457, 3972, 1458, 1459, 1457, + 1043, 1458, 1459, 3849, 2907, 1460, 2704, 1725, 1044, 2098, + 1026, 2096, 2808, 3670, 1166, 3669, 1457, 1165, 1458, 1459, + 1457, 3325, 1458, 1459, 1900, 1901, 1902, 1457, 1460, 1458, + 1459, 2702, 1725, 2844, 2845, 2902, 1460, 2806, 2985, 2144, + 3884, 1457, 2381, 1458, 1459, 1026, 2864, 1457, 1424, 1458, + 1459, 2700, 1725, 2145, 1457, 101, 1458, 1459, 1457, 164, + 1458, 1459, 103, 3668, 103, 1460, 102, 2809, 101, 2811, + 2943, 2698, 1725, 129, 3497, 2067, 2824, 2696, 1725, 102, + 2843, 2365, 2366, 1457, 4158, 1458, 1459, 3248, 2557, 4067, + 2694, 1725, 1457, 1460, 1458, 1459, 3973, 1460, 42, 3872, + 3228, 2860, 2349, 1457, 2546, 1458, 1459, 2861, 1051, 1052, + 2863, 1460, 2862, 2692, 1725, 2545, 1697, 2796, 3475, 3144, + 2833, 2690, 1725, 1457, 2544, 1458, 1459, 3143, 2580, 1457, + 2543, 1458, 1459, 1460, 2542, 2816, 2541, 2889, 2891, 108, + 3941, 1460, 1457, 1691, 1458, 1459, 3940, 3920, 3691, 1460, + 2688, 1725, 3689, 2836, 2821, 159, 1460, 3688, 109, 2941, + 2882, 2866, 3681, 1460, 3562, 1457, 3680, 1458, 1459, 1460, + 3496, 3494, 3261, 1457, 1460, 1458, 1459, 2870, 2686, 1725, + 110, 2873, 2684, 1725, 2481, 1846, 3485, 2446, 110, 2880, + 1050, 109, 1460, 108, 2883, 2952, 2682, 1725, 1460, 109, + 2839, 2905, 1457, 2139, 1458, 1459, 2908, 2909, 2140, 1460, + 2894, 1742, 3654, 1460, 4146, 4145, 4146, 2820, 2680, 1725, + 3047, 3962, 2635, 2904, 2335, 4145, 2678, 1725, 1754, 1746, + 1457, 1460, 1458, 1459, 1457, 3566, 1458, 1459, 2912, 114, + 115, 2673, 1725, 2913, 2200, 2917, 2918, 2919, 1457, 2898, + 1458, 1459, 3528, 2949, 2669, 1725, 3, 1851, 2041, 2667, + 1725, 10, 2995, 2996, 152, 2039, 2040, 153, 9, 8, + 1457, 97, 1458, 1459, 2938, 2939, 1, 1741, 1457, 2928, + 1458, 1459, 1018, 2660, 1725, 1427, 1457, 2948, 1458, 1459, + 3015, 1426, 3532, 1457, 3519, 1458, 1459, 165, 2658, 1725, + 1457, 4077, 1458, 1459, 177, 683, 1457, 2325, 1458, 1459, + 1695, 1457, 4117, 1458, 1459, 1460, 3468, 3012, 2974, 4073, + 4074, 1943, 1933, 3594, 2283, 2993, 2251, 3873, 2977, 1457, + 1460, 1458, 1459, 3264, 1460, 1457, 2487, 1458, 1459, 3560, + 2444, 1118, 154, 2403, 2404, 185, 1457, 4044, 1458, 1459, + 1457, 1460, 1458, 1459, 2315, 3030, 3031, 3032, 3033, 3034, + 3035, 3036, 3037, 3038, 3039, 118, 1076, 117, 1457, 2950, + 1458, 1459, 1726, 2322, 1121, 1229, 2482, 3013, 2852, 2855, + 2856, 2857, 2853, 1460, 2854, 2858, 3584, 2887, 166, 171, + 168, 174, 175, 176, 178, 180, 181, 182, 183, 2412, + 3464, 1779, 1723, 1719, 184, 186, 187, 188, 2347, 2599, + 1460, 1777, 1778, 1776, 1781, 3429, 2997, 1720, 1780, 2598, + 3087, 1460, 3089, 3105, 3014, 3049, 3333, 2983, 1460, 2636, + 2984, 3430, 2032, 718, 2859, 712, 3425, 192, 3100, 3101, + 3102, 3103, 2341, 2342, 1722, 1768, 1721, 1460, 2994, 1747, + 3444, 1160, 1457, 673, 1458, 1459, 3237, 2520, 679, 1509, + 2023, 3123, 3142, 1460, 2874, 1070, 3112, 1457, 3362, 1458, + 1459, 1457, 3114, 1458, 1459, 1062, 2336, 1460, 2810, 1069, + 3850, 2381, 3176, 3040, 3489, 1723, 1719, 2286, 1457, 2286, + 1458, 1459, 3154, 1460, 3156, 3361, 2826, 2288, 3159, 2288, + 1720, 3152, 3085, 3175, 3955, 87, 3353, 3682, 2381, 2381, + 2381, 2381, 2381, 3351, 2458, 3095, 3096, 3097, 3098, 3099, + 1457, 4029, 1458, 1459, 3123, 1715, 1716, 1722, 2381, 1721, + 110, 2381, 2790, 2884, 1743, 1460, 3113, 3180, 3115, 3451, + 2608, 109, 2134, 108, 3197, 3122, 2383, 1457, 2789, 1458, + 1459, 3150, 103, 1984, 1460, 1499, 2380, 3649, 1457, 1460, + 1458, 1459, 2785, 2059, 3140, 1457, 1460, 1458, 1459, 3134, + 1029, 741, 740, 2383, 2383, 2383, 2383, 2383, 2784, 738, + 2812, 2840, 3149, 3147, 1457, 1460, 1458, 1459, 1463, 3162, + 3163, 1460, 947, 2383, 2800, 3281, 2383, 1755, 3199, 2851, + 1457, 3200, 1458, 1459, 3179, 3289, 1030, 2849, 3182, 3183, + 1031, 3185, 3181, 3193, 1457, 3184, 1458, 1459, 104, 105, + 2783, 3201, 3135, 3137, 3139, 2848, 3148, 1460, 2555, 2388, + 1457, 3513, 1458, 1459, 1460, 3509, 4069, 3207, 2382, 2782, + 2378, 2819, 898, 897, 2781, 750, 742, 3240, 3239, 732, + 3238, 2780, 960, 896, 895, 1460, 3241, 3242, 3291, 3292, + 2958, 3306, 2960, 1460, 2885, 3302, 3293, 3290, 3294, 1441, + 2771, 1714, 1457, 3165, 1458, 1459, 2770, 1717, 2344, 2446, + 1460, 3283, 3262, 1089, 3330, 3979, 2579, 1460, 3359, 3300, + 1713, 1457, 3986, 1458, 1459, 3272, 1457, 3171, 1458, 1459, + 3578, 3253, 3171, 1457, 1460, 1458, 1459, 2934, 2474, 69, + 46, 3950, 2769, 3318, 4017, 890, 3321, 3320, 887, 2768, + 3651, 1460, 1457, 3652, 1458, 1459, 3653, 3328, 1457, 3108, + 1458, 1459, 3109, 3999, 4000, 3284, 3335, 3336, 3338, 3337, + 2765, 886, 3339, 4001, 3341, 2189, 3343, 1437, 2760, 1434, + 4090, 2034, 96, 36, 35, 34, 33, 32, 26, 3354, + 3355, 3356, 3357, 3358, 1457, 2753, 1458, 1459, 25, 24, + 23, 1457, 2752, 1458, 1459, 22, 29, 1512, 19, 21, + 20, 1512, 18, 2595, 3275, 4112, 4157, 2600, 3263, 2751, + 123, 55, 1457, 52, 1458, 1459, 50, 3476, 131, 3478, + 1457, 130, 1458, 1459, 53, 49, 2750, 1203, 47, 3446, + 2603, 31, 2604, 30, 17, 16, 3450, 1457, 2612, 1458, + 1459, 15, 2614, 2615, 1457, 14, 1458, 1459, 13, 12, + 11, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, + 2630, 1457, 2632, 1458, 1459, 7, 6, 3174, 39, 38, + 3329, 37, 28, 27, 40, 4, 2921, 2476, 1457, 2381, + 1458, 1459, 0, 1692, 0, 2638, 2639, 2640, 2641, 2642, + 0, 2644, 3526, 3481, 0, 2646, 3493, 3486, 0, 2651, + 2652, 3477, 2653, 3479, 1460, 2656, 2657, 2659, 2661, 2662, + 2663, 2664, 2665, 2666, 2668, 2670, 2671, 2672, 2674, 3498, + 2676, 2677, 2679, 2681, 2683, 2685, 2687, 2689, 2691, 2693, + 2695, 2697, 2699, 2701, 2703, 2705, 2707, 2709, 2711, 2713, + 2714, 2715, 3518, 2717, 2383, 2719, 3515, 2721, 2722, 3521, + 2724, 2726, 2728, 3293, 3290, 3294, 2731, 730, 3527, 3453, + 2735, 3455, 3456, 3457, 2740, 2741, 2742, 2743, 3520, 0, + 0, 3543, 0, 3545, 0, 0, 3483, 2754, 2755, 2756, + 2757, 2758, 2759, 3323, 3324, 2763, 2764, 3588, 3589, 2749, + 0, 0, 0, 2766, 0, 3537, 3538, 1008, 2772, 2290, + 1460, 0, 1009, 2775, 2776, 2777, 2778, 2779, 0, 3508, + 0, 0, 2097, 0, 2786, 2787, 0, 2788, 0, 0, + 2791, 2793, 2347, 0, 2795, 0, 0, 0, 3522, 3523, + 0, 0, 0, 0, 2807, 0, 0, 0, 0, 0, + 0, 1457, 0, 1458, 1459, 0, 0, 0, 3571, 3590, + 1460, 0, 3575, 3576, 3577, 0, 1460, 0, 0, 0, + 1460, 0, 0, 0, 1460, 0, 1049, 0, 1460, 1055, + 1055, 0, 1460, 0, 0, 0, 0, 3606, 3567, 3568, + 0, 0, 1460, 0, 0, 2748, 0, 966, 967, 968, + 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, + 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, + 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, + 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 0, + 0, 0, 1460, 3638, 0, 2747, 0, 1457, 1460, 1458, + 1459, 2746, 1460, 0, 3657, 2745, 3658, 3659, 3660, 2739, + 0, 0, 0, 2738, 0, 3667, 0, 2737, 3674, 1460, + 3676, 0, 0, 0, 0, 0, 0, 2734, 1460, 0, + 3647, 0, 0, 0, 0, 1460, 0, 0, 0, 3677, + 0, 0, 3175, 0, 87, 0, 3175, 1457, 1460, 1458, + 1459, 0, 0, 1457, 0, 1458, 1459, 1457, 0, 1458, + 1459, 1457, 0, 1458, 1459, 1457, 0, 1458, 1459, 1457, + 0, 1458, 1459, 2098, 3611, 2096, 3706, 2733, 1460, 1457, + 3678, 1458, 1459, 2732, 1460, 3687, 3686, 2730, 1460, 0, + 0, 3698, 0, 0, 3694, 3696, 0, 0, 0, 0, + 0, 0, 0, 0, 2723, 0, 0, 1460, 0, 42, + 0, 3856, 0, 2720, 0, 0, 0, 0, 0, 0, + 2718, 3710, 0, 0, 0, 0, 0, 0, 0, 1457, + 0, 1458, 1459, 2716, 0, 1457, 0, 1458, 1459, 1457, + 0, 1458, 1459, 0, 0, 0, 0, 0, 0, 0, + 0, 3848, 0, 3847, 0, 0, 1457, 0, 1458, 1459, + 3875, 0, 3863, 2675, 3846, 1457, 0, 1458, 1459, 2655, + 3868, 3867, 1457, 2654, 1458, 1459, 0, 3025, 3026, 3027, + 3028, 3029, 0, 3914, 3915, 1457, 0, 1458, 1459, 0, + 0, 3700, 2650, 0, 0, 3675, 0, 3044, 0, 0, + 2098, 0, 2096, 3918, 0, 0, 3858, 3859, 3860, 3707, + 3708, 0, 0, 0, 0, 1457, 0, 1458, 1459, 0, + 0, 1457, 0, 1458, 1459, 1457, 0, 1458, 1459, 0, + 0, 0, 0, 0, 0, 3171, 0, 3921, 3175, 0, + 3702, 3924, 3851, 0, 1457, 0, 1458, 1459, 0, 3954, + 0, 0, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, + 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, + 1548, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, + 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, + 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, + 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, + 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, + 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, + 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, + 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1627, 1628, 1629, + 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, + 1640, 1641, 1642, 1648, 1649, 1650, 1651, 1665, 1666, 1667, + 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, + 1678, 3919, 3966, 3963, 3938, 3948, 3174, 3947, 0, 0, + 3174, 3944, 1460, 3946, 0, 3980, 0, 1460, 0, 0, + 0, 1460, 0, 0, 0, 3177, 0, 0, 2852, 2855, + 2856, 2857, 2853, 87, 2854, 2858, 0, 3965, 3511, 3512, + 0, 0, 0, 3195, 1692, 0, 0, 0, 0, 0, + 1460, 0, 0, 0, 0, 0, 0, 0, 0, 3969, + 0, 0, 0, 3982, 0, 0, 0, 0, 0, 3985, + 0, 0, 0, 0, 0, 3855, 0, 0, 0, 0, + 3987, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2648, 42, 0, + 3994, 0, 2613, 0, 0, 0, 2607, 0, 4004, 0, + 0, 4110, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1796, 0, 4005, 0, 0, 4006, 0, 0, 4026, + 0, 0, 0, 0, 87, 2602, 0, 0, 0, 0, + 3971, 0, 0, 0, 0, 0, 0, 0, 4015, 1457, + 0, 1458, 1459, 4022, 1457, 0, 1458, 1459, 1457, 0, + 1458, 1459, 0, 0, 0, 0, 4032, 0, 1692, 1461, + 0, 3327, 0, 4057, 3990, 3875, 4046, 4043, 4035, 4040, + 4037, 4030, 4036, 4034, 4039, 4038, 0, 1457, 0, 1458, + 1459, 0, 0, 3344, 3345, 0, 3346, 3348, 3350, 42, + 1518, 4065, 3174, 0, 4068, 0, 0, 0, 4086, 0, + 0, 4076, 0, 4081, 0, 0, 0, 0, 4094, 0, + 0, 0, 4096, 0, 3363, 0, 4057, 0, 4107, 3367, + 3368, 3369, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, + 3379, 3380, 3381, 3382, 3383, 3385, 3387, 3389, 3391, 3393, + 3395, 3397, 3399, 3401, 3403, 3405, 3407, 3409, 3411, 3413, + 3415, 3416, 3418, 3419, 3420, 3422, 4111, 1784, 3424, 0, + 3426, 3427, 3428, 4130, 1984, 3432, 3433, 3434, 3435, 3436, + 3437, 3438, 3439, 3440, 3441, 3442, 2098, 4141, 2096, 4140, + 4143, 4139, 4137, 4136, 3449, 4127, 4126, 4151, 3454, 4106, + 0, 4057, 3458, 3459, 4027, 3460, 3462, 4159, 3465, 3467, + 0, 3469, 3470, 3471, 3472, 4167, 4165, 0, 3171, 0, + 0, 3480, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4176, 4177, 3915, 4175, + 0, 0, 0, 0, 2098, 0, 2096, 4174, 0, 0, + 0, 1797, 0, 0, 0, 0, 3502, 3503, 0, 3978, + 3507, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4102, 0, 0, 0, 0, 4124, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1810, 1813, 1814, 1815, 1816, 1817, + 1818, 0, 1819, 1820, 1822, 1823, 1821, 1824, 1825, 1798, + 1799, 1800, 1801, 1782, 1783, 1811, 0, 1785, 0, 1786, + 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 0, 0, + 1795, 1802, 1803, 1804, 1805, 0, 1806, 1807, 1808, 1809, + 0, 0, 0, 0, 0, 0, 3582, 0, 1477, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1745, 0, + 0, 0, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1486, + 1485, 1487, 1488, 0, 0, 0, 0, 0, 0, 0, + 0, 3601, 0, 0, 3605, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 190, 0, 1833, 0, 0, 0, + 0, 0, 0, 0, 0, 2927, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3617, 129, 0, + 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 162, 0, 190, 0, 0, 0, 150, 943, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3640, 0, 0, 0, 0, 0, 169, 129, 0, + 170, 0, 0, 0, 3648, 0, 0, 0, 0, 0, + 0, 172, 3655, 0, 0, 0, 0, 0, 0, 1854, + 1855, 161, 160, 189, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1989, 195, 0, 0, 195, 0, + 0, 0, 716, 0, 0, 0, 1812, 722, 0, 0, + 0, 2127, 0, 0, 0, 0, 0, 0, 195, 0, + 0, 0, 0, 0, 0, 0, 0, 169, 0, 0, + 170, 0, 0, 0, 195, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 189, 0, 0, 0, 0, 0, 722, + 195, 722, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 155, 1856, 158, 0, 1853, 0, + 156, 157, 0, 0, 0, 0, 0, 173, 0, 3864, + 0, 0, 0, 0, 0, 0, 179, 0, 3871, 2119, + 2108, 2109, 2110, 2111, 2121, 2112, 2113, 2114, 2126, 2122, + 2115, 2116, 2123, 2124, 2125, 2117, 2118, 2120, 3881, 3882, + 3883, 0, 3885, 0, 3886, 3887, 0, 0, 0, 3890, + 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, + 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, + 3911, 0, 3913, 3916, 0, 0, 0, 173, 0, 0, + 0, 0, 0, 0, 0, 0, 179, 0, 3925, 3926, + 3927, 3928, 3929, 3931, 3932, 3934, 3936, 3937, 3939, 0, + 0, 0, 3943, 0, 0, 0, 3945, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3970, 164, 0, 0, 2054, 2055, 2056, 2057, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2065, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2104, 2105, 0, 0, 0, 0, + 2128, 0, 0, 2132, 2133, 0, 0, 0, 2138, 0, + 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2150, 2151, 2152, 2153, 2154, 2155, 2156, + 2157, 2158, 2159, 0, 2161, 0, 0, 159, 2183, 2184, + 2185, 2186, 2187, 2188, 2190, 0, 2195, 0, 2197, 2198, + 2199, 0, 2201, 2202, 2203, 0, 2205, 2206, 2207, 2208, + 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, + 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, + 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, + 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, + 2249, 2250, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, + 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, + 2272, 2273, 2274, 2275, 2276, 0, 0, 0, 0, 0, + 2282, 0, 2284, 0, 2291, 2292, 2293, 2294, 2295, 2296, + 0, 0, 0, 0, 0, 3995, 152, 0, 0, 153, + 0, 0, 0, 2307, 2308, 2309, 2310, 2311, 2312, 2313, + 2314, 0, 2316, 2317, 2318, 2319, 2320, 0, 0, 4010, + 0, 0, 0, 0, 0, 4013, 0, 4014, 0, 165, + 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4025, 0, + 0, 0, 1055, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4051, 4052, 0, 185, 0, 2361, + 2362, 0, 0, 0, 0, 0, 0, 0, 4059, 4061, + 4063, 0, 0, 0, 0, 0, 0, 0, 0, 165, + 0, 0, 0, 0, 0, 2400, 177, 0, 0, 0, + 0, 0, 0, 0, 4089, 0, 0, 0, 0, 0, + 166, 171, 168, 174, 175, 176, 178, 180, 181, 182, + 183, 0, 0, 0, 0, 0, 184, 186, 187, 188, + 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, + 4108, 0, 190, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 195, 1850, 195, 0, 2442, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 129, 0, 151, 0, + 0, 0, 0, 0, 4131, 4133, 4135, 0, 0, 172, + 166, 171, 168, 174, 175, 176, 178, 180, 181, 182, + 183, 722, 0, 722, 722, 0, 184, 186, 187, 188, + 0, 0, 0, 86, 44, 45, 88, 4156, 0, 0, + 162, 0, 0, 722, 195, 0, 150, 0, 0, 0, + 0, 0, 0, 92, 0, 4168, 4169, 48, 76, 77, + 0, 74, 78, 0, 0, 169, 0, 0, 170, 0, + 75, 0, 1504, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1854, 1855, 161, + 160, 189, 0, 0, 0, 0, 0, 0, 0, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1698, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 665, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 155, 1856, 158, 0, 1853, 0, 156, 157, + 0, 1013, 0, 0, 0, 173, 0, 0, 0, 0, + 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, + 0, 51, 54, 57, 56, 59, 0, 73, 0, 0, + 82, 79, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1504, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 61, 91, 90, 0, 0, 71, + 72, 58, 0, 0, 2611, 0, 0, 80, 81, 0, + 0, 0, 0, 0, 2617, 2618, 2619, 2620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 195, 0, 0, 0, 722, 722, 0, 0, 164, + 63, 64, 0, 65, 66, 67, 68, 1518, 0, 0, + 0, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 164, 0, 0, 0, 83, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 722, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 195, 0, 0, 0, 722, - 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 195, 0, - 2611, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2617, 2618, 2619, 2620, 0, 0, 164, 0, 0, 722, - 0, 0, 195, 0, 0, 0, 0, 3937, 0, 0, - 0, 0, 0, 0, 722, 0, 0, 0, 0, 0, - 0, 195, 0, 0, 0, 0, 159, 0, 51, 54, - 57, 56, 59, 1518, 73, 0, 0, 82, 79, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 722, 0, - 0, 61, 91, 90, 0, 0, 71, 72, 58, 0, - 0, 1504, 0, 0, 80, 81, 0, 722, 722, 0, - 722, 0, 722, 722, 0, 722, 722, 722, 722, 722, - 722, 0, 159, 0, 0, 0, 0, 0, 1504, 0, - 0, 1504, 722, 1504, 195, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 64, 0, - 65, 66, 67, 68, 195, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 152, 0, 722, 153, 195, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 722, 0, 195, 195, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 165, 0, - 0, 0, 195, 0, 0, 177, 0, 0, 0, 195, - 0, 60, 1692, 0, 0, 0, 0, 0, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 722, 0, 0, - 0, 152, 0, 0, 153, 0, 0, 1745, 0, 0, - 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 165, 0, 0, 0, 3977, 0, - 0, 177, 0, 0, 0, 0, 3987, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, - 171, 168, 174, 175, 176, 178, 180, 181, 182, 183, - 0, 89, 0, 0, 0, 184, 186, 187, 188, 0, - 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1692, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 166, 171, 168, 174, 175, - 176, 178, 180, 181, 182, 183, 0, 0, 0, 0, - 0, 184, 186, 187, 188, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 722, 722, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 722, 0, 0, - 0, 94, 0, 0, 0, 0, 195, 0, 0, 0, + 722, 0, 0, 0, 0, 0, 0, 195, 0, 0, + 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 722, 159, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1504, 0, 0, + 0, 0, 0, 722, 722, 0, 722, 0, 722, 722, + 0, 722, 722, 722, 722, 722, 722, 0, 0, 0, + 0, 0, 0, 0, 1504, 0, 0, 1504, 722, 1504, + 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, + 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 722, 0, 195, 0, 0, 0, 0, + 0, 1745, 0, 0, 0, 0, 0, 0, 0, 722, + 0, 195, 195, 0, 0, 0, 1008, 0, 0, 0, + 0, 1009, 0, 0, 152, 0, 0, 153, 195, 0, + 0, 2097, 0, 0, 0, 195, 0, 0, 0, 0, + 0, 0, 0, 0, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 722, 0, 0, 0, 165, 0, 0, + 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 185, 966, 967, 968, 969, + 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, + 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, + 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, + 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 166, 171, + 168, 174, 175, 176, 178, 180, 181, 182, 183, 0, + 0, 0, 0, 0, 184, 186, 187, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2990, 1796, 0, 0, 0, - 0, 0, 0, 0, 0, 722, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1504, 0, 0, 0, 3016, - 3017, 3018, 0, 0, 3020, 0, 0, 3022, 0, 0, - 0, 0, 0, 1504, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3029, 3030, 3031, - 0, 0, 0, 0, 0, 0, 0, 70, 0, 3036, - 0, 0, 3038, 3039, 3040, 0, 0, 0, 3041, 3042, - 0, 0, 3043, 0, 3044, 0, 0, 0, 0, 0, - 0, 3045, 0, 3046, 0, 0, 0, 3047, 0, 3048, - 0, 0, 3049, 0, 3050, 0, 3051, 0, 3052, 0, - 3053, 0, 3054, 0, 3055, 0, 3056, 0, 3057, 0, - 3058, 0, 3059, 0, 3060, 0, 3061, 0, 3062, 0, - 3063, 0, 3064, 0, 3065, 0, 3066, 0, 0, 0, - 3067, 0, 3068, 0, 3069, 0, 0, 3070, 0, 3071, - 0, 3072, 1784, 2254, 3074, 0, 0, 3076, 0, 0, - 3078, 3079, 3080, 3081, 0, 0, 0, 0, 3082, 2254, - 2254, 2254, 2254, 2254, 0, 0, 0, 2301, 0, 0, - 0, 0, 0, 0, 3092, 0, 0, 0, 0, 0, - 0, 0, 3105, 0, 0, 3109, 0, 0, 0, 0, - 0, 0, 0, 0, 3112, 3113, 3114, 3115, 3116, 3117, - 0, 0, 0, 3118, 3119, 0, 3120, 0, 3121, 0, - 0, 0, 195, 0, 0, 0, 0, 722, 0, 0, - 0, 0, 0, 0, 0, 0, 1797, 0, 0, 0, - 0, 0, 1055, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 195, 0, 0, 722, 0, 0, 0, - 0, 0, 0, 3154, 0, 0, 0, 0, 0, 0, - 195, 0, 0, 0, 722, 0, 0, 2301, 195, 0, - 195, 0, 195, 195, 0, 0, 0, 0, 3184, 0, - 0, 0, 0, 0, 0, 0, 0, 722, 0, 1810, - 1813, 1814, 1815, 1816, 1817, 1818, 0, 1819, 1820, 1822, - 1823, 1821, 1824, 1825, 1798, 1799, 1800, 1801, 1782, 1783, - 1811, 0, 1785, 0, 1786, 1787, 1788, 1789, 1790, 1791, - 1792, 1793, 1794, 0, 0, 1795, 1802, 1803, 1804, 1805, - 0, 1806, 1807, 1808, 1809, 0, 0, 0, 0, 3247, - 0, 0, 0, 0, 722, 0, 0, 0, 0, 0, - 0, 0, 942, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2990, + 722, 722, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 722, 0, 0, 0, 0, 0, 0, + 0, 0, 195, 3016, 3017, 3018, 0, 0, 3020, 0, + 0, 3022, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1204, 0, 1210, 0, 0, + 0, 3041, 3042, 3043, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3048, 0, 1796, 3050, 3051, 3052, 0, + 0, 722, 3053, 3054, 0, 0, 3055, 0, 3056, 0, + 0, 1504, 0, 0, 0, 3057, 0, 3058, 0, 0, + 0, 3059, 0, 3060, 0, 0, 3061, 0, 3062, 1504, + 3063, 0, 3064, 0, 3065, 0, 3066, 1433, 3067, 0, + 3068, 0, 3069, 0, 3070, 0, 3071, 0, 3072, 0, + 3073, 0, 3074, 0, 3075, 0, 3076, 0, 3077, 0, + 3078, 0, 0, 0, 3079, 0, 3080, 0, 3081, 0, + 0, 3082, 0, 3083, 0, 3084, 0, 2254, 3086, 0, + 0, 3088, 0, 0, 3090, 3091, 3092, 3093, 0, 0, + 0, 0, 3094, 2254, 2254, 2254, 2254, 2254, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3104, 0, + 0, 0, 0, 0, 0, 0, 3117, 0, 0, 3121, + 0, 0, 0, 0, 0, 0, 0, 0, 3124, 3125, + 3126, 3127, 3128, 3129, 0, 0, 0, 3130, 3131, 0, + 3132, 1784, 3133, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2301, 0, 0, 1055, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 722, 1698, 0, 0, 0, 0, 722, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 195, 0, + 0, 0, 3196, 722, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1797, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, + 0, 0, 722, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 195, 0, 0, 0, + 722, 0, 0, 2301, 195, 0, 195, 0, 195, 195, + 0, 0, 0, 3259, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 722, 0, 0, 0, 0, 1810, 1813, + 1814, 1815, 1816, 1817, 1818, 0, 1819, 1820, 1822, 1823, + 1821, 1824, 1825, 1798, 1799, 1800, 1801, 1782, 1783, 1811, + 0, 1785, 0, 1786, 1787, 1788, 1789, 1790, 1791, 1792, + 1793, 1794, 0, 0, 1795, 1802, 1803, 1804, 1805, 0, + 1806, 1807, 1808, 1809, 0, 0, 0, 0, 0, 0, + 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 722, 0, 3352, + 0, 1757, 0, 722, 0, 0, 0, 942, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1774, 0, 0, 0, 0, 3366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 701, 0, 0, 0, 0, 0, - 721, 0, 0, 0, 722, 0, 0, 0, 0, 722, - 0, 665, 0, 722, 722, 3340, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3349, - 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 195, 721, 0, 721, 190, 0, 0, 195, 0, - 0, 0, 0, 0, 0, 0, 1850, 0, 195, 195, - 0, 0, 195, 1084, 195, 0, 0, 0, 0, 129, - 0, 151, 0, 0, 195, 0, 0, 0, 0, 0, - 0, 195, 172, 0, 0, 0, 0, 0, 0, 0, + 722, 0, 0, 0, 0, 722, 0, 0, 0, 722, + 722, 0, 0, 0, 0, 0, 0, 0, 0, 701, + 0, 0, 0, 0, 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, 0, 0, - 0, 1812, 0, 162, 0, 0, 722, 0, 0, 150, - 0, 0, 900, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 169, 0, - 0, 170, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1913, 195, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 195, 195, 0, 0, 195, 0, + 195, 0, 0, 0, 0, 0, 0, 721, 0, 721, + 195, 0, 0, 0, 0, 0, 0, 195, 1958, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1985, 0, 0, 0, 0, + 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, + 1812, 1996, 722, 0, 0, 0, 0, 0, 2000, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2011, + 2012, 2013, 2014, 2015, 2016, 2017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1854, 1855, 161, 160, 189, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 193, 0, - 0, 666, 0, 0, 0, 1504, 0, 2301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 666, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1036, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3546, 0, - 0, 0, 0, 0, 1056, 1056, 0, 0, 0, 0, - 0, 0, 0, 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3570, 0, 0, 0, 155, 1856, 158, 0, 1853, - 0, 156, 157, 0, 0, 0, 0, 0, 173, 0, - 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, + 0, 0, 0, 0, 3563, 0, 0, 0, 0, 0, + 0, 1504, 0, 2301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3590, - 0, 3591, 0, 3592, 0, 3593, 0, 0, 3596, 3597, - 0, 0, 0, 0, 0, 0, 0, 3601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3602, 0, 3603, 0, 3604, 0, 3605, 0, 3606, - 0, 3607, 0, 3608, 0, 3609, 0, 3610, 0, 3611, - 0, 3612, 0, 3613, 0, 3614, 0, 3615, 0, 3616, - 0, 3617, 0, 0, 3618, 0, 0, 0, 3619, 0, - 3620, 0, 0, 0, 0, 0, 3622, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 195, 0, - 0, 0, 164, 0, 0, 0, 195, 0, 0, 3639, - 0, 0, 0, 0, 0, 0, 0, 722, 3644, 0, - 3645, 3646, 0, 3647, 0, 3648, 0, 0, 0, 0, - 3649, 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 899, 0, 0, 195, 0, 3678, 0, 0, - 195, 0, 0, 0, 0, 0, 0, 0, 3686, 0, - 0, 3688, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3692, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 159, 3826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 720, 0, 0, 0, 0, 0, 0, 0, 722, 0, - 0, 0, 0, 0, 195, 0, 0, 0, 0, 0, - 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 722, 0, 0, 0, 0, - 0, 0, 722, 0, 0, 0, 0, 0, 0, 0, - 0, 722, 1080, 0, 1087, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1504, 0, 0, - 0, 0, 0, 0, 0, 1204, 0, 1210, 0, 0, - 195, 195, 195, 195, 195, 195, 0, 152, 0, 0, - 153, 0, 0, 0, 721, 1420, 721, 721, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 195, 195, 0, - 0, 0, 0, 0, 0, 0, 721, 3936, 0, 0, - 165, 0, 0, 0, 0, 0, 0, 177, 0, 0, - 195, 0, 0, 0, 0, 0, 0, 1433, 0, 0, - 0, 0, 0, 0, 0, 1503, 0, 0, 0, 0, - 0, 0, 0, 722, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 185, 1008, - 0, 0, 0, 0, 1009, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2097, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 722, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 166, 171, 168, 174, 175, 176, 178, 180, 181, - 182, 183, 0, 0, 0, 0, 0, 184, 186, 187, - 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 666, 0, 666, 0, 966, - 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, - 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, - 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, - 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, - 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 722, 666, 0, 0, - 0, 3976, 0, 0, 0, 0, 0, 0, 722, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1505, 1503, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 722, - 0, 0, 0, 0, 0, 0, 0, 3990, 0, 0, - 3991, 0, 3992, 0, 195, 0, 0, 722, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 722, 0, 0, 0, 1504, 0, 0, 722, 722, - 1504, 195, 195, 195, 195, 195, 0, 0, 721, 721, - 0, 0, 0, 195, 0, 0, 0, 0, 0, 195, - 0, 195, 0, 0, 195, 195, 195, 0, 0, 0, + 0, 0, 0, 0, 0, 3607, 0, 3608, 0, 3609, + 0, 3610, 0, 0, 0, 0, 0, 0, 0, 3613, + 3614, 0, 0, 0, 0, 0, 0, 0, 3618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 721, 0, + 0, 0, 3619, 0, 3620, 0, 3621, 0, 3622, 0, + 3623, 0, 3624, 0, 3625, 0, 3626, 0, 3627, 0, + 3628, 0, 3629, 0, 3630, 2047, 3631, 0, 3632, 0, + 3633, 0, 3634, 0, 0, 3635, 0, 0, 0, 3636, + 0, 3637, 0, 0, 0, 0, 0, 3639, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 721, 0, 0, 0, 0, 4070, 0, - 195, 1757, 0, 0, 1827, 0, 0, 0, 0, 0, - 0, 0, 0, 722, 1836, 0, 1504, 0, 0, 0, - 1774, 722, 0, 0, 0, 0, 195, 4086, 0, 4087, - 0, 4088, 0, 0, 0, 0, 0, 721, 0, 1862, - 195, 0, 0, 0, 0, 0, 0, 1871, 0, 0, - 1503, 1873, 0, 0, 1876, 1877, 721, 721, 0, 721, - 195, 721, 721, 195, 721, 721, 721, 721, 721, 721, - 0, 0, 0, 0, 0, 0, 1505, 1503, 1908, 1909, - 1503, 721, 1503, 0, 1914, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4137, - 0, 4138, 0, 1913, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 721, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1977, - 0, 0, 721, 0, 666, 0, 0, 0, 1958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1985, 0, 1036, 0, 0, - 0, 0, 0, 0, 1268, 0, 1268, 1268, 0, 0, - 0, 1996, 0, 0, 0, 0, 721, 722, 2000, 0, - 0, 666, 0, 0, 0, 0, 1432, 0, 0, 2011, - 2012, 2013, 2014, 2015, 2016, 2017, 0, 0, 0, 0, - 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3656, 0, 0, 0, 0, 0, 0, 0, 0, 3661, + 0, 3662, 3663, 0, 3664, 0, 3665, 0, 0, 0, + 0, 3666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, 0, 0, 0, 0, 0, + 0, 0, 195, 0, 0, 0, 0, 0, 3695, 0, + 0, 0, 0, 722, 0, 0, 0, 0, 0, 3703, + 0, 0, 3705, 0, 0, 0, 0, 722, 0, 0, + 0, 0, 0, 0, 3709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3843, 195, 0, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1505, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 195, 0, 0, 0, 0, 0, 0, 1505, 0, 0, - 1505, 0, 1505, 666, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, - 0, 0, 0, 1930, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 666, 195, - 0, 0, 195, 195, 195, 0, 0, 0, 0, 0, - 0, 0, 722, 722, 1983, 666, 0, 0, 0, 0, - 0, 0, 0, 721, 721, 0, 0, 0, 0, 0, - 0, 666, 0, 0, 0, 0, 721, 0, 666, 0, - 0, 0, 0, 0, 0, 0, 0, 2009, 2010, 666, - 666, 666, 666, 666, 666, 666, 0, 0, 0, 0, - 0, 722, 722, 722, 722, 2047, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 721, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1503, 0, 0, 0, 0, 0, - 0, 0, 0, 2106, 0, 0, 0, 0, 0, 0, - 0, 0, 1503, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1701, 1702, + 0, 0, 0, 0, 722, 0, 0, 0, 0, 0, + 195, 0, 0, 0, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 722, 0, 0, 0, 0, 0, 0, 722, 0, + 0, 720, 0, 0, 0, 0, 0, 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1504, 0, 0, 0, 0, 3953, 0, + 0, 0, 0, 0, 0, 0, 195, 195, 195, 195, + 195, 195, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1080, 0, 1087, 0, 0, 0, 2367, + 0, 0, 0, 195, 195, 0, 0, 2371, 0, 2374, + 0, 0, 2047, 0, 0, 0, 0, 0, 0, 721, + 1420, 721, 721, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1751, 0, + 0, 721, 0, 0, 0, 0, 0, 0, 0, 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1769, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 722, 0, 722, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 666, 1504, 0, 0, 0, - 0, 722, 0, 722, 0, 0, 721, 1080, 0, 0, + 1503, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 900, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1879, 1879, 0, 1879, - 0, 1879, 1879, 0, 1888, 1879, 1879, 1879, 1879, 1879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1080, 0, 0, 1505, 0, 721, 0, 0, 0, - 0, 722, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1505, 0, 195, 0, 0, 722, 0, 0, - 0, 0, 0, 0, 0, 721, 1956, 0, 0, 0, - 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1981, 721, 0, 0, 721, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2367, - 0, 0, 0, 0, 0, 0, 721, 2371, 0, 2374, - 0, 0, 2047, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 722, 0, 0, 0, 0, 0, - 0, 722, 0, 722, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 721, 0, 0, 0, 0, 0, 0, - 2464, 2465, 2466, 0, 0, 0, 0, 0, 0, 0, - 0, 722, 0, 0, 0, 0, 1983, 0, 0, 0, - 721, 0, 0, 0, 0, 0, 721, 1871, 0, 0, - 1871, 0, 1871, 0, 0, 0, 0, 0, 2496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 193, 0, 0, 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1930, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 721, 0, 0, 0, 1056, 721, 0, - 0, 0, 721, 721, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 666, 0, 0, 0, + 0, 0, 3993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1036, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 666, - 0, 0, 0, 0, 0, 0, 1983, 666, 0, 666, - 0, 666, 2390, 1268, 1268, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2035, 0, 0, 0, - 2047, 0, 0, 0, 0, 0, 0, 2532, 0, 722, - 0, 0, 0, 0, 0, 0, 0, 2551, 2552, 0, - 0, 2556, 0, 0, 0, 195, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1056, + 1056, 0, 0, 0, 0, 0, 0, 0, 666, 0, + 2047, 0, 722, 0, 0, 0, 0, 2532, 4007, 0, + 0, 4008, 0, 4009, 722, 0, 0, 2551, 2552, 0, + 0, 2556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2561, 0, 0, 0, 0, 0, 0, - 2564, 0, 0, 722, 195, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2092, 721, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2567, 0, 0, 0, + 2564, 0, 0, 0, 0, 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 195, 1503, 0, 722, 0, 0, 2567, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 722, 0, 0, + 0, 1504, 0, 0, 722, 722, 1504, 195, 195, 195, + 195, 195, 0, 0, 0, 0, 0, 0, 0, 195, + 0, 0, 0, 0, 0, 195, 0, 195, 0, 4087, + 195, 195, 195, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 721, 721, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4103, 0, + 4104, 0, 4105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 195, 0, 0, 0, + 0, 0, 0, 721, 0, 0, 0, 0, 0, 722, + 0, 0, 1504, 0, 0, 0, 0, 722, 721, 0, + 0, 0, 195, 0, 0, 0, 0, 0, 0, 1827, + 0, 0, 0, 0, 0, 0, 195, 0, 0, 1836, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4154, 0, 4155, 0, 0, 0, 195, 0, 0, 195, + 0, 0, 721, 0, 1862, 0, 0, 0, 0, 0, + 0, 0, 1871, 0, 0, 1503, 1873, 0, 0, 1876, + 1877, 721, 721, 0, 721, 0, 721, 721, 0, 721, + 721, 721, 721, 721, 721, 0, 0, 0, 0, 0, + 0, 0, 1503, 1908, 1909, 1503, 721, 1503, 0, 1914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 722, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 722, - 0, 0, 0, 0, 1503, 0, 721, 0, 0, 1504, - 0, 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 722, 2301, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1977, 0, 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 666, 0, 0, 0, 0, 0, 0, 666, 0, 0, - 0, 0, 195, 722, 0, 0, 0, 666, 666, 0, - 0, 666, 0, 2558, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 666, 0, 0, 1268, 0, 0, 0, - 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 722, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 666, 0, 0, 0, 0, 0, 0, 0, 0, 722, 0, 0, 0, 0, - 195, 0, 0, 0, 0, 0, 2338, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 721, 0, 0, 0, 1268, 0, 1268, 1268, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 195, 0, 0, 0, 0, 1432, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2865, + 0, 0, 0, 0, 0, 0, 0, 0, 195, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 195, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 195, 0, 0, + 195, 195, 195, 0, 0, 0, 0, 0, 0, 0, + 722, 722, 0, 2914, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 721, 721, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 666, 721, 666, 0, 0, 0, 0, 0, 0, 722, + 722, 722, 722, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2963, + 2964, 2965, 2966, 2967, 2968, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2047, 2978, 0, 721, + 0, 0, 666, 0, 0, 0, 0, 0, 0, 1503, + 0, 0, 0, 0, 0, 0, 0, 0, 2106, 2986, + 0, 0, 0, 0, 0, 0, 0, 1503, 0, 0, + 1505, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1701, + 1702, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 722, 0, 722, 1751, + 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1769, 0, 0, 0, 0, 1504, 0, 0, 0, 0, 722, 0, 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2351, 0, 0, 0, 0, + 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1080, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1879, 1879, 0, + 1879, 0, 1879, 1879, 722, 1888, 1879, 1879, 1879, 1879, + 1879, 721, 0, 0, 0, 0, 0, 195, 0, 0, + 722, 0, 1080, 0, 0, 0, 0, 0, 0, 0, + 0, 1505, 0, 722, 0, 0, 0, 0, 0, 0, + 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1956, 721, 0, + 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1981, 0, 0, 0, 0, 0, 0, + 0, 721, 0, 0, 0, 0, 0, 0, 0, 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1751, 0, 0, 1268, 0, 0, 0, - 0, 0, 0, 0, 1505, 0, 1983, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1080, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 722, 0, 0, + 0, 0, 1036, 0, 722, 0, 722, 1268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 666, 0, 721, 0, + 0, 0, 0, 0, 722, 2464, 2465, 2466, 0, 0, + 0, 0, 0, 0, 0, 666, 0, 0, 0, 3249, + 0, 0, 0, 0, 0, 721, 0, 0, 0, 0, + 0, 721, 1871, 0, 0, 1871, 0, 1871, 0, 0, + 0, 0, 0, 2496, 0, 3287, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3301, + 0, 0, 0, 0, 0, 1505, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 721, 3319, + 0, 0, 3322, 721, 0, 0, 0, 721, 721, 0, + 0, 0, 1505, 0, 0, 1505, 0, 1505, 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 721, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 666, 0, 0, 0, 0, 0, 0, + 0, 0, 722, 0, 1268, 1268, 0, 0, 0, 1983, + 666, 0, 0, 0, 0, 0, 0, 2035, 195, 0, + 0, 0, 0, 0, 0, 0, 666, 0, 0, 0, + 0, 0, 0, 666, 0, 0, 722, 195, 0, 0, + 0, 0, 2009, 2010, 666, 666, 666, 666, 666, 666, + 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1087, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2092, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 722, 0, 0, 3482, 0, 0, 0, 0, + 0, 0, 722, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1504, 0, 722, 0, 0, 0, 0, 1503, + 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 722, 2301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1080, 0, 0, 0, 0, 2878, 1087, 0, 0, 2865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 195, 722, 0, 0, 0, + 3541, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3556, 0, 0, 3557, 3558, 3559, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 722, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1268, 0, 0, + 666, 0, 0, 0, 0, 0, 0, 0, 722, 0, + 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 722, 0, 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1080, 0, 0, 0, 721, 2092, 0, - 0, 0, 2092, 2092, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2338, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1505, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2351, 1505, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1751, 0, 0, 1268, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1080, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 721, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1087, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2878, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1080, 0, 0, 0, 0, 0, 1087, 0, 0, + 0, 1983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2914, 721, 0, 0, 0, 0, 0, - 0, 721, 0, 0, 0, 1871, 1871, 0, 0, 0, - 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1503, 2951, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 666, 0, 0, - 0, 0, 0, 0, 0, 1930, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2963, - 2964, 2965, 2966, 2967, 2968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2570, 2047, 2978, 0, 0, - 0, 0, 0, 0, 666, 0, 0, 0, 0, 666, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2986, 0, 0, 721, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1080, 0, 1930, 0, 0, 2092, + 0, 0, 0, 2092, 2092, 0, 0, 0, 0, 721, + 0, 0, 1056, 0, 0, 0, 721, 0, 0, 0, + 1871, 1871, 0, 0, 0, 721, 0, 1036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1503, 2951, 0, 666, 0, 0, 0, 0, 0, + 0, 1983, 666, 0, 666, 0, 666, 2390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1268, 0, 0, 0, - 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 666, 0, 0, 0, 0, 0, 0, - 2920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, + 0, 0, 1008, 0, 0, 0, 948, 1009, 961, 962, + 963, 949, 0, 0, 950, 951, 2570, 952, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 721, 0, 0, + 0, 957, 964, 965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1505, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 666, - 666, 666, 666, 666, 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 666, 666, 0, 0, 0, 0, 0, 0, 0, 721, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 721, 0, 666, + 3295, 3296, 0, 0, 0, 0, 0, 1268, 0, 0, + 0, 0, 966, 967, 968, 969, 970, 971, 972, 973, + 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, + 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, + 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, + 1004, 1005, 1006, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 666, 0, 0, 0, 0, + 0, 0, 666, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 666, 666, 0, 3297, 666, 0, 2558, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 666, 0, + 721, 0, 0, 0, 0, 666, 0, 0, 0, 0, + 0, 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 721, 0, + 0, 666, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 721, 0, 0, 0, 0, 0, 0, + 3991, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 721, 0, 3298, 3299, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 721, 0, 0, 0, 1503, + 0, 0, 721, 721, 1503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 721, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1505, + 0, 1983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 721, 0, 0, 0, 1503, 0, 0, 721, 721, 1503, + 0, 0, 0, 0, 0, 0, 0, 2813, 0, 0, + 0, 0, 0, 0, 0, 3244, 0, 913, 0, 0, + 0, 2828, 0, 917, 0, 0, 0, 914, 915, 0, + 0, 0, 916, 918, 0, 0, 0, 721, 0, 0, + 1503, 0, 0, 0, 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2828, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3232, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 721, 0, 0, 1503, 0, 0, 0, 3237, - 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3275, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3314, 0, 0, 0, 0, 2910, 0, 3307, - 0, 0, 3310, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2351, 0, 0, 0, 0, + 0, 0, 2935, 0, 0, 0, 0, 0, 0, 0, + 0, 2940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1056, 0, 666, 2351, 0, 0, 0, 0, 0, - 0, 2935, 0, 0, 0, 0, 0, 0, 0, 0, - 2940, 0, 0, 0, 1505, 0, 0, 0, 0, 1505, - 666, 666, 666, 666, 666, 0, 0, 0, 0, 0, - 0, 0, 3182, 0, 0, 0, 0, 0, 1930, 0, - 666, 0, 0, 666, 3190, 1983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 666, + 0, 0, 666, 0, 0, 0, 0, 0, 0, 0, + 1930, 0, 0, 721, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1505, 0, 0, 0, 0, - 0, 0, 2092, 0, 0, 666, 0, 0, 0, 0, - 0, 0, 0, 3465, 0, 0, 0, 0, 0, 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 666, - 0, 0, 666, 0, 0, 0, 0, 0, 0, 0, - 2092, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3514, 0, 0, + 0, 0, 0, 2092, 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 721, 721, 0, 0, 0, 0, 0, 3539, 0, - 0, 3540, 3541, 3542, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2092, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3531, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 666, 0, + 0, 0, 0, 0, 0, 2920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 721, 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 721, 721, 721, 721, 0, 3094, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 666, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1879, 0, + 0, 1505, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 666, 666, 666, 666, 666, 666, + 0, 0, 0, 0, 0, 0, 0, 721, 721, 721, + 721, 0, 0, 0, 0, 0, 3106, 0, 0, 0, + 0, 666, 666, 0, 0, 0, 0, 0, 1268, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 666, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1879, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3151, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1268, 0, 0, 0, 0, 0, 0, 3178, 1879, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1268, 0, 0, 0, 0, 0, 0, 3166, 1879, 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 95, 0, 0, 1008, 0, 0, 0, 948, 1009, - 961, 962, 963, 949, 0, 0, 950, 951, 666, 952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 957, 964, 965, 0, 0, 666, 0, - 0, 666, 666, 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 721, 0, 721, 0, 0, 0, + 0, 0, 0, 1080, 0, 0, 0, 0, 0, 0, + 0, 2351, 0, 0, 0, 0, 0, 1503, 0, 0, 0, 0, 721, 0, 721, 0, 0, 0, 0, 0, - 0, 0, 1080, 0, 0, 0, 0, 0, 0, 0, - 2351, 0, 3283, 3284, 0, 1503, 0, 0, 0, 0, - 721, 0, 721, 0, 966, 967, 968, 969, 970, 971, - 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, - 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, - 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, - 1002, 1003, 1004, 1005, 1006, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 721, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3285, 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 721, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 721, 0, + 0, 0, 0, 0, 0, 0, 1056, 0, 666, 0, + 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1505, + 0, 0, 0, 0, 1505, 666, 666, 666, 666, 666, + 0, 0, 0, 0, 0, 0, 0, 3194, 0, 0, + 0, 0, 0, 1930, 0, 666, 0, 0, 666, 3202, + 1983, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3445, + 0, 0, 0, 0, 0, 721, 0, 0, 0, 0, + 0, 0, 721, 0, 721, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3428, 0, 0, 0, + 1505, 0, 721, 0, 0, 0, 0, 0, 0, 0, + 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 721, 0, 3286, 3287, 0, 0, 0, - 721, 0, 721, 0, 0, 0, 1930, 0, 0, 0, + 0, 0, 0, 0, 666, 0, 0, 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1505, 0, 0, 0, 0, - 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 913, - 0, 0, 0, 0, 0, 917, 0, 0, 0, 914, - 915, 0, 0, 0, 916, 918, 0, 0, 0, 0, - 0, 0, 0, 1930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2351, 2351, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2351, 2351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 721, 0, + 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3578, 3579, 3580, 3581, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3595, 3596, 3597, 3598, 0, 0, 0, + 0, 0, 0, 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 721, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 721, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1503, 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1503, 0, 721, 0, 0, 0, 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 721, 721, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 721, 721, 0, 0, + 0, 0, 0, 0, 0, 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 666, 0, 0, 666, 666, + 666, 0, 0, 0, 721, 0, 0, 0, 0, 0, + 3672, 0, 3672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3655, 0, 3655, 0, 0, 0, 0, 0, - 0, 0, 721, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3699, 0, + 3701, 0, 0, 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3682, 0, 3684, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1930, 0, 0, 0, 0, 0, - 0, 0, 721, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 666, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 721, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2351, 0, 0, 721, 0, 721, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3849, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1268, + 0, 0, 0, 0, 0, 721, 0, 721, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3866, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1505, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4028, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3655, 0, 0, 0, 0, 0, 0, - 3655, 0, 3655, 0, 0, 0, 0, 0, 0, 0, - 0, 1930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3672, 0, 0, 0, 0, 0, 0, 3672, 0, + 3672, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1930, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2351, 0, + 0, 0, 0, 0, 0, 0, 0, 1505, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3994, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4002, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4006, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1268, 1268, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4011, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4019, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1268, 1268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4002, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 393, 0, 3428, 0, 4054, 1403, 1389, 522, 0, - 1331, 1406, 1300, 1319, 1416, 1322, 1325, 1368, 1278, 1346, - 413, 1316, 1271, 1304, 1273, 1311, 1274, 1302, 1333, 269, - 1299, 1391, 1350, 1405, 363, 266, 1280, 1305, 427, 1321, - 203, 1370, 483, 251, 374, 371, 577, 281, 272, 268, - 249, 316, 382, 425, 512, 419, 1412, 367, 1356, 0, - 493, 398, 0, 0, 0, 1335, 1395, 1344, 1382, 1330, - 1369, 1288, 1355, 1407, 1317, 1365, 1408, 322, 247, 324, - 202, 410, 494, 285, 0, 0, 0, 0, 4030, 944, - 0, 0, 0, 0, 4031, 0, 0, 0, 0, 237, - 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, - 338, 340, 342, 347, 354, 360, 1313, 1362, 1402, 1314, - 1364, 264, 320, 271, 263, 574, 1413, 1394, 1277, 1343, - 1401, 1338, 0, 0, 228, 1404, 1337, 0, 1367, 0, - 1419, 1272, 1358, 0, 1275, 1279, 1415, 1399, 1308, 274, - 0, 0, 0, 0, 0, 0, 0, 1334, 1345, 1379, - 1383, 1328, 0, 0, 0, 0, 0, 0, 0, 0, - 1306, 0, 1354, 0, 0, 0, 1284, 1276, 0, 0, + 4019, 0, 0, 0, 0, 0, 1930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2351, 0, 0, 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3445, 0, 4071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1332, 0, 0, 0, 0, 1287, 0, 1307, 1380, 0, - 1270, 296, 1281, 399, 256, 0, 450, 1387, 1398, 1329, - 618, 1400, 1327, 1326, 1374, 1285, 1393, 1320, 362, 1283, - 329, 197, 224, 0, 1318, 409, 458, 470, 1392, 1303, - 1312, 252, 1310, 468, 423, 596, 232, 283, 455, 429, - 466, 437, 286, 1353, 1372, 467, 369, 579, 447, 593, - 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, - 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, - 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, - 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, - 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, - 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, - 584, 255, 641, 227, 612, 219, 1282, 611, 405, 578, - 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, - 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, - 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, - 233, 234, 236, 1298, 278, 282, 290, 293, 302, 303, - 312, 364, 416, 443, 439, 448, 1388, 573, 594, 606, - 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, - 404, 310, 491, 332, 370, 1377, 1418, 422, 469, 239, - 598, 492, 199, 1292, 1297, 1290, 0, 253, 254, 1359, - 569, 1293, 1291, 1348, 1349, 1294, 1409, 1410, 1411, 1396, - 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, - 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, - 508, 503, 504, 505, 506, 507, 0, 509, 1381, 1286, - 0, 1295, 1296, 395, 1390, 585, 586, 661, 381, 482, - 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, - 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, - 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, - 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, - 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, - 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, - 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, - 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, - 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, - 544, 532, 525, 533, 1352, 196, 220, 365, 1414, 451, - 287, 639, 608, 603, 205, 222, 1289, 261, 1301, 1309, - 0, 1315, 1323, 1324, 1336, 1339, 1340, 1341, 1342, 1360, - 1361, 1363, 1371, 1373, 1376, 1378, 1385, 1397, 1417, 198, - 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, - 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, - 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, - 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, - 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, - 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, - 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, - 592, 622, 590, 634, 616, 435, 375, 1351, 1357, 378, - 280, 304, 319, 1366, 607, 498, 226, 463, 289, 250, - 1384, 1386, 210, 245, 229, 258, 273, 276, 323, 388, - 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, - 514, 515, 517, 392, 265, 430, 1347, 1375, 373, 570, - 571, 315, 393, 0, 0, 0, 0, 1403, 1389, 522, - 0, 1331, 1406, 1300, 1319, 1416, 1322, 1325, 1368, 1278, - 1346, 413, 1316, 1271, 1304, 1273, 1311, 1274, 1302, 1333, - 269, 1299, 1391, 1350, 1405, 363, 266, 1280, 1305, 427, - 1321, 203, 1370, 483, 251, 374, 371, 577, 281, 272, - 268, 249, 316, 382, 425, 512, 419, 1412, 367, 1356, - 0, 493, 398, 0, 0, 0, 1335, 1395, 1344, 1382, - 1330, 1369, 1288, 1355, 1407, 1317, 1365, 1408, 322, 247, - 324, 202, 410, 494, 285, 0, 0, 0, 0, 0, - 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 237, 0, 0, 244, 0, 0, 0, 348, 357, 356, - 337, 338, 340, 342, 347, 354, 360, 1313, 1362, 1402, - 1314, 1364, 264, 320, 271, 263, 574, 1413, 1394, 1277, - 1343, 1401, 1338, 0, 0, 228, 1404, 1337, 0, 1367, - 0, 1419, 1272, 1358, 0, 1275, 1279, 1415, 1399, 1308, - 274, 0, 0, 0, 0, 0, 0, 0, 1334, 1345, - 1379, 1383, 1328, 0, 0, 0, 0, 0, 0, 3191, - 0, 1306, 0, 1354, 0, 0, 0, 1284, 1276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1332, 0, 0, 0, 0, 1287, 0, 1307, 1380, - 0, 1270, 296, 1281, 399, 256, 0, 450, 1387, 1398, + 1505, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4045, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1930, 0, 0, 0, 0, 393, 0, + 0, 0, 0, 1403, 1389, 522, 0, 1331, 1406, 1300, + 1319, 1416, 1322, 1325, 1368, 1278, 1346, 413, 1316, 1271, + 1304, 1273, 1311, 1274, 1302, 1333, 269, 1299, 1391, 1350, + 1405, 363, 266, 1280, 1305, 427, 1321, 203, 1370, 483, + 251, 374, 371, 577, 281, 272, 268, 249, 316, 382, + 425, 512, 419, 1412, 367, 1356, 0, 493, 398, 0, + 0, 1983, 1335, 1395, 1344, 1382, 1330, 1369, 1288, 1355, + 1407, 1317, 1365, 1408, 322, 247, 324, 202, 410, 494, + 285, 0, 0, 0, 0, 4047, 944, 0, 0, 0, + 0, 4048, 0, 0, 0, 0, 237, 0, 0, 244, + 0, 0, 0, 348, 357, 356, 337, 338, 340, 342, + 347, 354, 360, 1313, 1362, 1402, 1314, 1364, 264, 320, + 271, 263, 574, 1413, 1394, 1277, 1343, 1401, 1338, 0, + 0, 228, 1404, 1337, 0, 1367, 0, 1419, 1272, 1358, + 0, 1275, 1279, 1415, 1399, 1308, 274, 0, 0, 0, + 0, 0, 0, 0, 1334, 1345, 1379, 1383, 1328, 0, + 0, 0, 0, 0, 0, 0, 0, 1306, 0, 1354, + 0, 0, 0, 1284, 1276, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1332, 0, 0, + 0, 0, 1287, 0, 1307, 1380, 0, 1270, 296, 1281, + 399, 256, 0, 450, 1387, 1398, 1329, 618, 1400, 1327, + 1326, 1374, 1285, 1393, 1320, 362, 1283, 329, 197, 224, + 0, 1318, 409, 458, 470, 1392, 1303, 1312, 252, 1310, + 468, 423, 596, 232, 283, 455, 429, 466, 437, 286, + 1353, 1372, 467, 369, 579, 447, 593, 619, 620, 262, + 403, 605, 516, 613, 637, 225, 259, 417, 501, 599, + 490, 394, 575, 576, 328, 489, 294, 201, 366, 625, + 223, 476, 368, 241, 230, 581, 602, 298, 288, 453, + 632, 212, 511, 591, 238, 480, 0, 0, 640, 246, + 500, 214, 588, 499, 390, 325, 326, 213, 0, 454, + 267, 292, 0, 0, 257, 412, 583, 584, 255, 641, + 227, 612, 219, 1282, 611, 405, 578, 589, 391, 380, + 218, 587, 389, 379, 333, 352, 353, 279, 306, 444, + 372, 445, 305, 307, 401, 400, 402, 206, 600, 0, + 207, 0, 495, 601, 642, 449, 211, 233, 234, 236, + 1298, 278, 282, 290, 293, 302, 303, 312, 364, 416, + 443, 439, 448, 1388, 573, 594, 606, 617, 623, 624, + 626, 627, 628, 629, 630, 633, 631, 404, 310, 491, + 332, 370, 1377, 1418, 422, 469, 239, 598, 492, 199, + 1292, 1297, 1290, 0, 253, 254, 1359, 569, 1293, 1291, + 1348, 1349, 1294, 1409, 1410, 1411, 1396, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 638, 502, 508, 503, 504, + 505, 506, 507, 0, 509, 1381, 1286, 0, 1295, 1296, + 395, 1390, 585, 586, 661, 381, 482, 595, 334, 346, + 349, 339, 358, 0, 359, 335, 336, 341, 343, 344, + 345, 350, 351, 355, 361, 248, 209, 387, 396, 572, + 311, 215, 216, 217, 518, 519, 520, 521, 609, 610, + 614, 204, 459, 460, 461, 462, 291, 604, 308, 465, + 464, 330, 331, 376, 446, 534, 536, 547, 551, 553, + 555, 561, 564, 535, 537, 548, 552, 554, 556, 562, + 565, 524, 526, 528, 530, 543, 542, 539, 567, 568, + 545, 550, 529, 541, 546, 559, 566, 563, 523, 527, + 531, 540, 558, 557, 538, 549, 560, 544, 532, 525, + 533, 1352, 196, 220, 365, 1414, 451, 287, 639, 608, + 603, 205, 222, 1289, 261, 1301, 1309, 0, 1315, 1323, + 1324, 1336, 1339, 1340, 1341, 1342, 1360, 1361, 1363, 1371, + 1373, 1376, 1378, 1385, 1397, 1417, 198, 200, 208, 221, + 231, 235, 242, 260, 275, 277, 284, 297, 309, 317, + 318, 321, 327, 377, 383, 384, 385, 386, 406, 407, + 408, 411, 414, 415, 418, 420, 421, 424, 428, 432, + 433, 434, 436, 438, 440, 452, 457, 471, 472, 473, + 474, 475, 478, 479, 484, 485, 486, 487, 488, 496, + 497, 510, 580, 582, 597, 615, 621, 477, 300, 301, + 441, 442, 313, 314, 635, 636, 299, 592, 622, 590, + 634, 616, 435, 375, 1351, 1357, 378, 280, 304, 319, + 1366, 607, 498, 226, 463, 289, 250, 1384, 1386, 210, + 245, 229, 258, 273, 276, 323, 388, 397, 426, 431, + 295, 270, 243, 456, 240, 481, 513, 514, 515, 517, + 392, 265, 430, 1347, 1375, 373, 570, 571, 315, 393, + 0, 0, 0, 0, 1403, 1389, 522, 0, 1331, 1406, + 1300, 1319, 1416, 1322, 1325, 1368, 1278, 1346, 413, 1316, + 1271, 1304, 1273, 1311, 1274, 1302, 1333, 269, 1299, 1391, + 1350, 1405, 363, 266, 1280, 1305, 427, 1321, 203, 1370, + 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, + 382, 425, 512, 419, 1412, 367, 1356, 0, 493, 398, + 0, 0, 0, 1335, 1395, 1344, 1382, 1330, 1369, 1288, + 1355, 1407, 1317, 1365, 1408, 322, 247, 324, 202, 410, + 494, 285, 0, 0, 0, 0, 0, 194, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, + 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, + 342, 347, 354, 360, 1313, 1362, 1402, 1314, 1364, 264, + 320, 271, 263, 574, 1413, 1394, 1277, 1343, 1401, 1338, + 0, 0, 228, 1404, 1337, 0, 1367, 0, 1419, 1272, + 1358, 0, 1275, 1279, 1415, 1399, 1308, 274, 0, 0, + 0, 0, 0, 0, 0, 1334, 1345, 1379, 1383, 1328, + 0, 0, 0, 0, 0, 0, 3203, 0, 1306, 0, + 1354, 0, 0, 0, 1284, 1276, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1332, 0, + 0, 0, 0, 1287, 0, 1307, 1380, 0, 1270, 296, + 1281, 399, 256, 0, 450, 1387, 1398, 1329, 618, 1400, + 1327, 1326, 1374, 1285, 1393, 1320, 362, 1283, 329, 197, + 224, 0, 1318, 409, 458, 470, 1392, 1303, 1312, 252, + 1310, 468, 423, 596, 232, 283, 455, 429, 466, 437, + 286, 1353, 1372, 467, 369, 579, 447, 593, 619, 620, + 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, + 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, + 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, + 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, + 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, + 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, + 641, 227, 612, 219, 1282, 611, 405, 578, 589, 391, + 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, + 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, + 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, + 236, 1298, 278, 282, 290, 293, 302, 303, 312, 364, + 416, 443, 439, 448, 1388, 573, 594, 606, 617, 623, + 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, + 491, 332, 370, 1377, 1418, 422, 469, 239, 598, 492, + 199, 1292, 1297, 1290, 0, 253, 254, 1359, 569, 1293, + 1291, 1348, 1349, 1294, 1409, 1410, 1411, 1396, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, + 504, 505, 506, 507, 0, 509, 1381, 1286, 0, 1295, + 1296, 395, 1390, 585, 586, 661, 381, 482, 595, 334, + 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, + 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, + 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, + 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, + 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, + 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, + 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, + 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, + 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, + 525, 533, 1352, 196, 220, 365, 1414, 451, 287, 639, + 608, 603, 205, 222, 1289, 261, 1301, 1309, 0, 1315, + 1323, 1324, 1336, 1339, 1340, 1341, 1342, 1360, 1361, 1363, + 1371, 1373, 1376, 1378, 1385, 1397, 1417, 198, 200, 208, + 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, + 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, + 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, + 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, + 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, + 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, + 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, + 590, 634, 616, 435, 375, 1351, 1357, 378, 280, 304, + 319, 1366, 607, 498, 226, 463, 289, 250, 1384, 1386, + 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, + 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, + 517, 392, 265, 430, 1347, 1375, 373, 570, 571, 315, + 393, 0, 0, 0, 0, 1403, 1389, 522, 0, 1331, + 1406, 1300, 1319, 1416, 1322, 1325, 1368, 1278, 1346, 413, + 1316, 1271, 1304, 1273, 1311, 1274, 1302, 1333, 269, 1299, + 1391, 1350, 1405, 363, 266, 1280, 1305, 427, 1321, 203, + 1370, 483, 251, 374, 371, 577, 281, 272, 268, 249, + 316, 382, 425, 512, 419, 1412, 367, 1356, 0, 493, + 398, 0, 0, 0, 1335, 1395, 1344, 1382, 1330, 1369, + 1288, 1355, 1407, 1317, 1365, 1408, 322, 247, 324, 202, + 410, 494, 285, 0, 0, 0, 0, 0, 711, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, + 0, 244, 0, 0, 0, 348, 357, 356, 337, 338, + 340, 342, 347, 354, 360, 1313, 1362, 1402, 1314, 1364, + 264, 320, 271, 263, 574, 1413, 1394, 1277, 1343, 1401, + 1338, 0, 0, 228, 1404, 1337, 0, 1367, 0, 1419, + 1272, 1358, 0, 1275, 1279, 1415, 1399, 1308, 274, 0, + 0, 0, 0, 0, 0, 0, 1334, 1345, 1379, 1383, + 1328, 0, 0, 0, 0, 0, 0, 3164, 0, 1306, + 0, 1354, 0, 0, 0, 1284, 1276, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1332, + 0, 0, 0, 0, 1287, 0, 1307, 1380, 0, 1270, + 296, 1281, 399, 256, 0, 450, 1387, 1398, 1329, 618, + 1400, 1327, 1326, 1374, 1285, 1393, 1320, 362, 1283, 329, + 197, 224, 0, 1318, 409, 458, 470, 1392, 1303, 1312, + 252, 1310, 468, 423, 596, 232, 283, 455, 429, 466, + 437, 286, 1353, 1372, 467, 369, 579, 447, 593, 619, + 620, 262, 403, 605, 516, 613, 637, 225, 259, 417, + 501, 599, 490, 394, 575, 576, 328, 489, 294, 201, + 366, 625, 223, 476, 368, 241, 230, 581, 602, 298, + 288, 453, 632, 212, 511, 591, 238, 480, 0, 0, + 640, 246, 500, 214, 588, 499, 390, 325, 326, 213, + 0, 454, 267, 292, 0, 0, 257, 412, 583, 584, + 255, 641, 227, 612, 219, 1282, 611, 405, 578, 589, + 391, 380, 218, 587, 389, 379, 333, 352, 353, 279, + 306, 444, 372, 445, 305, 307, 401, 400, 402, 206, + 600, 0, 207, 0, 495, 601, 642, 449, 211, 233, + 234, 236, 1298, 278, 282, 290, 293, 302, 303, 312, + 364, 416, 443, 439, 448, 1388, 573, 594, 606, 617, + 623, 624, 626, 627, 628, 629, 630, 633, 631, 404, + 310, 491, 332, 370, 1377, 1418, 422, 469, 239, 598, + 492, 199, 1292, 1297, 1290, 0, 253, 254, 1359, 569, + 1293, 1291, 1348, 1349, 1294, 1409, 1410, 1411, 1396, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 638, 502, 508, + 503, 504, 505, 506, 507, 0, 509, 1381, 1286, 0, + 1295, 1296, 395, 1390, 585, 586, 661, 381, 482, 595, + 334, 346, 349, 339, 358, 0, 359, 335, 336, 341, + 343, 344, 345, 350, 351, 355, 361, 248, 209, 387, + 396, 572, 311, 215, 216, 217, 518, 519, 520, 521, + 609, 610, 614, 204, 459, 460, 461, 462, 291, 604, + 308, 465, 464, 330, 331, 376, 446, 534, 536, 547, + 551, 553, 555, 561, 564, 535, 537, 548, 552, 554, + 556, 562, 565, 524, 526, 528, 530, 543, 542, 539, + 567, 568, 545, 550, 529, 541, 546, 559, 566, 563, + 523, 527, 531, 540, 558, 557, 538, 549, 560, 544, + 532, 525, 533, 1352, 196, 220, 365, 1414, 451, 287, + 639, 608, 603, 205, 222, 1289, 261, 1301, 1309, 0, + 1315, 1323, 1324, 1336, 1339, 1340, 1341, 1342, 1360, 1361, + 1363, 1371, 1373, 1376, 1378, 1385, 1397, 1417, 198, 200, + 208, 221, 231, 235, 242, 260, 275, 277, 284, 297, + 309, 317, 318, 321, 327, 377, 383, 384, 385, 386, + 406, 407, 408, 411, 414, 415, 418, 420, 421, 424, + 428, 432, 433, 434, 436, 438, 440, 452, 457, 471, + 472, 473, 474, 475, 478, 479, 484, 485, 486, 487, + 488, 496, 497, 510, 580, 582, 597, 615, 621, 477, + 300, 301, 441, 442, 313, 314, 635, 636, 299, 592, + 622, 590, 634, 616, 435, 375, 1351, 1357, 378, 280, + 304, 319, 1366, 607, 498, 226, 463, 289, 250, 1384, + 1386, 210, 245, 229, 258, 273, 276, 323, 388, 397, + 426, 431, 295, 270, 243, 456, 240, 481, 513, 514, + 515, 517, 392, 265, 430, 1347, 1375, 373, 570, 571, + 315, 393, 0, 0, 0, 0, 1403, 1389, 522, 0, + 1331, 1406, 1300, 1319, 1416, 1322, 1325, 1368, 1278, 1346, + 413, 1316, 1271, 1304, 1273, 1311, 1274, 1302, 1333, 269, + 1299, 1391, 1350, 1405, 363, 266, 1280, 1305, 427, 1321, + 203, 1370, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 1412, 367, 1356, 0, + 493, 398, 0, 0, 0, 1335, 1395, 1344, 1382, 1330, + 1369, 1288, 1355, 1407, 1317, 1365, 1408, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 0, 0, 944, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 1313, 1362, 1402, 1314, + 1364, 264, 320, 271, 263, 574, 1413, 1394, 1277, 1343, + 1401, 1338, 0, 0, 228, 1404, 1337, 0, 1367, 0, + 1419, 1272, 1358, 0, 1275, 1279, 1415, 1399, 1308, 274, + 0, 0, 0, 0, 0, 0, 0, 1334, 1345, 1379, + 1383, 1328, 0, 0, 0, 0, 0, 0, 2369, 0, + 1306, 0, 1354, 0, 0, 0, 1284, 1276, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1332, 0, 0, 0, 0, 1287, 0, 1307, 1380, 0, + 1270, 296, 1281, 399, 256, 0, 450, 1387, 1398, 1329, + 618, 1400, 1327, 1326, 1374, 1285, 1393, 1320, 362, 1283, + 329, 197, 224, 0, 1318, 409, 458, 470, 1392, 1303, + 1312, 252, 1310, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 1353, 1372, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 1282, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 1298, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 1388, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 1377, 1418, 422, 469, 239, + 598, 492, 199, 1292, 1297, 1290, 0, 253, 254, 1359, + 569, 1293, 1291, 1348, 1349, 1294, 1409, 1410, 1411, 1396, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 1381, 1286, + 0, 1295, 1296, 395, 1390, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 1352, 196, 220, 365, 1414, 451, + 287, 639, 608, 603, 205, 222, 1289, 261, 1301, 1309, + 0, 1315, 1323, 1324, 1336, 1339, 1340, 1341, 1342, 1360, + 1361, 1363, 1371, 1373, 1376, 1378, 1385, 1397, 1417, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 1351, 1357, 378, + 280, 304, 319, 1366, 607, 498, 226, 463, 289, 250, + 1384, 1386, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 1347, 1375, 373, 570, + 571, 315, 393, 0, 0, 0, 0, 1403, 1389, 522, + 0, 1331, 1406, 1300, 1319, 1416, 1322, 1325, 1368, 1278, + 1346, 413, 1316, 1271, 1304, 1273, 1311, 1274, 1302, 1333, + 269, 1299, 1391, 1350, 1405, 363, 266, 1280, 1305, 427, + 1321, 203, 1370, 483, 251, 374, 371, 577, 281, 272, + 268, 249, 316, 382, 425, 512, 419, 1412, 367, 1356, + 0, 493, 398, 0, 0, 0, 1335, 1395, 1344, 1382, + 1330, 1369, 1288, 1355, 1407, 1317, 1365, 1408, 322, 247, + 324, 202, 410, 494, 285, 0, 95, 0, 0, 0, + 711, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 237, 0, 0, 244, 0, 0, 0, 348, 357, 356, + 337, 338, 340, 342, 347, 354, 360, 1313, 1362, 1402, + 1314, 1364, 264, 320, 271, 263, 574, 1413, 1394, 1277, + 1343, 1401, 1338, 0, 0, 228, 1404, 1337, 0, 1367, + 0, 1419, 1272, 1358, 0, 1275, 1279, 1415, 1399, 1308, + 274, 0, 0, 0, 0, 0, 0, 0, 1334, 1345, + 1379, 1383, 1328, 0, 0, 0, 0, 0, 0, 0, + 0, 1306, 0, 1354, 0, 0, 0, 1284, 1276, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1332, 0, 0, 0, 0, 1287, 0, 1307, 1380, + 0, 1270, 296, 1281, 399, 256, 0, 450, 1387, 1398, 1329, 618, 1400, 1327, 1326, 1374, 1285, 1393, 1320, 362, 1283, 329, 197, 224, 0, 1318, 409, 458, 470, 1392, 1303, 1312, 252, 1310, 468, 423, 596, 232, 283, 455, @@ -2903,7 +3150,7 @@ var yyAct = [...]int{ 1356, 0, 493, 398, 0, 0, 0, 1335, 1395, 1344, 1382, 1330, 1369, 1288, 1355, 1407, 1317, 1365, 1408, 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, 0, - 0, 711, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, 360, 1313, 1362, 1402, 1314, 1364, 264, 320, 271, 263, 574, 1413, 1394, @@ -2911,7 +3158,7 @@ var yyAct = [...]int{ 1367, 0, 1419, 1272, 1358, 0, 1275, 1279, 1415, 1399, 1308, 274, 0, 0, 0, 0, 0, 0, 0, 1334, 1345, 1379, 1383, 1328, 0, 0, 0, 0, 0, 0, - 3152, 0, 1306, 0, 1354, 0, 0, 0, 1284, 1276, + 0, 0, 1306, 0, 1354, 0, 0, 0, 1284, 1276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2976,7 +3223,7 @@ var yyAct = [...]int{ 367, 1356, 0, 493, 398, 0, 0, 0, 1335, 1395, 1344, 1382, 1330, 1369, 1288, 1355, 1407, 1317, 1365, 1408, 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 0, 0, 944, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, 360, 1313, 1362, 1402, 1314, 1364, 264, 320, 271, 263, 574, 1413, @@ -2984,7 +3231,7 @@ var yyAct = [...]int{ 0, 1367, 0, 1419, 1272, 1358, 0, 1275, 1279, 1415, 1399, 1308, 274, 0, 0, 0, 0, 0, 0, 0, 1334, 1345, 1379, 1383, 1328, 0, 0, 0, 0, 0, - 0, 2369, 0, 1306, 0, 1354, 0, 0, 0, 1284, + 0, 0, 0, 1306, 0, 1354, 0, 0, 0, 1284, 1276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3048,8 +3295,8 @@ var yyAct = [...]int{ 577, 281, 272, 268, 249, 316, 382, 425, 512, 419, 1412, 367, 1356, 0, 493, 398, 0, 0, 0, 1335, 1395, 1344, 1382, 1330, 1369, 1288, 1355, 1407, 1317, 1365, - 1408, 322, 247, 324, 202, 410, 494, 285, 0, 95, - 0, 0, 0, 711, 0, 0, 0, 0, 0, 0, + 1408, 322, 247, 324, 202, 410, 494, 285, 0, 0, + 0, 0, 0, 944, 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, 360, 1313, 1362, 1402, 1314, 1364, 264, 320, 271, 263, 574, @@ -3114,1328 +3361,1036 @@ var yyAct = [...]int{ 273, 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, 430, 1347, 1375, 373, 570, 571, 315, 393, 0, 0, 0, - 0, 1403, 1389, 522, 0, 1331, 1406, 1300, 1319, 1416, - 1322, 1325, 1368, 1278, 1346, 413, 1316, 1271, 1304, 1273, - 1311, 1274, 1302, 1333, 269, 1299, 1391, 1350, 1405, 363, - 266, 1280, 1305, 427, 1321, 203, 1370, 483, 251, 374, + 0, 0, 0, 522, 0, 764, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 751, 0, 0, 0, 269, 756, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, - 419, 1412, 367, 1356, 0, 493, 398, 0, 0, 0, - 1335, 1395, 1344, 1382, 1330, 1369, 1288, 1355, 1407, 1317, - 1365, 1408, 322, 247, 324, 202, 410, 494, 285, 0, - 0, 0, 0, 0, 194, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, - 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, - 360, 1313, 1362, 1402, 1314, 1364, 264, 320, 271, 263, - 574, 1413, 1394, 1277, 1343, 1401, 1338, 0, 0, 228, - 1404, 1337, 0, 1367, 0, 1419, 1272, 1358, 0, 1275, - 1279, 1415, 1399, 1308, 274, 0, 0, 0, 0, 0, - 0, 0, 1334, 1345, 1379, 1383, 1328, 0, 0, 0, - 0, 0, 0, 0, 0, 1306, 0, 1354, 0, 0, - 0, 1284, 1276, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1332, 0, 0, 0, 0, - 1287, 0, 1307, 1380, 0, 1270, 296, 1281, 399, 256, - 0, 450, 1387, 1398, 1329, 618, 1400, 1327, 1326, 1374, - 1285, 1393, 1320, 362, 1283, 329, 197, 224, 0, 1318, - 409, 458, 470, 1392, 1303, 1312, 252, 1310, 468, 423, - 596, 232, 283, 455, 429, 466, 437, 286, 1353, 1372, + 419, 763, 367, 0, 0, 493, 398, 0, 0, 0, + 0, 0, 758, 759, 0, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 95, 0, 0, 1008, 944, 735, 910, 948, 1009, 961, + 962, 963, 949, 0, 237, 950, 951, 244, 952, 0, + 909, 794, 796, 795, 859, 860, 861, 862, 863, 864, + 865, 792, 957, 964, 965, 0, 264, 320, 271, 263, + 574, 0, 0, 2191, 2192, 2193, 0, 0, 0, 228, + 0, 0, 0, 0, 0, 0, 0, 731, 748, 0, + 762, 0, 0, 0, 274, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 745, 746, 0, 0, 0, 0, 904, 0, 747, + 0, 0, 755, 966, 967, 968, 969, 970, 971, 972, + 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, + 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, + 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, + 1003, 1004, 1005, 1006, 1007, 757, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 903, 0, 0, 618, 0, 0, 901, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 954, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, - 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, - 219, 1282, 611, 405, 578, 589, 391, 380, 218, 587, - 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, - 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, - 495, 601, 642, 449, 211, 233, 234, 236, 1298, 278, + 0, 0, 257, 412, 955, 956, 255, 641, 800, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 808, 809, 279, 306, 885, 884, 883, + 305, 307, 881, 882, 880, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, - 448, 1388, 573, 594, 606, 617, 623, 624, 626, 627, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, - 1377, 1418, 422, 469, 239, 598, 492, 199, 1292, 1297, - 1290, 0, 253, 254, 1359, 569, 1293, 1291, 1348, 1349, - 1294, 1409, 1410, 1411, 1396, 643, 644, 645, 646, 647, + 0, 0, 422, 469, 239, 598, 492, 891, 913, 902, + 768, 769, 892, 893, 917, 894, 771, 772, 914, 915, + 765, 766, 770, 916, 918, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, - 507, 0, 509, 1381, 1286, 0, 1295, 1296, 395, 1390, - 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, - 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, - 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, - 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, - 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, - 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, - 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, - 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, - 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, - 558, 557, 538, 549, 560, 544, 532, 525, 533, 1352, - 196, 220, 365, 1414, 451, 287, 639, 608, 603, 205, - 222, 1289, 261, 1301, 1309, 0, 1315, 1323, 1324, 1336, - 1339, 1340, 1341, 1342, 1360, 1361, 1363, 1371, 1373, 1376, - 1378, 1385, 1397, 1417, 198, 200, 208, 221, 231, 235, + 507, 0, 509, 905, 754, 753, 0, 760, 761, 0, + 790, 791, 793, 797, 798, 799, 810, 857, 858, 866, + 868, 869, 867, 870, 871, 872, 875, 876, 877, 878, + 873, 874, 879, 773, 777, 774, 775, 776, 788, 778, + 779, 780, 781, 782, 783, 784, 785, 786, 787, 789, + 928, 929, 930, 931, 932, 933, 803, 807, 806, 804, + 805, 801, 802, 829, 828, 830, 831, 832, 833, 834, + 835, 837, 836, 838, 839, 840, 841, 842, 843, 811, + 812, 815, 816, 814, 813, 817, 826, 827, 818, 819, + 820, 821, 822, 823, 825, 824, 844, 845, 846, 847, + 848, 850, 849, 853, 854, 852, 851, 856, 855, 752, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 919, 261, 920, 0, 0, 924, 0, 0, 0, + 926, 925, 0, 927, 889, 888, 0, 0, 921, 922, + 0, 923, 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, - 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, - 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, - 435, 375, 1351, 1357, 378, 280, 304, 319, 1366, 607, - 498, 226, 463, 289, 250, 1384, 1386, 210, 245, 229, + 580, 582, 597, 615, 621, 477, 934, 935, 936, 937, + 938, 939, 940, 941, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 959, 0, 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, - 430, 1347, 1375, 373, 570, 571, 315, 393, 0, 0, - 0, 0, 1403, 1389, 522, 0, 1331, 1406, 1300, 1319, - 1416, 1322, 1325, 1368, 1278, 1346, 413, 1316, 1271, 1304, - 1273, 1311, 1274, 1302, 1333, 269, 1299, 1391, 1350, 1405, - 363, 266, 1280, 1305, 427, 1321, 203, 1370, 483, 251, - 374, 371, 577, 281, 272, 268, 249, 316, 382, 425, - 512, 419, 1412, 367, 1356, 0, 493, 398, 0, 0, - 0, 1335, 1395, 1344, 1382, 1330, 1369, 1288, 1355, 1407, - 1317, 1365, 1408, 322, 247, 324, 202, 410, 494, 285, - 0, 0, 0, 0, 0, 711, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 237, 0, 0, 244, 0, - 0, 0, 348, 357, 356, 337, 338, 340, 342, 347, - 354, 360, 1313, 1362, 1402, 1314, 1364, 264, 320, 271, - 263, 574, 1413, 1394, 1277, 1343, 1401, 1338, 0, 0, - 228, 1404, 1337, 0, 1367, 0, 1419, 1272, 1358, 0, - 1275, 1279, 1415, 1399, 1308, 274, 0, 0, 0, 0, - 0, 0, 0, 1334, 1345, 1379, 1383, 1328, 0, 0, - 0, 0, 0, 0, 0, 0, 1306, 0, 1354, 0, - 0, 0, 1284, 1276, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1332, 0, 0, 0, - 0, 1287, 0, 1307, 1380, 0, 1270, 296, 1281, 399, - 256, 0, 450, 1387, 1398, 1329, 618, 1400, 1327, 1326, - 1374, 1285, 1393, 1320, 362, 1283, 329, 197, 224, 0, - 1318, 409, 458, 470, 1392, 1303, 1312, 252, 1310, 468, - 423, 596, 232, 283, 455, 429, 466, 437, 286, 1353, - 1372, 467, 369, 579, 447, 593, 619, 620, 262, 403, - 605, 516, 613, 637, 225, 259, 417, 501, 599, 490, - 394, 575, 576, 328, 489, 294, 201, 366, 625, 223, - 476, 368, 241, 230, 581, 602, 298, 288, 453, 632, - 212, 511, 591, 238, 480, 0, 0, 640, 246, 500, - 214, 588, 499, 390, 325, 326, 213, 0, 454, 267, - 292, 0, 0, 257, 412, 583, 584, 255, 641, 227, - 612, 219, 1282, 611, 405, 578, 589, 391, 380, 218, - 587, 389, 379, 333, 352, 353, 279, 306, 444, 372, - 445, 305, 307, 401, 400, 402, 206, 600, 0, 207, - 0, 495, 601, 642, 449, 211, 233, 234, 236, 1298, - 278, 282, 290, 293, 302, 303, 312, 364, 416, 443, - 439, 448, 1388, 573, 594, 606, 617, 623, 624, 626, - 627, 628, 629, 630, 633, 631, 404, 310, 491, 332, - 370, 1377, 1418, 422, 469, 239, 598, 492, 199, 1292, - 1297, 1290, 0, 253, 254, 1359, 569, 1293, 1291, 1348, - 1349, 1294, 1409, 1410, 1411, 1396, 643, 644, 645, 646, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 638, 502, 508, 503, 504, 505, - 506, 507, 0, 509, 1381, 1286, 0, 1295, 1296, 395, - 1390, 585, 586, 661, 381, 482, 595, 334, 346, 349, - 339, 358, 0, 359, 335, 336, 341, 343, 344, 345, - 350, 351, 355, 361, 248, 209, 387, 396, 572, 311, - 215, 216, 217, 518, 519, 520, 521, 609, 610, 614, - 204, 459, 460, 461, 462, 291, 604, 308, 465, 464, - 330, 331, 376, 446, 534, 536, 547, 551, 553, 555, - 561, 564, 535, 537, 548, 552, 554, 556, 562, 565, - 524, 526, 528, 530, 543, 542, 539, 567, 568, 545, - 550, 529, 541, 546, 559, 566, 563, 523, 527, 531, - 540, 558, 557, 538, 549, 560, 544, 532, 525, 533, - 1352, 196, 220, 365, 1414, 451, 287, 639, 608, 603, - 205, 222, 1289, 261, 1301, 1309, 0, 1315, 1323, 1324, - 1336, 1339, 1340, 1341, 1342, 1360, 1361, 1363, 1371, 1373, - 1376, 1378, 1385, 1397, 1417, 198, 200, 208, 221, 231, - 235, 242, 260, 275, 277, 284, 297, 309, 317, 318, - 321, 327, 377, 383, 384, 385, 386, 406, 407, 408, - 411, 414, 415, 418, 420, 421, 424, 428, 432, 433, - 434, 436, 438, 440, 452, 457, 471, 472, 473, 474, - 475, 478, 479, 484, 485, 486, 487, 488, 496, 497, - 510, 580, 582, 597, 615, 621, 477, 300, 301, 441, - 442, 313, 314, 635, 636, 299, 592, 622, 590, 634, - 616, 435, 375, 1351, 1357, 378, 280, 304, 319, 1366, - 607, 498, 226, 463, 289, 250, 1384, 1386, 210, 245, - 229, 258, 273, 276, 323, 388, 397, 426, 431, 295, - 270, 243, 456, 240, 481, 513, 514, 515, 517, 392, - 265, 430, 1347, 1375, 373, 570, 571, 315, 393, 0, - 0, 0, 0, 1403, 1389, 522, 0, 1331, 1406, 1300, - 1319, 1416, 1322, 1325, 1368, 1278, 1346, 413, 1316, 1271, - 1304, 1273, 1311, 1274, 1302, 1333, 269, 1299, 1391, 1350, - 1405, 363, 266, 1280, 1305, 427, 1321, 203, 1370, 483, - 251, 374, 371, 577, 281, 272, 268, 249, 316, 382, - 425, 512, 419, 1412, 367, 1356, 0, 493, 398, 0, - 0, 0, 1335, 1395, 1344, 1382, 1330, 1369, 1288, 1355, - 1407, 1317, 1365, 1408, 322, 247, 324, 202, 410, 494, - 285, 0, 0, 0, 0, 0, 944, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 237, 0, 0, 244, - 0, 0, 0, 348, 357, 356, 337, 338, 340, 342, - 347, 354, 360, 1313, 1362, 1402, 1314, 1364, 264, 320, - 271, 263, 574, 1413, 1394, 1277, 1343, 1401, 1338, 0, - 0, 228, 1404, 1337, 0, 1367, 0, 1419, 1272, 1358, - 0, 1275, 1279, 1415, 1399, 1308, 274, 0, 0, 0, - 0, 0, 0, 0, 1334, 1345, 1379, 1383, 1328, 0, - 0, 0, 0, 0, 0, 0, 0, 1306, 0, 1354, - 0, 0, 0, 1284, 1276, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1332, 0, 0, - 0, 0, 1287, 0, 1307, 1380, 0, 1270, 296, 1281, - 399, 256, 0, 450, 1387, 1398, 1329, 618, 1400, 1327, - 1326, 1374, 1285, 1393, 1320, 362, 1283, 329, 197, 224, - 0, 1318, 409, 458, 470, 1392, 1303, 1312, 252, 1310, - 468, 423, 596, 232, 283, 455, 429, 466, 437, 286, - 1353, 1372, 467, 369, 579, 447, 593, 619, 620, 262, - 403, 605, 516, 613, 637, 225, 259, 417, 501, 599, - 490, 394, 575, 576, 328, 489, 294, 201, 366, 625, - 223, 476, 368, 241, 230, 581, 602, 298, 288, 453, - 632, 212, 511, 591, 238, 480, 0, 0, 640, 246, - 500, 214, 588, 499, 390, 325, 326, 213, 0, 454, - 267, 292, 0, 0, 257, 412, 583, 584, 255, 641, - 227, 612, 219, 1282, 611, 405, 578, 589, 391, 380, - 218, 587, 389, 379, 333, 352, 353, 279, 306, 444, - 372, 445, 305, 307, 401, 400, 402, 206, 600, 0, - 207, 0, 495, 601, 642, 449, 211, 233, 234, 236, - 1298, 278, 282, 290, 293, 302, 303, 312, 364, 416, - 443, 439, 448, 1388, 573, 594, 606, 617, 623, 624, - 626, 627, 628, 629, 630, 633, 631, 404, 310, 491, - 332, 370, 1377, 1418, 422, 469, 239, 598, 492, 199, - 1292, 1297, 1290, 0, 253, 254, 1359, 569, 1293, 1291, - 1348, 1349, 1294, 1409, 1410, 1411, 1396, 643, 644, 645, - 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, - 656, 657, 658, 659, 660, 638, 502, 508, 503, 504, - 505, 506, 507, 0, 509, 1381, 1286, 0, 1295, 1296, - 395, 1390, 585, 586, 661, 381, 482, 595, 334, 346, - 349, 339, 358, 0, 359, 335, 336, 341, 343, 344, - 345, 350, 351, 355, 361, 248, 209, 387, 396, 572, - 311, 215, 216, 217, 518, 519, 520, 521, 609, 610, - 614, 204, 459, 460, 461, 462, 291, 604, 308, 465, - 464, 330, 331, 376, 446, 534, 536, 547, 551, 553, - 555, 561, 564, 535, 537, 548, 552, 554, 556, 562, - 565, 524, 526, 528, 530, 543, 542, 539, 567, 568, - 545, 550, 529, 541, 546, 559, 566, 563, 523, 527, - 531, 540, 558, 557, 538, 549, 560, 544, 532, 525, - 533, 1352, 196, 220, 365, 1414, 451, 287, 639, 608, - 603, 205, 222, 1289, 261, 1301, 1309, 0, 1315, 1323, - 1324, 1336, 1339, 1340, 1341, 1342, 1360, 1361, 1363, 1371, - 1373, 1376, 1378, 1385, 1397, 1417, 198, 200, 208, 221, - 231, 235, 242, 260, 275, 277, 284, 297, 309, 317, - 318, 321, 327, 377, 383, 384, 385, 386, 406, 407, - 408, 411, 414, 415, 418, 420, 421, 424, 428, 432, - 433, 434, 436, 438, 440, 452, 457, 471, 472, 473, - 474, 475, 478, 479, 484, 485, 486, 487, 488, 496, - 497, 510, 580, 582, 597, 615, 621, 477, 300, 301, - 441, 442, 313, 314, 635, 636, 299, 592, 622, 590, - 634, 616, 435, 375, 1351, 1357, 378, 280, 304, 319, - 1366, 607, 498, 226, 463, 289, 250, 1384, 1386, 210, - 245, 229, 258, 273, 276, 323, 388, 397, 426, 431, - 295, 270, 243, 456, 240, 481, 513, 514, 515, 517, - 392, 265, 430, 1347, 1375, 373, 570, 571, 315, 393, - 0, 0, 0, 0, 0, 0, 522, 0, 764, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 751, 0, 0, 0, 269, 756, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 763, 367, 0, 0, 493, 398, - 0, 0, 0, 0, 0, 758, 759, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 95, 0, 0, 1008, 944, 735, 910, - 948, 1009, 961, 962, 963, 949, 0, 237, 950, 951, - 244, 952, 0, 909, 794, 796, 795, 859, 860, 861, - 862, 863, 864, 865, 792, 957, 964, 965, 0, 264, - 320, 271, 263, 574, 0, 0, 2191, 2192, 2193, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 731, 748, 0, 762, 0, 0, 0, 274, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 745, 746, 0, 0, 0, 0, - 904, 0, 747, 0, 0, 755, 966, 967, 968, 969, - 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, - 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, - 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, - 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 757, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 903, 0, 0, 618, 0, - 0, 901, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 954, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 955, 956, 255, - 641, 800, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 808, 809, 279, 306, - 885, 884, 883, 305, 307, 881, 882, 880, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 891, 913, 902, 768, 769, 892, 893, 917, 894, 771, - 772, 914, 915, 765, 766, 770, 916, 918, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 905, 754, 753, 0, - 760, 761, 0, 790, 791, 793, 797, 798, 799, 810, - 857, 858, 866, 868, 869, 867, 870, 871, 872, 875, - 876, 877, 878, 873, 874, 879, 773, 777, 774, 775, - 776, 788, 778, 779, 780, 781, 782, 783, 784, 785, - 786, 787, 789, 928, 929, 930, 931, 932, 933, 803, - 807, 806, 804, 805, 801, 802, 829, 828, 830, 831, - 832, 833, 834, 835, 837, 836, 838, 839, 840, 841, - 842, 843, 811, 812, 815, 816, 814, 813, 817, 826, - 827, 818, 819, 820, 821, 822, 823, 825, 824, 844, - 845, 846, 847, 848, 850, 849, 853, 854, 852, 851, - 856, 855, 752, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 919, 261, 920, 0, 0, 924, - 0, 0, 0, 926, 925, 0, 927, 889, 888, 0, - 0, 921, 922, 0, 923, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 934, - 935, 936, 937, 938, 939, 940, 941, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 959, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 764, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 751, 0, - 0, 0, 269, 756, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 763, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, - 758, 759, 0, 0, 0, 0, 0, 0, 2398, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 95, 0, - 0, 1008, 944, 735, 910, 948, 1009, 961, 962, 963, - 949, 0, 237, 950, 951, 244, 952, 0, 909, 794, - 796, 795, 859, 860, 861, 862, 863, 864, 865, 792, - 957, 964, 965, 2399, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 0, 0, 0, 0, 731, 748, 0, 762, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 745, - 746, 0, 0, 0, 0, 904, 0, 747, 0, 0, - 755, 966, 967, 968, 969, 970, 971, 972, 973, 974, - 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, - 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, - 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, - 1005, 1006, 1007, 757, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 903, 0, 0, 618, 0, 0, 901, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 954, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 955, 956, 255, 641, 800, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 808, 809, 279, 306, 885, 884, 883, 305, 307, - 881, 882, 880, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 891, 913, 902, 768, 769, - 892, 893, 917, 894, 771, 772, 914, 915, 765, 766, - 770, 916, 918, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 905, 754, 753, 0, 760, 761, 0, 790, 791, - 793, 797, 798, 799, 810, 857, 858, 866, 868, 869, - 867, 870, 871, 872, 875, 876, 877, 878, 873, 874, - 879, 773, 777, 774, 775, 776, 788, 778, 779, 780, - 781, 782, 783, 784, 785, 786, 787, 789, 928, 929, - 930, 931, 932, 933, 803, 807, 806, 804, 805, 801, - 802, 829, 828, 830, 831, 832, 833, 834, 835, 837, - 836, 838, 839, 840, 841, 842, 843, 811, 812, 815, - 816, 814, 813, 817, 826, 827, 818, 819, 820, 821, - 822, 823, 825, 824, 844, 845, 846, 847, 848, 850, - 849, 853, 854, 852, 851, 856, 855, 752, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 919, - 261, 920, 0, 0, 924, 0, 0, 0, 926, 925, - 0, 927, 889, 888, 0, 0, 921, 922, 0, 923, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 934, 935, 936, 937, 938, 939, - 940, 941, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 959, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 86, 522, 0, 764, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 751, 0, 0, 0, 269, 756, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 763, 367, 0, 0, 493, 398, - 0, 0, 0, 0, 0, 758, 759, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 95, 0, 0, 1008, 944, 735, 910, - 948, 1009, 961, 962, 963, 949, 0, 237, 950, 951, - 244, 952, 0, 909, 794, 796, 795, 859, 860, 861, - 862, 863, 864, 865, 792, 957, 964, 965, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 731, 748, 0, 762, 0, 0, 0, 274, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 745, 746, 0, 0, 0, 0, - 904, 0, 747, 0, 0, 755, 966, 967, 968, 969, - 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, - 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, - 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, - 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 757, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 903, 0, 0, 618, 0, - 0, 901, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 954, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 955, 956, 255, - 641, 800, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 808, 809, 279, 306, - 885, 884, 883, 305, 307, 881, 882, 880, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 891, 913, 902, 768, 769, 892, 893, 917, 894, 771, - 772, 914, 915, 765, 766, 770, 916, 918, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 905, 754, 753, 0, - 760, 761, 0, 790, 791, 793, 797, 798, 799, 810, - 857, 858, 866, 868, 869, 867, 870, 871, 872, 875, - 876, 877, 878, 873, 874, 879, 773, 777, 774, 775, - 776, 788, 778, 779, 780, 781, 782, 783, 784, 785, - 786, 787, 789, 928, 929, 930, 931, 932, 933, 803, - 807, 806, 804, 805, 801, 802, 829, 828, 830, 831, - 832, 833, 834, 835, 837, 836, 838, 839, 840, 841, - 842, 843, 811, 812, 815, 816, 814, 813, 817, 826, - 827, 818, 819, 820, 821, 822, 823, 825, 824, 844, - 845, 846, 847, 848, 850, 849, 853, 854, 852, 851, - 856, 855, 752, 196, 220, 365, 94, 451, 287, 639, - 608, 603, 205, 222, 919, 261, 920, 0, 0, 924, - 0, 0, 0, 926, 925, 0, 927, 889, 888, 0, - 0, 921, 922, 0, 923, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 934, - 935, 936, 937, 938, 939, 940, 941, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 959, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 764, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 751, 0, - 0, 0, 269, 756, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 763, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, - 758, 759, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 95, 0, - 0, 1008, 944, 735, 910, 948, 1009, 961, 962, 963, - 949, 0, 237, 950, 951, 244, 952, 0, 909, 794, - 796, 795, 859, 860, 861, 862, 863, 864, 865, 792, - 957, 964, 965, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 0, 0, 0, 0, 731, 748, 0, 762, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 745, - 746, 0, 0, 0, 0, 904, 0, 747, 0, 0, - 755, 966, 967, 968, 969, 970, 971, 972, 973, 974, - 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, - 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, - 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, - 1005, 1006, 1007, 757, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 903, 0, 0, 618, 0, 0, 901, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 954, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 4016, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 955, 956, 255, 641, 800, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 808, 809, 279, 306, 885, 884, 883, 305, 307, - 881, 882, 880, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 891, 913, 902, 768, 769, - 892, 893, 917, 894, 771, 772, 914, 915, 765, 766, - 770, 916, 918, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 905, 754, 753, 0, 760, 761, 0, 790, 791, - 793, 797, 798, 799, 810, 857, 858, 866, 868, 869, - 867, 870, 871, 872, 875, 876, 877, 878, 873, 874, - 879, 773, 777, 774, 775, 776, 788, 778, 779, 780, - 781, 782, 783, 784, 785, 786, 787, 789, 928, 929, - 930, 931, 932, 933, 803, 807, 806, 804, 805, 801, - 802, 829, 828, 830, 831, 832, 833, 834, 835, 837, - 836, 838, 839, 840, 841, 842, 843, 811, 812, 815, - 816, 814, 813, 817, 826, 827, 818, 819, 820, 821, - 822, 823, 825, 824, 844, 845, 846, 847, 848, 850, - 849, 853, 854, 852, 851, 856, 855, 752, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 919, - 261, 920, 0, 0, 924, 0, 0, 0, 926, 925, - 0, 927, 889, 888, 0, 0, 921, 922, 0, 923, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 934, 935, 936, 937, 938, 939, - 940, 941, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 959, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 764, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 751, 0, 0, 0, 269, 756, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 763, 367, 0, 0, 493, 398, - 0, 0, 0, 0, 0, 758, 759, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 95, 0, 1725, 1008, 944, 735, 910, - 948, 1009, 961, 962, 963, 949, 0, 237, 950, 951, - 244, 952, 0, 909, 794, 796, 795, 859, 860, 861, - 862, 863, 864, 865, 792, 957, 964, 965, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 731, 748, 0, 762, 0, 0, 0, 274, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 745, 746, 0, 0, 0, 0, - 904, 0, 747, 0, 0, 755, 966, 967, 968, 969, - 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, - 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, - 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, - 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 757, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 903, 0, 0, 618, 0, - 0, 901, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 954, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 955, 956, 255, - 641, 800, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 808, 809, 279, 306, - 885, 884, 883, 305, 307, 881, 882, 880, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 891, 913, 902, 768, 769, 892, 893, 917, 894, 771, - 772, 914, 915, 765, 766, 770, 916, 918, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 905, 754, 753, 0, - 760, 761, 0, 790, 791, 793, 797, 798, 799, 810, - 857, 858, 866, 868, 869, 867, 870, 871, 872, 875, - 876, 877, 878, 873, 874, 879, 773, 777, 774, 775, - 776, 788, 778, 779, 780, 781, 782, 783, 784, 785, - 786, 787, 789, 928, 929, 930, 931, 932, 933, 803, - 807, 806, 804, 805, 801, 802, 829, 828, 830, 831, - 832, 833, 834, 835, 837, 836, 838, 839, 840, 841, - 842, 843, 811, 812, 815, 816, 814, 813, 817, 826, - 827, 818, 819, 820, 821, 822, 823, 825, 824, 844, - 845, 846, 847, 848, 850, 849, 853, 854, 852, 851, - 856, 855, 752, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 919, 261, 920, 0, 0, 924, - 0, 0, 0, 926, 925, 0, 927, 889, 888, 0, - 0, 921, 922, 0, 923, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 934, - 935, 936, 937, 938, 939, 940, 941, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 959, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 764, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 751, 0, - 0, 0, 269, 756, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 763, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, - 758, 759, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 95, 0, - 0, 1008, 944, 735, 910, 948, 1009, 961, 962, 963, - 949, 0, 237, 950, 951, 244, 952, 0, 909, 794, - 796, 795, 859, 860, 861, 862, 863, 864, 865, 792, - 957, 964, 965, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 0, 0, 0, 0, 731, 748, 0, 762, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 745, - 746, 1054, 0, 0, 0, 904, 0, 747, 0, 0, - 755, 966, 967, 968, 969, 970, 971, 972, 973, 974, - 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, - 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, - 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, - 1005, 1006, 1007, 757, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 903, 0, 0, 618, 0, 0, 901, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 954, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 955, 956, 255, 641, 800, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 808, 809, 279, 306, 885, 884, 883, 305, 307, - 881, 882, 880, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 891, 913, 902, 768, 769, - 892, 893, 917, 894, 771, 772, 914, 915, 765, 766, - 770, 916, 918, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 905, 754, 753, 0, 760, 761, 0, 790, 791, - 793, 797, 798, 799, 810, 857, 858, 866, 868, 869, - 867, 870, 871, 872, 875, 876, 877, 878, 873, 874, - 879, 773, 777, 774, 775, 776, 788, 778, 779, 780, - 781, 782, 783, 784, 785, 786, 787, 789, 928, 929, - 930, 931, 932, 933, 803, 807, 806, 804, 805, 801, - 802, 829, 828, 830, 831, 832, 833, 834, 835, 837, - 836, 838, 839, 840, 841, 842, 843, 811, 812, 815, - 816, 814, 813, 817, 826, 827, 818, 819, 820, 821, - 822, 823, 825, 824, 844, 845, 846, 847, 848, 850, - 849, 853, 854, 852, 851, 856, 855, 752, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 919, - 261, 920, 0, 0, 924, 0, 0, 0, 926, 925, - 0, 927, 889, 888, 0, 0, 921, 922, 0, 923, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 934, 935, 936, 937, 938, 939, - 940, 941, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 959, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 764, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 751, 0, 0, 0, 269, 756, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 763, 367, 0, 0, 493, 398, - 0, 0, 0, 0, 0, 758, 759, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 95, 0, 0, 1008, 944, 735, 910, - 948, 1009, 961, 962, 963, 949, 0, 237, 950, 951, - 244, 952, 0, 909, 794, 796, 795, 859, 860, 861, - 862, 863, 864, 865, 792, 957, 964, 965, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 731, 748, 0, 762, 0, 0, 0, 274, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 745, 746, 0, 0, 0, 0, - 904, 0, 747, 0, 0, 755, 966, 967, 968, 969, - 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, - 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, - 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, - 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 757, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 903, 0, 0, 618, 0, - 0, 901, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 954, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 955, 956, 255, - 641, 800, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 808, 809, 279, 306, - 885, 884, 883, 305, 307, 881, 882, 880, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 891, 913, 902, 768, 769, 892, 893, 917, 894, 771, - 772, 914, 915, 765, 766, 770, 916, 918, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 905, 754, 753, 0, - 760, 761, 0, 790, 791, 793, 797, 798, 799, 810, - 857, 858, 866, 868, 869, 867, 870, 871, 872, 875, - 876, 877, 878, 873, 874, 879, 773, 777, 774, 775, - 776, 788, 778, 779, 780, 781, 782, 783, 784, 785, - 786, 787, 789, 928, 929, 930, 931, 932, 933, 803, - 807, 806, 804, 805, 801, 802, 829, 828, 830, 831, - 832, 833, 834, 835, 837, 836, 838, 839, 840, 841, - 842, 843, 811, 812, 815, 816, 814, 813, 817, 826, - 827, 818, 819, 820, 821, 822, 823, 825, 824, 844, - 845, 846, 847, 848, 850, 849, 853, 854, 852, 851, - 856, 855, 752, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 919, 261, 920, 0, 0, 924, - 0, 0, 0, 926, 925, 0, 927, 889, 888, 0, - 0, 921, 922, 0, 923, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 934, - 935, 936, 937, 938, 939, 940, 941, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 959, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 764, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 751, 0, - 0, 0, 269, 756, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 763, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, - 758, 759, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 95, 0, - 0, 1008, 944, 735, 910, 948, 1009, 961, 962, 963, - 949, 0, 237, 950, 951, 244, 952, 0, 909, 794, - 796, 795, 859, 860, 861, 862, 863, 864, 865, 792, - 957, 964, 965, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 0, 0, 0, 0, 731, 748, 0, 762, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 745, - 746, 0, 0, 0, 0, 904, 0, 747, 0, 0, - 755, 966, 967, 968, 969, 970, 971, 972, 973, 974, - 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, - 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, - 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, - 1005, 1006, 1007, 3108, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 903, 0, 0, 618, 0, 0, 901, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 954, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 955, 956, 255, 641, 800, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 808, 809, 279, 306, 885, 884, 883, 305, 307, - 881, 882, 880, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 891, 913, 902, 768, 769, - 892, 893, 917, 894, 771, 772, 914, 915, 765, 766, - 770, 916, 918, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 905, 754, 753, 0, 760, 761, 0, 790, 791, - 793, 797, 798, 799, 810, 857, 858, 866, 868, 869, - 867, 870, 871, 872, 875, 876, 877, 878, 873, 874, - 879, 773, 777, 774, 775, 776, 788, 778, 779, 780, - 781, 782, 783, 784, 785, 786, 787, 789, 928, 929, - 930, 931, 932, 933, 803, 807, 806, 804, 805, 801, - 802, 829, 828, 830, 831, 832, 833, 834, 835, 837, - 836, 838, 839, 840, 841, 842, 843, 811, 812, 815, - 816, 814, 813, 817, 826, 827, 818, 819, 820, 821, - 822, 823, 825, 824, 844, 845, 846, 847, 848, 850, - 849, 853, 854, 852, 851, 856, 855, 752, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 919, - 261, 920, 0, 0, 924, 0, 0, 0, 926, 925, - 0, 927, 889, 888, 0, 0, 921, 922, 0, 923, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 934, 935, 936, 937, 938, 939, - 940, 941, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 959, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 764, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 751, 0, 0, 0, 269, 756, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 763, 367, 0, 0, 493, 398, - 0, 0, 0, 0, 0, 758, 759, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 95, 0, 0, 1008, 944, 735, 910, - 948, 1009, 961, 962, 963, 949, 0, 237, 950, 951, - 244, 952, 0, 909, 794, 796, 795, 859, 860, 861, - 862, 863, 864, 865, 792, 957, 964, 965, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 731, 748, 0, 762, 0, 0, 0, 274, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 745, 746, 0, 0, 0, 0, - 904, 0, 747, 0, 0, 755, 966, 967, 968, 969, - 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, - 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, - 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, - 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 3104, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 903, 0, 0, 618, 0, - 0, 901, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 954, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 955, 956, 255, - 641, 800, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 808, 809, 279, 306, - 885, 884, 883, 305, 307, 881, 882, 880, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 891, 913, 902, 768, 769, 892, 893, 917, 894, 771, - 772, 914, 915, 765, 766, 770, 916, 918, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 905, 754, 753, 0, - 760, 761, 0, 790, 791, 793, 797, 798, 799, 810, - 857, 858, 866, 868, 869, 867, 870, 871, 872, 875, - 876, 877, 878, 873, 874, 879, 773, 777, 774, 775, - 776, 788, 778, 779, 780, 781, 782, 783, 784, 785, - 786, 787, 789, 928, 929, 930, 931, 932, 933, 803, - 807, 806, 804, 805, 801, 802, 829, 828, 830, 831, - 832, 833, 834, 835, 837, 836, 838, 839, 840, 841, - 842, 843, 811, 812, 815, 816, 814, 813, 817, 826, - 827, 818, 819, 820, 821, 822, 823, 825, 824, 844, - 845, 846, 847, 848, 850, 849, 853, 854, 852, 851, - 856, 855, 752, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 919, 261, 920, 0, 0, 924, - 0, 0, 0, 926, 925, 0, 927, 889, 888, 0, - 0, 921, 922, 0, 923, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 934, - 935, 936, 937, 938, 939, 940, 941, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 959, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 764, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 751, 0, - 0, 0, 269, 756, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 763, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, - 758, 759, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 95, 0, - 0, 1008, 944, 1075, 910, 948, 1009, 961, 962, 963, - 949, 0, 237, 950, 951, 244, 952, 0, 909, 794, - 796, 795, 859, 860, 861, 862, 863, 864, 865, 792, - 957, 964, 965, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 0, 0, 0, 0, 0, 748, 0, 762, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 745, - 746, 0, 0, 0, 0, 904, 0, 747, 0, 0, - 755, 966, 967, 968, 969, 970, 971, 972, 973, 974, - 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, - 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, - 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, - 1005, 1006, 1007, 757, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 903, 0, 0, 618, 0, 0, 901, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 954, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 955, 956, 255, 641, 800, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 808, 809, 279, 306, 885, 884, 883, 305, 307, - 881, 882, 880, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 891, 913, 902, 768, 769, - 892, 893, 917, 894, 771, 772, 914, 915, 765, 766, - 770, 916, 918, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 905, 754, 753, 0, 760, 761, 0, 790, 791, - 793, 797, 798, 799, 810, 857, 858, 866, 868, 869, - 867, 870, 871, 872, 875, 876, 877, 878, 873, 874, - 879, 773, 777, 774, 775, 776, 788, 778, 779, 780, - 781, 782, 783, 784, 785, 786, 787, 789, 928, 929, - 930, 931, 932, 933, 803, 807, 806, 804, 805, 801, - 802, 829, 828, 830, 831, 832, 833, 834, 835, 837, - 836, 838, 839, 840, 841, 842, 843, 811, 812, 815, - 816, 814, 813, 817, 826, 827, 818, 819, 820, 821, - 822, 823, 825, 824, 844, 845, 846, 847, 848, 850, - 849, 853, 854, 852, 851, 856, 855, 752, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 919, - 261, 920, 0, 0, 924, 0, 0, 0, 926, 925, - 0, 927, 889, 888, 0, 0, 921, 922, 0, 923, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 934, 935, 936, 937, 938, 939, - 940, 941, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 959, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 764, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 751, 0, 0, 0, 269, 756, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 763, 367, 0, 0, 493, 398, - 0, 0, 0, 0, 0, 758, 759, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 95, 0, 0, 1008, 944, 1075, 910, - 948, 1009, 961, 962, 963, 949, 0, 237, 950, 951, - 244, 952, 0, 909, 794, 796, 795, 859, 860, 861, - 862, 863, 864, 865, 792, 957, 964, 965, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 748, 0, 762, 0, 0, 0, 274, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 745, 746, 0, 0, 0, 0, - 904, 0, 747, 0, 0, 755, 966, 967, 968, 969, - 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, - 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, - 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, - 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 2084, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 903, 0, 0, 618, 0, - 0, 901, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 954, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 955, 956, 255, - 641, 800, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 808, 809, 279, 306, - 885, 884, 883, 305, 307, 881, 882, 880, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 891, 913, 902, 768, 769, 892, 893, 917, 894, 771, - 772, 914, 915, 765, 766, 770, 916, 918, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 905, 754, 753, 0, - 760, 761, 0, 790, 791, 793, 797, 798, 799, 810, - 857, 858, 866, 868, 869, 867, 870, 871, 872, 875, - 876, 877, 878, 873, 874, 879, 773, 777, 774, 775, - 776, 788, 778, 779, 780, 781, 782, 783, 784, 785, - 786, 787, 789, 928, 929, 930, 931, 932, 933, 803, - 807, 806, 804, 805, 801, 802, 829, 828, 830, 831, - 832, 833, 834, 835, 837, 836, 838, 839, 840, 841, - 842, 843, 811, 812, 815, 816, 814, 813, 817, 826, - 827, 818, 819, 820, 821, 822, 823, 825, 824, 844, - 845, 846, 847, 848, 850, 849, 853, 854, 852, 851, - 856, 855, 752, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 919, 261, 920, 0, 0, 924, - 0, 0, 0, 926, 925, 0, 927, 889, 888, 0, - 0, 921, 922, 0, 923, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 934, - 935, 936, 937, 938, 939, 940, 941, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 959, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 764, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 751, 0, - 0, 0, 269, 756, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 763, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, - 758, 759, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 95, 0, - 0, 1008, 944, 1075, 910, 948, 1009, 961, 962, 963, - 949, 0, 237, 950, 951, 244, 952, 0, 909, 794, - 796, 795, 859, 860, 861, 862, 863, 864, 865, 792, - 957, 964, 965, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 0, 0, 0, 0, 0, 748, 0, 762, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 745, - 746, 0, 0, 0, 0, 904, 0, 747, 0, 0, - 755, 966, 967, 968, 969, 970, 971, 972, 973, 974, - 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, - 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, - 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, - 1005, 1006, 1007, 2082, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 903, 0, 0, 618, 0, 0, 901, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 954, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 955, 956, 255, 641, 800, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 808, 809, 279, 306, 885, 884, 883, 305, 307, - 881, 882, 880, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 891, 913, 902, 768, 769, - 892, 893, 917, 894, 771, 772, 914, 915, 765, 766, - 770, 916, 918, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 905, 754, 753, 0, 760, 761, 0, 790, 791, - 793, 797, 798, 799, 810, 857, 858, 866, 868, 869, - 867, 870, 871, 872, 875, 876, 877, 878, 873, 874, - 879, 773, 777, 774, 775, 776, 788, 778, 779, 780, - 781, 782, 783, 784, 785, 786, 787, 789, 928, 929, - 930, 931, 932, 933, 803, 807, 806, 804, 805, 801, - 802, 829, 828, 830, 831, 832, 833, 834, 835, 837, - 836, 838, 839, 840, 841, 842, 843, 811, 812, 815, - 816, 814, 813, 817, 826, 827, 818, 819, 820, 821, - 822, 823, 825, 824, 844, 845, 846, 847, 848, 850, - 849, 853, 854, 852, 851, 856, 855, 752, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 919, - 261, 920, 0, 0, 924, 0, 0, 0, 926, 925, - 0, 927, 889, 888, 0, 0, 921, 922, 0, 923, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 934, 935, 936, 937, 938, 939, - 940, 941, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 959, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 0, 711, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 1126, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 764, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 751, 0, 0, 0, 269, + 756, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 763, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 758, 759, 0, + 0, 0, 0, 0, 0, 2398, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 95, 0, 0, 1008, 944, + 735, 910, 948, 1009, 961, 962, 963, 949, 0, 237, + 950, 951, 244, 952, 0, 909, 794, 796, 795, 859, + 860, 861, 862, 863, 864, 865, 792, 957, 964, 965, + 2399, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 731, 748, 0, 762, 0, 0, 0, 274, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 745, 746, 0, 0, + 0, 0, 904, 0, 747, 0, 0, 755, 966, 967, + 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, + 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, + 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, + 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, + 757, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 903, 0, 0, + 618, 0, 0, 901, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 954, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 955, + 956, 255, 641, 800, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 808, 809, + 279, 306, 885, 884, 883, 305, 307, 881, 882, 880, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 891, 913, 902, 768, 769, 892, 893, 917, + 894, 771, 772, 914, 915, 765, 766, 770, 916, 918, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 905, 754, + 753, 0, 760, 761, 0, 790, 791, 793, 797, 798, + 799, 810, 857, 858, 866, 868, 869, 867, 870, 871, + 872, 875, 876, 877, 878, 873, 874, 879, 773, 777, + 774, 775, 776, 788, 778, 779, 780, 781, 782, 783, + 784, 785, 786, 787, 789, 928, 929, 930, 931, 932, + 933, 803, 807, 806, 804, 805, 801, 802, 829, 828, + 830, 831, 832, 833, 834, 835, 837, 836, 838, 839, + 840, 841, 842, 843, 811, 812, 815, 816, 814, 813, + 817, 826, 827, 818, 819, 820, 821, 822, 823, 825, + 824, 844, 845, 846, 847, 848, 850, 849, 853, 854, + 852, 851, 856, 855, 752, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 919, 261, 920, 0, + 0, 924, 0, 0, 0, 926, 925, 0, 927, 889, + 888, 0, 0, 921, 922, 0, 923, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 934, 935, 936, 937, 938, 939, 940, 941, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 959, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 86, 522, 0, 764, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 751, 0, 0, 0, 269, 756, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 763, 367, 0, 0, 493, 398, 0, 0, 0, + 0, 0, 758, 759, 0, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 95, 0, 0, 1008, 944, 735, 910, 948, 1009, 961, + 962, 963, 949, 0, 237, 950, 951, 244, 952, 0, + 909, 794, 796, 795, 859, 860, 861, 862, 863, 864, + 865, 792, 957, 964, 965, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 0, 0, 0, 0, 0, 0, 0, 731, 748, 0, + 762, 0, 0, 0, 274, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 745, 746, 0, 0, 0, 0, 904, 0, 747, + 0, 0, 755, 966, 967, 968, 969, 970, 971, 972, + 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, + 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, + 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, + 1003, 1004, 1005, 1006, 1007, 757, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 903, 0, 0, 618, 0, 0, 901, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 954, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 955, 956, 255, 641, 800, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 808, 809, 279, 306, 885, 884, 883, + 305, 307, 881, 882, 880, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 891, 913, 902, + 768, 769, 892, 893, 917, 894, 771, 772, 914, 915, + 765, 766, 770, 916, 918, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 905, 754, 753, 0, 760, 761, 0, + 790, 791, 793, 797, 798, 799, 810, 857, 858, 866, + 868, 869, 867, 870, 871, 872, 875, 876, 877, 878, + 873, 874, 879, 773, 777, 774, 775, 776, 788, 778, + 779, 780, 781, 782, 783, 784, 785, 786, 787, 789, + 928, 929, 930, 931, 932, 933, 803, 807, 806, 804, + 805, 801, 802, 829, 828, 830, 831, 832, 833, 834, + 835, 837, 836, 838, 839, 840, 841, 842, 843, 811, + 812, 815, 816, 814, 813, 817, 826, 827, 818, 819, + 820, 821, 822, 823, 825, 824, 844, 845, 846, 847, + 848, 850, 849, 853, 854, 852, 851, 856, 855, 752, + 196, 220, 365, 94, 451, 287, 639, 608, 603, 205, + 222, 919, 261, 920, 0, 0, 924, 0, 0, 0, + 926, 925, 0, 927, 889, 888, 0, 0, 921, 922, + 0, 923, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 934, 935, 936, 937, + 938, 939, 940, 941, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 959, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 764, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 751, 0, 0, 0, 269, + 756, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 763, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 758, 759, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 95, 0, 0, 1008, 944, + 735, 910, 948, 1009, 961, 962, 963, 949, 0, 237, + 950, 951, 244, 952, 0, 909, 794, 796, 795, 859, + 860, 861, 862, 863, 864, 865, 792, 957, 964, 965, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 731, 748, 0, 762, 0, 0, 0, 274, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 745, 746, 0, 0, + 0, 0, 904, 0, 747, 0, 0, 755, 966, 967, + 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, + 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, + 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, + 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, + 757, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 903, 0, 0, + 618, 0, 0, 901, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 954, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 4033, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 955, + 956, 255, 641, 800, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 808, 809, + 279, 306, 885, 884, 883, 305, 307, 881, 882, 880, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 891, 913, 902, 768, 769, 892, 893, 917, + 894, 771, 772, 914, 915, 765, 766, 770, 916, 918, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 905, 754, + 753, 0, 760, 761, 0, 790, 791, 793, 797, 798, + 799, 810, 857, 858, 866, 868, 869, 867, 870, 871, + 872, 875, 876, 877, 878, 873, 874, 879, 773, 777, + 774, 775, 776, 788, 778, 779, 780, 781, 782, 783, + 784, 785, 786, 787, 789, 928, 929, 930, 931, 932, + 933, 803, 807, 806, 804, 805, 801, 802, 829, 828, + 830, 831, 832, 833, 834, 835, 837, 836, 838, 839, + 840, 841, 842, 843, 811, 812, 815, 816, 814, 813, + 817, 826, 827, 818, 819, 820, 821, 822, 823, 825, + 824, 844, 845, 846, 847, 848, 850, 849, 853, 854, + 852, 851, 856, 855, 752, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 919, 261, 920, 0, + 0, 924, 0, 0, 0, 926, 925, 0, 927, 889, + 888, 0, 0, 921, 922, 0, 923, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 934, 935, 936, 937, 938, 939, 940, 941, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 959, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 764, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 751, 0, 0, 0, 269, 756, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 763, 367, 0, 0, 493, 398, 0, 0, 0, + 0, 0, 758, 759, 0, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 95, 0, 1725, 1008, 944, 735, 910, 948, 1009, 961, + 962, 963, 949, 0, 237, 950, 951, 244, 952, 0, + 909, 794, 796, 795, 859, 860, 861, 862, 863, 864, + 865, 792, 957, 964, 965, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 0, 0, 0, 0, 0, 0, 0, 731, 748, 0, + 762, 0, 0, 0, 274, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 745, 746, 0, 0, 0, 0, 904, 0, 747, + 0, 0, 755, 966, 967, 968, 969, 970, 971, 972, + 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, + 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, + 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, + 1003, 1004, 1005, 1006, 1007, 757, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 903, 0, 0, 618, 0, 0, 901, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 954, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 955, 956, 255, 641, 800, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 808, 809, 279, 306, 885, 884, 883, + 305, 307, 881, 882, 880, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 891, 913, 902, + 768, 769, 892, 893, 917, 894, 771, 772, 914, 915, + 765, 766, 770, 916, 918, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 905, 754, 753, 0, 760, 761, 0, + 790, 791, 793, 797, 798, 799, 810, 857, 858, 866, + 868, 869, 867, 870, 871, 872, 875, 876, 877, 878, + 873, 874, 879, 773, 777, 774, 775, 776, 788, 778, + 779, 780, 781, 782, 783, 784, 785, 786, 787, 789, + 928, 929, 930, 931, 932, 933, 803, 807, 806, 804, + 805, 801, 802, 829, 828, 830, 831, 832, 833, 834, + 835, 837, 836, 838, 839, 840, 841, 842, 843, 811, + 812, 815, 816, 814, 813, 817, 826, 827, 818, 819, + 820, 821, 822, 823, 825, 824, 844, 845, 846, 847, + 848, 850, 849, 853, 854, 852, 851, 856, 855, 752, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 919, 261, 920, 0, 0, 924, 0, 0, 0, + 926, 925, 0, 927, 889, 888, 0, 0, 921, 922, + 0, 923, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 934, 935, 936, 937, + 938, 939, 940, 941, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 959, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 764, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 751, 0, 0, 0, 269, + 756, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 763, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 758, 759, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 95, 0, 0, 1008, 944, + 735, 910, 948, 1009, 961, 962, 963, 949, 0, 237, + 950, 951, 244, 952, 0, 909, 794, 796, 795, 859, + 860, 861, 862, 863, 864, 865, 792, 957, 964, 965, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 731, 748, 0, 762, 0, 0, 0, 274, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 745, 746, 1054, 0, + 0, 0, 904, 0, 747, 0, 0, 755, 966, 967, + 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, + 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, + 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, + 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, + 757, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 903, 0, 0, + 618, 0, 0, 901, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 954, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 955, + 956, 255, 641, 800, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 808, 809, + 279, 306, 885, 884, 883, 305, 307, 881, 882, 880, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 891, 913, 902, 768, 769, 892, 893, 917, + 894, 771, 772, 914, 915, 765, 766, 770, 916, 918, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 905, 754, + 753, 0, 760, 761, 0, 790, 791, 793, 797, 798, + 799, 810, 857, 858, 866, 868, 869, 867, 870, 871, + 872, 875, 876, 877, 878, 873, 874, 879, 773, 777, + 774, 775, 776, 788, 778, 779, 780, 781, 782, 783, + 784, 785, 786, 787, 789, 928, 929, 930, 931, 932, + 933, 803, 807, 806, 804, 805, 801, 802, 829, 828, + 830, 831, 832, 833, 834, 835, 837, 836, 838, 839, + 840, 841, 842, 843, 811, 812, 815, 816, 814, 813, + 817, 826, 827, 818, 819, 820, 821, 822, 823, 825, + 824, 844, 845, 846, 847, 848, 850, 849, 853, 854, + 852, 851, 856, 855, 752, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 919, 261, 920, 0, + 0, 924, 0, 0, 0, 926, 925, 0, 927, 889, + 888, 0, 0, 921, 922, 0, 923, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 934, 935, 936, 937, 938, 939, 940, 941, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 959, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 764, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 751, 0, 0, 0, 269, 756, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 763, 367, 0, 0, 493, 398, 0, 0, 0, + 0, 0, 758, 759, 0, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 95, 0, 0, 1008, 944, 735, 910, 948, 1009, 961, + 962, 963, 949, 0, 237, 950, 951, 244, 952, 0, + 909, 794, 796, 795, 859, 860, 861, 862, 863, 864, + 865, 792, 957, 964, 965, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 0, 0, 0, 0, 0, 0, 0, 731, 748, 0, + 762, 0, 0, 0, 274, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 745, 746, 0, 0, 0, 0, 904, 0, 747, + 0, 0, 755, 966, 967, 968, 969, 970, 971, 972, + 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, + 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, + 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, + 1003, 1004, 1005, 1006, 1007, 757, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 903, 0, 0, 618, 0, 0, 901, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 954, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 955, 956, 255, 641, 800, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 808, 809, 279, 306, 885, 884, 883, + 305, 307, 881, 882, 880, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 891, 913, 902, + 768, 769, 892, 893, 917, 894, 771, 772, 914, 915, + 765, 766, 770, 916, 918, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 905, 754, 753, 0, 760, 761, 0, + 790, 791, 793, 797, 798, 799, 810, 857, 858, 866, + 868, 869, 867, 870, 871, 872, 875, 876, 877, 878, + 873, 874, 879, 773, 777, 774, 775, 776, 788, 778, + 779, 780, 781, 782, 783, 784, 785, 786, 787, 789, + 928, 929, 930, 931, 932, 933, 803, 807, 806, 804, + 805, 801, 802, 829, 828, 830, 831, 832, 833, 834, + 835, 837, 836, 838, 839, 840, 841, 842, 843, 811, + 812, 815, 816, 814, 813, 817, 826, 827, 818, 819, + 820, 821, 822, 823, 825, 824, 844, 845, 846, 847, + 848, 850, 849, 853, 854, 852, 851, 856, 855, 752, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 919, 261, 920, 0, 0, 924, 0, 0, 0, + 926, 925, 0, 927, 889, 888, 0, 0, 921, 922, + 0, 923, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 934, 935, 936, 937, + 938, 939, 940, 941, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 959, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 764, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 751, 0, 0, 0, 269, + 756, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 763, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 758, 759, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 95, 0, 0, 1008, 944, + 735, 910, 948, 1009, 961, 962, 963, 949, 0, 237, + 950, 951, 244, 952, 0, 909, 794, 796, 795, 859, + 860, 861, 862, 863, 864, 865, 792, 957, 964, 965, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 731, 748, 0, 762, 0, 0, 0, 274, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 745, 746, 0, 0, + 0, 0, 904, 0, 747, 0, 0, 755, 966, 967, + 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, + 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, + 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, + 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, + 3120, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 903, 0, 0, + 618, 0, 0, 901, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 954, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 955, + 956, 255, 641, 800, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 808, 809, + 279, 306, 885, 884, 883, 305, 307, 881, 882, 880, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 891, 913, 902, 768, 769, 892, 893, 917, + 894, 771, 772, 914, 915, 765, 766, 770, 916, 918, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 905, 754, + 753, 0, 760, 761, 0, 790, 791, 793, 797, 798, + 799, 810, 857, 858, 866, 868, 869, 867, 870, 871, + 872, 875, 876, 877, 878, 873, 874, 879, 773, 777, + 774, 775, 776, 788, 778, 779, 780, 781, 782, 783, + 784, 785, 786, 787, 789, 928, 929, 930, 931, 932, + 933, 803, 807, 806, 804, 805, 801, 802, 829, 828, + 830, 831, 832, 833, 834, 835, 837, 836, 838, 839, + 840, 841, 842, 843, 811, 812, 815, 816, 814, 813, + 817, 826, 827, 818, 819, 820, 821, 822, 823, 825, + 824, 844, 845, 846, 847, 848, 850, 849, 853, 854, + 852, 851, 856, 855, 752, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 919, 261, 920, 0, + 0, 924, 0, 0, 0, 926, 925, 0, 927, 889, + 888, 0, 0, 921, 922, 0, 923, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 934, 935, 936, 937, 938, 939, 940, 941, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 959, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 764, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 751, 0, 0, 0, 269, 756, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 763, 367, 0, 0, 493, 398, 0, 0, 0, + 0, 0, 758, 759, 0, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 95, 0, 0, 1008, 944, 735, 910, 948, 1009, 961, + 962, 963, 949, 0, 237, 950, 951, 244, 952, 0, + 909, 794, 796, 795, 859, 860, 861, 862, 863, 864, + 865, 792, 957, 964, 965, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 0, 0, 0, 0, 0, 0, 0, 731, 748, 0, + 762, 0, 0, 0, 274, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 745, 746, 0, 0, 0, 0, 904, 0, 747, + 0, 0, 755, 966, 967, 968, 969, 970, 971, 972, + 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, + 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, + 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, + 1003, 1004, 1005, 1006, 1007, 3116, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 903, 0, 0, 618, 0, 0, 901, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 954, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 955, 956, 255, 641, 800, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 808, 809, 279, 306, 885, 884, 883, + 305, 307, 881, 882, 880, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 891, 913, 902, + 768, 769, 892, 893, 917, 894, 771, 772, 914, 915, + 765, 766, 770, 916, 918, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 905, 754, 753, 0, 760, 761, 0, + 790, 791, 793, 797, 798, 799, 810, 857, 858, 866, + 868, 869, 867, 870, 871, 872, 875, 876, 877, 878, + 873, 874, 879, 773, 777, 774, 775, 776, 788, 778, + 779, 780, 781, 782, 783, 784, 785, 786, 787, 789, + 928, 929, 930, 931, 932, 933, 803, 807, 806, 804, + 805, 801, 802, 829, 828, 830, 831, 832, 833, 834, + 835, 837, 836, 838, 839, 840, 841, 842, 843, 811, + 812, 815, 816, 814, 813, 817, 826, 827, 818, 819, + 820, 821, 822, 823, 825, 824, 844, 845, 846, 847, + 848, 850, 849, 853, 854, 852, 851, 856, 855, 752, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 919, 261, 920, 0, 0, 924, 0, 0, 0, + 926, 925, 0, 927, 889, 888, 0, 0, 921, 922, + 0, 923, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 934, 935, 936, 937, + 938, 939, 940, 941, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 959, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 764, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 751, 0, 0, 0, 269, + 756, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 763, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 758, 759, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 95, 0, 0, 1008, 944, + 1075, 910, 948, 1009, 961, 962, 963, 949, 0, 237, + 950, 951, 244, 952, 0, 909, 794, 796, 795, 859, + 860, 861, 862, 863, 864, 865, 792, 957, 964, 965, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 748, 0, 762, 0, 0, 0, 274, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 745, 746, 0, 0, + 0, 0, 904, 0, 747, 0, 0, 755, 966, 967, + 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, + 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, + 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, + 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, + 757, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 903, 0, 0, + 618, 0, 0, 901, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 954, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 955, + 956, 255, 641, 800, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 808, 809, + 279, 306, 885, 884, 883, 305, 307, 881, 882, 880, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 891, 913, 902, 768, 769, 892, 893, 917, + 894, 771, 772, 914, 915, 765, 766, 770, 916, 918, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 905, 754, + 753, 0, 760, 761, 0, 790, 791, 793, 797, 798, + 799, 810, 857, 858, 866, 868, 869, 867, 870, 871, + 872, 875, 876, 877, 878, 873, 874, 879, 773, 777, + 774, 775, 776, 788, 778, 779, 780, 781, 782, 783, + 784, 785, 786, 787, 789, 928, 929, 930, 931, 932, + 933, 803, 807, 806, 804, 805, 801, 802, 829, 828, + 830, 831, 832, 833, 834, 835, 837, 836, 838, 839, + 840, 841, 842, 843, 811, 812, 815, 816, 814, 813, + 817, 826, 827, 818, 819, 820, 821, 822, 823, 825, + 824, 844, 845, 846, 847, 848, 850, 849, 853, 854, + 852, 851, 856, 855, 752, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 919, 261, 920, 0, + 0, 924, 0, 0, 0, 926, 925, 0, 927, 889, + 888, 0, 0, 921, 922, 0, 923, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 934, 935, 936, 937, 938, 939, 940, 941, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 959, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 764, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 751, 0, 0, 0, 269, 756, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 763, 367, 0, 0, 493, 398, 0, 0, 0, + 0, 0, 758, 759, 0, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 95, 0, 0, 1008, 944, 1075, 910, 948, 1009, 961, + 962, 963, 949, 0, 237, 950, 951, 244, 952, 0, + 909, 794, 796, 795, 859, 860, 861, 862, 863, 864, + 865, 792, 957, 964, 965, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 0, 0, 0, 0, 0, 0, 0, 0, 748, 0, + 762, 0, 0, 0, 274, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 745, 746, 0, 0, 0, 0, 904, 0, 747, + 0, 0, 755, 966, 967, 968, 969, 970, 971, 972, + 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, + 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, + 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, + 1003, 1004, 1005, 1006, 1007, 2084, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 903, 0, 0, 618, 0, 0, 901, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 954, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 955, 956, 255, 641, 800, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 808, 809, 279, 306, 885, 884, 883, + 305, 307, 881, 882, 880, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 891, 913, 902, + 768, 769, 892, 893, 917, 894, 771, 772, 914, 915, + 765, 766, 770, 916, 918, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 905, 754, 753, 0, 760, 761, 0, + 790, 791, 793, 797, 798, 799, 810, 857, 858, 866, + 868, 869, 867, 870, 871, 872, 875, 876, 877, 878, + 873, 874, 879, 773, 777, 774, 775, 776, 788, 778, + 779, 780, 781, 782, 783, 784, 785, 786, 787, 789, + 928, 929, 930, 931, 932, 933, 803, 807, 806, 804, + 805, 801, 802, 829, 828, 830, 831, 832, 833, 834, + 835, 837, 836, 838, 839, 840, 841, 842, 843, 811, + 812, 815, 816, 814, 813, 817, 826, 827, 818, 819, + 820, 821, 822, 823, 825, 824, 844, 845, 846, 847, + 848, 850, 849, 853, 854, 852, 851, 856, 855, 752, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 919, 261, 920, 0, 0, 924, 0, 0, 0, + 926, 925, 0, 927, 889, 888, 0, 0, 921, 922, + 0, 923, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 934, 935, 936, 937, + 938, 939, 940, 941, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 959, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 764, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 751, 0, 0, 0, 269, + 756, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 763, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 758, 759, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 95, 0, 0, 1008, 944, + 1075, 910, 948, 1009, 961, 962, 963, 949, 0, 237, + 950, 951, 244, 952, 0, 909, 794, 796, 795, 859, + 860, 861, 862, 863, 864, 865, 792, 957, 964, 965, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 748, 0, 762, 0, 0, 0, 274, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 745, 746, 0, 0, + 0, 0, 904, 0, 747, 0, 0, 755, 966, 967, + 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, + 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, + 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, + 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, + 2082, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 903, 0, 0, + 618, 0, 0, 901, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 954, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 955, + 956, 255, 641, 800, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 808, 809, + 279, 306, 885, 884, 883, 305, 307, 881, 882, 880, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 891, 913, 902, 768, 769, 892, 893, 917, + 894, 771, 772, 914, 915, 765, 766, 770, 916, 918, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 905, 754, + 753, 0, 760, 761, 0, 790, 791, 793, 797, 798, + 799, 810, 857, 858, 866, 868, 869, 867, 870, 871, + 872, 875, 876, 877, 878, 873, 874, 879, 773, 777, + 774, 775, 776, 788, 778, 779, 780, 781, 782, 783, + 784, 785, 786, 787, 789, 928, 929, 930, 931, 932, + 933, 803, 807, 806, 804, 805, 801, 802, 829, 828, + 830, 831, 832, 833, 834, 835, 837, 836, 838, 839, + 840, 841, 842, 843, 811, 812, 815, 816, 814, 813, + 817, 826, 827, 818, 819, 820, 821, 822, 823, 825, + 824, 844, 845, 846, 847, 848, 850, 849, 853, 854, + 852, 851, 856, 855, 752, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 919, 261, 920, 0, + 0, 924, 0, 0, 0, 926, 925, 0, 927, 889, + 888, 0, 0, 921, 922, 0, 923, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 934, 935, 936, 937, 938, 939, 940, 941, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 959, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 1125, 618, 0, - 0, 0, 0, 0, 1122, 1123, 362, 1083, 329, 197, - 224, 1116, 1120, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 0, 711, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 0, 1126, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 0, 1686, 944, 0, 0, 1683, 0, 0, 0, 0, - 1681, 0, 237, 1682, 1680, 244, 1685, 0, 909, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 1125, 618, 0, 0, 0, 0, + 0, 1122, 1123, 362, 1083, 329, 197, 224, 1116, 1120, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 0, 1686, 944, + 0, 0, 1683, 0, 0, 0, 0, 1681, 0, 237, + 1682, 1680, 244, 1685, 0, 909, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 86, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 95, 0, 0, 0, 194, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 86, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 94, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, - 0, 0, 2385, 0, 0, 2384, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 1748, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 1750, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 95, 0, 0, 0, 194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 0, 1752, 711, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 1457, 0, 1458, 1459, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4443,144 +4398,144 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 94, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 2385, + 0, 0, 2384, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 1748, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 1750, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 0, 1752, 711, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 1457, 0, + 1458, 1459, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 86, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 95, 0, 1725, 0, 711, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 94, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 86, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 95, 0, - 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 95, 0, 1725, 0, 711, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4588,71 +4543,71 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 2385, 0, 0, - 2384, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 2332, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 94, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 1931, 194, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 95, 0, 0, 0, 194, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4660,144 +4615,145 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 2330, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, + 0, 0, 0, 0, 2385, 0, 0, 2384, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 2332, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 1931, 194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, - 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 362, 1083, 329, 197, 224, 1081, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 2332, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 2330, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 1931, 194, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 0, 0, 711, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, + 0, 0, 0, 0, 0, 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4805,72 +4761,71 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 362, 1083, + 329, 197, 224, 1081, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 2332, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 1725, 0, 711, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 1931, 194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4878,289 +4833,289 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 3656, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 1725, 0, 711, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 2093, 711, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 3673, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 0, 2829, 711, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 2093, 711, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 0, 711, 0, 0, - 0, 0, 2814, 0, 0, 0, 0, 237, 0, 0, - 244, 2815, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 0, 2829, 711, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 269, 1771, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 0, 1770, 711, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 0, 711, 0, 0, 0, 0, 2814, + 0, 0, 0, 0, 237, 0, 0, 244, 2815, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5168,71 +5123,72 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 0, 0, 269, + 1771, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 0, 1770, 711, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 0, 713, 714, 715, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5240,72 +5196,71 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 0, 713, 714, 715, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5313,1159 +5268,1159 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 3995, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 0, 0, 711, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 1931, 194, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 4012, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 1931, 194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 3656, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 0, 0, 711, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 95, 0, 0, 0, 711, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 3673, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 2386, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 95, 0, 0, 0, 711, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 2386, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 0, 0, 194, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 1752, 711, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 1752, 711, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 2045, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 0, 0, 194, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 2036, 711, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 2045, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 1898, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 2036, 711, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 1898, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 0, 0, 711, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 1896, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 0, 711, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 1896, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 1894, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 0, 711, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 1894, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 0, 0, 711, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 1892, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 0, 711, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 1892, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 1890, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 0, 711, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 1890, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 0, 0, 711, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 1886, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 0, 711, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 1886, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 1884, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 0, 711, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 1884, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 0, 0, 711, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 1882, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 0, 711, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 1882, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 1857, 0, - 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 0, 711, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6473,144 +6428,144 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 1857, 0, 0, 0, 711, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 0, 0, 0, 1756, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 0, 194, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 0, 0, 0, 1756, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 95, 0, - 0, 0, 944, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 0, 194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6618,71 +6573,72 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 95, 0, 0, 0, 944, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 0, 194, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6690,72 +6646,71 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1436, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 1435, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 0, 194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6763,71 +6718,71 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1034, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, + 0, 0, 0, 0, 1436, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 0, 194, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 1435, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 0, 0, 194, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6835,144 +6790,144 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 664, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 0, 1034, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 0, 194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 4055, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 664, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 0, 711, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 0, 0, 711, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6980,144 +6935,145 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 393, 0, 373, 570, 571, 315, - 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 269, 0, 0, 0, 0, 363, 266, 0, - 0, 427, 0, 203, 0, 483, 251, 374, 371, 577, - 281, 272, 268, 249, 316, 382, 425, 512, 419, 0, - 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 247, 324, 202, 410, 494, 285, 0, 0, 0, - 0, 0, 944, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 244, 0, 0, 0, 348, - 357, 356, 337, 338, 340, 342, 347, 354, 360, 0, - 0, 0, 0, 0, 264, 320, 271, 263, 574, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 4072, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 0, 711, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 399, 256, 0, 450, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, - 0, 362, 0, 329, 197, 224, 0, 0, 409, 458, - 470, 0, 0, 0, 252, 0, 468, 423, 596, 232, - 283, 455, 429, 466, 437, 286, 0, 0, 467, 369, - 579, 447, 593, 619, 620, 262, 403, 605, 516, 613, - 637, 225, 259, 417, 501, 599, 490, 394, 575, 576, - 328, 489, 294, 201, 366, 625, 223, 476, 368, 241, - 230, 581, 602, 298, 288, 453, 632, 212, 511, 591, - 238, 480, 0, 0, 640, 246, 500, 214, 588, 499, - 390, 325, 326, 213, 0, 454, 267, 292, 0, 0, - 257, 412, 583, 584, 255, 641, 227, 612, 219, 0, - 611, 405, 578, 589, 391, 380, 218, 587, 389, 379, - 333, 352, 353, 279, 306, 444, 372, 445, 305, 307, - 401, 400, 402, 206, 600, 0, 207, 0, 495, 601, - 642, 449, 211, 233, 234, 236, 0, 278, 282, 290, - 293, 302, 303, 312, 364, 416, 443, 439, 448, 0, - 573, 594, 606, 617, 623, 624, 626, 627, 628, 629, - 630, 633, 631, 404, 310, 491, 332, 370, 0, 0, - 422, 469, 239, 598, 492, 199, 0, 0, 0, 0, - 253, 254, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 638, 502, 508, 503, 504, 505, 506, 507, 0, - 509, 0, 0, 0, 0, 0, 395, 0, 585, 586, - 661, 381, 482, 595, 334, 346, 349, 339, 358, 0, - 359, 335, 336, 341, 343, 344, 345, 350, 351, 355, - 361, 248, 209, 387, 396, 572, 311, 215, 216, 217, - 518, 519, 520, 521, 609, 610, 614, 204, 459, 460, - 461, 462, 291, 604, 308, 465, 464, 330, 331, 376, - 446, 534, 536, 547, 551, 553, 555, 561, 564, 535, - 537, 548, 552, 554, 556, 562, 565, 524, 526, 528, - 530, 543, 542, 539, 567, 568, 545, 550, 529, 541, - 546, 559, 566, 563, 523, 527, 531, 540, 558, 557, - 538, 549, 560, 544, 532, 525, 533, 0, 196, 220, - 365, 0, 451, 287, 639, 608, 603, 205, 222, 0, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 208, 221, 231, 235, 242, 260, - 275, 277, 284, 297, 309, 317, 318, 321, 327, 377, - 383, 384, 385, 386, 406, 407, 408, 411, 414, 415, - 418, 420, 421, 424, 428, 432, 433, 434, 436, 438, - 440, 452, 457, 471, 472, 473, 474, 475, 478, 479, - 484, 485, 486, 487, 488, 496, 497, 510, 580, 582, - 597, 615, 621, 477, 300, 301, 441, 442, 313, 314, - 635, 636, 299, 592, 622, 590, 634, 616, 435, 375, - 0, 0, 378, 280, 304, 319, 0, 607, 498, 226, - 463, 289, 250, 0, 0, 210, 245, 229, 258, 273, - 276, 323, 388, 397, 426, 431, 295, 270, 243, 456, - 240, 481, 513, 514, 515, 517, 392, 265, 430, 393, - 0, 373, 570, 571, 315, 0, 522, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, - 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, - 0, 0, 363, 266, 0, 0, 427, 0, 203, 0, - 483, 251, 374, 371, 577, 281, 272, 268, 249, 316, - 382, 425, 512, 419, 0, 367, 0, 0, 493, 398, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 393, 0, 373, 570, 571, 315, 0, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 0, 0, 269, + 0, 0, 0, 0, 363, 266, 0, 0, 427, 0, + 203, 0, 483, 251, 374, 371, 577, 281, 272, 268, + 249, 316, 382, 425, 512, 419, 0, 367, 0, 0, + 493, 398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 322, 247, 324, + 202, 410, 494, 285, 0, 0, 0, 0, 0, 944, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 244, 0, 0, 0, 348, 357, 356, 337, + 338, 340, 342, 347, 354, 360, 0, 0, 0, 0, + 0, 264, 320, 271, 263, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 247, 324, 202, 410, - 494, 285, 0, 0, 0, 0, 0, 194, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, - 244, 0, 0, 0, 348, 357, 356, 337, 338, 340, - 342, 347, 354, 360, 0, 0, 0, 0, 0, 264, - 320, 271, 263, 574, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7125,57 +7081,71 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, - 0, 399, 256, 0, 450, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 0, 362, 0, 329, 197, - 224, 0, 0, 409, 458, 470, 0, 0, 0, 252, - 0, 468, 423, 596, 232, 283, 455, 429, 466, 437, - 286, 0, 0, 467, 369, 579, 447, 593, 619, 620, - 262, 403, 605, 516, 613, 637, 225, 259, 417, 501, - 599, 490, 394, 575, 576, 328, 489, 294, 201, 366, - 625, 223, 476, 368, 241, 230, 581, 602, 298, 288, - 453, 632, 212, 511, 591, 238, 480, 0, 0, 640, - 246, 500, 214, 588, 499, 390, 325, 326, 213, 0, - 454, 267, 292, 0, 0, 257, 412, 583, 584, 255, - 641, 227, 612, 219, 0, 611, 405, 578, 589, 391, - 380, 218, 587, 389, 379, 333, 352, 353, 279, 306, - 444, 372, 445, 305, 307, 401, 400, 402, 206, 600, - 0, 207, 0, 495, 601, 642, 449, 211, 233, 234, - 236, 0, 278, 282, 290, 293, 302, 303, 312, 364, - 416, 443, 439, 448, 0, 573, 594, 606, 617, 623, - 624, 626, 627, 628, 629, 630, 633, 631, 404, 310, - 491, 332, 370, 0, 0, 422, 469, 239, 598, 492, - 199, 0, 0, 0, 0, 253, 254, 0, 569, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 638, 502, 508, 503, - 504, 505, 506, 507, 0, 509, 0, 0, 0, 0, - 0, 395, 0, 585, 586, 661, 381, 482, 595, 334, - 346, 349, 339, 358, 0, 359, 335, 336, 341, 343, - 344, 345, 350, 351, 355, 361, 248, 209, 387, 396, - 572, 311, 215, 216, 217, 518, 519, 520, 521, 609, - 610, 614, 204, 459, 460, 461, 462, 291, 604, 308, - 465, 464, 330, 331, 376, 446, 534, 536, 547, 551, - 553, 555, 561, 564, 535, 537, 548, 552, 554, 556, - 562, 565, 524, 526, 528, 530, 543, 542, 539, 567, - 568, 545, 550, 529, 541, 546, 559, 566, 563, 523, - 527, 531, 540, 558, 557, 538, 549, 560, 544, 532, - 525, 533, 0, 196, 220, 365, 0, 451, 287, 639, - 608, 603, 205, 222, 0, 261, 3714, 3716, 3715, 3779, - 3780, 3781, 3782, 3783, 3784, 3785, 792, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 200, 208, - 221, 231, 235, 242, 260, 275, 277, 284, 297, 309, - 317, 318, 321, 327, 377, 383, 384, 385, 386, 406, - 407, 408, 411, 414, 415, 418, 420, 421, 424, 428, - 432, 433, 434, 436, 438, 440, 452, 457, 471, 472, - 473, 474, 475, 478, 479, 484, 485, 486, 487, 488, - 496, 497, 510, 580, 582, 597, 615, 621, 477, 300, - 301, 441, 442, 313, 314, 635, 636, 299, 592, 622, - 590, 634, 616, 435, 375, 0, 0, 378, 280, 304, - 319, 0, 607, 498, 226, 463, 289, 250, 0, 0, - 210, 245, 229, 258, 273, 276, 323, 388, 397, 426, - 431, 295, 270, 243, 456, 240, 481, 513, 514, 515, - 517, 392, 265, 430, 0, 0, 373, 570, 571, 315, + 0, 296, 0, 399, 256, 0, 450, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 0, 362, 0, + 329, 197, 224, 0, 0, 409, 458, 470, 0, 0, + 0, 252, 0, 468, 423, 596, 232, 283, 455, 429, + 466, 437, 286, 0, 0, 467, 369, 579, 447, 593, + 619, 620, 262, 403, 605, 516, 613, 637, 225, 259, + 417, 501, 599, 490, 394, 575, 576, 328, 489, 294, + 201, 366, 625, 223, 476, 368, 241, 230, 581, 602, + 298, 288, 453, 632, 212, 511, 591, 238, 480, 0, + 0, 640, 246, 500, 214, 588, 499, 390, 325, 326, + 213, 0, 454, 267, 292, 0, 0, 257, 412, 583, + 584, 255, 641, 227, 612, 219, 0, 611, 405, 578, + 589, 391, 380, 218, 587, 389, 379, 333, 352, 353, + 279, 306, 444, 372, 445, 305, 307, 401, 400, 402, + 206, 600, 0, 207, 0, 495, 601, 642, 449, 211, + 233, 234, 236, 0, 278, 282, 290, 293, 302, 303, + 312, 364, 416, 443, 439, 448, 0, 573, 594, 606, + 617, 623, 624, 626, 627, 628, 629, 630, 633, 631, + 404, 310, 491, 332, 370, 0, 0, 422, 469, 239, + 598, 492, 199, 0, 0, 0, 0, 253, 254, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 638, 502, + 508, 503, 504, 505, 506, 507, 0, 509, 0, 0, + 0, 0, 0, 395, 0, 585, 586, 661, 381, 482, + 595, 334, 346, 349, 339, 358, 0, 359, 335, 336, + 341, 343, 344, 345, 350, 351, 355, 361, 248, 209, + 387, 396, 572, 311, 215, 216, 217, 518, 519, 520, + 521, 609, 610, 614, 204, 459, 460, 461, 462, 291, + 604, 308, 465, 464, 330, 331, 376, 446, 534, 536, + 547, 551, 553, 555, 561, 564, 535, 537, 548, 552, + 554, 556, 562, 565, 524, 526, 528, 530, 543, 542, + 539, 567, 568, 545, 550, 529, 541, 546, 559, 566, + 563, 523, 527, 531, 540, 558, 557, 538, 549, 560, + 544, 532, 525, 533, 0, 196, 220, 365, 0, 451, + 287, 639, 608, 603, 205, 222, 0, 261, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 208, 221, 231, 235, 242, 260, 275, 277, 284, + 297, 309, 317, 318, 321, 327, 377, 383, 384, 385, + 386, 406, 407, 408, 411, 414, 415, 418, 420, 421, + 424, 428, 432, 433, 434, 436, 438, 440, 452, 457, + 471, 472, 473, 474, 475, 478, 479, 484, 485, 486, + 487, 488, 496, 497, 510, 580, 582, 597, 615, 621, + 477, 300, 301, 441, 442, 313, 314, 635, 636, 299, + 592, 622, 590, 634, 616, 435, 375, 0, 0, 378, + 280, 304, 319, 0, 607, 498, 226, 463, 289, 250, + 0, 0, 210, 245, 229, 258, 273, 276, 323, 388, + 397, 426, 431, 295, 270, 243, 456, 240, 481, 513, + 514, 515, 517, 392, 265, 430, 393, 0, 373, 570, + 571, 315, 0, 522, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 0, 0, 363, + 266, 0, 0, 427, 0, 203, 0, 483, 251, 374, + 371, 577, 281, 272, 268, 249, 316, 382, 425, 512, + 419, 0, 367, 0, 0, 493, 398, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 322, 247, 324, 202, 410, 494, 285, 0, + 0, 0, 0, 0, 194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 244, 0, 0, + 0, 348, 357, 356, 337, 338, 340, 342, 347, 354, + 360, 0, 0, 0, 0, 0, 264, 320, 271, 263, + 574, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7183,65 +7153,123 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 0, 399, 256, + 0, 450, 0, 0, 0, 618, 0, 0, 0, 0, + 0, 0, 0, 362, 0, 329, 197, 224, 0, 0, + 409, 458, 470, 0, 0, 0, 252, 0, 468, 423, + 596, 232, 283, 455, 429, 466, 437, 286, 0, 0, + 467, 369, 579, 447, 593, 619, 620, 262, 403, 605, + 516, 613, 637, 225, 259, 417, 501, 599, 490, 394, + 575, 576, 328, 489, 294, 201, 366, 625, 223, 476, + 368, 241, 230, 581, 602, 298, 288, 453, 632, 212, + 511, 591, 238, 480, 0, 0, 640, 246, 500, 214, + 588, 499, 390, 325, 326, 213, 0, 454, 267, 292, + 0, 0, 257, 412, 583, 584, 255, 641, 227, 612, + 219, 0, 611, 405, 578, 589, 391, 380, 218, 587, + 389, 379, 333, 352, 353, 279, 306, 444, 372, 445, + 305, 307, 401, 400, 402, 206, 600, 0, 207, 0, + 495, 601, 642, 449, 211, 233, 234, 236, 0, 278, + 282, 290, 293, 302, 303, 312, 364, 416, 443, 439, + 448, 0, 573, 594, 606, 617, 623, 624, 626, 627, + 628, 629, 630, 633, 631, 404, 310, 491, 332, 370, + 0, 0, 422, 469, 239, 598, 492, 199, 0, 0, + 0, 0, 253, 254, 0, 569, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 638, 502, 508, 503, 504, 505, 506, + 507, 0, 509, 0, 0, 0, 0, 0, 395, 0, + 585, 586, 661, 381, 482, 595, 334, 346, 349, 339, + 358, 0, 359, 335, 336, 341, 343, 344, 345, 350, + 351, 355, 361, 248, 209, 387, 396, 572, 311, 215, + 216, 217, 518, 519, 520, 521, 609, 610, 614, 204, + 459, 460, 461, 462, 291, 604, 308, 465, 464, 330, + 331, 376, 446, 534, 536, 547, 551, 553, 555, 561, + 564, 535, 537, 548, 552, 554, 556, 562, 565, 524, + 526, 528, 530, 543, 542, 539, 567, 568, 545, 550, + 529, 541, 546, 559, 566, 563, 523, 527, 531, 540, + 558, 557, 538, 549, 560, 544, 532, 525, 533, 0, + 196, 220, 365, 0, 451, 287, 639, 608, 603, 205, + 222, 0, 261, 3731, 3733, 3732, 3796, 3797, 3798, 3799, + 3800, 3801, 3802, 792, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 200, 208, 221, 231, 235, + 242, 260, 275, 277, 284, 297, 309, 317, 318, 321, + 327, 377, 383, 384, 385, 386, 406, 407, 408, 411, + 414, 415, 418, 420, 421, 424, 428, 432, 433, 434, + 436, 438, 440, 452, 457, 471, 472, 473, 474, 475, + 478, 479, 484, 485, 486, 487, 488, 496, 497, 510, + 580, 582, 597, 615, 621, 477, 300, 301, 441, 442, + 313, 314, 635, 636, 299, 592, 622, 590, 634, 616, + 435, 375, 0, 0, 378, 280, 304, 319, 0, 607, + 498, 226, 463, 289, 250, 0, 0, 210, 245, 229, + 258, 273, 276, 323, 388, 397, 426, 431, 295, 270, + 243, 456, 240, 481, 513, 514, 515, 517, 392, 265, + 430, 0, 0, 373, 570, 571, 315, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3720, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3728, 3729, - 0, 0, 3804, 3803, 3802, 0, 0, 3800, 3801, 3799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3737, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3745, 3746, 0, 0, 3821, + 3820, 3819, 0, 0, 3817, 3818, 3816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3805, 913, 0, 768, 769, 3806, 3807, 917, - 3808, 771, 772, 914, 915, 0, 766, 770, 916, 918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3822, + 913, 0, 768, 769, 3823, 3824, 917, 3825, 771, 772, + 914, 915, 0, 766, 770, 916, 918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3711, 3712, 3713, 3717, 3718, - 3719, 3730, 3777, 3778, 3786, 3788, 869, 3787, 3789, 3790, - 3791, 3794, 3795, 3796, 3797, 3792, 3793, 3798, 3694, 3698, - 3695, 3696, 3697, 3709, 3699, 3700, 3701, 3702, 3703, 3704, - 3705, 3706, 3707, 3708, 3710, 3809, 3810, 3811, 3812, 3813, - 3814, 3723, 3727, 3726, 3724, 3725, 3721, 3722, 3749, 3748, - 3750, 3751, 3752, 3753, 3754, 3755, 3757, 3756, 3758, 3759, - 3760, 3761, 3762, 3763, 3731, 3732, 3735, 3736, 3734, 3733, - 3737, 3746, 3747, 3738, 3739, 3740, 3741, 3742, 3743, 3745, - 3744, 3764, 3765, 3766, 3767, 3768, 3770, 3769, 3773, 3774, - 3772, 3771, 3776, 3775, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 919, 0, 920, 0, - 0, 924, 0, 0, 0, 926, 925, 0, 927, 889, - 888, 0, 0, 921, 922, 0, 923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3728, 3729, 3730, 3734, 3735, 3736, 3747, 3794, + 3795, 3803, 3805, 869, 3804, 3806, 3807, 3808, 3811, 3812, + 3813, 3814, 3809, 3810, 3815, 3711, 3715, 3712, 3713, 3714, + 3726, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, + 3725, 3727, 3826, 3827, 3828, 3829, 3830, 3831, 3740, 3744, + 3743, 3741, 3742, 3738, 3739, 3766, 3765, 3767, 3768, 3769, + 3770, 3771, 3772, 3774, 3773, 3775, 3776, 3777, 3778, 3779, + 3780, 3748, 3749, 3752, 3753, 3751, 3750, 3754, 3763, 3764, + 3755, 3756, 3757, 3758, 3759, 3760, 3762, 3761, 3781, 3782, + 3783, 3784, 3785, 3787, 3786, 3790, 3791, 3789, 3788, 3793, + 3792, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 919, 0, 920, 0, 0, 924, 0, + 0, 0, 926, 925, 0, 927, 889, 888, 0, 0, + 921, 922, 0, 923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, + 0, 0, 0, 0, 0, 0, 0, 0, 3832, 3833, + 3834, 3835, 3836, 3837, 3838, 3839, } var yyPact = [...]int{ - -1000, -1000, 5220, -1000, -536, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 5143, -1000, -529, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 2422, 2672, -1000, -1000, -1000, -1000, 2648, -1000, 1005, - 2116, -1000, 2421, 4974, -1000, 54375, 787, -1000, 51475, -438, - 897, 218, 35525, -1000, 183, -1000, 168, 52925, 174, -1000, - -1000, -1000, -1000, -438, 21025, 2330, 49, 44, 54375, -1000, - -1000, -1000, -1000, -361, 2618, 2074, -1000, 389, -1000, -1000, - -1000, -1000, -1000, -1000, 50750, -1000, 1182, -1000, -1000, 2430, - 2401, 2301, 928, 2355, -1000, 2514, 2074, -1000, 21025, 2601, - 2481, 20300, 20300, 461, -1000, -1000, 282, -1000, -1000, 30450, - 54375, 38425, 896, -1000, 2421, -1000, -1000, -1000, 245, -1000, - 371, 1980, -1000, 1975, -1000, 925, 1048, 387, 472, 468, - 386, 384, 382, 380, 379, 377, 376, 374, 398, -1000, - 941, 941, -214, -219, 1382, 451, 450, 450, 1020, 493, - 2379, 2358, -1000, -1000, 941, 941, 941, 333, 941, 941, - 941, 941, 310, 306, 941, 941, 941, 941, 941, 941, - 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, - 941, 921, 2421, 262, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 2371, 2861, -1000, -1000, -1000, -1000, 2565, -1000, 1054, + 2064, -1000, 2380, 2023, -1000, 54652, 801, -1000, 51752, -438, + 914, 239, 35802, -1000, 188, -1000, 177, 53202, 183, -1000, + -1000, -1000, -1000, -438, 21302, 2287, 57, 56, 54652, -1000, + -1000, -1000, -1000, -356, 2519, 2038, -1000, 386, -1000, -1000, + -1000, -1000, -1000, -1000, 51027, -1000, 1202, -1000, -1000, 2373, + 2384, 2213, 950, 2296, -1000, 2457, 2038, -1000, 21302, 2509, + 2423, 20577, 20577, 468, -1000, -1000, 270, -1000, -1000, 30727, + 54652, 38702, 891, -1000, 2380, -1000, -1000, -1000, 192, -1000, + 364, 1966, -1000, 1965, -1000, 926, 882, 403, 888, 878, + 402, 401, 394, 392, 391, 385, 383, 382, 415, -1000, + 998, 998, -196, -197, 4425, 459, 452, 452, 1030, 499, + 2320, 2317, -1000, -1000, 998, 998, 998, 339, 998, 998, + 998, 998, 319, 310, 998, 998, 998, 998, 998, 998, + 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, + 998, 908, 2380, 263, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -7288,67 +7316,67 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 54375, 231, 54375, -1000, 845, 785, -1000, -1000, - -442, 1092, 1092, 60, 1092, 1092, 1092, 1092, 179, 1007, - 42, -1000, 175, 254, 195, 257, 1095, 776, -1000, -1000, - 263, 1095, 1820, -1000, 935, 251, 157, -1000, 1092, 1092, - -1000, 13751, 259, 13751, 13751, -1000, 2406, -1000, -1000, -1000, - -1000, -1000, 1352, -1000, -1000, -1000, -1000, -27, 492, -1000, - -1000, -1000, -1000, 52925, 50025, 291, -1000, -1000, 252, 1667, - 1197, 21025, 1349, 923, -1000, -1000, 1402, 900, -1000, -1000, - -1000, -1000, -1000, 823, -1000, 23200, 23200, 23200, 23200, -1000, - -1000, 1982, 49300, 1982, 1982, 23200, 1982, 23200, 1982, 1982, - 1982, 1982, 21025, 1982, 1982, 1982, 1982, -1000, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, -1000, -1000, -1000, -1000, 1982, - 844, 1982, 1982, 1982, 1982, 1982, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1982, 1982, 1982, 1982, 1982, 1982, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, -1000, -1000, -1000, 1739, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 26100, 1653, 1627, 1621, -1000, 18125, 1982, + -1000, -1000, 54652, 248, 54652, -1000, 865, 800, -1000, -1000, + -443, 1118, 1118, 81, 1118, 1118, 1118, 1118, 215, 1006, + 55, -1000, 173, 287, 181, 260, 1147, 336, -1000, -1000, + 250, 1147, 1870, -1000, 975, 254, 199, -1000, 1118, 1118, + -1000, 14028, 207, 14028, 14028, -1000, 2354, -1000, -1000, -1000, + -1000, -1000, 1368, -1000, -1000, -1000, -1000, -8, 478, -1000, + -1000, -1000, -1000, 53202, 50302, 277, -1000, -1000, 315, 1422, + 1235, 21302, 1188, 948, -1000, -1000, 1420, 918, -1000, -1000, + -1000, -1000, -1000, 845, -1000, 23477, 23477, 23477, 23477, -1000, + -1000, 1746, 49577, 1746, 1746, 23477, 1746, 23477, 1746, 1746, + 1746, 1746, 21302, 1746, 1746, 1746, 1746, -1000, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, -1000, -1000, -1000, -1000, 1746, + 863, 1746, 1746, 1746, 1746, 1746, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1746, 1746, 1746, 1746, 1746, 1746, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, -1000, -1000, -1000, 1680, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 26377, 1597, 1585, 1573, -1000, 18402, 1746, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 54375, -1000, 1982, 198, 52925, 52925, 332, 1395, -1000, - -1000, 2514, 2074, -1000, 2618, 2532, 389, -1000, 3343, 1531, - 1607, 1547, 2074, 1945, 54375, -1000, 2010, -1000, -1000, -1000, - -316, -344, 2256, 1488, 1805, -1000, -1000, -1000, -1000, 2547, - 21025, -1000, -1000, 2644, -1000, 27550, 843, 2643, 48575, -1000, - 461, 461, 1965, 414, 21, -1000, -1000, -1000, -1000, 1012, - 34800, -1000, -1000, -1000, -1000, -1000, 1845, 54375, -1000, -1000, - 5812, 1289, -1000, 2112, -1000, 1834, -1000, 2046, 21025, 2072, - 784, 1289, 770, 755, 470, -1000, -63, -1000, -1000, -1000, - -1000, -1000, -1000, 941, 941, 941, -1000, 393, 2593, 4974, - 6316, -1000, -1000, -1000, 47850, 2110, 1289, -1000, 2107, -1000, - 1112, 884, 890, 890, 1289, -1000, -1000, 53650, 1289, 1104, - 1090, 1289, 1289, 52925, 52925, -1000, 47125, -1000, 46400, 45675, - 1392, 52925, 44950, 44225, 43500, 42775, 42050, -1000, 2252, -1000, - 2030, -1000, -1000, -1000, 53650, 1289, 1289, 53650, 52925, 53650, - 54375, 1289, -1000, -1000, 342, -1000, -1000, 1391, 1389, 1388, - 941, 941, 1375, 1804, 1800, 1789, 941, 941, 1374, 1788, - 36975, 1786, 283, 1371, 1357, 1347, 1330, 1785, 207, 1779, - 1314, 1255, 1335, 52925, 2101, 54375, -1000, 243, 1059, 904, - 991, 2421, 2310, 1956, 490, 783, 1289, 454, 454, 52925, - -1000, 14482, 54375, 211, -1000, 1778, 21025, -1000, 1118, 1095, - 1095, -1000, -1000, -1000, -1000, -1000, -1000, 1092, 54375, 1118, - -1000, -1000, -1000, 1095, 1092, 54375, 1092, 1092, 1092, 1092, - 1095, 1095, 1095, 1092, 54375, 54375, 54375, 54375, 54375, 54375, - 54375, 54375, 54375, 13751, 935, 1092, -443, -1000, 1777, -1000, - -1000, -1000, 2217, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 54652, -1000, 1746, 218, 53202, 53202, 389, 1362, -1000, + -1000, 2457, 2038, -1000, 2519, 2511, 386, -1000, 2800, 1722, + 1520, 1521, 2038, 1936, 54652, -1000, 1979, -1000, -1000, -1000, + -320, -345, 2151, 1454, 1851, -1000, -1000, -1000, -1000, 2528, + 21302, -1000, -1000, 2553, -1000, 27827, 862, 2552, 48852, -1000, + 468, 468, 1957, 421, 34, -1000, -1000, -1000, -1000, 1024, + 35077, -1000, -1000, -1000, -1000, -1000, 1880, 54652, -1000, -1000, + 5891, 1314, -1000, 2057, -1000, 1863, -1000, 2002, 21302, 2070, + 799, 1314, 784, 526, 514, -1000, -55, -1000, -1000, -1000, + -1000, -1000, -1000, 998, 998, 998, -1000, 410, 2504, 2023, + 5083, -1000, -1000, -1000, 48127, 2056, 1314, -1000, 2048, -1000, + 1110, 898, 883, 883, 1314, -1000, -1000, 53927, 1314, 1108, + 1095, 1314, 1314, 53202, 53202, -1000, 47402, -1000, 46677, 45952, + 1357, 53202, 45227, 44502, 43777, 43052, 42327, -1000, 2284, -1000, + 2027, -1000, -1000, -1000, 53927, 1314, 1314, 53927, 53202, 53927, + 54652, 1314, -1000, -1000, 350, -1000, -1000, 1354, 1352, 1346, + 998, 998, 1343, 1846, 1844, 1842, 998, 998, 1339, 1836, + 37252, 1834, 279, 1337, 1331, 1330, 1344, 1828, 264, 1816, + 1319, 1296, 1323, 53202, 2047, 54652, -1000, 244, 981, 433, + 1020, 2380, 2265, 1956, 477, 798, 1314, 457, 457, 53202, + -1000, 14759, 54652, 233, -1000, 1801, 21302, -1000, 1156, 1147, + 1147, -1000, -1000, -1000, -1000, -1000, -1000, 1118, 54652, 1156, + -1000, -1000, -1000, 1147, 1118, 54652, 1118, 1118, 1118, 1118, + 1147, 1147, 1147, 1118, 54652, 54652, 54652, 54652, 54652, 54652, + 54652, 54652, 54652, 14028, 975, 1118, -444, -1000, 1774, -1000, + -1000, -1000, 2163, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -7364,329 +7392,330 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 13751, 13751, -1000, -1000, -1000, -1000, -1000, 1954, -1000, 164, - 1, 171, -1000, 41325, 509, 982, -1000, 509, -1000, -1000, - -1000, 1953, 40600, -1000, -445, -448, -451, -454, -1000, -1000, - -1000, -461, -462, -1000, -1000, -1000, 21025, 21025, 21025, 21025, - -246, -1000, 1284, 23200, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 21025, 260, 1043, 23200, 23200, 23200, 23200, 23200, 23200, - 23200, 24650, 23925, 23200, 23200, 23200, 23200, 23200, 23200, -1000, - -1000, 32625, 6888, 6888, 900, 900, 900, 900, -1000, -178, - 1948, 53650, -1000, -1000, -1000, 842, 21025, 21025, 900, -1000, - 1289, 1203, 18125, 21025, 21025, 21025, 21025, 1022, 1197, 53650, - 21025, -1000, 1547, -1000, -1000, -1000, -1000, 1237, -1000, -1000, - 1132, 2405, 2405, 2405, 2405, 21025, 21025, 21025, 21025, 21025, - 21025, 21025, 21025, 21025, 21025, 2405, 21025, 107, 107, 271, - 21025, 21025, 21025, 21025, 21025, 21025, 16675, 21025, 21025, 23200, - 21025, 21025, 21025, 1547, 21025, 21025, 21025, 21025, 21025, 21025, - 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, - 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, - 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, - 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, - 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, - 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, - 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, 21025, - 21025, 21025, 21025, 1547, 21025, 1310, 21025, 21025, 21025, 21025, - 21025, 21025, 21025, 15944, 21025, 21025, 21025, 21025, 21025, -1000, - -1000, -1000, -1000, -1000, -1000, 21025, 21025, 21025, 21025, 21025, - 21025, 21025, 21025, 1547, 21025, 21025, 21025, 21025, 21025, -1000, + 14028, 14028, -1000, -1000, -1000, -1000, -1000, 1953, -1000, 174, + 19, 180, -1000, 41602, 502, 1017, -1000, 502, -1000, -1000, + -1000, 1942, 40877, -1000, -449, -450, -451, -453, -1000, -1000, + -1000, -456, -457, -1000, -1000, -1000, 21302, 21302, 21302, 21302, + -229, -1000, 1310, 23477, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 21302, 249, 1128, 23477, 23477, 23477, 23477, 23477, 23477, + 23477, 24927, 24202, 23477, 23477, 23477, 23477, 23477, 23477, -1000, + -1000, 32902, 5565, 5565, 918, 918, 918, 918, -1000, -166, + 1941, 53927, -1000, -1000, -1000, 860, 21302, 21302, 918, -1000, + 1314, 4166, 18402, 21302, 21302, 21302, 21302, 1001, 1235, 53927, + 21302, -1000, 1521, -1000, -1000, -1000, -1000, 1236, -1000, -1000, + 1106, 2353, 2353, 2353, 2353, 21302, 21302, 21302, 21302, 21302, + 21302, 21302, 21302, 21302, 21302, 2353, 21302, 144, 144, 913, + 21302, 21302, 21302, 21302, 21302, 21302, 16952, 21302, 21302, 23477, + 21302, 21302, 21302, 1521, 21302, 21302, 21302, 21302, 21302, 21302, + 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, + 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, + 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, + 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, + 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, + 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, + 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, 21302, + 21302, 21302, 21302, 1521, 21302, 1632, 21302, 21302, 21302, 21302, + 21302, 21302, 21302, 16221, 21302, 21302, 21302, 21302, 21302, -1000, + -1000, -1000, -1000, -1000, -1000, 21302, 21302, 21302, 21302, 21302, + 21302, 21302, 21302, 1521, 21302, 21302, 21302, 21302, 21302, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1537, 1517, 1528, 21025, -1000, 1946, -1000, -190, 29725, 21025, - 1776, 2632, 2144, 52925, -1000, -1000, -1000, -1000, 2514, -1000, - 2514, 1537, 3325, 2248, 20300, -1000, -1000, 3325, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1722, -1000, 54375, - 1945, 2473, 52925, -1000, -276, -1000, -305, 2244, 1775, 901, - -1000, 21025, 21025, 1944, -1000, 2222, 54375, -1000, -246, -1000, - 39875, -1000, -1000, 13020, 54375, 341, 54375, -1000, 29000, 39150, - 296, -1000, 21, 1908, -1000, 14, -6, 17400, 867, -1000, - -1000, -1000, 1382, 25375, 1746, 867, 86, -1000, -1000, -1000, - 2046, -1000, 2046, 2046, 2046, 2046, 901, 901, 901, 901, - -1000, -1000, -1000, -1000, -1000, 2094, 2092, -1000, 2046, 2046, - 2046, 2046, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2087, - 2087, 2087, 2086, 2086, 2061, 2061, 440, -1000, 21025, 411, - 38425, 2445, 1334, 1293, 243, 455, 2139, 1289, 1289, 1289, - 455, -1000, 1507, 1500, 1438, -1000, -523, 1939, -1000, -1000, - 2588, -1000, -1000, 891, 1149, 1142, 1072, 52925, 216, 331, - -1000, 431, -1000, 38425, 1289, 1086, 890, 1289, -1000, 1289, - -1000, -1000, -1000, -1000, -1000, 1289, -1000, -1000, 1930, -1000, - 1909, 1174, 1133, 1163, 1127, 1930, -1000, -1000, -185, 1930, - -1000, 1930, -1000, 1930, -1000, 1930, -1000, 1930, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1028, 281, -313, - 52925, 216, 469, -1000, 464, 32625, -1000, -1000, -1000, 32625, - 32625, -1000, -1000, -1000, -1000, 1768, 1754, -1000, -1000, -1000, + 1723, 1692, 1490, 21302, -1000, 1939, -1000, -186, 30002, 21302, + 1772, 2548, 2081, 53202, -1000, -1000, -1000, -1000, 2457, -1000, + 2457, 1723, 2717, 2179, 20577, -1000, -1000, 2717, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1783, -1000, 54652, + 1936, 2415, 53202, -1000, -270, -1000, -299, 2175, 1765, 345, + -1000, 21302, 21302, 1929, -1000, 1777, 54652, -1000, -229, -1000, + 40152, -1000, -1000, 13297, 54652, 355, 54652, -1000, 29277, 39427, + 312, -1000, 34, 1911, -1000, 27, 5, 17677, 916, -1000, + -1000, -1000, 4425, 25652, 1737, 916, 106, -1000, -1000, -1000, + 2002, -1000, 2002, 2002, 2002, 2002, 345, 345, 345, 345, + -1000, -1000, -1000, -1000, -1000, 2044, 2041, -1000, 2002, 2002, + 2002, 2002, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2030, + 2030, 2030, 2029, 2029, 2016, 2016, 443, -1000, 21302, 407, + 38702, 2392, 1322, 1593, 244, 460, 2079, 1314, 1314, 1314, + 460, -1000, 1430, 1421, 1413, -1000, -518, 1925, -1000, -1000, + 2503, -1000, -1000, 938, 1153, 1152, 905, 53202, 225, 347, + -1000, 441, -1000, 38702, 1314, 1091, 883, 1314, -1000, 1314, + -1000, -1000, -1000, -1000, -1000, 1314, -1000, -1000, 1924, -1000, + 1926, 1184, 1138, 1180, 1135, 1924, -1000, -1000, -172, 1924, + -1000, 1924, -1000, 1924, -1000, 1924, -1000, 1924, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1032, 327, -371, + 53202, 225, 476, -1000, 473, 32902, -1000, -1000, -1000, 32902, + 32902, -1000, -1000, -1000, -1000, 1755, 1745, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -506, 54375, -1000, 230, - 970, 309, 307, 303, 54375, 329, 2512, 2509, 2503, 2497, - 2487, 2476, 287, 304, 54375, 54375, 454, 2187, 54375, 2452, - 54375, -1000, -1000, -1000, -1000, -1000, 1753, 1747, -1000, 1197, - 54375, -1000, -1000, 1092, 1092, -1000, -1000, 54375, 1092, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1092, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -503, 54652, -1000, 238, + 1011, 337, 414, 320, 54652, 423, 2451, 2449, 2445, 2439, + 2430, 2419, 252, 300, 54652, 54652, 457, 2127, 54652, 2400, + 54652, -1000, -1000, -1000, -1000, -1000, 1714, 1698, -1000, 1235, + 54652, -1000, -1000, 1118, 1118, -1000, -1000, 54652, 1118, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1118, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 54375, -1000, -1000, -1000, -1000, -27, 161, - -1000, -1000, 52925, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -105, -1000, 46, 18, 406, -1000, -1000, -1000, - -1000, -1000, 2502, -1000, 1197, 1079, 1044, -1000, 1982, -1000, - -1000, 1264, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 260, 23200, 23200, 23200, 1414, 830, 1226, 1557, 1567, 1290, - 1290, 981, 23200, 981, 23200, 906, 906, 906, 906, 906, - -1000, -1000, -1000, -1000, -1000, -1000, 1739, -1000, 1725, -1000, - 1982, 53650, 1745, 15944, 2228, 2104, 1547, 916, -1000, -1000, + -1000, -1000, -1000, 54652, -1000, -1000, -1000, -1000, -8, 172, + -1000, -1000, 53202, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -105, -1000, 770, 17, 417, -1000, -1000, -1000, + -1000, -1000, 2444, -1000, 1235, 1049, 1064, -1000, 1746, -1000, + -1000, 1260, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 249, 23477, 23477, 23477, 1432, 820, 1487, 933, 1229, 1125, + 1125, 1048, 23477, 1048, 23477, 917, 917, 917, 917, 917, + -1000, -1000, -1000, -1000, -1000, -1000, 1680, -1000, 1675, -1000, + 1746, 53927, 1857, 16221, 1534, 2670, 1521, 942, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3431, 1547, - 1667, 1547, 1453, 3423, 1034, -1000, 21025, 1547, 3412, -1000, - -1000, 1547, 1547, 21025, -1000, -1000, 21025, 21025, 21025, 21025, - 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, - 21025, 1293, 1927, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3886, 1521, + 1422, 1521, 1839, 3857, 1053, -1000, 21302, 1521, 3853, -1000, + -1000, 1521, 1521, 21302, -1000, -1000, 21302, 21302, 21302, 21302, + 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, + 21302, 1593, 1918, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1911, 2627, 1312, 1293, 1293, 1293, 1293, 1293, 21025, - 1813, -1000, -1000, -1000, 1514, 3407, 1348, 3402, 1293, 1293, - -1000, 1293, 3389, 3373, 1547, 2536, 2531, 1293, 1293, 1293, - 1293, 1293, 2527, 2523, 1293, 1293, 2506, 1293, 3363, 1293, - 2501, 2456, 2443, 2434, 2428, 2424, 2419, 2414, 2354, 2344, - 2340, 2321, 2307, 2278, 2250, 2246, 2240, 2234, 1293, 1293, - 1293, 3354, 1293, 3349, 1293, 3340, 1293, 1293, 3333, 2216, - 2177, 1547, 1910, -1000, 3326, 1293, 3290, 3060, 3053, 2173, - 3026, 3017, 3000, 1293, 1293, 1293, 2169, 2996, 2988, 2969, - 2951, 2940, 2922, 2918, 2912, 2892, 1293, 1528, 1528, 1528, - 1528, 1528, 2882, -248, 1293, 1547, -1000, -1000, -1000, -1000, - -1000, 2850, 2146, 2836, 2820, 2815, 2789, 1547, 1982, 839, - -1000, -1000, 1528, 1547, 1547, 1528, 1528, 2780, 2720, 2703, - 2698, 2693, 2657, 1293, 1293, -1000, 1293, 2647, 2637, 2140, - 2135, 1547, -1000, 1528, 54375, -1000, -435, -1000, 3, 964, - 1982, -1000, 36975, 1547, -1000, 4191, -1000, 1268, -1000, -1000, - -1000, -1000, -1000, 34075, 1823, -1000, -1000, -1000, -1000, 1982, - 1743, -1000, -1000, -1000, -1000, 901, 76, 33350, 895, 895, - 102, 1197, 1197, 21025, -1000, -1000, -1000, -1000, -1000, -1000, - 837, 2606, 413, 1982, -1000, 1866, 2398, -1000, -1000, -1000, - 2464, 26825, -1000, -1000, 1982, 1982, 54375, 2034, 1942, -1000, - 828, -1000, 1407, 1908, 21, -9, -1000, -1000, -1000, -1000, - 1197, -1000, 1434, 344, 392, -1000, 434, -1000, -1000, -1000, - -1000, 2350, 82, -1000, -1000, -1000, 311, 901, -1000, -1000, - -1000, -1000, -1000, -1000, 1714, 1714, -1000, -1000, -1000, -1000, - -1000, 1327, -1000, -1000, -1000, -1000, 1326, -1000, -1000, 1321, - -1000, -1000, 2633, 2124, 411, -1000, -1000, 941, 1689, -1000, - -1000, 2361, 941, 941, 52925, -1000, -1000, 1737, 2445, 230, - 54375, 1031, 2183, -1000, 2139, 2139, 2139, 54375, -1000, -1000, - -1000, -1000, -1000, -1000, -510, 188, 363, -1000, -1000, -1000, - 5040, 52925, 1736, -1000, 206, -1000, 1711, -1000, 52925, -1000, - 1734, 2076, 1289, 1289, -1000, -1000, -1000, 52925, 1982, -1000, - -1000, -1000, -1000, 510, 2416, 336, -1000, -1000, -266, -1000, - -1000, 216, 206, 53650, 1289, 867, -1000, -1000, -1000, -1000, - -1000, -511, 1731, 507, 220, 325, 54375, 54375, 54375, 54375, - 54375, 54375, 812, -1000, -1000, 32, -1000, -1000, 184, -1000, - -1000, -1000, -1000, -1000, 184, -1000, -1000, -1000, -1000, -1000, - 270, 463, -1000, 54375, 54375, 931, -1000, -1000, -1000, -1000, - -1000, 1095, -1000, -1000, 1095, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 2402, 54375, 10, -477, -1000, - -474, 21025, -1000, -1000, -1000, -1000, 1307, 822, 1226, 23200, - 23200, 1203, 1203, 23200, -1000, -1000, -1000, 971, 971, 32625, - -1000, 23200, 21025, -1000, -1000, 21025, 21025, 21025, 1017, -1000, - 21025, 1192, -1000, 21025, -1000, -1000, 1528, 1293, 1293, 1293, - 1293, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1947, -1000, 21025, 21025, 21025, 1547, 300, -1000, -1000, - -1000, -1000, -1000, 2624, -1000, 21025, -1000, 32625, 21025, 21025, - 21025, -1000, -1000, -1000, 21025, 21025, -1000, -1000, 21025, -1000, - 21025, -1000, -1000, -1000, -1000, -1000, -1000, 21025, -1000, 21025, - -1000, -1000, -1000, 21025, -1000, 21025, -1000, -1000, 21025, -1000, - 21025, -1000, 21025, -1000, 21025, -1000, 21025, -1000, 21025, -1000, - 21025, -1000, 21025, -1000, 21025, -1000, 21025, -1000, 21025, -1000, - 21025, -1000, 21025, -1000, 21025, -1000, 21025, -1000, 21025, -1000, - 21025, -1000, 21025, -1000, -1000, -1000, 21025, -1000, 21025, -1000, - 21025, -1000, -1000, 21025, -1000, 21025, -1000, 21025, -1000, 21025, - 21025, -1000, 21025, 21025, 21025, -1000, 21025, 21025, 21025, 21025, - -1000, -1000, -1000, -1000, 21025, 21025, 21025, 21025, 21025, 21025, - 21025, 21025, 21025, 21025, -1000, -1000, -1000, -1000, -1000, -1000, - 21025, -1000, 38425, 13, -248, 1310, 13, 1310, 22475, 851, - 847, 21750, -1000, 21025, 15213, -1000, -1000, -1000, -1000, -1000, - 21025, 21025, 21025, 21025, 21025, 21025, -1000, -1000, -1000, 21025, - 21025, -1000, 21025, -1000, 21025, -1000, -1000, -1000, -1000, -1000, - 964, -1000, 877, 866, 890, 52925, -1000, -1000, -1000, -1000, - 1904, -1000, 2495, -1000, 2269, 2268, 2623, 2606, 20300, -1000, - 29000, -1000, -1000, 52925, -426, -1000, 2299, 2303, 895, 895, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 12289, 2514, 21025, - 2182, 53650, 256, -1000, 28275, 52925, 53650, 29000, 29000, 29000, - 29000, 29000, -1000, 2224, 2212, -1000, 2223, 2200, 2356, 54375, - -1000, 1537, 1729, -1000, 21025, 31175, 1836, 29000, -1000, -1000, - 29000, 54375, 11558, -1000, -1000, 9, -12, -1000, -1000, -1000, - -1000, 1382, -1000, -1000, 933, 2463, 2336, -1000, -1000, -1000, - -1000, -1000, 1721, -1000, 1710, 1903, 1707, 1703, 281, -1000, - 2063, 2400, 941, 941, -1000, 1317, -1000, 1289, 1687, 1677, - -1000, -1000, -1000, 504, -1000, 2435, 54375, 2179, 2178, 2175, - -1000, -520, 1283, 2070, 2052, 21025, 2066, 2585, 1859, 52925, - -1000, -1000, 53650, -1000, 290, -1000, 411, 52925, -1000, -1000, - -1000, 331, 54375, -1000, 9513, -1000, -1000, -1000, 206, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 54375, 233, -1000, 2065, - 1294, -1000, -1000, 2134, -1000, -1000, -1000, -1000, -1000, 205, - 185, 1675, 189, 1673, 189, -1000, 54375, 929, 2124, 54375, - -1000, -1000, -1000, 1092, 1092, -1000, -1000, 2385, -1000, 1289, - 1293, 23200, 23200, -1000, 900, -1000, -1000, 505, -227, 2046, - 2046, -1000, 2046, 2061, -1000, 2046, 153, 2046, 150, 2046, - -1000, -1000, 1547, 1547, -1000, 1528, 2078, 1861, 2628, -1000, - 1197, 21025, 2615, -1000, -1000, -1000, -1000, -1000, -74, 2607, - 2600, 1293, -1000, 2039, 2038, 21025, 1293, 1547, 2071, 1293, - 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, - 1293, 2067, 2062, 2058, 2053, 2047, 2043, 2035, 2028, 2022, - 1987, 1966, 1924, 1917, 1905, 1897, 1879, 1293, 1293, 1874, - 1293, 1837, 1818, -1000, 1197, 1528, 2594, 1528, 1293, 1293, - 2589, 313, 1293, 1697, 1697, 1697, 1697, 1697, 1528, 1528, - 1528, 1528, 1293, 52925, -1000, -248, -1000, -1000, -295, -298, - -1000, 1547, -248, 1882, 23200, 1293, 23200, 23200, 23200, 1293, - 1547, -1000, 1809, 1803, 2557, 1798, 1293, 2265, 1293, 1293, - 1293, 1773, -1000, 2496, 1982, 2496, 1982, 2496, 1671, 1268, - 54375, -1000, -1000, -1000, -1000, 2606, 2597, -1000, 1871, -1000, - 76, 641, -1000, 2313, 2303, -1000, 2584, 2295, 2571, -1000, - -1000, -1000, -1000, -1000, 1197, -1000, 2420, 1854, -1000, 967, - 1848, -1000, -1000, 19575, 1686, 2267, 827, 1671, 1901, 2398, - 2149, 2171, 3029, -1000, -1000, -1000, -1000, 2206, -1000, 2202, - -1000, -1000, 2010, -1000, 2260, 341, 29000, 1877, 1877, -1000, - 824, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1158, 9513, - 2662, -1000, 1666, -1000, 1406, 265, 1270, -1000, -1000, 941, - 941, -1000, 1075, 1069, -1000, 54375, 2033, -1000, 901, 1655, - 901, 1267, -1000, -1000, 1259, -1000, -1000, -1000, -1000, 1994, - 2159, -1000, -1000, -1000, -1000, 54375, -1000, -1000, 54375, 54375, - 54375, 2032, 2568, -1000, 21025, 2014, 957, 2511, 52925, 52925, + -1000, 1915, 2546, 1309, 1593, 1593, 1593, 1593, 1593, 21302, + 1301, -1000, -1000, -1000, 1463, 3848, 1359, 3563, 1593, 1593, + -1000, 1593, 3544, 3540, 1521, 2549, 2534, 1593, 1593, 1593, + 1593, 1593, 2510, 2505, 1593, 1593, 2492, 1593, 3534, 1593, + 2477, 2469, 2447, 2433, 2429, 2401, 2372, 2364, 2341, 2328, + 2322, 2302, 2282, 2257, 2240, 2226, 2219, 2215, 1593, 1593, + 1593, 3504, 1593, 3491, 1593, 3484, 1593, 1593, 3475, 2198, + 2194, 1521, 1912, -1000, 3458, 1593, 3454, 3448, 3398, 2159, + 3388, 3384, 3380, 1593, 1593, 1593, 2136, 3376, 3372, 3366, + 3316, 3220, 3057, 3040, 3023, 3016, 1593, 1490, 1490, 1490, + 1490, 1490, 2999, -233, 1593, 1521, -1000, -1000, -1000, -1000, + -1000, 2991, 2123, 2970, 2963, 2927, 2921, 1521, 1746, 858, + -1000, -1000, 1490, 1521, 1521, 1490, 1490, 2902, 2895, 2890, + 2871, 2829, 2813, 1593, 1593, -1000, 1593, 2799, 2783, 2119, + 2094, 1521, -1000, 1490, 54652, -1000, -437, -1000, -2, 961, + 1746, -1000, 37252, 1521, -1000, 3226, -1000, 1299, -1000, -1000, + -1000, -1000, -1000, 34352, 1763, -1000, -1000, -1000, -1000, 1746, + 1850, -1000, -1000, -1000, -1000, 345, 74, 33627, 910, 910, + 123, 1235, 1235, 21302, -1000, -1000, -1000, -1000, -1000, -1000, + 857, 2523, 387, 1746, -1000, 1932, 2650, -1000, -1000, -1000, + 2414, 27102, -1000, -1000, 1746, 1746, 54652, 1895, 1866, -1000, + 856, -1000, 1384, 1911, 34, 30, -1000, -1000, -1000, -1000, + 1235, -1000, 1406, 365, 340, -1000, 440, -1000, -1000, -1000, + -1000, 2292, 80, -1000, -1000, -1000, 374, 345, -1000, -1000, + -1000, -1000, -1000, -1000, 1670, 1670, -1000, -1000, -1000, -1000, + -1000, 1317, -1000, -1000, -1000, -1000, 1311, -1000, -1000, 1297, + -1000, -1000, 2499, 2102, 407, -1000, -1000, 998, 1665, -1000, + -1000, 2303, 998, 998, 53202, -1000, -1000, 1713, 2392, 238, + 54652, 1039, 2126, -1000, 2079, 2079, 2079, 54652, -1000, -1000, + -1000, -1000, -1000, -1000, -505, 175, 539, -1000, -1000, -1000, + 4355, 53202, 1827, -1000, 223, -1000, 1651, -1000, 53202, -1000, + 1813, 2028, 1314, 1314, -1000, -1000, -1000, 53202, 1746, -1000, + -1000, -1000, -1000, 789, 2377, 294, -1000, -1000, -260, -1000, + -1000, 225, 223, 53927, 1314, 916, -1000, -1000, -1000, -1000, + -1000, -506, 1809, 508, 230, 565, 54652, 54652, 54652, 54652, + 54652, 54652, 837, -1000, -1000, 45, -1000, -1000, 200, -1000, + -1000, -1000, -1000, -1000, 200, -1000, -1000, -1000, -1000, -1000, + 266, 470, -1000, 54652, 54652, 945, -1000, -1000, -1000, -1000, + -1000, 1147, -1000, -1000, 1147, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 2343, 54652, 12, -474, -1000, + -471, 21302, -1000, -1000, -1000, -1000, 1316, 485, 1487, 23477, + 23477, 4166, 4166, 23477, -1000, -1000, -1000, 330, 330, 32902, + -1000, 23477, 21302, -1000, -1000, 21302, 21302, 21302, 1027, -1000, + 21302, 1181, -1000, 21302, -1000, -233, 1490, 1593, 1593, 1593, + 1593, -233, -233, -233, -233, -233, -233, -233, -233, -233, + -233, 1952, -1000, 21302, 21302, 21302, 1521, 293, -1000, -1000, + -1000, -1000, -1000, 2544, -1000, 21302, -1000, 32902, 21302, 21302, + 21302, -1000, -1000, -1000, 21302, 21302, -1000, -1000, 21302, -1000, + 21302, -1000, -1000, -1000, -1000, -1000, -1000, 21302, -1000, 21302, + -1000, -1000, -1000, 21302, -1000, 21302, -1000, -1000, 21302, -1000, + 21302, -1000, 21302, -1000, 21302, -1000, 21302, -1000, 21302, -1000, + 21302, -1000, 21302, -1000, 21302, -1000, 21302, -1000, 21302, -1000, + 21302, -1000, 21302, -1000, 21302, -1000, 21302, -1000, 21302, -1000, + 21302, -1000, 21302, -1000, -1000, -1000, 21302, -1000, 21302, -1000, + 21302, -1000, -1000, 21302, -1000, 21302, -1000, 21302, -1000, 21302, + 21302, -1000, 21302, 21302, 21302, -1000, 21302, 21302, 21302, 21302, + -1000, -1000, -1000, -1000, 21302, 21302, 21302, 21302, 21302, 21302, + 21302, 21302, 21302, 21302, -1000, -1000, -1000, -1000, -1000, -1000, + 21302, -1000, 38702, 22, -233, 1632, 22, 1632, 22752, 855, + 833, 22027, -1000, 21302, 15490, -1000, -1000, -1000, -1000, -1000, + 21302, 21302, 21302, 21302, 21302, 21302, -1000, -1000, -1000, 21302, + 21302, -1000, 21302, -1000, 21302, -1000, -1000, -1000, -1000, -1000, + 961, -1000, 854, 832, 883, 53202, -1000, -1000, -1000, -1000, + 1910, -1000, 2443, -1000, 2237, 2223, 2541, 2523, 20577, -1000, + 29277, -1000, -1000, 53202, -426, -1000, 2276, 2193, 910, 910, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 12566, 2457, 21302, + 2125, 53927, 253, -1000, 28552, 53202, 53927, 29277, 29277, 29277, + 29277, 29277, -1000, 2142, 2139, -1000, 2149, 2143, 2150, 54652, + -1000, 1723, 1807, -1000, 21302, 31452, 1909, 29277, -1000, -1000, + 29277, 54652, 11835, -1000, -1000, 8, 0, -1000, -1000, -1000, + -1000, 4425, -1000, -1000, 1148, 2413, 2285, -1000, -1000, -1000, + -1000, -1000, 1791, -1000, 1782, 1908, 1740, 1736, 327, -1000, + 2058, 2340, 998, 998, -1000, 1292, -1000, 1314, 1660, 1644, + -1000, -1000, -1000, 506, -1000, 2399, 54652, 2122, 2121, 2117, + -1000, -514, 1288, 2022, 2037, 21302, 2021, 2491, 1875, 53202, + -1000, -1000, 53927, -1000, 292, -1000, 407, 53202, -1000, -1000, + -1000, 347, 54652, -1000, 8791, -1000, -1000, -1000, 223, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 54652, 243, -1000, 2017, + 1363, -1000, -1000, 2020, -1000, -1000, -1000, -1000, -1000, 210, + 182, 1642, 206, 1637, 206, -1000, 54652, 911, 2102, 54652, + -1000, -1000, -1000, 1118, 1118, -1000, -1000, 2326, -1000, 1314, + 1593, 23477, 23477, -1000, 918, -1000, -1000, 396, -210, 2002, + 2002, -1000, 2002, 2016, -1000, 2002, 162, 2002, 130, 2002, + -1000, -1000, 1521, 1521, -1000, 1490, 2088, 1726, 2764, -1000, + 1235, 21302, 2757, -1000, -1000, -233, -233, -233, -233, -233, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 456, 941, -490, 298, 294, 941, 941, 941, -522, - -1000, -1000, 1662, 1660, -1000, -211, -1000, 21025, -1000, -1000, - -1000, -1000, -1000, 1344, 1344, 1653, 1627, 1621, -1000, 2010, - -1000, -1000, -1000, 1704, -1000, -1000, -188, 52925, 52925, 52925, - 52925, -1000, -1000, -1000, 1353, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 900, 1547, 394, - -198, 1547, -1000, -1000, 901, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 21025, -1000, 21025, -1000, 21025, - 1197, 21025, 2514, 1579, 21025, 21025, -1000, 1256, 1249, 1293, - -1000, -1000, -1000, 21025, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 21025, -1000, 21025, - -1000, 21025, -1000, 21025, -1000, 21025, -1000, 21025, -1000, 21025, - -1000, 21025, -1000, 21025, -1000, 21025, -1000, 21025, -1000, 21025, - -1000, 21025, -1000, 21025, -1000, 21025, -1000, 21025, -1000, -1000, - 21025, -1000, -1000, -1000, 21025, -1000, 21025, -1000, 21025, -1000, - -1000, -1000, 21025, 314, 971, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 1547, 334, -1000, -1000, - -1000, -1000, 2619, -1000, 1547, 21025, 1203, -1000, 1203, 1203, - 1203, -1000, -1000, -1000, 21025, -1000, 21025, 21025, -1000, 21025, - -1000, 21025, -1000, -1000, -1000, -1000, 21025, 1982, 2283, 37700, - 1982, 37700, 1982, 31175, -1000, -1000, 2597, 2591, 2553, 2286, - 2288, 2288, 2313, -1000, 2552, 2543, -1000, 1575, 2538, 1553, - 1056, -1000, 53650, 21025, 256, -1000, 419, 52925, 256, 52925, - -1000, 2533, -1000, -1000, 21025, 2012, -1000, 21025, -1000, -1000, - -1000, -1000, 6888, 2606, 1877, -1000, -1000, 913, -1000, 21025, - -1000, 54857, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1550, 1548, -1000, -1000, 2011, 21025, -1000, -1000, -1000, 1700, - 1631, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2010, - -1000, -1000, -1000, -1000, 331, -515, 2490, 52925, 1229, -1000, - 1620, 1859, 286, 256, 1541, 941, 941, 941, 1221, 1215, - 36975, 1616, -1000, 52925, 407, -1000, 331, -1000, -220, -224, - 1293, -1000, -1000, 2462, -1000, -1000, 15213, -1000, -1000, 1993, - 2137, -1000, -1000, -1000, -1000, 2236, -183, -202, -1000, -1000, - 1293, 1293, 1293, 1997, 1547, -1000, 1293, 1293, 1617, 1608, - -1000, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, - 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, - 1293, 1528, 1761, -1000, 314, 1547, 2168, -1000, -1000, 6888, - -1000, -1000, 2533, 2535, 13, -1000, -1000, 212, 13, 1197, - 1001, 1547, 1547, 1001, 1699, 1293, 1665, 1630, 1293, 1293, - 31900, -1000, 2522, 2518, 1584, -1000, -1000, 37700, 1584, 37700, - 964, 2591, -255, 21025, 21025, 2281, 1232, -1000, -1000, -1000, - -1000, 1529, 1515, -1000, 1476, -1000, 2659, -1000, 1197, -1000, - 256, -1000, 819, 1848, -1000, 2514, 1197, 52925, 1197, 68, - 2533, -1000, 1293, -1000, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, - 1982, 1982, 1982, -1000, -1000, 52925, 2298, -1000, -1000, 2459, - 1586, 187, -1000, 1587, 1859, -1000, -1000, 250, -1000, 21025, - -1000, 36975, 1444, 1440, -1000, -1000, -1000, -1000, -522, -1000, - -1000, -1000, -1000, -1000, -1000, 389, 1856, -1000, 936, 52925, - 54375, -1000, 2233, -1000, -1000, -1000, -1000, 21025, -1000, -1000, + -62, 2746, 2719, 1593, -1000, 1999, 1996, 21302, 1593, 1521, + 2053, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, + 1593, 1593, 1593, 2049, 2032, 2025, 2018, 2013, 1990, 1950, + 1945, 1934, 1930, 1922, 1906, 1824, 1819, 1815, 1800, 1593, + 1593, 1750, 1593, 1743, 1710, -1000, 1235, 1490, 2687, 1490, + 1593, 1593, 2666, 290, 1593, 1732, 1732, 1732, 1732, 1732, + 1490, 1490, 1490, 1490, 1593, 53202, -1000, -233, -1000, -1000, + -309, -313, -1000, 1521, -233, 1903, 23477, 1593, 23477, 23477, + 23477, 1593, 1521, -1000, 1701, 1694, 2651, 1634, 1593, 2567, + 1593, 1593, 1593, 1629, -1000, 2434, 1746, 2434, 1746, 2434, + 1708, 1299, 54652, -1000, -1000, -1000, -1000, 2523, 2508, -1000, + 1892, -1000, 74, 638, -1000, 2263, 2193, -1000, 2490, 2256, + 2489, -1000, -1000, -1000, -1000, -1000, 1235, -1000, 2382, 1901, + -1000, 1005, 1431, -1000, -1000, 19852, 1712, 2222, 852, 1708, + 1954, 2650, 2086, 2113, 3800, -1000, -1000, -1000, -1000, 2133, + -1000, 2112, -1000, -1000, 1979, -1000, 2545, 355, 29277, 1913, + 1913, -1000, 851, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1136, 8791, 2578, -1000, 1635, -1000, 1382, 196, 1287, -1000, + -1000, 998, 998, -1000, 1078, 1073, -1000, 54652, 1994, -1000, + 345, 1615, 345, 1278, -1000, -1000, 1257, -1000, -1000, -1000, + -1000, 2011, 2191, -1000, -1000, -1000, -1000, 54652, -1000, -1000, + 54652, 54652, 54652, 1993, 2483, -1000, 21302, 1988, 1003, 2485, + 53202, 53202, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 458, 998, -486, 274, 268, 998, 998, + 998, -517, -1000, -1000, 1703, 1696, -1000, -194, -1000, 21302, + -1000, -1000, -1000, -1000, -1000, 1313, 1313, 1597, 1585, 1573, + -1000, 1979, -1000, -1000, -1000, 1622, -1000, -1000, -182, 53202, + 53202, 53202, 53202, -1000, -1000, -1000, 1217, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 918, + 1521, 372, -184, 1521, -1000, -1000, 345, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 21302, -1000, 21302, + -1000, 21302, 1235, 21302, -1000, -1000, -1000, -1000, -1000, 2457, + 1543, 21302, 21302, -1000, 1252, 1242, 1593, -1000, -1000, -1000, + 21302, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 21302, -1000, 21302, -1000, 21302, -1000, + 21302, -1000, 21302, -1000, 21302, -1000, 21302, -1000, 21302, -1000, + 21302, -1000, 21302, -1000, 21302, -1000, 21302, -1000, 21302, -1000, + 21302, -1000, 21302, -1000, 21302, -1000, -1000, 21302, -1000, -1000, + -1000, 21302, -1000, 21302, -1000, 21302, -1000, -1000, -1000, 21302, + 265, 330, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1521, 352, -1000, -1000, -1000, -1000, 2536, + -1000, 1521, 21302, 4166, -1000, 4166, 4166, 4166, -1000, -1000, + -1000, 21302, -1000, 21302, 21302, -1000, 21302, -1000, 21302, -1000, + -1000, -1000, -1000, 21302, 1746, 2335, 37977, 1746, 37977, 1746, + 31452, -1000, -1000, 2508, 2487, 2481, 2243, 2224, 2224, 2263, + -1000, 2476, 2471, -1000, 1525, 2467, 1522, 1071, -1000, 53927, + 21302, 253, -1000, 404, 53202, 253, 53202, -1000, 2478, -1000, + -1000, 21302, 1982, -1000, 21302, -1000, -1000, -1000, -1000, 5565, + 2523, 1913, -1000, -1000, 939, -1000, 21302, -1000, 55134, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1486, 1480, -1000, + -1000, 1980, 21302, -1000, -1000, -1000, 1603, 1594, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1979, -1000, -1000, -1000, + -1000, 347, -510, 2253, 53202, 1240, -1000, 1650, 1875, 341, + 253, 1473, 998, 998, 998, 1237, 1213, 37252, 1621, -1000, + 53202, 427, -1000, 347, -1000, -204, -206, 1593, -1000, -1000, + 2412, -1000, -1000, 15490, -1000, -1000, 1976, 2076, -1000, -1000, + -1000, -1000, 2169, -169, -190, -1000, -1000, 1593, 1593, 1593, + 2291, 1521, -1000, 1593, 1593, 1582, 1542, -1000, 1593, 1593, + 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, + 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1490, 1619, + -1000, 265, 1521, 2111, -1000, -1000, 5565, -1000, -1000, 2478, + 2466, 22, -1000, -1000, 226, 22, 1235, 1022, 1521, 1521, + 1022, 1614, 1593, 1605, 1546, 1593, 1593, 32177, -1000, 2465, + 2459, 1581, -1000, -1000, 37977, 1581, 37977, 961, 2487, -250, + 21302, 21302, 2229, 1207, -1000, -1000, -1000, -1000, 1452, 1450, + -1000, 1411, -1000, 2547, -1000, 1235, -1000, 253, -1000, 849, + 1431, -1000, 2457, 1235, 53202, 1235, 73, 2478, -1000, 1593, + -1000, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, + -1000, -1000, 53202, 2246, -1000, -1000, 2409, 1602, 164, -1000, + 1532, 1875, -1000, -1000, 224, -1000, 21302, -1000, 37252, 1402, + 1390, -1000, -1000, -1000, -1000, -517, -1000, -1000, -1000, -1000, + -1000, -1000, 386, 1859, -1000, 991, 53202, 54652, -1000, 2164, + -1000, -1000, -1000, -1000, 21302, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 21025, -1000, 1547, 2165, -1000, - -360, -1000, -495, 21025, -248, -1000, -1000, -248, -1000, -1000, - -1000, -1000, -1000, 21025, -1000, -1000, 21025, -1000, 21025, -1000, - -1000, 1584, -1000, -1000, -1000, 36250, -1000, 1584, -1000, 1584, - -1000, -255, -1000, 1849, -1000, 52925, 1197, 1667, -1000, 1220, - -1000, -1000, -1000, -1000, -1000, 53650, 1848, 52925, -1000, 1546, - 1547, 1982, 2514, -1000, 1539, -1000, 389, -1000, 1986, 2052, - -1000, -1000, -1000, 18850, -1000, -1000, -1000, -1000, -1000, 244, - -187, 15213, 10827, 1533, -1000, -186, 1293, 1528, -1000, -466, - -1000, -1000, -1000, -1000, 288, -1000, -1000, 1667, -1000, -1000, - 1626, 1604, 1524, -1000, -1000, -1000, -1000, -1000, -1000, -255, - -1000, -1000, 2455, -1000, -1000, 1628, -1000, -1000, 31175, 52200, - -1000, -175, 408, -187, 21025, 1984, 1547, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -39, -1000, -1000, 807, -1000, - -1000, -1000, 2134, -199, -1000, -1000, -1000, 308, -481, -271, - -280, 23200, -1000, 21025, -1000, 21025, -1000, 21025, -1000, 52925, - 1982, -1000, 1526, -1000, 4190, -377, 2164, -1000, -129, -1000, - -1000, -1000, 1098, 1420, -1000, -1000, -1000, -1000, -1000, -1000, - 1350, 52925, -1000, 437, -1000, -1000, 14482, -188, -203, 1035, - -1000, -1000, -1000, -1000, -1000, 1203, 1276, 1269, 1293, -1000, - 52925, -1000, 52200, -320, 867, 6888, -1000, 2156, 2153, 2614, - -1000, -1000, -1000, -1000, -1000, -1000, -532, 1512, 234, -1000, - -1000, -1000, 308, -286, -1000, 21025, -1000, 21025, -1000, 1547, - -1000, -1000, 2431, 68, -1000, 2616, -1000, 2638, 1026, 1026, - -1000, 1188, -532, -1000, -1000, -1000, -1000, 1293, 1293, -1000, - -388, -1000, -1000, -1000, -1000, -1000, 433, 1288, -1000, -1000, - -1000, -1000, -1000, 6888, -1000, -1000, -1000, 203, 203, -1000, - -1000, + -1000, -1000, 21302, -1000, 1521, 2109, -1000, -358, -1000, -490, + 21302, -233, -1000, -1000, -233, -1000, -1000, -1000, -1000, -1000, + 21302, -1000, -1000, 21302, -1000, 21302, -1000, -1000, 1581, -1000, + -1000, -1000, 36527, -1000, 1581, -1000, 1581, -1000, -250, -1000, + 1752, -1000, 53202, 1235, 1422, -1000, 1198, -1000, -1000, -1000, + -1000, -1000, 53927, 1431, 53202, -1000, 1541, 1521, 1746, 2457, + -1000, 1538, -1000, 386, -1000, 1974, 2037, -1000, -1000, -1000, + 19127, -1000, -1000, -1000, -1000, -1000, 198, -180, 15490, 11104, + 1531, -1000, -173, 1593, 1490, -1000, -462, -1000, -1000, -1000, + -1000, 285, -1000, -1000, 1422, -1000, -1000, 1429, 1425, 1405, + -1000, -1000, -1000, -1000, -1000, -1000, -250, -1000, -1000, 2402, + -1000, -1000, 1407, -1000, -1000, 31452, 52477, -1000, -164, 298, + -180, 21302, 1973, 1521, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -37, -1000, -1000, 844, -1000, -1000, -1000, 2020, + -187, -1000, -1000, -1000, 255, -478, -257, -283, 23477, -1000, + 21302, -1000, 21302, -1000, 21302, -1000, 53202, 1746, -1000, 1447, + -1000, 3927, -325, 2108, -1000, -125, -1000, -1000, -1000, 1133, + 1388, -1000, -1000, -1000, -1000, -1000, -1000, 2178, 53202, -1000, + 437, -1000, -1000, 14759, -182, -191, 1057, -1000, -1000, -1000, + -1000, -1000, 4166, 1334, 1328, 1593, -1000, 53202, -1000, 52477, + -318, 916, 5565, -1000, 2096, 2092, 2540, -1000, -1000, -1000, + -1000, -1000, -1000, -523, 1427, 240, -1000, -1000, -1000, 255, + -301, -1000, 21302, -1000, 21302, -1000, 1521, -1000, -1000, 2396, + 73, -1000, 2542, -1000, 2550, 997, 997, -1000, 1212, -523, + -1000, -1000, -1000, -1000, 1593, 1593, -1000, -328, -1000, -1000, + -1000, -1000, -1000, 419, 1295, -1000, -1000, -1000, -1000, -1000, + 5565, -1000, -1000, -1000, 228, 228, -1000, -1000, } var yyPgo = [...]int{ - 0, 3315, 3313, 23, 11, 37, 36, 3309, 3297, 3295, - 173, 3291, 3290, 3289, 3225, 3224, 3222, 2705, 2684, 2682, - 3217, 3215, 3214, 3213, 3205, 3199, 3198, 3195, 3193, 40, - 105, 32, 97, 200, 197, 3190, 174, 159, 192, 3188, - 3186, 3185, 113, 183, 82, 85, 191, 3182, 3171, 71, - 3168, 3166, 3165, 188, 187, 180, 1076, 3162, 186, 112, - 50, 3156, 3155, 3154, 3152, 3150, 3148, 3147, 3146, 3136, - 3134, 3133, 3130, 3126, 3123, 3122, 3121, 3120, 3119, 248, - 3118, 3117, 13, 3116, 73, 3114, 3111, 3102, 3096, 3093, - 12, 3091, 3090, 29, 42, 3088, 3087, 48, 3086, 3079, - 3076, 3071, 3070, 76, 3069, 21, 3067, 39, 3054, 3048, - 125, 3047, 3046, 3045, 45, 3043, 3042, 3041, 10, 165, - 3039, 3038, 140, 3037, 3034, 3032, 167, 217, 3031, 2271, - 3028, 100, 3027, 3022, 3020, 163, 189, 3016, 119, 3013, - 3012, 3009, 148, 3006, 3263, 3005, 3003, 65, 79, 203, - 3002, 2999, 164, 74, 8, 2996, 7, 19, 2995, 2990, - 70, 68, 2989, 106, 2988, 2987, 103, 89, 2985, 95, - 99, 2983, 2976, 26, 5, 2975, 1, 6, 4, 67, - 2974, 2972, 115, 2970, 2968, 2967, 93, 2966, 2965, 6222, - 2941, 90, 130, 104, 63, 2940, 168, 160, 2938, 2937, - 2936, 2934, 2931, 51, 2929, 2918, 2917, 138, 1762, 128, - 2915, 144, 341, 53, 146, 2914, 202, 75, 196, 169, - 2908, 2906, 137, 132, 2901, 2899, 56, 166, 194, 2898, - 92, 129, 117, 175, 91, 133, 2897, 2895, 57, 61, - 2894, 2893, 2892, 2889, 171, 2888, 2887, 66, 2876, 55, - 2875, 190, 2873, 136, 84, 2870, 181, 170, 2867, 62, - 2866, 2865, 96, 101, 60, 38, 2862, 157, 161, 126, - 172, 2838, 2835, 54, 2829, 2827, 2825, 195, 314, 2823, - 2822, 299, 178, 142, 147, 83, 2820, 332, 2818, 2817, - 18, 4363, 6742, 2814, 41, 162, 2813, 2812, 6402, 25, - 47, 24, 2811, 205, 2810, 2808, 2806, 2804, 223, 204, - 109, 158, 58, 2803, 2802, 2799, 69, 2796, 2795, 2794, - 2789, 2786, 2785, 34, 33, 31, 72, 211, 59, 22, - 98, 152, 153, 64, 2783, 2779, 2775, 124, 78, 2773, - 156, 155, 123, 108, 2768, 179, 143, 114, 2766, 94, - 30, 2765, 2764, 2762, 2761, 87, 2760, 2754, 2753, 2752, - 154, 145, 121, 80, 2747, 81, 116, 150, 149, 52, - 2745, 46, 2742, 2740, 28, 184, 27, 2739, 44, 102, - 110, 2734, 6202, 182, 2731, 14, 325, 151, 2729, 2728, - 9, 17, 20, 2727, 2725, 2722, 2720, 131, 2719, 2718, - 2715, 2712, 16, 49, 15, 2, 111, 77, 2711, 2710, - 141, 2706, 2699, 2693, 0, 1021, 127, 2686, 198, + 0, 3197, 3196, 29, 5, 38, 37, 3195, 3194, 3193, + 181, 3192, 3191, 3189, 3188, 3186, 3185, 2606, 2605, 2598, + 3170, 3169, 3168, 3165, 3161, 3155, 3154, 3153, 3151, 47, + 105, 65, 101, 207, 208, 3148, 177, 165, 201, 3147, + 3145, 3144, 116, 192, 85, 87, 196, 3141, 3138, 77, + 3136, 3133, 3131, 188, 186, 184, 1091, 3130, 185, 115, + 48, 3126, 3125, 3124, 3122, 3120, 3119, 3118, 3116, 3115, + 3110, 3109, 3108, 3098, 3097, 3096, 3095, 3094, 3093, 287, + 3092, 3091, 17, 3090, 79, 3089, 3087, 3085, 3083, 3081, + 7, 3074, 3073, 25, 41, 73, 3072, 3069, 45, 3066, + 3063, 3060, 3058, 3055, 72, 3054, 24, 3051, 39, 3050, + 3049, 125, 3048, 3047, 3041, 43, 3040, 3035, 3032, 10, + 171, 3030, 3028, 136, 3026, 3025, 3024, 167, 204, 3023, + 2172, 3018, 103, 3017, 3011, 3009, 170, 198, 3005, 123, + 3004, 3002, 3001, 150, 3000, 3277, 2999, 2998, 61, 66, + 162, 2994, 2993, 197, 63, 11, 2992, 15, 16, 2989, + 2986, 62, 75, 2985, 110, 2983, 2982, 106, 70, 2981, + 104, 99, 2980, 2978, 22, 6, 2976, 1, 4, 2, + 81, 2975, 2971, 114, 2969, 2968, 2965, 94, 2947, 2939, + 5242, 2937, 89, 131, 108, 83, 2934, 169, 148, 2932, + 2928, 2921, 2920, 2919, 52, 2912, 2911, 2903, 135, 27, + 111, 2897, 145, 344, 53, 144, 2896, 195, 80, 200, + 179, 2895, 2882, 134, 133, 2880, 2879, 56, 166, 191, + 2874, 97, 129, 119, 174, 96, 130, 2873, 2861, 57, + 64, 2847, 2844, 2841, 2838, 178, 2836, 2834, 59, 2832, + 55, 2824, 187, 2822, 137, 67, 2820, 176, 168, 2819, + 71, 2818, 2816, 90, 98, 69, 30, 2815, 160, 163, + 126, 175, 2805, 2804, 54, 2802, 2800, 2799, 199, 295, + 2798, 2797, 319, 182, 142, 152, 91, 2796, 308, 2793, + 2791, 20, 4439, 6863, 2790, 26, 164, 2789, 2785, 7077, + 42, 44, 18, 2777, 205, 2775, 2774, 2773, 2772, 217, + 203, 117, 161, 58, 2771, 2769, 2766, 34, 2758, 2754, + 2753, 2752, 2751, 2741, 36, 35, 33, 76, 202, 60, + 19, 100, 155, 154, 74, 2739, 2727, 2726, 124, 92, + 2716, 158, 157, 127, 159, 2715, 183, 143, 121, 2714, + 93, 32, 2707, 2706, 2705, 2687, 95, 2684, 2683, 2682, + 2681, 156, 141, 118, 82, 2680, 84, 120, 147, 146, + 51, 2679, 46, 2676, 2673, 31, 194, 28, 2667, 40, + 112, 109, 2666, 6307, 190, 2663, 8, 325, 149, 2662, + 2661, 9, 14, 12, 2660, 2659, 2652, 2650, 132, 2647, + 2645, 2641, 2632, 23, 49, 21, 13, 113, 78, 2631, + 2625, 138, 2622, 2616, 2611, 0, 1020, 128, 2596, 209, } -//line sql.y:8616 +//line sql.y:8628 type yySymType struct { union any empty struct{} @@ -8376,59 +8405,59 @@ func (st *yySymType) withUnion() *With { } var yyR1 = [...]int{ - 0, 412, 413, 413, 7, 7, 7, 7, 7, 7, + 0, 413, 414, 414, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 259, 382, 383, 383, 257, 257, 28, 74, 36, + 7, 260, 383, 384, 384, 258, 258, 28, 74, 36, 36, 35, 35, 38, 38, 37, 31, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 29, 29, 29, 29, 30, 30, 30, 30, - 30, 15, 16, 34, 34, 17, 17, 108, 108, 18, - 19, 19, 19, 19, 416, 416, 184, 184, 182, 182, - 183, 183, 262, 262, 20, 266, 266, 268, 268, 268, - 268, 258, 258, 258, 21, 21, 267, 267, 269, 269, - 269, 272, 272, 272, 272, 311, 311, 311, 22, 22, - 22, 22, 22, 128, 128, 385, 385, 384, 378, 378, - 377, 377, 376, 381, 381, 380, 380, 379, 40, 41, - 50, 50, 50, 50, 51, 52, 386, 386, 351, 57, + 30, 15, 16, 34, 34, 17, 17, 109, 109, 18, + 19, 19, 19, 19, 417, 417, 185, 185, 183, 183, + 184, 184, 263, 263, 20, 267, 267, 269, 269, 269, + 269, 259, 259, 259, 21, 21, 268, 268, 270, 270, + 270, 273, 273, 273, 273, 312, 312, 312, 22, 22, + 22, 22, 22, 129, 129, 386, 386, 385, 379, 379, + 378, 378, 377, 382, 382, 381, 381, 380, 40, 41, + 50, 50, 50, 50, 51, 52, 387, 387, 352, 57, 57, 56, 56, 56, 56, 56, 56, 58, 58, 54, - 54, 53, 53, 55, 55, 353, 353, 339, 339, 352, - 352, 352, 352, 352, 352, 352, 338, 338, 139, 139, - 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 401, 401, 401, - 400, 400, 237, 237, 237, 237, 237, 237, 237, 237, - 148, 148, 160, 160, 160, 160, 160, 160, 146, 146, - 147, 145, 145, 145, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 405, 405, 405, 405, 405, 405, 405, 405, 405, - 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, - 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, - 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, - 405, 405, 405, 159, 159, 154, 154, 154, 156, 156, - 155, 155, 155, 157, 157, 402, 402, 402, 402, 316, - 316, 316, 316, 319, 319, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 318, 318, 318, 318, 318, 318, - 318, 320, 320, 320, 320, 320, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 322, 322, 322, 322, 322, 322, 322, 322, - 337, 337, 326, 326, 331, 331, 332, 332, 333, 333, - 333, 334, 334, 334, 335, 335, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 330, 330, 329, 329, 329, - 340, 365, 365, 364, 364, 362, 362, 362, 362, 362, - 362, 362, 362, 349, 349, 359, 359, 359, 359, 359, - 348, 348, 344, 344, 344, 345, 345, 346, 346, 343, - 343, 347, 347, 361, 361, 360, 360, 341, 341, 342, - 342, 367, 403, 403, 403, 403, 403, 404, 404, 368, - 393, 395, 395, 395, 394, 394, 391, 392, 390, 390, - 390, 390, 390, 84, 84, 84, 285, 285, 286, 286, - 357, 357, 356, 356, 356, 358, 358, 355, 355, 355, - 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, - 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, - 355, 355, 355, 355, 355, 355, 355, 355, 280, 280, - 280, 389, 389, 389, 389, 389, 389, 388, 388, 388, - 354, 354, 354, 354, 387, 387, 59, 59, 217, 217, - 406, 406, 407, 407, 407, 47, 47, 47, 47, 47, + 54, 53, 53, 55, 55, 354, 354, 340, 340, 353, + 353, 353, 353, 353, 353, 353, 339, 339, 140, 140, + 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, + 237, 237, 237, 237, 237, 237, 237, 402, 402, 402, + 401, 401, 238, 238, 238, 238, 238, 238, 238, 238, + 149, 149, 161, 161, 161, 161, 161, 161, 147, 147, + 148, 146, 146, 146, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 406, 406, 406, 406, 406, 406, 406, 406, 406, + 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, + 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, + 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, + 406, 406, 406, 160, 160, 155, 155, 155, 157, 157, + 156, 156, 156, 158, 158, 403, 403, 403, 403, 317, + 317, 317, 317, 320, 320, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 319, 319, 319, 319, 319, 319, + 319, 321, 321, 321, 321, 321, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 323, 323, 323, 323, 323, 323, 323, 323, + 338, 338, 327, 327, 332, 332, 333, 333, 334, 334, + 334, 335, 335, 335, 336, 336, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 331, 331, 330, 330, 330, + 341, 366, 366, 365, 365, 363, 363, 363, 363, 363, + 363, 363, 363, 350, 350, 360, 360, 360, 360, 360, + 349, 349, 345, 345, 345, 346, 346, 347, 347, 344, + 344, 348, 348, 362, 362, 361, 361, 342, 342, 343, + 343, 368, 404, 404, 404, 404, 404, 405, 405, 369, + 394, 396, 396, 396, 395, 395, 392, 393, 391, 391, + 391, 391, 391, 84, 84, 84, 286, 286, 287, 287, + 358, 358, 357, 357, 357, 359, 359, 356, 356, 356, + 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + 356, 356, 356, 356, 356, 356, 356, 356, 281, 281, + 281, 390, 390, 390, 390, 390, 390, 389, 389, 389, + 355, 355, 355, 355, 388, 388, 59, 59, 218, 218, + 407, 407, 408, 408, 408, 47, 47, 47, 47, 47, 47, 46, 46, 46, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, @@ -8436,137 +8465,109 @@ var yyR1 = [...]int{ 43, 43, 43, 43, 43, 43, 43, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 110, - 110, 111, 111, 111, 111, 113, 113, 113, 370, 370, - 60, 60, 3, 3, 172, 174, 175, 175, 173, 173, - 173, 173, 173, 173, 62, 62, 61, 61, 177, 176, - 178, 178, 178, 1, 1, 2, 2, 4, 4, 375, - 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, - 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, - 375, 336, 336, 336, 369, 369, 371, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 116, 115, 115, - 114, 117, 117, 117, 117, 117, 117, 117, 117, 373, - 373, 373, 63, 63, 374, 323, 324, 325, 5, 6, - 350, 372, 124, 124, 24, 39, 39, 25, 25, 25, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 111, + 111, 112, 112, 112, 112, 114, 114, 114, 371, 371, + 60, 60, 3, 3, 173, 175, 176, 176, 174, 174, + 174, 174, 174, 174, 62, 62, 61, 61, 178, 177, + 179, 179, 179, 1, 1, 2, 2, 4, 4, 376, + 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, + 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, + 376, 337, 337, 337, 370, 370, 372, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 117, 116, 116, + 115, 118, 118, 118, 118, 118, 118, 118, 118, 374, + 374, 374, 63, 63, 375, 324, 325, 326, 5, 6, + 351, 373, 125, 125, 24, 39, 39, 25, 25, 25, 25, 26, 26, 64, 67, 67, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 279, - 279, 288, 288, 278, 278, 303, 303, 303, 281, 281, - 281, 282, 282, 399, 399, 399, 275, 275, 66, 66, - 66, 304, 304, 304, 304, 69, 69, 408, 408, 409, - 409, 410, 410, 410, 70, 71, 71, 306, 306, 307, - 307, 72, 73, 85, 85, 85, 85, 85, 86, 86, - 86, 86, 109, 109, 109, 10, 10, 10, 10, 81, - 81, 81, 9, 9, 11, 68, 68, 75, 396, 396, - 397, 398, 398, 398, 398, 76, 78, 27, 27, 27, - 27, 27, 27, 134, 134, 122, 122, 122, 122, 122, - 122, 122, 122, 122, 122, 122, 122, 129, 129, 129, - 123, 123, 417, 79, 80, 80, 127, 127, 127, 120, - 120, 120, 126, 126, 126, 12, 12, 13, 261, 261, - 14, 14, 133, 133, 132, 132, 135, 135, 135, 135, - 135, 135, 135, 130, 130, 131, 131, 131, 131, 296, - 296, 296, 295, 295, 166, 166, 168, 167, 167, 169, - 169, 170, 170, 170, 170, 215, 215, 192, 192, 254, - 254, 255, 255, 253, 253, 260, 260, 256, 256, 256, - 256, 263, 263, 171, 171, 171, 171, 179, 179, 180, - 180, 181, 181, 305, 305, 301, 301, 301, 300, 300, - 185, 185, 185, 187, 186, 186, 186, 186, 188, 188, - 190, 190, 189, 189, 191, 196, 196, 195, 195, 193, - 193, 193, 193, 193, 193, 194, 194, 194, 194, 197, - 197, 144, 144, 144, 144, 144, 144, 144, 144, 158, - 158, 158, 158, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 244, 244, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 220, 220, 219, 219, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 280, + 280, 289, 289, 279, 279, 304, 304, 304, 282, 282, + 282, 283, 283, 400, 400, 400, 276, 276, 66, 66, + 66, 305, 305, 305, 305, 69, 69, 409, 409, 410, + 410, 411, 411, 411, 70, 71, 71, 307, 307, 308, + 308, 72, 73, 85, 85, 85, 85, 85, 86, 86, + 86, 86, 110, 110, 110, 10, 10, 10, 10, 81, + 81, 81, 9, 9, 11, 68, 68, 75, 397, 397, + 398, 399, 399, 399, 399, 76, 78, 27, 27, 27, + 27, 27, 27, 135, 135, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 123, 123, 123, 130, 130, 130, + 124, 124, 418, 79, 80, 80, 128, 128, 128, 121, + 121, 121, 127, 127, 127, 12, 12, 13, 262, 262, + 14, 14, 134, 134, 133, 133, 136, 136, 136, 136, + 136, 136, 136, 131, 131, 132, 132, 132, 132, 297, + 297, 297, 296, 296, 167, 167, 169, 168, 168, 170, + 170, 171, 171, 171, 171, 216, 216, 193, 193, 255, + 255, 256, 256, 254, 254, 261, 261, 257, 257, 257, + 257, 264, 264, 172, 172, 172, 172, 180, 180, 181, + 181, 182, 182, 306, 306, 302, 302, 302, 301, 301, + 186, 186, 186, 188, 187, 187, 187, 187, 189, 189, + 191, 191, 190, 190, 192, 197, 197, 196, 196, 194, + 194, 194, 194, 194, 194, 195, 195, 195, 195, 198, + 198, 145, 145, 145, 145, 145, 145, 145, 145, 159, + 159, 159, 159, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 245, 245, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 221, 221, 220, 220, 87, 87, 87, 88, 88, 89, 89, 89, 89, 89, 90, 90, 90, 90, 90, 90, 90, 92, 92, 91, - 91, 210, 210, 293, 293, 93, 94, 94, 97, 97, - 96, 95, 95, 101, 101, 98, 98, 100, 100, 99, - 102, 102, 103, 104, 104, 276, 276, 198, 198, 206, - 206, 206, 206, 199, 199, 199, 199, 199, 199, 199, - 207, 207, 207, 214, 208, 208, 204, 204, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 203, + 91, 211, 211, 294, 294, 93, 94, 94, 95, 95, + 98, 98, 97, 96, 96, 102, 102, 99, 99, 101, + 101, 100, 103, 103, 104, 105, 105, 277, 277, 199, + 199, 207, 207, 207, 207, 200, 200, 200, 200, 200, + 200, 200, 208, 208, 208, 215, 209, 209, 205, 205, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 163, 163, 163, 163, 225, 225, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 151, 151, 164, 164, 164, 164, 165, 165, 165, - 165, 165, 165, 165, 313, 313, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 119, 119, 119, 119, + 203, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 164, 164, 164, 164, 226, 226, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 152, 152, 165, 165, 165, 165, 166, + 166, 166, 166, 166, 166, 166, 314, 314, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 418, 418, 327, 327, 327, 205, - 205, 205, 205, 205, 125, 125, 125, 125, 125, 310, - 310, 310, 314, 314, 314, 312, 312, 312, 312, 312, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, - 315, 315, 223, 223, 121, 121, 221, 221, 222, 224, - 224, 216, 216, 216, 216, 218, 218, 201, 201, 201, - 226, 226, 227, 227, 105, 106, 106, 107, 107, 228, - 228, 230, 229, 229, 231, 232, 232, 232, 233, 233, - 234, 234, 234, 49, 49, 49, 49, 49, 44, 44, - 44, 44, 45, 45, 45, 45, 136, 136, 136, 136, - 138, 138, 137, 137, 82, 82, 83, 83, 83, 142, - 142, 143, 143, 143, 140, 140, 141, 141, 251, 251, - 251, 251, 251, 251, 251, 235, 235, 235, 242, 242, - 242, 238, 238, 240, 240, 240, 241, 241, 241, 239, - 248, 248, 250, 250, 249, 249, 245, 245, 246, 246, - 247, 247, 247, 243, 243, 200, 200, 200, 200, 200, - 252, 252, 252, 252, 264, 264, 211, 211, 213, 213, - 212, 212, 162, 265, 265, 273, 270, 270, 271, 271, - 297, 297, 297, 274, 274, 287, 287, 283, 283, 284, - 284, 277, 277, 289, 289, 289, 77, 209, 209, 366, - 366, 363, 292, 292, 294, 294, 298, 298, 302, 302, - 299, 299, 8, 411, 411, 411, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, - 290, 290, 290, 290, 290, 290, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, + 119, 119, 119, 119, 119, 119, 119, 119, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 419, 419, 328, 328, + 328, 206, 206, 206, 206, 206, 126, 126, 126, 126, + 126, 311, 311, 311, 315, 315, 315, 313, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, + 313, 313, 316, 316, 224, 224, 122, 122, 222, 222, + 223, 225, 225, 217, 217, 217, 217, 219, 219, 202, + 202, 202, 227, 227, 228, 228, 106, 107, 107, 108, + 108, 229, 229, 231, 230, 230, 232, 233, 233, 233, + 234, 234, 235, 235, 235, 49, 49, 49, 49, 49, + 44, 44, 44, 44, 45, 45, 45, 45, 137, 137, + 137, 137, 139, 139, 138, 138, 82, 82, 83, 83, + 83, 143, 143, 144, 144, 144, 141, 141, 142, 142, + 252, 252, 252, 252, 252, 252, 252, 236, 236, 236, + 243, 243, 243, 239, 239, 241, 241, 241, 242, 242, + 242, 240, 249, 249, 251, 251, 250, 250, 246, 246, + 247, 247, 248, 248, 248, 244, 244, 201, 201, 201, + 201, 201, 253, 253, 253, 253, 265, 265, 212, 212, + 214, 214, 213, 213, 163, 266, 266, 274, 271, 271, + 272, 272, 298, 298, 298, 275, 275, 288, 288, 284, + 284, 285, 285, 278, 278, 290, 290, 290, 77, 210, + 210, 367, 367, 364, 293, 293, 295, 295, 299, 299, + 303, 303, 300, 300, 8, 412, 412, 412, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, @@ -8581,26 +8582,54 @@ var yyR1 = [...]int{ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 414, 415, 308, 309, 309, 309, + 291, 291, 291, 291, 291, 291, 291, 291, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 415, 416, 309, 310, 310, 310, } var yyR2 = [...]int{ @@ -8713,60 +8742,60 @@ var yyR2 = [...]int{ 2, 2, 5, 6, 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 2, 4, 0, 1, 2, - 5, 0, 3, 0, 1, 4, 4, 2, 0, 1, - 1, 2, 2, 1, 1, 2, 2, 0, 1, 1, - 1, 1, 5, 1, 3, 0, 3, 1, 1, 1, - 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 4, 6, 4, 4, - 8, 8, 6, 8, 6, 5, 4, 10, 2, 2, - 1, 2, 2, 2, 2, 2, 4, 5, 5, 5, - 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 8, 4, 8, 8, 6, 5, 4, 4, - 4, 4, 4, 7, 4, 4, 6, 6, 6, 8, - 6, 6, 4, 4, 3, 4, 6, 6, 4, 4, - 6, 4, 6, 4, 4, 4, 4, 4, 4, 6, - 4, 6, 4, 4, 4, 6, 4, 6, 4, 4, - 6, 4, 6, 4, 6, 8, 4, 6, 8, 4, - 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, + 5, 0, 3, 0, 1, 4, 4, 2, 1, 0, + 0, 1, 1, 2, 2, 1, 1, 2, 2, 0, + 1, 1, 1, 1, 5, 1, 3, 0, 3, 1, + 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 4, 6, + 4, 4, 8, 8, 6, 8, 6, 5, 4, 10, + 2, 2, 1, 2, 2, 2, 2, 2, 5, 6, + 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 8, 4, 8, 8, 6, 5, + 4, 4, 4, 4, 4, 7, 4, 4, 6, 6, + 6, 8, 6, 6, 4, 4, 3, 4, 6, 6, + 4, 4, 6, 4, 6, 4, 4, 4, 4, 4, + 4, 6, 4, 6, 4, 4, 4, 6, 4, 6, + 4, 4, 6, 4, 6, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, - 8, 4, 4, 4, 6, 4, 6, 4, 8, 6, - 4, 4, 6, 4, 6, 8, 4, 6, 8, 4, - 4, 6, 8, 6, 4, 6, 6, 8, 10, 7, - 8, 8, 9, 4, 4, 4, 4, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 4, 4, 4, - 4, 4, 4, 6, 4, 6, 5, 9, 6, 9, - 8, 6, 8, 8, 8, 6, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 2, 6, 8, 10, 12, - 14, 6, 8, 8, 10, 12, 14, 6, 8, 10, - 12, 6, 8, 4, 4, 3, 4, 6, 6, 4, - 6, 4, 6, 8, 0, 2, 1, 1, 1, 1, + 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, + 4, 6, 8, 4, 4, 4, 6, 4, 6, 4, + 8, 6, 4, 4, 6, 4, 6, 8, 4, 6, + 8, 4, 4, 6, 8, 6, 4, 6, 6, 8, + 10, 7, 8, 8, 9, 4, 4, 4, 4, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, + 4, 4, 4, 4, 4, 6, 4, 6, 5, 9, + 6, 9, 8, 6, 8, 8, 8, 6, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 2, 6, 8, + 10, 12, 14, 6, 8, 8, 10, 12, 14, 6, + 8, 10, 12, 6, 8, 4, 4, 3, 4, 6, + 6, 4, 6, 4, 6, 8, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 2, 0, 2, 3, 4, - 4, 4, 4, 4, 0, 3, 4, 7, 3, 1, - 1, 1, 0, 5, 5, 2, 3, 1, 2, 2, - 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, - 0, 1, 0, 1, 0, 2, 1, 2, 4, 0, - 2, 1, 1, 3, 5, 1, 1, 1, 2, 2, - 0, 3, 0, 2, 2, 1, 3, 0, 1, 0, - 1, 3, 1, 3, 2, 0, 1, 1, 0, 1, - 2, 4, 4, 0, 2, 2, 1, 1, 3, 3, - 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, - 0, 3, 1, 1, 0, 4, 0, 1, 1, 0, - 3, 1, 3, 2, 1, 1, 0, 1, 2, 3, - 4, 2, 3, 4, 4, 9, 3, 5, 0, 3, - 3, 0, 1, 0, 2, 2, 0, 2, 2, 2, - 0, 2, 1, 2, 3, 3, 0, 2, 1, 2, - 3, 4, 3, 0, 1, 2, 1, 5, 4, 4, - 1, 3, 3, 5, 0, 5, 1, 3, 1, 2, - 3, 4, 1, 1, 3, 3, 1, 2, 1, 1, - 1, 1, 1, 1, 1, 0, 1, 0, 2, 0, - 3, 0, 1, 0, 1, 1, 5, 0, 1, 0, - 1, 2, 1, 1, 1, 1, 1, 1, 0, 1, - 1, 1, 3, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 2, 0, 2, + 3, 4, 4, 4, 4, 4, 0, 3, 4, 7, + 3, 1, 1, 1, 0, 5, 5, 2, 3, 1, + 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, + 1, 1, 0, 1, 0, 1, 0, 2, 1, 2, + 4, 0, 2, 1, 1, 3, 5, 1, 1, 1, + 2, 2, 0, 3, 0, 2, 2, 1, 3, 0, + 1, 0, 1, 3, 1, 3, 2, 0, 1, 1, + 0, 1, 2, 4, 4, 0, 2, 2, 1, 1, + 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, + 3, 3, 0, 3, 1, 1, 0, 4, 0, 1, + 1, 0, 3, 1, 3, 2, 1, 1, 0, 1, + 2, 3, 4, 2, 3, 4, 4, 9, 3, 5, + 0, 3, 3, 0, 1, 0, 2, 2, 0, 2, + 2, 2, 0, 2, 1, 2, 3, 3, 0, 2, + 1, 2, 3, 4, 3, 0, 1, 2, 1, 5, + 4, 4, 1, 3, 3, 5, 0, 5, 1, 3, + 1, 2, 3, 4, 1, 1, 3, 3, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, + 2, 0, 3, 0, 1, 0, 1, 1, 5, 0, + 1, 0, 1, 2, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 1, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -8828,30 +8857,30 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, } var yyChk = [...]int{ - -1000, -412, -79, -417, -7, -29, -15, -16, -17, -18, + -1000, -413, -79, -418, -7, -29, -15, -16, -17, -18, -19, -20, -21, -22, -23, -24, -25, -26, -64, -67, -65, -66, -69, -70, -71, -72, -73, -9, -11, -68, -27, -28, -74, -75, -76, -77, -78, -12, -13, -14, - -8, -32, -31, -30, 11, 12, -108, -35, 34, -40, + -8, -32, -31, -30, 11, 12, -109, -35, 34, -40, -50, 228, -51, -41, 229, -52, 231, 230, 268, 232, - 381, 261, 76, 317, 318, 320, 321, 322, 323, -109, + 381, 261, 76, 317, 318, 320, 321, 322, 323, -110, 687, 266, 267, 234, 38, 47, 35, 36, 39, 238, - 274, 275, 237, 134, -33, -36, 10, -414, 13, 471, - 263, 262, 30, -34, 581, 88, -80, -413, 735, -251, - -235, 24, 35, 31, -234, -230, -127, -235, 22, 20, - 9, -79, -79, -79, 14, 15, -79, -351, -353, 88, + 274, 275, 237, 134, -33, -36, 10, -415, 13, 471, + 263, 262, 30, -34, 581, 88, -80, -414, 735, -252, + -236, 24, 35, 31, -235, -231, -128, -236, 22, 20, + 9, -79, -79, -79, 14, 15, -79, -352, -354, 88, 161, 88, -79, -57, -56, -54, -53, -55, -58, 33, - -47, -48, -375, -46, -43, 233, 230, 278, 124, 125, + -47, -48, -376, -46, -43, 233, 230, 278, 124, 125, 268, 269, 270, 232, 252, 267, 271, 266, 287, -42, - 83, 35, 581, 584, -358, 229, 235, 236, 231, 472, - 127, 126, 77, -355, 376, 614, 705, -58, 707, 102, + 83, 35, 581, 584, -359, 229, 235, 236, 231, 472, + 127, 126, 77, -356, 376, 614, 705, -58, 707, 102, 105, 706, 46, 242, 708, 709, 710, 621, 711, 251, 712, 713, 714, 715, 721, 662, 722, 723, 724, 128, - 9, -79, -302, -298, 92, -291, 578, 254, 612, 425, + 9, -79, -303, -299, 92, -292, 578, 254, 612, 425, 613, 303, 83, 43, 517, 587, 373, 376, 614, 502, 705, 382, 317, 333, 327, 507, 508, 509, 356, 348, 579, 615, 588, 306, 255, 291, 699, 346, 137, 707, @@ -8898,17 +8927,17 @@ var yyChk = [...]int{ 410, 412, 316, 411, 686, 680, 681, 290, 461, 584, 324, 345, 380, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 480, 241, -79, 241, -189, -298, -129, 689, 691, - 180, -270, 384, -288, 386, 399, 394, 404, 392, -279, - 395, 397, 281, -399, 414, 241, 401, 228, 387, 396, + 460, 480, 241, -79, 241, -190, -299, -130, 689, 691, + 180, -271, 384, -289, 386, 399, 394, 404, 392, -280, + 395, 397, 281, -400, 414, 241, 401, 228, 387, 396, 405, 406, 305, 412, 407, 316, 411, 290, 408, 409, - 410, -382, 180, 710, 725, 137, 349, 391, 389, 415, - 689, 92, -304, 92, 93, 94, -291, 319, -306, 324, - -292, -382, -291, 322, -79, -79, -308, -308, -129, -208, - -144, 145, -158, -259, -161, 93, -149, -152, -202, -203, - -204, -205, -159, -218, -257, 169, 170, 177, 146, -214, - -162, 28, 577, 473, 472, 180, 33, 223, 70, 71, - 475, 476, 148, 59, 13, 438, 439, -160, 428, 429, + 410, -383, 180, 710, 725, 137, 349, 391, 389, 415, + 689, 92, -305, 92, 93, 94, -292, 319, -307, 324, + -293, -383, -292, 322, -79, -79, -309, -309, -130, -209, + -145, 145, -159, -260, -162, 93, -150, -153, -203, -204, + -205, -206, -160, -219, -258, 169, 170, 177, 146, -215, + -163, 28, 577, 473, 472, 180, 33, 223, 70, 71, + 475, 476, 148, 59, 13, 438, 439, -161, 428, 429, 440, 434, 435, 501, 503, 504, 505, 502, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 506, 517, 478, 479, 119, 480, 109, 111, 110, 481, 482, 483, @@ -8920,45 +8949,45 @@ var yyChk = [...]int{ 569, 574, 573, 571, 572, 576, 575, 485, 486, 112, 113, 114, 115, 116, 117, 118, 487, 490, 488, 489, 491, 492, 493, 498, 499, 494, 495, 496, 497, 500, - 372, 370, 371, 367, 366, 365, -89, -101, 603, 602, - -102, 425, 430, 431, 433, -150, -151, -164, -165, -292, - -298, 246, 427, 240, 175, 471, -153, -147, -216, 108, - 94, -31, -212, 426, 436, 437, 441, 432, 442, 589, + 372, 370, 371, 367, 366, 365, -89, -102, 603, 602, + -103, 425, 430, 431, 433, -151, -152, -165, -166, -293, + -299, 246, 427, 240, 175, 471, -154, -148, -217, 108, + 94, -31, -213, 426, 436, 437, 441, 432, 442, 589, 591, 606, 607, 609, 594, 599, 598, 601, 518, 519, 520, 521, 522, 523, 674, 675, 676, 677, 678, 679, - 680, 681, -382, -291, 92, -156, -154, -198, 95, 100, - 103, 104, 106, -405, 264, 342, 343, 120, -414, 703, - -155, 97, 98, 99, 121, 122, 181, 182, 183, 184, + 680, 681, -383, -292, 92, -157, -155, -199, 95, 100, + 103, 104, 106, -406, 264, 342, 343, 120, -415, 703, + -156, 97, 98, 99, 121, 122, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 91, 96, - 46, 400, 400, -189, -79, -79, -79, -79, -411, 706, - 582, -228, -127, -230, -33, -31, -414, 10, -79, -31, - -32, -30, -36, -38, 608, -37, -298, 101, -235, -251, - 14, 63, 164, 44, 52, -233, -234, -34, -31, -144, - 21, 25, 26, -131, 171, -144, -298, -131, -277, 245, - -79, -79, -266, -311, 319, -268, 415, 689, 414, -258, - -271, 92, -257, -270, 413, 93, -352, 161, -338, -342, - -292, 256, -368, 252, -189, -361, -360, -292, -414, -128, - -287, 242, 250, 249, 138, -386, 141, 298, 427, 240, - -53, -54, -55, -270, 179, 709, -110, 273, 277, 89, - 89, -342, -341, -340, -387, 277, 256, -367, -359, 248, - 257, -348, 249, 250, -343, 242, 139, -387, -343, 247, + 46, 400, 400, -190, -79, -79, -79, -79, -412, 706, + 582, -229, -128, -231, -33, -31, -415, 10, -79, -31, + -32, -30, -36, -38, 608, -37, -299, 101, -236, -252, + 14, 63, 164, 44, 52, -234, -235, -34, -31, -145, + 21, 25, 26, -132, 171, -145, -299, -132, -278, 245, + -79, -79, -267, -312, 319, -269, 415, 689, 414, -259, + -272, 92, -258, -271, 413, 93, -353, 161, -339, -343, + -293, 256, -369, 252, -190, -362, -361, -293, -415, -129, + -288, 242, 250, 249, 138, -387, 141, 298, 427, 240, + -53, -54, -55, -271, 179, 709, -111, 273, 277, 89, + 89, -343, -342, -341, -388, 277, 256, -368, -360, 248, + 257, -349, 249, 250, -344, 242, 139, -388, -344, 247, 257, 252, 256, 277, 277, 128, 277, 128, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 272, -349, 153, - -349, 585, 585, -355, -387, 252, 242, -387, -387, 248, - -289, -343, 244, 27, 244, 37, 37, -349, -349, -349, - -270, 179, -349, -349, -349, -349, 285, 285, -349, -349, - -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, - -349, -349, -349, -349, -349, 241, -386, -136, 411, 305, - 83, -56, 287, -39, -189, -287, 242, 243, -386, 274, - -189, 224, 241, 692, -281, 161, 17, -281, -278, 400, - 398, 385, 390, -281, -281, -281, -281, 288, 383, -344, + 277, 277, 277, 277, 277, 277, 277, 272, -350, 153, + -350, 585, 585, -356, -388, 252, 242, -388, -388, 248, + -290, -344, 244, 27, 244, 37, 37, -350, -350, -350, + -271, 179, -350, -350, -350, -350, 285, 285, -350, -350, + -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, + -350, -350, -350, -350, -350, 241, -387, -137, 411, 305, + 83, -56, 287, -39, -190, -288, 242, 243, -387, 274, + -190, 224, 241, 692, -282, 161, 17, -282, -279, 400, + 398, 385, 390, -282, -282, -282, -282, 288, 383, -345, 242, 37, 253, 400, 288, 383, 288, 289, 288, 289, - 393, 403, 288, -303, 16, 164, 427, 388, 392, 281, - 241, 282, 243, 402, 289, -303, 91, -282, 161, 288, - 400, 394, 284, -281, -281, -309, -414, -294, -292, -290, + 393, 403, 288, -304, 16, 164, 427, 388, 392, 281, + 241, 282, 243, 402, 289, -304, 91, -283, 161, 288, + 400, 394, 284, -282, -282, -310, -415, -295, -293, -291, 233, 25, 144, 27, 29, 147, 180, 131, 21, 148, 39, 235, 349, 252, 179, 248, 472, 228, 74, 589, 428, 435, 426, 434, 438, 474, 475, 427, 386, 33, @@ -8974,281 +9003,282 @@ var yyChk = [...]int{ 477, 34, 261, 249, 130, 69, 442, 610, 241, 150, 244, 133, 121, 9, 138, 36, 14, 76, 79, 439, 440, 441, 59, 129, 581, 149, 17, 611, 419, 143, - -382, 692, -309, -309, 34, 93, -408, -409, -410, 581, - 418, 244, -292, -189, -85, 682, 232, -86, 688, 25, - 239, -134, 400, -122, 180, 710, 693, 694, 695, 692, + -383, 692, -310, -310, 34, 93, -409, -410, -411, 581, + 418, 244, -293, -190, -85, 682, 232, -86, 688, 25, + 239, -135, 400, -123, 180, 710, 693, 694, 695, 692, 397, 700, 698, 696, 288, 697, 89, 141, 143, 144, - 4, -144, 160, -199, 153, 154, 155, 156, 157, 158, - 159, 165, 164, 145, 147, 161, -244, 142, 166, 167, + 4, -145, 160, -200, 153, 154, 155, 156, 157, 158, + 159, 165, 164, 145, 147, 161, -245, 142, 166, 167, 168, 169, 170, 171, 172, 174, 173, 175, 176, 162, - 163, 179, 226, 227, -152, -152, -152, -152, -214, -220, - -219, -414, -216, -382, -291, -298, -414, -414, -152, -276, - -414, -149, -414, -414, -414, -414, -414, -223, -144, -414, - -414, -418, -414, -418, -418, -418, -327, -414, -327, -327, - -414, -414, -414, -414, -414, -414, -414, -414, -414, -414, - -414, -414, -414, -414, -414, -414, -414, -414, -414, -414, - -414, -414, -414, -414, -414, -414, -414, -414, -414, -414, - -414, -414, -414, -414, -414, -414, -414, -414, -414, -414, - -414, -414, -414, -414, -414, -414, -414, -414, -414, -414, - -414, -414, -414, -414, -414, -414, -414, -414, -414, -414, - -414, -414, -414, -414, -414, -414, -414, -414, -414, -414, - -414, -414, -414, -414, -414, -414, -414, -414, -414, -414, - -414, -414, -414, -414, -414, -414, -414, -414, -414, -414, - -414, -414, -414, -414, -414, -414, -414, -414, -414, -414, - -414, -414, -414, -414, -414, -414, -414, -414, -414, -414, - -414, -414, -414, -414, -414, -414, -414, -414, -414, -414, - -414, -414, -414, 224, -414, -414, -414, -414, -414, -327, - -327, -327, -327, -327, -327, -414, -414, -414, -414, -414, - -414, -414, -414, -414, -414, -414, -414, -414, -414, 91, - 104, 100, 103, 95, -218, 106, 91, 91, 91, 91, - -31, -32, -208, -414, -308, -396, -397, -192, -189, -414, - 305, -292, -292, 274, 97, -233, -34, -31, -228, -234, - -230, -31, -79, -120, -133, 65, 66, -132, -135, 26, - 40, 69, 67, 25, -415, 90, -415, -251, -415, 89, - -38, -254, 88, 636, 666, 636, 666, 63, 45, 91, - 91, 89, 23, -229, -231, -144, 16, -296, 4, -295, - 27, -292, 91, 224, 16, -190, 31, -189, -277, -277, - 89, 92, 319, -267, -269, 416, 418, 153, -297, -292, - 91, 33, 90, 89, -189, -316, -319, -321, -320, -322, - -317, -318, 346, 347, 180, 350, 352, 353, 354, 355, + 163, 179, 226, 227, -153, -153, -153, -153, -215, -221, + -220, -415, -217, -383, -292, -299, -415, -415, -153, -277, + -415, -150, -415, -415, -415, -415, -415, -224, -145, -415, + -415, -419, -415, -419, -419, -419, -328, -415, -328, -328, + -415, -415, -415, -415, -415, -415, -415, -415, -415, -415, + -415, -415, -415, -415, -415, -415, -415, -415, -415, -415, + -415, -415, -415, -415, -415, -415, -415, -415, -415, -415, + -415, -415, -415, -415, -415, -415, -415, -415, -415, -415, + -415, -415, -415, -415, -415, -415, -415, -415, -415, -415, + -415, -415, -415, -415, -415, -415, -415, -415, -415, -415, + -415, -415, -415, -415, -415, -415, -415, -415, -415, -415, + -415, -415, -415, -415, -415, -415, -415, -415, -415, -415, + -415, -415, -415, -415, -415, -415, -415, -415, -415, -415, + -415, -415, -415, -415, -415, -415, -415, -415, -415, -415, + -415, -415, -415, -415, -415, -415, -415, -415, -415, -415, + -415, -415, -415, -415, -415, -415, -415, -415, -415, -415, + -415, -415, -415, 224, -415, -415, -415, -415, -415, -328, + -328, -328, -328, -328, -328, -415, -415, -415, -415, -415, + -415, -415, -415, -415, -415, -415, -415, -415, -415, 91, + 104, 100, 103, 95, -219, 106, 91, 91, 91, 91, + -31, -32, -209, -415, -309, -397, -398, -193, -190, -415, + 305, -293, -293, 274, 97, -234, -34, -31, -229, -235, + -231, -31, -79, -121, -134, 65, 66, -133, -136, 26, + 40, 69, 67, 25, -416, 90, -416, -252, -416, 89, + -38, -255, 88, 636, 666, 636, 666, 63, 45, 91, + 91, 89, 23, -230, -232, -145, 16, -297, 4, -296, + 27, -293, 91, 224, 16, -191, 31, -190, -278, -278, + 89, 92, 319, -268, -270, 416, 418, 153, -298, -293, + 91, 33, 90, 89, -190, -317, -320, -322, -321, -323, + -318, -319, 346, 347, 180, 350, 352, 353, 354, 355, 356, 357, 358, 359, 360, 363, 34, 264, 342, 343, 344, 345, 364, 365, 366, 367, 369, 370, 371, 372, 327, 348, 579, 328, 329, 330, 331, 332, 333, 335, - 336, 339, 337, 338, 340, 341, -383, -382, 88, 90, - 89, -326, 88, -144, -136, 241, -382, 242, 242, 242, - -79, 471, -349, -349, -349, 272, 21, -46, -43, -375, - 20, -42, -43, 233, 124, 125, 230, 88, -338, 88, - -347, -383, -382, 88, 139, 247, 138, -346, -343, -346, - -347, -382, -216, -382, 139, 139, -382, -382, -263, -292, - -263, -263, 25, -263, 25, -263, 25, 97, -292, -263, - 25, -263, 25, -263, 25, -263, 25, -263, 25, 33, - 80, 81, 82, 33, 84, 85, 86, -216, -382, -382, - -216, -338, -216, -189, -382, -270, 97, 97, 97, -349, - -349, 97, 91, 91, 91, -349, -349, 97, 91, -300, - -298, 91, 91, -388, 258, 302, 304, 97, 97, 97, - 97, 33, 91, -389, 33, 717, 716, 718, 719, 720, - 91, 97, 33, 97, 33, 97, -292, 88, -189, -142, + 336, 339, 337, 338, 340, 341, -384, -383, 88, 90, + 89, -327, 88, -145, -137, 241, -383, 242, 242, 242, + -79, 471, -350, -350, -350, 272, 21, -46, -43, -376, + 20, -42, -43, 233, 124, 125, 230, 88, -339, 88, + -348, -384, -383, 88, 139, 247, 138, -347, -344, -347, + -348, -383, -217, -383, 139, 139, -383, -383, -264, -293, + -264, -264, 25, -264, 25, -264, 25, 97, -293, -264, + 25, -264, 25, -264, 25, -264, 25, -264, 25, 33, + 80, 81, 82, 33, 84, 85, 86, -217, -383, -383, + -217, -339, -217, -190, -383, -271, 97, 97, 97, -350, + -350, 97, 91, 91, 91, -350, -350, 97, 91, -301, + -299, 91, 91, -389, 258, 302, 304, 97, 97, 97, + 97, 33, 91, -390, 33, 717, 716, 718, 719, 720, + 91, 97, 33, 97, 33, 97, -293, 88, -190, -143, 292, 228, 230, 233, 78, 91, 308, 309, 306, 311, - 312, 313, 153, 46, 89, 244, 241, -382, -283, 246, - -283, -292, -299, -298, -290, -189, 244, 382, 91, -144, - -345, 16, 164, -303, -303, -281, -189, -345, -303, -281, - -189, -281, -281, -281, -281, -303, -303, -303, -281, -298, - -298, -189, -189, -189, -189, -189, -189, -189, -309, -282, - -281, 692, 91, -275, 16, 78, -309, -309, 89, 325, - 419, 420, -307, 322, -81, -292, 91, -10, -29, -18, - -17, -19, 153, -10, 89, 581, -182, -189, 692, 692, - 692, 692, 692, 692, -144, -144, -144, -144, 604, -206, - 120, 145, 121, 122, -161, -144, -207, -212, -214, 107, - 164, 147, 161, -244, -149, -152, -149, -149, -149, -149, - -149, -149, 223, -149, 223, -149, -149, -149, -149, -149, - -149, -310, -292, 91, 180, -157, -156, 106, -405, -157, - 578, 89, -219, 224, -144, -144, -382, -118, 444, 445, + 312, 313, 153, 46, 89, 244, 241, -383, -284, 246, + -284, -293, -300, -299, -291, -190, 244, 382, 91, -145, + -346, 16, 164, -304, -304, -282, -190, -346, -304, -282, + -190, -282, -282, -282, -282, -304, -304, -304, -282, -299, + -299, -190, -190, -190, -190, -190, -190, -190, -310, -283, + -282, 692, 91, -276, 16, 78, -310, -310, 89, 325, + 419, 420, -308, 322, -81, -293, 91, -10, -29, -18, + -17, -19, 153, -10, 89, 581, -183, -190, 692, 692, + 692, 692, 692, 692, -145, -145, -145, -145, 604, -207, + 120, 145, 121, 122, -162, -145, -208, -213, -215, 107, + 164, 147, 161, -245, -150, -153, -150, -150, -150, -150, + -150, -150, 223, -150, 223, -150, -150, -150, -150, -150, + -150, -311, -293, 91, 180, -158, -157, 106, -406, -158, + 578, 89, -220, 224, -145, -145, -383, -119, 444, 445, 446, 447, 449, 450, 451, 454, 455, 459, 460, 443, - 461, 448, 453, 456, 457, 458, 452, 345, -144, -209, - -208, -209, -144, -144, -221, -222, 149, -216, -144, -415, - -415, 97, 171, -126, 26, 40, -126, -126, -126, -126, - -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, - -126, -144, -119, 443, 461, 448, 453, 456, 457, 458, + 461, 448, 453, 456, 457, 458, 452, 345, -145, -210, + -209, -210, -145, -145, -222, -223, 149, -217, -145, -416, + -416, 97, 171, -127, 26, 40, -127, -127, -127, -127, + -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, + -127, -145, -120, 443, 461, 448, 453, 456, 457, 458, 452, 345, 462, 463, 464, 465, 466, 467, 468, 469, - 470, -119, -118, -144, -144, -144, -144, -144, -144, -87, - -144, 131, 132, 133, -208, -144, -149, -144, -144, -144, - -415, -144, -144, -144, -209, -144, -144, -144, -144, -144, - -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, - -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, - -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, - -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, - -144, -381, -380, -379, -144, -144, -144, -144, -144, -144, - -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, - -144, -144, -144, -144, -144, -144, -144, -208, -208, -208, - -208, -208, -144, -415, -144, -163, -147, 97, -259, 106, - 93, -144, -144, -144, -144, -144, -144, -209, -294, -299, - -290, -291, -208, -209, -209, -208, -208, -144, -144, -144, - -144, -144, -144, -144, -144, -415, -144, -144, -144, -144, - -144, -251, -415, -208, 89, -398, 418, 419, 690, -301, - 277, -300, 27, -209, 91, 16, -261, 79, -292, -233, - -233, 65, 66, 61, -130, -131, -135, -415, -37, 27, - -253, -292, 629, 629, 64, 91, -328, -270, 373, 374, - 180, -144, -144, 89, -232, 29, 30, -189, -295, 171, - -299, -189, -262, 277, -189, -167, -169, -170, -171, -192, - -215, -414, -172, -31, 600, 597, 16, -182, -183, -191, - -298, -268, -311, -267, 89, 417, 419, 420, 78, 123, - -144, -329, 179, -357, -356, -355, -338, -340, -341, -342, - 90, -329, -334, 379, 378, -326, -326, -326, -326, -326, - -328, -328, -328, -328, 88, 88, -326, -326, -326, -326, - -331, 88, -331, -331, -332, -331, 88, -332, -333, 88, - -333, -368, -144, -365, -364, -362, -363, 251, 102, 672, - 628, 581, 621, 662, 79, -360, -232, 97, -415, -142, - -284, 246, -366, -363, -382, -382, -382, -284, 92, 91, - 92, 91, 92, 91, -111, -60, -1, 729, 730, 731, - 89, 21, -339, -338, -59, 302, -371, -372, 277, -367, - -361, -347, 139, -346, -347, -347, -382, 89, 31, 128, - 128, 128, 128, 581, 230, 34, -285, 620, 145, 672, - 628, -338, -59, 244, 244, -310, -310, -310, 91, 91, - -280, 725, -182, -138, 294, 153, 283, 283, 241, 296, - 241, 296, -189, 307, 310, 308, 309, 306, 311, 312, + 470, -120, -119, -145, -145, -145, -145, -145, -145, -87, + -145, 131, 132, 133, -209, -145, -150, -145, -145, -145, + -416, -145, -145, -145, -210, -145, -145, -145, -145, -145, + -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, + -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, + -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, + -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, + -145, -382, -381, -380, -145, -145, -145, -145, -145, -145, + -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, + -145, -145, -145, -145, -145, -145, -145, -209, -209, -209, + -209, -209, -145, -416, -145, -164, -148, 97, -260, 106, + 93, -145, -145, -145, -145, -145, -145, -210, -295, -300, + -291, -292, -209, -210, -210, -209, -209, -145, -145, -145, + -145, -145, -145, -145, -145, -416, -145, -145, -145, -145, + -145, -252, -416, -209, 89, -399, 418, 419, 690, -302, + 277, -301, 27, -210, 91, 16, -262, 79, -293, -234, + -234, 65, 66, 61, -131, -132, -136, -416, -37, 27, + -254, -293, 629, 629, 64, 91, -329, -271, 373, 374, + 180, -145, -145, 89, -233, 29, 30, -190, -296, 171, + -300, -190, -263, 277, -190, -168, -170, -171, -172, -193, + -216, -415, -173, -31, 600, 597, 16, -183, -184, -192, + -299, -269, -312, -268, 89, 417, 419, 420, 78, 123, + -145, -330, 179, -358, -357, -356, -339, -341, -342, -343, + 90, -330, -335, 379, 378, -327, -327, -327, -327, -327, + -329, -329, -329, -329, 88, 88, -327, -327, -327, -327, + -332, 88, -332, -332, -333, -332, 88, -333, -334, 88, + -334, -369, -145, -366, -365, -363, -364, 251, 102, 672, + 628, 581, 621, 662, 79, -361, -233, 97, -416, -143, + -285, 246, -367, -364, -383, -383, -383, -285, 92, 91, + 92, 91, 92, 91, -112, -60, -1, 729, 730, 731, + 89, 21, -340, -339, -59, 302, -372, -373, 277, -368, + -362, -348, 139, -347, -348, -348, -383, 89, 31, 128, + 128, 128, 128, 581, 230, 34, -286, 620, 145, 672, + 628, -339, -59, 244, 244, -311, -311, -311, 91, 91, + -281, 725, -183, -139, 294, 153, 283, 283, 241, 296, + 241, 296, -190, 307, 310, 308, 309, 306, 311, 312, 313, 25, 25, 25, 25, 25, 25, 295, 297, 299, - 285, -189, -189, -283, 78, -184, -189, 28, -298, 91, - 91, -189, -281, -281, -189, -281, -281, -189, -410, 326, - -292, 360, 683, 685, -122, 418, 89, 581, 24, -123, - 24, -414, 120, 121, 122, -207, -149, -152, -149, 144, - 265, -149, -149, -414, -216, -415, -294, 27, 89, 79, - -415, 169, 89, -415, -415, 89, 16, 89, -224, -222, - 151, -144, -415, 89, -415, -415, -208, -144, -144, -144, - -144, -415, -415, -415, -415, -415, -415, -415, -415, -415, - -415, -208, -415, 89, 89, 16, -314, 27, -415, -415, - -415, -415, -415, -223, -415, 16, -415, 79, 89, 164, - 89, -415, -415, -415, 89, 89, -415, -415, 89, -415, - 89, -415, -415, -415, -415, -415, -415, 89, -415, 89, - -415, -415, -415, 89, -415, 89, -415, -415, 89, -415, - 89, -415, 89, -415, 89, -415, 89, -415, 89, -415, - 89, -415, 89, -415, 89, -415, 89, -415, 89, -415, - 89, -415, 89, -415, 89, -415, 89, -415, 89, -415, - 89, -415, 89, -415, -415, -415, 89, -415, 89, -415, - 89, -415, -415, 89, -415, 89, -415, 89, -415, 89, - 89, -415, 89, 89, 89, -415, 89, 89, 89, 89, - -415, -415, -415, -415, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, -415, -415, -415, -415, -415, -415, - 89, -94, 605, -415, -415, 89, -415, 89, 89, 89, - 89, 89, -415, -414, 224, -415, -415, -415, -415, -415, - 89, 89, 89, 89, 89, 89, -415, -415, -415, 89, - 89, -415, 89, -415, 89, -415, -397, 689, 419, -196, - -195, -193, 76, 245, 77, -414, -300, -415, -157, -259, - -260, -259, -201, -292, 97, 106, -235, -166, 89, -168, - 16, -214, 90, 89, -328, -239, -245, -278, -292, 91, - 180, -330, 180, -330, 373, 374, -231, 224, -197, 17, - -200, 34, 59, -29, -414, -414, 34, 89, -185, -187, - -186, -188, 68, 72, 74, 69, 70, 71, 75, -305, - 27, -31, -167, -31, -414, -189, -182, -416, 16, 79, - -416, 89, 224, -269, -272, 421, 418, 424, -382, 91, - -110, 89, -355, -342, -236, -139, 42, -335, 380, -328, - 588, -328, -337, 91, -337, 97, 97, 97, 90, -49, - -44, -45, 35, 83, -362, -349, 91, 41, -349, -349, - -292, 90, -232, -138, -189, 145, 78, -366, -366, -366, - -298, -2, 728, 734, 139, 88, 385, 20, -253, 89, - 90, -217, 303, 90, -112, -292, 90, 88, -347, -347, - -292, -414, 241, 33, 33, 672, 628, 620, -59, -217, - -216, -382, -329, 727, 726, 90, 243, 301, -143, 438, - -140, 91, 92, -189, -189, -189, -189, -189, -189, 233, - 230, 408, -406, 314, -406, 286, 244, -182, -189, 89, - -84, 260, 255, -303, -303, 35, -189, 418, 701, 699, - -144, 144, 265, -161, -152, -118, -118, -149, -312, 180, + 285, -190, -190, -284, 78, -185, -190, 28, -299, 91, + 91, -190, -282, -282, -190, -282, -282, -190, -411, 326, + -293, 360, 683, 685, -123, 418, 89, 581, 24, -124, + 24, -415, 120, 121, 122, -208, -150, -153, -150, 144, + 265, -150, -150, -415, -217, -416, -295, 27, 89, 79, + -416, 169, 89, -416, -416, 89, 16, 89, -225, -223, + 151, -145, -416, 89, -416, -416, -209, -145, -145, -145, + -145, -416, -416, -416, -416, -416, -416, -416, -416, -416, + -416, -209, -416, 89, 89, 16, -315, 27, -416, -416, + -416, -416, -416, -224, -416, 16, -416, 79, 89, 164, + 89, -416, -416, -416, 89, 89, -416, -416, 89, -416, + 89, -416, -416, -416, -416, -416, -416, 89, -416, 89, + -416, -416, -416, 89, -416, 89, -416, -416, 89, -416, + 89, -416, 89, -416, 89, -416, 89, -416, 89, -416, + 89, -416, 89, -416, 89, -416, 89, -416, 89, -416, + 89, -416, 89, -416, 89, -416, 89, -416, 89, -416, + 89, -416, 89, -416, -416, -416, 89, -416, 89, -416, + 89, -416, -416, 89, -416, 89, -416, 89, -416, 89, + 89, -416, 89, 89, 89, -416, 89, 89, 89, 89, + -416, -416, -416, -416, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, -416, -416, -416, -416, -416, -416, + 89, -94, 605, -416, -416, 89, -416, 89, 89, 89, + 89, 89, -416, -415, 224, -416, -416, -416, -416, -416, + 89, 89, 89, 89, 89, 89, -416, -416, -416, 89, + 89, -416, 89, -416, 89, -416, -398, 689, 419, -197, + -196, -194, 76, 245, 77, -415, -301, -416, -158, -260, + -261, -260, -202, -293, 97, 106, -236, -167, 89, -169, + 16, -215, 90, 89, -329, -240, -246, -279, -293, 91, + 180, -331, 180, -331, 373, 374, -232, 224, -198, 17, + -201, 34, 59, -29, -415, -415, 34, 89, -186, -188, + -187, -189, 68, 72, 74, 69, 70, 71, 75, -306, + 27, -31, -168, -31, -415, -190, -183, -417, 16, 79, + -417, 89, 224, -270, -273, 421, 418, 424, -383, 91, + -111, 89, -356, -343, -237, -140, 42, -336, 380, -329, + 588, -329, -338, 91, -338, 97, 97, 97, 90, -49, + -44, -45, 35, 83, -363, -350, 91, 41, -350, -350, + -293, 90, -233, -139, -190, 145, 78, -367, -367, -367, + -299, -2, 728, 734, 139, 88, 385, 20, -254, 89, + 90, -218, 303, 90, -113, -293, 90, 88, -348, -348, + -293, -415, 241, 33, 33, 672, 628, 620, -59, -218, + -217, -383, -330, 727, 726, 90, 243, 301, -144, 438, + -141, 91, 92, -190, -190, -190, -190, -190, -190, 233, + 230, 408, -407, 314, -407, 286, 244, -183, -190, 89, + -84, 260, 255, -304, -304, 35, -190, 418, 701, 699, + -145, 144, 265, -162, -153, -119, -119, -150, -313, 180, 346, 264, 344, 340, 360, 351, 378, 342, 379, 337, - 336, 335, -312, -310, -149, -208, -144, -144, -144, 152, - -144, 150, -144, -415, -415, -415, -415, -415, -228, -144, - -144, -144, -415, 180, 346, 16, -144, -310, -144, -144, - -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, - -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, - -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, - -144, -144, -144, -379, -144, -208, -144, -208, -144, -144, - -144, -144, -144, -380, -380, -380, -380, -380, -208, -208, - -208, -208, -144, -414, -292, -97, -96, -95, 655, 245, - -94, -163, -97, -163, 223, -144, 223, 223, 223, -144, - -209, -294, -144, -144, -144, -144, -144, -144, -144, -144, - -144, -144, -193, -343, 283, -343, 283, -343, -263, 89, - -274, 24, 16, 59, 59, -166, -197, -131, -167, -292, - -242, 682, -248, 48, -246, -247, 49, -243, 50, 58, - -330, -330, 171, -233, -144, -264, 78, -265, -273, -216, - -211, -213, -212, -414, -252, -415, -292, -263, -265, -169, - -170, -170, -169, -170, 68, 68, 68, 73, 68, 73, - 68, -186, -298, -415, -144, -301, 79, -167, -167, -191, - -298, 171, 418, 422, 423, -355, -404, 120, 145, 33, - 78, 376, 102, -402, 179, 617, 667, 672, 628, 621, - 662, -403, 247, 138, 139, 259, 27, 43, 90, 89, - 90, 89, 90, 90, 89, -286, -285, -45, -44, -349, - -349, 97, -382, 91, 91, 243, 28, -189, 78, 78, - 78, -113, 732, 97, 88, -3, 83, -144, 88, 21, - -338, -216, -373, -323, -374, -324, -325, -5, -6, -350, - -116, 59, 102, -63, 46, 242, 712, 713, 128, -414, - 725, -365, -253, -369, -371, -189, -148, -414, -160, -146, - -145, -147, -153, 169, 170, 264, 342, 343, -217, -189, - -137, 292, 300, 88, -141, 93, -385, 79, 283, 376, - 283, 376, 91, -407, 315, 91, -407, -189, -84, -49, - -189, -281, -281, 35, -382, -415, -161, -152, -125, 164, - 581, -315, 587, -326, -326, -326, -333, -326, 332, -326, - 332, -326, -415, -415, -415, 89, -415, 24, -415, 89, - -144, 89, -121, 477, 89, 89, -415, 88, 88, -144, - -415, -415, -415, 89, -415, -415, -415, -415, -415, -415, - -415, -415, -415, -415, -415, -415, -415, 89, -415, 89, - -415, 89, -415, 89, -415, 89, -415, 89, -415, 89, - -415, 89, -415, 89, -415, 89, -415, 89, -415, 89, - -415, 89, -415, 89, -415, 89, -415, 89, -415, -415, - 89, -415, -415, -415, 89, -415, 89, -415, 89, -415, - -415, -415, 89, -313, 673, -415, -415, -415, -415, -415, - -415, -415, -415, -415, -415, -415, -93, -293, -292, -94, - 637, 637, -415, -94, -225, 89, -149, -415, -149, -149, - -149, -415, -415, -415, 89, -415, 89, 89, -415, 89, - -415, 89, -415, -415, -415, -415, 89, -194, 24, -414, - -194, -414, -194, -415, -259, -189, -197, -226, 18, -239, - 53, 352, -250, -249, 57, 49, -247, 21, 51, 21, - 32, -264, 89, 153, 89, -415, -415, 89, 59, 224, - -415, -197, -180, -179, 78, 79, -181, 78, -179, 68, - 68, -254, 89, -262, -167, -197, -197, 224, 120, -414, - -148, 14, 91, 91, -382, -401, 716, 717, 33, 97, - -349, -349, 139, 139, -189, 88, -328, 91, -328, 97, - 97, 33, 84, 85, 86, 33, 80, 81, 82, -189, - -189, -189, -189, -370, 88, 21, -144, 88, 153, 90, - -253, -253, 279, 164, -349, 710, 285, 285, -349, -349, - -349, -115, -114, 732, 90, -415, 89, -336, 581, 584, - -144, -154, -154, -254, 90, -378, 581, -384, -292, -292, - -292, -292, 97, 99, -415, 579, 75, 582, -415, -328, - -144, -144, -144, -144, -233, 91, -144, -144, 97, 97, - -415, -144, -144, -144, -144, -144, -144, -144, -144, -144, - -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, - -144, -208, -144, -415, -177, -176, -178, 693, 120, 33, - -312, -415, -210, 277, -100, -99, -98, 16, -415, -144, - -118, -118, -118, -118, -144, -144, -144, -144, -144, -144, - -414, 68, 20, 18, -256, -292, 247, -414, -256, -414, - -301, -226, -227, 19, 21, -240, 55, -238, 54, -238, - -249, 21, 21, 91, 21, 91, 139, -273, -144, -213, - 59, -29, -292, -211, -292, -228, -144, 88, -144, -157, - -197, -197, -144, -203, 501, 503, 504, 505, 502, 507, - 508, 509, 510, 511, 512, 513, 514, 515, 516, 506, - 517, 478, 479, 480, 109, 111, 110, 481, 482, 483, - 346, 529, 530, 524, 527, 528, 526, 525, 361, 362, - 484, 547, 548, 552, 551, 549, 550, 553, 556, 557, - 558, 559, 560, 561, 563, 562, 554, 555, 532, 531, - 533, 534, 535, 536, 537, 538, 540, 539, 541, 542, - 543, 544, 545, 546, 564, 565, 566, 567, 568, 570, - 569, 574, 573, 571, 572, 576, 575, 485, 486, 112, - 113, 114, 115, 116, 117, 118, 487, 490, 488, 491, - 492, 493, 498, 499, 494, 495, 496, 497, 500, 372, - 370, 371, 367, 366, 365, 425, 430, 431, 433, 518, - 519, 520, 521, 522, 523, 674, 675, 676, 677, 678, - 679, 680, 681, 91, 91, 88, -144, 90, 90, -254, - -369, -60, 90, -255, -253, 97, 90, 280, -212, -414, - 91, -349, -349, -349, 97, 97, -300, -415, 89, -292, - -403, -371, 585, 585, -415, 27, -377, -376, -294, 88, - 79, 64, 580, 583, -415, -415, -415, 89, -415, -415, - -415, 90, 90, -415, -415, -415, -415, -415, -415, -415, - -415, -415, -415, -415, -415, -415, -415, -415, -415, -415, - -415, -415, -415, -415, -415, 89, -415, -176, -178, -415, - 78, -157, -228, 21, -97, 302, 304, -97, -415, -415, - -415, -415, -415, 89, -415, -415, 89, -415, 89, -415, - -415, -256, -415, 21, 21, 89, -415, -256, -415, -256, - -196, -227, -107, -106, -105, 611, -144, -208, -241, 56, - 78, 123, 91, 91, 91, 14, -211, 224, -233, -253, - -174, 385, -228, -415, -253, 90, 27, 90, 734, 139, - 90, -212, -124, -414, 276, -300, 91, 91, -114, -117, - -29, 89, 153, -253, -189, 64, -144, -208, -415, 78, - 592, 693, -92, -91, -88, 704, 730, -208, -94, -94, - -144, -144, -144, -415, -292, 247, -415, -415, -107, 89, - -104, -103, -292, 78, 123, -265, -292, 90, -415, -414, - -233, 90, -237, -29, 88, -3, 276, -323, -374, -324, - -325, -5, -6, -350, -82, 581, -376, -354, -298, -294, - 91, 97, 90, 581, -415, -415, -90, 147, 702, 670, - -154, 223, -415, 89, -415, 89, -415, 89, -105, 89, - 27, -301, -175, -173, -292, 634, -394, -393, 577, -404, - -400, 120, 145, 102, -402, 672, 628, 129, 130, -82, - -144, 88, -415, -83, 291, 689, 224, -385, 582, -90, - 703, 648, 623, 648, 623, -149, -144, -144, -144, -103, - -414, -415, 89, 24, -316, -62, 645, -391, -392, 78, - -395, 391, 644, 665, 120, 91, 90, -253, 252, -299, - -378, 583, 144, -118, -415, 89, -415, 89, -415, -93, - -173, 641, -329, -157, -392, 78, -391, 78, 15, 14, - -4, 733, 90, 293, -90, 648, 623, -144, -144, -415, - -61, 28, -174, -390, 260, 255, 258, 34, -390, 97, - -4, -415, -415, 645, 254, 33, 120, -157, -177, -176, - -176, + 336, 335, -313, -311, -150, -209, -145, -145, -145, 152, + -145, 150, -145, -95, -94, -416, -416, -416, -416, -416, + -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, + -229, -145, -145, -145, -416, 180, 346, 16, -145, -311, + -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, + -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, + -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, + -145, -145, -145, -145, -145, -380, -145, -209, -145, -209, + -145, -145, -145, -145, -145, -381, -381, -381, -381, -381, + -209, -209, -209, -209, -145, -415, -293, -98, -97, -96, + 655, 245, -94, -164, -98, -164, 223, -145, 223, 223, + 223, -145, -210, -295, -145, -145, -145, -145, -145, -145, + -145, -145, -145, -145, -194, -344, 283, -344, 283, -344, + -264, 89, -275, 24, 16, 59, 59, -167, -198, -132, + -168, -293, -243, 682, -249, 48, -247, -248, 49, -244, + 50, 58, -331, -331, 171, -234, -145, -265, 78, -266, + -274, -217, -212, -214, -213, -415, -253, -416, -293, -264, + -266, -170, -171, -171, -170, -171, 68, 68, 68, 73, + 68, 73, 68, -187, -299, -416, -145, -302, 79, -168, + -168, -192, -299, 171, 418, 422, 423, -356, -405, 120, + 145, 33, 78, 376, 102, -403, 179, 617, 667, 672, + 628, 621, 662, -404, 247, 138, 139, 259, 27, 43, + 90, 89, 90, 89, 90, 90, 89, -287, -286, -45, + -44, -350, -350, 97, -383, 91, 91, 243, 28, -190, + 78, 78, 78, -114, 732, 97, 88, -3, 83, -145, + 88, 21, -339, -217, -374, -324, -375, -325, -326, -5, + -6, -351, -117, 59, 102, -63, 46, 242, 712, 713, + 128, -415, 725, -366, -254, -370, -372, -190, -149, -415, + -161, -147, -146, -148, -154, 169, 170, 264, 342, 343, + -218, -190, -138, 292, 300, 88, -142, 93, -386, 79, + 283, 376, 283, 376, 91, -408, 315, 91, -408, -190, + -84, -49, -190, -282, -282, 35, -383, -416, -162, -153, + -126, 164, 581, -316, 587, -327, -327, -327, -334, -327, + 332, -327, 332, -327, -416, -416, -416, 89, -416, 24, + -416, 89, -145, 89, -95, -95, -95, -95, -95, -122, + 477, 89, 89, -416, 88, 88, -145, -416, -416, -416, + 89, -416, -416, -416, -416, -416, -416, -416, -416, -416, + -416, -416, -416, -416, 89, -416, 89, -416, 89, -416, + 89, -416, 89, -416, 89, -416, 89, -416, 89, -416, + 89, -416, 89, -416, 89, -416, 89, -416, 89, -416, + 89, -416, 89, -416, 89, -416, -416, 89, -416, -416, + -416, 89, -416, 89, -416, 89, -416, -416, -416, 89, + -314, 673, -416, -416, -416, -416, -416, -416, -416, -416, + -416, -416, -416, -93, -294, -293, -94, 637, 637, -416, + -94, -226, 89, -150, -416, -150, -150, -150, -416, -416, + -416, 89, -416, 89, 89, -416, 89, -416, 89, -416, + -416, -416, -416, 89, -195, 24, -415, -195, -415, -195, + -416, -260, -190, -198, -227, 18, -240, 53, 352, -251, + -250, 57, 49, -248, 21, 51, 21, 32, -265, 89, + 153, 89, -416, -416, 89, 59, 224, -416, -198, -181, + -180, 78, 79, -182, 78, -180, 68, 68, -255, 89, + -263, -168, -198, -198, 224, 120, -415, -149, 14, 91, + 91, -383, -402, 716, 717, 33, 97, -350, -350, 139, + 139, -190, 88, -329, 91, -329, 97, 97, 33, 84, + 85, 86, 33, 80, 81, 82, -190, -190, -190, -190, + -371, 88, 21, -145, 88, 153, 90, -254, -254, 279, + 164, -350, 710, 285, 285, -350, -350, -350, -116, -115, + 732, 90, -416, 89, -337, 581, 584, -145, -155, -155, + -255, 90, -379, 581, -385, -293, -293, -293, -293, 97, + 99, -416, 579, 75, 582, -416, -329, -145, -145, -145, + -145, -234, 91, -145, -145, 97, 97, -416, -145, -145, + -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, + -145, -145, -145, -145, -145, -145, -145, -145, -209, -145, + -416, -178, -177, -179, 693, 120, 33, -313, -416, -211, + 277, -101, -100, -99, 16, -416, -145, -119, -119, -119, + -119, -145, -145, -145, -145, -145, -145, -415, 68, 20, + 18, -257, -293, 247, -415, -257, -415, -302, -227, -228, + 19, 21, -241, 55, -239, 54, -239, -250, 21, 21, + 91, 21, 91, 139, -274, -145, -214, 59, -29, -293, + -212, -293, -229, -145, 88, -145, -158, -198, -198, -145, + -204, 501, 503, 504, 505, 502, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 506, 517, 478, 479, + 480, 109, 111, 110, 481, 482, 483, 346, 529, 530, + 524, 527, 528, 526, 525, 361, 362, 484, 547, 548, + 552, 551, 549, 550, 553, 556, 557, 558, 559, 560, + 561, 563, 562, 554, 555, 532, 531, 533, 534, 535, + 536, 537, 538, 540, 539, 541, 542, 543, 544, 545, + 546, 564, 565, 566, 567, 568, 570, 569, 574, 573, + 571, 572, 576, 575, 485, 486, 112, 113, 114, 115, + 116, 117, 118, 487, 490, 488, 491, 492, 493, 498, + 499, 494, 495, 496, 497, 500, 372, 370, 371, 367, + 366, 365, 425, 430, 431, 433, 518, 519, 520, 521, + 522, 523, 674, 675, 676, 677, 678, 679, 680, 681, + 91, 91, 88, -145, 90, 90, -255, -370, -60, 90, + -256, -254, 97, 90, 280, -213, -415, 91, -350, -350, + -350, 97, 97, -301, -416, 89, -293, -404, -372, 585, + 585, -416, 27, -378, -377, -295, 88, 79, 64, 580, + 583, -416, -416, -416, 89, -416, -416, -416, 90, 90, + -416, -416, -416, -416, -416, -416, -416, -416, -416, -416, + -416, -416, -416, -416, -416, -416, -416, -416, -416, -416, + -416, -416, 89, -416, -177, -179, -416, 78, -158, -229, + 21, -98, 302, 304, -98, -416, -416, -416, -416, -416, + 89, -416, -416, 89, -416, 89, -416, -416, -257, -416, + 21, 21, 89, -416, -257, -416, -257, -197, -228, -108, + -107, -106, 611, -145, -209, -242, 56, 78, 123, 91, + 91, 91, 14, -212, 224, -234, -254, -175, 385, -229, + -416, -254, 90, 27, 90, 734, 139, 90, -213, -125, + -415, 276, -301, 91, 91, -115, -118, -29, 89, 153, + -254, -190, 64, -145, -209, -416, 78, 592, 693, -92, + -91, -88, 704, 730, -209, -94, -94, -145, -145, -145, + -416, -293, 247, -416, -416, -108, 89, -105, -104, -293, + 78, 123, -266, -293, 90, -416, -415, -234, 90, -238, + -29, 88, -3, 276, -324, -375, -325, -326, -5, -6, + -351, -82, 581, -377, -355, -299, -295, 91, 97, 90, + 581, -416, -416, -90, 147, 702, 670, -155, 223, -416, + 89, -416, 89, -416, 89, -106, 89, 27, -302, -176, + -174, -293, 634, -395, -394, 577, -405, -401, 120, 145, + 102, -403, 672, 628, 129, 130, -82, -145, 88, -416, + -83, 291, 689, 224, -386, 582, -90, 703, 648, 623, + 648, 623, -150, -145, -145, -145, -104, -415, -416, 89, + 24, -317, -62, 645, -392, -393, 78, -396, 391, 644, + 665, 120, 91, 90, -254, 252, -300, -379, 583, 144, + -119, -416, 89, -416, 89, -416, -93, -174, 641, -330, + -158, -393, 78, -392, 78, 15, 14, -4, 733, 90, + 293, -90, 648, 623, -145, -145, -416, -61, 28, -175, + -391, 260, 255, 258, 34, -391, 97, -4, -416, -416, + 645, 254, 33, 120, -158, -178, -177, -177, } var yyDef = [...]int{ @@ -9257,158 +9287,158 @@ var yyDef = [...]int{ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 72, 74, 75, 882, 882, 882, 0, 882, 0, - 0, 882, -2, -2, 882, 1618, 0, 882, 0, 877, + 0, 882, -2, -2, 882, 1620, 0, 882, 0, 877, 0, -2, 799, 805, 0, 814, -2, 0, 0, 882, - 882, 2244, 2244, 877, 0, 0, 0, 0, 0, 882, - 882, 882, 882, 1623, 1479, 52, 882, 0, 87, 88, - 832, 833, 834, 67, 0, 2242, 883, 1, 3, 73, - 77, 0, 0, 0, 60, 1488, 0, 80, 0, 0, - 886, 0, 0, 1601, 882, 882, 0, 128, 129, 0, + 882, 2246, 2246, 877, 0, 0, 0, 0, 0, 882, + 882, 882, 882, 1625, 1481, 52, 882, 0, 87, 88, + 832, 833, 834, 67, 0, 2244, 883, 1, 3, 73, + 77, 0, 0, 0, 60, 1490, 0, 80, 0, 0, + 886, 0, 0, 1603, 882, 882, 0, 128, 129, 0, 0, 0, -2, 132, -2, 161, 162, 163, 0, 168, 609, 528, 580, 526, 565, -2, 514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, - 403, 403, 0, 0, -2, 514, 514, 514, 1603, 0, + 403, 403, 0, 0, -2, 514, 514, 514, 1605, 0, 0, 0, 562, 465, 403, 403, 403, 0, 403, 403, 403, 403, 0, 0, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 1506, 167, 1619, 1616, 1617, 1776, 1777, 1778, 1779, - 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, - 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, - 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, - 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, - 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, - 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, - 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, - 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, - 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, - 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, - 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, - 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, - 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, - 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, - 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, - 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, - 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, - 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, - 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, - 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, - 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, - 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, - 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, - 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, - 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, - 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, - 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, - 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, - 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, - 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, - 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, - 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, - 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, - 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, - 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, - 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, - 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, - 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, - 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, - 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, - 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, - 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, - 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, - 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, - 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, - 2240, 2241, 0, 1595, 0, 722, 982, 0, 878, 879, + 403, 1508, 167, 1621, 1618, 1619, 1778, 1779, 1780, 1781, + 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, + 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, + 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, + 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, + 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, + 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, + 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, + 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, + 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, + 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, + 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, + 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, + 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, + 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, + 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, + 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, + 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, + 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, + 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, + 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, + 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, + 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, + 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, + 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, + 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, + 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, + 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, + 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, + 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, + 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, + 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, + 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, + 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, + 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, + 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, + 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, + 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, + 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, + 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, + 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, + 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, + 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, + 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, + 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, + 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, + 2242, 2243, 0, 1597, 0, 722, 982, 0, 878, 879, 0, 788, 788, 0, 788, 788, 788, 788, 0, 0, 0, 736, 0, 0, 0, 0, 785, 0, 752, 753, 0, 785, 0, 759, 791, 0, 0, 766, 788, 788, - 769, 2245, 0, 2245, 2245, 1586, 0, 782, 780, 794, + 769, 2247, 0, 2247, 2247, 1588, 0, 782, 780, 794, 795, 42, 798, 801, 802, 803, 804, 807, 0, 818, - 821, 1612, 1613, 0, 823, 828, 845, 846, 0, 47, - 1134, 0, 1006, 0, 1012, -2, 1023, 1040, 1041, 1042, + 821, 1614, 1615, 0, 823, 828, 845, 846, 0, 47, + 1136, 0, 1006, 0, 1012, -2, 1023, 1040, 1041, 1042, 1043, 1044, 1046, 1047, 1048, 0, 0, 0, 0, 1053, - 1054, 0, 0, 0, 0, 0, 1115, 0, 0, 0, - 0, 1975, 1452, 0, 0, 1414, 1414, 1150, 1414, 1414, - 1416, 1416, 1416, 1828, 1967, 1976, 2152, 1789, 1795, 1796, - 1797, 2098, 2099, 2100, 2101, 2189, 2190, 2194, 1891, 1784, - 2165, 2166, 0, 2241, 1928, 1936, 1937, 1961, 2062, 2175, - 1807, 1956, 2026, 1888, 1910, 1911, 2044, 2045, 1932, 1933, - 1914, 2104, 2106, 2122, 2123, 2108, 2110, 2119, 2125, 2130, - 2109, 2121, 2126, 2139, 2143, 2146, 2147, 2148, 2116, 2114, - 2127, 2131, 2133, 2135, 2141, 2144, 2117, 2115, 2128, 2132, - 2134, 2136, 2142, 2145, 2103, 2107, 2111, 2120, 2138, 2118, - 2137, 2112, 2124, 2129, 2140, 2113, 2105, 1926, 1929, 1917, - 1918, 1920, 1922, 1927, 1934, 1940, 1919, 1939, 1938, 0, - 1915, 1916, 1921, 1931, 1935, 1923, 1924, 1925, 1930, 1941, - 1982, 1981, 1980, 2025, 1952, 2024, 0, 0, 0, 0, - 0, 1779, 1833, 1834, 2149, 1336, 1337, 1338, 1339, 0, - 0, 0, 0, 0, 0, 0, 293, 294, 1465, 1466, - 46, 1133, 1582, 1416, 1416, 1416, 1416, 1416, 1416, 1075, - 1076, 1077, 1078, 1079, 1103, 1104, 1110, 1111, 2039, 2040, - 2041, 2042, 1871, 2184, 1880, 1881, 2021, 2022, 1893, 1894, - 2215, 2216, -2, -2, -2, 234, 235, 236, 237, 238, - 239, 240, 241, 0, 1832, 2163, 2164, 230, 0, 0, - 298, 295, 296, 297, 1117, 1118, 251, 252, 253, 254, + 1054, 0, 0, 0, 0, 0, 1117, 0, 0, 0, + 0, 1977, 1454, 0, 0, 1416, 1416, 1152, 1416, 1416, + 1418, 1418, 1418, 1830, 1969, 1978, 2154, 1791, 1797, 1798, + 1799, 2100, 2101, 2102, 2103, 2191, 2192, 2196, 1893, 1786, + 2167, 2168, 0, 2243, 1930, 1938, 1939, 1963, 2064, 2177, + 1809, 1958, 2028, 1890, 1912, 1913, 2046, 2047, 1934, 1935, + 1916, 2106, 2108, 2124, 2125, 2110, 2112, 2121, 2127, 2132, + 2111, 2123, 2128, 2141, 2145, 2148, 2149, 2150, 2118, 2116, + 2129, 2133, 2135, 2137, 2143, 2146, 2119, 2117, 2130, 2134, + 2136, 2138, 2144, 2147, 2105, 2109, 2113, 2122, 2140, 2120, + 2139, 2114, 2126, 2131, 2142, 2115, 2107, 1928, 1931, 1919, + 1920, 1922, 1924, 1929, 1936, 1942, 1921, 1941, 1940, 0, + 1917, 1918, 1923, 1933, 1937, 1925, 1926, 1927, 1932, 1943, + 1984, 1983, 1982, 2027, 1954, 2026, 0, 0, 0, 0, + 0, 1781, 1835, 1836, 2151, 1338, 1339, 1340, 1341, 0, + 0, 0, 0, 0, 0, 0, 293, 294, 1467, 1468, + 46, 1135, 1584, 1418, 1418, 1418, 1418, 1418, 1418, 1075, + 1076, 1077, 1078, 1079, 1105, 1106, 1112, 1113, 2041, 2042, + 2043, 2044, 1873, 2186, 1882, 1883, 2023, 2024, 1895, 1896, + 2217, 2218, -2, -2, -2, 234, 235, 236, 237, 238, + 239, 240, 241, 0, 1834, 2165, 2166, 230, 0, 0, + 298, 295, 296, 297, 1119, 1120, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 300, 301, - 2244, 0, 855, 0, 0, 0, 0, 0, 0, 1624, - 1625, 1488, 0, 1480, 1479, 65, 0, 882, -2, 0, + 2246, 0, 855, 0, 0, 0, 0, 0, 0, 1626, + 1627, 1490, 0, 1482, 1481, 65, 0, 882, -2, 0, 0, 0, 0, 49, 0, 54, 939, 885, 79, 78, - 1528, 1531, 0, 0, 0, 61, 1489, 69, 71, 1490, - 0, 887, 888, 0, 915, 919, 0, 0, 0, 1602, - 1601, 1601, 104, 0, 0, 105, 125, 126, 127, 0, - 0, 111, 112, 1588, 1589, 45, 0, 0, 179, 180, - 0, 43, 430, 0, 175, 0, 423, 362, 0, 1506, - 0, 0, 0, 0, 0, 882, 0, 1596, 156, 157, + 1530, 1533, 0, 0, 0, 61, 1491, 69, 71, 1492, + 0, 887, 888, 0, 915, 919, 0, 0, 0, 1604, + 1603, 1603, 104, 0, 0, 105, 125, 126, 127, 0, + 0, 111, 112, 1590, 1591, 45, 0, 0, 179, 180, + 0, 43, 430, 0, 175, 0, 423, 362, 0, 1508, + 0, 0, 0, 0, 0, 882, 0, 1598, 156, 157, 164, 165, 166, 403, 403, 403, 577, 0, 0, 167, 167, 535, 536, 537, 0, 0, -2, 428, 0, 515, 0, 0, 417, 417, 421, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 554, 0, 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 670, 0, 404, 0, 575, 576, 466, 0, 0, 0, 0, 0, 0, - 0, 0, 1604, 1605, 0, 552, 553, 0, 0, 0, + 0, 0, 1606, 1607, 0, 552, 553, 0, 0, 0, 403, 403, 0, 0, 0, 0, 403, 403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 155, 1519, 0, 0, - 0, -2, 0, 714, 0, 0, 0, 1597, 1597, 0, + 0, 0, 0, 0, 0, 0, 155, 1521, 0, 0, + 0, -2, 0, 714, 0, 0, 0, 1599, 1599, 0, 721, 0, 0, 0, 726, 0, 0, 727, 0, 785, 785, 783, 784, 729, 730, 731, 732, 788, 0, 0, 412, 413, 414, 785, 788, 0, 788, 788, 788, 788, 785, 785, 785, 788, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2245, 791, 788, 0, 760, 0, 761, - 762, 763, 764, 767, 768, 770, 2246, 2247, 1614, 1615, - 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, - 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, - 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, - 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, - 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, - 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, - 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, - 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, - 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, - 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, - 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, - 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, - 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, - 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, - 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, - 2245, 2245, 774, 778, 1587, 800, 806, 808, 809, 0, - 0, 819, 822, 839, 51, 1879, 827, 51, 829, 830, + 0, 0, 0, 2247, 791, 788, 0, 760, 0, 761, + 762, 763, 764, 767, 768, 770, 2248, 2249, 1616, 1617, + 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, + 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, + 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, + 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, + 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, + 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, + 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, + 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, + 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, + 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, + 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, + 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, + 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, + 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, + 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, + 2247, 2247, 774, 778, 1589, 800, 806, 808, 809, 0, + 0, 819, 822, 839, 51, 1881, 827, 51, 829, 830, 831, 857, 858, 863, 0, 0, 0, 0, 869, 870, 871, 0, 0, 874, 875, 876, 0, 0, 0, 0, - 0, 1004, 0, 0, 1123, 1124, 1125, 1126, 1127, 1128, - 1129, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1004, 0, 0, 1125, 1126, 1127, 1128, 1129, 1130, + 1131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1024, 1025, 0, 0, 0, 1049, 1050, 1051, 1052, 1055, 0, - 1066, 0, 1068, 1461, -2, 0, 0, 0, 1060, 1061, - 0, 0, 0, 1607, 1607, 0, 0, 0, 1453, 0, - 0, 1148, 0, 1149, 1151, 1152, 1153, 0, 1154, 1155, + 1066, 0, 1068, 1463, -2, 0, 0, 0, 1060, 1061, + 0, 0, 0, 1609, 1609, 0, 0, 0, 1455, 0, + 0, 1150, 0, 1151, 1153, 1154, 1155, 0, 1156, 1157, 892, 892, 892, 892, 892, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 892, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1607, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9417,26 +9447,26 @@ var yyDef = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1607, 0, 0, 1607, 1607, 0, 0, 222, + 0, 0, 1609, 0, 0, 1609, 1609, 0, 0, 222, 223, 224, 225, 226, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, 242, 243, 244, 245, 246, 247, 302, 248, 249, 250, - 1133, 0, 0, 0, 48, 847, 848, 0, 965, 1607, - 0, 0, 898, 0, 1622, 59, 68, 70, 1488, 63, - 1488, 0, 902, 0, 0, -2, -2, 903, 904, 908, - 909, 910, 911, 912, 56, 2243, 57, 0, 76, 0, - 50, 0, 0, 1529, 0, 1532, 0, 0, 0, 376, - 1536, 0, 0, 1481, 1482, 1485, 0, 916, 1973, 920, + 1135, 0, 0, 0, 48, 847, 848, 0, 965, 1609, + 0, 0, 898, 0, 1624, 59, 68, 70, 1490, 63, + 1490, 0, 902, 0, 0, -2, -2, 903, 904, 908, + 909, 910, 911, 912, 56, 2245, 57, 0, 76, 0, + 50, 0, 0, 1531, 0, 1534, 0, 0, 0, 376, + 1538, 0, 0, 1483, 1484, 1487, 0, 916, 1975, 920, 0, 922, 923, 0, 0, 102, 0, 981, 0, 0, - 0, 113, 0, 115, 116, 0, 0, 0, 387, 1590, - 1591, 1592, -2, 410, 0, 387, 371, 310, 311, 312, + 0, 113, 0, 115, 116, 0, 0, 0, 387, 1592, + 1593, 1594, -2, 410, 0, 387, 371, 310, 311, 312, 362, 314, 362, 362, 362, 362, 376, 376, 376, 376, 345, 346, 347, 348, 349, 0, 0, 331, 362, 362, 362, 362, 352, 353, 354, 355, 356, 357, 358, 359, 315, 316, 317, 318, 319, 320, 321, 322, 323, 364, 364, 364, 364, 364, 368, 368, 0, 44, 0, 391, - 0, 1485, 0, 0, 1519, 1599, 1609, 0, 0, 0, - 1599, 134, 0, 0, 0, 578, 620, 529, 566, 579, + 0, 1487, 0, 0, 1521, 1601, 1611, 0, 0, 0, + 1601, 134, 0, 0, 0, 578, 620, 529, 566, 579, 0, 532, 533, -2, 0, 0, 514, 0, 516, 0, 411, 0, -2, 0, 421, 0, 417, 421, 418, 421, 409, 422, 556, 557, 558, 0, 560, 561, 650, 951, @@ -9447,32 +9477,32 @@ var yyDef = [...]int{ 0, 472, 473, 474, 475, 0, 0, 478, 479, 480, 968, 969, 481, 482, 507, 508, 509, 483, 484, 485, 486, 487, 488, 489, 501, 502, 503, 504, 505, 506, - 490, 491, 492, 493, 494, 495, 498, 0, 149, 1510, + 490, 491, 492, 493, 494, 495, 498, 0, 149, 1512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1597, 0, 0, 0, - 0, 901, 983, 1620, 1621, 723, 0, 0, 789, 790, + 0, 0, 0, 0, 0, 0, 1599, 0, 0, 0, + 0, 901, 983, 1622, 1623, 723, 0, 0, 789, 790, 0, 415, 416, 788, 788, 733, 775, 0, 788, 737, 776, 738, 740, 739, 741, 754, 755, 788, 744, 786, 787, 745, 746, 747, 748, 749, 750, 751, 771, 756, 757, 758, 792, 0, 796, 797, 772, 773, 0, 0, 812, 813, 0, 820, 842, 840, 841, 843, 835, 836, 837, 838, 0, 844, 0, 0, 860, 98, 865, 866, - 867, 868, 880, 873, 1135, 1001, 1002, 1003, 0, 1005, - 1009, 0, 1119, 1121, 1011, 1007, 1013, 1130, 1131, 1132, + 867, 868, 880, 873, 1137, 1001, 1002, 1003, 0, 1005, + 1009, 0, 1121, 1123, 1011, 1007, 1013, 1132, 1133, 1134, 0, 0, 0, 0, 0, 1017, 1021, 1026, 1027, 1028, 1029, 1030, 0, 1031, 0, 1034, 1035, 1036, 1037, 1038, - 1039, 1045, 1429, 1430, 1431, 1064, 303, 304, 0, 1065, - 0, 0, 0, 0, 0, 0, 0, 0, 1376, 1377, - 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, - 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1134, 0, - 1608, 0, 0, 0, 1459, 1456, 0, 0, 0, 1415, - 1417, 0, 0, 0, 893, 894, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1396, 1397, 1398, 1399, 1400, 1401, 1402, - 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, - 1413, 0, 0, 1432, 0, 0, 0, 0, 0, 1452, + 1039, 1045, 1431, 1432, 1433, 1064, 303, 304, 0, 1065, + 0, 0, 0, 0, 0, 0, 0, 0, 1378, 1379, + 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, + 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1136, 0, + 1610, 0, 0, 0, 1461, 1458, 0, 0, 0, 1417, + 1419, 0, 0, 0, 893, 894, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1398, 1399, 1400, 1401, 1402, 1403, 1404, + 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, + 1415, 0, 0, 1434, 0, 0, 0, 0, 0, 1454, 0, 1070, 1071, 1072, 0, 0, 0, 0, 0, 0, - 1194, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9480,15 +9510,15 @@ var yyDef = [...]int{ 0, 0, 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1340, 1341, 1342, 1343, - 41, 0, 0, 0, 0, 0, 0, 0, 1463, 0, + 0, 0, 0, 0, 0, 0, 1342, 1343, 1344, 1345, + 41, 0, 0, 0, 0, 0, 0, 0, 1465, 0, -2, -2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1365, 0, 0, 0, 0, - 0, 0, 1580, 0, 0, 850, 851, 853, 0, 985, + 0, 0, 0, 0, 0, 1367, 0, 0, 0, 0, + 0, 0, 1582, 0, 0, 850, 851, 853, 0, 985, 0, 966, 0, 0, 856, 0, 897, 0, 900, 62, 64, 906, 907, 0, 924, 913, 905, 58, 53, 0, - 0, 943, 1530, 1533, 1534, 376, 1556, 0, 385, 385, - 382, 1491, 1492, 0, 1484, 1486, 1487, 81, 921, 917, + 0, 943, 1532, 1535, 1536, 376, 1558, 0, 385, 385, + 382, 1493, 1494, 0, 1486, 1488, 1489, 81, 921, 917, 0, 999, 0, 0, 980, 0, 927, 929, 930, 931, 963, 0, 934, 935, 0, 0, 0, 0, 0, 100, 982, 106, 0, 114, 0, 0, 119, 120, 107, 108, @@ -9496,9 +9526,9 @@ var yyDef = [...]int{ 176, -2, 374, 372, 373, 313, 376, 376, 339, 340, 341, 342, 343, 344, 0, 0, 332, 333, 334, 335, 324, 0, 325, 326, 327, 366, 0, 328, 329, 0, - 330, 429, 0, 1493, 392, 393, 395, 403, 0, 398, - 399, 0, 403, 403, 0, 424, 425, 0, 1485, 1510, - 0, 0, 0, 1610, 1609, 1609, 1609, 0, 169, 170, + 330, 429, 0, 1495, 392, 393, 395, 403, 0, 398, + 399, 0, 403, 403, 0, 424, 425, 0, 1487, 1512, + 0, 0, 0, 1612, 1611, 1611, 1611, 0, 169, 170, 171, 172, 173, 174, 645, 0, 0, 621, 643, 644, 167, 0, 0, 177, 518, 517, 0, 677, 0, 427, 0, 0, 421, 421, 406, 407, 559, 0, 0, 652, @@ -9506,169 +9536,170 @@ var yyDef = [...]int{ 547, 516, 518, 0, 0, 387, 470, 471, 476, 477, 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 594, 595, 596, 599, 601, 520, 605, - 607, 598, 600, 602, 520, 606, 608, 1507, 1508, 1509, - 0, 0, 715, 0, 0, 453, 96, 1598, 720, 724, + 607, 598, 600, 602, 520, 606, 608, 1509, 1510, 1511, + 0, 0, 715, 0, 0, 453, 96, 1600, 720, 724, 725, 785, 743, 777, 785, 735, 742, 765, 810, 811, 816, 824, 825, 826, 864, 0, 0, 0, 0, 872, - 0, 0, 1010, 1120, 1122, 1014, 0, 1018, 1022, 0, - 0, 0, 0, 0, 1069, 1067, 1463, 0, 0, 0, - 1116, 0, 0, 1138, 1139, 0, 0, 0, 0, 1457, - 0, 0, 1146, 0, 1418, 1156, 0, 0, 0, 0, - 0, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, - 1171, 1479, 1173, 0, 0, 0, 0, 0, 1178, 1179, - 1180, 1181, 1182, 0, 1184, 0, 1185, 0, 0, 0, - 0, 1192, 1193, 1195, 0, 0, 1198, 1199, 0, 1201, - 0, 1203, 1204, 1205, 1206, 1207, 1208, 0, 1210, 0, - 1212, 1213, 1214, 0, 1216, 0, 1218, 1219, 0, 1221, - 0, 1223, 0, 1226, 0, 1229, 0, 1232, 0, 1235, - 0, 1238, 0, 1241, 0, 1244, 0, 1247, 0, 1250, - 0, 1253, 0, 1256, 0, 1259, 0, 1262, 0, 1265, - 0, 1268, 0, 1271, 1272, 1273, 0, 1275, 0, 1277, - 0, 1280, 1281, 0, 1283, 0, 1286, 0, 1289, 0, - 0, 1290, 0, 0, 0, 1294, 0, 0, 0, 0, - 1303, 1304, 1305, 1306, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1317, 1318, 1319, 1320, 1321, 1322, - 0, 1324, 0, 1098, 0, 0, 1098, 0, 0, 0, - 0, 0, 1136, 1607, 0, 1419, 1420, 1421, 1422, 1423, - 0, 0, 0, 0, 0, 0, 1363, 1364, 1366, 0, - 0, 1369, 0, 1371, 0, 1581, 849, 852, 854, 937, - 986, 987, 0, 0, 0, 0, 967, 1606, 895, 896, - 899, 945, 0, 1467, 0, 0, 924, 999, 0, 925, - 0, 55, 940, 0, 1538, 1537, 1550, 1563, 385, 385, - 379, 380, 386, 381, 383, 384, 1483, 0, 1488, 0, - 1574, 0, 0, 1566, 0, 0, 0, 0, 0, 0, + 0, 0, 1010, 1122, 1124, 1014, 0, 1018, 1022, 0, + 0, 0, 0, 0, 1069, 1067, 1465, 0, 0, 0, + 1118, 0, 0, 1140, 1141, 0, 0, 0, 0, 1459, + 0, 0, 1148, 0, 1420, 1099, 0, 0, 0, 0, + 0, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, + 1099, 1481, 1175, 0, 0, 0, 0, 0, 1180, 1181, + 1182, 1183, 1184, 0, 1186, 0, 1187, 0, 0, 0, + 0, 1194, 1195, 1197, 0, 0, 1200, 1201, 0, 1203, + 0, 1205, 1206, 1207, 1208, 1209, 1210, 0, 1212, 0, + 1214, 1215, 1216, 0, 1218, 0, 1220, 1221, 0, 1223, + 0, 1225, 0, 1228, 0, 1231, 0, 1234, 0, 1237, + 0, 1240, 0, 1243, 0, 1246, 0, 1249, 0, 1252, + 0, 1255, 0, 1258, 0, 1261, 0, 1264, 0, 1267, + 0, 1270, 0, 1273, 1274, 1275, 0, 1277, 0, 1279, + 0, 1282, 1283, 0, 1285, 0, 1288, 0, 1291, 0, + 0, 1292, 0, 0, 0, 1296, 0, 0, 0, 0, + 1305, 1306, 1307, 1308, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1319, 1320, 1321, 1322, 1323, 1324, + 0, 1326, 0, 1100, 0, 0, 1100, 0, 0, 0, + 0, 0, 1138, 1609, 0, 1421, 1422, 1423, 1424, 1425, + 0, 0, 0, 0, 0, 0, 1365, 1366, 1368, 0, + 0, 1371, 0, 1373, 0, 1583, 849, 852, 854, 937, + 986, 987, 0, 0, 0, 0, 967, 1608, 895, 896, + 899, 945, 0, 1469, 0, 0, 924, 999, 0, 925, + 0, 55, 940, 0, 1540, 1539, 1552, 1565, 385, 385, + 379, 380, 386, 381, 383, 384, 1485, 0, 1490, 0, + 1576, 0, 0, 1568, 0, 0, 0, 0, 0, 0, 0, 0, 970, 0, 0, 973, 0, 0, 0, 0, 964, 935, 0, 936, 0, -2, 0, 0, 94, 95, 0, 0, 0, 117, 118, 0, 0, 124, 388, 389, 158, 167, 464, 182, 437, 0, 0, 309, 375, 336, 337, 338, 0, 360, 0, 0, 0, 0, 458, 130, - 1497, 1496, 403, 403, 394, 0, 397, 0, 0, 0, - 1611, 363, 426, 0, 148, 0, 0, 0, 0, 0, + 1499, 1498, 403, 403, 394, 0, 397, 0, 0, 0, + 1613, 363, 426, 0, 148, 0, 0, 0, 0, 0, 154, 615, 0, 0, 622, 0, 0, 0, 527, 0, 538, 539, 0, 649, -2, 711, 391, 0, 405, 408, 952, 0, 0, 540, 0, 543, 544, 457, 518, 549, - 550, 564, 551, 499, 500, 497, 0, 0, 1520, 1521, - 1526, 1524, 1525, 135, 585, 587, 591, 586, 590, 0, - 0, 0, 522, 0, 522, 583, 0, 453, 1493, 0, + 550, 564, 551, 499, 500, 497, 0, 0, 1522, 1523, + 1528, 1526, 1527, 135, 585, 587, 591, 586, 590, 0, + 0, 0, 522, 0, 522, 583, 0, 453, 1495, 0, 719, 454, 455, 788, 788, 859, 99, 0, 862, 0, - 0, 0, 0, 1015, 1019, 1032, 1033, 1424, 1450, 362, - 362, 1437, 362, 368, 1440, 362, 1442, 362, 1445, 362, - 1448, 1449, 0, 0, 1062, 0, 0, 0, 0, 1145, - 1460, 0, 0, 1157, 1158, 1159, 1160, 1161, 1454, 0, - 0, 0, 1177, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 146, 147, 0, 0, 0, 0, 0, - 0, 1374, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1093, 1097, 0, 1099, 1100, 0, 0, - 1326, 0, 0, 1344, 0, 0, 0, 0, 0, 0, - 0, 1464, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 988, 995, 0, 995, 0, 995, 0, 0, - 0, 1593, 1594, 1468, 1469, 999, 1470, 914, 926, 944, - 1556, 0, 1549, 0, -2, 1558, 0, 0, 0, 1564, - 377, 378, 918, 82, 1000, 85, 0, 1574, 1583, 0, - 1565, 1576, 1578, 0, 0, 0, 1570, 0, 999, 928, - 959, 961, 0, 956, 971, 972, 974, 0, 976, 0, - 978, 979, 939, 933, 0, 102, 0, 999, 999, 101, - 0, 984, 121, 122, 123, 463, 186, 191, 0, 0, - 0, 196, 0, 198, 0, 0, 0, 203, 204, 403, - 403, 438, 0, 306, 308, 0, 0, 189, 376, 0, - 376, 0, 367, 369, 0, 439, 459, 1494, 1495, 0, - 0, 396, 400, 401, 402, 0, 1600, 150, 0, 0, - 0, 618, 0, 646, 0, 0, 0, 0, 0, 0, - 178, 519, 678, 679, 680, 681, 682, 683, 684, 685, - 686, 0, 403, 0, 0, 0, 403, 403, 403, 0, - 703, 390, 0, 0, 674, 671, 541, 0, 220, 221, - 228, 229, 231, 0, 0, 0, 0, 0, 548, 939, - 1511, 1512, 1513, 0, 1523, 1527, 138, 0, 0, 0, - 0, 593, 597, 603, 0, 521, 604, 716, 717, 718, - 97, 728, 734, 861, 881, 1008, 1016, 1020, 0, 0, - 0, 0, 1451, 1435, 376, 1438, 1439, 1441, 1443, 1444, - 1446, 1447, 1058, 1059, 1063, 0, 1142, 0, 1144, 0, - 1458, 0, 1488, 0, 0, 0, 1176, 0, 0, 0, - 1187, 1186, 1188, 0, 1190, 1191, 1196, 1197, 1200, 1202, - 1209, 1211, 1215, 1217, 1220, 1222, 1224, 0, 1227, 0, - 1230, 0, 1233, 0, 1236, 0, 1239, 0, 1242, 0, - 1245, 0, 1248, 0, 1251, 0, 1254, 0, 1257, 0, - 1260, 0, 1263, 0, 1266, 0, 1269, 0, 1274, 1276, - 0, 1279, 1282, 1284, 0, 1287, 0, 1291, 0, 1293, - 1295, 1296, 0, 0, 0, 1307, 1308, 1309, 1310, 1311, - 1312, 1313, 1314, 1315, 1316, 1323, 0, 1091, 1094, 1325, - 1101, 1102, 1107, 1328, 0, 0, 0, 1331, 0, 0, - 0, 1335, 1137, 1346, 0, 1351, 0, 0, 1357, 0, - 1361, 0, 1367, 1368, 1370, 1372, 0, 0, 0, 0, - 0, 0, 0, 965, 946, 66, 1470, 1472, 0, 1543, - 1541, 1541, 1551, 1552, 0, 0, 1559, 0, 0, 0, - 0, 86, 0, 0, 0, 1579, 0, 0, 0, 0, - 103, 1479, 953, 960, 0, 0, 954, 0, 955, 975, - 977, 932, 0, 999, 999, 92, 93, 0, 192, 0, - 194, 0, 197, 199, 200, 201, 207, 208, 209, 202, - 0, 0, 305, 307, 0, 0, 350, 361, 351, 0, - 0, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 939, - 151, 152, 153, 610, 0, 620, 0, 941, 0, 613, - 0, 530, 0, 0, 0, 403, 403, 403, 0, 0, - 0, 0, 688, 0, 0, 651, 0, 659, 0, 0, - 0, 232, 233, 0, 1522, 584, 0, 136, 137, 0, - 0, 589, 523, 524, 1056, 0, 0, 0, 1057, 1436, - 0, 0, 0, 0, 0, 1455, 0, 0, 0, 0, - 1183, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1299, 0, 0, 0, 640, 641, 0, - 1375, 1096, 1479, 0, 1098, 1108, 1109, 0, 1098, 1345, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 996, 0, 0, 0, 947, 948, 0, 0, 0, - 985, 1472, 1477, 0, 0, 1546, 0, 1539, 1542, 1540, - 1553, 0, 0, 1560, 0, 1562, 0, 1584, 1585, 1577, - 0, 1569, 1572, 1568, 1571, 1488, 957, 0, 962, 0, - 1479, 91, 0, 195, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 205, 206, 0, 0, 365, 370, 0, - 0, 0, 611, 0, 942, 623, 614, 0, 701, 0, - 705, 0, 0, 0, 708, 709, 710, 687, 0, 691, - 431, 675, 672, 673, 542, 0, 139, 140, 0, 0, - 0, 1425, 0, 1428, 1140, 1143, 1141, 0, 1172, 1174, - 1175, 1433, 1434, 1189, 1225, 1228, 1231, 1234, 1237, 1240, - 1243, 1246, 1249, 1252, 1255, 1258, 1261, 1264, 1267, 1270, - 1278, 1285, 1288, 1292, 1297, 0, 1300, 0, 0, 1301, - 0, 642, 1087, 0, 0, 1105, 1106, 0, 1330, 1332, - 1333, 1334, 1347, 0, 1352, 1353, 0, 1358, 0, 1362, - 1373, 0, 990, 997, 998, 0, 993, 0, 994, 0, - 938, 1477, 84, 1478, 1475, 0, 1473, 1471, 1535, 0, - 1544, 1545, 1554, 1555, 1561, 0, 1567, 0, 89, 0, - 0, 0, 1488, 193, 0, 212, 0, 619, 0, 622, - 612, 699, 700, 0, 712, 704, 706, 707, 689, -2, - 1514, 0, 0, 0, 592, 1426, 0, 0, 1302, 0, - 638, 639, 1095, 1088, 0, 1073, 1074, 1092, 1327, 1329, - 0, 0, 0, 989, 949, 950, 991, 992, 83, 0, - 1474, 1113, 0, 1547, 1548, 1575, 1573, 958, 965, 0, - 90, 444, 437, 1514, 0, 0, 0, 692, 693, 694, - 695, 696, 697, 698, 581, 1516, 141, 142, 0, 511, - 512, 513, 135, 0, 1147, 1298, 1089, 0, 0, 0, - 0, 0, 1348, 0, 1354, 0, 1359, 0, 1476, 0, - 0, 624, 0, 626, 0, -2, 432, 445, 0, 187, - 213, 214, 0, 0, 217, 218, 219, 210, 211, 131, - 0, 0, 713, 0, 1517, 1518, 0, 138, 0, 0, - 1080, 1081, 1082, 1083, 1085, 0, 0, 0, 0, 1114, - 1093, 625, 0, 0, 387, 0, 635, 433, 434, 0, - 440, 441, 442, 443, 215, 216, 647, 0, 0, 510, - 588, 1427, 0, 0, 1349, 0, 1355, 0, 1360, 0, - 627, 628, 636, 0, 435, 0, 436, 0, 0, 0, - 616, 0, 647, 1515, 1090, 1084, 1086, 0, 0, 1112, - 0, 637, 633, 446, 448, 449, 0, 0, 447, 648, - 617, 1350, 1356, 0, 450, 451, 452, 629, 630, 631, - 632, + 0, 0, 0, 1015, 1019, 1032, 1033, 1426, 1452, 362, + 362, 1439, 362, 368, 1442, 362, 1444, 362, 1447, 362, + 1450, 1451, 0, 0, 1062, 0, 0, 0, 0, 1147, + 1462, 0, 0, 1158, 1098, 1099, 1099, 1099, 1099, 1099, + 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, + 1456, 0, 0, 0, 1179, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 146, 147, 0, 0, 0, + 0, 0, 0, 1376, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1093, 1097, 0, 1101, 1102, + 0, 0, 1328, 0, 0, 1346, 0, 0, 0, 0, + 0, 0, 0, 1466, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 988, 995, 0, 995, 0, 995, + 0, 0, 0, 1595, 1596, 1470, 1471, 999, 1472, 914, + 926, 944, 1558, 0, 1551, 0, -2, 1560, 0, 0, + 0, 1566, 377, 378, 918, 82, 1000, 85, 0, 1576, + 1585, 0, 1567, 1578, 1580, 0, 0, 0, 1572, 0, + 999, 928, 959, 961, 0, 956, 971, 972, 974, 0, + 976, 0, 978, 979, 939, 933, 0, 102, 0, 999, + 999, 101, 0, 984, 121, 122, 123, 463, 186, 191, + 0, 0, 0, 196, 0, 198, 0, 0, 0, 203, + 204, 403, 403, 438, 0, 306, 308, 0, 0, 189, + 376, 0, 376, 0, 367, 369, 0, 439, 459, 1496, + 1497, 0, 0, 396, 400, 401, 402, 0, 1602, 150, + 0, 0, 0, 618, 0, 646, 0, 0, 0, 0, + 0, 0, 178, 519, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 0, 403, 0, 0, 0, 403, 403, + 403, 0, 703, 390, 0, 0, 674, 671, 541, 0, + 220, 221, 228, 229, 231, 0, 0, 0, 0, 0, + 548, 939, 1513, 1514, 1515, 0, 1525, 1529, 138, 0, + 0, 0, 0, 593, 597, 603, 0, 521, 604, 716, + 717, 718, 97, 728, 734, 861, 881, 1008, 1016, 1020, + 0, 0, 0, 0, 1453, 1437, 376, 1440, 1441, 1443, + 1445, 1446, 1448, 1449, 1058, 1059, 1063, 0, 1144, 0, + 1146, 0, 1460, 0, 1159, 1160, 1161, 1162, 1163, 1490, + 0, 0, 0, 1178, 0, 0, 0, 1189, 1188, 1190, + 0, 1192, 1193, 1198, 1199, 1202, 1204, 1211, 1213, 1217, + 1219, 1222, 1224, 1226, 0, 1229, 0, 1232, 0, 1235, + 0, 1238, 0, 1241, 0, 1244, 0, 1247, 0, 1250, + 0, 1253, 0, 1256, 0, 1259, 0, 1262, 0, 1265, + 0, 1268, 0, 1271, 0, 1276, 1278, 0, 1281, 1284, + 1286, 0, 1289, 0, 1293, 0, 1295, 1297, 1298, 0, + 0, 0, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, + 1317, 1318, 1325, 0, 1091, 1094, 1327, 1103, 1104, 1109, + 1330, 0, 0, 0, 1333, 0, 0, 0, 1337, 1139, + 1348, 0, 1353, 0, 0, 1359, 0, 1363, 0, 1369, + 1370, 1372, 1374, 0, 0, 0, 0, 0, 0, 0, + 965, 946, 66, 1472, 1474, 0, 1545, 1543, 1543, 1553, + 1554, 0, 0, 1561, 0, 0, 0, 0, 86, 0, + 0, 0, 1581, 0, 0, 0, 0, 103, 1481, 953, + 960, 0, 0, 954, 0, 955, 975, 977, 932, 0, + 999, 999, 92, 93, 0, 192, 0, 194, 0, 197, + 199, 200, 201, 207, 208, 209, 202, 0, 0, 305, + 307, 0, 0, 350, 361, 351, 0, 0, 1500, 1501, + 1502, 1503, 1504, 1505, 1506, 1507, 939, 151, 152, 153, + 610, 0, 620, 0, 941, 0, 613, 0, 530, 0, + 0, 0, 403, 403, 403, 0, 0, 0, 0, 688, + 0, 0, 651, 0, 659, 0, 0, 0, 232, 233, + 0, 1524, 584, 0, 136, 137, 0, 0, 589, 523, + 524, 1056, 0, 0, 0, 1057, 1438, 0, 0, 0, + 0, 0, 1457, 0, 0, 0, 0, 1185, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1301, 0, 0, 0, 640, 641, 0, 1377, 1096, 1481, + 0, 1100, 1110, 1111, 0, 1100, 1347, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 996, 0, + 0, 0, 947, 948, 0, 0, 0, 985, 1474, 1479, + 0, 0, 1548, 0, 1541, 1544, 1542, 1555, 0, 0, + 1562, 0, 1564, 0, 1586, 1587, 1579, 0, 1571, 1574, + 1570, 1573, 1490, 957, 0, 962, 0, 1481, 91, 0, + 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 205, 206, 0, 0, 365, 370, 0, 0, 0, 611, + 0, 942, 623, 614, 0, 701, 0, 705, 0, 0, + 0, 708, 709, 710, 687, 0, 691, 431, 675, 672, + 673, 542, 0, 139, 140, 0, 0, 0, 1427, 0, + 1430, 1142, 1145, 1143, 0, 1174, 1176, 1177, 1435, 1436, + 1191, 1227, 1230, 1233, 1236, 1239, 1242, 1245, 1248, 1251, + 1254, 1257, 1260, 1263, 1266, 1269, 1272, 1280, 1287, 1290, + 1294, 1299, 0, 1302, 0, 0, 1303, 0, 642, 1087, + 0, 0, 1107, 1108, 0, 1332, 1334, 1335, 1336, 1349, + 0, 1354, 1355, 0, 1360, 0, 1364, 1375, 0, 990, + 997, 998, 0, 993, 0, 994, 0, 938, 1479, 84, + 1480, 1477, 0, 1475, 1473, 1537, 0, 1546, 1547, 1556, + 1557, 1563, 0, 1569, 0, 89, 0, 0, 0, 1490, + 193, 0, 212, 0, 619, 0, 622, 612, 699, 700, + 0, 712, 704, 706, 707, 689, -2, 1516, 0, 0, + 0, 592, 1428, 0, 0, 1304, 0, 638, 639, 1095, + 1088, 0, 1073, 1074, 1092, 1329, 1331, 0, 0, 0, + 989, 949, 950, 991, 992, 83, 0, 1476, 1115, 0, + 1549, 1550, 1577, 1575, 958, 965, 0, 90, 444, 437, + 1516, 0, 0, 0, 692, 693, 694, 695, 696, 697, + 698, 581, 1518, 141, 142, 0, 511, 512, 513, 135, + 0, 1149, 1300, 1089, 0, 0, 0, 0, 0, 1350, + 0, 1356, 0, 1361, 0, 1478, 0, 0, 624, 0, + 626, 0, -2, 432, 445, 0, 187, 213, 214, 0, + 0, 217, 218, 219, 210, 211, 131, 0, 0, 713, + 0, 1519, 1520, 0, 138, 0, 0, 1080, 1081, 1082, + 1083, 1085, 0, 0, 0, 0, 1116, 1093, 625, 0, + 0, 387, 0, 635, 433, 434, 0, 440, 441, 442, + 443, 215, 216, 647, 0, 0, 510, 588, 1429, 0, + 0, 1351, 0, 1357, 0, 1362, 0, 627, 628, 636, + 0, 435, 0, 436, 0, 0, 0, 616, 0, 647, + 1517, 1090, 1084, 1086, 0, 0, 1114, 0, 637, 633, + 446, 448, 449, 0, 0, 447, 648, 617, 1352, 1358, + 0, 450, 451, 452, 629, 630, 631, 632, } var yyTok1 = [...]int{ @@ -10159,7 +10190,7 @@ yydefault: case 1: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:612 +//line sql.y:613 { stmt := yyDollar[2].statementUnion() // If the statement is empty and we have comments @@ -10173,58 +10204,58 @@ yydefault: } case 2: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:625 +//line sql.y:626 { } case 3: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:626 +//line sql.y:627 { } case 4: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:630 +//line sql.y:631 { yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL case 40: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:669 +//line sql.y:670 { setParseTree(yylex, nil) } case 41: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Variable -//line sql.y:675 +//line sql.y:676 { yyLOCAL = NewVariableExpression(yyDollar[1].str, SingleAt) } yyVAL.union = yyLOCAL case 42: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:681 +//line sql.y:682 { yyVAL.identifierCI = NewIdentifierCI(string(yyDollar[1].str)) } case 43: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:686 +//line sql.y:687 { yyVAL.identifierCI = NewIdentifierCI("") } case 44: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:690 +//line sql.y:691 { yyVAL.identifierCI = yyDollar[1].identifierCI } case 45: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Variable -//line sql.y:696 +//line sql.y:697 { yyLOCAL = NewVariableExpression(string(yyDollar[1].str), SingleAt) } @@ -10232,7 +10263,7 @@ yydefault: case 46: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Variable -//line sql.y:700 +//line sql.y:701 { yyLOCAL = NewVariableExpression(string(yyDollar[1].str), DoubleAt) } @@ -10240,7 +10271,7 @@ yydefault: case 47: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:706 +//line sql.y:707 { yyLOCAL = &OtherAdmin{} } @@ -10248,7 +10279,7 @@ yydefault: case 48: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:712 +//line sql.y:713 { yyLOCAL = &Load{} } @@ -10256,7 +10287,7 @@ yydefault: case 49: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *With -//line sql.y:718 +//line sql.y:719 { yyLOCAL = &With{CTEs: yyDollar[2].ctesUnion(), Recursive: false} } @@ -10264,7 +10295,7 @@ yydefault: case 50: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *With -//line sql.y:722 +//line sql.y:723 { yyLOCAL = &With{CTEs: yyDollar[3].ctesUnion(), Recursive: true} } @@ -10272,7 +10303,7 @@ yydefault: case 51: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *With -//line sql.y:727 +//line sql.y:728 { yyLOCAL = nil } @@ -10280,14 +10311,14 @@ yydefault: case 52: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *With -//line sql.y:731 +//line sql.y:732 { yyLOCAL = yyDollar[1].withUnion() } yyVAL.union = yyLOCAL case 53: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:737 +//line sql.y:738 { yySLICE := (*[]*CommonTableExpr)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].cteUnion()) @@ -10295,7 +10326,7 @@ yydefault: case 54: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*CommonTableExpr -//line sql.y:741 +//line sql.y:742 { yyLOCAL = []*CommonTableExpr{yyDollar[1].cteUnion()} } @@ -10303,7 +10334,7 @@ yydefault: case 55: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *CommonTableExpr -//line sql.y:747 +//line sql.y:748 { yyLOCAL = &CommonTableExpr{ID: yyDollar[1].identifierCS, Columns: yyDollar[2].columnsUnion(), Subquery: yyDollar[4].subqueryUnion()} } @@ -10311,7 +10342,7 @@ yydefault: case 56: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:753 +//line sql.y:754 { yyLOCAL = yyDollar[2].selStmtUnion() } @@ -10319,7 +10350,7 @@ yydefault: case 57: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:757 +//line sql.y:758 { yyLOCAL = yyDollar[2].selStmtUnion() } @@ -10327,7 +10358,7 @@ yydefault: case 58: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:761 +//line sql.y:762 { setLockInSelect(yyDollar[2].selStmtUnion(), yyDollar[3].lockUnion()) yyLOCAL = yyDollar[2].selStmtUnion() @@ -10336,7 +10367,7 @@ yydefault: case 59: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:784 +//line sql.y:785 { yyDollar[1].selStmtUnion().SetOrderBy(yyDollar[2].orderByUnion()) yyDollar[1].selStmtUnion().SetLimit(yyDollar[3].limitUnion()) @@ -10346,7 +10377,7 @@ yydefault: case 60: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:790 +//line sql.y:791 { yyDollar[1].selStmtUnion().SetLimit(yyDollar[2].limitUnion()) yyLOCAL = yyDollar[1].selStmtUnion() @@ -10355,7 +10386,7 @@ yydefault: case 61: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:795 +//line sql.y:796 { yyDollar[1].selStmtUnion().SetOrderBy(yyDollar[2].orderByUnion()) yyDollar[1].selStmtUnion().SetLimit(yyDollar[3].limitUnion()) @@ -10365,7 +10396,7 @@ yydefault: case 62: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:801 +//line sql.y:802 { yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion()) yyDollar[2].selStmtUnion().SetOrderBy(yyDollar[3].orderByUnion()) @@ -10376,7 +10407,7 @@ yydefault: case 63: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:808 +//line sql.y:809 { yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion()) yyDollar[2].selStmtUnion().SetLimit(yyDollar[3].limitUnion()) @@ -10386,7 +10417,7 @@ yydefault: case 64: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:814 +//line sql.y:815 { yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion()) yyDollar[2].selStmtUnion().SetOrderBy(yyDollar[3].orderByUnion()) @@ -10396,14 +10427,14 @@ yydefault: yyVAL.union = yyLOCAL case 65: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:821 +//line sql.y:822 { yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion()) } case 66: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:825 +//line sql.y:826 { yyLOCAL = NewSelect(Comments(yyDollar[2].strs), SelectExprs{&Nextval{Expr: yyDollar[5].exprUnion()}}, []string{yyDollar[3].str} /*options*/, nil, TableExprs{&AliasedTableExpr{Expr: yyDollar[7].tableName}}, nil /*where*/, nil /*groupBy*/, nil /*having*/, nil) } @@ -10411,7 +10442,7 @@ yydefault: case 67: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:831 +//line sql.y:832 { yyLOCAL = yyDollar[1].selStmtUnion() } @@ -10419,7 +10450,7 @@ yydefault: case 68: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:835 +//line sql.y:836 { yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()} } @@ -10427,7 +10458,7 @@ yydefault: case 69: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:839 +//line sql.y:840 { yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()} } @@ -10435,7 +10466,7 @@ yydefault: case 70: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:843 +//line sql.y:844 { yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()} } @@ -10443,7 +10474,7 @@ yydefault: case 71: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:847 +//line sql.y:848 { yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()} } @@ -10451,7 +10482,7 @@ yydefault: case 72: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:853 +//line sql.y:854 { yyLOCAL = yyDollar[1].selStmtUnion() } @@ -10459,7 +10490,7 @@ yydefault: case 73: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:857 +//line sql.y:858 { setLockInSelect(yyDollar[1].selStmtUnion(), yyDollar[2].lockUnion()) yyLOCAL = yyDollar[1].selStmtUnion() @@ -10468,7 +10499,7 @@ yydefault: case 74: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:862 +//line sql.y:863 { yyLOCAL = yyDollar[1].selStmtUnion() } @@ -10476,7 +10507,7 @@ yydefault: case 75: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:866 +//line sql.y:867 { yyLOCAL = yyDollar[1].selStmtUnion() } @@ -10484,7 +10515,7 @@ yydefault: case 76: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:872 +//line sql.y:873 { yyLOCAL = yyDollar[2].selStmtUnion() } @@ -10492,7 +10523,7 @@ yydefault: case 77: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:876 +//line sql.y:877 { yyDollar[1].selStmtUnion().SetInto(yyDollar[2].selectIntoUnion()) yyLOCAL = yyDollar[1].selStmtUnion() @@ -10501,7 +10532,7 @@ yydefault: case 78: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:881 +//line sql.y:882 { yyDollar[1].selStmtUnion().SetInto(yyDollar[2].selectIntoUnion()) yyDollar[1].selStmtUnion().SetLock(yyDollar[3].lockUnion()) @@ -10511,7 +10542,7 @@ yydefault: case 79: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:887 +//line sql.y:888 { yyDollar[1].selStmtUnion().SetInto(yyDollar[3].selectIntoUnion()) yyDollar[1].selStmtUnion().SetLock(yyDollar[2].lockUnion()) @@ -10521,7 +10552,7 @@ yydefault: case 80: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:893 +//line sql.y:894 { yyDollar[1].selStmtUnion().SetInto(yyDollar[2].selectIntoUnion()) yyLOCAL = yyDollar[1].selStmtUnion() @@ -10530,7 +10561,7 @@ yydefault: case 81: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:900 +//line sql.y:901 { yyLOCAL = &Stream{Comments: Comments(yyDollar[2].strs).Parsed(), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName} } @@ -10538,7 +10569,7 @@ yydefault: case 82: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:906 +//line sql.y:907 { yyLOCAL = &VStream{Comments: Comments(yyDollar[2].strs).Parsed(), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName, Where: NewWhere(WhereClause, yyDollar[6].exprUnion()), Limit: yyDollar[7].limitUnion()} } @@ -10546,7 +10577,7 @@ yydefault: case 83: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:914 +//line sql.y:915 { yyLOCAL = NewSelect(Comments(yyDollar[2].strs), yyDollar[4].selectExprsUnion() /*SelectExprs*/, yyDollar[3].strs /*options*/, yyDollar[5].selectIntoUnion() /*into*/, yyDollar[6].tableExprsUnion() /*from*/, NewWhere(WhereClause, yyDollar[7].exprUnion()), GroupBy(yyDollar[8].exprsUnion()), NewWhere(HavingClause, yyDollar[9].exprUnion()), yyDollar[10].namedWindowsUnion()) } @@ -10554,7 +10585,7 @@ yydefault: case 84: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:918 +//line sql.y:919 { yyLOCAL = NewSelect(Comments(yyDollar[2].strs), yyDollar[4].selectExprsUnion() /*SelectExprs*/, yyDollar[3].strs /*options*/, nil, yyDollar[5].tableExprsUnion() /*from*/, NewWhere(WhereClause, yyDollar[6].exprUnion()), GroupBy(yyDollar[7].exprsUnion()), NewWhere(HavingClause, yyDollar[8].exprUnion()), yyDollar[9].namedWindowsUnion()) } @@ -10562,7 +10593,7 @@ yydefault: case 85: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:924 +//line sql.y:925 { // insert_data returns a *Insert pre-filled with Columns & Values ins := yyDollar[6].insUnion() @@ -10578,7 +10609,7 @@ yydefault: case 86: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:936 +//line sql.y:937 { cols := make(Columns, 0, len(yyDollar[7].updateExprsUnion())) vals := make(ValTuple, 0, len(yyDollar[8].updateExprsUnion())) @@ -10592,7 +10623,7 @@ yydefault: case 87: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL InsertAction -//line sql.y:948 +//line sql.y:949 { yyLOCAL = InsertAct } @@ -10600,7 +10631,7 @@ yydefault: case 88: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL InsertAction -//line sql.y:952 +//line sql.y:953 { yyLOCAL = ReplaceAct } @@ -10608,7 +10639,7 @@ yydefault: case 89: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Statement -//line sql.y:958 +//line sql.y:959 { yyLOCAL = &Update{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs).Parsed(), Ignore: yyDollar[4].ignoreUnion(), TableExprs: yyDollar[5].tableExprsUnion(), Exprs: yyDollar[7].updateExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion()), OrderBy: yyDollar[9].orderByUnion(), Limit: yyDollar[10].limitUnion()} } @@ -10616,7 +10647,7 @@ yydefault: case 90: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL Statement -//line sql.y:964 +//line sql.y:965 { yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs).Parsed(), Ignore: yyDollar[4].ignoreUnion(), TableExprs: TableExprs{&AliasedTableExpr{Expr: yyDollar[6].tableName, As: yyDollar[7].identifierCS}}, Partitions: yyDollar[8].partitionsUnion(), Where: NewWhere(WhereClause, yyDollar[9].exprUnion()), OrderBy: yyDollar[10].orderByUnion(), Limit: yyDollar[11].limitUnion()} } @@ -10624,7 +10655,7 @@ yydefault: case 91: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Statement -//line sql.y:968 +//line sql.y:969 { yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs).Parsed(), Ignore: yyDollar[4].ignoreUnion(), Targets: yyDollar[6].tableNamesUnion(), TableExprs: yyDollar[8].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[9].exprUnion())} } @@ -10632,7 +10663,7 @@ yydefault: case 92: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:972 +//line sql.y:973 { yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs).Parsed(), Ignore: yyDollar[4].ignoreUnion(), Targets: yyDollar[5].tableNamesUnion(), TableExprs: yyDollar[7].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion())} } @@ -10640,32 +10671,32 @@ yydefault: case 93: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:976 +//line sql.y:977 { yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs).Parsed(), Ignore: yyDollar[4].ignoreUnion(), Targets: yyDollar[5].tableNamesUnion(), TableExprs: yyDollar[7].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion())} } yyVAL.union = yyLOCAL case 94: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:981 +//line sql.y:982 { } case 95: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:982 +//line sql.y:983 { } case 96: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableNames -//line sql.y:986 +//line sql.y:987 { yyLOCAL = TableNames{yyDollar[1].tableName} } yyVAL.union = yyLOCAL case 97: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:990 +//line sql.y:991 { yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableName) @@ -10673,14 +10704,14 @@ yydefault: case 98: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableNames -//line sql.y:996 +//line sql.y:997 { yyLOCAL = TableNames{yyDollar[1].tableName} } yyVAL.union = yyLOCAL case 99: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1000 +//line sql.y:1001 { yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableName) @@ -10688,14 +10719,14 @@ yydefault: case 100: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableNames -//line sql.y:1006 +//line sql.y:1007 { yyLOCAL = TableNames{yyDollar[1].tableName} } yyVAL.union = yyLOCAL case 101: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1010 +//line sql.y:1011 { yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableName) @@ -10703,7 +10734,7 @@ yydefault: case 102: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Partitions -//line sql.y:1015 +//line sql.y:1016 { yyLOCAL = nil } @@ -10711,7 +10742,7 @@ yydefault: case 103: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Partitions -//line sql.y:1019 +//line sql.y:1020 { yyLOCAL = yyDollar[3].partitionsUnion() } @@ -10719,7 +10750,7 @@ yydefault: case 104: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:1025 +//line sql.y:1026 { yyLOCAL = NewSetStatement(Comments(yyDollar[2].strs).Parsed(), yyDollar[3].setExprsUnion()) } @@ -10727,14 +10758,14 @@ yydefault: case 105: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SetExprs -//line sql.y:1031 +//line sql.y:1032 { yyLOCAL = SetExprs{yyDollar[1].setExprUnion()} } yyVAL.union = yyLOCAL case 106: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1035 +//line sql.y:1036 { yySLICE := (*SetExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].setExprUnion()) @@ -10742,7 +10773,7 @@ yydefault: case 107: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:1041 +//line sql.y:1042 { yyLOCAL = &SetExpr{Var: yyDollar[1].variableUnion(), Expr: NewStrLiteral("on")} } @@ -10750,7 +10781,7 @@ yydefault: case 108: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:1045 +//line sql.y:1046 { yyLOCAL = &SetExpr{Var: yyDollar[1].variableUnion(), Expr: NewStrLiteral("off")} } @@ -10758,7 +10789,7 @@ yydefault: case 109: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:1049 +//line sql.y:1050 { yyLOCAL = &SetExpr{Var: yyDollar[1].variableUnion(), Expr: yyDollar[3].exprUnion()} } @@ -10766,7 +10797,7 @@ yydefault: case 110: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:1053 +//line sql.y:1054 { yyLOCAL = &SetExpr{Var: NewSetVariable(string(yyDollar[1].str), SessionScope), Expr: yyDollar[2].exprUnion()} } @@ -10774,7 +10805,7 @@ yydefault: case 111: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Variable -//line sql.y:1059 +//line sql.y:1060 { yyLOCAL = NewSetVariable(string(yyDollar[1].str), SessionScope) } @@ -10782,7 +10813,7 @@ yydefault: case 112: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Variable -//line sql.y:1063 +//line sql.y:1064 { yyLOCAL = yyDollar[1].variableUnion() } @@ -10790,7 +10821,7 @@ yydefault: case 113: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Variable -//line sql.y:1067 +//line sql.y:1068 { yyLOCAL = NewSetVariable(string(yyDollar[2].str), yyDollar[1].scopeUnion()) } @@ -10798,7 +10829,7 @@ yydefault: case 114: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:1073 +//line sql.y:1074 { yyLOCAL = NewSetStatement(Comments(yyDollar[2].strs).Parsed(), UpdateSetExprsScope(yyDollar[5].setExprsUnion(), yyDollar[3].scopeUnion())) } @@ -10806,7 +10837,7 @@ yydefault: case 115: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:1077 +//line sql.y:1078 { yyLOCAL = NewSetStatement(Comments(yyDollar[2].strs).Parsed(), yyDollar[4].setExprsUnion()) } @@ -10814,14 +10845,14 @@ yydefault: case 116: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SetExprs -//line sql.y:1083 +//line sql.y:1084 { yyLOCAL = SetExprs{yyDollar[1].setExprUnion()} } yyVAL.union = yyLOCAL case 117: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1087 +//line sql.y:1088 { yySLICE := (*SetExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].setExprUnion()) @@ -10829,7 +10860,7 @@ yydefault: case 118: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:1093 +//line sql.y:1094 { yyLOCAL = &SetExpr{Var: NewSetVariable(TransactionIsolationStr, NextTxScope), Expr: NewStrLiteral(yyDollar[3].str)} } @@ -10837,7 +10868,7 @@ yydefault: case 119: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:1097 +//line sql.y:1098 { yyLOCAL = &SetExpr{Var: NewSetVariable(TransactionReadOnlyStr, NextTxScope), Expr: NewStrLiteral("off")} } @@ -10845,39 +10876,39 @@ yydefault: case 120: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:1101 +//line sql.y:1102 { yyLOCAL = &SetExpr{Var: NewSetVariable(TransactionReadOnlyStr, NextTxScope), Expr: NewStrLiteral("on")} } yyVAL.union = yyLOCAL case 121: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1107 +//line sql.y:1108 { yyVAL.str = RepeatableReadStr } case 122: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1111 +//line sql.y:1112 { yyVAL.str = ReadCommittedStr } case 123: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1115 +//line sql.y:1116 { yyVAL.str = ReadUncommittedStr } case 124: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1119 +//line sql.y:1120 { yyVAL.str = SerializableStr } case 125: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Scope -//line sql.y:1125 +//line sql.y:1126 { yyLOCAL = SessionScope } @@ -10885,7 +10916,7 @@ yydefault: case 126: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Scope -//line sql.y:1129 +//line sql.y:1130 { yyLOCAL = SessionScope } @@ -10893,7 +10924,7 @@ yydefault: case 127: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Scope -//line sql.y:1133 +//line sql.y:1134 { yyLOCAL = GlobalScope } @@ -10901,7 +10932,7 @@ yydefault: case 128: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:1139 +//line sql.y:1140 { yyDollar[1].createTableUnion().TableSpec = yyDollar[2].tableSpecUnion() yyDollar[1].createTableUnion().FullyParsed = true @@ -10911,7 +10942,7 @@ yydefault: case 129: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:1145 +//line sql.y:1146 { // Create table [name] like [name] yyDollar[1].createTableUnion().OptLike = yyDollar[2].optLikeUnion() @@ -10922,7 +10953,7 @@ yydefault: case 130: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:1152 +//line sql.y:1153 { indexDef := yyDollar[1].alterTableUnion().AlterOptions[0].(*AddIndexDefinition).IndexDefinition indexDef.Columns = yyDollar[3].indexColumnsUnion() @@ -10935,7 +10966,7 @@ yydefault: case 131: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Statement -//line sql.y:1161 +//line sql.y:1162 { yyLOCAL = &CreateView{ViewName: yyDollar[8].tableName, Comments: Comments(yyDollar[2].strs).Parsed(), IsReplace: yyDollar[3].booleanUnion(), Algorithm: yyDollar[4].str, Definer: yyDollar[5].definerUnion(), Security: yyDollar[6].str, Columns: yyDollar[9].columnsUnion(), Select: yyDollar[11].selStmtUnion(), CheckOption: yyDollar[12].str} } @@ -10943,7 +10974,7 @@ yydefault: case 132: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:1165 +//line sql.y:1166 { yyDollar[1].createDatabaseUnion().FullyParsed = true yyDollar[1].createDatabaseUnion().CreateOptions = yyDollar[2].databaseOptionsUnion() @@ -10953,7 +10984,7 @@ yydefault: case 133: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1172 +//line sql.y:1173 { yyLOCAL = false } @@ -10961,33 +10992,33 @@ yydefault: case 134: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:1176 +//line sql.y:1177 { yyLOCAL = true } yyVAL.union = yyLOCAL case 135: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1181 +//line sql.y:1182 { yyVAL.identifierCI = NewIdentifierCI("") } case 136: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1185 +//line sql.y:1186 { yyVAL.identifierCI = yyDollar[2].identifierCI } case 137: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1191 +//line sql.y:1192 { yyVAL.identifierCI = yyDollar[1].identifierCI } case 138: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:1196 +//line sql.y:1197 { var v []VindexParam yyLOCAL = v @@ -10996,7 +11027,7 @@ yydefault: case 139: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:1201 +//line sql.y:1202 { yyLOCAL = yyDollar[2].vindexParamsUnion() } @@ -11004,7 +11035,7 @@ yydefault: case 140: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:1207 +//line sql.y:1208 { yyLOCAL = make([]VindexParam, 0, 4) yyLOCAL = append(yyLOCAL, yyDollar[1].vindexParam) @@ -11012,21 +11043,21 @@ yydefault: yyVAL.union = yyLOCAL case 141: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1212 +//line sql.y:1213 { yySLICE := (*[]VindexParam)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].vindexParam) } case 142: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1218 +//line sql.y:1219 { yyVAL.vindexParam = VindexParam{Key: yyDollar[1].identifierCI, Val: yyDollar[3].str} } case 143: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*JSONObjectParam -//line sql.y:1223 +//line sql.y:1224 { yyLOCAL = nil } @@ -11034,7 +11065,7 @@ yydefault: case 144: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*JSONObjectParam -//line sql.y:1227 +//line sql.y:1228 { yyLOCAL = yyDollar[1].jsonObjectParamsUnion() } @@ -11042,28 +11073,28 @@ yydefault: case 145: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*JSONObjectParam -//line sql.y:1233 +//line sql.y:1234 { yyLOCAL = []*JSONObjectParam{yyDollar[1].jsonObjectParam} } yyVAL.union = yyLOCAL case 146: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1237 +//line sql.y:1238 { yySLICE := (*[]*JSONObjectParam)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].jsonObjectParam) } case 147: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1243 +//line sql.y:1244 { yyVAL.jsonObjectParam = &JSONObjectParam{Key: yyDollar[1].exprUnion(), Value: yyDollar[3].exprUnion()} } case 148: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *CreateTable -//line sql.y:1249 +//line sql.y:1250 { yyLOCAL = &CreateTable{Comments: Comments(yyDollar[2].strs).Parsed(), Table: yyDollar[6].tableName, IfNotExists: yyDollar[5].booleanUnion(), Temp: yyDollar[3].booleanUnion()} setDDL(yylex, yyLOCAL) @@ -11072,7 +11103,7 @@ yydefault: case 149: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:1256 +//line sql.y:1257 { yyLOCAL = &AlterTable{Comments: Comments(yyDollar[2].strs).Parsed(), Table: yyDollar[4].tableName} setDDL(yylex, yyLOCAL) @@ -11081,7 +11112,7 @@ yydefault: case 150: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:1263 +//line sql.y:1264 { yyLOCAL = &AlterTable{Table: yyDollar[7].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[4].identifierCI}, Options: yyDollar[5].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) @@ -11090,7 +11121,7 @@ yydefault: case 151: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:1268 +//line sql.y:1269 { yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].identifierCI, Type: IndexTypeFullText}, Options: yyDollar[6].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) @@ -11099,7 +11130,7 @@ yydefault: case 152: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:1273 +//line sql.y:1274 { yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].identifierCI, Type: IndexTypeSpatial}, Options: yyDollar[6].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) @@ -11108,7 +11139,7 @@ yydefault: case 153: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:1278 +//line sql.y:1279 { yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].identifierCI, Type: IndexTypeUnique}, Options: yyDollar[6].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) @@ -11117,7 +11148,7 @@ yydefault: case 154: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *CreateDatabase -//line sql.y:1285 +//line sql.y:1286 { yyLOCAL = &CreateDatabase{Comments: Comments(yyDollar[4].strs).Parsed(), DBName: yyDollar[6].identifierCS, IfNotExists: yyDollar[5].booleanUnion()} setDDL(yylex, yyLOCAL) @@ -11126,7 +11157,7 @@ yydefault: case 155: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AlterDatabase -//line sql.y:1292 +//line sql.y:1293 { yyLOCAL = &AlterDatabase{} setDDL(yylex, yyLOCAL) @@ -11135,7 +11166,7 @@ yydefault: case 158: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *TableSpec -//line sql.y:1303 +//line sql.y:1304 { yyLOCAL = yyDollar[2].tableSpecUnion() yyLOCAL.Options = yyDollar[4].tableOptionsUnion() @@ -11145,7 +11176,7 @@ yydefault: case 159: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []DatabaseOption -//line sql.y:1310 +//line sql.y:1311 { yyLOCAL = nil } @@ -11153,7 +11184,7 @@ yydefault: case 160: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []DatabaseOption -//line sql.y:1314 +//line sql.y:1315 { yyLOCAL = yyDollar[1].databaseOptionsUnion() } @@ -11161,7 +11192,7 @@ yydefault: case 161: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []DatabaseOption -//line sql.y:1320 +//line sql.y:1321 { yyLOCAL = []DatabaseOption{yyDollar[1].databaseOption} } @@ -11169,7 +11200,7 @@ yydefault: case 162: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []DatabaseOption -//line sql.y:1324 +//line sql.y:1325 { yyLOCAL = []DatabaseOption{yyDollar[1].databaseOption} } @@ -11177,28 +11208,28 @@ yydefault: case 163: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []DatabaseOption -//line sql.y:1328 +//line sql.y:1329 { yyLOCAL = []DatabaseOption{yyDollar[1].databaseOption} } yyVAL.union = yyLOCAL case 164: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1332 +//line sql.y:1333 { yySLICE := (*[]DatabaseOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].databaseOption) } case 165: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1336 +//line sql.y:1337 { yySLICE := (*[]DatabaseOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].databaseOption) } case 166: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1340 +//line sql.y:1341 { yySLICE := (*[]DatabaseOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].databaseOption) @@ -11206,7 +11237,7 @@ yydefault: case 167: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1346 +//line sql.y:1347 { yyLOCAL = false } @@ -11214,51 +11245,51 @@ yydefault: case 168: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1350 +//line sql.y:1351 { yyLOCAL = true } yyVAL.union = yyLOCAL case 169: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1356 +//line sql.y:1357 { yyVAL.databaseOption = DatabaseOption{Type: CharacterSetType, Value: string(yyDollar[4].str), IsDefault: yyDollar[1].booleanUnion()} } case 170: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1360 +//line sql.y:1361 { yyVAL.databaseOption = DatabaseOption{Type: CharacterSetType, Value: encodeSQLString(yyDollar[4].str), IsDefault: yyDollar[1].booleanUnion()} } case 171: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1366 +//line sql.y:1367 { yyVAL.databaseOption = DatabaseOption{Type: CollateType, Value: string(yyDollar[4].str), IsDefault: yyDollar[1].booleanUnion()} } case 172: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1370 +//line sql.y:1371 { yyVAL.databaseOption = DatabaseOption{Type: CollateType, Value: encodeSQLString(yyDollar[4].str), IsDefault: yyDollar[1].booleanUnion()} } case 173: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1376 +//line sql.y:1377 { yyVAL.databaseOption = DatabaseOption{Type: EncryptionType, Value: string(yyDollar[4].str), IsDefault: yyDollar[1].booleanUnion()} } case 174: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1380 +//line sql.y:1381 { yyVAL.databaseOption = DatabaseOption{Type: EncryptionType, Value: encodeSQLString(yyDollar[4].str), IsDefault: yyDollar[1].booleanUnion()} } case 175: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *OptLike -//line sql.y:1386 +//line sql.y:1387 { yyLOCAL = &OptLike{LikeTable: yyDollar[2].tableName} } @@ -11266,7 +11297,7 @@ yydefault: case 176: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *OptLike -//line sql.y:1390 +//line sql.y:1391 { yyLOCAL = &OptLike{LikeTable: yyDollar[3].tableName} } @@ -11274,14 +11305,14 @@ yydefault: case 177: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*ColumnDefinition -//line sql.y:1396 +//line sql.y:1397 { yyLOCAL = []*ColumnDefinition{yyDollar[1].columnDefinitionUnion()} } yyVAL.union = yyLOCAL case 178: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1400 +//line sql.y:1401 { yySLICE := (*[]*ColumnDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].columnDefinitionUnion()) @@ -11289,7 +11320,7 @@ yydefault: case 179: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *TableSpec -//line sql.y:1406 +//line sql.y:1407 { yyLOCAL = &TableSpec{} yyLOCAL.AddColumn(yyDollar[1].columnDefinitionUnion()) @@ -11298,7 +11329,7 @@ yydefault: case 180: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *TableSpec -//line sql.y:1411 +//line sql.y:1412 { yyLOCAL = &TableSpec{} yyLOCAL.AddConstraint(yyDollar[1].constraintDefinitionUnion()) @@ -11306,39 +11337,39 @@ yydefault: yyVAL.union = yyLOCAL case 181: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1416 +//line sql.y:1417 { yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion()) } case 182: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1420 +//line sql.y:1421 { yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion()) yyVAL.tableSpecUnion().AddConstraint(yyDollar[4].constraintDefinitionUnion()) } case 183: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1425 +//line sql.y:1426 { yyVAL.tableSpecUnion().AddIndex(yyDollar[3].indexDefinitionUnion()) } case 184: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1429 +//line sql.y:1430 { yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion()) } case 185: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1433 +//line sql.y:1434 { yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion()) } case 186: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColumnDefinition -//line sql.y:1444 +//line sql.y:1445 { yyDollar[2].columnType.Options = yyDollar[4].columnTypeOptionsUnion() if yyDollar[2].columnType.Options.Collate == "" { @@ -11351,7 +11382,7 @@ yydefault: case 187: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL *ColumnDefinition -//line sql.y:1453 +//line sql.y:1454 { yyDollar[2].columnType.Options = yyDollar[9].columnTypeOptionsUnion() yyDollar[2].columnType.Options.As = yyDollar[7].exprUnion() @@ -11362,20 +11393,20 @@ yydefault: yyVAL.union = yyLOCAL case 188: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1462 +//line sql.y:1463 { yyVAL.str = "" } case 189: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1466 +//line sql.y:1467 { yyVAL.str = "" } case 190: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1475 +//line sql.y:1476 { yyLOCAL = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: ColKeyNone, Comment: nil, As: nil, Invisible: nil, Format: UnspecifiedFormat, EngineAttribute: nil, SecondaryEngineAttribute: nil} } @@ -11383,7 +11414,7 @@ yydefault: case 191: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1479 +//line sql.y:1480 { yyDollar[1].columnTypeOptionsUnion().Null = ptr.Of(true) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11392,7 +11423,7 @@ yydefault: case 192: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1484 +//line sql.y:1485 { yyDollar[1].columnTypeOptionsUnion().Null = ptr.Of(false) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11401,7 +11432,7 @@ yydefault: case 193: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1489 +//line sql.y:1490 { yyDollar[1].columnTypeOptionsUnion().Default = yyDollar[4].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11410,7 +11441,7 @@ yydefault: case 194: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1494 +//line sql.y:1495 { yyDollar[1].columnTypeOptionsUnion().Default = yyDollar[3].exprUnion() yyDollar[1].columnTypeOptionsUnion().DefaultLiteral = true @@ -11420,7 +11451,7 @@ yydefault: case 195: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1500 +//line sql.y:1501 { yyDollar[1].columnTypeOptionsUnion().OnUpdate = yyDollar[4].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11429,7 +11460,7 @@ yydefault: case 196: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1505 +//line sql.y:1506 { yyDollar[1].columnTypeOptionsUnion().Autoincrement = true yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11438,7 +11469,7 @@ yydefault: case 197: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1510 +//line sql.y:1511 { yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11447,7 +11478,7 @@ yydefault: case 198: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1515 +//line sql.y:1516 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11455,14 +11486,14 @@ yydefault: yyVAL.union = yyLOCAL case 199: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1520 +//line sql.y:1521 { yyDollar[1].columnTypeOptionsUnion().Collate = encodeSQLString(yyDollar[3].str) } case 200: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1524 +//line sql.y:1525 { yyDollar[1].columnTypeOptionsUnion().Collate = string(yyDollar[3].identifierCI.String()) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11470,14 +11501,14 @@ yydefault: yyVAL.union = yyLOCAL case 201: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1529 +//line sql.y:1530 { yyDollar[1].columnTypeOptionsUnion().Format = yyDollar[3].columnFormatUnion() } case 202: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1533 +//line sql.y:1534 { yyDollar[1].columnTypeOptionsUnion().SRID = NewIntLiteral(yyDollar[3].str) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11486,7 +11517,7 @@ yydefault: case 203: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1538 +//line sql.y:1539 { yyDollar[1].columnTypeOptionsUnion().Invisible = ptr.Of(false) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11495,7 +11526,7 @@ yydefault: case 204: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1543 +//line sql.y:1544 { yyDollar[1].columnTypeOptionsUnion().Invisible = ptr.Of(true) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11503,20 +11534,20 @@ yydefault: yyVAL.union = yyLOCAL case 205: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1548 +//line sql.y:1549 { yyDollar[1].columnTypeOptionsUnion().EngineAttribute = NewStrLiteral(yyDollar[4].str) } case 206: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1552 +//line sql.y:1553 { yyDollar[1].columnTypeOptionsUnion().SecondaryEngineAttribute = NewStrLiteral(yyDollar[4].str) } case 207: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnFormat -//line sql.y:1558 +//line sql.y:1559 { yyLOCAL = FixedFormat } @@ -11524,7 +11555,7 @@ yydefault: case 208: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnFormat -//line sql.y:1562 +//line sql.y:1563 { yyLOCAL = DynamicFormat } @@ -11532,7 +11563,7 @@ yydefault: case 209: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnFormat -//line sql.y:1566 +//line sql.y:1567 { yyLOCAL = DefaultFormat } @@ -11540,7 +11571,7 @@ yydefault: case 210: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnStorage -//line sql.y:1572 +//line sql.y:1573 { yyLOCAL = VirtualStorage } @@ -11548,7 +11579,7 @@ yydefault: case 211: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnStorage -//line sql.y:1576 +//line sql.y:1577 { yyLOCAL = StoredStorage } @@ -11556,7 +11587,7 @@ yydefault: case 212: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1581 +//line sql.y:1582 { yyLOCAL = &ColumnTypeOptions{} } @@ -11564,7 +11595,7 @@ yydefault: case 213: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1585 +//line sql.y:1586 { yyDollar[1].columnTypeOptionsUnion().Storage = yyDollar[2].columnStorageUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11573,7 +11604,7 @@ yydefault: case 214: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1590 +//line sql.y:1591 { yyDollar[1].columnTypeOptionsUnion().Null = ptr.Of(true) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11582,7 +11613,7 @@ yydefault: case 215: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1595 +//line sql.y:1596 { yyDollar[1].columnTypeOptionsUnion().Null = ptr.Of(false) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11591,7 +11622,7 @@ yydefault: case 216: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1600 +//line sql.y:1601 { yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11600,7 +11631,7 @@ yydefault: case 217: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1605 +//line sql.y:1606 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11609,7 +11640,7 @@ yydefault: case 218: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1610 +//line sql.y:1611 { yyDollar[1].columnTypeOptionsUnion().Invisible = ptr.Of(false) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11618,7 +11649,7 @@ yydefault: case 219: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1615 +//line sql.y:1616 { yyDollar[1].columnTypeOptionsUnion().Invisible = ptr.Of(true) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -11627,7 +11658,7 @@ yydefault: case 220: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1622 +//line sql.y:1623 { yyLOCAL = yyDollar[1].exprUnion() } @@ -11635,7 +11666,7 @@ yydefault: case 222: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1629 +//line sql.y:1630 { yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("current_timestamp"), Fsp: yyDollar[2].integerUnion()} } @@ -11643,7 +11674,7 @@ yydefault: case 223: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1633 +//line sql.y:1634 { yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("localtime"), Fsp: yyDollar[2].integerUnion()} } @@ -11651,7 +11682,7 @@ yydefault: case 224: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1637 +//line sql.y:1638 { yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("localtimestamp"), Fsp: yyDollar[2].integerUnion()} } @@ -11659,7 +11690,7 @@ yydefault: case 225: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1641 +//line sql.y:1642 { yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("utc_timestamp"), Fsp: yyDollar[2].integerUnion()} } @@ -11667,7 +11698,7 @@ yydefault: case 226: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1645 +//line sql.y:1646 { yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("now"), Fsp: yyDollar[2].integerUnion()} } @@ -11675,7 +11706,7 @@ yydefault: case 227: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1649 +//line sql.y:1650 { yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("sysdate"), Fsp: yyDollar[2].integerUnion()} } @@ -11683,7 +11714,7 @@ yydefault: case 230: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1659 +//line sql.y:1660 { yyLOCAL = &NullVal{} } @@ -11691,7 +11722,7 @@ yydefault: case 232: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1666 +//line sql.y:1667 { yyLOCAL = yyDollar[2].exprUnion() } @@ -11699,7 +11730,7 @@ yydefault: case 233: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1670 +//line sql.y:1671 { yyLOCAL = &UnaryExpr{Operator: UMinusOp, Expr: yyDollar[2].exprUnion()} } @@ -11707,7 +11738,7 @@ yydefault: case 234: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1676 +//line sql.y:1677 { yyLOCAL = yyDollar[1].exprUnion() } @@ -11715,7 +11746,7 @@ yydefault: case 235: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1680 +//line sql.y:1681 { yyLOCAL = yyDollar[1].exprUnion() } @@ -11723,7 +11754,7 @@ yydefault: case 236: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1684 +//line sql.y:1685 { yyLOCAL = yyDollar[1].boolValUnion() } @@ -11731,7 +11762,7 @@ yydefault: case 237: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1688 +//line sql.y:1689 { yyLOCAL = NewHexLiteral(yyDollar[1].str) } @@ -11739,7 +11770,7 @@ yydefault: case 238: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1692 +//line sql.y:1693 { yyLOCAL = NewHexNumLiteral(yyDollar[1].str) } @@ -11747,7 +11778,7 @@ yydefault: case 239: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1696 +//line sql.y:1697 { yyLOCAL = NewBitLiteral(yyDollar[1].str) } @@ -11755,7 +11786,7 @@ yydefault: case 240: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1700 +//line sql.y:1701 { yyLOCAL = NewBitLiteral("0b" + yyDollar[1].str) } @@ -11763,7 +11794,7 @@ yydefault: case 241: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1704 +//line sql.y:1705 { yyLOCAL = parseBindVariable(yylex, yyDollar[1].str[1:]) } @@ -11771,7 +11802,7 @@ yydefault: case 242: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1708 +//line sql.y:1709 { yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewBitLiteral("0b" + yyDollar[2].str)} } @@ -11779,7 +11810,7 @@ yydefault: case 243: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1712 +//line sql.y:1713 { yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewHexNumLiteral(yyDollar[2].str)} } @@ -11787,7 +11818,7 @@ yydefault: case 244: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1716 +//line sql.y:1717 { yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewBitLiteral(yyDollar[2].str)} } @@ -11795,7 +11826,7 @@ yydefault: case 245: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1720 +//line sql.y:1721 { yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewHexLiteral(yyDollar[2].str)} } @@ -11803,7 +11834,7 @@ yydefault: case 246: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1724 +//line sql.y:1725 { yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: yyDollar[2].exprUnion()} } @@ -11811,7 +11842,7 @@ yydefault: case 247: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1728 +//line sql.y:1729 { arg := parseBindVariable(yylex, yyDollar[2].str[1:]) yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: arg} @@ -11820,7 +11851,7 @@ yydefault: case 248: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1733 +//line sql.y:1734 { yyLOCAL = NewDateLiteral(yyDollar[2].str) } @@ -11828,7 +11859,7 @@ yydefault: case 249: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1737 +//line sql.y:1738 { yyLOCAL = NewTimeLiteral(yyDollar[2].str) } @@ -11836,267 +11867,267 @@ yydefault: case 250: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1741 +//line sql.y:1742 { yyLOCAL = NewTimestampLiteral(yyDollar[2].str) } yyVAL.union = yyLOCAL case 251: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1747 +//line sql.y:1748 { yyVAL.str = Armscii8Str } case 252: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1751 +//line sql.y:1752 { yyVAL.str = ASCIIStr } case 253: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1755 +//line sql.y:1756 { yyVAL.str = Big5Str } case 254: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1759 +//line sql.y:1760 { yyVAL.str = UBinaryStr } case 255: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1763 +//line sql.y:1764 { yyVAL.str = Cp1250Str } case 256: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1767 +//line sql.y:1768 { yyVAL.str = Cp1251Str } case 257: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1771 +//line sql.y:1772 { yyVAL.str = Cp1256Str } case 258: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1775 +//line sql.y:1776 { yyVAL.str = Cp1257Str } case 259: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1779 +//line sql.y:1780 { yyVAL.str = Cp850Str } case 260: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1783 +//line sql.y:1784 { yyVAL.str = Cp852Str } case 261: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1787 +//line sql.y:1788 { yyVAL.str = Cp866Str } case 262: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1791 +//line sql.y:1792 { yyVAL.str = Cp932Str } case 263: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1795 +//line sql.y:1796 { yyVAL.str = Dec8Str } case 264: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1799 +//line sql.y:1800 { yyVAL.str = EucjpmsStr } case 265: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1803 +//line sql.y:1804 { yyVAL.str = EuckrStr } case 266: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1807 +//line sql.y:1808 { yyVAL.str = Gb18030Str } case 267: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1811 +//line sql.y:1812 { yyVAL.str = Gb2312Str } case 268: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1815 +//line sql.y:1816 { yyVAL.str = GbkStr } case 269: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1819 +//line sql.y:1820 { yyVAL.str = Geostd8Str } case 270: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1823 +//line sql.y:1824 { yyVAL.str = GreekStr } case 271: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1827 +//line sql.y:1828 { yyVAL.str = HebrewStr } case 272: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1831 +//line sql.y:1832 { yyVAL.str = Hp8Str } case 273: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1835 +//line sql.y:1836 { yyVAL.str = Keybcs2Str } case 274: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1839 +//line sql.y:1840 { yyVAL.str = Koi8rStr } case 275: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1843 +//line sql.y:1844 { yyVAL.str = Koi8uStr } case 276: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1847 +//line sql.y:1848 { yyVAL.str = Latin1Str } case 277: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1851 +//line sql.y:1852 { yyVAL.str = Latin2Str } case 278: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1855 +//line sql.y:1856 { yyVAL.str = Latin5Str } case 279: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1859 +//line sql.y:1860 { yyVAL.str = Latin7Str } case 280: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1863 +//line sql.y:1864 { yyVAL.str = MacceStr } case 281: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1867 +//line sql.y:1868 { yyVAL.str = MacromanStr } case 282: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1871 +//line sql.y:1872 { yyVAL.str = SjisStr } case 283: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1875 +//line sql.y:1876 { yyVAL.str = Swe7Str } case 284: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1879 +//line sql.y:1880 { yyVAL.str = Tis620Str } case 285: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1883 +//line sql.y:1884 { yyVAL.str = Ucs2Str } case 286: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1887 +//line sql.y:1888 { yyVAL.str = UjisStr } case 287: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1891 +//line sql.y:1892 { yyVAL.str = Utf16Str } case 288: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1895 +//line sql.y:1896 { yyVAL.str = Utf16leStr } case 289: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1899 +//line sql.y:1900 { yyVAL.str = Utf32Str } case 290: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1903 +//line sql.y:1904 { yyVAL.str = Utf8mb3Str } case 291: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1907 +//line sql.y:1908 { yyVAL.str = Utf8mb4Str } case 292: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1911 +//line sql.y:1912 { yyVAL.str = Utf8mb3Str } case 295: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1921 +//line sql.y:1922 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } @@ -12104,7 +12135,7 @@ yydefault: case 296: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1925 +//line sql.y:1926 { yyLOCAL = NewFloatLiteral(yyDollar[1].str) } @@ -12112,7 +12143,7 @@ yydefault: case 297: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1929 +//line sql.y:1930 { yyLOCAL = NewDecimalLiteral(yyDollar[1].str) } @@ -12120,7 +12151,7 @@ yydefault: case 298: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1935 +//line sql.y:1936 { yyLOCAL = yyDollar[1].exprUnion() } @@ -12128,7 +12159,7 @@ yydefault: case 299: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1939 +//line sql.y:1940 { yyLOCAL = AppendString(yyDollar[1].exprUnion(), yyDollar[2].str) } @@ -12136,7 +12167,7 @@ yydefault: case 300: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1945 +//line sql.y:1946 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } @@ -12144,7 +12175,7 @@ yydefault: case 301: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1949 +//line sql.y:1950 { yyLOCAL = &UnaryExpr{Operator: NStringOp, Expr: NewStrLiteral(yyDollar[1].str)} } @@ -12152,7 +12183,7 @@ yydefault: case 302: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1953 +//line sql.y:1954 { yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewStrLiteral(yyDollar[2].str)} } @@ -12160,7 +12191,7 @@ yydefault: case 303: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1959 +//line sql.y:1960 { yyLOCAL = yyDollar[1].exprUnion() } @@ -12168,7 +12199,7 @@ yydefault: case 304: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1963 +//line sql.y:1964 { yyLOCAL = parseBindVariable(yylex, yyDollar[1].str[1:]) } @@ -12176,7 +12207,7 @@ yydefault: case 305: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1969 +//line sql.y:1970 { yyLOCAL = ColKeyPrimary } @@ -12184,7 +12215,7 @@ yydefault: case 306: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1973 +//line sql.y:1974 { yyLOCAL = ColKeyUnique } @@ -12192,7 +12223,7 @@ yydefault: case 307: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1977 +//line sql.y:1978 { yyLOCAL = ColKeyUniqueKey } @@ -12200,14 +12231,14 @@ yydefault: case 308: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1981 +//line sql.y:1982 { yyLOCAL = ColKey } yyVAL.union = yyLOCAL case 309: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1987 +//line sql.y:1988 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].booleanUnion() @@ -12215,74 +12246,74 @@ yydefault: } case 313: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1998 +//line sql.y:1999 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].intPtrUnion() } case 314: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2003 +//line sql.y:2004 { yyVAL.columnType = yyDollar[1].columnType } case 315: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2009 +//line sql.y:2010 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 316: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2013 +//line sql.y:2014 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 317: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2017 +//line sql.y:2018 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 318: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2021 +//line sql.y:2022 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 319: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2025 +//line sql.y:2026 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 320: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2029 +//line sql.y:2030 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 321: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2033 +//line sql.y:2034 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 322: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2037 +//line sql.y:2038 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 323: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2041 +//line sql.y:2042 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 324: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2047 +//line sql.y:2048 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -12290,7 +12321,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2053 +//line sql.y:2054 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -12298,7 +12329,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2059 +//line sql.y:2060 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -12306,7 +12337,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2065 +//line sql.y:2066 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -12314,7 +12345,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2071 +//line sql.y:2072 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -12322,7 +12353,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2077 +//line sql.y:2078 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -12330,7 +12361,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2083 +//line sql.y:2084 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -12338,43 +12369,43 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2091 +//line sql.y:2092 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 332: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2095 +//line sql.y:2096 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()} } case 333: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2099 +//line sql.y:2100 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()} } case 334: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2103 +//line sql.y:2104 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()} } case 335: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2107 +//line sql.y:2108 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()} } case 336: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2113 +//line sql.y:2114 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion(), Charset: yyDollar[3].columnCharset} } case 337: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2117 +//line sql.y:2118 { // CHAR BYTE is an alias for binary. See also: // https://dev.mysql.com/doc/refman/8.0/en/string-type-syntax.html @@ -12382,153 +12413,153 @@ yydefault: } case 338: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2123 +//line sql.y:2124 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion(), Charset: yyDollar[3].columnCharset} } case 339: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2127 +//line sql.y:2128 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()} } case 340: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2131 +//line sql.y:2132 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()} } case 341: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2135 +//line sql.y:2136 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].columnCharset} } case 342: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2139 +//line sql.y:2140 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].columnCharset} } case 343: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2143 +//line sql.y:2144 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].columnCharset} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2147 +//line sql.y:2148 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].columnCharset} } case 345: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2151 +//line sql.y:2152 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 346: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2155 +//line sql.y:2156 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 347: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2159 +//line sql.y:2160 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 348: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2163 +//line sql.y:2164 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2167 +//line sql.y:2168 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 350: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2171 +//line sql.y:2172 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].columnCharset} } case 351: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2176 +//line sql.y:2177 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].columnCharset} } case 352: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2182 +//line sql.y:2183 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 353: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2186 +//line sql.y:2187 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 354: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2190 +//line sql.y:2191 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 355: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2194 +//line sql.y:2195 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 356: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2198 +//line sql.y:2199 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 357: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2202 +//line sql.y:2203 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 358: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2206 +//line sql.y:2207 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 359: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2210 +//line sql.y:2211 { yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)} } case 360: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2216 +//line sql.y:2217 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, encodeSQLString(yyDollar[1].str)) } case 361: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2221 +//line sql.y:2222 { yyVAL.strs = append(yyDollar[1].strs, encodeSQLString(yyDollar[3].str)) } case 362: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *int -//line sql.y:2226 +//line sql.y:2227 { yyLOCAL = nil } @@ -12536,20 +12567,20 @@ yydefault: case 363: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *int -//line sql.y:2230 +//line sql.y:2231 { yyLOCAL = ptr.Of(convertStringToInt(yyDollar[2].str)) } yyVAL.union = yyLOCAL case 364: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2235 +//line sql.y:2236 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 365: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2239 +//line sql.y:2240 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: ptr.Of(convertStringToInt(yyDollar[2].str)), @@ -12558,13 +12589,13 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2248 +//line sql.y:2249 { yyVAL.LengthScaleOption = yyDollar[1].LengthScaleOption } case 367: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2252 +//line sql.y:2253 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: ptr.Of(convertStringToInt(yyDollar[2].str)), @@ -12572,13 +12603,13 @@ yydefault: } case 368: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2259 +//line sql.y:2260 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 369: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2263 +//line sql.y:2264 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: ptr.Of(convertStringToInt(yyDollar[2].str)), @@ -12586,7 +12617,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2269 +//line sql.y:2270 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: ptr.Of(convertStringToInt(yyDollar[2].str)), @@ -12596,7 +12627,7 @@ yydefault: case 371: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2277 +//line sql.y:2278 { yyLOCAL = false } @@ -12604,7 +12635,7 @@ yydefault: case 372: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2281 +//line sql.y:2282 { yyLOCAL = true } @@ -12612,7 +12643,7 @@ yydefault: case 373: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2285 +//line sql.y:2286 { yyLOCAL = false } @@ -12620,7 +12651,7 @@ yydefault: case 374: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2290 +//line sql.y:2291 { yyLOCAL = false } @@ -12628,66 +12659,66 @@ yydefault: case 375: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2294 +//line sql.y:2295 { yyLOCAL = true } yyVAL.union = yyLOCAL case 376: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2299 +//line sql.y:2300 { yyVAL.columnCharset = ColumnCharset{} } case 377: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2303 +//line sql.y:2304 { yyVAL.columnCharset = ColumnCharset{Name: string(yyDollar[2].identifierCI.String()), Binary: yyDollar[3].booleanUnion()} } case 378: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2307 +//line sql.y:2308 { yyVAL.columnCharset = ColumnCharset{Name: encodeSQLString(yyDollar[2].str), Binary: yyDollar[3].booleanUnion()} } case 379: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2311 +//line sql.y:2312 { yyVAL.columnCharset = ColumnCharset{Name: string(yyDollar[2].str)} } case 380: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2315 +//line sql.y:2316 { // ASCII: Shorthand for CHARACTER SET latin1. yyVAL.columnCharset = ColumnCharset{Name: "latin1", Binary: yyDollar[2].booleanUnion()} } case 381: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2320 +//line sql.y:2321 { // UNICODE: Shorthand for CHARACTER SET ucs2. yyVAL.columnCharset = ColumnCharset{Name: "ucs2", Binary: yyDollar[2].booleanUnion()} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2325 +//line sql.y:2326 { // BINARY: Shorthand for default CHARACTER SET but with binary collation yyVAL.columnCharset = ColumnCharset{Name: "", Binary: true} } case 383: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2330 +//line sql.y:2331 { // BINARY ASCII: Shorthand for CHARACTER SET latin1 with binary collation yyVAL.columnCharset = ColumnCharset{Name: "latin1", Binary: true} } case 384: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2335 +//line sql.y:2336 { // BINARY UNICODE: Shorthand for CHARACTER SET ucs2 with binary collation yyVAL.columnCharset = ColumnCharset{Name: "ucs2", Binary: true} @@ -12695,7 +12726,7 @@ yydefault: case 385: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2341 +//line sql.y:2342 { yyLOCAL = false } @@ -12703,33 +12734,33 @@ yydefault: case 386: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2345 +//line sql.y:2346 { yyLOCAL = true } yyVAL.union = yyLOCAL case 387: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2350 +//line sql.y:2351 { yyVAL.str = "" } case 388: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2354 +//line sql.y:2355 { yyVAL.str = string(yyDollar[2].identifierCI.String()) } case 389: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2358 +//line sql.y:2359 { yyVAL.str = encodeSQLString(yyDollar[2].str) } case 390: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexDefinition -//line sql.y:2364 +//line sql.y:2365 { yyLOCAL = &IndexDefinition{Info: yyDollar[1].indexInfoUnion(), Columns: yyDollar[3].indexColumnsUnion(), Options: yyDollar[5].indexOptionsUnion()} } @@ -12737,7 +12768,7 @@ yydefault: case 391: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:2369 +//line sql.y:2370 { yyLOCAL = nil } @@ -12745,7 +12776,7 @@ yydefault: case 392: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:2373 +//line sql.y:2374 { yyLOCAL = yyDollar[1].indexOptionsUnion() } @@ -12753,14 +12784,14 @@ yydefault: case 393: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:2379 +//line sql.y:2380 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL case 394: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2383 +//line sql.y:2384 { yySLICE := (*[]*IndexOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].indexOptionUnion()) @@ -12768,7 +12799,7 @@ yydefault: case 395: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:2389 +//line sql.y:2390 { yyLOCAL = yyDollar[1].indexOptionUnion() } @@ -12776,7 +12807,7 @@ yydefault: case 396: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:2393 +//line sql.y:2394 { // should not be string yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} @@ -12785,7 +12816,7 @@ yydefault: case 397: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:2398 +//line sql.y:2399 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[2].str)} } @@ -12793,7 +12824,7 @@ yydefault: case 398: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:2402 +//line sql.y:2403 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str)} } @@ -12801,7 +12832,7 @@ yydefault: case 399: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:2406 +//line sql.y:2407 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str)} } @@ -12809,7 +12840,7 @@ yydefault: case 400: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:2410 +//line sql.y:2411 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str) + " " + string(yyDollar[2].str), String: yyDollar[3].identifierCI.String()} } @@ -12817,7 +12848,7 @@ yydefault: case 401: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:2414 +//line sql.y:2415 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -12825,27 +12856,27 @@ yydefault: case 402: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:2418 +//line sql.y:2419 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL case 403: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2424 +//line sql.y:2425 { yyVAL.str = "" } case 404: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2428 +//line sql.y:2429 { yyVAL.str = string(yyDollar[1].str) } case 405: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:2434 +//line sql.y:2435 { yyLOCAL = &IndexInfo{Type: IndexTypePrimary, ConstraintName: NewIdentifierCI(yyDollar[1].str), Name: NewIdentifierCI("PRIMARY")} } @@ -12853,7 +12884,7 @@ yydefault: case 406: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:2438 +//line sql.y:2439 { yyLOCAL = &IndexInfo{Type: IndexTypeSpatial, Name: NewIdentifierCI(yyDollar[3].str)} } @@ -12861,7 +12892,7 @@ yydefault: case 407: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:2442 +//line sql.y:2443 { yyLOCAL = &IndexInfo{Type: IndexTypeFullText, Name: NewIdentifierCI(yyDollar[3].str)} } @@ -12869,7 +12900,7 @@ yydefault: case 408: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:2446 +//line sql.y:2447 { yyLOCAL = &IndexInfo{Type: IndexTypeUnique, ConstraintName: NewIdentifierCI(yyDollar[1].str), Name: NewIdentifierCI(yyDollar[4].str)} } @@ -12877,100 +12908,100 @@ yydefault: case 409: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:2450 +//line sql.y:2451 { yyLOCAL = &IndexInfo{Type: IndexTypeDefault, Name: NewIdentifierCI(yyDollar[2].str)} } yyVAL.union = yyLOCAL case 410: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2455 +//line sql.y:2456 { yyVAL.str = "" } case 411: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2459 +//line sql.y:2460 { yyVAL.str = yyDollar[2].str } case 412: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2465 +//line sql.y:2466 { yyVAL.str = string(yyDollar[1].str) } case 413: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2469 +//line sql.y:2470 { yyVAL.str = string(yyDollar[1].str) } case 414: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2473 +//line sql.y:2474 { yyVAL.str = string(yyDollar[1].str) } case 415: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2479 +//line sql.y:2480 { yyVAL.str = string(yyDollar[1].str) } case 416: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2483 +//line sql.y:2484 { yyVAL.str = string(yyDollar[1].str) } case 417: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2488 +//line sql.y:2489 { yyVAL.str = "" } case 418: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2492 +//line sql.y:2493 { yyVAL.str = yyDollar[1].str } case 419: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2498 +//line sql.y:2499 { yyVAL.str = string(yyDollar[1].str) } case 420: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2502 +//line sql.y:2503 { yyVAL.str = string(yyDollar[1].str) } case 421: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2507 +//line sql.y:2508 { yyVAL.str = "" } case 422: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2511 +//line sql.y:2512 { yyVAL.str = string(yyDollar[1].identifierCI.String()) } case 423: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexColumn -//line sql.y:2517 +//line sql.y:2518 { yyLOCAL = []*IndexColumn{yyDollar[1].indexColumnUnion()} } yyVAL.union = yyLOCAL case 424: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2521 +//line sql.y:2522 { yySLICE := (*[]*IndexColumn)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].indexColumnUnion()) @@ -12978,7 +13009,7 @@ yydefault: case 425: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexColumn -//line sql.y:2527 +//line sql.y:2528 { yyLOCAL = &IndexColumn{Column: yyDollar[1].identifierCI, Length: yyDollar[2].intPtrUnion(), Direction: yyDollar[3].orderDirectionUnion()} } @@ -12986,7 +13017,7 @@ yydefault: case 426: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexColumn -//line sql.y:2531 +//line sql.y:2532 { yyLOCAL = &IndexColumn{Expression: yyDollar[2].exprUnion(), Direction: yyDollar[4].orderDirectionUnion()} } @@ -12994,7 +13025,7 @@ yydefault: case 427: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:2537 +//line sql.y:2538 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].identifierCI, Details: yyDollar[3].constraintInfoUnion()} } @@ -13002,7 +13033,7 @@ yydefault: case 428: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:2541 +//line sql.y:2542 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } @@ -13010,7 +13041,7 @@ yydefault: case 429: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:2547 +//line sql.y:2548 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].identifierCI, Details: yyDollar[3].constraintInfoUnion()} } @@ -13018,7 +13049,7 @@ yydefault: case 430: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:2551 +//line sql.y:2552 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } @@ -13026,7 +13057,7 @@ yydefault: case 431: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:2557 +//line sql.y:2558 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewIdentifierCI(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferenceDefinition: yyDollar[7].referenceDefinitionUnion()} } @@ -13034,7 +13065,7 @@ yydefault: case 432: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:2563 +//line sql.y:2564 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), Match: yyDollar[6].matchActionUnion()} } @@ -13042,7 +13073,7 @@ yydefault: case 433: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:2567 +//line sql.y:2568 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), Match: yyDollar[6].matchActionUnion(), OnDelete: yyDollar[7].referenceActionUnion()} } @@ -13050,7 +13081,7 @@ yydefault: case 434: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:2571 +//line sql.y:2572 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), Match: yyDollar[6].matchActionUnion(), OnUpdate: yyDollar[7].referenceActionUnion()} } @@ -13058,7 +13089,7 @@ yydefault: case 435: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:2575 +//line sql.y:2576 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), Match: yyDollar[6].matchActionUnion(), OnDelete: yyDollar[7].referenceActionUnion(), OnUpdate: yyDollar[8].referenceActionUnion()} } @@ -13066,7 +13097,7 @@ yydefault: case 436: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:2579 +//line sql.y:2580 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), Match: yyDollar[6].matchActionUnion(), OnUpdate: yyDollar[7].referenceActionUnion(), OnDelete: yyDollar[8].referenceActionUnion()} } @@ -13074,7 +13105,7 @@ yydefault: case 437: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:2584 +//line sql.y:2585 { yyLOCAL = nil } @@ -13082,7 +13113,7 @@ yydefault: case 438: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:2588 +//line sql.y:2589 { yyLOCAL = yyDollar[1].referenceDefinitionUnion() } @@ -13090,7 +13121,7 @@ yydefault: case 439: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:2594 +//line sql.y:2595 { yyLOCAL = &CheckConstraintDefinition{Expr: yyDollar[3].exprUnion(), Enforced: yyDollar[5].booleanUnion()} } @@ -13098,7 +13129,7 @@ yydefault: case 440: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL MatchAction -//line sql.y:2600 +//line sql.y:2601 { yyLOCAL = yyDollar[2].matchActionUnion() } @@ -13106,7 +13137,7 @@ yydefault: case 441: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL MatchAction -//line sql.y:2606 +//line sql.y:2607 { yyLOCAL = Full } @@ -13114,7 +13145,7 @@ yydefault: case 442: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL MatchAction -//line sql.y:2610 +//line sql.y:2611 { yyLOCAL = Partial } @@ -13122,7 +13153,7 @@ yydefault: case 443: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL MatchAction -//line sql.y:2614 +//line sql.y:2615 { yyLOCAL = Simple } @@ -13130,7 +13161,7 @@ yydefault: case 444: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL MatchAction -//line sql.y:2619 +//line sql.y:2620 { yyLOCAL = DefaultMatch } @@ -13138,7 +13169,7 @@ yydefault: case 445: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL MatchAction -//line sql.y:2623 +//line sql.y:2624 { yyLOCAL = yyDollar[1].matchActionUnion() } @@ -13146,7 +13177,7 @@ yydefault: case 446: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:2629 +//line sql.y:2630 { yyLOCAL = yyDollar[3].referenceActionUnion() } @@ -13154,7 +13185,7 @@ yydefault: case 447: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:2635 +//line sql.y:2636 { yyLOCAL = yyDollar[3].referenceActionUnion() } @@ -13162,7 +13193,7 @@ yydefault: case 448: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:2641 +//line sql.y:2642 { yyLOCAL = Restrict } @@ -13170,7 +13201,7 @@ yydefault: case 449: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:2645 +//line sql.y:2646 { yyLOCAL = Cascade } @@ -13178,7 +13209,7 @@ yydefault: case 450: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:2649 +//line sql.y:2650 { yyLOCAL = NoAction } @@ -13186,7 +13217,7 @@ yydefault: case 451: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:2653 +//line sql.y:2654 { yyLOCAL = SetDefault } @@ -13194,33 +13225,33 @@ yydefault: case 452: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:2657 +//line sql.y:2658 { yyLOCAL = SetNull } yyVAL.union = yyLOCAL case 453: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2662 +//line sql.y:2663 { yyVAL.str = "" } case 454: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2666 +//line sql.y:2667 { yyVAL.str = string(yyDollar[1].str) } case 455: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2670 +//line sql.y:2671 { yyVAL.str = string(yyDollar[1].str) } case 456: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2676 +//line sql.y:2677 { yyLOCAL = true } @@ -13228,7 +13259,7 @@ yydefault: case 457: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2680 +//line sql.y:2681 { yyLOCAL = false } @@ -13236,7 +13267,7 @@ yydefault: case 458: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2685 +//line sql.y:2686 { yyLOCAL = true } @@ -13244,7 +13275,7 @@ yydefault: case 459: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2689 +//line sql.y:2690 { yyLOCAL = yyDollar[1].booleanUnion() } @@ -13252,7 +13283,7 @@ yydefault: case 460: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableOptions -//line sql.y:2694 +//line sql.y:2695 { yyLOCAL = nil } @@ -13260,7 +13291,7 @@ yydefault: case 461: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:2698 +//line sql.y:2699 { yyLOCAL = yyDollar[1].tableOptionsUnion() } @@ -13268,21 +13299,21 @@ yydefault: case 462: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:2704 +//line sql.y:2705 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL case 463: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2708 +//line sql.y:2709 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableOptionUnion()) } case 464: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2712 +//line sql.y:2713 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) @@ -13290,14 +13321,14 @@ yydefault: case 465: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:2718 +//line sql.y:2719 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL case 466: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2722 +//line sql.y:2723 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) @@ -13305,7 +13336,7 @@ yydefault: case 467: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2728 +//line sql.y:2729 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -13313,7 +13344,7 @@ yydefault: case 468: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2732 +//line sql.y:2733 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -13321,7 +13352,7 @@ yydefault: case 469: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2736 +//line sql.y:2737 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -13329,7 +13360,7 @@ yydefault: case 470: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2740 +//line sql.y:2741 { yyLOCAL = &TableOption{Name: (string(yyDollar[2].str)), String: yyDollar[4].str, CaseSensitive: true} } @@ -13337,7 +13368,7 @@ yydefault: case 471: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2744 +//line sql.y:2745 { yyLOCAL = &TableOption{Name: string(yyDollar[2].str), String: yyDollar[4].str, CaseSensitive: true} } @@ -13345,7 +13376,7 @@ yydefault: case 472: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2748 +//line sql.y:2749 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -13353,7 +13384,7 @@ yydefault: case 473: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2752 +//line sql.y:2753 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -13361,7 +13392,7 @@ yydefault: case 474: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2756 +//line sql.y:2757 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -13369,7 +13400,7 @@ yydefault: case 475: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2760 +//line sql.y:2761 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -13377,7 +13408,7 @@ yydefault: case 476: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2764 +//line sql.y:2765 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } @@ -13385,7 +13416,7 @@ yydefault: case 477: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2768 +//line sql.y:2769 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } @@ -13393,7 +13424,7 @@ yydefault: case 478: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2772 +//line sql.y:2773 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -13401,7 +13432,7 @@ yydefault: case 479: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2776 +//line sql.y:2777 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -13409,7 +13440,7 @@ yydefault: case 480: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2780 +//line sql.y:2781 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: yyDollar[3].identifierCS.String(), CaseSensitive: true} } @@ -13417,7 +13448,7 @@ yydefault: case 481: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2784 +//line sql.y:2785 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -13425,7 +13456,7 @@ yydefault: case 482: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2788 +//line sql.y:2789 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -13433,7 +13464,7 @@ yydefault: case 483: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2792 +//line sql.y:2793 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -13441,7 +13472,7 @@ yydefault: case 484: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2796 +//line sql.y:2797 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -13449,7 +13480,7 @@ yydefault: case 485: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2800 +//line sql.y:2801 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -13457,7 +13488,7 @@ yydefault: case 486: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2804 +//line sql.y:2805 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -13465,7 +13496,7 @@ yydefault: case 487: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2808 +//line sql.y:2809 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -13473,7 +13504,7 @@ yydefault: case 488: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2812 +//line sql.y:2813 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -13481,7 +13512,7 @@ yydefault: case 489: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2816 +//line sql.y:2817 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -13489,7 +13520,7 @@ yydefault: case 490: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2820 +//line sql.y:2821 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -13497,7 +13528,7 @@ yydefault: case 491: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2824 +//line sql.y:2825 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -13505,7 +13536,7 @@ yydefault: case 492: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2828 +//line sql.y:2829 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -13513,7 +13544,7 @@ yydefault: case 493: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2832 +//line sql.y:2833 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -13521,7 +13552,7 @@ yydefault: case 494: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2836 +//line sql.y:2837 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -13529,7 +13560,7 @@ yydefault: case 495: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2840 +//line sql.y:2841 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -13537,7 +13568,7 @@ yydefault: case 496: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2844 +//line sql.y:2845 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: (yyDollar[3].identifierCI.String() + yyDollar[4].str), CaseSensitive: true} } @@ -13545,63 +13576,63 @@ yydefault: case 497: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2848 +//line sql.y:2849 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Tables: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL case 498: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2853 +//line sql.y:2854 { yyVAL.str = "" } case 499: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2857 +//line sql.y:2858 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 500: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2861 +//line sql.y:2862 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 510: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2880 +//line sql.y:2881 { yyVAL.str = String(TableName{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCS}) } case 511: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2884 +//line sql.y:2885 { yyVAL.str = yyDollar[1].identifierCI.String() } case 512: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2888 +//line sql.y:2889 { yyVAL.str = encodeSQLString(yyDollar[1].str) } case 513: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2892 +//line sql.y:2893 { yyVAL.str = string(yyDollar[1].str) } case 514: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2897 +//line sql.y:2898 { yyVAL.str = "" } case 516: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2903 +//line sql.y:2904 { yyLOCAL = false } @@ -13609,7 +13640,7 @@ yydefault: case 517: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2907 +//line sql.y:2908 { yyLOCAL = true } @@ -13617,7 +13648,7 @@ yydefault: case 518: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:2912 +//line sql.y:2913 { yyLOCAL = nil } @@ -13625,27 +13656,27 @@ yydefault: case 519: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:2916 +//line sql.y:2917 { yyLOCAL = yyDollar[2].colNameUnion() } yyVAL.union = yyLOCAL case 520: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2921 +//line sql.y:2922 { yyVAL.str = "" } case 521: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2925 +//line sql.y:2926 { yyVAL.str = string(yyDollar[2].str) } case 522: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Literal -//line sql.y:2930 +//line sql.y:2931 { yyLOCAL = nil } @@ -13653,7 +13684,7 @@ yydefault: case 523: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Literal -//line sql.y:2934 +//line sql.y:2935 { yyLOCAL = NewIntLiteral(yyDollar[2].str) } @@ -13661,7 +13692,7 @@ yydefault: case 524: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Literal -//line sql.y:2938 +//line sql.y:2939 { yyLOCAL = NewDecimalLiteral(yyDollar[2].str) } @@ -13669,7 +13700,7 @@ yydefault: case 525: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2943 +//line sql.y:2944 { yyLOCAL = nil } @@ -13677,14 +13708,14 @@ yydefault: case 526: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2947 +//line sql.y:2948 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL case 527: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2951 +//line sql.y:2952 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &OrderByOption{Cols: yyDollar[5].columnsUnion()}) @@ -13692,14 +13723,14 @@ yydefault: case 528: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2955 +//line sql.y:2956 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL case 529: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2959 +//line sql.y:2960 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionsUnion()...) @@ -13707,7 +13738,7 @@ yydefault: case 530: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2963 +//line sql.y:2964 { yyLOCAL = append(append(yyDollar[1].alterOptionsUnion(), yyDollar[3].alterOptionsUnion()...), &OrderByOption{Cols: yyDollar[7].columnsUnion()}) } @@ -13715,21 +13746,21 @@ yydefault: case 531: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2969 +//line sql.y:2970 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL case 532: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2973 +//line sql.y:2974 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } case 533: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2977 +//line sql.y:2978 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) @@ -13737,7 +13768,7 @@ yydefault: case 534: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2983 +//line sql.y:2984 { yyLOCAL = yyDollar[1].tableOptionsUnion() } @@ -13745,7 +13776,7 @@ yydefault: case 535: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2987 +//line sql.y:2988 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } @@ -13753,7 +13784,7 @@ yydefault: case 536: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2991 +//line sql.y:2992 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } @@ -13761,7 +13792,7 @@ yydefault: case 537: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2995 +//line sql.y:2996 { yyLOCAL = &AddIndexDefinition{IndexDefinition: yyDollar[2].indexDefinitionUnion()} } @@ -13769,7 +13800,7 @@ yydefault: case 538: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2999 +//line sql.y:3000 { yyLOCAL = &AddColumns{Columns: yyDollar[4].columnDefinitionsUnion()} } @@ -13777,7 +13808,7 @@ yydefault: case 539: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3003 +//line sql.y:3004 { yyLOCAL = &AddColumns{Columns: []*ColumnDefinition{yyDollar[3].columnDefinitionUnion()}, First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()} } @@ -13785,7 +13816,7 @@ yydefault: case 540: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3007 +//line sql.y:3008 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: true} } @@ -13793,7 +13824,7 @@ yydefault: case 541: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3011 +//line sql.y:3012 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[6].exprUnion(), DefaultLiteral: true} } @@ -13801,7 +13832,7 @@ yydefault: case 542: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3015 +//line sql.y:3016 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[7].exprUnion()} } @@ -13809,7 +13840,7 @@ yydefault: case 543: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3019 +//line sql.y:3020 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), Invisible: ptr.Of(false)} } @@ -13817,7 +13848,7 @@ yydefault: case 544: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3023 +//line sql.y:3024 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), Invisible: ptr.Of(true)} } @@ -13825,7 +13856,7 @@ yydefault: case 545: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3027 +//line sql.y:3028 { yyLOCAL = &AlterCheck{Name: yyDollar[3].identifierCI, Enforced: yyDollar[4].booleanUnion()} } @@ -13833,7 +13864,7 @@ yydefault: case 546: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3031 +//line sql.y:3032 { yyLOCAL = &AlterIndex{Name: yyDollar[3].identifierCI, Invisible: false} } @@ -13841,7 +13872,7 @@ yydefault: case 547: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3035 +//line sql.y:3036 { yyLOCAL = &AlterIndex{Name: yyDollar[3].identifierCI, Invisible: true} } @@ -13849,7 +13880,7 @@ yydefault: case 548: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3039 +//line sql.y:3040 { yyLOCAL = &ChangeColumn{OldColumn: yyDollar[3].colNameUnion(), NewColDefinition: yyDollar[4].columnDefinitionUnion(), First: yyDollar[5].booleanUnion(), After: yyDollar[6].colNameUnion()} } @@ -13857,7 +13888,7 @@ yydefault: case 549: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3043 +//line sql.y:3044 { yyLOCAL = &ModifyColumn{NewColDefinition: yyDollar[3].columnDefinitionUnion(), First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()} } @@ -13865,7 +13896,7 @@ yydefault: case 550: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3047 +//line sql.y:3048 { yyLOCAL = &RenameColumn{OldName: yyDollar[3].colNameUnion(), NewName: yyDollar[5].colNameUnion()} } @@ -13873,7 +13904,7 @@ yydefault: case 551: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3051 +//line sql.y:3052 { yyLOCAL = &AlterCharset{CharacterSet: yyDollar[4].str, Collate: yyDollar[5].str} } @@ -13881,7 +13912,7 @@ yydefault: case 552: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3055 +//line sql.y:3056 { yyLOCAL = &KeyState{Enable: false} } @@ -13889,7 +13920,7 @@ yydefault: case 553: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3059 +//line sql.y:3060 { yyLOCAL = &KeyState{Enable: true} } @@ -13897,7 +13928,7 @@ yydefault: case 554: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3063 +//line sql.y:3064 { yyLOCAL = &TablespaceOperation{Import: false} } @@ -13905,7 +13936,7 @@ yydefault: case 555: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3067 +//line sql.y:3068 { yyLOCAL = &TablespaceOperation{Import: true} } @@ -13913,7 +13944,7 @@ yydefault: case 556: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3071 +//line sql.y:3072 { yyLOCAL = &DropColumn{Name: yyDollar[3].colNameUnion()} } @@ -13921,7 +13952,7 @@ yydefault: case 557: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3075 +//line sql.y:3076 { yyLOCAL = &DropKey{Type: NormalKeyType, Name: yyDollar[3].identifierCI} } @@ -13929,7 +13960,7 @@ yydefault: case 558: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3079 +//line sql.y:3080 { yyLOCAL = &DropKey{Type: PrimaryKeyType} } @@ -13937,7 +13968,7 @@ yydefault: case 559: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3083 +//line sql.y:3084 { yyLOCAL = &DropKey{Type: ForeignKeyType, Name: yyDollar[4].identifierCI} } @@ -13945,7 +13976,7 @@ yydefault: case 560: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3087 +//line sql.y:3088 { yyLOCAL = &DropKey{Type: CheckKeyType, Name: yyDollar[3].identifierCI} } @@ -13953,7 +13984,7 @@ yydefault: case 561: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3091 +//line sql.y:3092 { yyLOCAL = &DropKey{Type: CheckKeyType, Name: yyDollar[3].identifierCI} } @@ -13961,7 +13992,7 @@ yydefault: case 562: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3095 +//line sql.y:3096 { yyLOCAL = &Force{} } @@ -13969,7 +14000,7 @@ yydefault: case 563: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3099 +//line sql.y:3100 { yyLOCAL = &RenameTableName{Table: yyDollar[3].tableName} } @@ -13977,7 +14008,7 @@ yydefault: case 564: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3103 +//line sql.y:3104 { yyLOCAL = &RenameIndex{OldName: yyDollar[3].identifierCI, NewName: yyDollar[5].identifierCI} } @@ -13985,14 +14016,14 @@ yydefault: case 565: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:3109 +//line sql.y:3110 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL case 566: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3113 +//line sql.y:3114 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) @@ -14000,7 +14031,7 @@ yydefault: case 567: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3119 +//line sql.y:3120 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } @@ -14008,7 +14039,7 @@ yydefault: case 568: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3123 +//line sql.y:3124 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } @@ -14016,7 +14047,7 @@ yydefault: case 569: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3127 +//line sql.y:3128 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } @@ -14024,7 +14055,7 @@ yydefault: case 570: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3131 +//line sql.y:3132 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } @@ -14032,7 +14063,7 @@ yydefault: case 571: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3135 +//line sql.y:3136 { yyLOCAL = &LockOption{Type: DefaultType} } @@ -14040,7 +14071,7 @@ yydefault: case 572: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3139 +//line sql.y:3140 { yyLOCAL = &LockOption{Type: NoneType} } @@ -14048,7 +14079,7 @@ yydefault: case 573: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3143 +//line sql.y:3144 { yyLOCAL = &LockOption{Type: SharedType} } @@ -14056,7 +14087,7 @@ yydefault: case 574: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3147 +//line sql.y:3148 { yyLOCAL = &LockOption{Type: ExclusiveType} } @@ -14064,7 +14095,7 @@ yydefault: case 575: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3151 +//line sql.y:3152 { yyLOCAL = &Validation{With: true} } @@ -14072,7 +14103,7 @@ yydefault: case 576: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3155 +//line sql.y:3156 { yyLOCAL = &Validation{With: false} } @@ -14080,7 +14111,7 @@ yydefault: case 577: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3161 +//line sql.y:3162 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -14091,7 +14122,7 @@ yydefault: case 578: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3168 +//line sql.y:3169 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -14102,7 +14133,7 @@ yydefault: case 579: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3175 +//line sql.y:3176 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -14113,7 +14144,7 @@ yydefault: case 580: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:3182 +//line sql.y:3183 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[2].partSpecUnion() @@ -14123,7 +14154,7 @@ yydefault: case 581: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL Statement -//line sql.y:3188 +//line sql.y:3189 { yyLOCAL = &AlterView{ViewName: yyDollar[7].tableName, Comments: Comments(yyDollar[2].strs).Parsed(), Algorithm: yyDollar[3].str, Definer: yyDollar[4].definerUnion(), Security: yyDollar[5].str, Columns: yyDollar[8].columnsUnion(), Select: yyDollar[10].selStmtUnion(), CheckOption: yyDollar[11].str} } @@ -14131,7 +14162,7 @@ yydefault: case 582: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3198 +//line sql.y:3199 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].identifierCS @@ -14142,7 +14173,7 @@ yydefault: case 583: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3205 +//line sql.y:3206 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].identifierCS @@ -14153,7 +14184,7 @@ yydefault: case 584: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:3212 +//line sql.y:3213 { yyLOCAL = &AlterVschema{ Action: CreateVindexDDLAction, @@ -14169,7 +14200,7 @@ yydefault: case 585: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3224 +//line sql.y:3225 { yyLOCAL = &AlterVschema{ Action: DropVindexDDLAction, @@ -14183,7 +14214,7 @@ yydefault: case 586: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3234 +//line sql.y:3235 { yyLOCAL = &AlterVschema{Action: AddVschemaTableDDLAction, Table: yyDollar[6].tableName} } @@ -14191,7 +14222,7 @@ yydefault: case 587: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3238 +//line sql.y:3239 { yyLOCAL = &AlterVschema{Action: DropVschemaTableDDLAction, Table: yyDollar[6].tableName} } @@ -14199,7 +14230,7 @@ yydefault: case 588: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL Statement -//line sql.y:3242 +//line sql.y:3243 { yyLOCAL = &AlterVschema{ Action: AddColVindexDDLAction, @@ -14216,7 +14247,7 @@ yydefault: case 589: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:3255 +//line sql.y:3256 { yyLOCAL = &AlterVschema{ Action: DropColVindexDDLAction, @@ -14230,7 +14261,7 @@ yydefault: case 590: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3265 +//line sql.y:3266 { yyLOCAL = &AlterVschema{Action: AddSequenceDDLAction, Table: yyDollar[6].tableName} } @@ -14238,7 +14269,7 @@ yydefault: case 591: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3269 +//line sql.y:3270 { yyLOCAL = &AlterVschema{Action: DropSequenceDDLAction, Table: yyDollar[6].tableName} } @@ -14246,7 +14277,7 @@ yydefault: case 592: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Statement -//line sql.y:3273 +//line sql.y:3274 { yyLOCAL = &AlterVschema{ Action: AddAutoIncDDLAction, @@ -14261,7 +14292,7 @@ yydefault: case 593: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3284 +//line sql.y:3285 { yyLOCAL = &AlterVschema{ Action: DropAutoIncDDLAction, @@ -14272,7 +14303,7 @@ yydefault: case 594: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3291 +//line sql.y:3292 { yyLOCAL = &AlterMigration{ Type: RetryMigrationType, @@ -14283,7 +14314,7 @@ yydefault: case 595: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3298 +//line sql.y:3299 { yyLOCAL = &AlterMigration{ Type: CleanupMigrationType, @@ -14294,7 +14325,7 @@ yydefault: case 596: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3305 +//line sql.y:3306 { yyLOCAL = &AlterMigration{ Type: LaunchMigrationType, @@ -14305,7 +14336,7 @@ yydefault: case 597: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3312 +//line sql.y:3313 { yyLOCAL = &AlterMigration{ Type: LaunchMigrationType, @@ -14317,7 +14348,7 @@ yydefault: case 598: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3320 +//line sql.y:3321 { yyLOCAL = &AlterMigration{ Type: LaunchAllMigrationType, @@ -14327,7 +14358,7 @@ yydefault: case 599: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3326 +//line sql.y:3327 { yyLOCAL = &AlterMigration{ Type: CompleteMigrationType, @@ -14338,7 +14369,7 @@ yydefault: case 600: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3333 +//line sql.y:3334 { yyLOCAL = &AlterMigration{ Type: CompleteAllMigrationType, @@ -14348,7 +14379,7 @@ yydefault: case 601: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3339 +//line sql.y:3340 { yyLOCAL = &AlterMigration{ Type: CancelMigrationType, @@ -14359,7 +14390,7 @@ yydefault: case 602: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3346 +//line sql.y:3347 { yyLOCAL = &AlterMigration{ Type: CancelAllMigrationType, @@ -14369,7 +14400,7 @@ yydefault: case 603: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3352 +//line sql.y:3353 { yyLOCAL = &AlterMigration{ Type: ThrottleMigrationType, @@ -14382,7 +14413,7 @@ yydefault: case 604: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3361 +//line sql.y:3362 { yyLOCAL = &AlterMigration{ Type: ThrottleAllMigrationType, @@ -14394,7 +14425,7 @@ yydefault: case 605: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3369 +//line sql.y:3370 { yyLOCAL = &AlterMigration{ Type: UnthrottleMigrationType, @@ -14405,7 +14436,7 @@ yydefault: case 606: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3376 +//line sql.y:3377 { yyLOCAL = &AlterMigration{ Type: UnthrottleAllMigrationType, @@ -14415,7 +14446,7 @@ yydefault: case 607: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3382 +//line sql.y:3383 { yyLOCAL = &AlterMigration{ Type: ForceCutOverMigrationType, @@ -14426,7 +14457,7 @@ yydefault: case 608: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3389 +//line sql.y:3390 { yyLOCAL = &AlterMigration{ Type: ForceCutOverAllMigrationType, @@ -14436,7 +14467,7 @@ yydefault: case 609: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3396 +//line sql.y:3397 { yyLOCAL = nil } @@ -14444,7 +14475,7 @@ yydefault: case 610: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3400 +//line sql.y:3401 { yyDollar[3].partitionOptionUnion().Partitions = yyDollar[4].integerUnion() yyDollar[3].partitionOptionUnion().SubPartition = yyDollar[5].subPartitionUnion() @@ -14455,7 +14486,7 @@ yydefault: case 611: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3409 +//line sql.y:3410 { yyLOCAL = &PartitionOption{ IsLinear: yyDollar[1].booleanUnion(), @@ -14467,7 +14498,7 @@ yydefault: case 612: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3417 +//line sql.y:3418 { yyLOCAL = &PartitionOption{ IsLinear: yyDollar[1].booleanUnion(), @@ -14480,7 +14511,7 @@ yydefault: case 613: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3426 +//line sql.y:3427 { yyLOCAL = &PartitionOption{ Type: yyDollar[1].partitionByTypeUnion(), @@ -14491,7 +14522,7 @@ yydefault: case 614: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3433 +//line sql.y:3434 { yyLOCAL = &PartitionOption{ Type: yyDollar[1].partitionByTypeUnion(), @@ -14502,7 +14533,7 @@ yydefault: case 615: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SubPartition -//line sql.y:3441 +//line sql.y:3442 { yyLOCAL = nil } @@ -14510,7 +14541,7 @@ yydefault: case 616: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *SubPartition -//line sql.y:3445 +//line sql.y:3446 { yyLOCAL = &SubPartition{ IsLinear: yyDollar[3].booleanUnion(), @@ -14523,7 +14554,7 @@ yydefault: case 617: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SubPartition -//line sql.y:3454 +//line sql.y:3455 { yyLOCAL = &SubPartition{ IsLinear: yyDollar[3].booleanUnion(), @@ -14537,7 +14568,7 @@ yydefault: case 618: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:3465 +//line sql.y:3466 { yyLOCAL = nil } @@ -14545,7 +14576,7 @@ yydefault: case 619: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:3469 +//line sql.y:3470 { yyLOCAL = yyDollar[2].partDefsUnion() } @@ -14553,7 +14584,7 @@ yydefault: case 620: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3474 +//line sql.y:3475 { yyLOCAL = false } @@ -14561,7 +14592,7 @@ yydefault: case 621: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3478 +//line sql.y:3479 { yyLOCAL = true } @@ -14569,7 +14600,7 @@ yydefault: case 622: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int -//line sql.y:3483 +//line sql.y:3484 { yyLOCAL = 0 } @@ -14577,7 +14608,7 @@ yydefault: case 623: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int -//line sql.y:3487 +//line sql.y:3488 { yyLOCAL = convertStringToInt(yyDollar[3].str) } @@ -14585,7 +14616,7 @@ yydefault: case 624: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3493 +//line sql.y:3494 { yyLOCAL = &JSONTableExpr{Expr: yyDollar[3].exprUnion(), Filter: yyDollar[5].exprUnion(), Columns: yyDollar[6].jtColumnListUnion(), Alias: yyDollar[8].identifierCS} } @@ -14593,7 +14624,7 @@ yydefault: case 625: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL []*JtColumnDefinition -//line sql.y:3499 +//line sql.y:3500 { yyLOCAL = yyDollar[3].jtColumnListUnion() } @@ -14601,14 +14632,14 @@ yydefault: case 626: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*JtColumnDefinition -//line sql.y:3505 +//line sql.y:3506 { yyLOCAL = []*JtColumnDefinition{yyDollar[1].jtColumnDefinitionUnion()} } yyVAL.union = yyLOCAL case 627: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3509 +//line sql.y:3510 { yySLICE := (*[]*JtColumnDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].jtColumnDefinitionUnion()) @@ -14616,7 +14647,7 @@ yydefault: case 628: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3515 +//line sql.y:3516 { yyLOCAL = &JtColumnDefinition{JtOrdinal: &JtOrdinalColDef{Name: yyDollar[1].identifierCI}} } @@ -14624,7 +14655,7 @@ yydefault: case 629: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3519 +//line sql.y:3520 { yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str} jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion()} @@ -14634,7 +14665,7 @@ yydefault: case 630: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3525 +//line sql.y:3526 { yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str} jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion()} @@ -14644,7 +14675,7 @@ yydefault: case 631: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3531 +//line sql.y:3532 { yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str} jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), ErrorOnResponse: yyDollar[7].jtOnResponseUnion()} @@ -14654,7 +14685,7 @@ yydefault: case 632: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3537 +//line sql.y:3538 { yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str} jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion(), ErrorOnResponse: yyDollar[8].jtOnResponseUnion()} @@ -14664,7 +14695,7 @@ yydefault: case 633: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3543 +//line sql.y:3544 { jtNestedPath := &JtNestedPathColDef{Path: yyDollar[3].exprUnion(), Columns: yyDollar[4].jtColumnListUnion()} yyLOCAL = &JtColumnDefinition{JtNestedPath: jtNestedPath} @@ -14673,7 +14704,7 @@ yydefault: case 634: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3549 +//line sql.y:3550 { yyLOCAL = false } @@ -14681,7 +14712,7 @@ yydefault: case 635: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3553 +//line sql.y:3554 { yyLOCAL = true } @@ -14689,7 +14720,7 @@ yydefault: case 636: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3557 +//line sql.y:3558 { yyLOCAL = false } @@ -14697,7 +14728,7 @@ yydefault: case 637: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3561 +//line sql.y:3562 { yyLOCAL = true } @@ -14705,7 +14736,7 @@ yydefault: case 638: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:3567 +//line sql.y:3568 { yyLOCAL = yyDollar[1].jtOnResponseUnion() } @@ -14713,7 +14744,7 @@ yydefault: case 639: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:3573 +//line sql.y:3574 { yyLOCAL = yyDollar[1].jtOnResponseUnion() } @@ -14721,7 +14752,7 @@ yydefault: case 640: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:3579 +//line sql.y:3580 { yyLOCAL = &JtOnResponse{ResponseType: ErrorJSONType} } @@ -14729,7 +14760,7 @@ yydefault: case 641: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:3583 +//line sql.y:3584 { yyLOCAL = &JtOnResponse{ResponseType: NullJSONType} } @@ -14737,7 +14768,7 @@ yydefault: case 642: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:3587 +//line sql.y:3588 { yyLOCAL = &JtOnResponse{ResponseType: DefaultJSONType, Expr: yyDollar[2].exprUnion()} } @@ -14745,7 +14776,7 @@ yydefault: case 643: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL PartitionByType -//line sql.y:3593 +//line sql.y:3594 { yyLOCAL = RangeType } @@ -14753,7 +14784,7 @@ yydefault: case 644: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL PartitionByType -//line sql.y:3597 +//line sql.y:3598 { yyLOCAL = ListType } @@ -14761,7 +14792,7 @@ yydefault: case 645: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int -//line sql.y:3602 +//line sql.y:3603 { yyLOCAL = -1 } @@ -14769,7 +14800,7 @@ yydefault: case 646: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int -//line sql.y:3606 +//line sql.y:3607 { yyLOCAL = convertStringToInt(yyDollar[2].str) } @@ -14777,7 +14808,7 @@ yydefault: case 647: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int -//line sql.y:3611 +//line sql.y:3612 { yyLOCAL = -1 } @@ -14785,7 +14816,7 @@ yydefault: case 648: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int -//line sql.y:3615 +//line sql.y:3616 { yyLOCAL = convertStringToInt(yyDollar[2].str) } @@ -14793,7 +14824,7 @@ yydefault: case 649: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3621 +//line sql.y:3622 { yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}} } @@ -14801,7 +14832,7 @@ yydefault: case 650: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3625 +//line sql.y:3626 { yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()} } @@ -14809,7 +14840,7 @@ yydefault: case 651: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3629 +//line sql.y:3630 { yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()} } @@ -14817,7 +14848,7 @@ yydefault: case 652: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3633 +//line sql.y:3634 { yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()} } @@ -14825,7 +14856,7 @@ yydefault: case 653: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3637 +//line sql.y:3638 { yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true} } @@ -14833,7 +14864,7 @@ yydefault: case 654: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3641 +//line sql.y:3642 { yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()} } @@ -14841,7 +14872,7 @@ yydefault: case 655: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3645 +//line sql.y:3646 { yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true} } @@ -14849,7 +14880,7 @@ yydefault: case 656: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3649 +//line sql.y:3650 { yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()} } @@ -14857,7 +14888,7 @@ yydefault: case 657: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3653 +//line sql.y:3654 { yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true} } @@ -14865,7 +14896,7 @@ yydefault: case 658: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3657 +//line sql.y:3658 { yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)} } @@ -14873,7 +14904,7 @@ yydefault: case 659: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3661 +//line sql.y:3662 { yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].identifierCI}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()} } @@ -14881,7 +14912,7 @@ yydefault: case 660: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3665 +//line sql.y:3666 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()} } @@ -14889,7 +14920,7 @@ yydefault: case 661: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3669 +//line sql.y:3670 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true} } @@ -14897,7 +14928,7 @@ yydefault: case 662: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3673 +//line sql.y:3674 { yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()} } @@ -14905,7 +14936,7 @@ yydefault: case 663: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3677 +//line sql.y:3678 { yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true} } @@ -14913,7 +14944,7 @@ yydefault: case 664: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3681 +//line sql.y:3682 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()} } @@ -14921,7 +14952,7 @@ yydefault: case 665: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3685 +//line sql.y:3686 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true} } @@ -14929,7 +14960,7 @@ yydefault: case 666: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3689 +//line sql.y:3690 { yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()} } @@ -14937,7 +14968,7 @@ yydefault: case 667: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3693 +//line sql.y:3694 { yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true} } @@ -14945,7 +14976,7 @@ yydefault: case 668: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3697 +//line sql.y:3698 { yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()} } @@ -14953,7 +14984,7 @@ yydefault: case 669: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3701 +//line sql.y:3702 { yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true} } @@ -14961,7 +14992,7 @@ yydefault: case 670: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3705 +//line sql.y:3706 { yyLOCAL = &PartitionSpec{Action: UpgradeAction} } @@ -14969,7 +15000,7 @@ yydefault: case 671: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3710 +//line sql.y:3711 { yyLOCAL = false } @@ -14977,7 +15008,7 @@ yydefault: case 672: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3714 +//line sql.y:3715 { yyLOCAL = false } @@ -14985,7 +15016,7 @@ yydefault: case 673: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3718 +//line sql.y:3719 { yyLOCAL = true } @@ -14993,28 +15024,28 @@ yydefault: case 674: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:3724 +//line sql.y:3725 { yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()} } yyVAL.union = yyLOCAL case 675: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3728 +//line sql.y:3729 { yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].partDefUnion()) } case 676: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3734 +//line sql.y:3735 { yyVAL.partDefUnion().Options = yyDollar[2].partitionDefinitionOptionsUnion() } case 677: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3739 +//line sql.y:3740 { yyLOCAL = &PartitionDefinitionOptions{} } @@ -15022,7 +15053,7 @@ yydefault: case 678: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3743 +//line sql.y:3744 { yyDollar[1].partitionDefinitionOptionsUnion().ValueRange = yyDollar[2].partitionValueRangeUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() @@ -15031,7 +15062,7 @@ yydefault: case 679: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3748 +//line sql.y:3749 { yyDollar[1].partitionDefinitionOptionsUnion().Comment = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() @@ -15040,7 +15071,7 @@ yydefault: case 680: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3753 +//line sql.y:3754 { yyDollar[1].partitionDefinitionOptionsUnion().Engine = yyDollar[2].partitionEngineUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() @@ -15049,7 +15080,7 @@ yydefault: case 681: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3758 +//line sql.y:3759 { yyDollar[1].partitionDefinitionOptionsUnion().DataDirectory = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() @@ -15058,7 +15089,7 @@ yydefault: case 682: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3763 +//line sql.y:3764 { yyDollar[1].partitionDefinitionOptionsUnion().IndexDirectory = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() @@ -15067,7 +15098,7 @@ yydefault: case 683: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3768 +//line sql.y:3769 { yyDollar[1].partitionDefinitionOptionsUnion().MaxRows = ptr.Of(yyDollar[2].integerUnion()) yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() @@ -15076,7 +15107,7 @@ yydefault: case 684: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3773 +//line sql.y:3774 { yyDollar[1].partitionDefinitionOptionsUnion().MinRows = ptr.Of(yyDollar[2].integerUnion()) yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() @@ -15085,7 +15116,7 @@ yydefault: case 685: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3778 +//line sql.y:3779 { yyDollar[1].partitionDefinitionOptionsUnion().TableSpace = yyDollar[2].str yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() @@ -15094,7 +15125,7 @@ yydefault: case 686: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3783 +//line sql.y:3784 { yyDollar[1].partitionDefinitionOptionsUnion().SubPartitionDefinitions = yyDollar[2].subPartitionDefinitionsUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() @@ -15103,7 +15134,7 @@ yydefault: case 687: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SubPartitionDefinitions -//line sql.y:3789 +//line sql.y:3790 { yyLOCAL = yyDollar[2].subPartitionDefinitionsUnion() } @@ -15111,14 +15142,14 @@ yydefault: case 688: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SubPartitionDefinitions -//line sql.y:3795 +//line sql.y:3796 { yyLOCAL = SubPartitionDefinitions{yyDollar[1].subPartitionDefinitionUnion()} } yyVAL.union = yyLOCAL case 689: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3799 +//line sql.y:3800 { yySLICE := (*SubPartitionDefinitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].subPartitionDefinitionUnion()) @@ -15126,7 +15157,7 @@ yydefault: case 690: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SubPartitionDefinition -//line sql.y:3805 +//line sql.y:3806 { yyLOCAL = &SubPartitionDefinition{Name: yyDollar[2].identifierCI, Options: yyDollar[3].subPartitionDefinitionOptionsUnion()} } @@ -15134,7 +15165,7 @@ yydefault: case 691: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3810 +//line sql.y:3811 { yyLOCAL = &SubPartitionDefinitionOptions{} } @@ -15142,7 +15173,7 @@ yydefault: case 692: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3814 +//line sql.y:3815 { yyDollar[1].subPartitionDefinitionOptionsUnion().Comment = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() @@ -15151,7 +15182,7 @@ yydefault: case 693: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3819 +//line sql.y:3820 { yyDollar[1].subPartitionDefinitionOptionsUnion().Engine = yyDollar[2].partitionEngineUnion() yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() @@ -15160,7 +15191,7 @@ yydefault: case 694: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3824 +//line sql.y:3825 { yyDollar[1].subPartitionDefinitionOptionsUnion().DataDirectory = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() @@ -15169,7 +15200,7 @@ yydefault: case 695: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3829 +//line sql.y:3830 { yyDollar[1].subPartitionDefinitionOptionsUnion().IndexDirectory = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() @@ -15178,7 +15209,7 @@ yydefault: case 696: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3834 +//line sql.y:3835 { yyDollar[1].subPartitionDefinitionOptionsUnion().MaxRows = ptr.Of(yyDollar[2].integerUnion()) yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() @@ -15187,7 +15218,7 @@ yydefault: case 697: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3839 +//line sql.y:3840 { yyDollar[1].subPartitionDefinitionOptionsUnion().MinRows = ptr.Of(yyDollar[2].integerUnion()) yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() @@ -15196,7 +15227,7 @@ yydefault: case 698: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3844 +//line sql.y:3845 { yyDollar[1].subPartitionDefinitionOptionsUnion().TableSpace = yyDollar[2].str yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() @@ -15205,7 +15236,7 @@ yydefault: case 699: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionValueRange -//line sql.y:3851 +//line sql.y:3852 { yyLOCAL = &PartitionValueRange{ Type: LessThanType, @@ -15216,7 +15247,7 @@ yydefault: case 700: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionValueRange -//line sql.y:3858 +//line sql.y:3859 { yyLOCAL = &PartitionValueRange{ Type: LessThanType, @@ -15227,7 +15258,7 @@ yydefault: case 701: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionValueRange -//line sql.y:3865 +//line sql.y:3866 { yyLOCAL = &PartitionValueRange{ Type: InType, @@ -15238,7 +15269,7 @@ yydefault: case 702: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3873 +//line sql.y:3874 { yyLOCAL = false } @@ -15246,7 +15277,7 @@ yydefault: case 703: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3877 +//line sql.y:3878 { yyLOCAL = true } @@ -15254,7 +15285,7 @@ yydefault: case 704: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionEngine -//line sql.y:3883 +//line sql.y:3884 { yyLOCAL = &PartitionEngine{Storage: yyDollar[1].booleanUnion(), Name: yyDollar[4].identifierCS.String()} } @@ -15262,7 +15293,7 @@ yydefault: case 705: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Literal -//line sql.y:3889 +//line sql.y:3890 { yyLOCAL = NewStrLiteral(yyDollar[3].str) } @@ -15270,7 +15301,7 @@ yydefault: case 706: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Literal -//line sql.y:3895 +//line sql.y:3896 { yyLOCAL = NewStrLiteral(yyDollar[4].str) } @@ -15278,7 +15309,7 @@ yydefault: case 707: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Literal -//line sql.y:3901 +//line sql.y:3902 { yyLOCAL = NewStrLiteral(yyDollar[4].str) } @@ -15286,7 +15317,7 @@ yydefault: case 708: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int -//line sql.y:3907 +//line sql.y:3908 { yyLOCAL = convertStringToInt(yyDollar[3].str) } @@ -15294,41 +15325,41 @@ yydefault: case 709: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int -//line sql.y:3913 +//line sql.y:3914 { yyLOCAL = convertStringToInt(yyDollar[3].str) } yyVAL.union = yyLOCAL case 710: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3919 +//line sql.y:3920 { yyVAL.str = yyDollar[3].identifierCS.String() } case 711: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:3925 +//line sql.y:3926 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].identifierCI} } yyVAL.union = yyLOCAL case 712: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3931 +//line sql.y:3932 { yyVAL.str = "" } case 713: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3935 +//line sql.y:3936 { yyVAL.str = "" } case 714: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3941 +//line sql.y:3942 { yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()} } @@ -15336,14 +15367,14 @@ yydefault: case 715: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*RenameTablePair -//line sql.y:3947 +//line sql.y:3948 { yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}} } yyVAL.union = yyLOCAL case 716: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3951 +//line sql.y:3952 { yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName}) @@ -15351,7 +15382,7 @@ yydefault: case 717: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3957 +//line sql.y:3958 { yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs).Parsed(), Temp: yyDollar[3].booleanUnion()} } @@ -15359,7 +15390,7 @@ yydefault: case 718: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3961 +//line sql.y:3962 { // Change this to an alter statement if yyDollar[4].identifierCI.Lowered() == "primary" { @@ -15372,7 +15403,7 @@ yydefault: case 719: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3970 +//line sql.y:3971 { yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), Comments: Comments(yyDollar[2].strs).Parsed(), IfExists: yyDollar[4].booleanUnion()} } @@ -15380,7 +15411,7 @@ yydefault: case 720: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3974 +//line sql.y:3975 { yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs).Parsed(), DBName: yyDollar[5].identifierCS, IfExists: yyDollar[4].booleanUnion()} } @@ -15388,7 +15419,7 @@ yydefault: case 721: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3980 +//line sql.y:3981 { yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName} } @@ -15396,7 +15427,7 @@ yydefault: case 722: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:3984 +//line sql.y:3985 { yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName} } @@ -15404,7 +15435,7 @@ yydefault: case 723: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3990 +//line sql.y:3991 { yyLOCAL = &Analyze{IsLocal: yyDollar[2].booleanUnion(), Table: yyDollar[4].tableName} } @@ -15412,7 +15443,7 @@ yydefault: case 724: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3996 +//line sql.y:3997 { yyLOCAL = &PurgeBinaryLogs{To: string(yyDollar[5].str)} } @@ -15420,7 +15451,7 @@ yydefault: case 725: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4000 +//line sql.y:4001 { yyLOCAL = &PurgeBinaryLogs{Before: string(yyDollar[5].str)} } @@ -15428,7 +15459,7 @@ yydefault: case 726: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4006 +//line sql.y:4007 { yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}} } @@ -15436,7 +15467,7 @@ yydefault: case 727: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4010 +//line sql.y:4011 { yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}} } @@ -15444,7 +15475,7 @@ yydefault: case 728: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:4014 +//line sql.y:4015 { yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].identifierCS, Filter: yyDollar[7].showFilterUnion()}} } @@ -15452,7 +15483,7 @@ yydefault: case 729: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4018 +//line sql.y:4019 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } @@ -15460,7 +15491,7 @@ yydefault: case 730: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4022 +//line sql.y:4023 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } @@ -15468,7 +15499,7 @@ yydefault: case 731: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4026 +//line sql.y:4027 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } @@ -15476,7 +15507,7 @@ yydefault: case 732: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4030 +//line sql.y:4031 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } @@ -15484,7 +15515,7 @@ yydefault: case 733: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4034 +//line sql.y:4035 { yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}} } @@ -15492,7 +15523,7 @@ yydefault: case 734: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:4038 +//line sql.y:4039 { yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].identifierCS, Filter: yyDollar[7].showFilterUnion()}} } @@ -15500,7 +15531,7 @@ yydefault: case 735: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4042 +//line sql.y:4043 { yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].identifierCS, Filter: yyDollar[5].showFilterUnion()}} } @@ -15508,7 +15539,7 @@ yydefault: case 736: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4046 +//line sql.y:4047 { yyLOCAL = &Show{&ShowBasic{Command: Privilege}} } @@ -15516,7 +15547,7 @@ yydefault: case 737: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4050 +//line sql.y:4051 { yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}} } @@ -15524,7 +15555,7 @@ yydefault: case 738: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4054 +//line sql.y:4055 { yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}} } @@ -15532,7 +15563,7 @@ yydefault: case 739: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4058 +//line sql.y:4059 { yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}} } @@ -15540,7 +15571,7 @@ yydefault: case 740: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4062 +//line sql.y:4063 { yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}} } @@ -15548,7 +15579,7 @@ yydefault: case 741: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4066 +//line sql.y:4067 { yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}} } @@ -15556,7 +15587,7 @@ yydefault: case 742: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4070 +//line sql.y:4071 { yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].identifierCS, Filter: yyDollar[5].showFilterUnion()}} } @@ -15564,7 +15595,7 @@ yydefault: case 743: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4074 +//line sql.y:4075 { yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].identifierCS, Filter: yyDollar[5].showFilterUnion()}} } @@ -15572,7 +15603,7 @@ yydefault: case 744: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4078 +//line sql.y:4079 { yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].identifierCS, Filter: yyDollar[4].showFilterUnion()}} } @@ -15580,7 +15611,7 @@ yydefault: case 745: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4082 +//line sql.y:4083 { yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}} } @@ -15588,7 +15619,7 @@ yydefault: case 746: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4086 +//line sql.y:4087 { yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}} } @@ -15596,7 +15627,7 @@ yydefault: case 747: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4090 +//line sql.y:4091 { yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}} } @@ -15604,7 +15635,7 @@ yydefault: case 748: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4094 +//line sql.y:4095 { yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}} } @@ -15612,7 +15643,7 @@ yydefault: case 749: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4098 +//line sql.y:4099 { yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}} } @@ -15620,7 +15651,7 @@ yydefault: case 750: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4102 +//line sql.y:4103 { yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}} } @@ -15628,7 +15659,7 @@ yydefault: case 751: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4106 +//line sql.y:4107 { yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}} } @@ -15636,7 +15667,7 @@ yydefault: case 752: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4110 +//line sql.y:4111 { yyLOCAL = &Show{&ShowBasic{Command: Engines}} } @@ -15644,7 +15675,7 @@ yydefault: case 753: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4114 +//line sql.y:4115 { yyLOCAL = &Show{&ShowBasic{Command: Plugins}} } @@ -15652,7 +15683,7 @@ yydefault: case 754: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4118 +//line sql.y:4119 { yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].identifierCS}} } @@ -15660,7 +15691,7 @@ yydefault: case 755: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4122 +//line sql.y:4123 { yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].identifierCS}} } @@ -15668,7 +15699,7 @@ yydefault: case 756: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4126 +//line sql.y:4127 { yyLOCAL = &Show{&ShowBasic{Command: VitessVariables, Filter: yyDollar[4].showFilterUnion()}} } @@ -15676,7 +15707,7 @@ yydefault: case 757: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4130 +//line sql.y:4131 { yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].identifierCS}} } @@ -15684,7 +15715,7 @@ yydefault: case 758: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4134 +//line sql.y:4135 { yyLOCAL = &ShowMigrationLogs{UUID: string(yyDollar[3].str)} } @@ -15692,7 +15723,7 @@ yydefault: case 759: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4138 +//line sql.y:4139 { yyLOCAL = &ShowThrottledApps{} } @@ -15700,7 +15731,7 @@ yydefault: case 760: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4142 +//line sql.y:4143 { yyLOCAL = &Show{&ShowBasic{Command: VitessReplicationStatus, Filter: yyDollar[3].showFilterUnion()}} } @@ -15708,7 +15739,7 @@ yydefault: case 761: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4146 +//line sql.y:4147 { yyLOCAL = &ShowThrottlerStatus{} } @@ -15716,7 +15747,7 @@ yydefault: case 762: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4150 +//line sql.y:4151 { yyLOCAL = &Show{&ShowBasic{Command: VschemaTables}} } @@ -15724,7 +15755,7 @@ yydefault: case 763: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4154 +//line sql.y:4155 { yyLOCAL = &Show{&ShowBasic{Command: VschemaKeyspaces}} } @@ -15732,7 +15763,7 @@ yydefault: case 764: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4158 +//line sql.y:4159 { yyLOCAL = &Show{&ShowBasic{Command: VschemaVindexes}} } @@ -15740,7 +15771,7 @@ yydefault: case 765: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4162 +//line sql.y:4163 { yyLOCAL = &Show{&ShowBasic{Command: VschemaVindexes, Tbl: yyDollar[5].tableName}} } @@ -15748,7 +15779,7 @@ yydefault: case 766: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4166 +//line sql.y:4167 { yyLOCAL = &Show{&ShowBasic{Command: Warnings}} } @@ -15756,7 +15787,7 @@ yydefault: case 767: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4170 +//line sql.y:4171 { yyLOCAL = &Show{&ShowBasic{Command: VitessShards, Filter: yyDollar[3].showFilterUnion()}} } @@ -15764,7 +15795,7 @@ yydefault: case 768: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4174 +//line sql.y:4175 { yyLOCAL = &Show{&ShowBasic{Command: VitessTablets, Filter: yyDollar[3].showFilterUnion()}} } @@ -15772,7 +15803,7 @@ yydefault: case 769: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4178 +//line sql.y:4179 { yyLOCAL = &Show{&ShowBasic{Command: VitessTarget}} } @@ -15780,7 +15811,7 @@ yydefault: case 770: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4185 +//line sql.y:4186 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].identifierCI.String())}} } @@ -15788,7 +15819,7 @@ yydefault: case 771: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4189 +//line sql.y:4190 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str)}} } @@ -15796,7 +15827,7 @@ yydefault: case 772: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4193 +//line sql.y:4194 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + yyDollar[3].identifierCI.String()}} } @@ -15804,7 +15835,7 @@ yydefault: case 773: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4197 +//line sql.y:4198 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str)}} } @@ -15812,7 +15843,7 @@ yydefault: case 774: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4201 +//line sql.y:4202 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str)}} } @@ -15820,7 +15851,7 @@ yydefault: case 775: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4205 +//line sql.y:4206 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str) + " " + String(yyDollar[4].tableName)}} } @@ -15828,7 +15859,7 @@ yydefault: case 776: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4209 +//line sql.y:4210 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str) + " " + String(yyDollar[4].tableName)}} } @@ -15836,7 +15867,7 @@ yydefault: case 777: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4213 +//line sql.y:4214 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[3].str)}} } @@ -15844,27 +15875,27 @@ yydefault: case 778: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4217 +//line sql.y:4218 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str)}} } yyVAL.union = yyLOCAL case 779: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4223 +//line sql.y:4224 { yyVAL.str = "" } case 780: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4227 +//line sql.y:4228 { yyVAL.str = "extended " } case 781: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4233 +//line sql.y:4234 { yyLOCAL = false } @@ -15872,45 +15903,45 @@ yydefault: case 782: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4237 +//line sql.y:4238 { yyLOCAL = true } yyVAL.union = yyLOCAL case 783: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4243 +//line sql.y:4244 { yyVAL.str = string(yyDollar[1].str) } case 784: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4247 +//line sql.y:4248 { yyVAL.str = string(yyDollar[1].str) } case 785: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4253 +//line sql.y:4254 { yyVAL.identifierCS = NewIdentifierCS("") } case 786: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4257 +//line sql.y:4258 { yyVAL.identifierCS = yyDollar[2].identifierCS } case 787: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4261 +//line sql.y:4262 { yyVAL.identifierCS = yyDollar[2].identifierCS } case 788: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4267 +//line sql.y:4268 { yyLOCAL = nil } @@ -15918,7 +15949,7 @@ yydefault: case 789: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4271 +//line sql.y:4272 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } @@ -15926,7 +15957,7 @@ yydefault: case 790: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4275 +//line sql.y:4276 { yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()} } @@ -15934,7 +15965,7 @@ yydefault: case 791: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4281 +//line sql.y:4282 { yyLOCAL = nil } @@ -15942,45 +15973,45 @@ yydefault: case 792: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4285 +//line sql.y:4286 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL case 793: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4291 +//line sql.y:4292 { yyVAL.empty = struct{}{} } case 794: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4295 +//line sql.y:4296 { yyVAL.empty = struct{}{} } case 795: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4299 +//line sql.y:4300 { yyVAL.empty = struct{}{} } case 796: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4305 +//line sql.y:4306 { yyVAL.str = string(yyDollar[1].str) } case 797: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4309 +//line sql.y:4310 { yyVAL.str = string(yyDollar[1].str) } case 798: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4315 +//line sql.y:4316 { yyLOCAL = &Use{DBName: yyDollar[2].identifierCS} } @@ -15988,7 +16019,7 @@ yydefault: case 799: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4319 +//line sql.y:4320 { yyLOCAL = &Use{DBName: IdentifierCS{v: ""}} } @@ -15996,39 +16027,39 @@ yydefault: case 800: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4323 +//line sql.y:4324 { yyLOCAL = &Use{DBName: NewIdentifierCS(yyDollar[2].identifierCS.String() + "@" + string(yyDollar[3].str))} } yyVAL.union = yyLOCAL case 801: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4330 +//line sql.y:4331 { yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str)) } case 802: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4334 +//line sql.y:4335 { yyVAL.identifierCS = NewIdentifierCS("@" + string(yyDollar[1].str)) } case 803: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4338 +//line sql.y:4339 { yyVAL.identifierCS = NewIdentifierCS("@@" + string(yyDollar[1].str)) } case 804: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4342 +//line sql.y:4343 { yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str)) } case 805: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4349 +//line sql.y:4350 { yyLOCAL = &Begin{} } @@ -16036,7 +16067,7 @@ yydefault: case 806: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4353 +//line sql.y:4354 { yyLOCAL = &Begin{TxAccessModes: yyDollar[3].txAccessModesUnion()} } @@ -16044,7 +16075,7 @@ yydefault: case 807: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []TxAccessMode -//line sql.y:4358 +//line sql.y:4359 { yyLOCAL = nil } @@ -16052,7 +16083,7 @@ yydefault: case 808: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []TxAccessMode -//line sql.y:4362 +//line sql.y:4363 { yyLOCAL = yyDollar[1].txAccessModesUnion() } @@ -16060,14 +16091,14 @@ yydefault: case 809: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []TxAccessMode -//line sql.y:4368 +//line sql.y:4369 { yyLOCAL = []TxAccessMode{yyDollar[1].txAccessModeUnion()} } yyVAL.union = yyLOCAL case 810: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4372 +//line sql.y:4373 { yySLICE := (*[]TxAccessMode)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].txAccessModeUnion()) @@ -16075,7 +16106,7 @@ yydefault: case 811: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TxAccessMode -//line sql.y:4378 +//line sql.y:4379 { yyLOCAL = WithConsistentSnapshot } @@ -16083,7 +16114,7 @@ yydefault: case 812: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TxAccessMode -//line sql.y:4382 +//line sql.y:4383 { yyLOCAL = ReadWrite } @@ -16091,7 +16122,7 @@ yydefault: case 813: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TxAccessMode -//line sql.y:4386 +//line sql.y:4387 { yyLOCAL = ReadOnly } @@ -16099,7 +16130,7 @@ yydefault: case 814: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4393 +//line sql.y:4394 { yyLOCAL = &Commit{} } @@ -16107,7 +16138,7 @@ yydefault: case 815: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4399 +//line sql.y:4400 { yyLOCAL = &Rollback{} } @@ -16115,39 +16146,39 @@ yydefault: case 816: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4403 +//line sql.y:4404 { yyLOCAL = &SRollback{Name: yyDollar[5].identifierCI} } yyVAL.union = yyLOCAL case 817: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4408 +//line sql.y:4409 { yyVAL.empty = struct{}{} } case 818: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4410 +//line sql.y:4411 { yyVAL.empty = struct{}{} } case 819: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4413 +//line sql.y:4414 { yyVAL.empty = struct{}{} } case 820: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4415 +//line sql.y:4416 { yyVAL.empty = struct{}{} } case 821: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4419 +//line sql.y:4420 { yyLOCAL = &Savepoint{Name: yyDollar[2].identifierCI} } @@ -16155,7 +16186,7 @@ yydefault: case 822: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4425 +//line sql.y:4426 { yyLOCAL = &Release{Name: yyDollar[3].identifierCI} } @@ -16163,7 +16194,7 @@ yydefault: case 823: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL ExplainType -//line sql.y:4430 +//line sql.y:4431 { yyLOCAL = EmptyType } @@ -16171,7 +16202,7 @@ yydefault: case 824: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:4434 +//line sql.y:4435 { yyLOCAL = JSONType } @@ -16179,7 +16210,7 @@ yydefault: case 825: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:4438 +//line sql.y:4439 { yyLOCAL = TreeType } @@ -16187,7 +16218,7 @@ yydefault: case 826: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:4442 +//line sql.y:4443 { yyLOCAL = TraditionalType } @@ -16195,7 +16226,7 @@ yydefault: case 827: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ExplainType -//line sql.y:4446 +//line sql.y:4447 { yyLOCAL = AnalyzeType } @@ -16203,7 +16234,7 @@ yydefault: case 828: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL VExplainType -//line sql.y:4451 +//line sql.y:4452 { yyLOCAL = PlanVExplainType } @@ -16211,7 +16242,7 @@ yydefault: case 829: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL VExplainType -//line sql.y:4455 +//line sql.y:4456 { yyLOCAL = PlanVExplainType } @@ -16219,7 +16250,7 @@ yydefault: case 830: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL VExplainType -//line sql.y:4459 +//line sql.y:4460 { yyLOCAL = AllVExplainType } @@ -16227,33 +16258,33 @@ yydefault: case 831: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL VExplainType -//line sql.y:4463 +//line sql.y:4464 { yyLOCAL = QueriesVExplainType } yyVAL.union = yyLOCAL case 832: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4469 +//line sql.y:4470 { yyVAL.str = yyDollar[1].str } case 833: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4473 +//line sql.y:4474 { yyVAL.str = yyDollar[1].str } case 834: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4477 +//line sql.y:4478 { yyVAL.str = yyDollar[1].str } case 835: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4483 +//line sql.y:4484 { yyLOCAL = yyDollar[1].selStmtUnion() } @@ -16261,7 +16292,7 @@ yydefault: case 836: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4487 +//line sql.y:4488 { yyLOCAL = yyDollar[1].statementUnion() } @@ -16269,7 +16300,7 @@ yydefault: case 837: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4491 +//line sql.y:4492 { yyLOCAL = yyDollar[1].statementUnion() } @@ -16277,33 +16308,33 @@ yydefault: case 838: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4495 +//line sql.y:4496 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL case 839: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4500 +//line sql.y:4501 { yyVAL.str = "" } case 840: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4504 +//line sql.y:4505 { yyVAL.str = yyDollar[1].identifierCI.val } case 841: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4508 +//line sql.y:4509 { yyVAL.str = encodeSQLString(yyDollar[1].str) } case 842: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4514 +//line sql.y:4515 { yyLOCAL = &ExplainTab{Table: yyDollar[3].tableName, Wild: yyDollar[4].str} } @@ -16311,7 +16342,7 @@ yydefault: case 843: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4518 +//line sql.y:4519 { yyLOCAL = &ExplainStmt{Type: yyDollar[3].explainTypeUnion(), Statement: yyDollar[4].statementUnion(), Comments: Comments(yyDollar[2].strs).Parsed()} } @@ -16319,7 +16350,7 @@ yydefault: case 844: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4524 +//line sql.y:4525 { yyLOCAL = &VExplainStmt{Type: yyDollar[3].vexplainTypeUnion(), Statement: yyDollar[4].statementUnion(), Comments: Comments(yyDollar[2].strs).Parsed()} } @@ -16327,7 +16358,7 @@ yydefault: case 845: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4530 +//line sql.y:4531 { yyLOCAL = &OtherAdmin{} } @@ -16335,7 +16366,7 @@ yydefault: case 846: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4534 +//line sql.y:4535 { yyLOCAL = &OtherAdmin{} } @@ -16343,7 +16374,7 @@ yydefault: case 847: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4540 +//line sql.y:4541 { yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()} } @@ -16351,14 +16382,14 @@ yydefault: case 848: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableAndLockTypes -//line sql.y:4546 +//line sql.y:4547 { yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()} } yyVAL.union = yyLOCAL case 849: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4550 +//line sql.y:4551 { yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion()) @@ -16366,7 +16397,7 @@ yydefault: case 850: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *TableAndLockType -//line sql.y:4556 +//line sql.y:4557 { yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()} } @@ -16374,7 +16405,7 @@ yydefault: case 851: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:4562 +//line sql.y:4563 { yyLOCAL = Read } @@ -16382,7 +16413,7 @@ yydefault: case 852: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:4566 +//line sql.y:4567 { yyLOCAL = ReadLocal } @@ -16390,7 +16421,7 @@ yydefault: case 853: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:4570 +//line sql.y:4571 { yyLOCAL = Write } @@ -16398,7 +16429,7 @@ yydefault: case 854: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:4574 +//line sql.y:4575 { yyLOCAL = LowPriorityWrite } @@ -16406,7 +16437,7 @@ yydefault: case 855: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4580 +//line sql.y:4581 { yyLOCAL = &UnlockTables{} } @@ -16414,7 +16445,7 @@ yydefault: case 856: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4586 +//line sql.y:4587 { yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs).Parsed(), UUID: string(yyDollar[4].str)} } @@ -16422,7 +16453,7 @@ yydefault: case 857: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4592 +//line sql.y:4593 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs} } @@ -16430,7 +16461,7 @@ yydefault: case 858: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4596 +//line sql.y:4597 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()} } @@ -16438,7 +16469,7 @@ yydefault: case 859: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:4600 +//line sql.y:4601 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true} } @@ -16446,7 +16477,7 @@ yydefault: case 860: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4604 +//line sql.y:4605 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()} } @@ -16454,7 +16485,7 @@ yydefault: case 861: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:4608 +//line sql.y:4609 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true} } @@ -16462,99 +16493,99 @@ yydefault: case 862: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:4612 +//line sql.y:4613 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true} } yyVAL.union = yyLOCAL case 863: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4618 +//line sql.y:4619 { yyVAL.strs = []string{yyDollar[1].str} } case 864: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4622 +//line sql.y:4623 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str) } case 865: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4628 +//line sql.y:4629 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 866: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4632 +//line sql.y:4633 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 867: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4636 +//line sql.y:4637 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 868: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4640 +//line sql.y:4641 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 869: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4644 +//line sql.y:4645 { yyVAL.str = string(yyDollar[1].str) } case 870: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4648 +//line sql.y:4649 { yyVAL.str = string(yyDollar[1].str) } case 871: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4652 +//line sql.y:4653 { yyVAL.str = string(yyDollar[1].str) } case 872: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4656 +//line sql.y:4657 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str } case 873: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4660 +//line sql.y:4661 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 874: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4664 +//line sql.y:4665 { yyVAL.str = string(yyDollar[1].str) } case 875: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4668 +//line sql.y:4669 { yyVAL.str = string(yyDollar[1].str) } case 876: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4672 +//line sql.y:4673 { yyVAL.str = string(yyDollar[1].str) } case 877: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4677 +//line sql.y:4678 { yyLOCAL = false } @@ -16562,7 +16593,7 @@ yydefault: case 878: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4681 +//line sql.y:4682 { yyLOCAL = true } @@ -16570,52 +16601,52 @@ yydefault: case 879: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4685 +//line sql.y:4686 { yyLOCAL = true } yyVAL.union = yyLOCAL case 880: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4690 +//line sql.y:4691 { yyVAL.str = "" } case 881: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4694 +//line sql.y:4695 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].identifierCI.String() } case 882: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4699 +//line sql.y:4700 { setAllowComments(yylex, true) } case 883: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4703 +//line sql.y:4704 { yyVAL.strs = yyDollar[2].strs setAllowComments(yylex, false) } case 884: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4709 +//line sql.y:4710 { yyVAL.strs = nil } case 885: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4713 +//line sql.y:4714 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str) } case 886: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4719 +//line sql.y:4720 { yyLOCAL = true } @@ -16623,7 +16654,7 @@ yydefault: case 887: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4723 +//line sql.y:4724 { yyLOCAL = false } @@ -16631,33 +16662,33 @@ yydefault: case 888: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4727 +//line sql.y:4728 { yyLOCAL = true } yyVAL.union = yyLOCAL case 889: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4732 +//line sql.y:4733 { yyVAL.str = "" } case 890: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4736 +//line sql.y:4737 { yyVAL.str = SQLNoCacheStr } case 891: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4740 +//line sql.y:4741 { yyVAL.str = SQLCacheStr } case 892: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4745 +//line sql.y:4746 { yyLOCAL = false } @@ -16665,7 +16696,7 @@ yydefault: case 893: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4749 +//line sql.y:4750 { yyLOCAL = true } @@ -16673,7 +16704,7 @@ yydefault: case 894: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4753 +//line sql.y:4754 { yyLOCAL = true } @@ -16681,7 +16712,7 @@ yydefault: case 895: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4759 +//line sql.y:4760 { yyLOCAL = &PrepareStmt{Name: yyDollar[3].identifierCI, Comments: Comments(yyDollar[2].strs).Parsed(), Statement: yyDollar[5].exprUnion()} } @@ -16689,7 +16720,7 @@ yydefault: case 896: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4763 +//line sql.y:4764 { yyLOCAL = &PrepareStmt{ Name: yyDollar[3].identifierCI, @@ -16701,7 +16732,7 @@ yydefault: case 897: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4773 +//line sql.y:4774 { yyLOCAL = &ExecuteStmt{Name: yyDollar[3].identifierCI, Comments: Comments(yyDollar[2].strs).Parsed(), Arguments: yyDollar[4].variablesUnion()} } @@ -16709,7 +16740,7 @@ yydefault: case 898: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*Variable -//line sql.y:4778 +//line sql.y:4779 { yyLOCAL = nil } @@ -16717,7 +16748,7 @@ yydefault: case 899: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []*Variable -//line sql.y:4782 +//line sql.y:4783 { yyLOCAL = yyDollar[2].variablesUnion() } @@ -16725,7 +16756,7 @@ yydefault: case 900: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4788 +//line sql.y:4789 { yyLOCAL = &DeallocateStmt{Comments: Comments(yyDollar[2].strs).Parsed(), Name: yyDollar[4].identifierCI} } @@ -16733,88 +16764,88 @@ yydefault: case 901: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4792 +//line sql.y:4793 { yyLOCAL = &DeallocateStmt{Comments: Comments(yyDollar[2].strs).Parsed(), Name: yyDollar[4].identifierCI} } yyVAL.union = yyLOCAL case 902: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4797 +//line sql.y:4798 { yyVAL.strs = nil } case 903: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4801 +//line sql.y:4802 { yyVAL.strs = yyDollar[1].strs } case 904: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4807 +//line sql.y:4808 { yyVAL.strs = []string{yyDollar[1].str} } case 905: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4811 +//line sql.y:4812 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str) } case 906: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4817 +//line sql.y:4818 { yyVAL.str = SQLNoCacheStr } case 907: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4821 +//line sql.y:4822 { yyVAL.str = SQLCacheStr } case 908: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4825 +//line sql.y:4826 { yyVAL.str = DistinctStr } case 909: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4829 +//line sql.y:4830 { yyVAL.str = DistinctStr } case 910: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4833 +//line sql.y:4834 { yyVAL.str = StraightJoinHint } case 911: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4837 +//line sql.y:4838 { yyVAL.str = SQLCalcFoundRowsStr } case 912: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4841 +//line sql.y:4842 { yyVAL.str = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway } case 913: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:4847 +//line sql.y:4848 { yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()} } yyVAL.union = yyLOCAL case 914: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4851 +//line sql.y:4852 { yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion()) @@ -16822,7 +16853,7 @@ yydefault: case 915: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:4857 +//line sql.y:4858 { yyLOCAL = &StarExpr{} } @@ -16830,7 +16861,7 @@ yydefault: case 916: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:4861 +//line sql.y:4862 { yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].identifierCI} } @@ -16838,7 +16869,7 @@ yydefault: case 917: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:4865 +//line sql.y:4866 { yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].identifierCS}} } @@ -16846,39 +16877,39 @@ yydefault: case 918: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:4869 +//line sql.y:4870 { yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCS}} } yyVAL.union = yyLOCAL case 919: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4874 +//line sql.y:4875 { yyVAL.identifierCI = IdentifierCI{} } case 920: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4878 +//line sql.y:4879 { yyVAL.identifierCI = yyDollar[1].identifierCI } case 921: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4882 +//line sql.y:4883 { yyVAL.identifierCI = yyDollar[2].identifierCI } case 923: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4889 +//line sql.y:4890 { yyVAL.identifierCI = NewIdentifierCI(string(yyDollar[1].str)) } case 924: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableExprs -//line sql.y:4894 +//line sql.y:4895 { yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewIdentifierCS("dual")}}} } @@ -16886,7 +16917,7 @@ yydefault: case 925: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:4898 +//line sql.y:4899 { yyLOCAL = yyDollar[1].tableExprsUnion() } @@ -16894,7 +16925,7 @@ yydefault: case 926: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TableExprs -//line sql.y:4904 +//line sql.y:4905 { yyLOCAL = yyDollar[2].tableExprsUnion() } @@ -16902,14 +16933,14 @@ yydefault: case 927: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:4910 +//line sql.y:4911 { yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()} } yyVAL.union = yyLOCAL case 928: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4914 +//line sql.y:4915 { yySLICE := (*TableExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion()) @@ -16917,7 +16948,7 @@ yydefault: case 931: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:4924 +//line sql.y:4925 { yyLOCAL = yyDollar[1].aliasedTableNameUnion() } @@ -16925,7 +16956,7 @@ yydefault: case 932: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:4928 +//line sql.y:4929 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].identifierCS, Columns: yyDollar[4].columnsUnion()} } @@ -16933,7 +16964,7 @@ yydefault: case 933: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:4932 +//line sql.y:4933 { yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()} } @@ -16941,7 +16972,7 @@ yydefault: case 934: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:4936 +//line sql.y:4937 { yyLOCAL = yyDollar[1].tableExprUnion() } @@ -16949,7 +16980,7 @@ yydefault: case 935: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:4942 +//line sql.y:4943 { yyLOCAL = &DerivedTable{Lateral: false, Select: yyDollar[1].selStmtUnion()} } @@ -16957,7 +16988,7 @@ yydefault: case 936: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:4946 +//line sql.y:4947 { yyLOCAL = &DerivedTable{Lateral: true, Select: yyDollar[2].selStmtUnion()} } @@ -16965,7 +16996,7 @@ yydefault: case 937: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:4952 +//line sql.y:4953 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].identifierCS, Hints: yyDollar[3].indexHintsUnion()} } @@ -16973,7 +17004,7 @@ yydefault: case 938: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:4956 +//line sql.y:4957 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].identifierCS, Hints: yyDollar[7].indexHintsUnion()} } @@ -16981,7 +17012,7 @@ yydefault: case 939: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:4961 +//line sql.y:4962 { yyLOCAL = nil } @@ -16989,7 +17020,7 @@ yydefault: case 940: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:4965 +//line sql.y:4966 { yyLOCAL = yyDollar[2].columnsUnion() } @@ -16997,7 +17028,7 @@ yydefault: case 941: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:4970 +//line sql.y:4971 { yyLOCAL = nil } @@ -17005,7 +17036,7 @@ yydefault: case 942: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:4974 +//line sql.y:4975 { yyLOCAL = yyDollar[1].columnsUnion() } @@ -17013,14 +17044,14 @@ yydefault: case 943: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:4980 +//line sql.y:4981 { yyLOCAL = Columns{yyDollar[1].identifierCI} } yyVAL.union = yyLOCAL case 944: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4984 +//line sql.y:4985 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].identifierCI) @@ -17028,14 +17059,14 @@ yydefault: case 945: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*Variable -//line sql.y:4990 +//line sql.y:4991 { yyLOCAL = []*Variable{yyDollar[1].variableUnion()} } yyVAL.union = yyLOCAL case 946: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4994 +//line sql.y:4995 { yySLICE := (*[]*Variable)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].variableUnion()) @@ -17043,7 +17074,7 @@ yydefault: case 947: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:5000 +//line sql.y:5001 { yyLOCAL = Columns{yyDollar[1].identifierCI} } @@ -17051,21 +17082,21 @@ yydefault: case 948: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:5004 +//line sql.y:5005 { yyLOCAL = Columns{NewIdentifierCI(string(yyDollar[1].str))} } yyVAL.union = yyLOCAL case 949: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5008 +//line sql.y:5009 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].identifierCI) } case 950: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5012 +//line sql.y:5013 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, NewIdentifierCI(string(yyDollar[3].str))) @@ -17073,14 +17104,14 @@ yydefault: case 951: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Partitions -//line sql.y:5018 +//line sql.y:5019 { yyLOCAL = Partitions{yyDollar[1].identifierCI} } yyVAL.union = yyLOCAL case 952: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5022 +//line sql.y:5023 { yySLICE := (*Partitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].identifierCI) @@ -17088,7 +17119,7 @@ yydefault: case 953: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:5035 +//line sql.y:5036 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } @@ -17096,7 +17127,7 @@ yydefault: case 954: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:5039 +//line sql.y:5040 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } @@ -17104,7 +17135,7 @@ yydefault: case 955: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:5043 +//line sql.y:5044 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } @@ -17112,87 +17143,87 @@ yydefault: case 956: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:5047 +//line sql.y:5048 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()} } yyVAL.union = yyLOCAL case 957: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:5053 +//line sql.y:5054 { yyVAL.joinCondition = &JoinCondition{On: yyDollar[2].exprUnion()} } case 958: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:5055 +//line sql.y:5056 { yyVAL.joinCondition = &JoinCondition{Using: yyDollar[3].columnsUnion()} } case 959: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5059 +//line sql.y:5060 { yyVAL.joinCondition = &JoinCondition{} } case 960: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5061 +//line sql.y:5062 { yyVAL.joinCondition = yyDollar[1].joinCondition } case 961: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5065 +//line sql.y:5066 { yyVAL.joinCondition = &JoinCondition{} } case 962: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:5067 +//line sql.y:5068 { yyVAL.joinCondition = &JoinCondition{On: yyDollar[2].exprUnion()} } case 963: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5070 +//line sql.y:5071 { yyVAL.empty = struct{}{} } case 964: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5072 +//line sql.y:5073 { yyVAL.empty = struct{}{} } case 965: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5075 +//line sql.y:5076 { yyVAL.identifierCS = NewIdentifierCS("") } case 966: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5079 +//line sql.y:5080 { yyVAL.identifierCS = yyDollar[1].identifierCS } case 967: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:5083 +//line sql.y:5084 { yyVAL.identifierCS = yyDollar[2].identifierCS } case 969: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5090 +//line sql.y:5091 { yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str)) } case 970: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:5096 +//line sql.y:5097 { yyLOCAL = NormalJoinType } @@ -17200,7 +17231,7 @@ yydefault: case 971: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5100 +//line sql.y:5101 { yyLOCAL = NormalJoinType } @@ -17208,7 +17239,7 @@ yydefault: case 972: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5104 +//line sql.y:5105 { yyLOCAL = NormalJoinType } @@ -17216,7 +17247,7 @@ yydefault: case 973: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:5110 +//line sql.y:5111 { yyLOCAL = StraightJoinType } @@ -17224,7 +17255,7 @@ yydefault: case 974: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5116 +//line sql.y:5117 { yyLOCAL = LeftJoinType } @@ -17232,7 +17263,7 @@ yydefault: case 975: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:5120 +//line sql.y:5121 { yyLOCAL = LeftJoinType } @@ -17240,7 +17271,7 @@ yydefault: case 976: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5124 +//line sql.y:5125 { yyLOCAL = RightJoinType } @@ -17248,7 +17279,7 @@ yydefault: case 977: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:5128 +//line sql.y:5129 { yyLOCAL = RightJoinType } @@ -17256,7 +17287,7 @@ yydefault: case 978: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5134 +//line sql.y:5135 { yyLOCAL = NaturalJoinType } @@ -17264,7 +17295,7 @@ yydefault: case 979: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5138 +//line sql.y:5139 { if yyDollar[2].joinTypeUnion() == LeftJoinType { yyLOCAL = NaturalLeftJoinType @@ -17275,38 +17306,38 @@ yydefault: yyVAL.union = yyLOCAL case 980: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:5148 +//line sql.y:5149 { yyVAL.tableName = yyDollar[2].tableName } case 981: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5152 +//line sql.y:5153 { yyVAL.tableName = yyDollar[1].tableName } case 982: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5158 +//line sql.y:5159 { yyVAL.tableName = TableName{Name: yyDollar[1].identifierCS} } case 983: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5162 +//line sql.y:5163 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCS} } case 984: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5168 +//line sql.y:5169 { yyVAL.tableName = TableName{Name: yyDollar[1].identifierCS} } case 985: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL IndexHints -//line sql.y:5173 +//line sql.y:5174 { yyLOCAL = nil } @@ -17314,7 +17345,7 @@ yydefault: case 986: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IndexHints -//line sql.y:5177 +//line sql.y:5178 { yyLOCAL = yyDollar[1].indexHintsUnion() } @@ -17322,14 +17353,14 @@ yydefault: case 987: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IndexHints -//line sql.y:5183 +//line sql.y:5184 { yyLOCAL = IndexHints{yyDollar[1].indexHintUnion()} } yyVAL.union = yyLOCAL case 988: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:5187 +//line sql.y:5188 { yySLICE := (*IndexHints)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].indexHintUnion()) @@ -17337,7 +17368,7 @@ yydefault: case 989: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5193 +//line sql.y:5194 { yyLOCAL = &IndexHint{Type: UseOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()} } @@ -17345,7 +17376,7 @@ yydefault: case 990: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5197 +//line sql.y:5198 { yyLOCAL = &IndexHint{Type: UseOp, ForType: yyDollar[3].indexHintForTypeUnion()} } @@ -17353,7 +17384,7 @@ yydefault: case 991: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5201 +//line sql.y:5202 { yyLOCAL = &IndexHint{Type: IgnoreOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()} } @@ -17361,7 +17392,7 @@ yydefault: case 992: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5205 +//line sql.y:5206 { yyLOCAL = &IndexHint{Type: ForceOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()} } @@ -17369,7 +17400,7 @@ yydefault: case 993: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5209 +//line sql.y:5210 { yyLOCAL = &IndexHint{Type: UseVindexOp, Indexes: yyDollar[4].columnsUnion()} } @@ -17377,7 +17408,7 @@ yydefault: case 994: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5213 +//line sql.y:5214 { yyLOCAL = &IndexHint{Type: IgnoreVindexOp, Indexes: yyDollar[4].columnsUnion()} } @@ -17385,7 +17416,7 @@ yydefault: case 995: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL IndexHintForType -//line sql.y:5218 +//line sql.y:5219 { yyLOCAL = NoForType } @@ -17393,7 +17424,7 @@ yydefault: case 996: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IndexHintForType -//line sql.y:5222 +//line sql.y:5223 { yyLOCAL = JoinForType } @@ -17401,7 +17432,7 @@ yydefault: case 997: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL IndexHintForType -//line sql.y:5226 +//line sql.y:5227 { yyLOCAL = OrderByForType } @@ -17409,7 +17440,7 @@ yydefault: case 998: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL IndexHintForType -//line sql.y:5230 +//line sql.y:5231 { yyLOCAL = GroupByForType } @@ -17417,7 +17448,7 @@ yydefault: case 999: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:5236 +//line sql.y:5237 { yyLOCAL = nil } @@ -17425,7 +17456,7 @@ yydefault: case 1000: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5240 +//line sql.y:5241 { yyLOCAL = yyDollar[2].exprUnion() } @@ -17433,7 +17464,7 @@ yydefault: case 1001: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5247 +//line sql.y:5248 { yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } @@ -17441,7 +17472,7 @@ yydefault: case 1002: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5251 +//line sql.y:5252 { yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } @@ -17449,7 +17480,7 @@ yydefault: case 1003: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5255 +//line sql.y:5256 { yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } @@ -17457,7 +17488,7 @@ yydefault: case 1004: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5259 +//line sql.y:5260 { yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()} } @@ -17465,7 +17496,7 @@ yydefault: case 1005: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5263 +//line sql.y:5264 { yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].isExprOperatorUnion()} } @@ -17473,7 +17504,7 @@ yydefault: case 1006: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5267 +//line sql.y:5268 { yyLOCAL = yyDollar[1].exprUnion() } @@ -17481,7 +17512,7 @@ yydefault: case 1007: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5271 +//line sql.y:5272 { yyLOCAL = &AssignmentExpr{Left: yyDollar[1].variableUnion(), Right: yyDollar[3].exprUnion()} } @@ -17489,7 +17520,7 @@ yydefault: case 1008: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5275 +//line sql.y:5276 { yyLOCAL = &MemberOfExpr{Value: yyDollar[1].exprUnion(), JSONArr: yyDollar[5].exprUnion()} } @@ -17497,7 +17528,7 @@ yydefault: case 1009: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5281 +//line sql.y:5282 { yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: IsNullOp} } @@ -17505,7 +17536,7 @@ yydefault: case 1010: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5285 +//line sql.y:5286 { yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: IsNotNullOp} } @@ -17513,7 +17544,7 @@ yydefault: case 1011: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5289 +//line sql.y:5290 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()} } @@ -17521,7 +17552,7 @@ yydefault: case 1012: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5293 +//line sql.y:5294 { yyLOCAL = yyDollar[1].exprUnion() } @@ -17529,7 +17560,7 @@ yydefault: case 1013: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5299 +//line sql.y:5300 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()} } @@ -17537,7 +17568,7 @@ yydefault: case 1014: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5303 +//line sql.y:5304 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()} } @@ -17545,7 +17576,7 @@ yydefault: case 1015: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5307 +//line sql.y:5308 { yyLOCAL = &BetweenExpr{Left: yyDollar[1].exprUnion(), IsBetween: true, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()} } @@ -17553,7 +17584,7 @@ yydefault: case 1016: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5311 +//line sql.y:5312 { yyLOCAL = &BetweenExpr{Left: yyDollar[1].exprUnion(), IsBetween: false, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()} } @@ -17561,7 +17592,7 @@ yydefault: case 1017: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5315 +//line sql.y:5316 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion()} } @@ -17569,7 +17600,7 @@ yydefault: case 1018: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5319 +//line sql.y:5320 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion()} } @@ -17577,7 +17608,7 @@ yydefault: case 1019: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5323 +//line sql.y:5324 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[5].exprUnion()} } @@ -17585,7 +17616,7 @@ yydefault: case 1020: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5327 +//line sql.y:5328 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[6].exprUnion()} } @@ -17593,7 +17624,7 @@ yydefault: case 1021: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5331 +//line sql.y:5332 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()} } @@ -17601,7 +17632,7 @@ yydefault: case 1022: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5335 +//line sql.y:5336 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()} } @@ -17609,25 +17640,25 @@ yydefault: case 1023: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5339 +//line sql.y:5340 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL case 1024: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5345 +//line sql.y:5346 { } case 1025: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5348 +//line sql.y:5349 { } case 1026: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5354 +//line sql.y:5355 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()} } @@ -17635,7 +17666,7 @@ yydefault: case 1027: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5358 +//line sql.y:5359 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()} } @@ -17643,7 +17674,7 @@ yydefault: case 1028: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5362 +//line sql.y:5363 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()} } @@ -17651,7 +17682,7 @@ yydefault: case 1029: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5366 +//line sql.y:5367 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()} } @@ -17659,7 +17690,7 @@ yydefault: case 1030: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5370 +//line sql.y:5371 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()} } @@ -17667,7 +17698,7 @@ yydefault: case 1031: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5374 +//line sql.y:5375 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()} } @@ -17675,7 +17706,7 @@ yydefault: case 1032: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5378 +//line sql.y:5379 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprBinaryAdd, Date: yyDollar[1].exprUnion(), Unit: yyDollar[5].intervalTypeUnion(), Interval: yyDollar[4].exprUnion()} } @@ -17683,7 +17714,7 @@ yydefault: case 1033: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5382 +//line sql.y:5383 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprBinarySub, Date: yyDollar[1].exprUnion(), Unit: yyDollar[5].intervalTypeUnion(), Interval: yyDollar[4].exprUnion()} } @@ -17691,7 +17722,7 @@ yydefault: case 1034: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5386 +//line sql.y:5387 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()} } @@ -17699,7 +17730,7 @@ yydefault: case 1035: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5390 +//line sql.y:5391 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()} } @@ -17707,7 +17738,7 @@ yydefault: case 1036: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5394 +//line sql.y:5395 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } @@ -17715,7 +17746,7 @@ yydefault: case 1037: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5398 +//line sql.y:5399 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()} } @@ -17723,7 +17754,7 @@ yydefault: case 1038: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5402 +//line sql.y:5403 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } @@ -17731,7 +17762,7 @@ yydefault: case 1039: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5406 +//line sql.y:5407 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()} } @@ -17739,7 +17770,7 @@ yydefault: case 1040: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5410 +//line sql.y:5411 { yyLOCAL = yyDollar[1].exprUnion() } @@ -17747,7 +17778,7 @@ yydefault: case 1041: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5416 +//line sql.y:5417 { yyLOCAL = yyDollar[1].exprUnion() } @@ -17755,7 +17786,7 @@ yydefault: case 1042: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5420 +//line sql.y:5421 { yyLOCAL = yyDollar[1].exprUnion() } @@ -17763,7 +17794,7 @@ yydefault: case 1043: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5424 +//line sql.y:5425 { yyLOCAL = yyDollar[1].exprUnion() } @@ -17771,7 +17802,7 @@ yydefault: case 1044: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5428 +//line sql.y:5429 { yyLOCAL = yyDollar[1].exprUnion() } @@ -17779,7 +17810,7 @@ yydefault: case 1045: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5432 +//line sql.y:5433 { yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Collation: yyDollar[3].str} } @@ -17787,7 +17818,7 @@ yydefault: case 1046: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5436 +//line sql.y:5437 { yyLOCAL = yyDollar[1].exprUnion() } @@ -17795,7 +17826,7 @@ yydefault: case 1047: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5440 +//line sql.y:5441 { yyLOCAL = yyDollar[1].exprUnion() } @@ -17803,7 +17834,7 @@ yydefault: case 1048: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5444 +//line sql.y:5445 { yyLOCAL = yyDollar[1].variableUnion() } @@ -17811,7 +17842,7 @@ yydefault: case 1049: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5448 +//line sql.y:5449 { yyLOCAL = yyDollar[2].exprUnion() // TODO: do we really want to ignore unary '+' before any kind of literals? } @@ -17819,7 +17850,7 @@ yydefault: case 1050: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5452 +//line sql.y:5453 { yyLOCAL = &UnaryExpr{Operator: UMinusOp, Expr: yyDollar[2].exprUnion()} } @@ -17827,7 +17858,7 @@ yydefault: case 1051: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5456 +//line sql.y:5457 { yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()} } @@ -17835,7 +17866,7 @@ yydefault: case 1052: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5460 +//line sql.y:5461 { yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()} } @@ -17843,7 +17874,7 @@ yydefault: case 1053: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5464 +//line sql.y:5465 { yyLOCAL = yyDollar[1].subqueryUnion() } @@ -17851,7 +17882,7 @@ yydefault: case 1054: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5468 +//line sql.y:5469 { yyLOCAL = yyDollar[1].exprUnion() } @@ -17859,7 +17890,7 @@ yydefault: case 1055: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5472 +//line sql.y:5473 { yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()} } @@ -17867,7 +17898,7 @@ yydefault: case 1056: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Expr -//line sql.y:5476 +//line sql.y:5477 { yyLOCAL = &MatchExpr{Columns: yyDollar[2].colNamesUnion(), Expr: yyDollar[5].exprUnion(), Option: yyDollar[6].matchExprOptionUnion()} } @@ -17875,7 +17906,7 @@ yydefault: case 1057: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Expr -//line sql.y:5480 +//line sql.y:5481 { yyLOCAL = &CastExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion(), Array: yyDollar[6].booleanUnion()} } @@ -17883,7 +17914,7 @@ yydefault: case 1058: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5484 +//line sql.y:5485 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } @@ -17891,7 +17922,7 @@ yydefault: case 1059: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5488 +//line sql.y:5489 { yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str} } @@ -17899,7 +17930,7 @@ yydefault: case 1060: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5492 +//line sql.y:5493 { // From: https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html#operator_binary // To convert a string expression to a binary string, these constructs are equivalent: @@ -17911,7 +17942,7 @@ yydefault: case 1061: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5500 +//line sql.y:5501 { yyLOCAL = &Default{ColName: yyDollar[2].str} } @@ -17919,7 +17950,7 @@ yydefault: case 1062: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5504 +//line sql.y:5505 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprBinaryAddLeft, Date: yyDollar[5].exprUnion(), Unit: yyDollar[3].intervalTypeUnion(), Interval: yyDollar[2].exprUnion()} } @@ -17927,7 +17958,7 @@ yydefault: case 1063: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5508 +//line sql.y:5509 { yyLOCAL = &IntervalFuncExpr{Expr: yyDollar[3].exprUnion(), Exprs: yyDollar[5].exprsUnion()} } @@ -17935,7 +17966,7 @@ yydefault: case 1064: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5512 +//line sql.y:5513 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: JSONExtractOp, Right: yyDollar[3].exprUnion()} } @@ -17943,7 +17974,7 @@ yydefault: case 1065: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5516 +//line sql.y:5517 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: JSONUnquoteExtractOp, Right: yyDollar[3].exprUnion()} } @@ -17951,7 +17982,7 @@ yydefault: case 1066: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*ColName -//line sql.y:5522 +//line sql.y:5523 { yyLOCAL = yyDollar[1].colNamesUnion() } @@ -17959,7 +17990,7 @@ yydefault: case 1067: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*ColName -//line sql.y:5526 +//line sql.y:5527 { yyLOCAL = yyDollar[2].colNamesUnion() } @@ -17967,14 +17998,14 @@ yydefault: case 1068: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*ColName -//line sql.y:5532 +//line sql.y:5533 { yyLOCAL = []*ColName{yyDollar[1].colNameUnion()} } yyVAL.union = yyLOCAL case 1069: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5536 +//line sql.y:5537 { yySLICE := (*[]*ColName)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colNameUnion()) @@ -17982,7 +18013,7 @@ yydefault: case 1070: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TrimType -//line sql.y:5542 +//line sql.y:5543 { yyLOCAL = BothTrimType } @@ -17990,7 +18021,7 @@ yydefault: case 1071: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TrimType -//line sql.y:5546 +//line sql.y:5547 { yyLOCAL = LeadingTrimType } @@ -17998,7 +18029,7 @@ yydefault: case 1072: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TrimType -//line sql.y:5550 +//line sql.y:5551 { yyLOCAL = TrailingTrimType } @@ -18006,7 +18037,7 @@ yydefault: case 1073: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL FrameUnitType -//line sql.y:5556 +//line sql.y:5557 { yyLOCAL = FrameRowsType } @@ -18014,7 +18045,7 @@ yydefault: case 1074: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL FrameUnitType -//line sql.y:5560 +//line sql.y:5561 { yyLOCAL = FrameRangeType } @@ -18022,7 +18053,7 @@ yydefault: case 1075: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:5567 +//line sql.y:5568 { yyLOCAL = CumeDistExprType } @@ -18030,7 +18061,7 @@ yydefault: case 1076: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:5571 +//line sql.y:5572 { yyLOCAL = DenseRankExprType } @@ -18038,7 +18069,7 @@ yydefault: case 1077: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:5575 +//line sql.y:5576 { yyLOCAL = PercentRankExprType } @@ -18046,7 +18077,7 @@ yydefault: case 1078: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:5579 +//line sql.y:5580 { yyLOCAL = RankExprType } @@ -18054,7 +18085,7 @@ yydefault: case 1079: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:5583 +//line sql.y:5584 { yyLOCAL = RowNumberExprType } @@ -18062,7 +18093,7 @@ yydefault: case 1080: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5589 +//line sql.y:5590 { yyLOCAL = &FramePoint{Type: CurrentRowType} } @@ -18070,7 +18101,7 @@ yydefault: case 1081: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5593 +//line sql.y:5594 { yyLOCAL = &FramePoint{Type: UnboundedPrecedingType} } @@ -18078,7 +18109,7 @@ yydefault: case 1082: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5597 +//line sql.y:5598 { yyLOCAL = &FramePoint{Type: UnboundedFollowingType} } @@ -18086,7 +18117,7 @@ yydefault: case 1083: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5601 +//line sql.y:5602 { yyLOCAL = &FramePoint{Type: ExprPrecedingType, Expr: yyDollar[1].exprUnion()} } @@ -18094,7 +18125,7 @@ yydefault: case 1084: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5605 +//line sql.y:5606 { yyLOCAL = &FramePoint{Type: ExprPrecedingType, Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].intervalTypeUnion()} } @@ -18102,7 +18133,7 @@ yydefault: case 1085: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5609 +//line sql.y:5610 { yyLOCAL = &FramePoint{Type: ExprFollowingType, Expr: yyDollar[1].exprUnion()} } @@ -18110,7 +18141,7 @@ yydefault: case 1086: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5613 +//line sql.y:5614 { yyLOCAL = &FramePoint{Type: ExprFollowingType, Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].intervalTypeUnion()} } @@ -18118,7 +18149,7 @@ yydefault: case 1087: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *FrameClause -//line sql.y:5618 +//line sql.y:5619 { yyLOCAL = nil } @@ -18126,7 +18157,7 @@ yydefault: case 1088: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *FrameClause -//line sql.y:5622 +//line sql.y:5623 { yyLOCAL = yyDollar[1].frameClauseUnion() } @@ -18134,7 +18165,7 @@ yydefault: case 1089: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FrameClause -//line sql.y:5628 +//line sql.y:5629 { yyLOCAL = &FrameClause{Unit: yyDollar[1].frameUnitTypeUnion(), Start: yyDollar[2].framePointUnion()} } @@ -18142,7 +18173,7 @@ yydefault: case 1090: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *FrameClause -//line sql.y:5632 +//line sql.y:5633 { yyLOCAL = &FrameClause{Unit: yyDollar[1].frameUnitTypeUnion(), Start: yyDollar[3].framePointUnion(), End: yyDollar[5].framePointUnion()} } @@ -18150,7 +18181,7 @@ yydefault: case 1091: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:5637 +//line sql.y:5638 { yyLOCAL = nil } @@ -18158,26 +18189,26 @@ yydefault: case 1092: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Exprs -//line sql.y:5641 +//line sql.y:5642 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL case 1093: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5646 +//line sql.y:5647 { } case 1094: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5649 +//line sql.y:5650 { yyVAL.identifierCI = yyDollar[1].identifierCI } case 1095: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *WindowSpecification -//line sql.y:5655 +//line sql.y:5656 { yyLOCAL = &WindowSpecification{Name: yyDollar[1].identifierCI, PartitionClause: yyDollar[2].exprsUnion(), OrderClause: yyDollar[3].orderByUnion(), FrameClause: yyDollar[4].frameClauseUnion()} } @@ -18185,7 +18216,7 @@ yydefault: case 1096: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *OverClause -//line sql.y:5661 +//line sql.y:5662 { yyLOCAL = &OverClause{WindowSpec: yyDollar[3].windowSpecificationUnion()} } @@ -18193,2892 +18224,2908 @@ yydefault: case 1097: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *OverClause -//line sql.y:5665 +//line sql.y:5666 { yyLOCAL = &OverClause{WindowName: yyDollar[2].identifierCI} } yyVAL.union = yyLOCAL case 1098: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL *OverClause +//line sql.y:5672 + { + yyLOCAL = yyDollar[1].overClauseUnion() + } + yyVAL.union = yyLOCAL + case 1099: yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL *NullTreatmentClause -//line sql.y:5670 + var yyLOCAL *OverClause +//line sql.y:5676 { yyLOCAL = nil } yyVAL.union = yyLOCAL case 1100: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL *NullTreatmentClause +//line sql.y:5682 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 1102: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *NullTreatmentClause -//line sql.y:5677 +//line sql.y:5689 { yyLOCAL = &NullTreatmentClause{yyDollar[1].nullTreatmentTypeUnion()} } yyVAL.union = yyLOCAL - case 1101: + case 1103: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL NullTreatmentType -//line sql.y:5683 +//line sql.y:5695 { yyLOCAL = RespectNullsType } yyVAL.union = yyLOCAL - case 1102: + case 1104: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL NullTreatmentType -//line sql.y:5687 +//line sql.y:5699 { yyLOCAL = IgnoreNullsType } yyVAL.union = yyLOCAL - case 1103: + case 1105: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL FirstOrLastValueExprType -//line sql.y:5693 +//line sql.y:5705 { yyLOCAL = FirstValueExprType } yyVAL.union = yyLOCAL - case 1104: + case 1106: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL FirstOrLastValueExprType -//line sql.y:5697 +//line sql.y:5709 { yyLOCAL = LastValueExprType } yyVAL.union = yyLOCAL - case 1105: + case 1107: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL FromFirstLastType -//line sql.y:5703 +//line sql.y:5715 { yyLOCAL = FromFirstType } yyVAL.union = yyLOCAL - case 1106: + case 1108: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL FromFirstLastType -//line sql.y:5707 +//line sql.y:5719 { yyLOCAL = FromLastType } yyVAL.union = yyLOCAL - case 1107: + case 1109: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *FromFirstLastClause -//line sql.y:5712 +//line sql.y:5724 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1109: + case 1111: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *FromFirstLastClause -//line sql.y:5719 +//line sql.y:5731 { yyLOCAL = &FromFirstLastClause{yyDollar[1].fromFirstLastTypeUnion()} } yyVAL.union = yyLOCAL - case 1110: + case 1112: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LagLeadExprType -//line sql.y:5725 +//line sql.y:5737 { yyLOCAL = LagExprType } yyVAL.union = yyLOCAL - case 1111: + case 1113: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LagLeadExprType -//line sql.y:5729 +//line sql.y:5741 { yyLOCAL = LeadExprType } yyVAL.union = yyLOCAL - case 1112: + case 1114: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *WindowDefinition -//line sql.y:5735 +//line sql.y:5747 { yyLOCAL = &WindowDefinition{Name: yyDollar[1].identifierCI, WindowSpec: yyDollar[4].windowSpecificationUnion()} } yyVAL.union = yyLOCAL - case 1113: + case 1115: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL WindowDefinitions -//line sql.y:5741 +//line sql.y:5753 { yyLOCAL = WindowDefinitions{yyDollar[1].windowDefinitionUnion()} } yyVAL.union = yyLOCAL - case 1114: + case 1116: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5745 +//line sql.y:5757 { yySLICE := (*WindowDefinitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].windowDefinitionUnion()) } - case 1115: + case 1117: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5751 +//line sql.y:5763 { yyVAL.str = "" } - case 1116: + case 1118: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5755 +//line sql.y:5767 { yyVAL.str = string(yyDollar[2].identifierCI.String()) } - case 1117: + case 1119: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:5761 +//line sql.y:5773 { yyLOCAL = BoolVal(true) } yyVAL.union = yyLOCAL - case 1118: + case 1120: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:5765 +//line sql.y:5777 { yyLOCAL = BoolVal(false) } yyVAL.union = yyLOCAL - case 1119: + case 1121: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:5772 +//line sql.y:5784 { yyLOCAL = IsTrueOp } yyVAL.union = yyLOCAL - case 1120: + case 1122: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:5776 +//line sql.y:5788 { yyLOCAL = IsNotTrueOp } yyVAL.union = yyLOCAL - case 1121: + case 1123: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:5780 +//line sql.y:5792 { yyLOCAL = IsFalseOp } yyVAL.union = yyLOCAL - case 1122: + case 1124: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:5784 +//line sql.y:5796 { yyLOCAL = IsNotFalseOp } yyVAL.union = yyLOCAL - case 1123: + case 1125: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5790 +//line sql.y:5802 { yyLOCAL = EqualOp } yyVAL.union = yyLOCAL - case 1124: + case 1126: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5794 +//line sql.y:5806 { yyLOCAL = LessThanOp } yyVAL.union = yyLOCAL - case 1125: + case 1127: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5798 +//line sql.y:5810 { yyLOCAL = GreaterThanOp } yyVAL.union = yyLOCAL - case 1126: + case 1128: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5802 +//line sql.y:5814 { yyLOCAL = LessEqualOp } yyVAL.union = yyLOCAL - case 1127: + case 1129: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5806 +//line sql.y:5818 { yyLOCAL = GreaterEqualOp } yyVAL.union = yyLOCAL - case 1128: + case 1130: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5810 +//line sql.y:5822 { yyLOCAL = NotEqualOp } yyVAL.union = yyLOCAL - case 1129: + case 1131: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5814 +//line sql.y:5826 { yyLOCAL = NullSafeEqualOp } yyVAL.union = yyLOCAL - case 1130: + case 1132: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:5820 +//line sql.y:5832 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 1131: + case 1133: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:5824 +//line sql.y:5836 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 1132: + case 1134: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:5828 +//line sql.y:5840 { yyLOCAL = ListArg(yyDollar[1].str[2:]) markBindVariable(yylex, yyDollar[1].str[2:]) } yyVAL.union = yyLOCAL - case 1133: + case 1135: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Subquery -//line sql.y:5835 +//line sql.y:5847 { yyLOCAL = &Subquery{yyDollar[1].selStmtUnion()} } yyVAL.union = yyLOCAL - case 1134: + case 1136: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:5841 +//line sql.y:5853 { yyLOCAL = Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1135: + case 1137: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5845 +//line sql.y:5857 { yySLICE := (*Exprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].exprUnion()) } - case 1136: + case 1138: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5855 +//line sql.y:5867 { yyLOCAL = &FuncExpr{Name: yyDollar[1].identifierCI, Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1137: + case 1139: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5859 +//line sql.y:5871 { yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCI, Exprs: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 1138: + case 1140: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5869 +//line sql.y:5881 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("left"), Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1139: + case 1141: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5873 +//line sql.y:5885 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("right"), Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1140: + case 1142: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:5877 +//line sql.y:5889 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1141: + case 1143: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:5881 +//line sql.y:5893 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1142: + case 1144: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5885 +//line sql.y:5897 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1143: + case 1145: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:5889 +//line sql.y:5901 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1144: + case 1146: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5893 +//line sql.y:5905 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1145: + case 1147: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5897 +//line sql.y:5909 { yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 1146: + case 1148: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5901 +//line sql.y:5913 { yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()} } yyVAL.union = yyLOCAL - case 1147: + case 1149: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr -//line sql.y:5905 +//line sql.y:5917 { yyLOCAL = &InsertExpr{Str: yyDollar[3].exprUnion(), Pos: yyDollar[5].exprUnion(), Len: yyDollar[7].exprUnion(), NewStr: yyDollar[9].exprUnion()} } yyVAL.union = yyLOCAL - case 1148: + case 1150: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5909 +//line sql.y:5921 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1149: + case 1151: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5920 +//line sql.y:5932 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("utc_date")} } yyVAL.union = yyLOCAL - case 1150: + case 1152: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5924 +//line sql.y:5936 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1151: + case 1153: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5930 +//line sql.y:5942 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("current_date")} } yyVAL.union = yyLOCAL - case 1152: + case 1154: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5934 +//line sql.y:5946 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("curdate")} } yyVAL.union = yyLOCAL - case 1153: + case 1155: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5938 +//line sql.y:5950 { yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("utc_time"), Fsp: yyDollar[2].integerUnion()} } yyVAL.union = yyLOCAL - case 1154: + case 1156: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5943 +//line sql.y:5955 { yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("curtime"), Fsp: yyDollar[2].integerUnion()} } yyVAL.union = yyLOCAL - case 1155: + case 1157: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5948 +//line sql.y:5960 { yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("current_time"), Fsp: yyDollar[2].integerUnion()} } yyVAL.union = yyLOCAL - case 1156: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Expr -//line sql.y:5952 - { - yyLOCAL = &CountStar{} - } - yyVAL.union = yyLOCAL - case 1157: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Expr -//line sql.y:5956 - { - yyLOCAL = &Count{Distinct: yyDollar[3].booleanUnion(), Args: yyDollar[4].exprsUnion()} - } - yyVAL.union = yyLOCAL case 1158: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5960 +//line sql.y:5964 { - yyLOCAL = &Max{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion()} + yyLOCAL = &CountStar{OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL case 1159: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5964 +//line sql.y:5968 { - yyLOCAL = &Min{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion()} + yyLOCAL = &Count{Distinct: yyDollar[3].booleanUnion(), Args: yyDollar[4].exprsUnion(), OverClause: yyDollar[6].overClauseUnion()} } yyVAL.union = yyLOCAL case 1160: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5968 +//line sql.y:5972 { - yyLOCAL = &Sum{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion()} + yyLOCAL = &Max{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()} } yyVAL.union = yyLOCAL case 1161: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5972 +//line sql.y:5976 { - yyLOCAL = &Avg{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion()} + yyLOCAL = &Min{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()} } yyVAL.union = yyLOCAL case 1162: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5976 +//line sql.y:5980 { - yyLOCAL = &BitAnd{Arg: yyDollar[3].exprUnion()} + yyLOCAL = &Sum{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()} } yyVAL.union = yyLOCAL case 1163: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5980 +//line sql.y:5984 { - yyLOCAL = &BitOr{Arg: yyDollar[3].exprUnion()} + yyLOCAL = &Avg{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()} } yyVAL.union = yyLOCAL case 1164: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5984 +//line sql.y:5988 { - yyLOCAL = &BitXor{Arg: yyDollar[3].exprUnion()} + yyLOCAL = &BitAnd{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL case 1165: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5988 +//line sql.y:5992 { - yyLOCAL = &Std{Arg: yyDollar[3].exprUnion()} + yyLOCAL = &BitOr{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL case 1166: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5992 +//line sql.y:5996 { - yyLOCAL = &StdDev{Arg: yyDollar[3].exprUnion()} + yyLOCAL = &BitXor{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL case 1167: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5996 +//line sql.y:6000 { - yyLOCAL = &StdPop{Arg: yyDollar[3].exprUnion()} + yyLOCAL = &Std{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL case 1168: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6000 +//line sql.y:6004 { - yyLOCAL = &StdSamp{Arg: yyDollar[3].exprUnion()} + yyLOCAL = &StdDev{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL case 1169: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6004 +//line sql.y:6008 { - yyLOCAL = &VarPop{Arg: yyDollar[3].exprUnion()} + yyLOCAL = &StdPop{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL case 1170: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6008 +//line sql.y:6012 { - yyLOCAL = &VarSamp{Arg: yyDollar[3].exprUnion()} + yyLOCAL = &StdSamp{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL case 1171: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6012 +//line sql.y:6016 { - yyLOCAL = &Variance{Arg: yyDollar[3].exprUnion()} + yyLOCAL = &VarPop{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL case 1172: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Expr +//line sql.y:6020 + { + yyLOCAL = &VarSamp{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} + } + yyVAL.union = yyLOCAL + case 1173: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Expr +//line sql.y:6024 + { + yyLOCAL = &Variance{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} + } + yyVAL.union = yyLOCAL + case 1174: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6016 +//line sql.y:6028 { yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].exprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()} } yyVAL.union = yyLOCAL - case 1173: + case 1175: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6020 +//line sql.y:6032 { yyLOCAL = &AnyValue{Arg: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1174: + case 1176: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6024 +//line sql.y:6036 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprTimestampadd, Date: yyDollar[7].exprUnion(), Interval: yyDollar[5].exprUnion(), Unit: yyDollar[3].intervalTypeUnion()} } yyVAL.union = yyLOCAL - case 1175: + case 1177: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6028 +//line sql.y:6040 { yyLOCAL = &TimestampDiffExpr{Unit: yyDollar[3].intervalTypeUnion(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1176: + case 1178: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6032 +//line sql.y:6044 { yyLOCAL = &ExtractFuncExpr{IntervalType: yyDollar[3].intervalTypeUnion(), Expr: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1177: + case 1179: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6036 +//line sql.y:6048 { yyLOCAL = &WeightStringFuncExpr{Expr: yyDollar[3].exprUnion(), As: yyDollar[4].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 1178: + case 1180: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6040 +//line sql.y:6052 { yyLOCAL = &JSONPrettyExpr{JSONVal: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1179: + case 1181: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6044 +//line sql.y:6056 { yyLOCAL = &JSONStorageFreeExpr{JSONVal: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1180: + case 1182: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6048 +//line sql.y:6060 { yyLOCAL = &JSONStorageSizeExpr{JSONVal: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1181: + case 1183: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6052 +//line sql.y:6064 { yyLOCAL = &TrimFuncExpr{TrimFuncType: LTrimType, Type: LeadingTrimType, StringArg: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1182: + case 1184: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6056 +//line sql.y:6068 { yyLOCAL = &TrimFuncExpr{TrimFuncType: RTrimType, Type: TrailingTrimType, StringArg: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1183: + case 1185: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Expr -//line sql.y:6060 +//line sql.y:6072 { yyLOCAL = &TrimFuncExpr{Type: yyDollar[3].trimTypeUnion(), TrimArg: yyDollar[4].exprUnion(), StringArg: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 1184: + case 1186: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6064 +//line sql.y:6076 { yyLOCAL = &TrimFuncExpr{StringArg: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1185: + case 1187: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6068 +//line sql.y:6080 { yyLOCAL = &CharExpr{Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1186: + case 1188: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6072 +//line sql.y:6084 { yyLOCAL = &CharExpr{Exprs: yyDollar[3].exprsUnion(), Charset: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 1187: + case 1189: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6076 +//line sql.y:6088 { yyLOCAL = &TrimFuncExpr{TrimArg: yyDollar[3].exprUnion(), StringArg: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1188: + case 1190: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6080 +//line sql.y:6092 { yyLOCAL = &LocateExpr{SubStr: yyDollar[3].exprUnion(), Str: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1189: + case 1191: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6084 +//line sql.y:6096 { yyLOCAL = &LocateExpr{SubStr: yyDollar[3].exprUnion(), Str: yyDollar[5].exprUnion(), Pos: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1190: + case 1192: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6088 +//line sql.y:6100 { yyLOCAL = &LocateExpr{SubStr: yyDollar[3].exprUnion(), Str: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1191: + case 1193: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6092 +//line sql.y:6104 { yyLOCAL = &LockingFunc{Type: GetLock, Name: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1192: + case 1194: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6096 +//line sql.y:6108 { yyLOCAL = &LockingFunc{Type: IsFreeLock, Name: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1193: + case 1195: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6100 +//line sql.y:6112 { yyLOCAL = &LockingFunc{Type: IsUsedLock, Name: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1194: + case 1196: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6104 +//line sql.y:6116 { yyLOCAL = &LockingFunc{Type: ReleaseAllLocks} } yyVAL.union = yyLOCAL - case 1195: + case 1197: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6108 +//line sql.y:6120 { yyLOCAL = &LockingFunc{Type: ReleaseLock, Name: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1196: + case 1198: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6112 +//line sql.y:6124 { yyLOCAL = &JSONSchemaValidFuncExpr{Schema: yyDollar[3].exprUnion(), Document: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1197: + case 1199: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6116 +//line sql.y:6128 { yyLOCAL = &JSONSchemaValidationReportFuncExpr{Schema: yyDollar[3].exprUnion(), Document: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1198: + case 1200: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6120 +//line sql.y:6132 { yyLOCAL = &JSONArrayExpr{Params: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1199: + case 1201: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6124 +//line sql.y:6136 { yyLOCAL = &GeomFormatExpr{FormatType: BinaryFormat, Geom: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1200: + case 1202: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6128 +//line sql.y:6140 { yyLOCAL = &GeomFormatExpr{FormatType: BinaryFormat, Geom: yyDollar[3].exprUnion(), AxisOrderOpt: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1201: + case 1203: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6132 +//line sql.y:6144 { yyLOCAL = &GeomFormatExpr{FormatType: TextFormat, Geom: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1202: + case 1204: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6136 +//line sql.y:6148 { yyLOCAL = &GeomFormatExpr{FormatType: TextFormat, Geom: yyDollar[3].exprUnion(), AxisOrderOpt: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1203: + case 1205: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6140 +//line sql.y:6152 { yyLOCAL = &GeomPropertyFuncExpr{Property: IsEmpty, Geom: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1204: + case 1206: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6144 +//line sql.y:6156 { yyLOCAL = &GeomPropertyFuncExpr{Property: IsSimple, Geom: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1205: + case 1207: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6148 +//line sql.y:6160 { yyLOCAL = &GeomPropertyFuncExpr{Property: Dimension, Geom: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1206: + case 1208: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6152 +//line sql.y:6164 { yyLOCAL = &GeomPropertyFuncExpr{Property: Envelope, Geom: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1207: + case 1209: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6156 +//line sql.y:6168 { yyLOCAL = &GeomPropertyFuncExpr{Property: GeometryType, Geom: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1208: + case 1210: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6160 +//line sql.y:6172 { yyLOCAL = &PointPropertyFuncExpr{Property: Latitude, Point: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1209: + case 1211: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6164 +//line sql.y:6176 { yyLOCAL = &PointPropertyFuncExpr{Property: Latitude, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1210: + case 1212: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6168 +//line sql.y:6180 { yyLOCAL = &PointPropertyFuncExpr{Property: Longitude, Point: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1211: + case 1213: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6172 +//line sql.y:6184 { yyLOCAL = &PointPropertyFuncExpr{Property: Longitude, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1212: + case 1214: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6176 +//line sql.y:6188 { yyLOCAL = &LinestrPropertyFuncExpr{Property: EndPoint, Linestring: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1213: + case 1215: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6180 +//line sql.y:6192 { yyLOCAL = &LinestrPropertyFuncExpr{Property: IsClosed, Linestring: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1214: + case 1216: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6184 +//line sql.y:6196 { yyLOCAL = &LinestrPropertyFuncExpr{Property: Length, Linestring: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1215: + case 1217: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6188 +//line sql.y:6200 { yyLOCAL = &LinestrPropertyFuncExpr{Property: Length, Linestring: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1216: + case 1218: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6192 +//line sql.y:6204 { yyLOCAL = &LinestrPropertyFuncExpr{Property: NumPoints, Linestring: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1217: + case 1219: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6196 +//line sql.y:6208 { yyLOCAL = &LinestrPropertyFuncExpr{Property: PointN, Linestring: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1218: + case 1220: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6200 +//line sql.y:6212 { yyLOCAL = &LinestrPropertyFuncExpr{Property: StartPoint, Linestring: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1219: + case 1221: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6204 +//line sql.y:6216 { yyLOCAL = &PointPropertyFuncExpr{Property: XCordinate, Point: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1220: + case 1222: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6208 +//line sql.y:6220 { yyLOCAL = &PointPropertyFuncExpr{Property: XCordinate, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1221: + case 1223: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6212 +//line sql.y:6224 { yyLOCAL = &PointPropertyFuncExpr{Property: YCordinate, Point: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1222: + case 1224: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6216 +//line sql.y:6228 { yyLOCAL = &PointPropertyFuncExpr{Property: YCordinate, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1223: + case 1225: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6220 +//line sql.y:6232 { yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1224: + case 1226: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6224 +//line sql.y:6236 { yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1225: + case 1227: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6228 +//line sql.y:6240 { yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1226: + case 1228: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6232 +//line sql.y:6244 { yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1227: + case 1229: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6236 +//line sql.y:6248 { yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1228: + case 1230: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6240 +//line sql.y:6252 { yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1229: + case 1231: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6244 +//line sql.y:6256 { yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1230: + case 1232: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6248 +//line sql.y:6260 { yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1231: + case 1233: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6252 +//line sql.y:6264 { yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1232: + case 1234: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6256 +//line sql.y:6268 { yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1233: + case 1235: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6260 +//line sql.y:6272 { yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1234: + case 1236: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6264 +//line sql.y:6276 { yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1235: + case 1237: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6268 +//line sql.y:6280 { yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1236: + case 1238: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6272 +//line sql.y:6284 { yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1237: + case 1239: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6276 +//line sql.y:6288 { yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1238: + case 1240: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6280 +//line sql.y:6292 { yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1239: + case 1241: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6284 +//line sql.y:6296 { yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1240: + case 1242: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6288 +//line sql.y:6300 { yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1241: + case 1243: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6292 +//line sql.y:6304 { yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1242: + case 1244: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6296 +//line sql.y:6308 { yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1243: + case 1245: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6300 +//line sql.y:6312 { yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1244: + case 1246: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6304 +//line sql.y:6316 { yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1245: + case 1247: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6308 +//line sql.y:6320 { yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1246: + case 1248: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6312 +//line sql.y:6324 { yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1247: + case 1249: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6316 +//line sql.y:6328 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1248: + case 1250: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6320 +//line sql.y:6332 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1249: + case 1251: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6324 +//line sql.y:6336 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1250: + case 1252: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6328 +//line sql.y:6340 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1251: + case 1253: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6332 +//line sql.y:6344 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1252: + case 1254: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6336 +//line sql.y:6348 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1253: + case 1255: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6340 +//line sql.y:6352 { yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1254: + case 1256: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6344 +//line sql.y:6356 { yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1255: + case 1257: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6348 +//line sql.y:6360 { yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1256: + case 1258: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6352 +//line sql.y:6364 { yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1257: + case 1259: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6356 +//line sql.y:6368 { yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1258: + case 1260: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6360 +//line sql.y:6372 { yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1259: + case 1261: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6364 +//line sql.y:6376 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1260: + case 1262: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6368 +//line sql.y:6380 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1261: + case 1263: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6372 +//line sql.y:6384 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1262: + case 1264: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6376 +//line sql.y:6388 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1263: + case 1265: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6380 +//line sql.y:6392 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1264: + case 1266: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6384 +//line sql.y:6396 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1265: + case 1267: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6388 +//line sql.y:6400 { yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1266: + case 1268: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6392 +//line sql.y:6404 { yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1267: + case 1269: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6396 +//line sql.y:6408 { yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1268: + case 1270: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6400 +//line sql.y:6412 { yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1269: + case 1271: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6404 +//line sql.y:6416 { yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1270: + case 1272: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6408 +//line sql.y:6420 { yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1271: + case 1273: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6412 +//line sql.y:6424 { yyLOCAL = &PolygonPropertyFuncExpr{Property: Area, Polygon: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1272: + case 1274: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6416 +//line sql.y:6428 { yyLOCAL = &PolygonPropertyFuncExpr{Property: Centroid, Polygon: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1273: + case 1275: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6420 +//line sql.y:6432 { yyLOCAL = &PolygonPropertyFuncExpr{Property: ExteriorRing, Polygon: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1274: + case 1276: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6424 +//line sql.y:6436 { yyLOCAL = &PolygonPropertyFuncExpr{Property: InteriorRingN, Polygon: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1275: + case 1277: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6428 +//line sql.y:6440 { yyLOCAL = &PolygonPropertyFuncExpr{Property: NumInteriorRings, Polygon: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1276: + case 1278: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6432 +//line sql.y:6444 { yyLOCAL = &GeomCollPropertyFuncExpr{Property: GeometryN, GeomColl: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1277: + case 1279: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6436 +//line sql.y:6448 { yyLOCAL = &GeomCollPropertyFuncExpr{Property: NumGeometries, GeomColl: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1278: + case 1280: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6440 +//line sql.y:6452 { yyLOCAL = &GeoHashFromLatLongExpr{Longitude: yyDollar[3].exprUnion(), Latitude: yyDollar[5].exprUnion(), MaxLength: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1279: + case 1281: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6444 +//line sql.y:6456 { yyLOCAL = &GeoHashFromPointExpr{Point: yyDollar[3].exprUnion(), MaxLength: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1280: + case 1282: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6448 +//line sql.y:6460 { yyLOCAL = &GeomFromGeoHashExpr{GeomType: LatitudeFromHash, GeoHash: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1281: + case 1283: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6452 +//line sql.y:6464 { yyLOCAL = &GeomFromGeoHashExpr{GeomType: LongitudeFromHash, GeoHash: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1282: + case 1284: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6456 +//line sql.y:6468 { yyLOCAL = &GeomFromGeoHashExpr{GeomType: PointFromHash, GeoHash: yyDollar[3].exprUnion(), SridOpt: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1283: + case 1285: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6460 +//line sql.y:6472 { yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1284: + case 1286: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6464 +//line sql.y:6476 { yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].exprUnion(), HigherDimHandlerOpt: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1285: + case 1287: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6468 +//line sql.y:6480 { yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].exprUnion(), HigherDimHandlerOpt: yyDollar[5].exprUnion(), Srid: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1286: + case 1288: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6472 +//line sql.y:6484 { yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1287: + case 1289: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6476 +//line sql.y:6488 { yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].exprUnion(), MaxDecimalDigits: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1288: + case 1290: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6480 +//line sql.y:6492 { yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].exprUnion(), MaxDecimalDigits: yyDollar[5].exprUnion(), Bitmask: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1289: + case 1291: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6484 +//line sql.y:6496 { yyLOCAL = &JSONObjectExpr{Params: yyDollar[3].jsonObjectParamsUnion()} } yyVAL.union = yyLOCAL - case 1290: + case 1292: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6488 +//line sql.y:6500 { yyLOCAL = &JSONQuoteExpr{StringArg: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1291: + case 1293: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6492 +//line sql.y:6504 { yyLOCAL = &JSONContainsExpr{Target: yyDollar[3].exprUnion(), Candidate: yyDollar[5].exprsUnion()[0], PathList: yyDollar[5].exprsUnion()[1:]} } yyVAL.union = yyLOCAL - case 1292: + case 1294: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6496 +//line sql.y:6508 { yyLOCAL = &JSONContainsPathExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), PathList: yyDollar[7].exprsUnion()} } yyVAL.union = yyLOCAL - case 1293: + case 1295: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6500 +//line sql.y:6512 { yyLOCAL = &JSONExtractExpr{JSONDoc: yyDollar[3].exprUnion(), PathList: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 1294: + case 1296: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6504 +//line sql.y:6516 { yyLOCAL = &JSONKeysExpr{JSONDoc: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1295: + case 1297: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6508 +//line sql.y:6520 { yyLOCAL = &JSONKeysExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1296: + case 1298: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6512 +//line sql.y:6524 { yyLOCAL = &JSONOverlapsExpr{JSONDoc1: yyDollar[3].exprUnion(), JSONDoc2: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1297: + case 1299: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6516 +//line sql.y:6528 { yyLOCAL = &JSONSearchExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), SearchStr: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1298: + case 1300: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr -//line sql.y:6520 +//line sql.y:6532 { yyLOCAL = &JSONSearchExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), SearchStr: yyDollar[7].exprUnion(), EscapeChar: yyDollar[9].exprsUnion()[0], PathList: yyDollar[9].exprsUnion()[1:]} } yyVAL.union = yyLOCAL - case 1299: + case 1301: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Expr -//line sql.y:6524 +//line sql.y:6536 { yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 1300: + case 1302: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6528 +//line sql.y:6540 { yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion()} } yyVAL.union = yyLOCAL - case 1301: + case 1303: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6532 +//line sql.y:6544 { yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), ErrorOnResponse: yyDollar[7].jtOnResponseUnion()} } yyVAL.union = yyLOCAL - case 1302: + case 1304: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:6536 +//line sql.y:6548 { yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion(), ErrorOnResponse: yyDollar[8].jtOnResponseUnion()} } yyVAL.union = yyLOCAL - case 1303: + case 1305: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6540 +//line sql.y:6552 { yyLOCAL = &JSONAttributesExpr{Type: DepthAttributeType, JSONDoc: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1304: + case 1306: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6544 +//line sql.y:6556 { yyLOCAL = &JSONAttributesExpr{Type: ValidAttributeType, JSONDoc: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1305: + case 1307: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6548 +//line sql.y:6560 { yyLOCAL = &JSONAttributesExpr{Type: TypeAttributeType, JSONDoc: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1306: + case 1308: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6552 +//line sql.y:6564 { yyLOCAL = &JSONAttributesExpr{Type: LengthAttributeType, JSONDoc: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1307: + case 1309: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6556 +//line sql.y:6568 { yyLOCAL = &JSONAttributesExpr{Type: LengthAttributeType, JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1308: + case 1310: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6560 +//line sql.y:6572 { yyLOCAL = &JSONValueModifierExpr{Type: JSONArrayAppendType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()} } yyVAL.union = yyLOCAL - case 1309: + case 1311: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6564 +//line sql.y:6576 { yyLOCAL = &JSONValueModifierExpr{Type: JSONArrayInsertType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()} } yyVAL.union = yyLOCAL - case 1310: + case 1312: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6568 +//line sql.y:6580 { yyLOCAL = &JSONValueModifierExpr{Type: JSONInsertType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()} } yyVAL.union = yyLOCAL - case 1311: + case 1313: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6572 +//line sql.y:6584 { yyLOCAL = &JSONValueModifierExpr{Type: JSONReplaceType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()} } yyVAL.union = yyLOCAL - case 1312: + case 1314: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6576 +//line sql.y:6588 { yyLOCAL = &JSONValueModifierExpr{Type: JSONSetType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()} } yyVAL.union = yyLOCAL - case 1313: + case 1315: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6580 +//line sql.y:6592 { yyLOCAL = &JSONValueMergeExpr{Type: JSONMergeType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 1314: + case 1316: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6584 +//line sql.y:6596 { yyLOCAL = &JSONValueMergeExpr{Type: JSONMergePatchType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 1315: + case 1317: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6588 +//line sql.y:6600 { yyLOCAL = &JSONValueMergeExpr{Type: JSONMergePreserveType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 1316: + case 1318: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6592 +//line sql.y:6604 { yyLOCAL = &JSONRemoveExpr{JSONDoc: yyDollar[3].exprUnion(), PathList: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 1317: + case 1319: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6596 +//line sql.y:6608 { yyLOCAL = &JSONUnquoteExpr{JSONValue: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1318: + case 1320: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6600 +//line sql.y:6612 { yyLOCAL = &MultiPolygonExpr{PolygonParams: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1319: + case 1321: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6604 +//line sql.y:6616 { yyLOCAL = &MultiPointExpr{PointParams: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1320: + case 1322: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6608 +//line sql.y:6620 { yyLOCAL = &MultiLinestringExpr{LinestringParams: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1321: + case 1323: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6612 +//line sql.y:6624 { yyLOCAL = &PolygonExpr{LinestringParams: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1322: + case 1324: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6616 +//line sql.y:6628 { yyLOCAL = &LineStringExpr{PointParams: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1323: + case 1325: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6620 +//line sql.y:6632 { yyLOCAL = &PointExpr{XCordinate: yyDollar[3].exprUnion(), YCordinate: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1324: + case 1326: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6624 +//line sql.y:6636 { yyLOCAL = &ArgumentLessWindowExpr{Type: yyDollar[1].argumentLessWindowExprTypeUnion(), OverClause: yyDollar[4].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1325: + case 1327: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6628 +//line sql.y:6640 { yyLOCAL = &FirstOrLastValueExpr{Type: yyDollar[1].firstOrLastValueExprTypeUnion(), Expr: yyDollar[3].exprUnion(), NullTreatmentClause: yyDollar[5].nullTreatmentClauseUnion(), OverClause: yyDollar[6].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1326: + case 1328: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6632 +//line sql.y:6644 { yyLOCAL = &NtileExpr{N: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1327: + case 1329: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:6636 +//line sql.y:6648 { yyLOCAL = &NTHValueExpr{Expr: yyDollar[3].exprUnion(), N: yyDollar[5].exprUnion(), FromFirstLastClause: yyDollar[7].fromFirstLastClauseUnion(), NullTreatmentClause: yyDollar[8].nullTreatmentClauseUnion(), OverClause: yyDollar[9].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1328: + case 1330: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6640 +//line sql.y:6652 { yyLOCAL = &LagLeadExpr{Type: yyDollar[1].lagLeadExprTypeUnion(), Expr: yyDollar[3].exprUnion(), NullTreatmentClause: yyDollar[5].nullTreatmentClauseUnion(), OverClause: yyDollar[6].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1329: + case 1331: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:6644 +//line sql.y:6656 { yyLOCAL = &LagLeadExpr{Type: yyDollar[1].lagLeadExprTypeUnion(), Expr: yyDollar[3].exprUnion(), N: yyDollar[5].exprUnion(), Default: yyDollar[6].exprUnion(), NullTreatmentClause: yyDollar[8].nullTreatmentClauseUnion(), OverClause: yyDollar[9].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1330: + case 1332: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6648 +//line sql.y:6660 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprAdddate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()} } yyVAL.union = yyLOCAL - case 1331: + case 1333: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6652 +//line sql.y:6664 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprAdddate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[5].exprUnion(), Unit: IntervalNone} } yyVAL.union = yyLOCAL - case 1332: + case 1334: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6656 +//line sql.y:6668 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprDateAdd, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()} } yyVAL.union = yyLOCAL - case 1333: + case 1335: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6660 +//line sql.y:6672 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprDateSub, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()} } yyVAL.union = yyLOCAL - case 1334: + case 1336: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6664 +//line sql.y:6676 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprSubdate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()} } yyVAL.union = yyLOCAL - case 1335: + case 1337: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6668 +//line sql.y:6680 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprSubdate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[5].exprUnion(), Unit: IntervalNone} } yyVAL.union = yyLOCAL - case 1340: + case 1342: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6678 +//line sql.y:6690 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1341: + case 1343: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6682 +//line sql.y:6694 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1342: + case 1344: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6686 +//line sql.y:6698 { yyLOCAL = yyDollar[1].variableUnion() } yyVAL.union = yyLOCAL - case 1343: + case 1345: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6690 +//line sql.y:6702 { yyLOCAL = parseBindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 1344: + case 1346: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:6695 +//line sql.y:6707 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1345: + case 1347: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6699 +//line sql.y:6711 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1346: + case 1348: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6705 +//line sql.y:6717 { yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1347: + case 1349: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6709 +//line sql.y:6721 { yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1348: + case 1350: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr -//line sql.y:6713 +//line sql.y:6725 { yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion()} } yyVAL.union = yyLOCAL - case 1349: + case 1351: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Expr -//line sql.y:6717 +//line sql.y:6729 { yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion(), ReturnOption: yyDollar[11].exprUnion()} } yyVAL.union = yyLOCAL - case 1350: + case 1352: yyDollar = yyS[yypt-14 : yypt+1] var yyLOCAL Expr -//line sql.y:6721 +//line sql.y:6733 { // Match type is kept expression as TRIM( ' m ') is accepted yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion(), ReturnOption: yyDollar[11].exprUnion(), MatchType: yyDollar[13].exprUnion()} } yyVAL.union = yyLOCAL - case 1351: + case 1353: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6726 +//line sql.y:6738 { yyLOCAL = &RegexpLikeExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1352: + case 1354: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6730 +//line sql.y:6742 { yyLOCAL = &RegexpLikeExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), MatchType: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1353: + case 1355: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6734 +//line sql.y:6746 { yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1354: + case 1356: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr -//line sql.y:6738 +//line sql.y:6750 { yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion(), Position: yyDollar[9].exprUnion()} } yyVAL.union = yyLOCAL - case 1355: + case 1357: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Expr -//line sql.y:6742 +//line sql.y:6754 { yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion(), Position: yyDollar[9].exprUnion(), Occurrence: yyDollar[11].exprUnion()} } yyVAL.union = yyLOCAL - case 1356: + case 1358: yyDollar = yyS[yypt-14 : yypt+1] var yyLOCAL Expr -//line sql.y:6746 +//line sql.y:6758 { // Match type is kept expression as TRIM( ' m ') is accepted yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion(), Position: yyDollar[9].exprUnion(), Occurrence: yyDollar[11].exprUnion(), MatchType: yyDollar[13].exprUnion()} } yyVAL.union = yyLOCAL - case 1357: + case 1359: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6751 +//line sql.y:6763 { yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1358: + case 1360: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6755 +//line sql.y:6767 { yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1359: + case 1361: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr -//line sql.y:6759 +//line sql.y:6771 { yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion()} } yyVAL.union = yyLOCAL - case 1360: + case 1362: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Expr -//line sql.y:6763 +//line sql.y:6775 { // Match type is kept expression as TRIM( ' m ') is accepted yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion(), MatchType: yyDollar[11].exprUnion()} } yyVAL.union = yyLOCAL - case 1361: + case 1363: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6770 +//line sql.y:6782 { yyLOCAL = &ExtractValueExpr{Fragment: yyDollar[3].exprUnion(), XPathExpr: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1362: + case 1364: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6774 +//line sql.y:6786 { yyLOCAL = &UpdateXMLExpr{Target: yyDollar[3].exprUnion(), XPathExpr: yyDollar[5].exprUnion(), NewXML: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1363: + case 1365: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6780 +//line sql.y:6792 { yyLOCAL = &PerformanceSchemaFuncExpr{Type: FormatBytesType, Argument: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1364: + case 1366: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6784 +//line sql.y:6796 { yyLOCAL = &PerformanceSchemaFuncExpr{Type: FormatPicoTimeType, Argument: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1365: + case 1367: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6788 +//line sql.y:6800 { yyLOCAL = &PerformanceSchemaFuncExpr{Type: PsCurrentThreadIDType} } yyVAL.union = yyLOCAL - case 1366: + case 1368: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6792 +//line sql.y:6804 { yyLOCAL = &PerformanceSchemaFuncExpr{Type: PsThreadIDType, Argument: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1367: + case 1369: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6798 +//line sql.y:6810 { yyLOCAL = >IDFuncExpr{Type: GTIDSubsetType, Set1: yyDollar[3].exprUnion(), Set2: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1368: + case 1370: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6802 +//line sql.y:6814 { yyLOCAL = >IDFuncExpr{Type: GTIDSubtractType, Set1: yyDollar[3].exprUnion(), Set2: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1369: + case 1371: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6806 +//line sql.y:6818 { yyLOCAL = >IDFuncExpr{Type: WaitForExecutedGTIDSetType, Set1: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1370: + case 1372: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6810 +//line sql.y:6822 { yyLOCAL = >IDFuncExpr{Type: WaitForExecutedGTIDSetType, Set1: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1371: + case 1373: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6814 +//line sql.y:6826 { yyLOCAL = >IDFuncExpr{Type: WaitUntilSQLThreadAfterGTIDSType, Set1: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1372: + case 1374: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6818 +//line sql.y:6830 { yyLOCAL = >IDFuncExpr{Type: WaitUntilSQLThreadAfterGTIDSType, Set1: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1373: + case 1375: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6822 +//line sql.y:6834 { yyLOCAL = >IDFuncExpr{Type: WaitUntilSQLThreadAfterGTIDSType, Set1: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion(), Channel: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1374: + case 1376: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6827 +//line sql.y:6839 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1375: + case 1377: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6831 +//line sql.y:6843 { yyLOCAL = yyDollar[2].convertTypeUnion() } yyVAL.union = yyLOCAL - case 1376: + case 1378: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6837 +//line sql.y:6849 { yyLOCAL = IntervalDayHour } yyVAL.union = yyLOCAL - case 1377: + case 1379: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6841 +//line sql.y:6853 { yyLOCAL = IntervalDayMicrosecond } yyVAL.union = yyLOCAL - case 1378: + case 1380: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6845 +//line sql.y:6857 { yyLOCAL = IntervalDayMinute } yyVAL.union = yyLOCAL - case 1379: + case 1381: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6849 +//line sql.y:6861 { yyLOCAL = IntervalDaySecond } yyVAL.union = yyLOCAL - case 1380: + case 1382: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6853 +//line sql.y:6865 { yyLOCAL = IntervalHourMicrosecond } yyVAL.union = yyLOCAL - case 1381: + case 1383: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6857 +//line sql.y:6869 { yyLOCAL = IntervalHourMinute } yyVAL.union = yyLOCAL - case 1382: + case 1384: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6861 +//line sql.y:6873 { yyLOCAL = IntervalHourSecond } yyVAL.union = yyLOCAL - case 1383: + case 1385: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6865 +//line sql.y:6877 { yyLOCAL = IntervalMinuteMicrosecond } yyVAL.union = yyLOCAL - case 1384: + case 1386: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6869 +//line sql.y:6881 { yyLOCAL = IntervalMinuteSecond } yyVAL.union = yyLOCAL - case 1385: + case 1387: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6873 +//line sql.y:6885 { yyLOCAL = IntervalSecondMicrosecond } yyVAL.union = yyLOCAL - case 1386: + case 1388: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6877 +//line sql.y:6889 { yyLOCAL = IntervalYearMonth } yyVAL.union = yyLOCAL - case 1387: + case 1389: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6881 +//line sql.y:6893 { yyLOCAL = IntervalDay } yyVAL.union = yyLOCAL - case 1388: + case 1390: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6885 +//line sql.y:6897 { yyLOCAL = IntervalWeek } yyVAL.union = yyLOCAL - case 1389: + case 1391: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6889 +//line sql.y:6901 { yyLOCAL = IntervalHour } yyVAL.union = yyLOCAL - case 1390: + case 1392: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6893 +//line sql.y:6905 { yyLOCAL = IntervalMinute } yyVAL.union = yyLOCAL - case 1391: + case 1393: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6897 +//line sql.y:6909 { yyLOCAL = IntervalMonth } yyVAL.union = yyLOCAL - case 1392: + case 1394: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6901 +//line sql.y:6913 { yyLOCAL = IntervalQuarter } yyVAL.union = yyLOCAL - case 1393: + case 1395: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6905 +//line sql.y:6917 { yyLOCAL = IntervalSecond } yyVAL.union = yyLOCAL - case 1394: + case 1396: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6909 +//line sql.y:6921 { yyLOCAL = IntervalMicrosecond } yyVAL.union = yyLOCAL - case 1395: + case 1397: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6913 +//line sql.y:6925 { yyLOCAL = IntervalYear } yyVAL.union = yyLOCAL - case 1396: + case 1398: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6919 +//line sql.y:6931 { yyLOCAL = IntervalDay } yyVAL.union = yyLOCAL - case 1397: + case 1399: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6923 +//line sql.y:6935 { yyLOCAL = IntervalWeek } yyVAL.union = yyLOCAL - case 1398: + case 1400: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6927 +//line sql.y:6939 { yyLOCAL = IntervalHour } yyVAL.union = yyLOCAL - case 1399: + case 1401: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6931 +//line sql.y:6943 { yyLOCAL = IntervalMinute } yyVAL.union = yyLOCAL - case 1400: + case 1402: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6935 +//line sql.y:6947 { yyLOCAL = IntervalMonth } yyVAL.union = yyLOCAL - case 1401: + case 1403: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6939 +//line sql.y:6951 { yyLOCAL = IntervalQuarter } yyVAL.union = yyLOCAL - case 1402: + case 1404: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6943 +//line sql.y:6955 { yyLOCAL = IntervalSecond } yyVAL.union = yyLOCAL - case 1403: + case 1405: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6947 +//line sql.y:6959 { yyLOCAL = IntervalMicrosecond } yyVAL.union = yyLOCAL - case 1404: + case 1406: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6951 +//line sql.y:6963 { yyLOCAL = IntervalYear } yyVAL.union = yyLOCAL - case 1405: + case 1407: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6955 +//line sql.y:6967 { yyLOCAL = IntervalDay } yyVAL.union = yyLOCAL - case 1406: + case 1408: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6959 +//line sql.y:6971 { yyLOCAL = IntervalWeek } yyVAL.union = yyLOCAL - case 1407: + case 1409: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6963 +//line sql.y:6975 { yyLOCAL = IntervalHour } yyVAL.union = yyLOCAL - case 1408: + case 1410: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6967 +//line sql.y:6979 { yyLOCAL = IntervalMinute } yyVAL.union = yyLOCAL - case 1409: + case 1411: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6971 +//line sql.y:6983 { yyLOCAL = IntervalMonth } yyVAL.union = yyLOCAL - case 1410: + case 1412: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6975 +//line sql.y:6987 { yyLOCAL = IntervalQuarter } yyVAL.union = yyLOCAL - case 1411: + case 1413: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6979 +//line sql.y:6991 { yyLOCAL = IntervalSecond } yyVAL.union = yyLOCAL - case 1412: + case 1414: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6983 +//line sql.y:6995 { yyLOCAL = IntervalMicrosecond } yyVAL.union = yyLOCAL - case 1413: + case 1415: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6987 +//line sql.y:6999 { yyLOCAL = IntervalYear } yyVAL.union = yyLOCAL - case 1416: + case 1418: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int -//line sql.y:6997 +//line sql.y:7009 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1417: + case 1419: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int -//line sql.y:7001 +//line sql.y:7013 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1418: + case 1420: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int -//line sql.y:7005 +//line sql.y:7017 { yyLOCAL = convertStringToInt(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 1419: + case 1421: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7015 +//line sql.y:7027 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("if"), Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1420: + case 1422: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7019 +//line sql.y:7031 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("database"), Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1421: + case 1423: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7023 +//line sql.y:7035 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("schema"), Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1422: + case 1424: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7027 +//line sql.y:7039 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("mod"), Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1423: + case 1425: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7031 +//line sql.y:7043 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("replace"), Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1424: + case 1426: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:7037 +//line sql.y:7049 { yyLOCAL = NoOption } yyVAL.union = yyLOCAL - case 1425: + case 1427: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:7041 +//line sql.y:7053 { yyLOCAL = BooleanModeOpt } yyVAL.union = yyLOCAL - case 1426: + case 1428: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:7045 +//line sql.y:7057 { yyLOCAL = NaturalLanguageModeOpt } yyVAL.union = yyLOCAL - case 1427: + case 1429: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:7049 +//line sql.y:7061 { yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt } yyVAL.union = yyLOCAL - case 1428: + case 1430: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:7053 +//line sql.y:7065 { yyLOCAL = QueryExpansionOpt } yyVAL.union = yyLOCAL - case 1429: + case 1431: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7059 +//line sql.y:7071 { yyVAL.str = string(yyDollar[1].identifierCI.String()) } - case 1430: + case 1432: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7063 +//line sql.y:7075 { yyVAL.str = string(yyDollar[1].str) } - case 1431: + case 1433: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7067 +//line sql.y:7079 { yyVAL.str = string(yyDollar[1].str) } - case 1432: + case 1434: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7073 +//line sql.y:7085 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1433: + case 1435: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7077 +//line sql.y:7089 { yyLOCAL = &ConvertType{Type: string(yyDollar[2].str), Length: ptr.Of(convertStringToInt(yyDollar[4].str))} } yyVAL.union = yyLOCAL - case 1434: + case 1436: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7081 +//line sql.y:7093 { yyLOCAL = &ConvertType{Type: string(yyDollar[2].str), Length: ptr.Of(convertStringToInt(yyDollar[4].str))} } yyVAL.union = yyLOCAL - case 1435: + case 1437: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7087 +//line sql.y:7099 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()} } yyVAL.union = yyLOCAL - case 1436: + case 1438: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7091 +//line sql.y:7103 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion(), Charset: yyDollar[3].columnCharset} } yyVAL.union = yyLOCAL - case 1437: + case 1439: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7095 +//line sql.y:7107 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1438: + case 1440: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7099 +//line sql.y:7111 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()} } yyVAL.union = yyLOCAL - case 1439: + case 1441: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7103 +//line sql.y:7115 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length yyLOCAL.Scale = yyDollar[2].LengthScaleOption.Scale } yyVAL.union = yyLOCAL - case 1440: + case 1442: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7109 +//line sql.y:7121 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1441: + case 1443: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7113 +//line sql.y:7125 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()} } yyVAL.union = yyLOCAL - case 1442: + case 1444: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7117 +//line sql.y:7129 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1443: + case 1445: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7121 +//line sql.y:7133 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1444: + case 1446: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7125 +//line sql.y:7137 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()} } yyVAL.union = yyLOCAL - case 1445: + case 1447: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7129 +//line sql.y:7141 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1446: + case 1448: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7133 +//line sql.y:7145 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1447: + case 1449: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7137 +//line sql.y:7149 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()} } yyVAL.union = yyLOCAL - case 1448: + case 1450: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7141 +//line sql.y:7153 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1449: + case 1451: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7145 +//line sql.y:7157 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1450: + case 1452: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:7151 +//line sql.y:7163 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1451: + case 1453: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:7155 +//line sql.y:7167 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1452: + case 1454: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:7160 +//line sql.y:7172 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1453: + case 1455: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7164 +//line sql.y:7176 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1454: + case 1456: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7169 +//line sql.y:7181 { yyVAL.str = string("") } - case 1455: + case 1457: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7173 +//line sql.y:7185 { yyVAL.str = encodeSQLString(yyDollar[2].str) } - case 1456: + case 1458: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*When -//line sql.y:7179 +//line sql.y:7191 { yyLOCAL = []*When{yyDollar[1].whenUnion()} } yyVAL.union = yyLOCAL - case 1457: + case 1459: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7183 +//line sql.y:7195 { yySLICE := (*[]*When)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].whenUnion()) } - case 1458: + case 1460: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *When -//line sql.y:7189 +//line sql.y:7201 { yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 1459: + case 1461: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:7194 +//line sql.y:7206 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1460: + case 1462: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:7198 +//line sql.y:7210 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1461: + case 1463: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ColName -//line sql.y:7204 +//line sql.y:7216 { yyLOCAL = &ColName{Name: yyDollar[1].identifierCI} } yyVAL.union = yyLOCAL - case 1462: + case 1464: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ColName -//line sql.y:7208 +//line sql.y:7220 { yyLOCAL = &ColName{Name: NewIdentifierCI(string(yyDollar[1].str))} } yyVAL.union = yyLOCAL - case 1463: + case 1465: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColName -//line sql.y:7212 +//line sql.y:7224 { yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].identifierCS}, Name: yyDollar[3].identifierCI} } yyVAL.union = yyLOCAL - case 1464: + case 1466: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColName -//line sql.y:7216 +//line sql.y:7228 { yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCS}, Name: yyDollar[5].identifierCI} } yyVAL.union = yyLOCAL - case 1465: + case 1467: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7222 +//line sql.y:7234 { yyLOCAL = yyDollar[1].colNameUnion() } yyVAL.union = yyLOCAL - case 1466: + case 1468: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7226 +//line sql.y:7238 { yyLOCAL = &Offset{V: convertStringToInt(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1467: + case 1469: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7232 +//line sql.y:7244 { // TODO(sougou): Deprecate this construct. if yyDollar[1].identifierCI.Lowered() != "value" { @@ -21088,426 +21135,426 @@ yydefault: yyLOCAL = NewIntLiteral("1") } yyVAL.union = yyLOCAL - case 1468: + case 1470: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:7241 +//line sql.y:7253 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1469: + case 1471: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:7245 +//line sql.y:7257 { yyLOCAL = parseBindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 1470: + case 1472: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:7250 +//line sql.y:7262 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1471: + case 1473: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Exprs -//line sql.y:7254 +//line sql.y:7266 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 1472: + case 1474: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:7259 +//line sql.y:7271 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1473: + case 1475: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:7263 +//line sql.y:7275 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1474: + case 1476: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *NamedWindow -//line sql.y:7269 +//line sql.y:7281 { yyLOCAL = &NamedWindow{yyDollar[2].windowDefinitionsUnion()} } yyVAL.union = yyLOCAL - case 1475: + case 1477: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL NamedWindows -//line sql.y:7275 +//line sql.y:7287 { yyLOCAL = NamedWindows{yyDollar[1].namedWindowUnion()} } yyVAL.union = yyLOCAL - case 1476: + case 1478: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7279 +//line sql.y:7291 { yySLICE := (*NamedWindows)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].namedWindowUnion()) } - case 1477: + case 1479: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL NamedWindows -//line sql.y:7284 +//line sql.y:7296 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1478: + case 1480: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL NamedWindows -//line sql.y:7288 +//line sql.y:7300 { yyLOCAL = yyDollar[1].namedWindowsUnion() } yyVAL.union = yyLOCAL - case 1479: + case 1481: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderBy -//line sql.y:7293 +//line sql.y:7305 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1480: + case 1482: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:7297 +//line sql.y:7309 { yyLOCAL = yyDollar[1].orderByUnion() } yyVAL.union = yyLOCAL - case 1481: + case 1483: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL OrderBy -//line sql.y:7303 +//line sql.y:7315 { yyLOCAL = yyDollar[3].orderByUnion() } yyVAL.union = yyLOCAL - case 1482: + case 1484: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:7309 +//line sql.y:7321 { yyLOCAL = OrderBy{yyDollar[1].orderUnion()} } yyVAL.union = yyLOCAL - case 1483: + case 1485: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7313 +//line sql.y:7325 { yySLICE := (*OrderBy)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].orderUnion()) } - case 1484: + case 1486: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Order -//line sql.y:7319 +//line sql.y:7331 { yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()} } yyVAL.union = yyLOCAL - case 1485: + case 1487: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:7324 +//line sql.y:7336 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 1486: + case 1488: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:7328 +//line sql.y:7340 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 1487: + case 1489: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:7332 +//line sql.y:7344 { yyLOCAL = DescOrder } yyVAL.union = yyLOCAL - case 1488: + case 1490: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Limit -//line sql.y:7337 +//line sql.y:7349 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1489: + case 1491: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Limit -//line sql.y:7341 +//line sql.y:7353 { yyLOCAL = yyDollar[1].limitUnion() } yyVAL.union = yyLOCAL - case 1490: + case 1492: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Limit -//line sql.y:7347 +//line sql.y:7359 { yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 1491: + case 1493: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:7351 +//line sql.y:7363 { yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 1492: + case 1494: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:7355 +//line sql.y:7367 { yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 1493: + case 1495: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:7360 +//line sql.y:7372 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1494: + case 1496: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:7364 +//line sql.y:7376 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 1495: + case 1497: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:7368 +//line sql.y:7380 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 1496: + case 1498: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:7372 +//line sql.y:7384 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 1497: + case 1499: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:7376 +//line sql.y:7388 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 1498: + case 1500: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:7383 +//line sql.y:7395 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.union = yyLOCAL - case 1499: + case 1501: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:7387 +//line sql.y:7399 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.union = yyLOCAL - case 1500: + case 1502: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:7391 +//line sql.y:7403 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.union = yyLOCAL - case 1501: + case 1503: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:7395 +//line sql.y:7407 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.union = yyLOCAL - case 1502: + case 1504: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:7401 +//line sql.y:7413 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1503: + case 1505: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:7405 +//line sql.y:7417 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1504: + case 1506: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:7409 +//line sql.y:7421 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1505: + case 1507: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:7413 +//line sql.y:7425 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1506: + case 1508: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7418 +//line sql.y:7430 { yyVAL.str = "" } - case 1507: + case 1509: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7422 +//line sql.y:7434 { yyVAL.str = string(yyDollar[3].str) } - case 1508: + case 1510: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7426 +//line sql.y:7438 { yyVAL.str = string(yyDollar[3].str) } - case 1509: + case 1511: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7430 +//line sql.y:7442 { yyVAL.str = string(yyDollar[3].str) } - case 1510: + case 1512: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7435 +//line sql.y:7447 { yyVAL.str = "" } - case 1511: + case 1513: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7439 +//line sql.y:7451 { yyVAL.str = yyDollar[3].str } - case 1512: + case 1514: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7445 +//line sql.y:7457 { yyVAL.str = string(yyDollar[1].str) } - case 1513: + case 1515: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7449 +//line sql.y:7461 { yyVAL.str = string(yyDollar[1].str) } - case 1514: + case 1516: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7454 +//line sql.y:7466 { yyVAL.str = "" } - case 1515: + case 1517: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:7458 +//line sql.y:7470 { yyVAL.str = yyDollar[2].str } - case 1516: + case 1518: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7463 +//line sql.y:7475 { yyVAL.str = "cascaded" } - case 1517: + case 1519: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7467 +//line sql.y:7479 { yyVAL.str = string(yyDollar[1].str) } - case 1518: + case 1520: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7471 +//line sql.y:7483 { yyVAL.str = string(yyDollar[1].str) } - case 1519: + case 1521: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Definer -//line sql.y:7476 +//line sql.y:7488 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1520: + case 1522: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Definer -//line sql.y:7480 +//line sql.y:7492 { yyLOCAL = yyDollar[3].definerUnion() } yyVAL.union = yyLOCAL - case 1521: + case 1523: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Definer -//line sql.y:7486 +//line sql.y:7498 { yyLOCAL = &Definer{ Name: string(yyDollar[1].str), } } yyVAL.union = yyLOCAL - case 1522: + case 1524: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Definer -//line sql.y:7492 +//line sql.y:7504 { yyLOCAL = &Definer{ Name: string(yyDollar[1].str), } } yyVAL.union = yyLOCAL - case 1523: + case 1525: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Definer -//line sql.y:7498 +//line sql.y:7510 { yyLOCAL = &Definer{ Name: yyDollar[1].str, @@ -21515,409 +21562,409 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1524: + case 1526: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7507 +//line sql.y:7519 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 1525: + case 1527: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7511 +//line sql.y:7523 { yyVAL.str = formatIdentifier(yyDollar[1].str) } - case 1526: + case 1528: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7516 +//line sql.y:7528 { yyVAL.str = "" } - case 1527: + case 1529: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7520 +//line sql.y:7532 { yyVAL.str = formatAddress(yyDollar[1].str) } - case 1528: + case 1530: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Lock -//line sql.y:7526 +//line sql.y:7538 { yyLOCAL = ForUpdateLock } yyVAL.union = yyLOCAL - case 1529: + case 1531: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Lock -//line sql.y:7530 +//line sql.y:7542 { yyLOCAL = ForUpdateLockNoWait } yyVAL.union = yyLOCAL - case 1530: + case 1532: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:7534 +//line sql.y:7546 { yyLOCAL = ForUpdateLockSkipLocked } yyVAL.union = yyLOCAL - case 1531: + case 1533: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Lock -//line sql.y:7538 +//line sql.y:7550 { yyLOCAL = ForShareLock } yyVAL.union = yyLOCAL - case 1532: + case 1534: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Lock -//line sql.y:7542 +//line sql.y:7554 { yyLOCAL = ForShareLockNoWait } yyVAL.union = yyLOCAL - case 1533: + case 1535: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:7546 +//line sql.y:7558 { yyLOCAL = ForShareLockSkipLocked } yyVAL.union = yyLOCAL - case 1534: + case 1536: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:7550 +//line sql.y:7562 { yyLOCAL = ShareModeLock } yyVAL.union = yyLOCAL - case 1535: + case 1537: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:7556 +//line sql.y:7568 { yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].columnCharset, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str} } yyVAL.union = yyLOCAL - case 1536: + case 1538: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:7560 +//line sql.y:7572 { yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: ColumnCharset{}, FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 1537: + case 1539: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:7564 +//line sql.y:7576 { yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].columnCharset, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 1538: + case 1540: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7569 +//line sql.y:7581 { yyVAL.str = "" } - case 1539: + case 1541: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7573 +//line sql.y:7585 { yyVAL.str = " format csv" + yyDollar[3].str } - case 1540: + case 1542: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7577 +//line sql.y:7589 { yyVAL.str = " format text" + yyDollar[3].str } - case 1541: + case 1543: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7582 +//line sql.y:7594 { yyVAL.str = "" } - case 1542: + case 1544: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7586 +//line sql.y:7598 { yyVAL.str = " header" } - case 1543: + case 1545: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7591 +//line sql.y:7603 { yyVAL.str = "" } - case 1544: + case 1546: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7595 +//line sql.y:7607 { yyVAL.str = " manifest on" } - case 1545: + case 1547: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7599 +//line sql.y:7611 { yyVAL.str = " manifest off" } - case 1546: + case 1548: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7604 +//line sql.y:7616 { yyVAL.str = "" } - case 1547: + case 1549: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7608 +//line sql.y:7620 { yyVAL.str = " overwrite on" } - case 1548: + case 1550: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7612 +//line sql.y:7624 { yyVAL.str = " overwrite off" } - case 1549: + case 1551: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7618 +//line sql.y:7630 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 1550: + case 1552: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7623 +//line sql.y:7635 { yyVAL.str = "" } - case 1551: + case 1553: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7627 +//line sql.y:7639 { yyVAL.str = " lines" + yyDollar[2].str } - case 1552: + case 1554: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7633 +//line sql.y:7645 { yyVAL.str = yyDollar[1].str } - case 1553: + case 1555: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7637 +//line sql.y:7649 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 1554: + case 1556: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7643 +//line sql.y:7655 { yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str) } - case 1555: + case 1557: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7647 +//line sql.y:7659 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 1556: + case 1558: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7652 +//line sql.y:7664 { yyVAL.str = "" } - case 1557: + case 1559: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7656 +//line sql.y:7668 { yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str } - case 1558: + case 1560: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7662 +//line sql.y:7674 { yyVAL.str = yyDollar[1].str } - case 1559: + case 1561: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7666 +//line sql.y:7678 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 1560: + case 1562: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7672 +//line sql.y:7684 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 1561: + case 1563: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:7676 +//line sql.y:7688 { yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str) } - case 1562: + case 1564: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7680 +//line sql.y:7692 { yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str) } - case 1563: + case 1565: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7685 +//line sql.y:7697 { yyVAL.str = "" } - case 1564: + case 1566: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7689 +//line sql.y:7701 { yyVAL.str = " optionally" } - case 1565: + case 1567: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Insert -//line sql.y:7702 +//line sql.y:7714 { yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion()} } yyVAL.union = yyLOCAL - case 1566: + case 1568: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Insert -//line sql.y:7706 +//line sql.y:7718 { yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()} } yyVAL.union = yyLOCAL - case 1567: + case 1569: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *Insert -//line sql.y:7710 +//line sql.y:7722 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion()} } yyVAL.union = yyLOCAL - case 1568: + case 1570: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:7714 +//line sql.y:7726 { yyLOCAL = &Insert{Columns: []IdentifierCI{}, Rows: yyDollar[4].valuesUnion()} } yyVAL.union = yyLOCAL - case 1569: + case 1571: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:7718 +//line sql.y:7730 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()} } yyVAL.union = yyLOCAL - case 1570: + case 1572: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:7724 +//line sql.y:7736 { yyLOCAL = Columns{yyDollar[1].identifierCI} } yyVAL.union = yyLOCAL - case 1571: + case 1573: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:7728 +//line sql.y:7740 { yyLOCAL = Columns{yyDollar[3].identifierCI} } yyVAL.union = yyLOCAL - case 1572: + case 1574: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7732 +//line sql.y:7744 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].identifierCI) } - case 1573: + case 1575: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:7736 +//line sql.y:7748 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[5].identifierCI) } - case 1574: + case 1576: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:7741 +//line sql.y:7753 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1575: + case 1577: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:7745 +//line sql.y:7757 { yyLOCAL = yyDollar[5].updateExprsUnion() } yyVAL.union = yyLOCAL - case 1576: + case 1578: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Values -//line sql.y:7751 +//line sql.y:7763 { yyLOCAL = Values{yyDollar[1].valTupleUnion()} } yyVAL.union = yyLOCAL - case 1577: + case 1579: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7755 +//line sql.y:7767 { yySLICE := (*Values)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion()) } - case 1578: + case 1580: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ValTuple -//line sql.y:7761 +//line sql.y:7773 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 1579: + case 1581: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ValTuple -//line sql.y:7765 +//line sql.y:7777 { yyLOCAL = ValTuple{} } yyVAL.union = yyLOCAL - case 1580: + case 1582: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ValTuple -//line sql.y:7771 +//line sql.y:7783 { yyLOCAL = ValTuple(yyDollar[2].exprsUnion()) } yyVAL.union = yyLOCAL - case 1581: + case 1583: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL ValTuple -//line sql.y:7775 +//line sql.y:7787 { yyLOCAL = ValTuple(yyDollar[3].exprsUnion()) } yyVAL.union = yyLOCAL - case 1582: + case 1584: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7780 +//line sql.y:7792 { if len(yyDollar[1].valTupleUnion()) == 1 { yyLOCAL = yyDollar[1].valTupleUnion()[0] @@ -21926,300 +21973,300 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1583: + case 1585: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:7790 +//line sql.y:7802 { yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()} } yyVAL.union = yyLOCAL - case 1584: + case 1586: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7794 +//line sql.y:7806 { yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion()) } - case 1585: + case 1587: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *UpdateExpr -//line sql.y:7800 +//line sql.y:7812 { yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1587: + case 1589: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7807 +//line sql.y:7819 { yyVAL.str = "charset" } - case 1590: + case 1592: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7817 +//line sql.y:7829 { yyLOCAL = NewStrLiteral(yyDollar[1].identifierCI.String()) } yyVAL.union = yyLOCAL - case 1591: + case 1593: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7821 +//line sql.y:7833 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1592: + case 1594: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7825 +//line sql.y:7837 { yyLOCAL = &Default{} } yyVAL.union = yyLOCAL - case 1595: + case 1597: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:7834 +//line sql.y:7846 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1596: + case 1598: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:7836 +//line sql.y:7848 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1597: + case 1599: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:7839 +//line sql.y:7851 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1598: + case 1600: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:7841 +//line sql.y:7853 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1599: + case 1601: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:7844 +//line sql.y:7856 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1600: + case 1602: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line sql.y:7846 +//line sql.y:7858 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1601: + case 1603: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Ignore -//line sql.y:7849 +//line sql.y:7861 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1602: + case 1604: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Ignore -//line sql.y:7851 +//line sql.y:7863 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1603: + case 1605: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7854 +//line sql.y:7866 { yyVAL.empty = struct{}{} } - case 1604: + case 1606: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7856 +//line sql.y:7868 { yyVAL.empty = struct{}{} } - case 1605: + case 1607: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7858 +//line sql.y:7870 { yyVAL.empty = struct{}{} } - case 1606: + case 1608: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:7862 +//line sql.y:7874 { yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()} } yyVAL.union = yyLOCAL - case 1607: + case 1609: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:7867 +//line sql.y:7879 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1608: + case 1610: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:7871 +//line sql.y:7883 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 1609: + case 1611: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:7876 +//line sql.y:7888 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1610: + case 1612: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:7878 +//line sql.y:7890 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL - case 1611: + case 1613: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:7882 +//line sql.y:7894 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].identifierCI.String())} } yyVAL.union = yyLOCAL - case 1612: + case 1614: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7888 +//line sql.y:7900 { yyVAL.identifierCI = yyDollar[1].identifierCI } - case 1613: + case 1615: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7892 +//line sql.y:7904 { yyVAL.identifierCI = NewIdentifierCI(string(yyDollar[1].str)) } - case 1615: + case 1617: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7899 +//line sql.y:7911 { yyVAL.identifierCI = NewIdentifierCI(string(yyDollar[1].str)) } - case 1616: + case 1618: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7905 +//line sql.y:7917 { yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str)) } - case 1617: + case 1619: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7909 +//line sql.y:7921 { yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str)) } - case 1618: + case 1620: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7915 +//line sql.y:7927 { yyVAL.identifierCS = NewIdentifierCS("") } - case 1619: + case 1621: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7919 +//line sql.y:7931 { yyVAL.identifierCS = yyDollar[1].identifierCS } - case 1621: + case 1623: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7926 +//line sql.y:7938 { yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str)) } - case 1622: + case 1624: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:7932 +//line sql.y:7944 { yyLOCAL = &Kill{Type: yyDollar[2].killTypeUnion(), ProcesslistID: convertStringToUInt64(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 1623: + case 1625: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL KillType -//line sql.y:7938 +//line sql.y:7950 { yyLOCAL = ConnectionType } yyVAL.union = yyLOCAL - case 1624: + case 1626: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL KillType -//line sql.y:7942 +//line sql.y:7954 { yyLOCAL = ConnectionType } yyVAL.union = yyLOCAL - case 1625: + case 1627: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL KillType -//line sql.y:7946 +//line sql.y:7958 { yyLOCAL = QueryType } yyVAL.union = yyLOCAL - case 2242: + case 2244: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:8591 +//line sql.y:8603 { } - case 2243: + case 2245: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:8596 +//line sql.y:8608 { } - case 2244: + case 2246: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:8600 +//line sql.y:8612 { skipToEnd(yylex) } - case 2245: + case 2247: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:8605 +//line sql.y:8617 { skipToEnd(yylex) } - case 2246: + case 2248: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:8609 +//line sql.y:8621 { skipToEnd(yylex) } - case 2247: + case 2249: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:8613 +//line sql.y:8625 { skipToEnd(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index 09aa8705e17..e3c0a39d702 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -447,6 +447,7 @@ func markBindVariable(yylex yyLexer, bvar string) { %type frame_clause frame_clause_opt %type window_spec %type over_clause +%type over_clause_opt %type null_treatment_type %type null_treatment_clause null_treatment_clause_opt %type from_first_last_type @@ -5666,6 +5667,17 @@ over_clause: $$ = &OverClause{WindowName: $2} } +over_clause_opt: + over_clause + { + $$ = $1 + } +| + { + $$ = nil + } +; + null_treatment_clause_opt: { $$ = nil @@ -5948,69 +5960,69 @@ UTC_DATE func_paren_opt { $$ = &CurTimeFuncExpr{Name:NewIdentifierCI("current_time"), Fsp: $2} } -| COUNT openb '*' closeb +| COUNT openb '*' closeb over_clause_opt { - $$ = &CountStar{} + $$ = &CountStar{OverClause: $5} } -| COUNT openb distinct_opt expression_list closeb +| COUNT openb distinct_opt expression_list closeb over_clause_opt { - $$ = &Count{Distinct:$3, Args:$4} + $$ = &Count{Distinct:$3, Args:$4, OverClause: $6} } -| MAX openb distinct_opt expression closeb +| MAX openb distinct_opt expression closeb over_clause_opt { - $$ = &Max{Distinct:$3, Arg:$4} + $$ = &Max{Distinct:$3, Arg:$4, OverClause: $6} } -| MIN openb distinct_opt expression closeb +| MIN openb distinct_opt expression closeb over_clause_opt { - $$ = &Min{Distinct:$3, Arg:$4} + $$ = &Min{Distinct:$3, Arg:$4, OverClause: $6} } -| SUM openb distinct_opt expression closeb +| SUM openb distinct_opt expression closeb over_clause_opt { - $$ = &Sum{Distinct:$3, Arg:$4} + $$ = &Sum{Distinct:$3, Arg:$4, OverClause: $6} } -| AVG openb distinct_opt expression closeb +| AVG openb distinct_opt expression closeb over_clause_opt { - $$ = &Avg{Distinct:$3, Arg:$4} + $$ = &Avg{Distinct:$3, Arg:$4, OverClause: $6} } -| BIT_AND openb expression closeb +| BIT_AND openb expression closeb over_clause_opt { - $$ = &BitAnd{Arg:$3} + $$ = &BitAnd{Arg:$3, OverClause: $5} } -| BIT_OR openb expression closeb +| BIT_OR openb expression closeb over_clause_opt { - $$ = &BitOr{Arg:$3} + $$ = &BitOr{Arg:$3, OverClause: $5} } -| BIT_XOR openb expression closeb +| BIT_XOR openb expression closeb over_clause_opt { - $$ = &BitXor{Arg:$3} + $$ = &BitXor{Arg:$3, OverClause: $5} } -| STD openb expression closeb +| STD openb expression closeb over_clause_opt { - $$ = &Std{Arg:$3} + $$ = &Std{Arg:$3, OverClause: $5} } -| STDDEV openb expression closeb +| STDDEV openb expression closeb over_clause_opt { - $$ = &StdDev{Arg:$3} + $$ = &StdDev{Arg:$3, OverClause: $5} } -| STDDEV_POP openb expression closeb +| STDDEV_POP openb expression closeb over_clause_opt { - $$ = &StdPop{Arg:$3} + $$ = &StdPop{Arg:$3, OverClause: $5} } -| STDDEV_SAMP openb expression closeb +| STDDEV_SAMP openb expression closeb over_clause_opt { - $$ = &StdSamp{Arg:$3} + $$ = &StdSamp{Arg:$3, OverClause: $5} } -| VAR_POP openb expression closeb +| VAR_POP openb expression closeb over_clause_opt { - $$ = &VarPop{Arg:$3} + $$ = &VarPop{Arg:$3, OverClause: $5} } -| VAR_SAMP openb expression closeb +| VAR_SAMP openb expression closeb over_clause_opt { - $$ = &VarSamp{Arg:$3} + $$ = &VarSamp{Arg:$3, OverClause: $5} } -| VARIANCE openb expression closeb +| VARIANCE openb expression closeb over_clause_opt { - $$ = &Variance{Arg:$3} + $$ = &Variance{Arg:$3, OverClause: $5} } | GROUP_CONCAT openb distinct_opt expression_list order_by_opt separator_opt limit_opt closeb { diff --git a/go/vt/vtgate/planbuilder/testdata/select_cases.json b/go/vt/vtgate/planbuilder/testdata/select_cases.json index e5e28415256..28b54bae9b2 100644 --- a/go/vt/vtgate/planbuilder/testdata/select_cases.json +++ b/go/vt/vtgate/planbuilder/testdata/select_cases.json @@ -5055,5 +5055,27 @@ "user.user_extra" ] } + }, + { + "comment": "Over clause works for unsharded tables", + "query": "SELECT val, CUME_DIST() OVER w, ROW_NUMBER() OVER w, DENSE_RANK() OVER w, PERCENT_RANK() OVER w, RANK() OVER w AS 'cd' FROM unsharded_a", + "plan": { + "QueryType": "SELECT", + "Original": "SELECT val, CUME_DIST() OVER w, ROW_NUMBER() OVER w, DENSE_RANK() OVER w, PERCENT_RANK() OVER w, RANK() OVER w AS 'cd' FROM unsharded_a", + "Instructions": { + "OperatorType": "Route", + "Variant": "Unsharded", + "Keyspace": { + "Name": "main", + "Sharded": false + }, + "FieldQuery": "select val, cume_dist() over w, row_number() over w, dense_rank() over w, percent_rank() over w, rank() over w as cd from unsharded_a where 1 != 1", + "Query": "select val, cume_dist() over w, row_number() over w, dense_rank() over w, percent_rank() over w, rank() over w as cd from unsharded_a", + "Table": "unsharded_a" + }, + "TablesUsed": [ + "main.unsharded_a" + ] + } } ] diff --git a/go/vt/vtgate/planbuilder/testdata/unsupported_cases.json b/go/vt/vtgate/planbuilder/testdata/unsupported_cases.json index 1fb4e61b37a..887b59c50db 100644 --- a/go/vt/vtgate/planbuilder/testdata/unsupported_cases.json +++ b/go/vt/vtgate/planbuilder/testdata/unsupported_cases.json @@ -348,5 +348,10 @@ "comment": "update with multi table reference with multi target update", "query": "update ignore user u, music m set u.foo = 21, m.bar = 'abc' where u.col = m.col", "plan": "VT12001: unsupported: multi-table UPDATE statement with multi-target column update" + }, + { + "comment": "Over clause isn't supported in sharded cases", + "query": "SELECT val, CUME_DIST() OVER w, ROW_NUMBER() OVER w, DENSE_RANK() OVER w, PERCENT_RANK() OVER w, RANK() OVER w AS 'cd' FROM user", + "plan": "VT12001: unsupported: OVER CLAUSE with sharded keyspace" } ] diff --git a/go/vt/vtgate/semantics/check_invalid.go b/go/vt/vtgate/semantics/check_invalid.go index 45c160e93a2..2cf16aa0417 100644 --- a/go/vt/vtgate/semantics/check_invalid.go +++ b/go/vt/vtgate/semantics/check_invalid.go @@ -52,6 +52,8 @@ func (a *analyzer) checkForInvalidConstructs(cursor *sqlparser.Cursor) error { if node.Action == sqlparser.ReplaceAct { return ShardedError{Inner: &UnsupportedConstruct{errString: "REPLACE INTO with sharded keyspace"}} } + case *sqlparser.OverClause: + return ShardedError{Inner: &UnsupportedConstruct{errString: "OVER CLAUSE with sharded keyspace"}} } return nil