diff --git a/intergration/radon-test/r/show_char.result b/intergration/radon-test/r/show_char.result new file mode 100644 index 00000000..574b3ef0 --- /dev/null +++ b/intergration/radon-test/r/show_char.result @@ -0,0 +1,268 @@ +show collation; +Collation Charset Id Default Compiled Sortlen +big5_chinese_ci big5 1 Yes Yes 1 +big5_bin big5 84 Yes 1 +dec8_swedish_ci dec8 3 Yes Yes 1 +dec8_bin dec8 69 Yes 1 +cp850_general_ci cp850 4 Yes Yes 1 +cp850_bin cp850 80 Yes 1 +hp8_english_ci hp8 6 Yes Yes 1 +hp8_bin hp8 72 Yes 1 +koi8r_general_ci koi8r 7 Yes Yes 1 +koi8r_bin koi8r 74 Yes 1 +latin1_german1_ci latin1 5 Yes 1 +latin1_swedish_ci latin1 8 Yes Yes 1 +latin1_danish_ci latin1 15 Yes 1 +latin1_german2_ci latin1 31 Yes 2 +latin1_bin latin1 47 Yes 1 +latin1_general_ci latin1 48 Yes 1 +latin1_general_cs latin1 49 Yes 1 +latin1_spanish_ci latin1 94 Yes 1 +latin2_czech_cs latin2 2 Yes 4 +latin2_general_ci latin2 9 Yes Yes 1 +latin2_hungarian_ci latin2 21 Yes 1 +latin2_croatian_ci latin2 27 Yes 1 +latin2_bin latin2 77 Yes 1 +swe7_swedish_ci swe7 10 Yes Yes 1 +swe7_bin swe7 82 Yes 1 +ascii_general_ci ascii 11 Yes Yes 1 +ascii_bin ascii 65 Yes 1 +ujis_japanese_ci ujis 12 Yes Yes 1 +ujis_bin ujis 91 Yes 1 +sjis_japanese_ci sjis 13 Yes Yes 1 +sjis_bin sjis 88 Yes 1 +hebrew_general_ci hebrew 16 Yes Yes 1 +hebrew_bin hebrew 71 Yes 1 +tis620_thai_ci tis620 18 Yes Yes 4 +tis620_bin tis620 89 Yes 1 +euckr_korean_ci euckr 19 Yes Yes 1 +euckr_bin euckr 85 Yes 1 +koi8u_general_ci koi8u 22 Yes Yes 1 +koi8u_bin koi8u 75 Yes 1 +gb2312_chinese_ci gb2312 24 Yes Yes 1 +gb2312_bin gb2312 86 Yes 1 +greek_general_ci greek 25 Yes Yes 1 +greek_bin greek 70 Yes 1 +cp1250_general_ci cp1250 26 Yes Yes 1 +cp1250_czech_cs cp1250 34 Yes 2 +cp1250_croatian_ci cp1250 44 Yes 1 +cp1250_bin cp1250 66 Yes 1 +cp1250_polish_ci cp1250 99 Yes 1 +gbk_chinese_ci gbk 28 Yes Yes 1 +gbk_bin gbk 87 Yes 1 +latin5_turkish_ci latin5 30 Yes Yes 1 +latin5_bin latin5 78 Yes 1 +armscii8_general_ci armscii8 32 Yes Yes 1 +armscii8_bin armscii8 64 Yes 1 +utf8_general_ci utf8 33 Yes Yes 1 +utf8_bin utf8 83 Yes 1 +utf8_unicode_ci utf8 192 Yes 8 +utf8_icelandic_ci utf8 193 Yes 8 +utf8_latvian_ci utf8 194 Yes 8 +utf8_romanian_ci utf8 195 Yes 8 +utf8_slovenian_ci utf8 196 Yes 8 +utf8_polish_ci utf8 197 Yes 8 +utf8_estonian_ci utf8 198 Yes 8 +utf8_spanish_ci utf8 199 Yes 8 +utf8_swedish_ci utf8 200 Yes 8 +utf8_turkish_ci utf8 201 Yes 8 +utf8_czech_ci utf8 202 Yes 8 +utf8_danish_ci utf8 203 Yes 8 +utf8_lithuanian_ci utf8 204 Yes 8 +utf8_slovak_ci utf8 205 Yes 8 +utf8_spanish2_ci utf8 206 Yes 8 +utf8_roman_ci utf8 207 Yes 8 +utf8_persian_ci utf8 208 Yes 8 +utf8_esperanto_ci utf8 209 Yes 8 +utf8_hungarian_ci utf8 210 Yes 8 +utf8_sinhala_ci utf8 211 Yes 8 +utf8_german2_ci utf8 212 Yes 8 +utf8_croatian_ci utf8 213 Yes 8 +utf8_unicode_520_ci utf8 214 Yes 8 +utf8_vietnamese_ci utf8 215 Yes 8 +utf8_general_mysql500_ci utf8 223 Yes 1 +ucs2_general_ci ucs2 35 Yes Yes 1 +ucs2_bin ucs2 90 Yes 1 +ucs2_unicode_ci ucs2 128 Yes 8 +ucs2_icelandic_ci ucs2 129 Yes 8 +ucs2_latvian_ci ucs2 130 Yes 8 +ucs2_romanian_ci ucs2 131 Yes 8 +ucs2_slovenian_ci ucs2 132 Yes 8 +ucs2_polish_ci ucs2 133 Yes 8 +ucs2_estonian_ci ucs2 134 Yes 8 +ucs2_spanish_ci ucs2 135 Yes 8 +ucs2_swedish_ci ucs2 136 Yes 8 +ucs2_turkish_ci ucs2 137 Yes 8 +ucs2_czech_ci ucs2 138 Yes 8 +ucs2_danish_ci ucs2 139 Yes 8 +ucs2_lithuanian_ci ucs2 140 Yes 8 +ucs2_slovak_ci ucs2 141 Yes 8 +ucs2_spanish2_ci ucs2 142 Yes 8 +ucs2_roman_ci ucs2 143 Yes 8 +ucs2_persian_ci ucs2 144 Yes 8 +ucs2_esperanto_ci ucs2 145 Yes 8 +ucs2_hungarian_ci ucs2 146 Yes 8 +ucs2_sinhala_ci ucs2 147 Yes 8 +ucs2_german2_ci ucs2 148 Yes 8 +ucs2_croatian_ci ucs2 149 Yes 8 +ucs2_unicode_520_ci ucs2 150 Yes 8 +ucs2_vietnamese_ci ucs2 151 Yes 8 +ucs2_general_mysql500_ci ucs2 159 Yes 1 +cp866_general_ci cp866 36 Yes Yes 1 +cp866_bin cp866 68 Yes 1 +keybcs2_general_ci keybcs2 37 Yes Yes 1 +keybcs2_bin keybcs2 73 Yes 1 +macce_general_ci macce 38 Yes Yes 1 +macce_bin macce 43 Yes 1 +macroman_general_ci macroman 39 Yes Yes 1 +macroman_bin macroman 53 Yes 1 +cp852_general_ci cp852 40 Yes Yes 1 +cp852_bin cp852 81 Yes 1 +latin7_estonian_cs latin7 20 Yes 1 +latin7_general_ci latin7 41 Yes Yes 1 +latin7_general_cs latin7 42 Yes 1 +latin7_bin latin7 79 Yes 1 +utf8mb4_general_ci utf8mb4 45 Yes Yes 1 +utf8mb4_bin utf8mb4 46 Yes 1 +utf8mb4_unicode_ci utf8mb4 224 Yes 8 +utf8mb4_icelandic_ci utf8mb4 225 Yes 8 +utf8mb4_latvian_ci utf8mb4 226 Yes 8 +utf8mb4_romanian_ci utf8mb4 227 Yes 8 +utf8mb4_slovenian_ci utf8mb4 228 Yes 8 +utf8mb4_polish_ci utf8mb4 229 Yes 8 +utf8mb4_estonian_ci utf8mb4 230 Yes 8 +utf8mb4_spanish_ci utf8mb4 231 Yes 8 +utf8mb4_swedish_ci utf8mb4 232 Yes 8 +utf8mb4_turkish_ci utf8mb4 233 Yes 8 +utf8mb4_czech_ci utf8mb4 234 Yes 8 +utf8mb4_danish_ci utf8mb4 235 Yes 8 +utf8mb4_lithuanian_ci utf8mb4 236 Yes 8 +utf8mb4_slovak_ci utf8mb4 237 Yes 8 +utf8mb4_spanish2_ci utf8mb4 238 Yes 8 +utf8mb4_roman_ci utf8mb4 239 Yes 8 +utf8mb4_persian_ci utf8mb4 240 Yes 8 +utf8mb4_esperanto_ci utf8mb4 241 Yes 8 +utf8mb4_hungarian_ci utf8mb4 242 Yes 8 +utf8mb4_sinhala_ci utf8mb4 243 Yes 8 +utf8mb4_german2_ci utf8mb4 244 Yes 8 +utf8mb4_croatian_ci utf8mb4 245 Yes 8 +utf8mb4_unicode_520_ci utf8mb4 246 Yes 8 +utf8mb4_vietnamese_ci utf8mb4 247 Yes 8 +cp1251_bulgarian_ci cp1251 14 Yes 1 +cp1251_ukrainian_ci cp1251 23 Yes 1 +cp1251_bin cp1251 50 Yes 1 +cp1251_general_ci cp1251 51 Yes Yes 1 +cp1251_general_cs cp1251 52 Yes 1 +utf16_general_ci utf16 54 Yes Yes 1 +utf16_bin utf16 55 Yes 1 +utf16_unicode_ci utf16 101 Yes 8 +utf16_icelandic_ci utf16 102 Yes 8 +utf16_latvian_ci utf16 103 Yes 8 +utf16_romanian_ci utf16 104 Yes 8 +utf16_slovenian_ci utf16 105 Yes 8 +utf16_polish_ci utf16 106 Yes 8 +utf16_estonian_ci utf16 107 Yes 8 +utf16_spanish_ci utf16 108 Yes 8 +utf16_swedish_ci utf16 109 Yes 8 +utf16_turkish_ci utf16 110 Yes 8 +utf16_czech_ci utf16 111 Yes 8 +utf16_danish_ci utf16 112 Yes 8 +utf16_lithuanian_ci utf16 113 Yes 8 +utf16_slovak_ci utf16 114 Yes 8 +utf16_spanish2_ci utf16 115 Yes 8 +utf16_roman_ci utf16 116 Yes 8 +utf16_persian_ci utf16 117 Yes 8 +utf16_esperanto_ci utf16 118 Yes 8 +utf16_hungarian_ci utf16 119 Yes 8 +utf16_sinhala_ci utf16 120 Yes 8 +utf16_german2_ci utf16 121 Yes 8 +utf16_croatian_ci utf16 122 Yes 8 +utf16_unicode_520_ci utf16 123 Yes 8 +utf16_vietnamese_ci utf16 124 Yes 8 +utf16le_general_ci utf16le 56 Yes Yes 1 +utf16le_bin utf16le 62 Yes 1 +cp1256_general_ci cp1256 57 Yes Yes 1 +cp1256_bin cp1256 67 Yes 1 +cp1257_lithuanian_ci cp1257 29 Yes 1 +cp1257_bin cp1257 58 Yes 1 +cp1257_general_ci cp1257 59 Yes Yes 1 +utf32_general_ci utf32 60 Yes Yes 1 +utf32_bin utf32 61 Yes 1 +utf32_unicode_ci utf32 160 Yes 8 +utf32_icelandic_ci utf32 161 Yes 8 +utf32_latvian_ci utf32 162 Yes 8 +utf32_romanian_ci utf32 163 Yes 8 +utf32_slovenian_ci utf32 164 Yes 8 +utf32_polish_ci utf32 165 Yes 8 +utf32_estonian_ci utf32 166 Yes 8 +utf32_spanish_ci utf32 167 Yes 8 +utf32_swedish_ci utf32 168 Yes 8 +utf32_turkish_ci utf32 169 Yes 8 +utf32_czech_ci utf32 170 Yes 8 +utf32_danish_ci utf32 171 Yes 8 +utf32_lithuanian_ci utf32 172 Yes 8 +utf32_slovak_ci utf32 173 Yes 8 +utf32_spanish2_ci utf32 174 Yes 8 +utf32_roman_ci utf32 175 Yes 8 +utf32_persian_ci utf32 176 Yes 8 +utf32_esperanto_ci utf32 177 Yes 8 +utf32_hungarian_ci utf32 178 Yes 8 +utf32_sinhala_ci utf32 179 Yes 8 +utf32_german2_ci utf32 180 Yes 8 +utf32_croatian_ci utf32 181 Yes 8 +utf32_unicode_520_ci utf32 182 Yes 8 +utf32_vietnamese_ci utf32 183 Yes 8 +binary binary 63 Yes Yes 1 +geostd8_general_ci geostd8 92 Yes Yes 1 +geostd8_bin geostd8 93 Yes 1 +cp932_japanese_ci cp932 95 Yes Yes 1 +cp932_bin cp932 96 Yes 1 +eucjpms_japanese_ci eucjpms 97 Yes Yes 1 +eucjpms_bin eucjpms 98 Yes 1 +gb18030_chinese_ci gb18030 248 Yes Yes 2 +gb18030_bin gb18030 249 Yes 1 +gb18030_unicode_520_ci gb18030 250 Yes 8 + +show charset; +Charset Description Default collation Maxlen +big5 Big5 Traditional Chinese big5_chinese_ci 2 +dec8 DEC West European dec8_swedish_ci 1 +cp850 DOS West European cp850_general_ci 1 +hp8 HP West European hp8_english_ci 1 +koi8r KOI8-R Relcom Russian koi8r_general_ci 1 +latin1 cp1252 West European latin1_swedish_ci 1 +latin2 ISO 8859-2 Central European latin2_general_ci 1 +swe7 7bit Swedish swe7_swedish_ci 1 +ascii US ASCII ascii_general_ci 1 +ujis EUC-JP Japanese ujis_japanese_ci 3 +sjis Shift-JIS Japanese sjis_japanese_ci 2 +hebrew ISO 8859-8 Hebrew hebrew_general_ci 1 +tis620 TIS620 Thai tis620_thai_ci 1 +euckr EUC-KR Korean euckr_korean_ci 2 +koi8u KOI8-U Ukrainian koi8u_general_ci 1 +gb2312 GB2312 Simplified Chinese gb2312_chinese_ci 2 +greek ISO 8859-7 Greek greek_general_ci 1 +cp1250 Windows Central European cp1250_general_ci 1 +gbk GBK Simplified Chinese gbk_chinese_ci 2 +latin5 ISO 8859-9 Turkish latin5_turkish_ci 1 +armscii8 ARMSCII-8 Armenian armscii8_general_ci 1 +utf8 UTF-8 Unicode utf8_general_ci 3 +ucs2 UCS-2 Unicode ucs2_general_ci 2 +cp866 DOS Russian cp866_general_ci 1 +keybcs2 DOS Kamenicky Czech-Slovak keybcs2_general_ci 1 +macce Mac Central European macce_general_ci 1 +macroman Mac West European macroman_general_ci 1 +cp852 DOS Central European cp852_general_ci 1 +latin7 ISO 8859-13 Baltic latin7_general_ci 1 +utf8mb4 UTF-8 Unicode utf8mb4_general_ci 4 +cp1251 Windows Cyrillic cp1251_general_ci 1 +utf16 UTF-16 Unicode utf16_general_ci 4 +utf16le UTF-16LE Unicode utf16le_general_ci 4 +cp1256 Windows Arabic cp1256_general_ci 1 +cp1257 Windows Baltic cp1257_general_ci 1 +utf32 UTF-32 Unicode utf32_general_ci 4 +binary Binary pseudo charset binary 1 +geostd8 GEOSTD8 Georgian geostd8_general_ci 1 +cp932 SJIS for Windows Japanese cp932_japanese_ci 2 +eucjpms UJIS for Windows Japanese eucjpms_japanese_ci 3 +gb18030 China National Standard GB18030 gb18030_chinese_ci 4 diff --git a/intergration/radon-test/t/show_char.test b/intergration/radon-test/t/show_char.test new file mode 100644 index 00000000..99592276 --- /dev/null +++ b/intergration/radon-test/t/show_char.test @@ -0,0 +1,2 @@ +show collation; +show charset; diff --git a/src/proxy/query.go b/src/proxy/query.go index 13eced70..ea042251 100644 --- a/src/proxy/query.go +++ b/src/proxy/query.go @@ -205,6 +205,18 @@ func (spanner *Spanner) ComQuery(session *driver.Session, query string, bindVari log.Error("proxy.JDBC.shows[%s].from.session[%v].error:%+v", query, session.ID(), err) status = 1 } + case sqlparser.ShowCollationStr: + // Support for DBeaver. + if qr, err = spanner.handleShowCollation(session, query, node); err != nil { + log.Error("proxy.show.collation.status[%s].from.session[%v].error:%+v", query, session.ID(), err) + status = 1 + } + case sqlparser.ShowCharsetStr: + // Support for DBeaver. + if qr, err = spanner.handleShowCharset(session, query, node); err != nil { + log.Error("proxy.show.charset.status[%s].from.session[%v].error:%+v", query, session.ID(), err) + status = 1 + } default: log.Error("proxy.show.unsupported[%s].from.session[%v]", query, session.ID()) status = sqldb.ER_UNKNOWN_ERROR diff --git a/src/proxy/show.go b/src/proxy/show.go index 34d2dfcf..29166885 100644 --- a/src/proxy/show.go +++ b/src/proxy/show.go @@ -662,3 +662,11 @@ func (spanner *Spanner) handleShowVersions(session *driver.Session, query string func (spanner *Spanner) handleJDBCShows(session *driver.Session, query string, node sqlparser.Statement) (*sqltypes.Result, error) { return spanner.ExecuteSingle(query) } + +func (spanner *Spanner) handleShowCollation(session *driver.Session, query string, node sqlparser.Statement) (*sqltypes.Result, error) { + return spanner.ExecuteSingle(query) +} + +func (spanner *Spanner) handleShowCharset(session *driver.Session, query string, node sqlparser.Statement) (*sqltypes.Result, error) { + return spanner.ExecuteSingle(query) +} \ No newline at end of file diff --git a/src/proxy/show_test.go b/src/proxy/show_test.go index 5d0a201f..8e52d197 100644 --- a/src/proxy/show_test.go +++ b/src/proxy/show_test.go @@ -1374,13 +1374,13 @@ func TestProxyShowVersions(t *testing.T) { } } -func TestProxyShowWarnings(t *testing.T) { +func TestProxyShowSupported(t *testing.T) { log := xlog.NewStdLog(xlog.Level(xlog.PANIC)) fakedbs, proxy, cleanup := MockProxy(log) defer cleanup() address := proxy.Address() - querys := []string{"show warnings", "show variables"} + querys := []string{"show warnings", "show variables", "show collation", "show charset"} // fakedbs. { fakedbs.AddQueryPattern("use .*", &sqltypes.Result{}) @@ -1403,6 +1403,29 @@ func TestProxyShowWarnings(t *testing.T) { } } +func TestProxyShowSupportedError(t *testing.T) { + log := xlog.NewStdLog(xlog.Level(xlog.PANIC)) + fakedbs, proxy, cleanup := MockProxyPrivilegeN(log, MockDefaultConfig()) + defer cleanup() + address := proxy.Address() + + querys := []string{"show collation", "show charset"} + // fakedbs. + { + fakedbs.AddQueryPattern("use .*", &sqltypes.Result{}) + } + + // show ... + { + for _, query := range querys { + show, err := driver.NewConn("mock", "mock", address, "test", "utf8") + assert.Nil(t, err) + _, err = show.FetchAll(query, -1) + assert.NotNil(t, err) + } + } +} + func TestProxyShowUnsupports(t *testing.T) { log := xlog.NewStdLog(xlog.Level(xlog.PANIC)) fakedbs, proxy, cleanup := MockProxy(log) diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/constants.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/constants.go index 4b318497..b72590d9 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/constants.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/constants.go @@ -88,6 +88,8 @@ const ( ShowWarningsStr = "warnings" ShowVariablesStr = "variables" ShowBinlogEventsStr = "binlog events" + ShowCharsetStr = "charset" + ShowCollationStr = "collation" ShowUnsupportedStr = "unsupported" // JoinTableExpr.Join. diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/show_test.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/show_test.go index 412e22f3..87cb6a3f 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/show_test.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/show_test.go @@ -198,6 +198,14 @@ func TestShow1(t *testing.T) { input: "show full fields from t1 where `Key` = 'PRI'", output: "show full columns from t1 where `Key` = 'PRI'", }, + { + input: "show collation", + output: "show collation", + }, + { + input: "show charset", + output: "show charset", + }, } for _, show := range validSQL { diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.go index 4e757801..8f274e46 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.go @@ -314,77 +314,78 @@ const TOKUDB_QUICKLZ = 57550 const TOKUDB_LZMA = 57551 const TOKUDB_SNAPPY = 57552 const TOKUDB_UNCOMPRESSED = 57553 -const DATABASES = 57554 -const TABLES = 57555 -const WARNINGS = 57556 -const VARIABLES = 57557 -const EVENTS = 57558 -const BINLOG = 57559 -const GTID = 57560 -const STATUS = 57561 -const COLUMNS = 57562 -const FIELDS = 57563 -const CURRENT_TIMESTAMP = 57564 -const DATABASE = 57565 -const CURRENT_DATE = 57566 -const CURRENT_TIME = 57567 -const LOCALTIME = 57568 -const LOCALTIMESTAMP = 57569 -const UTC_DATE = 57570 -const UTC_TIME = 57571 -const UTC_TIMESTAMP = 57572 -const REPLACE = 57573 -const CONVERT = 57574 -const CAST = 57575 -const GROUP_CONCAT = 57576 -const SEPARATOR = 57577 -const MATCH = 57578 -const AGAINST = 57579 -const BOOLEAN = 57580 -const LANGUAGE = 57581 -const WITH = 57582 -const QUERY = 57583 -const EXPANSION = 57584 -const UNUSED = 57585 -const PARTITION = 57586 -const PARTITIONS = 57587 -const LIST = 57588 -const XA = 57589 -const DISTRIBUTED = 57590 -const ENGINES = 57591 -const VERSIONS = 57592 -const PROCESSLIST = 57593 -const QUERYZ = 57594 -const TXNZ = 57595 -const KILL = 57596 -const ENGINE = 57597 -const SINGLE = 57598 -const BEGIN = 57599 -const START = 57600 -const TRANSACTION = 57601 -const COMMIT = 57602 -const ROLLBACK = 57603 -const GLOBAL = 57604 -const LOCAL = 57605 -const SESSION = 57606 -const NAMES = 57607 -const ISOLATION = 57608 -const LEVEL = 57609 -const READ = 57610 -const WRITE = 57611 -const ONLY = 57612 -const REPEATABLE = 57613 -const COMMITTED = 57614 -const UNCOMMITTED = 57615 -const SERIALIZABLE = 57616 -const RADON = 57617 -const ATTACH = 57618 -const ATTACHLIST = 57619 -const DETACH = 57620 -const RESHARD = 57621 -const CLEANUP = 57622 -const RECOVER = 57623 -const REBALANCE = 57624 +const COLLATION = 57554 +const DATABASES = 57555 +const TABLES = 57556 +const WARNINGS = 57557 +const VARIABLES = 57558 +const EVENTS = 57559 +const BINLOG = 57560 +const GTID = 57561 +const STATUS = 57562 +const COLUMNS = 57563 +const FIELDS = 57564 +const CURRENT_TIMESTAMP = 57565 +const DATABASE = 57566 +const CURRENT_DATE = 57567 +const CURRENT_TIME = 57568 +const LOCALTIME = 57569 +const LOCALTIMESTAMP = 57570 +const UTC_DATE = 57571 +const UTC_TIME = 57572 +const UTC_TIMESTAMP = 57573 +const REPLACE = 57574 +const CONVERT = 57575 +const CAST = 57576 +const GROUP_CONCAT = 57577 +const SEPARATOR = 57578 +const MATCH = 57579 +const AGAINST = 57580 +const BOOLEAN = 57581 +const LANGUAGE = 57582 +const WITH = 57583 +const QUERY = 57584 +const EXPANSION = 57585 +const UNUSED = 57586 +const PARTITION = 57587 +const PARTITIONS = 57588 +const LIST = 57589 +const XA = 57590 +const DISTRIBUTED = 57591 +const ENGINES = 57592 +const VERSIONS = 57593 +const PROCESSLIST = 57594 +const QUERYZ = 57595 +const TXNZ = 57596 +const KILL = 57597 +const ENGINE = 57598 +const SINGLE = 57599 +const BEGIN = 57600 +const START = 57601 +const TRANSACTION = 57602 +const COMMIT = 57603 +const ROLLBACK = 57604 +const GLOBAL = 57605 +const LOCAL = 57606 +const SESSION = 57607 +const NAMES = 57608 +const ISOLATION = 57609 +const LEVEL = 57610 +const READ = 57611 +const WRITE = 57612 +const ONLY = 57613 +const REPEATABLE = 57614 +const COMMITTED = 57615 +const UNCOMMITTED = 57616 +const SERIALIZABLE = 57617 +const RADON = 57618 +const ATTACH = 57619 +const ATTACHLIST = 57620 +const DETACH = 57621 +const RESHARD = 57622 +const CLEANUP = 57623 +const RECOVER = 57624 +const REBALANCE = 57625 var yyToknames = [...]string{ "$end", @@ -615,6 +616,7 @@ var yyToknames = [...]string{ "TOKUDB_LZMA", "TOKUDB_SNAPPY", "TOKUDB_UNCOMPRESSED", + "COLLATION", "DATABASES", "TABLES", "WARNINGS", @@ -688,14 +690,13 @@ var yyToknames = [...]string{ "REBALANCE", "';'", } - var yyStatenames = [...]string{} const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line sql.y:4778 +//line sql.y:4787 //line yacctab:1 var yyExca = [...]int{ @@ -705,1077 +706,1085 @@ var yyExca = [...]int{ -1, 3, 5, 27, -2, 4, - -1, 222, - 92, 845, - -2, 661, - -1, 228, - 92, 707, - -2, 639, - -1, 469, - 120, 691, - -2, 687, - -1, 470, - 120, 692, - -2, 688, - -1, 504, + -1, 224, + 92, 847, + -2, 663, + -1, 230, + 92, 709, + -2, 641, + -1, 473, + 120, 693, + -2, 689, + -1, 474, + 120, 694, + -2, 690, + -1, 508, 117, 82, 167, 82, 170, 82, -2, 93, - -1, 555, + -1, 559, 1, 76, - 300, 76, + 301, 76, -2, 82, - -1, 676, + -1, 680, 5, 27, - -2, 610, - -1, 710, + -2, 612, + -1, 714, 117, 82, 167, 82, 170, 82, -2, 94, - -1, 768, + -1, 772, 32, 301, 65, 301, 68, 301, 131, 301, - -2, 842, - -1, 821, + -2, 844, + -1, 825, 1, 77, - 300, 77, + 301, 77, -2, 82, - -1, 909, - 120, 694, - -2, 690, - -1, 1080, + -1, 913, + 120, 696, + -2, 692, + -1, 1084, 5, 28, - -2, 489, - -1, 1104, + -2, 491, + -1, 1108, 5, 28, - -2, 611, - -1, 1233, - 5, 27, -2, 613, - -1, 1359, + -1, 1237, + 5, 27, + -2, 615, + -1, 1363, 5, 28, - -2, 614, + -2, 616, } const yyPrivate = 57344 -const yyLast = 9960 +const yyLast = 10028 var yyAct = [...]int{ - 470, 1257, 1435, 1362, 1388, 1394, 579, 1265, 447, 1306, - 1292, 1162, 1418, 938, 817, 1012, 445, 223, 1392, 1223, - 423, 679, 689, 1264, 1203, 989, 939, 893, 905, 1073, - 1303, 908, 197, 903, 962, 227, 636, 3, 103, 900, - 803, 1002, 1229, 1065, 56, 849, 425, 991, 680, 935, - 919, 359, 1224, 870, 571, 66, 738, 582, 966, 822, - 422, 772, 711, 1027, 103, 489, 231, 412, 361, 358, - 219, 490, 472, 478, 813, 992, 421, 488, 572, 218, - 103, 103, 226, 191, 55, 206, 1113, 196, 216, 448, - 50, 955, 1114, 1115, 954, 698, 699, 956, 492, 408, - 409, 103, 697, 491, 491, 492, 211, 182, 708, 1316, - 1363, 1461, 185, 187, 186, 188, 189, 356, 190, 410, - 407, 355, 373, 374, 1434, 647, 1417, 1396, 179, 354, - 1460, 1408, 1458, 1433, 1216, 353, 1286, 840, 375, 390, - 50, 1005, 846, 396, 975, 1006, 1007, 974, 202, 380, - 1407, 749, 998, 999, 1000, 1022, 382, 383, 496, 796, - 1001, 443, 444, 70, 839, 384, 1187, 759, 76, 77, - 71, 741, 73, 376, 804, 1281, 1279, 1047, 1419, 1397, - 1033, 1332, 1396, 1046, 24, 51, 26, 27, 1018, 103, - 1045, 842, 994, 370, 400, 402, 1017, 1164, 1042, 363, - 838, 584, 584, 736, 75, 1044, 1384, 1354, 1356, 418, - 1383, 103, 766, 368, 103, 1382, 46, 366, 365, 231, - 28, 364, 100, 36, 965, 231, 231, 415, 473, 797, - 968, 404, 902, 967, 1397, 226, 80, 1164, 79, 475, - 37, 497, 497, 53, 1313, 474, 614, 835, 833, 829, - 1271, 832, 834, 483, 1140, 1107, 486, 745, 1374, 603, - 602, 612, 613, 605, 606, 607, 608, 609, 610, 611, - 604, 72, 1079, 614, 968, 401, 401, 967, 78, 1355, - 804, 60, 1077, 377, 626, 627, 705, 1263, 948, 493, - 837, 635, 50, 1398, 485, 385, 1439, 1041, 993, 583, - 583, 30, 31, 32, 589, 34, 592, 62, 63, 64, - 65, 765, 1171, 836, 1261, 180, 739, 35, 47, 39, - 963, 1005, 48, 49, 33, 1006, 1007, 740, 742, 743, - 744, 851, 746, 747, 748, 750, 751, 752, 753, 754, - 755, 756, 757, 758, 1406, 1019, 1020, 1043, 707, 947, - 1015, 1016, 607, 608, 609, 610, 611, 604, 1420, 1402, - 614, 495, 1172, 103, 1262, 591, 590, 1218, 103, 103, - 103, 369, 831, 103, 1083, 920, 604, 103, 103, 614, - 590, 68, 592, 841, 500, 103, 877, 386, 997, 556, - 591, 590, 920, 480, 1090, 830, 592, 1454, 737, 594, - 875, 876, 874, 1058, 1059, 1060, 1396, 592, 1142, 1141, - 560, 561, 563, 1375, 362, 1446, 1441, 662, 663, 569, - 850, 1364, 1256, 863, 865, 866, 52, 574, 1085, 864, - 580, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, - 1152, 1153, 38, 1252, 1084, 575, 595, 1253, 593, 40, - 372, 53, 41, 42, 1255, 44, 43, 1427, 1397, 1159, - 573, 873, 591, 590, 591, 590, 1157, 624, 1155, 1138, - 45, 1136, 1135, 591, 590, 591, 590, 580, 231, 592, - 1220, 592, 1134, 103, 645, 476, 103, 367, 231, 1158, - 592, 1013, 592, 1014, 668, 1131, 1156, 1126, 1154, 1137, - 894, 682, 895, 1335, 226, 681, 361, 664, 1125, 623, - 625, 437, 436, 438, 439, 440, 441, 684, 676, 1124, - 442, 686, 1031, 1030, 703, 678, 605, 606, 607, 608, - 609, 610, 611, 604, 1023, 634, 614, 398, 637, 638, - 639, 640, 641, 642, 643, 1254, 646, 648, 648, 648, - 648, 648, 648, 648, 648, 656, 657, 658, 659, 805, - 806, 807, 666, 1243, 1242, 1139, 103, 692, 1132, 819, - 1128, 677, 700, 103, 103, 760, 691, 1127, 1119, 1051, - 1050, 762, 1028, 103, 649, 650, 651, 652, 653, 654, - 655, 1010, 706, 1455, 1259, 665, 1450, 411, 856, 1447, - 845, 1325, 1422, 1325, 1390, 411, 871, 1387, 844, 1385, - 411, 1323, 823, 1325, 1366, 1322, 853, 1325, 1365, 860, - 861, 1258, 867, 868, 1329, 858, 815, 816, 990, 854, - 1290, 411, 1325, 411, 231, 1189, 628, 629, 630, 631, - 632, 633, 1071, 411, 872, 1186, 1133, 231, 1178, 1177, - 899, 957, 226, 907, 1294, 1297, 1298, 1299, 1295, 896, - 1296, 1300, 559, 921, 1379, 24, 580, 1174, 1175, 914, - 915, 909, 1174, 1173, 911, 1106, 411, 1321, 231, 856, - 411, 24, 558, 557, 940, 505, 504, 946, 371, 473, - 1170, 682, 1099, 231, 944, 681, 937, 924, 57, 857, - 690, 674, 945, 897, 898, 675, 936, 361, 946, 226, - 1102, 24, 1290, 1176, 942, 50, 1071, 917, 843, 950, - 696, 1232, 694, 660, 53, 1378, 487, 637, 53, 1368, - 798, 1319, 928, 927, 949, 1294, 1297, 1298, 1299, 1295, - 53, 1296, 1300, 799, 800, 801, 802, 936, 1071, 203, - 1071, 818, 1249, 1244, 827, 946, 910, 67, 958, 810, - 811, 812, 952, 493, 1168, 941, 951, 50, 922, 814, - 53, 809, 964, 961, 969, 970, 971, 972, 973, 808, - 826, 976, 977, 978, 979, 980, 981, 982, 983, 984, - 985, 986, 987, 988, 825, 565, 1347, 959, 960, 672, - 74, 1348, 1345, 1381, 1380, 22, 869, 1346, 53, 878, - 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, - 889, 890, 891, 892, 1344, 1343, 103, 103, 103, 1349, - 1448, 1298, 1299, 996, 207, 208, 1432, 1057, 1415, 859, - 1024, 1025, 933, 932, 103, 1269, 1003, 479, 603, 602, - 612, 613, 605, 606, 607, 608, 609, 610, 611, 604, - 1425, 477, 614, 210, 201, 413, 1123, 1026, 1035, 1036, - 1037, 912, 913, 1029, 501, 916, 484, 1054, 823, 759, - 1052, 1032, 1034, 871, 1424, 1055, 1048, 1039, 1066, 923, - 414, 925, 926, 612, 613, 605, 606, 607, 608, 609, - 610, 611, 604, 1100, 934, 614, 231, 824, 1053, 564, - 1302, 1193, 204, 205, 479, 1230, 1166, 1009, 1008, 995, - 1442, 872, 1075, 1431, 1430, 198, 1338, 1429, 1061, 503, - 103, 603, 602, 612, 613, 605, 606, 607, 608, 609, - 610, 611, 604, 1247, 931, 614, 1246, 502, 199, 1091, - 57, 1248, 930, 1337, 1289, 690, 568, 213, 1310, 1011, - 361, 361, 588, 682, 59, 226, 1111, 681, 61, 1089, - 580, 54, 1097, 1, 352, 1361, 1110, 821, 820, 771, - 1120, 770, 1112, 1428, 909, 69, 1416, 1101, 1393, 1161, - 1108, 1423, 1395, 1400, 1372, 1109, 1369, 1078, 1371, 710, - 1121, 1122, 1163, 709, 357, 761, 777, 776, 775, 1129, - 1130, 1117, 1118, 773, 1021, 795, 1068, 1165, 1260, 782, - 1069, 781, 704, 735, 734, 733, 732, 731, 730, 729, - 728, 1080, 1081, 1082, 727, 726, 1086, 725, 724, 723, - 103, 1092, 1167, 1093, 1094, 1095, 1096, 722, 361, 721, - 720, 719, 718, 1169, 717, 716, 712, 715, 714, 1315, - 713, 1103, 1104, 1105, 780, 778, 774, 510, 1179, 1180, - 508, 509, 507, 512, 511, 231, 506, 1301, 1116, 1305, - 231, 1072, 1184, 1040, 828, 1062, 1063, 1064, 622, 929, - 1004, 1075, 224, 446, 226, 907, 226, 1202, 953, 1191, - 103, 1188, 695, 693, 1198, 1197, 1192, 231, 231, 1200, - 1215, 940, 1214, 909, 215, 214, 943, 1190, 1201, 1219, - 661, 1221, 471, 1235, 1236, 1181, 1182, 1183, 1336, 1231, - 1222, 101, 1217, 1288, 1070, 1088, 644, 1240, 1241, 918, - 424, 1237, 1233, 862, 435, 432, 1227, 434, 433, 667, - 1087, 673, 596, 416, 1353, 1226, 562, 212, 603, 602, - 612, 613, 605, 606, 607, 608, 609, 610, 611, 604, - 86, 85, 614, 212, 212, 381, 481, 1293, 1250, 1163, - 1291, 1225, 231, 231, 231, 1098, 567, 1285, 1067, 1228, - 1196, 1373, 941, 1251, 212, 1234, 671, 779, 1266, 1266, - 1266, 25, 58, 209, 14, 21, 1267, 1268, 603, 602, - 612, 613, 605, 606, 607, 608, 609, 610, 611, 604, - 15, 13, 614, 1277, 12, 29, 10, 9, 8, 103, - 103, 7, 6, 5, 4, 200, 23, 1238, 1239, 2, - 20, 940, 19, 18, 17, 231, 1311, 16, 11, 1287, - 231, 763, 764, 1245, 0, 0, 0, 0, 0, 0, - 0, 1266, 0, 1320, 1163, 0, 1266, 0, 1317, 0, - 0, 1312, 231, 1318, 0, 1227, 1194, 1195, 0, 0, - 0, 0, 212, 0, 0, 0, 0, 0, 226, 1202, - 0, 103, 103, 103, 103, 0, 0, 0, 0, 0, - 0, 0, 103, 0, 212, 103, 1284, 212, 103, 0, - 1339, 1350, 1341, 0, 231, 0, 1331, 1357, 1304, 0, - 231, 1272, 941, 1273, 50, 0, 231, 682, 1314, 0, - 1360, 681, 1358, 1370, 1282, 1283, 1266, 1227, 1227, 1227, - 1227, 911, 1266, 1367, 1340, 1377, 1342, 0, 0, 0, - 0, 1227, 602, 612, 613, 605, 606, 607, 608, 609, - 610, 611, 604, 0, 0, 614, 1376, 580, 0, 231, - 0, 1389, 0, 0, 0, 0, 0, 1401, 1404, 0, - 1228, 1228, 1228, 1228, 1324, 1266, 0, 1327, 1328, 1414, - 1399, 1403, 1391, 0, 1304, 1421, 0, 0, 0, 0, - 0, 0, 0, 1270, 0, 1334, 0, 1409, 1410, 0, - 0, 0, 231, 231, 231, 1437, 1438, 0, 0, 0, - 0, 0, 0, 1352, 0, 0, 0, 1443, 1436, 1436, - 1436, 1426, 1359, 0, 1274, 1275, 0, 1276, 0, 0, - 1278, 0, 1280, 0, 0, 0, 1456, 1457, 1453, 0, - 0, 231, 1440, 0, 0, 177, 555, 0, 0, 1444, - 1445, 212, 212, 212, 0, 0, 566, 1459, 0, 0, - 212, 570, 1411, 1412, 1413, 789, 788, 527, 212, 0, - 0, 1386, 0, 0, 0, 785, 0, 0, 0, 0, - 0, 1204, 0, 1405, 1333, 178, 1326, 181, 0, 183, - 184, 0, 192, 193, 194, 195, 0, 0, 791, 0, - 0, 0, 0, 0, 0, 1206, 0, 0, 0, 0, - 0, 790, 783, 0, 0, 0, 0, 0, 784, 401, - 0, 1208, 0, 1212, 0, 1207, 0, 1205, 0, 378, - 379, 0, 1210, 387, 388, 389, 0, 391, 392, 393, - 394, 395, 1209, 515, 0, 1449, 0, 1451, 1452, 0, - 0, 792, 0, 0, 0, 1211, 1213, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 212, 528, 683, 685, - 0, 787, 541, 544, 545, 546, 547, 548, 549, 0, - 550, 551, 552, 553, 554, 529, 530, 531, 532, 513, - 514, 542, 0, 516, 0, 0, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 533, 534, 535, 536, - 537, 538, 539, 540, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 786, 397, 0, 0, 399, 0, - 0, 794, 0, 403, 793, 405, 406, 0, 149, 0, - 105, 0, 769, 768, 0, 133, 136, 137, 0, 212, - 767, 0, 0, 766, 0, 0, 852, 212, 0, 0, - 0, 121, 0, 0, 0, 0, 212, 0, 139, 0, - 0, 157, 142, 0, 0, 0, 0, 0, 0, 0, - 543, 0, 0, 598, 0, 601, 0, 0, 0, 360, - 0, 615, 616, 617, 618, 619, 620, 621, 111, 599, - 600, 597, 603, 602, 612, 613, 605, 606, 607, 608, - 609, 610, 611, 604, 0, 0, 614, 0, 906, 685, - 0, 0, 906, 906, 0, 0, 906, 0, 0, 99, - 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, - 906, 906, 906, 906, 0, 0, 0, 0, 0, 96, - 0, 0, 765, 168, 0, 906, 0, 0, 683, 0, - 0, 0, 0, 115, 0, 155, 0, 166, 107, 0, - 0, 0, 0, 95, 0, 0, 0, 120, 128, 0, - 0, 164, 165, 116, 169, 0, 0, 108, 0, 0, - 148, 0, 163, 0, 0, 0, 0, 0, 0, 0, - 135, 123, 130, 152, 140, 153, 131, 146, 145, 147, - 0, 0, 0, 158, 0, 0, 127, 122, 162, 119, - 143, 112, 106, 0, 113, 114, 118, 117, 82, 134, - 141, 144, 150, 151, 156, 90, 97, 0, 0, 0, - 0, 0, 576, 0, 577, 0, 578, 0, 581, 0, - 0, 0, 0, 585, 586, 587, 0, 161, 0, 126, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 104, 109, 138, 0, 154, - 125, 167, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 124, 159, 0, 160, 0, 0, 0, - 132, 0, 0, 0, 0, 0, 0, 0, 0, 212, - 212, 212, 0, 170, 171, 173, 172, 174, 110, 175, - 176, 0, 0, 0, 0, 0, 0, 212, 0, 0, - 0, 0, 0, 0, 83, 0, 94, 92, 0, 81, - 0, 89, 0, 0, 0, 0, 0, 149, 0, 105, - 0, 0, 129, 0, 133, 136, 137, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 121, 84, 93, 87, 88, 91, 0, 139, 0, 0, - 157, 142, 0, 0, 0, 906, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 230, 0, - 0, 906, 0, 0, 0, 0, 0, 111, 0, 0, - 0, 0, 0, 212, 0, 847, 848, 0, 0, 0, - 0, 855, 0, 0, 0, 0, 0, 0, 0, 0, - 683, 0, 685, 603, 602, 612, 613, 605, 606, 607, - 608, 609, 610, 611, 604, 0, 0, 614, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 115, 0, 155, 0, 166, 107, 0, 0, - 0, 0, 0, 0, 0, 0, 120, 128, 0, 0, - 164, 165, 116, 169, 0, 0, 108, 0, 0, 148, - 0, 163, 0, 0, 0, 0, 0, 0, 0, 135, - 123, 130, 152, 140, 153, 131, 146, 145, 147, 0, - 0, 0, 158, 212, 0, 127, 122, 162, 119, 143, - 112, 106, 0, 113, 114, 118, 117, 0, 134, 141, - 144, 150, 151, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 906, 0, 0, 0, 0, - 0, 685, 906, 0, 0, 0, 161, 0, 126, 0, + + 474, 451, 1261, 1366, 449, 1392, 1439, 1398, 1268, 1396, + 1269, 583, 427, 1310, 683, 1296, 943, 1228, 225, 1227, + 807, 1016, 1422, 1166, 966, 993, 942, 821, 693, 1307, + 897, 1207, 56, 907, 1077, 229, 912, 853, 105, 1069, + 1006, 360, 640, 3, 904, 684, 66, 995, 874, 939, + 452, 50, 199, 1233, 361, 801, 923, 575, 586, 1031, + 970, 426, 776, 826, 105, 742, 233, 221, 363, 429, + 228, 416, 493, 715, 996, 906, 476, 425, 817, 482, + 105, 105, 492, 576, 414, 208, 55, 220, 218, 193, + 494, 412, 413, 198, 959, 1118, 1119, 958, 702, 703, + 960, 50, 495, 105, 496, 1117, 496, 701, 184, 204, + 495, 1320, 411, 1367, 1465, 1438, 1464, 213, 187, 189, + 188, 190, 191, 712, 192, 181, 1412, 358, 1462, 651, + 1421, 357, 1437, 375, 376, 1220, 1400, 1290, 1411, 356, + 378, 24, 51, 26, 27, 355, 1009, 392, 70, 850, + 1010, 1011, 76, 77, 382, 71, 400, 73, 377, 979, + 978, 384, 385, 500, 1026, 800, 1336, 753, 1191, 808, + 386, 1285, 1283, 46, 1051, 1050, 1037, 28, 1022, 60, + 36, 1049, 1423, 763, 969, 531, 1021, 745, 1401, 404, + 406, 105, 1358, 1360, 1168, 372, 365, 37, 75, 588, + 53, 1400, 1048, 1388, 909, 62, 63, 64, 65, 1387, + 1386, 770, 368, 105, 367, 366, 105, 370, 102, 740, + 80, 233, 79, 630, 631, 228, 972, 233, 233, 971, + 1317, 501, 501, 998, 972, 478, 1275, 971, 405, 405, + 1111, 1168, 1083, 1081, 408, 952, 387, 479, 639, 489, + 618, 379, 1443, 1401, 593, 50, 72, 1267, 30, 31, + 32, 519, 34, 78, 1359, 808, 487, 1046, 608, 490, + 588, 618, 709, 749, 35, 47, 39, 596, 967, 48, + 49, 33, 1047, 951, 1265, 532, 499, 1175, 497, 1222, + 545, 548, 549, 550, 551, 552, 553, 587, 554, 555, + 556, 557, 558, 533, 534, 535, 536, 517, 518, 546, + 769, 520, 1402, 182, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 537, 538, 539, 540, 541, 542, + 543, 544, 743, 1410, 1266, 1023, 1024, 1176, 388, 997, + 1019, 1020, 855, 744, 746, 747, 748, 924, 750, 751, + 752, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 1087, 595, 594, 1424, 711, 105, 1045, 68, 587, 1406, + 105, 105, 105, 560, 1001, 105, 595, 594, 596, 105, + 105, 666, 667, 484, 52, 480, 1458, 105, 1002, 1003, + 1004, 504, 594, 596, 371, 1400, 1005, 447, 448, 547, + 38, 924, 881, 1094, 364, 419, 477, 40, 596, 1163, + 41, 42, 53, 44, 43, 741, 879, 880, 878, 1161, + 1445, 1089, 877, 564, 565, 567, 595, 594, 45, 1450, + 1088, 854, 573, 611, 612, 613, 614, 615, 608, 1162, + 578, 618, 1368, 596, 1062, 1063, 1064, 1401, 1260, 1160, + 579, 1378, 607, 606, 616, 617, 609, 610, 611, 612, + 613, 614, 615, 608, 595, 594, 618, 577, 595, 594, + 1259, 1224, 1256, 374, 627, 629, 1257, 369, 867, 869, + 870, 596, 233, 598, 868, 596, 672, 105, 1140, 1017, + 105, 1018, 233, 686, 628, 1139, 228, 1159, 1138, 1142, + 638, 685, 1135, 641, 642, 643, 644, 645, 646, 647, + 363, 650, 652, 652, 652, 652, 652, 652, 652, 652, + 660, 661, 662, 663, 1130, 690, 688, 1158, 680, 1141, + 1129, 668, 597, 898, 1128, 899, 681, 1459, 1035, 1034, + 682, 1027, 402, 809, 810, 811, 1431, 1339, 595, 594, + 1258, 764, 1247, 1246, 1143, 1136, 1132, 710, 1009, 1131, + 1123, 1055, 1010, 1011, 669, 596, 670, 1054, 1032, 1014, + 105, 1451, 1263, 803, 804, 805, 806, 105, 105, 696, + 695, 704, 1454, 415, 766, 1391, 823, 105, 1333, 814, + 815, 816, 653, 654, 655, 656, 657, 658, 659, 1262, + 1329, 1426, 415, 875, 1329, 1394, 1327, 1379, 1389, 415, + 584, 609, 610, 611, 612, 613, 614, 615, 608, 1329, + 1370, 618, 994, 848, 849, 827, 599, 1329, 1369, 1294, + 415, 857, 1329, 415, 819, 820, 858, 1193, 233, 1190, + 862, 1137, 903, 961, 228, 1075, 415, 1182, 1181, 1326, + 101, 233, 100, 1178, 1179, 925, 900, 584, 911, 1298, + 1301, 1302, 1303, 1299, 649, 1300, 1304, 563, 861, 1383, + 98, 876, 1178, 1177, 24, 913, 1110, 415, 860, 415, + 50, 944, 233, 686, 915, 562, 948, 561, 509, 508, + 1325, 685, 641, 941, 97, 373, 1174, 233, 57, 1103, + 860, 228, 24, 940, 707, 950, 928, 950, 901, 902, + 678, 363, 949, 1106, 679, 24, 1294, 1180, 916, 917, + 1075, 847, 920, 700, 946, 914, 953, 921, 698, 664, + 945, 491, 50, 53, 205, 694, 927, 926, 929, 930, + 932, 931, 1236, 441, 440, 442, 443, 444, 445, 82, + 1075, 938, 446, 53, 1382, 1075, 90, 99, 1144, 1372, + 802, 53, 963, 964, 497, 962, 968, 1208, 973, 974, + 975, 976, 977, 956, 53, 980, 981, 982, 983, 984, + 985, 986, 987, 988, 989, 990, 991, 992, 965, 955, + 950, 1210, 1323, 53, 822, 1253, 96, 1248, 67, 864, + 865, 1172, 871, 872, 818, 813, 812, 1212, 940, 1216, + 831, 1211, 830, 1209, 829, 569, 74, 1351, 1214, 22, + 676, 1349, 1352, 1385, 1028, 1029, 1350, 1384, 1213, 1348, + 105, 105, 105, 1298, 1301, 1302, 1303, 1299, 1000, 1300, + 1304, 1215, 1217, 1347, 209, 210, 584, 1452, 105, 918, + 919, 1007, 1436, 1061, 863, 95, 83, 483, 94, 92, + 1419, 81, 1353, 89, 1302, 1303, 937, 936, 1273, 477, + 1127, 481, 1030, 1033, 1429, 417, 505, 488, 203, 212, + 875, 763, 1104, 1039, 1040, 1041, 828, 1058, 1038, 1036, + 568, 827, 1043, 84, 93, 87, 88, 91, 1428, 954, + 418, 1052, 1306, 206, 207, 483, 1234, 1170, 1013, 1012, + 233, 999, 1146, 1145, 1079, 1057, 606, 616, 617, 609, + 610, 611, 612, 613, 614, 615, 608, 1065, 1446, 618, + 1435, 200, 1342, 507, 105, 1147, 1148, 1149, 1150, 1151, + 1152, 1153, 1154, 1155, 1156, 1157, 1251, 1434, 876, 1250, + 1433, 935, 506, 201, 1252, 686, 57, 228, 1341, 934, + 1293, 694, 1082, 685, 363, 363, 572, 215, 1314, 1015, + 592, 1115, 59, 61, 54, 1, 354, 1365, 825, 1093, + 824, 1074, 1112, 775, 774, 1072, 1432, 1101, 913, 1073, + 1124, 1105, 69, 1165, 1125, 1126, 1113, 1091, 1420, 1397, + 1084, 1085, 1086, 1133, 1134, 1090, 1116, 1427, 1399, 1404, + 1096, 1376, 1097, 1098, 1099, 1100, 1167, 1373, 1121, 1122, + 1375, 1169, 714, 713, 359, 765, 781, 780, 779, 777, + 1107, 1108, 1109, 422, 1025, 799, 1264, 786, 785, 708, + 739, 738, 737, 736, 105, 735, 1171, 1120, 734, 733, + 732, 731, 363, 730, 729, 728, 1173, 727, 726, 725, + 1056, 724, 1183, 1184, 723, 1059, 722, 607, 606, 616, + 617, 609, 610, 611, 612, 613, 614, 615, 608, 233, + 721, 618, 720, 1079, 233, 716, 228, 719, 228, 718, + 1185, 1186, 1187, 1194, 1319, 1195, 1192, 1188, 717, 784, + 911, 782, 1206, 778, 105, 514, 1196, 1070, 944, 1201, + 512, 233, 233, 1202, 513, 1239, 1240, 913, 1204, 1218, + 450, 1219, 511, 1235, 1221, 516, 515, 1205, 510, 1095, + 1305, 1225, 1309, 1226, 1076, 607, 606, 616, 617, 609, + 610, 611, 612, 613, 614, 615, 608, 1244, 1245, 618, + 584, 1044, 1237, 832, 1232, 626, 1114, 945, 103, 1200, + 1238, 933, 1008, 226, 957, 1241, 699, 697, 217, 216, + 947, 665, 475, 1231, 1340, 1292, 1092, 648, 922, 428, + 866, 439, 436, 438, 214, 437, 233, 233, 233, 671, + 1270, 1270, 1270, 1167, 1254, 1271, 1272, 1255, 677, 600, + 214, 214, 420, 1357, 1230, 566, 1242, 1243, 616, 617, + 609, 610, 611, 612, 613, 614, 615, 608, 86, 85, + 618, 383, 485, 214, 1297, 1295, 1229, 1102, 571, 1289, + 1377, 675, 783, 105, 105, 25, 58, 211, 944, 14, + 1281, 21, 15, 13, 12, 29, 10, 9, 8, 233, + 7, 6, 5, 1270, 233, 4, 202, 1321, 1270, 23, + 2, 20, 1322, 1315, 1278, 1279, 19, 1280, 18, 17, + 1282, 1288, 1284, 16, 11, 767, 233, 768, 1167, 1324, + 228, 1316, 1249, 1308, 0, 0, 0, 945, 0, 50, + 1276, 0, 1277, 1318, 1206, 105, 105, 105, 105, 1223, + 1335, 0, 1231, 1286, 1287, 0, 105, 0, 0, 105, + 0, 214, 105, 1344, 1343, 1346, 1345, 0, 233, 686, + 1354, 0, 1364, 0, 233, 1361, 1330, 685, 1270, 1362, + 233, 0, 1371, 214, 1270, 0, 214, 0, 0, 0, + 1374, 0, 793, 792, 0, 1232, 1232, 1232, 1232, 0, + 0, 915, 789, 1328, 1381, 0, 1331, 1332, 0, 1308, + 0, 0, 0, 0, 1231, 1231, 1231, 1231, 0, 0, + 0, 0, 844, 233, 1338, 795, 1393, 1270, 1231, 0, + 0, 1395, 0, 1405, 1408, 1403, 1407, 0, 794, 787, + 0, 0, 1356, 1418, 0, 788, 0, 0, 0, 843, + 1425, 1363, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 233, 233, 233, 0, + 1440, 1440, 1440, 1441, 1442, 1430, 846, 0, 796, 1291, + 0, 0, 1447, 0, 0, 842, 0, 1415, 1416, 1417, + 0, 0, 0, 0, 0, 1457, 1444, 0, 791, 0, + 1390, 1460, 1461, 1448, 1449, 233, 0, 0, 0, 1463, + 0, 0, 1409, 0, 632, 633, 634, 635, 636, 637, + 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 839, 837, 833, 559, 836, 838, 0, 0, + 214, 214, 214, 0, 405, 570, 0, 0, 0, 214, + 574, 790, 0, 0, 0, 0, 0, 214, 798, 1197, + 180, 797, 183, 0, 185, 186, 0, 194, 195, 196, + 197, 0, 0, 0, 1453, 841, 1455, 1456, 0, 607, + 606, 616, 617, 609, 610, 611, 612, 613, 614, 615, + 608, 0, 0, 618, 0, 0, 1380, 584, 840, 1071, + 0, 0, 0, 0, 380, 381, 0, 0, 389, 390, + 391, 0, 393, 394, 395, 396, 397, 398, 399, 607, + 606, 616, 617, 609, 610, 611, 612, 613, 614, 615, + 608, 0, 0, 618, 0, 0, 0, 1413, 1414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 212, 104, 109, 138, 0, 154, 125, - 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 124, 159, 0, 160, 0, 0, 0, 132, + 0, 0, 0, 0, 0, 0, 0, 214, 835, 687, + 689, 0, 0, 0, 0, 0, 0, 0, 0, 845, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 173, 172, 174, 110, 175, 176, + 0, 834, 0, 0, 873, 0, 0, 882, 883, 884, + 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, + 895, 896, 401, 0, 0, 403, 602, 0, 605, 0, + 407, 0, 409, 410, 619, 620, 621, 622, 623, 624, + 625, 0, 603, 604, 601, 607, 606, 616, 617, 609, + 610, 611, 612, 613, 614, 615, 608, 0, 0, 618, + 214, 0, 0, 0, 0, 0, 0, 856, 214, 0, + 0, 0, 0, 0, 0, 0, 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1038, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 910, + 689, 0, 0, 910, 910, 0, 0, 910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1049, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1056, 0, 0, 0, 0, 0, - 0, 0, 212, 1308, 0, 0, 0, 0, 0, 0, + 0, 910, 910, 910, 910, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 910, 0, 0, 687, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 151, 0, + 107, 0, 773, 772, 0, 135, 138, 139, 0, 0, + 771, 0, 0, 770, 0, 0, 0, 0, 0, 0, + 0, 123, 0, 0, 0, 0, 0, 0, 141, 0, + 0, 159, 144, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, + 0, 580, 0, 581, 0, 582, 0, 585, 113, 0, + 0, 0, 589, 590, 591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1066, 1067, 1068, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 769, 170, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 117, 0, 157, 0, 168, 109, 0, + 214, 214, 214, 0, 0, 0, 0, 122, 130, 0, + 0, 166, 167, 118, 171, 0, 0, 110, 214, 0, + 150, 0, 165, 0, 0, 0, 0, 0, 0, 0, + 137, 125, 132, 154, 142, 155, 133, 148, 147, 149, + 0, 0, 0, 160, 0, 0, 129, 124, 164, 121, + 145, 114, 108, 0, 115, 116, 120, 119, 0, 136, + 143, 146, 152, 153, 158, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 163, 0, + 128, 0, 910, 0, 851, 852, 0, 0, 0, 0, + 859, 0, 0, 0, 214, 0, 106, 111, 140, 0, + 156, 127, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 687, 0, 689, 126, 161, 0, 162, 0, 0, + 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 175, 174, 176, 112, + 177, 178, 0, 0, 1198, 1199, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 151, 0, + 107, 0, 0, 131, 0, 135, 138, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 212, 212, 212, 212, 0, 0, - 0, 0, 0, 0, 0, 1351, 0, 0, 212, 0, - 0, 1308, 0, 0, 683, 335, 320, 280, 338, 256, - 271, 350, 273, 274, 310, 240, 290, 149, 269, 105, - 0, 0, 129, 0, 133, 136, 137, 0, 0, 0, - 0, 336, 287, 0, 259, 233, 266, 234, 257, 284, - 121, 255, 322, 293, 272, 0, 344, 139, 302, 0, - 157, 142, 0, 0, 286, 325, 288, 319, 279, 311, - 248, 301, 339, 270, 307, 0, 0, 0, 230, 0, - 0, 0, 0, 0, 0, 0, 0, 111, 304, 333, - 268, 306, 309, 232, 303, 0, 236, 241, 349, 331, - 262, 263, 0, 0, 0, 0, 1185, 0, 0, 285, - 289, 316, 277, 0, 0, 0, 0, 0, 0, 0, - 0, 260, 0, 300, 0, 0, 0, 243, 238, 283, - 0, 0, 0, 247, 0, 261, 317, 0, 0, 0, - 326, 278, 168, 332, 276, 275, 340, 313, 0, 323, - 258, 267, 115, 265, 155, 308, 166, 107, 329, 324, - 298, 281, 282, 237, 0, 315, 120, 128, 254, 305, - 164, 165, 116, 169, 242, 346, 108, 229, 345, 148, - 228, 163, 330, 299, 295, 239, 328, 297, 294, 135, - 123, 130, 152, 140, 153, 131, 146, 145, 147, 0, - 235, 0, 158, 337, 351, 127, 122, 162, 119, 143, - 112, 106, 245, 113, 114, 118, 117, 0, 134, 141, - 144, 150, 151, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, - 327, 0, 0, 0, 0, 0, 161, 244, 126, 251, - 252, 249, 250, 291, 292, 341, 342, 343, 318, 246, - 0, 0, 321, 296, 104, 109, 138, 348, 154, 125, - 167, 0, 0, 0, 0, 0, 264, 347, 314, 312, - 334, 0, 124, 159, 0, 160, 217, 0, 0, 222, - 220, 221, 225, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 173, 172, 174, 110, 175, 176, - 335, 320, 280, 338, 256, 271, 350, 273, 274, 310, - 240, 290, 149, 269, 105, 0, 0, 129, 0, 133, - 136, 137, 0, 0, 0, 0, 336, 287, 0, 259, - 233, 266, 234, 257, 284, 121, 255, 322, 293, 272, - 0, 344, 139, 302, 0, 157, 142, 0, 0, 286, - 325, 288, 319, 279, 311, 248, 301, 339, 270, 307, - 0, 0, 0, 230, 0, 0, 0, 0, 0, 0, - 0, 0, 111, 304, 333, 268, 306, 309, 232, 303, - 0, 236, 241, 349, 331, 262, 263, 0, 0, 0, - 0, 0, 0, 0, 285, 289, 316, 277, 0, 0, - 0, 0, 0, 0, 0, 0, 260, 0, 300, 0, - 0, 0, 243, 238, 283, 0, 0, 0, 247, 0, - 261, 317, 0, 0, 0, 326, 278, 168, 332, 276, - 275, 340, 313, 0, 323, 258, 267, 115, 265, 155, - 308, 166, 107, 329, 324, 298, 281, 282, 237, 0, - 315, 120, 128, 254, 305, 164, 165, 116, 169, 242, - 346, 108, 229, 345, 148, 228, 163, 330, 299, 295, - 239, 328, 297, 294, 135, 123, 130, 152, 140, 153, - 131, 146, 145, 147, 0, 235, 0, 158, 337, 351, - 127, 122, 162, 119, 143, 112, 106, 245, 113, 114, - 118, 117, 0, 134, 141, 144, 150, 151, 156, 0, + 0, 123, 0, 0, 0, 0, 0, 0, 141, 0, + 0, 159, 144, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 214, 0, 0, 0, 0, 232, + 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 253, 327, 0, 0, 0, 0, - 0, 161, 244, 126, 251, 252, 249, 250, 291, 292, - 341, 342, 343, 318, 246, 0, 0, 321, 296, 104, - 109, 138, 348, 154, 125, 167, 0, 0, 0, 0, - 0, 264, 347, 314, 312, 334, 0, 124, 159, 0, - 160, 0, 0, 0, 222, 220, 221, 225, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 171, 173, - 172, 174, 110, 175, 176, 335, 320, 280, 338, 256, - 271, 350, 273, 274, 310, 240, 290, 149, 269, 105, - 0, 0, 129, 0, 133, 136, 137, 0, 0, 0, - 0, 336, 287, 0, 259, 233, 266, 234, 257, 284, - 121, 255, 322, 293, 272, 0, 344, 139, 302, 0, - 157, 142, 0, 0, 286, 325, 288, 319, 279, 311, - 248, 301, 339, 270, 307, 0, 0, 0, 230, 0, - 0, 0, 0, 0, 0, 0, 0, 111, 304, 333, - 268, 306, 309, 232, 303, 0, 236, 241, 349, 331, - 262, 263, 0, 0, 0, 0, 0, 0, 0, 285, - 289, 316, 277, 0, 0, 0, 0, 0, 0, 0, - 0, 260, 0, 300, 0, 0, 0, 243, 238, 283, - 0, 0, 0, 247, 0, 261, 317, 0, 0, 0, - 326, 278, 168, 332, 276, 275, 340, 313, 0, 323, - 258, 267, 115, 265, 155, 308, 166, 107, 329, 324, - 298, 281, 282, 237, 0, 315, 120, 128, 254, 305, - 164, 165, 116, 169, 242, 346, 108, 229, 345, 148, - 228, 163, 330, 299, 295, 239, 328, 297, 294, 135, - 123, 130, 152, 140, 153, 131, 146, 145, 147, 0, - 235, 0, 158, 337, 351, 127, 122, 162, 119, 143, - 112, 106, 245, 113, 114, 118, 117, 0, 134, 141, - 144, 150, 151, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, - 327, 0, 0, 0, 0, 0, 161, 244, 126, 251, - 252, 249, 250, 291, 292, 341, 342, 343, 318, 246, - 0, 0, 321, 296, 104, 109, 138, 348, 154, 125, - 167, 0, 0, 0, 0, 0, 264, 347, 314, 312, - 334, 0, 124, 159, 0, 160, 494, 0, 0, 132, - 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 173, 172, 174, 110, 175, 176, - 335, 320, 280, 338, 256, 271, 350, 273, 274, 310, - 240, 290, 149, 269, 105, 0, 0, 129, 0, 133, - 136, 137, 0, 0, 0, 0, 336, 287, 0, 259, - 233, 266, 234, 257, 284, 121, 255, 322, 293, 272, - 0, 344, 139, 302, 0, 157, 142, 0, 0, 286, - 325, 288, 319, 279, 311, 248, 301, 339, 270, 307, - 0, 0, 0, 230, 0, 0, 0, 0, 0, 0, - 0, 0, 111, 304, 333, 268, 306, 309, 232, 303, - 0, 236, 241, 349, 331, 262, 263, 0, 0, 0, - 0, 0, 0, 0, 285, 289, 316, 277, 0, 0, - 0, 0, 0, 0, 1330, 0, 260, 0, 300, 0, - 0, 0, 243, 238, 283, 0, 0, 0, 247, 0, - 261, 317, 0, 0, 0, 326, 278, 168, 332, 276, - 275, 340, 313, 0, 323, 258, 267, 115, 265, 155, - 308, 166, 107, 329, 324, 298, 281, 282, 237, 0, - 315, 120, 128, 254, 305, 164, 165, 116, 169, 242, - 346, 108, 687, 345, 148, 688, 163, 330, 299, 295, - 239, 328, 297, 294, 135, 123, 130, 152, 140, 153, - 131, 146, 145, 147, 0, 235, 0, 158, 337, 351, - 127, 122, 162, 119, 143, 112, 106, 245, 113, 114, - 118, 117, 0, 134, 141, 144, 150, 151, 156, 0, + 0, 0, 0, 0, 0, 0, 910, 0, 0, 0, + 0, 0, 689, 910, 607, 606, 616, 617, 609, 610, + 611, 612, 613, 614, 615, 608, 0, 0, 618, 0, + 0, 0, 0, 0, 214, 0, 0, 0, 0, 0, + 0, 1274, 0, 170, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 117, 0, 157, 0, 168, 109, 0, + 0, 0, 0, 0, 0, 0, 0, 122, 130, 0, + 0, 166, 167, 118, 171, 0, 0, 110, 0, 0, + 150, 0, 165, 0, 0, 0, 0, 0, 0, 0, + 137, 125, 132, 154, 142, 155, 133, 148, 147, 149, + 0, 0, 0, 160, 0, 0, 129, 124, 164, 121, + 145, 114, 108, 1042, 115, 116, 120, 119, 0, 136, + 143, 146, 152, 153, 158, 0, 0, 0, 0, 0, + 1053, 0, 1337, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1060, 0, 0, 0, 0, 163, 0, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 214, 1312, 0, 106, 111, 140, 0, + 156, 127, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 126, 161, 0, 162, 0, 0, + 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 175, 174, 176, 112, + 177, 178, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 214, 214, 214, 214, 0, + 0, 0, 0, 0, 0, 0, 1355, 0, 0, 214, + 0, 0, 1312, 0, 0, 687, 0, 0, 0, 0, + 0, 0, 0, 0, 337, 322, 282, 340, 258, 273, + 352, 275, 276, 312, 242, 292, 151, 271, 107, 0, + 0, 131, 0, 135, 138, 139, 0, 0, 0, 0, + 338, 289, 0, 261, 235, 268, 236, 259, 286, 123, + 257, 324, 295, 274, 0, 346, 141, 304, 0, 159, + 144, 0, 0, 288, 327, 290, 321, 281, 313, 250, + 303, 341, 272, 309, 0, 0, 0, 232, 0, 0, + 0, 0, 0, 0, 0, 1189, 113, 306, 335, 270, + 308, 311, 234, 305, 0, 238, 243, 351, 333, 264, + 265, 0, 0, 0, 0, 0, 0, 0, 287, 291, + 318, 279, 0, 0, 0, 0, 0, 0, 0, 0, + 262, 0, 302, 0, 0, 0, 245, 240, 285, 0, + 0, 0, 249, 0, 263, 319, 0, 0, 0, 328, + 280, 170, 334, 278, 277, 342, 315, 0, 325, 260, + 269, 117, 267, 157, 310, 168, 109, 331, 326, 300, + 283, 284, 239, 0, 317, 122, 130, 256, 307, 166, + 167, 118, 171, 244, 348, 110, 231, 347, 150, 230, + 165, 332, 301, 297, 241, 330, 299, 296, 137, 125, + 132, 154, 142, 155, 133, 148, 147, 149, 0, 237, + 0, 160, 339, 353, 129, 124, 164, 121, 145, 114, + 108, 247, 115, 116, 120, 119, 0, 136, 143, 146, + 152, 153, 158, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, + 329, 0, 0, 0, 0, 0, 163, 246, 128, 253, + 254, 251, 252, 293, 294, 343, 344, 345, 320, 248, + 0, 0, 323, 298, 106, 111, 140, 350, 156, 127, + 169, 0, 0, 0, 0, 0, 266, 349, 316, 314, + 336, 0, 126, 161, 0, 162, 219, 0, 0, 224, + 222, 223, 227, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 175, 174, 176, 112, 177, 178, + 337, 322, 282, 340, 258, 273, 352, 275, 276, 312, + 242, 292, 151, 271, 107, 0, 0, 131, 0, 135, + 138, 139, 0, 0, 0, 0, 338, 289, 0, 261, + 235, 268, 236, 259, 286, 123, 257, 324, 295, 274, + 0, 346, 141, 304, 0, 159, 144, 0, 0, 288, + 327, 290, 321, 281, 313, 250, 303, 341, 272, 309, + 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, + 0, 0, 113, 306, 335, 270, 308, 311, 234, 305, + 0, 238, 243, 351, 333, 264, 265, 0, 0, 0, + 0, 0, 0, 0, 287, 291, 318, 279, 0, 0, + 0, 0, 0, 0, 0, 0, 262, 0, 302, 0, + 0, 0, 245, 240, 285, 0, 0, 0, 249, 0, + 263, 319, 0, 0, 0, 328, 280, 170, 334, 278, + 277, 342, 315, 0, 325, 260, 269, 117, 267, 157, + 310, 168, 109, 331, 326, 300, 283, 284, 239, 0, + 317, 122, 130, 256, 307, 166, 167, 118, 171, 244, + 348, 110, 231, 347, 150, 230, 165, 332, 301, 297, + 241, 330, 299, 296, 137, 125, 132, 154, 142, 155, + 133, 148, 147, 149, 0, 237, 0, 160, 339, 353, + 129, 124, 164, 121, 145, 114, 108, 247, 115, 116, + 120, 119, 0, 136, 143, 146, 152, 153, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 253, 327, 0, 0, 0, 0, - 0, 161, 244, 126, 251, 252, 249, 250, 291, 292, - 341, 342, 343, 318, 246, 0, 0, 321, 296, 104, - 109, 138, 348, 154, 125, 167, 0, 0, 0, 0, - 0, 264, 347, 314, 312, 334, 0, 124, 159, 0, - 160, 0, 0, 0, 132, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 171, 173, - 172, 174, 110, 175, 176, 335, 320, 280, 338, 256, - 271, 350, 273, 274, 310, 240, 290, 149, 269, 105, - 0, 0, 129, 0, 133, 136, 137, 0, 0, 0, - 0, 336, 287, 0, 259, 233, 266, 234, 257, 284, - 121, 255, 322, 293, 272, 0, 344, 139, 302, 0, - 157, 142, 0, 0, 286, 325, 288, 319, 279, 311, - 248, 301, 339, 270, 307, 0, 0, 0, 469, 0, - 0, 0, 0, 0, 0, 0, 0, 111, 304, 333, - 268, 306, 309, 232, 303, 0, 236, 241, 349, 331, - 262, 263, 0, 0, 0, 0, 0, 0, 0, 285, - 289, 316, 277, 0, 0, 0, 0, 0, 0, 1199, - 0, 260, 0, 300, 0, 0, 0, 243, 238, 283, - 0, 0, 0, 247, 0, 261, 317, 0, 0, 0, - 326, 278, 168, 332, 276, 275, 340, 313, 0, 323, - 258, 267, 115, 265, 155, 308, 166, 107, 329, 324, - 298, 281, 282, 237, 0, 315, 120, 128, 254, 305, - 164, 165, 116, 169, 242, 346, 108, 687, 345, 148, - 688, 163, 330, 299, 295, 239, 328, 297, 294, 135, - 123, 130, 152, 140, 153, 131, 146, 145, 147, 0, - 235, 0, 158, 337, 351, 127, 122, 162, 119, 143, - 112, 106, 245, 113, 114, 118, 117, 0, 134, 141, - 144, 150, 151, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, - 327, 0, 0, 0, 0, 0, 161, 244, 126, 251, - 252, 249, 250, 291, 292, 341, 342, 343, 318, 246, - 0, 0, 321, 296, 104, 109, 138, 348, 154, 125, - 167, 0, 0, 0, 0, 0, 264, 347, 314, 312, - 334, 0, 124, 159, 0, 160, 0, 0, 0, 132, + 0, 0, 0, 0, 0, 255, 329, 0, 0, 0, + 0, 0, 163, 246, 128, 253, 254, 251, 252, 293, + 294, 343, 344, 345, 320, 248, 0, 0, 323, 298, + 106, 111, 140, 350, 156, 127, 169, 0, 0, 0, + 0, 0, 266, 349, 316, 314, 336, 0, 126, 161, + 0, 162, 0, 0, 0, 224, 222, 223, 227, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 175, 174, 176, 112, 177, 178, 337, 322, 282, 340, + 258, 273, 352, 275, 276, 312, 242, 292, 151, 271, + 107, 0, 0, 131, 0, 135, 138, 139, 0, 0, + 0, 0, 338, 289, 0, 261, 235, 268, 236, 259, + 286, 123, 257, 324, 295, 274, 0, 346, 141, 304, + 0, 159, 144, 0, 0, 288, 327, 290, 321, 281, + 313, 250, 303, 341, 272, 309, 0, 0, 0, 232, + 0, 0, 0, 0, 0, 0, 0, 0, 113, 306, + 335, 270, 308, 311, 234, 305, 0, 238, 243, 351, + 333, 264, 265, 0, 0, 0, 0, 0, 0, 0, + 287, 291, 318, 279, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 0, 302, 0, 0, 0, 245, 240, + 285, 0, 0, 0, 249, 0, 263, 319, 0, 0, + 0, 328, 280, 170, 334, 278, 277, 342, 315, 0, + 325, 260, 269, 117, 267, 157, 310, 168, 109, 331, + 326, 300, 283, 284, 239, 0, 317, 122, 130, 256, + 307, 166, 167, 118, 171, 244, 348, 110, 231, 347, + 150, 230, 165, 332, 301, 297, 241, 330, 299, 296, + 137, 125, 132, 154, 142, 155, 133, 148, 147, 149, + 0, 237, 0, 160, 339, 353, 129, 124, 164, 121, + 145, 114, 108, 247, 115, 116, 120, 119, 0, 136, + 143, 146, 152, 153, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 173, 172, 174, 110, 175, 176, - 335, 320, 280, 338, 256, 271, 350, 273, 274, 310, - 240, 290, 149, 269, 105, 0, 0, 129, 0, 133, - 136, 137, 0, 0, 0, 0, 336, 287, 0, 259, - 233, 266, 234, 257, 284, 121, 255, 322, 293, 272, - 0, 344, 139, 302, 0, 157, 142, 0, 0, 286, - 325, 288, 319, 279, 311, 248, 301, 339, 270, 307, - 0, 0, 0, 230, 0, 0, 0, 0, 0, 0, - 0, 0, 111, 304, 333, 268, 306, 309, 232, 303, - 0, 236, 241, 349, 331, 262, 263, 0, 0, 0, - 0, 0, 0, 0, 285, 289, 316, 277, 0, 0, - 0, 0, 0, 0, 0, 0, 260, 0, 300, 0, - 0, 0, 243, 238, 283, 0, 0, 0, 247, 0, - 261, 317, 0, 0, 0, 326, 278, 168, 332, 276, - 275, 340, 313, 0, 323, 258, 267, 115, 265, 155, - 308, 166, 107, 329, 324, 298, 281, 282, 237, 0, - 315, 120, 128, 254, 305, 164, 165, 116, 169, 242, - 346, 108, 229, 345, 148, 228, 163, 330, 299, 295, - 239, 328, 297, 294, 135, 123, 130, 152, 140, 153, - 131, 146, 145, 147, 0, 235, 0, 158, 337, 351, - 127, 122, 162, 119, 143, 112, 106, 245, 113, 114, - 118, 117, 0, 134, 141, 144, 150, 151, 156, 0, + 0, 255, 329, 0, 0, 0, 0, 0, 163, 246, + 128, 253, 254, 251, 252, 293, 294, 343, 344, 345, + 320, 248, 0, 0, 323, 298, 106, 111, 140, 350, + 156, 127, 169, 0, 0, 0, 0, 0, 266, 349, + 316, 314, 336, 0, 126, 161, 0, 162, 498, 0, + 0, 134, 0, 0, 227, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 175, 174, 176, 112, + 177, 178, 337, 322, 282, 340, 258, 273, 352, 275, + 276, 312, 242, 292, 151, 271, 107, 0, 0, 131, + 0, 135, 138, 139, 0, 0, 0, 0, 338, 289, + 0, 261, 235, 268, 236, 259, 286, 123, 257, 324, + 295, 274, 0, 346, 141, 304, 0, 159, 144, 0, + 0, 288, 327, 290, 321, 281, 313, 250, 303, 341, + 272, 309, 0, 0, 0, 232, 0, 0, 0, 0, + 0, 0, 0, 0, 113, 306, 335, 270, 308, 311, + 234, 305, 0, 238, 243, 351, 333, 264, 265, 0, + 0, 0, 0, 0, 0, 0, 287, 291, 318, 279, + 0, 0, 0, 0, 0, 0, 1334, 0, 262, 0, + 302, 0, 0, 0, 245, 240, 285, 0, 0, 0, + 249, 0, 263, 319, 0, 0, 0, 328, 280, 170, + 334, 278, 277, 342, 315, 0, 325, 260, 269, 117, + 267, 157, 310, 168, 109, 331, 326, 300, 283, 284, + 239, 0, 317, 122, 130, 256, 307, 166, 167, 118, + 171, 244, 348, 110, 691, 347, 150, 692, 165, 332, + 301, 297, 241, 330, 299, 296, 137, 125, 132, 154, + 142, 155, 133, 148, 147, 149, 0, 237, 0, 160, + 339, 353, 129, 124, 164, 121, 145, 114, 108, 247, + 115, 116, 120, 119, 0, 136, 143, 146, 152, 153, + 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 255, 329, 0, + 0, 0, 0, 0, 163, 246, 128, 253, 254, 251, + 252, 293, 294, 343, 344, 345, 320, 248, 0, 0, + 323, 298, 106, 111, 140, 350, 156, 127, 169, 0, + 0, 0, 0, 0, 266, 349, 316, 314, 336, 0, + 126, 161, 0, 162, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 253, 327, 0, 0, 0, 0, - 0, 161, 244, 126, 251, 252, 249, 250, 291, 292, - 341, 342, 343, 318, 246, 0, 0, 321, 296, 104, - 109, 138, 348, 154, 125, 167, 0, 0, 0, 0, - 0, 264, 347, 314, 312, 334, 0, 124, 159, 0, - 160, 0, 0, 0, 132, 0, 0, 225, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 171, 173, - 172, 174, 110, 175, 176, 335, 320, 280, 338, 256, - 271, 350, 273, 274, 310, 240, 290, 149, 269, 105, - 0, 0, 129, 0, 133, 136, 137, 0, 0, 0, - 0, 336, 287, 0, 259, 233, 266, 234, 257, 284, - 121, 255, 322, 293, 272, 0, 344, 139, 302, 0, - 157, 142, 0, 0, 286, 325, 288, 319, 279, 311, - 248, 301, 339, 270, 307, 0, 0, 0, 230, 0, - 0, 0, 0, 0, 0, 0, 0, 111, 304, 333, - 268, 306, 309, 232, 303, 0, 236, 241, 349, 331, - 262, 263, 0, 0, 0, 0, 0, 0, 0, 285, - 289, 316, 277, 0, 0, 0, 0, 0, 0, 0, - 0, 260, 0, 300, 0, 0, 0, 243, 238, 283, - 0, 0, 0, 247, 0, 261, 317, 0, 0, 0, - 326, 278, 168, 332, 276, 275, 340, 313, 0, 323, - 258, 267, 115, 265, 155, 308, 166, 107, 329, 324, - 298, 281, 282, 237, 0, 315, 120, 128, 254, 305, - 164, 165, 116, 169, 242, 346, 108, 687, 345, 148, - 688, 163, 330, 299, 295, 239, 328, 297, 294, 135, - 123, 130, 152, 140, 153, 131, 146, 145, 147, 0, - 235, 0, 158, 337, 351, 127, 122, 162, 119, 143, - 112, 106, 245, 113, 114, 118, 117, 0, 134, 141, - 144, 150, 151, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, - 327, 0, 0, 0, 0, 0, 161, 244, 126, 251, - 252, 249, 250, 291, 292, 341, 342, 343, 318, 246, - 0, 0, 321, 296, 104, 109, 138, 348, 154, 125, - 167, 0, 0, 0, 0, 0, 264, 347, 314, 312, - 334, 0, 124, 159, 0, 160, 0, 0, 0, 132, + 172, 173, 175, 174, 176, 112, 177, 178, 337, 322, + 282, 340, 258, 273, 352, 275, 276, 312, 242, 292, + 151, 271, 107, 0, 0, 131, 0, 135, 138, 139, + 0, 0, 0, 0, 338, 289, 0, 261, 235, 268, + 236, 259, 286, 123, 257, 324, 295, 274, 0, 346, + 141, 304, 0, 159, 144, 0, 0, 288, 327, 290, + 321, 281, 313, 250, 303, 341, 272, 309, 0, 0, + 0, 473, 0, 0, 0, 0, 0, 0, 0, 0, + 113, 306, 335, 270, 308, 311, 234, 305, 0, 238, + 243, 351, 333, 264, 265, 0, 0, 0, 0, 0, + 0, 0, 287, 291, 318, 279, 0, 0, 0, 0, + 0, 0, 1203, 0, 262, 0, 302, 0, 0, 0, + 245, 240, 285, 0, 0, 0, 249, 0, 263, 319, + 0, 0, 0, 328, 280, 170, 334, 278, 277, 342, + 315, 0, 325, 260, 269, 117, 267, 157, 310, 168, + 109, 331, 326, 300, 283, 284, 239, 0, 317, 122, + 130, 256, 307, 166, 167, 118, 171, 244, 348, 110, + 691, 347, 150, 692, 165, 332, 301, 297, 241, 330, + 299, 296, 137, 125, 132, 154, 142, 155, 133, 148, + 147, 149, 0, 237, 0, 160, 339, 353, 129, 124, + 164, 121, 145, 114, 108, 247, 115, 116, 120, 119, + 0, 136, 143, 146, 152, 153, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 173, 172, 174, 110, 175, 176, - 335, 320, 280, 338, 256, 271, 350, 273, 274, 310, - 240, 290, 149, 269, 105, 0, 0, 129, 0, 133, - 136, 137, 0, 0, 0, 0, 336, 287, 0, 259, - 233, 266, 234, 257, 284, 121, 255, 322, 293, 272, - 0, 344, 139, 302, 0, 157, 142, 0, 0, 286, - 325, 288, 319, 279, 311, 248, 301, 339, 270, 307, - 0, 0, 0, 469, 0, 0, 0, 0, 0, 0, - 0, 0, 111, 304, 333, 268, 306, 309, 232, 303, - 0, 236, 241, 349, 331, 262, 263, 0, 0, 0, - 0, 0, 0, 0, 285, 289, 316, 277, 0, 0, - 0, 0, 0, 0, 0, 0, 260, 0, 300, 0, - 0, 0, 243, 238, 283, 0, 0, 0, 247, 0, - 261, 317, 0, 0, 0, 326, 278, 168, 332, 276, - 275, 340, 313, 0, 323, 258, 267, 115, 265, 155, - 308, 166, 107, 329, 324, 298, 281, 282, 237, 0, - 315, 120, 128, 254, 305, 164, 165, 116, 169, 242, - 346, 108, 687, 345, 148, 688, 163, 330, 299, 295, - 239, 328, 297, 294, 135, 123, 130, 152, 140, 153, - 131, 146, 145, 147, 0, 235, 0, 158, 337, 351, - 127, 122, 162, 119, 143, 112, 106, 245, 113, 114, - 118, 117, 0, 134, 141, 144, 150, 151, 156, 0, + 0, 0, 0, 255, 329, 0, 0, 0, 0, 0, + 163, 246, 128, 253, 254, 251, 252, 293, 294, 343, + 344, 345, 320, 248, 0, 0, 323, 298, 106, 111, + 140, 350, 156, 127, 169, 0, 0, 0, 0, 0, + 266, 349, 316, 314, 336, 0, 126, 161, 0, 162, + 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 175, 174, + 176, 112, 177, 178, 337, 322, 282, 340, 258, 273, + 352, 275, 276, 312, 242, 292, 151, 271, 107, 0, + 0, 131, 0, 135, 138, 139, 0, 0, 0, 0, + 338, 289, 0, 261, 235, 268, 236, 259, 286, 123, + 257, 324, 295, 274, 0, 346, 141, 304, 0, 159, + 144, 0, 0, 288, 327, 290, 321, 281, 313, 250, + 303, 341, 272, 309, 0, 0, 0, 232, 0, 0, + 0, 0, 0, 0, 0, 0, 113, 306, 335, 270, + 308, 311, 234, 305, 0, 238, 243, 351, 333, 264, + 265, 0, 0, 0, 0, 0, 0, 0, 287, 291, + 318, 279, 0, 0, 0, 0, 0, 0, 0, 0, + 262, 0, 302, 0, 0, 0, 245, 240, 285, 0, + 0, 0, 249, 0, 263, 319, 0, 0, 0, 328, + 280, 170, 334, 278, 277, 342, 315, 0, 325, 260, + 269, 117, 267, 157, 310, 168, 109, 331, 326, 300, + 283, 284, 239, 0, 317, 122, 130, 256, 307, 166, + 167, 118, 171, 244, 348, 110, 231, 347, 150, 230, + 165, 332, 301, 297, 241, 330, 299, 296, 137, 125, + 132, 154, 142, 155, 133, 148, 147, 149, 0, 237, + 0, 160, 339, 353, 129, 124, 164, 121, 145, 114, + 108, 247, 115, 116, 120, 119, 0, 136, 143, 146, + 152, 153, 158, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, + 329, 0, 0, 0, 0, 0, 163, 246, 128, 253, + 254, 251, 252, 293, 294, 343, 344, 345, 320, 248, + 0, 0, 323, 298, 106, 111, 140, 350, 156, 127, + 169, 0, 0, 0, 0, 0, 266, 349, 316, 314, + 336, 0, 126, 161, 0, 162, 0, 0, 0, 134, + 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 175, 174, 176, 112, 177, 178, + 337, 322, 282, 340, 258, 273, 352, 275, 276, 312, + 242, 292, 151, 271, 107, 0, 0, 131, 0, 135, + 138, 139, 0, 0, 0, 0, 338, 289, 0, 261, + 235, 268, 236, 259, 286, 123, 257, 324, 295, 274, + 0, 346, 141, 304, 0, 159, 144, 0, 0, 288, + 327, 290, 321, 281, 313, 250, 303, 341, 272, 309, + 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, + 0, 0, 113, 306, 335, 270, 308, 311, 234, 305, + 0, 238, 243, 351, 333, 264, 265, 0, 0, 0, + 0, 0, 0, 0, 287, 291, 318, 279, 0, 0, + 0, 0, 0, 0, 0, 0, 262, 0, 302, 0, + 0, 0, 245, 240, 285, 0, 0, 0, 249, 0, + 263, 319, 0, 0, 0, 328, 280, 170, 334, 278, + 277, 342, 315, 0, 325, 260, 269, 117, 267, 157, + 310, 168, 109, 331, 326, 300, 283, 284, 239, 0, + 317, 122, 130, 256, 307, 166, 167, 118, 171, 244, + 348, 110, 691, 347, 150, 692, 165, 332, 301, 297, + 241, 330, 299, 296, 137, 125, 132, 154, 142, 155, + 133, 148, 147, 149, 0, 237, 0, 160, 339, 353, + 129, 124, 164, 121, 145, 114, 108, 247, 115, 116, + 120, 119, 0, 136, 143, 146, 152, 153, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 253, 327, 0, 0, 0, 0, - 0, 161, 244, 126, 251, 252, 249, 250, 291, 292, - 341, 342, 343, 318, 246, 0, 0, 321, 296, 104, - 109, 138, 348, 154, 125, 167, 0, 0, 0, 0, - 0, 264, 347, 314, 312, 334, 0, 124, 159, 0, - 160, 0, 0, 0, 132, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 171, 173, - 172, 174, 110, 175, 176, 335, 320, 280, 338, 256, - 271, 350, 273, 274, 310, 240, 290, 149, 269, 105, - 0, 0, 129, 0, 133, 136, 137, 0, 0, 0, - 0, 336, 287, 0, 259, 233, 266, 234, 257, 284, - 121, 255, 322, 293, 272, 0, 344, 139, 302, 0, - 157, 142, 0, 0, 286, 325, 288, 319, 279, 311, - 248, 301, 339, 270, 307, 0, 0, 0, 102, 0, - 0, 0, 0, 0, 0, 0, 0, 111, 304, 333, - 268, 306, 309, 232, 303, 0, 236, 241, 349, 331, - 262, 263, 0, 0, 0, 0, 0, 0, 0, 285, - 289, 316, 277, 0, 0, 0, 0, 0, 0, 0, - 0, 260, 0, 300, 0, 0, 0, 243, 238, 283, - 0, 0, 0, 247, 0, 261, 317, 0, 0, 0, - 326, 278, 168, 332, 276, 275, 340, 313, 0, 323, - 258, 267, 115, 265, 155, 308, 166, 107, 329, 324, - 298, 281, 282, 237, 0, 315, 120, 128, 254, 305, - 164, 165, 116, 169, 242, 346, 108, 687, 345, 148, - 688, 163, 330, 299, 295, 239, 328, 297, 294, 135, - 123, 130, 152, 140, 153, 131, 146, 145, 147, 0, - 235, 0, 158, 337, 351, 127, 122, 162, 119, 143, - 112, 106, 245, 113, 114, 118, 117, 0, 134, 141, - 144, 150, 151, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, - 327, 0, 0, 0, 0, 0, 161, 244, 126, 251, - 252, 249, 250, 291, 292, 341, 342, 343, 318, 246, - 0, 0, 321, 296, 104, 109, 138, 348, 154, 125, - 167, 0, 0, 0, 0, 0, 264, 347, 314, 312, - 334, 0, 124, 159, 0, 160, 0, 0, 0, 132, + 0, 0, 0, 0, 0, 255, 329, 0, 0, 0, + 0, 0, 163, 246, 128, 253, 254, 251, 252, 293, + 294, 343, 344, 345, 320, 248, 0, 0, 323, 298, + 106, 111, 140, 350, 156, 127, 169, 0, 0, 0, + 0, 0, 266, 349, 316, 314, 336, 0, 126, 161, + 0, 162, 0, 0, 0, 134, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 175, 174, 176, 112, 177, 178, 337, 322, 282, 340, + 258, 273, 352, 275, 276, 312, 242, 292, 151, 271, + 107, 0, 0, 131, 0, 135, 138, 139, 0, 0, + 0, 0, 338, 289, 0, 261, 235, 268, 236, 259, + 286, 123, 257, 324, 295, 274, 0, 346, 141, 304, + 0, 159, 144, 0, 0, 288, 327, 290, 321, 281, + 313, 250, 303, 341, 272, 309, 0, 0, 0, 473, + 0, 0, 0, 0, 0, 0, 0, 0, 113, 306, + 335, 270, 308, 311, 234, 305, 0, 238, 243, 351, + 333, 264, 265, 0, 0, 0, 0, 0, 0, 0, + 287, 291, 318, 279, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 0, 302, 0, 0, 0, 245, 240, + 285, 0, 0, 0, 249, 0, 263, 319, 0, 0, + 0, 328, 280, 170, 334, 278, 277, 342, 315, 0, + 325, 260, 269, 117, 267, 157, 310, 168, 109, 331, + 326, 300, 283, 284, 239, 0, 317, 122, 130, 256, + 307, 166, 167, 118, 171, 244, 348, 110, 691, 347, + 150, 692, 165, 332, 301, 297, 241, 330, 299, 296, + 137, 125, 132, 154, 142, 155, 133, 148, 147, 149, + 0, 237, 0, 160, 339, 353, 129, 124, 164, 121, + 145, 114, 108, 247, 115, 116, 120, 119, 0, 136, + 143, 146, 152, 153, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 173, 172, 174, 110, 175, 176, - 149, 0, 105, 0, 0, 129, 0, 133, 136, 137, - 0, 0, 0, 0, 0, 0, 0, 901, 0, 420, - 0, 0, 0, 121, 419, 0, 0, 0, 0, 456, - 139, 0, 0, 157, 142, 0, 0, 0, 0, 449, - 450, 0, 0, 0, 0, 0, 0, 0, 53, 0, - 0, 469, 437, 436, 438, 439, 440, 441, 0, 0, - 111, 442, 443, 444, 0, 0, 0, 417, 430, 0, - 455, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 255, 329, 0, 0, 0, 0, 0, 163, 246, + 128, 253, 254, 251, 252, 293, 294, 343, 344, 345, + 320, 248, 0, 0, 323, 298, 106, 111, 140, 350, + 156, 127, 169, 0, 0, 0, 0, 0, 266, 349, + 316, 314, 336, 0, 126, 161, 0, 162, 0, 0, + 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 175, 174, 176, 112, + 177, 178, 337, 322, 282, 340, 258, 273, 352, 275, + 276, 312, 242, 292, 151, 271, 107, 0, 0, 131, + 0, 135, 138, 139, 0, 0, 0, 0, 338, 289, + 0, 261, 235, 268, 236, 259, 286, 123, 257, 324, + 295, 274, 0, 346, 141, 304, 0, 159, 144, 0, + 0, 288, 327, 290, 321, 281, 313, 250, 303, 341, + 272, 309, 0, 0, 0, 104, 0, 0, 0, 0, + 0, 0, 0, 0, 113, 306, 335, 270, 308, 311, + 234, 305, 0, 238, 243, 351, 333, 264, 265, 0, + 0, 0, 0, 0, 0, 0, 287, 291, 318, 279, + 0, 0, 0, 0, 0, 0, 0, 0, 262, 0, + 302, 0, 0, 0, 245, 240, 285, 0, 0, 0, + 249, 0, 263, 319, 0, 0, 0, 328, 280, 170, + 334, 278, 277, 342, 315, 0, 325, 260, 269, 117, + 267, 157, 310, 168, 109, 331, 326, 300, 283, 284, + 239, 0, 317, 122, 130, 256, 307, 166, 167, 118, + 171, 244, 348, 110, 691, 347, 150, 692, 165, 332, + 301, 297, 241, 330, 299, 296, 137, 125, 132, 154, + 142, 155, 133, 148, 147, 149, 0, 237, 0, 160, + 339, 353, 129, 124, 164, 121, 145, 114, 108, 247, + 115, 116, 120, 119, 0, 136, 143, 146, 152, 153, + 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 255, 329, 0, + 0, 0, 0, 0, 163, 246, 128, 253, 254, 251, + 252, 293, 294, 343, 344, 345, 320, 248, 0, 0, + 323, 298, 106, 111, 140, 350, 156, 127, 169, 0, + 0, 0, 0, 0, 266, 349, 316, 314, 336, 0, + 126, 161, 0, 162, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 427, 428, 904, 0, 0, 0, 467, 0, 429, 0, - 0, 426, 431, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 168, 0, 0, 465, 0, - 0, 0, 0, 0, 0, 115, 0, 155, 0, 166, - 107, 0, 0, 0, 0, 0, 0, 0, 0, 120, - 128, 0, 0, 164, 165, 116, 169, 0, 0, 108, - 0, 0, 148, 0, 163, 0, 0, 0, 0, 0, - 0, 0, 135, 123, 130, 152, 140, 153, 131, 146, - 145, 147, 0, 0, 0, 158, 0, 0, 127, 122, - 162, 119, 143, 112, 106, 0, 113, 114, 118, 117, - 0, 134, 141, 144, 150, 151, 156, 0, 0, 0, + 172, 173, 175, 174, 176, 112, 177, 178, 151, 0, + 107, 0, 0, 131, 0, 135, 138, 139, 0, 0, + 0, 0, 0, 0, 0, 905, 0, 424, 0, 0, + 0, 123, 423, 0, 0, 0, 0, 460, 141, 0, + 0, 159, 144, 0, 0, 0, 0, 453, 454, 0, + 0, 0, 0, 0, 0, 0, 53, 0, 0, 473, + 441, 440, 442, 443, 444, 445, 0, 0, 113, 446, + 447, 448, 0, 0, 0, 421, 434, 0, 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, - 0, 126, 457, 466, 463, 464, 461, 462, 460, 459, - 458, 468, 451, 452, 454, 0, 453, 104, 109, 138, - 0, 154, 125, 167, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 124, 159, 0, 160, 0, - 0, 0, 132, 0, 149, 0, 105, 0, 0, 129, - 0, 133, 136, 137, 0, 170, 171, 173, 172, 174, - 110, 175, 176, 420, 0, 0, 0, 121, 419, 0, - 0, 0, 0, 456, 139, 0, 0, 157, 142, 0, - 0, 0, 0, 449, 450, 0, 0, 0, 0, 0, - 0, 701, 53, 0, 0, 469, 437, 436, 438, 439, - 440, 441, 0, 0, 111, 442, 443, 444, 702, 0, - 0, 417, 430, 0, 455, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 431, 432, + 908, 0, 0, 0, 471, 0, 433, 0, 0, 430, + 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 0, 0, 469, 0, 0, 0, + 0, 0, 0, 117, 0, 157, 0, 168, 109, 0, + 0, 0, 0, 0, 0, 0, 0, 122, 130, 0, + 0, 166, 167, 118, 171, 0, 0, 110, 0, 0, + 150, 0, 165, 0, 0, 0, 0, 0, 0, 0, + 137, 125, 132, 154, 142, 155, 133, 148, 147, 149, + 0, 0, 0, 160, 0, 0, 129, 124, 164, 121, + 145, 114, 108, 0, 115, 116, 120, 119, 0, 136, + 143, 146, 152, 153, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 427, 428, 0, 0, 0, 0, - 467, 0, 429, 0, 0, 426, 431, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, - 0, 0, 465, 0, 0, 0, 0, 0, 0, 115, - 0, 155, 0, 166, 107, 0, 0, 0, 0, 0, - 0, 0, 0, 120, 128, 0, 0, 164, 165, 116, - 169, 0, 0, 108, 0, 0, 148, 0, 163, 0, - 0, 0, 0, 0, 0, 0, 135, 123, 130, 152, - 140, 153, 131, 146, 145, 147, 0, 0, 0, 158, - 0, 0, 127, 122, 162, 119, 143, 112, 106, 0, - 113, 114, 118, 117, 0, 134, 141, 144, 150, 151, - 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 163, 0, + 128, 461, 470, 467, 468, 465, 466, 464, 463, 462, + 472, 455, 456, 458, 0, 457, 106, 111, 140, 0, + 156, 127, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 126, 161, 0, 162, 0, 0, + 0, 134, 0, 151, 0, 107, 0, 0, 131, 0, + 135, 138, 139, 0, 172, 173, 175, 174, 176, 112, + 177, 178, 424, 0, 0, 0, 123, 423, 0, 0, + 0, 0, 460, 141, 0, 0, 159, 144, 0, 0, + 0, 0, 453, 454, 0, 0, 0, 0, 0, 0, + 705, 53, 0, 0, 473, 441, 440, 442, 443, 444, + 445, 0, 0, 113, 446, 447, 448, 706, 0, 0, + 421, 434, 0, 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 161, 0, 126, 457, 466, 463, 464, - 461, 462, 460, 459, 458, 468, 451, 452, 454, 0, - 453, 104, 109, 138, 0, 154, 125, 167, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, - 159, 0, 160, 0, 0, 0, 132, 0, 149, 0, - 105, 0, 0, 129, 0, 133, 136, 137, 0, 170, - 171, 173, 172, 174, 110, 175, 176, 420, 0, 0, - 0, 121, 419, 0, 0, 0, 0, 456, 139, 0, - 0, 157, 142, 0, 0, 0, 0, 449, 450, 0, - 0, 0, 0, 0, 0, 0, 53, 0, 0, 469, - 437, 436, 438, 439, 440, 441, 0, 0, 111, 442, - 443, 444, 0, 0, 0, 417, 430, 0, 455, 0, + 0, 0, 0, 431, 432, 0, 0, 0, 0, 471, + 0, 433, 0, 0, 430, 435, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 0, + 0, 469, 0, 0, 0, 0, 0, 0, 117, 0, + 157, 0, 168, 109, 0, 0, 0, 0, 0, 0, + 0, 0, 122, 130, 0, 0, 166, 167, 118, 171, + 0, 0, 110, 0, 0, 150, 0, 165, 0, 0, + 0, 0, 0, 0, 0, 137, 125, 132, 154, 142, + 155, 133, 148, 147, 149, 0, 0, 0, 160, 0, + 0, 129, 124, 164, 121, 145, 114, 108, 0, 115, + 116, 120, 119, 0, 136, 143, 146, 152, 153, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 427, 428, - 904, 0, 0, 0, 467, 0, 429, 0, 0, 426, - 431, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 168, 0, 0, 465, 0, 0, 0, - 0, 0, 0, 115, 0, 155, 0, 166, 107, 0, - 0, 0, 0, 0, 0, 0, 0, 120, 128, 0, - 0, 164, 165, 116, 169, 0, 0, 108, 0, 0, - 148, 0, 163, 0, 0, 0, 0, 0, 0, 0, - 135, 123, 130, 152, 140, 153, 131, 146, 145, 147, - 0, 0, 0, 158, 0, 0, 127, 122, 162, 119, - 143, 112, 106, 0, 113, 114, 118, 117, 0, 134, - 141, 144, 150, 151, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 161, 0, 126, - 457, 466, 463, 464, 461, 462, 460, 459, 458, 468, - 451, 452, 454, 0, 453, 104, 109, 138, 0, 154, - 125, 167, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 124, 159, 0, 160, 0, 0, 0, - 132, 0, 149, 0, 105, 0, 0, 129, 0, 133, - 136, 137, 0, 170, 171, 173, 172, 174, 110, 175, - 176, 420, 0, 0, 0, 121, 419, 0, 0, 0, - 0, 456, 139, 0, 0, 157, 142, 0, 0, 0, - 0, 449, 450, 0, 0, 0, 0, 0, 0, 0, - 53, 0, 411, 469, 437, 436, 438, 439, 440, 441, - 0, 0, 111, 442, 443, 444, 0, 0, 0, 417, - 430, 0, 455, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 163, 0, 128, 461, 470, 467, 468, + 465, 466, 464, 463, 462, 472, 455, 456, 458, 0, + 457, 106, 111, 140, 0, 156, 127, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, + 161, 0, 162, 0, 0, 0, 134, 0, 151, 0, + 107, 0, 0, 131, 0, 135, 138, 139, 0, 172, + 173, 175, 174, 176, 112, 177, 178, 424, 0, 0, + 0, 123, 423, 0, 0, 0, 0, 460, 141, 0, + 0, 159, 144, 0, 0, 0, 0, 453, 454, 0, + 0, 0, 0, 0, 0, 0, 53, 0, 0, 473, + 441, 440, 442, 443, 444, 445, 0, 0, 113, 446, + 447, 448, 0, 0, 0, 421, 434, 0, 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 427, 428, 0, 0, 0, 0, 467, 0, - 429, 0, 0, 426, 431, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, - 465, 0, 0, 0, 0, 0, 0, 115, 0, 155, - 0, 166, 107, 0, 0, 0, 0, 0, 0, 0, - 0, 120, 128, 0, 0, 164, 165, 116, 169, 0, - 0, 108, 0, 0, 148, 0, 163, 0, 0, 0, - 0, 0, 0, 0, 135, 123, 130, 152, 140, 153, - 131, 146, 145, 147, 0, 0, 0, 158, 0, 0, - 127, 122, 162, 119, 143, 112, 106, 0, 113, 114, - 118, 117, 0, 134, 141, 144, 150, 151, 156, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 431, 432, + 908, 0, 0, 0, 471, 0, 433, 0, 0, 430, + 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 0, 0, 469, 0, 0, 0, + 0, 0, 0, 117, 0, 157, 0, 168, 109, 0, + 0, 0, 0, 0, 0, 0, 0, 122, 130, 0, + 0, 166, 167, 118, 171, 0, 0, 110, 0, 0, + 150, 0, 165, 0, 0, 0, 0, 0, 0, 0, + 137, 125, 132, 154, 142, 155, 133, 148, 147, 149, + 0, 0, 0, 160, 0, 0, 129, 124, 164, 121, + 145, 114, 108, 0, 115, 116, 120, 119, 0, 136, + 143, 146, 152, 153, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 163, 0, + 128, 461, 470, 467, 468, 465, 466, 464, 463, 462, + 472, 455, 456, 458, 0, 457, 106, 111, 140, 0, + 156, 127, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 126, 161, 0, 162, 0, 0, + 0, 134, 0, 151, 0, 107, 0, 0, 131, 0, + 135, 138, 139, 0, 172, 173, 175, 174, 176, 112, + 177, 178, 424, 0, 0, 0, 123, 423, 0, 0, + 0, 0, 460, 141, 0, 0, 159, 144, 0, 0, + 0, 0, 453, 454, 0, 0, 0, 0, 0, 0, + 0, 53, 0, 415, 473, 441, 440, 442, 443, 444, + 445, 0, 0, 113, 446, 447, 448, 0, 0, 0, + 421, 434, 0, 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 161, 0, 126, 457, 466, 463, 464, 461, 462, - 460, 459, 458, 468, 451, 452, 454, 0, 453, 104, - 109, 138, 0, 154, 125, 167, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 24, 0, 124, 159, 0, - 160, 0, 0, 0, 132, 0, 149, 0, 105, 0, - 0, 129, 0, 133, 136, 137, 0, 170, 171, 173, - 172, 174, 110, 175, 176, 420, 0, 0, 0, 121, - 419, 0, 0, 0, 0, 456, 139, 0, 0, 157, - 142, 0, 0, 0, 0, 449, 450, 0, 0, 0, - 0, 0, 0, 0, 53, 0, 0, 469, 437, 436, - 438, 439, 440, 441, 0, 0, 111, 442, 443, 444, - 0, 0, 0, 417, 430, 0, 455, 0, 0, 0, + 0, 0, 0, 431, 432, 0, 0, 0, 0, 471, + 0, 433, 0, 0, 430, 435, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 0, + 0, 469, 0, 0, 0, 0, 0, 0, 117, 0, + 157, 0, 168, 109, 0, 0, 0, 0, 0, 0, + 0, 0, 122, 130, 0, 0, 166, 167, 118, 171, + 0, 0, 110, 0, 0, 150, 0, 165, 0, 0, + 0, 0, 0, 0, 0, 137, 125, 132, 154, 142, + 155, 133, 148, 147, 149, 0, 0, 0, 160, 0, + 0, 129, 124, 164, 121, 145, 114, 108, 0, 115, + 116, 120, 119, 0, 136, 143, 146, 152, 153, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 427, 428, 0, 0, - 0, 0, 467, 0, 429, 0, 0, 426, 431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 168, 0, 0, 465, 0, 0, 0, 0, 0, - 0, 115, 0, 155, 0, 166, 107, 0, 0, 0, - 0, 0, 0, 0, 0, 120, 128, 0, 0, 164, - 165, 116, 169, 0, 0, 108, 0, 0, 148, 0, - 163, 0, 0, 0, 0, 0, 0, 0, 135, 123, - 130, 152, 140, 153, 131, 146, 145, 147, 0, 0, - 0, 158, 0, 0, 127, 122, 162, 119, 143, 112, - 106, 0, 113, 114, 118, 117, 0, 134, 141, 144, - 150, 151, 156, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 163, 0, 128, 461, 470, 467, 468, + 465, 466, 464, 463, 462, 472, 455, 456, 458, 0, + 457, 106, 111, 140, 0, 156, 127, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 24, 0, 126, + 161, 0, 162, 0, 0, 0, 134, 0, 151, 0, + 107, 0, 0, 131, 0, 135, 138, 139, 0, 172, + 173, 175, 174, 176, 112, 177, 178, 424, 0, 0, + 0, 123, 423, 0, 0, 0, 0, 460, 141, 0, + 0, 159, 144, 0, 0, 0, 0, 453, 454, 0, + 0, 0, 0, 0, 0, 0, 53, 0, 0, 473, + 441, 440, 442, 443, 444, 445, 0, 0, 113, 446, + 447, 448, 0, 0, 0, 421, 434, 0, 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 161, 0, 126, 457, 466, - 463, 464, 461, 462, 460, 459, 458, 468, 451, 452, - 454, 0, 453, 104, 109, 138, 0, 154, 125, 167, + 0, 0, 0, 0, 0, 0, 0, 0, 431, 432, + 0, 0, 0, 0, 471, 0, 433, 0, 0, 430, + 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 0, 0, 469, 0, 0, 0, + 0, 0, 0, 117, 0, 157, 0, 168, 109, 0, + 0, 0, 0, 0, 0, 0, 0, 122, 130, 0, + 0, 166, 167, 118, 171, 0, 0, 110, 0, 0, + 150, 0, 165, 0, 0, 0, 0, 0, 0, 0, + 137, 125, 132, 154, 142, 155, 133, 148, 147, 149, + 0, 0, 0, 160, 0, 0, 129, 124, 164, 121, + 145, 114, 108, 0, 115, 116, 120, 119, 0, 136, + 143, 146, 152, 153, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 124, 159, 0, 160, 0, 0, 0, 132, 0, - 149, 0, 105, 0, 0, 129, 0, 133, 136, 137, - 0, 170, 171, 173, 172, 174, 110, 175, 176, 420, - 0, 0, 0, 121, 419, 0, 0, 0, 0, 456, - 139, 0, 0, 157, 142, 0, 0, 0, 0, 449, - 450, 0, 0, 0, 0, 0, 0, 0, 53, 0, - 0, 469, 437, 436, 438, 439, 440, 441, 0, 0, - 111, 442, 443, 444, 0, 0, 0, 417, 430, 0, - 455, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 163, 0, + 128, 461, 470, 467, 468, 465, 466, 464, 463, 462, + 472, 455, 456, 458, 0, 457, 106, 111, 140, 0, + 156, 127, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 126, 161, 0, 162, 0, 0, + 0, 134, 0, 151, 0, 107, 0, 0, 131, 0, + 135, 138, 139, 0, 172, 173, 175, 174, 176, 112, + 177, 178, 424, 0, 0, 0, 123, 423, 0, 0, + 0, 0, 460, 141, 0, 0, 159, 144, 0, 0, + 0, 0, 453, 454, 0, 0, 0, 0, 0, 0, + 0, 53, 0, 0, 473, 441, 440, 442, 443, 444, + 445, 0, 0, 113, 446, 447, 448, 0, 0, 0, + 421, 434, 0, 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 427, 428, 0, 0, 0, 0, 467, 0, 429, 0, - 0, 426, 431, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 168, 0, 0, 465, 0, - 0, 0, 0, 0, 0, 115, 0, 155, 0, 166, - 107, 0, 0, 0, 0, 0, 0, 0, 0, 120, - 128, 0, 0, 164, 165, 116, 169, 0, 0, 108, - 0, 0, 148, 0, 163, 0, 0, 0, 0, 0, - 0, 0, 135, 123, 130, 152, 140, 153, 131, 146, - 145, 147, 0, 0, 0, 158, 0, 0, 127, 122, - 162, 119, 143, 112, 106, 0, 113, 114, 118, 117, - 0, 134, 141, 144, 150, 151, 156, 0, 0, 0, + 0, 0, 0, 431, 432, 0, 0, 0, 0, 471, + 0, 433, 0, 0, 430, 435, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 0, + 0, 469, 0, 0, 0, 0, 0, 0, 117, 0, + 157, 0, 168, 109, 0, 0, 0, 0, 0, 0, + 0, 0, 122, 130, 0, 0, 166, 167, 118, 171, + 0, 0, 110, 0, 0, 150, 0, 165, 0, 0, + 0, 0, 0, 0, 0, 137, 125, 132, 154, 142, + 155, 133, 148, 147, 149, 0, 0, 0, 160, 0, + 0, 129, 124, 164, 121, 145, 114, 108, 0, 115, + 116, 120, 119, 0, 136, 143, 146, 152, 153, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, - 0, 126, 457, 466, 463, 464, 461, 462, 460, 459, - 458, 468, 451, 452, 454, 0, 453, 104, 109, 138, - 0, 154, 125, 167, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 124, 159, 0, 160, 0, - 0, 149, 132, 105, 0, 0, 129, 0, 133, 136, - 137, 0, 0, 0, 0, 170, 171, 173, 172, 174, - 110, 175, 176, 0, 121, 0, 0, 0, 0, 0, - 456, 139, 0, 0, 157, 142, 0, 0, 0, 0, - 449, 450, 0, 0, 0, 0, 0, 0, 0, 53, - 0, 0, 469, 437, 436, 438, 439, 440, 441, 0, - 0, 111, 442, 443, 444, 0, 0, 0, 0, 430, - 0, 455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 427, 428, 0, 0, 0, 0, 467, 0, 429, - 0, 0, 426, 431, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 168, 0, 0, 465, - 0, 0, 0, 0, 0, 0, 115, 0, 155, 0, - 166, 107, 0, 0, 0, 0, 0, 0, 0, 0, - 120, 128, 0, 0, 164, 165, 116, 169, 0, 0, - 108, 0, 0, 148, 0, 163, 0, 0, 0, 0, - 0, 0, 0, 135, 123, 130, 152, 140, 153, 131, - 146, 145, 147, 0, 0, 0, 158, 0, 0, 127, - 122, 162, 119, 143, 112, 106, 0, 113, 114, 118, - 117, 0, 134, 141, 144, 150, 151, 156, 0, 0, + 0, 0, 0, 163, 0, 128, 461, 470, 467, 468, + 465, 466, 464, 463, 462, 472, 455, 456, 458, 0, + 457, 106, 111, 140, 0, 156, 127, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, + 161, 0, 162, 0, 0, 151, 134, 107, 0, 0, + 131, 0, 135, 138, 139, 0, 0, 0, 0, 172, + 173, 175, 174, 176, 112, 177, 178, 0, 123, 0, + 0, 0, 0, 0, 460, 141, 0, 0, 159, 144, + 0, 0, 0, 0, 453, 454, 0, 0, 0, 0, + 0, 0, 0, 53, 0, 0, 473, 441, 440, 442, + 443, 444, 445, 0, 0, 113, 446, 447, 448, 0, + 0, 0, 0, 434, 0, 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 431, 432, 0, 0, 0, + 0, 471, 0, 433, 0, 0, 430, 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 161, 0, 126, 457, 466, 463, 464, 461, 462, 460, - 459, 458, 468, 451, 452, 454, 0, 453, 104, 109, - 138, 0, 154, 125, 167, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 124, 159, 0, 160, - 0, 0, 0, 132, 0, 0, 149, 0, 105, 0, - 0, 129, 0, 133, 136, 137, 170, 171, 173, 172, - 174, 110, 175, 176, 1074, 0, 0, 0, 0, 121, - 0, 0, 0, 0, 0, 0, 139, 0, 0, 157, - 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 230, 0, 1076, - 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, - 0, 591, 590, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 592, 0, + 170, 0, 0, 469, 0, 0, 0, 0, 0, 0, + 117, 0, 157, 0, 168, 109, 0, 0, 0, 0, + 0, 0, 0, 0, 122, 130, 0, 0, 166, 167, + 118, 171, 0, 0, 110, 0, 0, 150, 0, 165, + 0, 0, 0, 0, 0, 0, 0, 137, 125, 132, + 154, 142, 155, 133, 148, 147, 149, 0, 0, 0, + 160, 0, 0, 129, 124, 164, 121, 145, 114, 108, + 0, 115, 116, 120, 119, 0, 136, 143, 146, 152, + 153, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 163, 0, 128, 461, 470, + 467, 468, 465, 466, 464, 463, 462, 472, 455, 456, + 458, 0, 457, 106, 111, 140, 0, 156, 127, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 126, 161, 0, 162, 0, 0, 0, 134, 0, + 0, 151, 0, 107, 0, 0, 131, 0, 135, 138, + 139, 172, 173, 175, 174, 176, 112, 177, 178, 1078, + 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, + 0, 141, 0, 0, 159, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 115, 0, 155, 0, 166, 107, 0, 0, 0, - 0, 0, 0, 0, 0, 120, 128, 0, 0, 164, - 165, 116, 169, 0, 0, 108, 0, 0, 148, 0, - 163, 0, 0, 0, 0, 0, 0, 0, 135, 123, - 130, 152, 140, 153, 131, 146, 145, 147, 0, 0, - 0, 158, 0, 0, 127, 122, 162, 119, 143, 112, - 106, 0, 113, 114, 118, 117, 24, 134, 141, 144, - 150, 151, 156, 0, 0, 0, 0, 149, 0, 105, - 0, 0, 129, 0, 133, 136, 137, 0, 0, 0, - 0, 0, 0, 0, 0, 161, 0, 126, 0, 0, - 121, 0, 0, 0, 0, 0, 0, 139, 0, 0, - 157, 142, 0, 104, 109, 138, 0, 154, 125, 167, - 0, 0, 0, 0, 0, 53, 0, 0, 102, 0, - 0, 124, 159, 0, 160, 0, 0, 111, 132, 0, + 0, 0, 232, 0, 1080, 0, 0, 0, 0, 0, + 0, 113, 0, 0, 0, 0, 595, 594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 171, 173, 172, 174, 110, 175, 176, 0, + 0, 0, 0, 596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 117, 0, 157, 0, + 168, 109, 0, 0, 0, 0, 0, 0, 0, 0, + 122, 130, 0, 0, 166, 167, 118, 171, 0, 0, + 110, 0, 0, 150, 0, 165, 0, 0, 0, 0, + 0, 0, 0, 137, 125, 132, 154, 142, 155, 133, + 148, 147, 149, 0, 0, 0, 160, 0, 0, 129, + 124, 164, 121, 145, 114, 108, 0, 115, 116, 120, + 119, 24, 136, 143, 146, 152, 153, 158, 0, 0, + 0, 0, 151, 0, 107, 0, 0, 131, 0, 135, + 138, 139, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 163, 0, 128, 0, 123, 0, 0, 0, 0, + 0, 0, 141, 0, 0, 159, 144, 0, 0, 106, + 111, 140, 0, 156, 127, 169, 0, 0, 0, 0, + 53, 0, 0, 104, 0, 0, 0, 126, 161, 0, + 162, 0, 113, 0, 134, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 175, + 174, 176, 112, 177, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 115, 0, 155, 0, 166, 107, 0, 0, - 0, 0, 0, 0, 0, 0, 120, 128, 0, 0, - 164, 165, 116, 169, 0, 0, 108, 0, 0, 148, - 0, 163, 0, 0, 0, 0, 0, 0, 0, 135, - 123, 130, 152, 140, 153, 131, 146, 145, 147, 0, - 0, 0, 158, 0, 0, 127, 122, 162, 119, 143, - 112, 106, 0, 113, 114, 118, 117, 0, 134, 141, - 144, 150, 151, 156, 149, 0, 105, 0, 0, 129, - 0, 133, 136, 137, 0, 0, 0, 0, 0, 0, - 0, 0, 1307, 0, 0, 0, 161, 121, 126, 0, - 0, 0, 0, 0, 139, 0, 0, 157, 142, 0, - 0, 0, 0, 0, 104, 109, 138, 0, 154, 125, - 167, 0, 0, 0, 0, 102, 0, 1309, 0, 0, - 0, 0, 124, 159, 111, 160, 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 173, 172, 174, 110, 175, 176, + 0, 0, 0, 0, 0, 0, 0, 170, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 117, 0, 157, + 0, 168, 109, 0, 0, 0, 0, 0, 0, 0, + 0, 122, 130, 0, 0, 166, 167, 118, 171, 0, + 0, 110, 0, 0, 150, 0, 165, 0, 0, 0, + 0, 0, 0, 0, 137, 125, 132, 154, 142, 155, + 133, 148, 147, 149, 0, 0, 0, 160, 0, 0, + 129, 124, 164, 121, 145, 114, 108, 0, 115, 116, + 120, 119, 0, 136, 143, 146, 152, 153, 158, 0, + 151, 0, 107, 0, 0, 131, 0, 135, 138, 139, + 0, 0, 0, 0, 0, 0, 0, 0, 1311, 0, + 0, 0, 163, 123, 128, 0, 0, 0, 0, 0, + 141, 0, 0, 159, 144, 0, 0, 0, 0, 0, + 106, 111, 140, 0, 156, 127, 169, 0, 0, 0, + 0, 104, 0, 1313, 0, 0, 0, 0, 126, 161, + 113, 162, 0, 0, 0, 134, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 175, 174, 176, 112, 177, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, - 0, 155, 0, 166, 107, 0, 0, 0, 0, 0, - 0, 0, 0, 120, 128, 0, 0, 164, 165, 116, - 169, 0, 0, 108, 0, 0, 148, 0, 163, 0, - 0, 0, 0, 0, 0, 0, 135, 123, 130, 152, - 140, 153, 131, 146, 145, 147, 0, 0, 0, 158, - 0, 0, 127, 122, 162, 119, 143, 112, 106, 0, - 113, 114, 118, 117, 24, 134, 141, 144, 150, 151, - 156, 0, 0, 0, 0, 149, 0, 105, 0, 0, - 129, 0, 133, 136, 137, 0, 0, 0, 0, 0, - 0, 0, 0, 161, 0, 126, 0, 0, 121, 0, - 0, 0, 0, 0, 0, 139, 0, 0, 157, 142, - 0, 104, 109, 138, 0, 154, 125, 167, 0, 0, - 0, 0, 0, 53, 0, 0, 230, 0, 0, 124, - 159, 0, 160, 0, 0, 111, 132, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 171, 173, 172, 174, 110, 175, 176, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 117, 0, 157, 0, 168, + 109, 0, 0, 0, 0, 0, 0, 0, 0, 122, + 130, 0, 0, 166, 167, 118, 171, 0, 0, 110, + 0, 0, 150, 0, 165, 0, 0, 0, 0, 0, + 0, 0, 137, 125, 132, 154, 142, 155, 133, 148, + 147, 149, 0, 0, 0, 160, 0, 0, 129, 124, + 164, 121, 145, 114, 108, 0, 115, 116, 120, 119, + 24, 136, 143, 146, 152, 153, 158, 0, 0, 0, + 0, 151, 0, 107, 0, 0, 131, 0, 135, 138, + 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 163, 0, 128, 0, 123, 0, 0, 0, 0, 0, + 0, 141, 0, 0, 159, 144, 0, 0, 106, 111, + 140, 0, 156, 127, 169, 0, 0, 0, 0, 53, + 0, 0, 232, 0, 0, 0, 126, 161, 0, 162, + 0, 113, 0, 134, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 175, 174, + 176, 112, 177, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 117, 0, 157, 0, + 168, 109, 0, 0, 0, 0, 0, 0, 0, 0, + 122, 130, 0, 0, 166, 167, 118, 171, 0, 0, + 110, 0, 0, 150, 0, 165, 0, 0, 0, 0, + 0, 0, 0, 137, 125, 132, 154, 142, 155, 133, + 148, 147, 149, 0, 0, 0, 160, 0, 0, 129, + 124, 164, 121, 145, 114, 108, 0, 115, 116, 120, + 119, 0, 136, 143, 146, 152, 153, 158, 0, 151, + 0, 107, 0, 0, 131, 0, 135, 138, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 115, 0, 155, 0, 166, 107, 0, 0, 0, 0, - 0, 0, 0, 0, 120, 128, 0, 0, 164, 165, - 116, 169, 0, 0, 108, 0, 0, 148, 0, 163, - 0, 0, 0, 0, 0, 0, 0, 135, 123, 130, - 152, 140, 153, 131, 146, 145, 147, 0, 0, 0, - 158, 0, 0, 127, 122, 162, 119, 143, 112, 106, - 0, 113, 114, 118, 117, 0, 134, 141, 144, 150, - 151, 156, 149, 0, 105, 0, 0, 129, 0, 133, - 136, 137, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 161, 121, 126, 0, 0, 0, - 0, 0, 139, 0, 0, 157, 142, 0, 0, 0, - 0, 0, 104, 109, 138, 0, 154, 125, 167, 0, - 0, 0, 0, 230, 0, 0, 669, 0, 0, 670, - 124, 159, 111, 160, 0, 0, 0, 132, 0, 0, + 0, 163, 123, 128, 0, 0, 0, 0, 0, 141, + 0, 0, 159, 144, 0, 0, 0, 0, 0, 106, + 111, 140, 0, 156, 127, 169, 0, 0, 0, 0, + 232, 0, 0, 673, 0, 0, 674, 126, 161, 113, + 162, 0, 0, 0, 134, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 175, + 174, 176, 112, 177, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 171, 173, 172, 174, 110, 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 117, 0, 157, 0, 168, 109, + 0, 0, 0, 0, 0, 0, 0, 0, 122, 130, + 0, 0, 166, 167, 118, 171, 0, 0, 110, 0, + 0, 150, 0, 165, 0, 0, 0, 0, 0, 0, + 0, 137, 125, 132, 154, 142, 155, 133, 148, 147, + 149, 0, 0, 0, 160, 0, 0, 129, 124, 164, + 121, 145, 114, 108, 0, 115, 116, 120, 119, 0, + 136, 143, 146, 152, 153, 158, 0, 0, 0, 151, + 0, 107, 0, 0, 131, 0, 135, 138, 139, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, + 0, 128, 123, 503, 0, 0, 0, 0, 0, 141, + 0, 0, 159, 144, 0, 0, 0, 106, 111, 140, + 0, 156, 127, 169, 0, 0, 0, 0, 0, 0, + 232, 0, 502, 0, 0, 126, 161, 0, 162, 113, + 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 175, 174, 176, + 112, 177, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 115, 0, 155, - 0, 166, 107, 0, 0, 0, 0, 0, 0, 0, - 0, 120, 128, 0, 0, 164, 165, 116, 169, 0, - 0, 108, 0, 0, 148, 0, 163, 0, 0, 0, - 0, 0, 0, 0, 135, 123, 130, 152, 140, 153, - 131, 146, 145, 147, 0, 0, 0, 158, 0, 0, - 127, 122, 162, 119, 143, 112, 106, 0, 113, 114, - 118, 117, 0, 134, 141, 144, 150, 151, 156, 0, - 0, 149, 0, 105, 0, 0, 129, 0, 133, 136, - 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 161, 0, 126, 121, 499, 0, 0, 0, 0, - 0, 139, 0, 0, 157, 142, 0, 0, 0, 104, - 109, 138, 0, 154, 125, 167, 0, 0, 0, 0, - 0, 0, 230, 0, 498, 0, 0, 124, 159, 0, - 160, 111, 0, 0, 132, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 171, 173, - 172, 174, 110, 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 117, 0, 157, 0, 168, 109, + 0, 0, 0, 0, 0, 0, 0, 0, 122, 130, + 0, 0, 166, 167, 118, 171, 0, 0, 110, 0, + 0, 150, 0, 165, 0, 0, 0, 0, 0, 0, + 0, 137, 125, 132, 154, 142, 155, 133, 148, 147, + 149, 0, 0, 0, 160, 0, 0, 129, 124, 164, + 121, 145, 114, 108, 0, 115, 116, 120, 119, 0, + 136, 143, 146, 152, 153, 158, 0, 151, 0, 107, + 0, 0, 131, 0, 135, 138, 139, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, + 123, 128, 0, 0, 0, 0, 0, 141, 0, 0, + 159, 144, 0, 0, 0, 0, 0, 106, 111, 140, + 0, 156, 127, 169, 0, 0, 0, 0, 104, 0, + 1313, 0, 0, 0, 0, 126, 161, 113, 162, 0, + 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 175, 174, 176, + 112, 177, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 115, 0, 155, 0, - 166, 107, 0, 0, 0, 0, 0, 0, 0, 0, - 120, 128, 0, 0, 164, 165, 116, 169, 0, 0, - 108, 0, 0, 148, 0, 163, 0, 0, 0, 0, - 0, 0, 0, 135, 123, 130, 152, 140, 153, 131, - 146, 145, 147, 0, 0, 0, 158, 0, 0, 127, - 122, 162, 119, 143, 112, 106, 0, 113, 114, 118, - 117, 0, 134, 141, 144, 150, 151, 156, 149, 0, - 105, 0, 0, 129, 0, 133, 136, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 161, 121, 126, 0, 0, 0, 0, 0, 139, 0, - 0, 157, 142, 0, 0, 0, 0, 0, 104, 109, - 138, 0, 154, 125, 167, 0, 0, 0, 0, 102, - 0, 1309, 0, 0, 0, 0, 124, 159, 111, 160, - 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 171, 173, 172, - 174, 110, 175, 176, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 117, 0, 157, 0, 168, 109, 0, 0, + 0, 0, 0, 0, 0, 0, 122, 130, 0, 0, + 166, 167, 118, 171, 0, 0, 110, 0, 0, 150, + 0, 165, 0, 0, 0, 0, 0, 0, 0, 137, + 125, 132, 154, 142, 155, 133, 148, 147, 149, 0, + 0, 0, 160, 0, 0, 129, 124, 164, 121, 145, + 114, 108, 0, 115, 116, 120, 119, 0, 136, 143, + 146, 152, 153, 158, 0, 151, 0, 107, 0, 0, + 131, 0, 135, 138, 139, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 163, 123, 128, + 0, 0, 0, 0, 0, 141, 0, 0, 159, 144, + 0, 0, 0, 0, 0, 106, 111, 140, 0, 156, + 127, 169, 0, 53, 0, 0, 104, 0, 0, 0, + 0, 0, 0, 126, 161, 113, 162, 0, 0, 0, + 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 175, 174, 176, 112, 177, + 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 115, 0, 155, 0, 166, 107, 0, - 0, 0, 0, 0, 0, 0, 0, 120, 128, 0, - 0, 164, 165, 116, 169, 0, 0, 108, 0, 0, - 148, 0, 163, 0, 0, 0, 0, 0, 0, 0, - 135, 123, 130, 152, 140, 153, 131, 146, 145, 147, - 0, 0, 0, 158, 0, 0, 127, 122, 162, 119, - 143, 112, 106, 0, 113, 114, 118, 117, 0, 134, - 141, 144, 150, 151, 156, 149, 0, 105, 0, 0, - 129, 0, 133, 136, 137, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 161, 121, 126, - 0, 0, 0, 0, 0, 139, 0, 0, 157, 142, - 0, 0, 0, 0, 0, 104, 109, 138, 0, 154, - 125, 167, 0, 53, 0, 0, 102, 0, 0, 0, - 0, 0, 0, 124, 159, 111, 160, 0, 0, 0, - 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 171, 173, 172, 174, 110, 175, - 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 117, 0, 157, 0, 168, 109, 0, 0, 0, 0, + 0, 0, 0, 0, 122, 130, 0, 0, 166, 167, + 118, 171, 0, 0, 110, 0, 0, 150, 0, 165, + 0, 0, 0, 0, 0, 0, 0, 137, 125, 132, + 154, 142, 155, 133, 148, 147, 149, 0, 0, 0, + 160, 0, 0, 129, 124, 164, 121, 145, 114, 108, + 0, 115, 116, 120, 119, 0, 136, 143, 146, 152, + 153, 158, 0, 151, 0, 107, 0, 0, 131, 0, + 135, 138, 139, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 163, 123, 128, 0, 0, + 0, 0, 0, 141, 0, 0, 159, 144, 0, 0, + 0, 0, 0, 106, 111, 140, 0, 156, 127, 169, + 0, 0, 0, 0, 232, 0, 1080, 0, 0, 0, + 0, 126, 161, 113, 162, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 175, 174, 176, 112, 177, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 115, 0, 155, 0, 166, 107, 0, 0, 0, 0, - 0, 0, 0, 0, 120, 128, 0, 0, 164, 165, - 116, 169, 0, 0, 108, 0, 0, 148, 0, 163, - 0, 0, 0, 0, 0, 0, 0, 135, 123, 130, - 152, 140, 153, 131, 146, 145, 147, 0, 0, 0, - 158, 0, 0, 127, 122, 162, 119, 143, 112, 106, - 0, 113, 114, 118, 117, 0, 134, 141, 144, 150, - 151, 156, 149, 0, 105, 0, 0, 129, 0, 133, - 136, 137, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 161, 121, 126, 0, 0, 0, - 0, 0, 139, 0, 0, 157, 142, 0, 0, 0, - 0, 0, 104, 109, 138, 0, 154, 125, 167, 0, - 0, 0, 0, 230, 0, 1076, 0, 0, 0, 0, - 124, 159, 111, 160, 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 171, 173, 172, 174, 110, 175, 176, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, + 157, 0, 168, 109, 0, 0, 0, 0, 0, 0, + 0, 0, 122, 130, 0, 0, 166, 167, 118, 171, + 0, 0, 110, 0, 0, 150, 0, 165, 0, 0, + 0, 0, 0, 0, 0, 137, 125, 132, 154, 142, + 155, 133, 148, 147, 149, 0, 0, 0, 160, 0, + 0, 129, 124, 164, 121, 145, 114, 108, 0, 115, + 116, 120, 119, 0, 136, 143, 146, 152, 153, 158, + 0, 0, 0, 0, 151, 0, 107, 0, 0, 131, + 0, 135, 138, 139, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 163, 0, 128, 486, 123, 0, 0, + 0, 0, 0, 0, 141, 0, 0, 159, 144, 0, + 0, 106, 111, 140, 0, 156, 127, 169, 0, 0, + 0, 0, 0, 0, 0, 104, 0, 0, 0, 126, + 161, 0, 162, 0, 113, 0, 134, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 175, 174, 176, 112, 177, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 115, 0, 155, - 0, 166, 107, 0, 0, 0, 0, 0, 0, 0, - 0, 120, 128, 0, 0, 164, 165, 116, 169, 0, - 0, 108, 0, 0, 148, 0, 163, 0, 0, 0, - 0, 0, 0, 0, 135, 123, 130, 152, 140, 153, - 131, 146, 145, 147, 0, 0, 0, 158, 0, 0, - 127, 122, 162, 119, 143, 112, 106, 0, 113, 114, - 118, 117, 0, 134, 141, 144, 150, 151, 156, 0, - 0, 0, 149, 0, 105, 0, 0, 129, 0, 133, - 136, 137, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 161, 0, 126, 482, 121, 0, 0, 0, 0, - 0, 0, 139, 0, 0, 157, 142, 0, 0, 104, - 109, 138, 0, 154, 125, 167, 0, 0, 0, 0, - 0, 0, 0, 102, 0, 0, 0, 124, 159, 0, - 160, 0, 111, 0, 132, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 171, 173, - 172, 174, 110, 175, 176, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, + 0, 157, 0, 168, 109, 0, 0, 0, 0, 0, + 0, 0, 0, 122, 130, 0, 0, 166, 167, 118, + 171, 0, 0, 110, 0, 0, 150, 0, 165, 0, + 0, 0, 0, 0, 0, 0, 137, 125, 132, 154, + 142, 155, 133, 148, 147, 149, 0, 0, 0, 160, + 0, 0, 129, 124, 164, 121, 145, 114, 108, 0, + 115, 116, 120, 119, 0, 136, 143, 146, 152, 153, + 158, 0, 151, 0, 107, 0, 0, 131, 0, 135, + 138, 139, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 163, 123, 128, 0, 0, 0, + 0, 0, 141, 0, 0, 159, 144, 0, 0, 0, + 0, 0, 106, 111, 140, 0, 156, 127, 169, 0, + 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, + 126, 161, 113, 162, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 175, 174, 176, 112, 177, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 115, 0, 155, - 0, 166, 107, 0, 0, 0, 0, 0, 0, 0, - 0, 120, 128, 0, 0, 164, 165, 116, 169, 0, - 0, 108, 0, 0, 148, 0, 163, 0, 0, 0, - 0, 0, 0, 0, 135, 123, 130, 152, 140, 153, - 131, 146, 145, 147, 0, 0, 0, 158, 0, 0, - 127, 122, 162, 119, 143, 112, 106, 0, 113, 114, - 118, 117, 0, 134, 141, 144, 150, 151, 156, 149, - 0, 105, 0, 0, 129, 0, 133, 136, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 161, 121, 126, 0, 0, 0, 0, 0, 139, - 0, 0, 157, 142, 0, 0, 0, 0, 0, 104, - 109, 138, 0, 154, 125, 167, 0, 0, 0, 0, - 230, 0, 0, 0, 0, 0, 0, 124, 159, 111, - 160, 0, 0, 0, 132, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 171, 173, - 172, 174, 110, 175, 176, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 117, 0, 157, + 0, 168, 109, 0, 0, 0, 0, 0, 0, 0, + 0, 122, 130, 0, 0, 166, 167, 118, 171, 0, + 0, 110, 0, 0, 150, 0, 165, 0, 0, 0, + 0, 0, 0, 0, 137, 125, 132, 154, 142, 155, + 133, 148, 147, 149, 0, 0, 0, 160, 0, 0, + 129, 124, 164, 121, 145, 114, 108, 0, 115, 116, + 120, 119, 0, 136, 143, 146, 152, 153, 158, 0, + 151, 0, 107, 0, 0, 131, 0, 135, 138, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 163, 123, 128, 0, 0, 0, 0, 0, + 141, 0, 0, 159, 144, 0, 0, 0, 0, 0, + 106, 111, 140, 0, 156, 127, 169, 0, 0, 0, + 0, 473, 0, 0, 0, 0, 0, 0, 126, 161, + 113, 162, 0, 0, 0, 134, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 175, 174, 176, 112, 177, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 115, 0, 155, 0, 166, 107, - 0, 0, 0, 0, 0, 0, 0, 0, 120, 128, - 0, 0, 164, 165, 116, 169, 0, 0, 108, 0, - 0, 148, 0, 163, 0, 0, 0, 0, 0, 0, - 0, 135, 123, 130, 152, 140, 153, 131, 146, 145, - 147, 0, 0, 0, 158, 0, 0, 127, 122, 162, - 119, 143, 112, 106, 0, 113, 114, 118, 117, 0, - 134, 141, 144, 150, 151, 156, 149, 0, 105, 0, - 0, 129, 0, 133, 136, 137, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 161, 121, - 126, 0, 0, 0, 0, 0, 139, 0, 0, 157, - 142, 0, 0, 0, 0, 0, 104, 109, 138, 0, - 154, 125, 167, 0, 0, 0, 0, 469, 0, 0, - 0, 0, 0, 0, 124, 159, 111, 160, 0, 0, - 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 171, 173, 172, 174, 110, - 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 117, 0, 157, 0, 168, + 109, 0, 0, 0, 0, 0, 0, 0, 0, 122, + 130, 0, 0, 166, 167, 118, 171, 0, 0, 110, + 0, 0, 150, 0, 165, 0, 0, 0, 0, 0, + 0, 0, 137, 125, 132, 154, 142, 155, 133, 148, + 147, 149, 0, 0, 0, 160, 0, 0, 129, 124, + 164, 121, 145, 114, 108, 0, 115, 116, 120, 119, + 0, 136, 143, 146, 152, 153, 158, 0, 151, 0, + 107, 0, 0, 131, 0, 135, 138, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 115, 0, 155, 0, 166, 107, 0, 0, 0, - 0, 0, 0, 0, 0, 120, 128, 0, 0, 164, - 165, 116, 169, 0, 0, 108, 0, 0, 148, 0, - 163, 0, 0, 0, 0, 0, 0, 0, 135, 123, - 130, 152, 140, 153, 131, 146, 145, 147, 0, 0, - 0, 158, 0, 0, 127, 122, 162, 119, 143, 112, - 106, 0, 113, 114, 118, 117, 0, 134, 141, 144, - 150, 151, 156, 149, 0, 105, 0, 0, 129, 0, - 133, 136, 137, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 161, 121, 126, 0, 0, - 0, 0, 0, 139, 0, 0, 157, 142, 0, 0, - 0, 0, 0, 104, 109, 138, 0, 154, 125, 167, - 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, - 0, 124, 159, 111, 160, 0, 0, 0, 132, 0, + 163, 123, 128, 0, 0, 0, 0, 0, 141, 0, + 0, 159, 144, 0, 0, 0, 0, 0, 106, 111, + 140, 0, 156, 127, 169, 0, 0, 0, 0, 104, + 0, 0, 0, 0, 0, 0, 126, 161, 113, 162, + 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 175, 174, + 176, 112, 177, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 171, 173, 172, 174, 110, 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 117, 0, 157, 0, 168, 109, 0, + 0, 0, 0, 0, 0, 0, 0, 122, 130, 0, + 0, 166, 167, 118, 171, 0, 0, 110, 0, 0, + 150, 0, 165, 0, 0, 0, 0, 0, 0, 0, + 137, 125, 132, 154, 142, 155, 133, 148, 147, 149, + 0, 0, 0, 160, 0, 0, 129, 124, 164, 121, + 145, 114, 108, 0, 115, 116, 120, 119, 0, 136, + 143, 146, 152, 153, 158, 0, 151, 0, 107, 0, + 0, 131, 0, 135, 138, 139, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 163, 123, + 128, 0, 0, 0, 0, 0, 141, 0, 0, 159, + 144, 0, 0, 0, 0, 0, 106, 111, 140, 0, + 156, 127, 169, 0, 0, 0, 0, 362, 0, 0, + 0, 0, 0, 0, 126, 161, 113, 162, 0, 0, + 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 175, 174, 176, 112, + 177, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 168, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 115, 0, - 155, 0, 166, 107, 0, 0, 0, 0, 0, 0, - 0, 0, 120, 128, 0, 0, 164, 165, 116, 169, - 0, 0, 108, 0, 0, 148, 0, 163, 0, 0, - 0, 0, 0, 0, 0, 135, 123, 130, 152, 140, - 153, 131, 146, 145, 147, 0, 0, 0, 158, 0, - 0, 127, 122, 162, 119, 143, 112, 106, 0, 113, - 114, 118, 117, 0, 134, 141, 144, 150, 151, 156, - 149, 0, 105, 0, 0, 129, 0, 133, 136, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 161, 121, 126, 0, 0, 0, 0, 0, - 139, 0, 0, 157, 142, 0, 0, 0, 0, 0, - 104, 109, 138, 0, 154, 125, 167, 0, 0, 0, - 0, 360, 0, 0, 0, 0, 0, 0, 124, 159, - 111, 160, 0, 0, 0, 132, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 170, 171, - 173, 172, 174, 110, 175, 176, 0, 0, 0, 0, + 0, 170, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 117, 0, 157, 0, 168, 109, 0, 0, 0, + 0, 0, 0, 0, 0, 122, 130, 0, 0, 166, + 167, 118, 171, 0, 0, 110, 0, 0, 150, 0, + 165, 0, 0, 0, 0, 0, 0, 0, 137, 125, + 132, 154, 142, 155, 133, 148, 147, 149, 0, 0, + 0, 160, 0, 0, 129, 124, 164, 121, 145, 114, + 108, 0, 115, 116, 120, 119, 0, 136, 143, 146, + 152, 153, 158, 0, 151, 0, 107, 0, 0, 131, + 0, 135, 138, 139, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 163, 123, 128, 0, + 0, 0, 0, 0, 141, 0, 0, 159, 144, 0, + 0, 0, 0, 0, 106, 111, 140, 0, 156, 127, + 169, 0, 0, 0, 0, 1164, 0, 0, 0, 0, + 0, 0, 126, 161, 113, 162, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 175, 174, 176, 112, 177, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 115, 0, 155, 0, 166, - 107, 0, 0, 0, 0, 0, 0, 0, 0, 120, - 128, 0, 0, 164, 165, 116, 169, 0, 0, 108, - 0, 0, 148, 0, 163, 0, 0, 0, 0, 0, - 0, 0, 135, 123, 130, 152, 140, 153, 131, 146, - 145, 147, 0, 0, 0, 158, 0, 0, 127, 122, - 162, 119, 143, 112, 106, 0, 113, 114, 118, 117, - 0, 134, 141, 144, 150, 151, 156, 149, 0, 105, - 0, 0, 129, 0, 133, 136, 137, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, - 121, 126, 0, 0, 0, 0, 0, 139, 0, 0, - 157, 142, 0, 0, 0, 0, 0, 104, 109, 138, - 0, 154, 125, 167, 0, 0, 0, 0, 1160, 0, - 0, 0, 0, 0, 0, 124, 159, 111, 160, 0, - 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 171, 173, 172, 174, - 110, 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, + 0, 157, 0, 168, 109, 0, 0, 0, 0, 0, + 0, 0, 0, 122, 130, 0, 0, 166, 167, 118, + 171, 0, 0, 110, 0, 0, 150, 0, 165, 0, + 0, 0, 0, 0, 0, 0, 137, 125, 132, 154, + 142, 155, 133, 148, 147, 149, 0, 0, 0, 160, + 0, 0, 129, 124, 164, 121, 145, 114, 108, 0, + 115, 116, 120, 119, 0, 136, 143, 146, 152, 153, + 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 115, 0, 155, 0, 166, 107, 0, 0, - 0, 0, 0, 0, 0, 0, 120, 128, 0, 0, - 164, 165, 116, 169, 0, 0, 108, 0, 0, 148, - 0, 163, 0, 0, 0, 0, 0, 0, 0, 135, - 123, 130, 152, 140, 153, 131, 146, 145, 147, 0, - 0, 0, 158, 0, 0, 127, 122, 162, 119, 143, - 112, 106, 0, 113, 114, 118, 117, 0, 134, 141, - 144, 150, 151, 156, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 163, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 161, 0, 126, 0, + 0, 0, 106, 111, 140, 0, 156, 127, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 104, 109, 138, 0, 154, 125, - 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 124, 159, 0, 160, 0, 0, 0, 132, + 126, 161, 0, 162, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 173, 172, 174, 110, 175, 176, + 172, 173, 175, 174, 176, 112, 177, 178, } - var yyPact = [...]int{ - 178, -1000, -216, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + + 135, -1000, -215, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 936, 959, -1000, -1000, -1000, -1000, -1000, 692, - 141, 70, 38, 108, 106, 1715, 92, 9266, -1000, -1000, - 57, -1000, -169, -1000, -1000, -181, -1000, -1000, -1000, -1000, - 705, -1000, -1000, -1000, -1000, -1000, 909, 933, 743, 879, - 782, -1000, 70, 9266, 947, 2400, -144, 9463, 64, 90, - 87, 86, 64, -1000, 83, -1000, 58, 620, 58, 9266, - 9266, -95, 43, -1000, -1000, -81, 285, -1000, -1000, -1000, - -97, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 9266, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 942, 967, -1000, -1000, -1000, -1000, -1000, 733, + 126, 64, 22, 92, 90, 626, 88, 9331, -1000, -1000, + 54, -1000, -169, -1000, -1000, -176, -1000, -1000, -1000, -1000, + 709, -1000, -1000, -1000, -1000, -1000, 915, 938, 728, 870, + 792, -1000, 64, 9331, 957, 2439, -135, 9529, 61, 84, + 83, 81, 61, -1000, 87, -1000, 60, 627, 60, 9331, + 9331, -76, 10, -1000, -1000, -77, 236, -1000, -1000, -1000, + -90, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 9331, -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, @@ -1783,11 +1792,12 @@ 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, - 466, -1000, -1000, -1000, -1000, 663, 663, -1000, 9266, -1000, - -1000, -178, -1000, -1000, -1000, -1000, 538, 847, 6363, 6363, - 936, -1000, 705, -1000, -1000, -1000, 813, -1000, -1000, 317, - 8675, 834, 174, 9266, 660, -1000, -1000, -180, 2990, -1000, - -1000, -1000, -1000, 269, 7884, 7884, -1000, -1000, -1000, 832, + -1000, -1000, 471, -1000, -1000, -1000, -1000, 688, 688, -1000, + 9331, -1000, -1000, -187, -1000, -1000, -1000, -1000, 535, 857, + 6416, 6416, 942, -1000, 709, -1000, -1000, -1000, 823, -1000, + -1000, 307, 8737, 835, 129, 9331, 665, -1000, -1000, -182, + 3031, -1000, -1000, -1000, -1000, 194, 7942, 7942, -1000, -1000, + -1000, 834, -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, @@ -1799,149 +1809,148 @@ 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, -1000, -1000, -1000, -1000, -1000, 937, 918, 622, + -1000, 143, -1000, -1000, 9331, 289, 619, 617, 599, 9331, + 9331, 9331, 854, 751, 9331, -1000, -1000, 956, 9331, 9331, + -1000, -1000, 236, 236, -1000, -1000, 9331, -1000, -1000, -1000, + -1000, -1000, 236, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 6416, -1000, -1000, 164, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 962, 152, 466, + -1000, 6416, 1572, 688, 688, -1000, -1000, 102, -1000, -1000, + 6678, 6678, 6678, 6678, 6678, 6678, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 688, + 128, -1000, 6151, 688, 688, 688, 688, 688, 688, 6416, + 688, 688, 688, 688, 688, 688, 688, 688, 688, 688, + 688, 688, 688, -1000, -1000, 663, -1000, 344, 915, 535, + 792, 7742, 765, -1000, -1000, 668, 9331, -1000, 9133, 4807, + 950, 2735, -1000, 662, 657, -178, -189, -1000, -182, 5356, + -1000, -1000, -1000, -1000, 155, -1000, 688, 100, 142, 1801, + 1311, -28, -1000, -1000, -1000, 695, -1000, 695, 695, 695, + 695, 2, 2, 2, 2, -1000, -1000, -1000, -1000, -1000, + 741, 740, -1000, 695, 695, 695, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 932, 914, 619, -1000, 1435, - -1000, -1000, 9266, 305, 615, 614, 594, 9266, 9266, 9266, - 873, 731, 9266, -1000, -1000, 946, 9266, 9266, -1000, -1000, - 285, 285, -1000, -1000, 9266, -1000, -1000, -1000, -1000, -1000, - 285, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 6363, -1000, -1000, 167, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 954, 202, 382, -1000, 6363, 1609, 663, - 663, -1000, -1000, 163, -1000, -1000, 6624, 6624, 6624, 6624, - 6624, 6624, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 663, 171, -1000, 6099, 663, - 663, 663, 663, 663, 663, 6363, 663, 663, 663, 663, - 663, 663, 663, 663, 663, 663, 663, 663, 663, -1000, - -1000, 657, -1000, 380, 909, 538, 782, 7685, 744, -1000, - -1000, 659, 9266, -1000, 9069, 4760, 944, 2695, -1000, 656, - 654, -182, -191, -1000, -180, 5307, -1000, -1000, -1000, -1000, - 169, -1000, 663, 85, 126, 1631, 1444, -34, -1000, -1000, - -1000, 665, -1000, 665, 665, 665, 665, 7, 7, 7, - 7, -1000, -1000, -1000, -1000, -1000, 714, 706, -1000, 665, - 665, 665, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 739, 739, 739, 729, 729, 840, + 850, 750, 748, 746, -1000, 1358, 655, -1000, -1000, 9331, + -1000, 915, -87, -1000, -1000, 331, 9331, 9331, 236, -1000, + -1000, -1000, -1000, 612, 279, -1000, 9331, -1000, -1000, -1000, + -1000, -1000, -1000, 804, 6416, 6416, 400, 6416, 6416, 178, + 6678, 347, 316, 6678, 6678, 6678, 6678, 6678, 6678, 6678, + 6678, 6678, 6678, 6678, 6678, 6678, 6678, 6678, 465, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 588, -1000, 709, + 674, 674, 133, 133, 133, 133, 133, 2101, 5091, 4511, + 535, 6151, 5621, 5621, 6416, 6416, 5621, 871, 259, 279, + 8935, -1000, 535, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 5621, 5621, 5621, 5621, 6416, -1000, -1000, -1000, 857, -1000, + 871, 941, -1000, 821, 820, 5621, -1000, 744, 9133, 688, + -1000, 7544, -1000, 724, -1000, 191, -1000, 125, -1000, -1000, + -1000, -1000, -1000, 942, 6416, -1000, 3919, -1000, -180, -1000, + -174, -192, -1000, -1000, -1000, -1000, -1000, 279, -1000, 575, + 9529, 688, 688, -1000, 142, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 704, 704, 704, 686, 686, 838, 871, 730, 716, 690, - -1000, 123, 652, -1000, -1000, 9266, -1000, 909, -93, -1000, - -1000, 320, 9266, 9266, 285, -1000, -1000, -1000, -1000, 613, - 283, -1000, 9266, -1000, -1000, -1000, -1000, -1000, -1000, 789, - 6363, 6363, 345, 6363, 6363, 207, 6624, 386, 300, 6624, - 6624, 6624, 6624, 6624, 6624, 6624, 6624, 6624, 6624, 6624, - 6624, 6624, 6624, 6624, 432, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 591, -1000, 705, 442, 442, 129, 129, - 129, 129, 129, 1940, 5043, 4465, 538, 6099, 5571, 5571, - 6363, 6363, 5571, 880, 287, 283, 8872, -1000, 538, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 5571, 5571, 5571, 5571, - 6363, -1000, -1000, -1000, 847, -1000, 880, 934, -1000, 797, - 796, 5571, -1000, 683, 9069, 663, -1000, 7488, -1000, 689, - -1000, 257, -1000, 168, -1000, -1000, -1000, -1000, -1000, 936, - 6363, -1000, 3875, -1000, -187, -1000, -179, -194, -1000, -1000, - -1000, -1000, -1000, 283, -1000, 583, 9463, 663, 663, -1000, - 126, -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, 228, 228, 107, 228, - 228, 228, 228, 228, -58, -61, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 228, -1000, - -1000, -1000, 560, 180, 161, -1000, -1000, -1000, -1000, 889, - -1000, 1444, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 310, 82, -1000, 886, -1000, 885, - 521, 951, 423, 155, 147, -39, -1000, -1000, 463, 7, - 7, -1000, -1000, -1000, 825, -1000, -1000, -1000, 512, 512, - -1000, -1000, -1000, -1000, 452, -1000, -1000, -1000, 451, -1000, - -1000, 838, -1000, 63, -1000, 9266, 9266, 9266, -1000, 166, - 255, 72, 52, 45, 39, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 9266, -1000, -1000, 510, -1000, -1000, -1000, - 509, 6363, -1000, 285, 944, -1000, 6363, -1000, -1000, 786, - 207, 297, -1000, -1000, 325, -1000, -1000, 283, 283, 1055, - -1000, -1000, -1000, -1000, 386, 6624, 6624, 6624, 745, 1055, - 1105, 788, 1248, 129, 243, 243, 262, 262, 262, 262, - 262, 419, 419, -1000, -1000, -1000, 538, -1000, -1000, -1000, - 538, 5571, 650, -1000, -1000, 6889, 162, 663, 152, -1000, - -1000, 538, 576, 576, 308, 393, 576, 5571, 304, -1000, - 6363, 538, -1000, 576, 538, 576, 576, -1000, -1000, 9266, - -1000, -1000, -1000, -1000, 682, -1000, 863, 642, 644, -1000, - -1000, 5835, 538, 609, 135, 936, 9069, 6363, 4465, 909, - 283, -1000, -1000, -1000, -199, -197, -1000, -1000, 538, 9463, - 9463, -1000, 508, -1000, 423, 228, 228, -1000, 824, 448, - 437, 426, 507, 500, 228, 228, 424, 498, 578, 411, - 401, 400, 428, 495, 213, 427, 425, 418, 9660, 61, - -1000, 560, -1000, 884, 180, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 699, -1000, -1000, -1000, -1000, -1000, - -1000, -98, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 623, -1000, -1000, 244, 606, -1000, 601, - 647, 582, -1000, 228, 228, 663, 663, 663, -1000, 9266, - -1000, -1000, -1000, 577, -1, 692, 567, 9463, -1000, -1000, - -1000, -1000, 283, 320, -1000, 283, -1000, -1000, -1000, -1000, - -1000, -1000, 745, 1055, 828, -1000, 6624, 6624, -1000, -1000, - 576, 5571, -1000, -1000, 8475, -1000, -1000, 3580, 5571, 4170, - -1000, -1000, -1000, 1373, 432, 1373, -120, 684, 276, -1000, - 6363, 391, -1000, -1000, -1000, -1000, -1000, -1000, 944, 8278, - 883, -1000, 663, -1000, -1000, 675, 8872, 8872, 909, -1000, - 283, -1000, -1000, -1000, -1000, -1000, -1000, 538, 538, -1000, - -1000, 423, 423, -1000, -1000, -1000, -1000, -1000, -1000, 494, - 493, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 186, 186, 67, 186, 186, 186, 186, 186, -45, -46, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, -1000, -1000, -1000, 554, 179, 202, -1000, + -1000, -1000, -1000, 881, -1000, 1311, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 296, 318, + -1000, 877, -1000, 876, 499, 961, 421, 145, 137, -30, + -1000, -1000, 470, 2, 2, -1000, -1000, -1000, 830, -1000, + -1000, -1000, 498, 498, -1000, -1000, -1000, -1000, 468, -1000, + -1000, -1000, 467, -1000, -1000, 840, -1000, 59, -1000, 9331, + 9331, 9331, -1000, 235, 190, 69, 43, 37, 36, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 9331, -1000, -1000, + 497, -1000, -1000, -1000, 491, 6416, -1000, 236, 950, -1000, + 6416, -1000, -1000, 802, 178, 309, -1000, -1000, 366, -1000, + -1000, 279, 279, 1032, -1000, -1000, -1000, -1000, 347, 6678, + 6678, 6678, 964, 1032, 1466, 1103, 812, 133, 324, 324, + 154, 154, 154, 154, 154, 504, 504, -1000, -1000, -1000, + 535, -1000, -1000, -1000, 535, 5621, 654, -1000, -1000, 6944, + 123, 688, 122, -1000, -1000, 535, 579, 579, 294, 386, + 579, 5621, 313, -1000, 6416, 535, -1000, 579, 535, 579, + 579, -1000, -1000, 9331, -1000, -1000, -1000, -1000, 689, -1000, + 842, 639, 647, -1000, -1000, 5886, 535, 610, 120, 942, + 9133, 6416, 4511, 915, 279, -1000, -1000, -1000, -181, -195, + -1000, -1000, 535, 9529, 9529, -1000, 490, -1000, 421, 186, + 186, -1000, 828, 463, 459, 453, 489, 486, 186, 186, + 431, 485, 573, 427, 424, 417, 458, 484, 717, 456, + 378, 368, 9727, 58, -1000, 554, -1000, 875, 179, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 736, -1000, + -1000, -1000, -1000, -1000, -1000, -94, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 629, -1000, -1000, + 219, 606, -1000, 587, 651, 581, -1000, 186, 186, 688, + 688, 688, -1000, 9331, -1000, -1000, -1000, 571, 1, 733, + 569, 9529, -1000, -1000, -1000, -1000, 279, 331, -1000, 279, + -1000, -1000, -1000, -1000, -1000, -1000, 964, 1032, 1426, -1000, + 6678, 6678, -1000, -1000, 579, 5621, -1000, -1000, 8536, -1000, + -1000, 3623, 5621, 4215, -1000, -1000, -1000, 649, 465, 649, + -120, 684, 198, -1000, 6416, 382, -1000, -1000, -1000, -1000, + -1000, -1000, 950, 8338, 874, -1000, 688, -1000, -1000, 696, + 8935, 8935, 915, -1000, 279, -1000, -1000, -1000, -1000, -1000, + -1000, 535, 535, -1000, -1000, 421, 421, -1000, -1000, -1000, + -1000, -1000, -1000, 483, 482, -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, 688, -1000, 923, 687, 61, 560, 376, -1000, - -1000, -1000, -1000, -1000, 475, -1000, 383, -1000, 351, 553, - 246, 8872, 8872, 8872, -1000, -1000, -1000, 803, -1000, -1000, - -1000, -1000, -1000, 6624, 1055, 1055, -1000, -1000, -1000, -1000, - 130, 538, -1000, 538, 665, 665, -1000, 665, 686, -1000, - 665, 24, 665, 23, 538, 538, 663, -116, -1000, 283, - 6363, 942, 646, 681, -1000, -1000, -1000, 875, 7090, 7287, - 950, -1000, 663, -1000, 705, 124, -1000, -1000, 663, -153, - -1000, -1000, -1000, -1000, 8872, -1000, -1000, -1000, -1000, 8872, - 666, 61, -1000, 610, -1000, 548, 544, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 566, -1000, 665, 566, 566, 556, - 1055, 3285, -1000, -1000, -1000, 113, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 6624, 538, 433, 283, 940, 911, - 8278, 8278, 8278, 8278, -1000, 771, 770, -1000, 748, 742, - 775, 9266, -1000, 564, 7090, 145, -1000, 8081, -1000, -1000, - 9069, 644, 538, 8872, -151, -1000, 350, 551, 547, 8872, - 664, -1000, -1000, -1000, -1000, 8872, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 156, -1000, -1000, -1000, 6363, 6363, 681, - 661, 600, -1000, -1000, -1000, -1000, 750, -1000, 749, -1000, - -1000, -1000, -1000, -1000, 84, 79, 75, -1000, 621, -1000, - -1000, 543, -1000, 539, -1000, -1000, -1000, 537, 8872, 157, - -1000, 102, 381, 538, 89, -127, 283, 532, 6363, 6363, - -1000, -1000, 663, 663, 663, -151, -1000, 792, 101, 101, - -1000, 535, 841, -1000, -1000, -1000, 228, 387, 904, 841, - -1000, -1000, 896, 841, -1000, -1000, 785, -123, -135, 283, - 283, 8872, 8872, 8872, -1000, 194, -1000, 228, -1000, 346, - 893, 101, -1000, -1000, 228, 228, 344, -1000, -1000, -1000, - -1000, 531, -1000, 779, -1000, 530, -1000, 530, 530, 663, - 326, -1000, 525, 101, 553, 553, -1000, -1000, -125, -1000, - 8872, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -128, -1000, - -148, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 732, -1000, 926, 730, + 58, 554, 405, -1000, -1000, -1000, -1000, -1000, 480, -1000, + 399, -1000, 377, 531, 216, 8935, 8935, 8935, -1000, -1000, + -1000, 826, -1000, -1000, -1000, -1000, -1000, 6678, 1032, 1032, + -1000, -1000, -1000, -1000, 116, 535, -1000, 535, 695, 695, + -1000, 695, 729, -1000, 695, 20, 695, 19, 535, 535, + 688, -116, -1000, 279, 6416, 948, 650, 779, -1000, -1000, + -1000, 867, 7145, 7343, 960, -1000, 688, -1000, 709, 110, + -1000, -1000, 688, -152, -1000, -1000, -1000, -1000, 8935, -1000, + -1000, -1000, -1000, 8935, 727, 58, -1000, 623, -1000, 582, + 539, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 566, -1000, + 695, 566, 566, 520, 1032, 3327, -1000, -1000, -1000, 98, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 6678, 535, + 477, 279, 945, 917, 8338, 8338, 8338, 8338, -1000, 789, + 775, -1000, 767, 763, 808, 9331, -1000, 563, 7145, 130, + -1000, 8140, -1000, -1000, 9133, 647, 535, 8935, -149, -1000, + 371, 561, 553, 8935, 694, -1000, -1000, -1000, -1000, 8935, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 349, -1000, -1000, + -1000, 6416, 6416, 779, 690, 605, -1000, -1000, -1000, -1000, + 773, -1000, 769, -1000, -1000, -1000, -1000, -1000, 79, 78, + 72, -1000, 641, -1000, -1000, 542, -1000, 517, -1000, -1000, + -1000, 538, 8935, 176, -1000, 111, 370, 535, 77, -133, + 279, 634, 6416, 6416, -1000, -1000, 688, 688, 688, -149, + -1000, 814, 105, 105, -1000, 534, 855, -1000, -1000, -1000, + 186, 476, 927, 855, -1000, -1000, 903, 855, -1000, -1000, + 801, -125, -145, 279, 279, 8935, 8935, 8935, -1000, 150, + -1000, 186, -1000, 350, 901, 105, -1000, -1000, 186, 186, + 358, -1000, -1000, -1000, -1000, 503, -1000, 796, -1000, 516, + -1000, 516, 516, 688, 315, -1000, 469, 105, 531, 531, + -1000, -1000, -130, -1000, 8935, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -143, -1000, -146, -1000, } - var yyPgo = [...]int{ - 0, 12, 11, 1253, 1252, 1251, 25, 1248, 1247, 1244, - 1243, 1242, 1240, 1239, 36, 805, 1236, 1235, 1234, 1233, - 1232, 1231, 1228, 1227, 1226, 1225, 1224, 1221, 1220, 1205, - 1204, 281, 1203, 1202, 1201, 41, 1197, 73, 1196, 85, - 1191, 1187, 1186, 43, 232, 39, 33, 28, 1185, 30, - 19, 52, 1181, 1180, 10, 1177, 42, 1176, 1175, 54, - 78, 1171, 1170, 45, 1156, 1155, 1154, 2, 22, 1153, - 60, 1152, 1151, 76, 209, 1149, 1148, 1147, 1145, 1144, - 1143, 53, 6, 13, 8, 26, 1140, 46, 20, 1139, - 50, 1136, 1135, 1133, 1128, 44, 1122, 72, 1120, 32, - 67, 1116, 49, 21, 48, 1115, 1114, 70, 88, 77, - 71, 1103, 65, 1102, 1098, 158, 1092, 1090, 1089, 800, - 1088, 371, 414, 1084, 57, 1083, 35, 0, 16, 17, - 29, 1081, 51, 1093, 31, 9, 1079, 1077, 1455, 27, - 79, 24, 1076, 1074, 1073, 1072, 1071, 1070, 1067, 229, - 1066, 1065, 1064, 1060, 1059, 1058, 1057, 1056, 1055, 1054, - 1052, 1051, 1050, 1049, 1047, 1039, 1038, 1037, 1035, 1034, - 1030, 1029, 1028, 1027, 1026, 1025, 1024, 1023, 40, 1022, - 1021, 1019, 15, 58, 34, 56, 1018, 1015, 1014, 74, - 14, 1013, 1008, 1007, 1006, 63, 69, 1005, 75, 47, - 55, 1004, 1003, 999, 62, 7, 23, 998, 18, 996, - 994, 4, 5, 993, 992, 991, 988, 986, 985, 983, - 1, 981, 979, 61, 978, 977, 59, 3, 975, 974, - 973, 971, 89, 119, 968, 125, -} + 0, 22, 23, 1282, 1277, 1275, 25, 1274, 1273, 1269, + 1268, 1266, 1261, 1260, 42, 819, 1259, 1256, 1255, 1252, + 1251, 1250, 1248, 1247, 1246, 1245, 1244, 1243, 1242, 1241, + 1239, 179, 1237, 1236, 1235, 40, 1232, 79, 1231, 85, + 1230, 1229, 1228, 39, 75, 44, 33, 204, 1227, 29, + 19, 17, 1226, 1225, 15, 1224, 53, 1222, 1221, 57, + 83, 1219, 1218, 37, 1205, 1204, 1203, 6, 28, 1202, + 61, 1199, 1198, 77, 1033, 1189, 1185, 1183, 1182, 1181, + 1180, 48, 11, 26, 1, 16, 1179, 69, 12, 1178, + 56, 1177, 1176, 1175, 1174, 32, 1172, 76, 1171, 52, + 71, 1170, 49, 14, 45, 1169, 1168, 67, 88, 82, + 90, 1167, 72, 1166, 1164, 163, 1163, 1162, 1161, 816, + 1155, 394, 404, 1153, 58, 1151, 35, 0, 4, 18, + 34, 1134, 54, 1120, 36, 13, 1132, 1130, 1470, 30, + 87, 31, 1128, 1126, 1125, 1122, 1114, 1110, 1105, 55, + 1103, 1101, 1099, 1098, 1094, 1089, 1087, 1085, 1082, 1080, + 1066, 1064, 1061, 1059, 1058, 1057, 1055, 1054, 1053, 1051, + 1050, 1049, 1048, 1045, 1043, 1042, 1041, 1040, 20, 1039, + 1038, 1037, 21, 60, 24, 65, 1036, 1035, 1034, 78, + 27, 1029, 1028, 1027, 1026, 59, 41, 1025, 74, 47, + 46, 1024, 1023, 1022, 73, 10, 8, 1020, 9, 1017, + 1011, 5, 7, 1009, 1008, 1007, 999, 998, 992, 986, + 2, 984, 983, 62, 980, 978, 63, 3, 977, 976, + 975, 974, 50, 84, 973, 129, +} var yyR1 = [...]int{ + 0, 230, 231, 231, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 15, 16, 16, 17, @@ -1977,41 +1986,41 @@ var yyR1 = [...]int{ 64, 64, 7, 26, 8, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 42, 42, - 62, 62, 62, 59, 59, 60, 60, 61, 61, 58, - 58, 63, 63, 63, 30, 28, 29, 29, 29, 29, - 234, 31, 32, 32, 33, 33, 33, 39, 39, 39, - 37, 37, 38, 38, 45, 45, 44, 44, 46, 46, - 46, 46, 131, 131, 131, 130, 130, 48, 48, 49, - 49, 50, 50, 51, 51, 51, 65, 52, 52, 52, - 52, 137, 137, 136, 136, 136, 135, 135, 53, 53, - 53, 53, 54, 54, 54, 54, 55, 55, 57, 57, - 56, 56, 66, 66, 66, 66, 67, 67, 68, 68, - 47, 47, 47, 47, 47, 47, 47, 120, 120, 70, - 70, 69, 69, 69, 69, 69, 69, 69, 69, 69, - 69, 80, 80, 80, 80, 80, 80, 71, 71, 71, - 71, 71, 71, 71, 43, 43, 81, 81, 81, 87, - 82, 82, 74, 74, 74, 74, 74, 74, 74, 74, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 42, 42, 62, 62, 62, 59, 59, 60, 60, 61, + 61, 58, 58, 63, 63, 63, 30, 28, 29, 29, + 29, 29, 234, 31, 32, 32, 33, 33, 33, 39, + 39, 39, 37, 37, 38, 38, 45, 45, 44, 44, + 46, 46, 46, 46, 131, 131, 131, 130, 130, 48, + 48, 49, 49, 50, 50, 51, 51, 51, 65, 52, + 52, 52, 52, 137, 137, 136, 136, 136, 135, 135, + 53, 53, 53, 53, 54, 54, 54, 54, 55, 55, + 57, 57, 56, 56, 66, 66, 66, 66, 67, 67, + 68, 68, 47, 47, 47, 47, 47, 47, 47, 120, + 120, 70, 70, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 80, 80, 80, 80, 80, 80, 71, + 71, 71, 71, 71, 71, 71, 43, 43, 81, 81, + 81, 87, 82, 82, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 78, 78, 78, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 77, 77, 77, 77, 77, 77, - 77, 77, 235, 235, 79, 79, 79, 79, 40, 40, - 40, 40, 40, 139, 139, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 91, 91, - 41, 41, 89, 89, 90, 92, 92, 88, 88, 88, - 73, 73, 73, 73, 73, 73, 73, 75, 75, 75, - 93, 93, 94, 94, 95, 95, 96, 96, 97, 98, - 98, 98, 99, 99, 99, 99, 100, 100, 100, 72, - 72, 72, 72, 72, 72, 101, 101, 101, 101, 102, - 102, 83, 83, 85, 85, 84, 86, 103, 103, 104, - 105, 105, 108, 108, 107, 107, 107, 107, 107, 116, - 116, 115, 115, 115, 106, 106, 109, 109, 113, 113, - 112, 114, 114, 114, 114, 111, 111, 110, 110, 140, - 140, 140, 118, 118, 121, 121, 122, 122, 119, 119, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 124, 124, 124, 125, 125, 218, 218, 128, 128, 129, - 129, 133, 133, 134, 134, 126, 126, 126, 126, 126, + 74, 74, 74, 74, 78, 78, 78, 76, 76, 76, + 76, 76, 76, 76, 76, 76, 77, 77, 77, 77, + 77, 77, 77, 77, 235, 235, 79, 79, 79, 79, + 40, 40, 40, 40, 40, 139, 139, 141, 141, 141, + 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, + 91, 91, 41, 41, 89, 89, 90, 92, 92, 88, + 88, 88, 73, 73, 73, 73, 73, 73, 73, 75, + 75, 75, 93, 93, 94, 94, 95, 95, 96, 96, + 97, 98, 98, 98, 99, 99, 99, 99, 100, 100, + 100, 72, 72, 72, 72, 72, 72, 101, 101, 101, + 101, 102, 102, 83, 83, 85, 85, 84, 86, 103, + 103, 104, 105, 105, 108, 108, 107, 107, 107, 107, + 107, 116, 116, 115, 115, 115, 106, 106, 109, 109, + 113, 113, 112, 114, 114, 114, 114, 111, 111, 110, + 110, 140, 140, 140, 118, 118, 121, 121, 122, 122, + 119, 119, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 124, 124, 124, 125, 125, 218, 218, 128, + 128, 129, 129, 133, 133, 134, 134, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, @@ -2023,7 +2032,7 @@ var yyR1 = [...]int{ 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, + 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, @@ -2031,10 +2040,10 @@ var yyR1 = [...]int{ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 232, 233, 138, + 127, 127, 232, 233, 138, } - var yyR2 = [...]int{ + 0, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 6, 7, 10, 1, 3, 1, @@ -2070,40 +2079,41 @@ var yyR2 = [...]int{ 1, 3, 3, 3, 2, 2, 3, 4, 2, 3, 2, 2, 4, 4, 3, 6, 3, 3, 4, 4, 4, 6, 5, 5, 3, 3, 5, 6, 7, 3, - 3, 3, 5, 3, 3, 3, 3, 3, 0, 3, - 1, 1, 1, 0, 2, 1, 1, 0, 1, 1, - 1, 0, 2, 2, 4, 2, 2, 2, 2, 2, - 0, 2, 0, 2, 1, 2, 2, 0, 1, 1, - 0, 1, 0, 1, 0, 1, 1, 3, 1, 2, - 3, 5, 0, 1, 2, 1, 1, 0, 2, 1, - 3, 1, 1, 1, 3, 3, 3, 3, 5, 5, - 3, 0, 1, 0, 1, 2, 1, 1, 1, 2, - 2, 1, 2, 3, 2, 3, 2, 2, 2, 1, - 1, 3, 0, 5, 5, 5, 1, 3, 0, 2, - 1, 3, 3, 2, 3, 1, 2, 0, 3, 1, - 1, 3, 3, 4, 4, 5, 3, 4, 5, 6, - 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, - 1, 1, 1, 1, 0, 2, 1, 1, 1, 3, - 1, 3, 1, 1, 1, 1, 1, 3, 3, 3, + 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, + 0, 3, 1, 1, 1, 0, 2, 1, 1, 0, + 1, 1, 1, 0, 2, 2, 4, 2, 2, 2, + 2, 2, 0, 2, 0, 2, 1, 2, 2, 0, + 1, 1, 0, 1, 0, 1, 0, 1, 1, 3, + 1, 2, 3, 5, 0, 1, 2, 1, 1, 0, + 2, 1, 3, 1, 1, 1, 3, 3, 3, 3, + 5, 5, 3, 0, 1, 0, 1, 2, 1, 1, + 1, 2, 2, 1, 2, 3, 2, 3, 2, 2, + 2, 1, 1, 3, 0, 5, 5, 5, 1, 3, + 0, 2, 1, 3, 3, 2, 3, 1, 2, 0, + 3, 1, 1, 3, 3, 4, 4, 5, 3, 4, + 5, 6, 2, 1, 2, 1, 2, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, + 1, 3, 1, 3, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 2, 2, 2, 2, 2, 3, 1, 1, - 1, 1, 4, 5, 6, 4, 4, 6, 6, 6, - 9, 7, 5, 4, 2, 2, 2, 2, 2, 2, - 2, 2, 0, 2, 4, 4, 4, 4, 0, 3, - 4, 7, 3, 1, 1, 2, 3, 3, 1, 2, - 2, 1, 2, 1, 2, 2, 1, 2, 0, 1, - 0, 2, 1, 2, 4, 0, 2, 1, 3, 5, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 0, 3, 0, 2, 0, 3, 1, 3, 2, 0, - 1, 1, 0, 2, 4, 4, 0, 2, 4, 2, - 1, 3, 5, 4, 6, 1, 3, 3, 5, 0, - 5, 1, 3, 1, 2, 3, 1, 1, 3, 3, - 1, 3, 1, 2, 3, 3, 3, 2, 3, 1, - 2, 1, 1, 1, 2, 3, 2, 2, 0, 2, - 3, 2, 2, 2, 1, 0, 2, 2, 2, 1, - 1, 1, 1, 1, 0, 2, 0, 3, 0, 1, + 3, 3, 3, 3, 2, 2, 2, 2, 2, 3, + 1, 1, 1, 1, 4, 5, 6, 4, 4, 6, + 6, 6, 9, 7, 5, 4, 2, 2, 2, 2, + 2, 2, 2, 2, 0, 2, 4, 4, 4, 4, + 0, 3, 4, 7, 3, 1, 1, 2, 3, 3, + 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, + 0, 1, 0, 2, 1, 2, 4, 0, 2, 1, + 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 0, 3, 0, 2, 0, 3, 1, 3, + 2, 0, 1, 1, 0, 2, 4, 4, 0, 2, + 4, 2, 1, 3, 5, 4, 6, 1, 3, 3, + 5, 0, 5, 1, 3, 1, 2, 3, 1, 1, + 3, 3, 1, 3, 1, 2, 3, 3, 3, 2, + 3, 1, 2, 1, 1, 1, 2, 3, 2, 2, + 0, 2, 3, 2, 2, 2, 1, 0, 2, 2, + 2, 1, 1, 1, 1, 1, 0, 2, 0, 3, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 1, 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, @@ -2123,186 +2133,185 @@ 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, 1, 1, 1, 1, 1, 1, - 1, 1, 0, + 1, 1, 1, 1, 0, } - var yyChk = [...]int{ + -1000, -230, -13, -14, -18, -19, -20, -21, -22, -23, -24, -7, -26, -27, -30, -28, -8, -9, -10, -11, -12, -29, -15, -16, 6, -34, 8, 9, 42, -25, - 123, 124, 125, 146, 127, 139, 45, 62, 264, 141, - 271, 274, 275, 278, 277, 292, 38, 140, 144, 145, - -232, 7, 248, 65, -231, 300, -95, 14, -33, 5, - -31, -234, -31, -31, -31, -31, -200, 65, 240, -218, - 22, 29, 130, 31, -119, 134, 130, 131, 240, 130, - 130, 234, 123, 229, 266, -61, -62, 268, 269, 236, - 130, 270, 232, 267, 231, 68, 44, 131, 26, 24, - 130, -133, 68, -127, 254, 19, 201, 147, 166, 255, - 297, 77, 200, 203, 204, 142, 162, 206, 205, 198, - 156, 40, 196, 180, 272, 259, 238, 195, 157, 22, - 181, 185, 279, 24, 208, 179, 25, 26, 256, 47, - 183, 209, 51, 199, 210, 187, 186, 188, 169, 17, - 211, 212, 182, 184, 258, 144, 213, 50, 192, 273, - 275, 236, 197, 171, 160, 161, 146, 260, 132, 163, - 292, 293, 295, 294, 296, 298, 299, -138, -138, 71, - 258, -138, 276, -138, -138, 293, 295, 294, 296, 297, - 299, 264, -138, -138, -138, -138, -14, -99, 16, 15, - -17, -15, -232, 6, 33, 34, -39, 52, 53, -32, - -119, -56, -133, 10, -105, -106, -108, 276, -140, -107, - 280, 281, 279, -129, -116, 282, -128, -126, 170, 167, - 68, -127, 83, 35, 37, 190, 86, 153, 118, 175, - 15, 87, 164, 117, 237, 202, 249, 123, 60, 241, - 242, 239, 240, 229, 158, 41, 9, 38, 140, 34, - 111, 125, 90, 91, 266, 143, 36, 141, 80, 18, - 63, 10, 44, 12, 13, 135, 134, 102, 131, 58, - 7, 151, 152, 119, 39, 99, 54, 32, 56, 100, - 16, 243, 244, 43, 178, 174, 253, 177, 150, 173, - 113, 61, 48, 84, 78, 159, 81, 64, 145, 82, - 14, 59, 269, 137, 268, 155, 101, 126, 248, 57, - 6, 252, 42, 139, 149, 55, 130, 230, 176, 148, - 172, 89, 133, 79, 270, 5, 31, 193, 8, 62, - 136, 245, 246, 247, 46, 168, 165, 267, 257, 88, - 11, 194, -229, 279, 273, 265, 261, -201, -196, -132, - 68, -127, -122, 135, 131, 131, 131, -122, 130, -121, - 135, 68, -121, -56, -56, 233, 130, 240, -138, -138, - 230, -58, 237, 238, -60, 10, 102, -138, -138, -138, - 236, -138, -138, -138, -138, -138, -56, -138, 71, -138, - -84, -232, -84, -138, -56, -138, -138, 298, 277, 278, - -233, 67, -100, 18, 43, -47, -69, 84, -74, 41, - 36, -73, -70, -88, -86, -87, 118, 107, 108, 115, - 85, 119, -78, -76, -77, -79, 70, 69, 71, 72, - 73, 74, 78, 79, 80, -128, -133, -84, -232, 56, - 57, 249, 250, 253, 251, 87, 46, 239, 247, 246, - 245, 243, 244, 241, 242, 135, 240, 113, 248, 68, - -127, -96, -97, -47, -95, -14, -31, 48, -37, 34, - 76, -57, 39, -56, 42, 120, -56, 66, -109, -112, - -110, 283, 285, -107, 276, 92, -115, -128, 70, 41, - -115, 42, 15, 15, 67, 66, -142, -145, -147, -146, - -148, -143, -144, 164, 165, 118, 168, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 42, 142, 160, - 161, 162, 163, 181, 182, 183, 184, 185, 186, 187, - 188, 147, 166, 255, 148, 149, 150, 151, 152, 153, - 155, 156, 157, 158, 159, -133, 84, 68, 68, 68, - -56, -56, -64, -56, 36, 64, -133, -42, 10, -56, - -133, -59, -60, -60, -56, -59, -138, -138, -138, -82, - -47, -138, -124, 133, 35, -138, -138, -138, 8, 102, - 83, 82, 99, 66, 17, -47, -71, 102, 84, 100, - 101, 86, 104, 103, 114, 107, 108, 109, 110, 111, - 112, 113, 105, 106, 117, 92, 93, 94, 95, 96, - 97, 98, -120, -232, -87, -232, 121, 122, -74, -74, - -74, -74, -74, -74, -232, 120, -14, -232, -232, -232, - -232, -232, -232, -232, -91, -47, -232, -235, -232, -235, - -235, -235, -235, -235, -235, -235, -232, -232, -232, -232, - 66, -98, 37, 38, -99, -233, -39, -75, -128, 71, - 74, -38, 55, -72, 42, 46, -14, -232, -56, -103, - -104, -88, -128, -133, -134, -133, -126, 167, 170, -68, - 11, -108, -140, -111, 66, -113, 66, 284, 286, 287, - -109, 64, 81, -47, -179, 117, -232, 263, 23, -202, - -203, -204, -157, -153, -155, -156, -158, -159, -160, -161, - -162, -163, -164, -165, -166, -167, -168, -169, -170, -171, - -172, -173, -174, -175, -176, -177, 77, 272, -185, 190, - 201, 45, 202, 203, 204, 131, 206, 207, 208, 25, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 41, - -196, -197, -198, -5, -4, 131, 32, 29, 22, 21, - -221, -222, -223, -191, -150, -192, -193, -194, -151, -36, - -152, -180, -181, 78, 84, 41, 190, 137, 32, 31, - 77, 64, 117, 200, 197, -187, 193, -149, 65, -149, - -149, -149, -149, -178, 167, -178, -178, -178, 65, 65, - -149, -149, -149, -189, 65, -189, -189, -190, 65, -190, - -224, -225, -226, -185, 36, 64, 64, 64, -123, 126, - 272, 249, 128, 125, 129, 124, 190, 167, 77, 41, - 14, 260, 68, 66, -56, -99, 235, -138, -138, -63, - 100, 11, -133, -56, -59, -138, 66, -233, -56, 50, - -47, -47, -80, 78, 84, 79, 80, -47, -47, -74, - -81, -84, -87, 75, 102, 100, 101, 86, -74, -74, - -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, - -74, -74, -74, -139, 68, 70, 68, -73, -73, -128, - -45, 34, -44, -46, 109, -47, -133, -129, -134, -126, - -233, -14, -44, -44, -47, -47, -44, -37, -89, -90, - 88, -128, -233, -44, -45, -44, -44, -97, -100, -118, - 18, 10, 46, 46, -44, -102, 64, -103, -83, -85, - -84, -232, -14, -101, -128, -68, 66, 92, 120, -95, - -47, -110, -112, -114, 288, 285, 291, 68, -132, -232, - -232, -204, -184, 92, -184, 117, -183, 170, 167, -184, - -184, -184, -184, -184, 205, 205, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -184, -184, -6, - 68, -199, -198, 137, 31, 30, -223, 78, 70, 71, - 72, 78, -35, -70, -117, 239, 243, 244, 32, 32, - 70, 8, -182, 68, 70, 195, 196, 41, 41, 198, - 199, -188, 194, 71, -178, -178, 42, -195, 70, -195, - 71, 71, -226, 117, -183, -56, -56, -56, -138, -124, - -125, 131, 32, 92, 133, 138, 138, 138, -56, -138, - 70, 70, -47, -59, -68, -47, -138, 51, 78, 79, - 80, -81, -74, -74, -74, -43, 143, 83, -233, -233, - -44, 66, -131, -130, 35, -128, 70, 120, -232, 120, - -233, -233, -233, 66, 136, 35, -233, -44, -92, -90, - 90, -47, -233, -233, -233, -233, -233, -56, -48, 10, - 40, -102, 66, -233, -233, -233, 66, 120, -95, -104, - -47, -129, -99, 285, 289, 290, -233, -132, -132, 70, - -182, -184, -184, 42, 71, 71, 71, 70, 70, -184, - -184, 71, 70, 68, 71, 71, 71, 71, 41, 70, - 41, 196, 195, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 71, 41, 71, 41, 71, 41, - 68, -127, -2, -1, 136, -6, 32, -199, 65, -35, - 67, 68, 118, 67, 66, 67, 66, 67, 66, -184, - -184, -232, -232, -232, -56, -138, 68, 167, -200, 68, - -196, -63, -43, 83, -74, -74, -233, -46, -130, 109, - -134, -45, -129, -141, 118, 164, 142, 162, 158, 179, - 169, 192, 160, 193, -139, -141, 254, -95, 91, -47, - 89, -68, -49, -50, -51, -52, -65, -87, -232, -56, - 32, -85, 46, -14, -232, -128, -128, -99, -233, -233, - -182, -182, 70, 70, 65, -3, 23, 20, 28, 65, - -2, -6, 67, 71, 70, 71, 71, -220, 68, 41, - -186, 68, 118, 41, -206, -205, -128, -206, -206, 42, - -74, 120, -233, -233, -149, -149, -149, -190, -149, 152, - -149, 152, -233, -233, -232, -41, 252, -47, -93, 12, - 66, -53, -54, -55, 54, 58, 60, 55, 56, 57, - 61, -137, 35, -49, -232, -136, -135, 35, -133, 70, - 8, -83, -14, 120, -232, -154, 262, -206, -206, 65, - -2, 67, 67, 67, -233, 66, -149, -233, -233, 68, - 109, -178, 68, -74, -233, 70, -94, 13, 15, -50, - -51, -50, -51, 54, 54, 54, 59, 54, 59, 54, - -54, -133, -233, -66, 62, 134, 63, -135, -103, -233, - -128, -228, -227, 261, 71, 67, 67, -206, 65, -209, - -205, -207, -210, -40, 102, 257, -47, -82, 64, 64, - 54, 54, 131, 131, 131, 66, -233, 68, -211, -211, - 67, -206, -208, -216, -212, -214, 25, 77, 136, -208, - -213, -212, 257, -208, -212, -233, 255, 61, 258, -47, - -47, -232, -232, -232, -227, 46, -217, 25, -1, 77, - 257, -211, 67, -215, 43, 19, -184, 70, -219, 23, - 20, 27, 51, 256, 259, -67, -128, -67, -67, 102, - -184, 70, 27, -211, -184, -184, 71, 68, 51, -233, - 66, -233, -233, -84, 71, 68, -220, -220, 257, -128, - 258, 259, + 123, 124, 125, 146, 127, 139, 45, 62, 265, 141, + 272, 275, 276, 279, 278, 293, 38, 140, 144, 145, + -232, 7, 249, 65, -231, 301, -95, 14, -33, 5, + -31, -234, -31, -31, -31, -31, -200, 65, 241, -218, + 22, 29, 130, 31, -119, 134, 130, 131, 241, 130, + 130, 235, 123, 230, 267, -61, -62, 269, 270, 237, + 130, 271, 233, 268, 232, 229, 170, 68, 44, 131, + 26, 24, 130, -133, 68, -127, 255, 19, 201, 147, + 166, 256, 298, 77, 200, 203, 204, 142, 162, 206, + 205, 198, 156, 40, 196, 180, 273, 260, 239, 195, + 157, 22, 181, 185, 280, 24, 208, 179, 25, 26, + 257, 47, 183, 209, 51, 199, 210, 187, 186, 188, + 169, 17, 211, 212, 182, 184, 259, 144, 213, 50, + 192, 274, 276, 237, 197, 171, 160, 161, 146, 261, + 132, 163, 293, 294, 296, 295, 297, 299, 300, -138, + -138, 71, 259, -138, 277, -138, -138, 294, 296, 295, + 297, 298, 300, 265, -138, -138, -138, -138, -14, -99, + 16, 15, -17, -15, -232, 6, 33, 34, -39, 52, + 53, -32, -119, -56, -133, 10, -105, -106, -108, 277, + -140, -107, 281, 282, 280, -129, -116, 283, -128, -126, + 170, 167, 68, -127, 83, 35, 37, 190, 86, 153, + 118, 175, 15, 87, 164, 117, 238, 202, 250, 123, + 60, 242, 243, 240, 241, 230, 158, 41, 9, 38, + 140, 34, 111, 125, 90, 91, 267, 143, 36, 141, + 80, 18, 63, 10, 44, 12, 13, 135, 134, 102, + 131, 58, 7, 151, 152, 119, 39, 99, 54, 32, + 56, 100, 16, 244, 245, 43, 178, 174, 254, 177, + 150, 173, 113, 61, 48, 84, 78, 159, 81, 64, + 145, 82, 14, 59, 270, 137, 269, 155, 101, 126, + 249, 57, 6, 253, 42, 139, 149, 55, 130, 231, + 176, 148, 172, 89, 133, 79, 271, 5, 31, 193, + 8, 62, 136, 246, 247, 248, 46, 168, 165, 268, + 258, 88, 11, 194, -229, 280, 274, 266, 262, -201, + -196, -132, 68, -127, -122, 135, 131, 131, 131, -122, + 130, -121, 135, 68, -121, -56, -56, 234, 130, 241, + -138, -138, 231, -58, 238, 239, -60, 10, 102, -138, + -138, -138, 237, -138, -138, -138, -138, -138, -138, -138, + -56, -138, 71, -138, -84, -232, -84, -138, -56, -138, + -138, 299, 278, 279, -233, 67, -100, 18, 43, -47, + -69, 84, -74, 41, 36, -73, -70, -88, -86, -87, + 118, 107, 108, 115, 85, 119, -78, -76, -77, -79, + 70, 69, 71, 72, 73, 74, 78, 79, 80, -128, + -133, -84, -232, 56, 57, 250, 251, 254, 252, 87, + 46, 240, 248, 247, 246, 244, 245, 242, 243, 135, + 241, 113, 249, 68, -127, -96, -97, -47, -95, -14, + -31, 48, -37, 34, 76, -57, 39, -56, 42, 120, + -56, 66, -109, -112, -110, 284, 286, -107, 277, 92, + -115, -128, 70, 41, -115, 42, 15, 15, 67, 66, + -142, -145, -147, -146, -148, -143, -144, 164, 165, 118, + 168, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 42, 142, 160, 161, 162, 163, 181, 182, 183, + 184, 185, 186, 187, 188, 147, 166, 256, 148, 149, + 150, 151, 152, 153, 155, 156, 157, 158, 159, -133, + 84, 68, 68, 68, -56, -56, -64, -56, 36, 64, + -133, -42, 10, -56, -133, -59, -60, -60, -56, -59, + -138, -138, -138, -82, -47, -138, -124, 133, 35, -138, + -138, -138, 8, 102, 83, 82, 99, 66, 17, -47, + -71, 102, 84, 100, 101, 86, 104, 103, 114, 107, + 108, 109, 110, 111, 112, 113, 105, 106, 117, 92, + 93, 94, 95, 96, 97, 98, -120, -232, -87, -232, + 121, 122, -74, -74, -74, -74, -74, -74, -232, 120, + -14, -232, -232, -232, -232, -232, -232, -232, -91, -47, + -232, -235, -232, -235, -235, -235, -235, -235, -235, -235, + -232, -232, -232, -232, 66, -98, 37, 38, -99, -233, + -39, -75, -128, 71, 74, -38, 55, -72, 42, 46, + -14, -232, -56, -103, -104, -88, -128, -133, -134, -133, + -126, 167, 170, -68, 11, -108, -140, -111, 66, -113, + 66, 285, 287, 288, -109, 64, 81, -47, -179, 117, + -232, 264, 23, -202, -203, -204, -157, -153, -155, -156, + -158, -159, -160, -161, -162, -163, -164, -165, -166, -167, + -168, -169, -170, -171, -172, -173, -174, -175, -176, -177, + 77, 273, -185, 190, 201, 45, 202, 203, 204, 131, + 206, 207, 208, 25, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 41, -196, -197, -198, -5, -4, 131, + 32, 29, 22, 21, -221, -222, -223, -191, -150, -192, + -193, -194, -151, -36, -152, -180, -181, 78, 84, 41, + 190, 137, 32, 31, 77, 64, 117, 200, 197, -187, + 193, -149, 65, -149, -149, -149, -149, -178, 167, -178, + -178, -178, 65, 65, -149, -149, -149, -189, 65, -189, + -189, -190, 65, -190, -224, -225, -226, -185, 36, 64, + 64, 64, -123, 126, 273, 250, 128, 125, 129, 124, + 190, 167, 77, 41, 14, 261, 68, 66, -56, -99, + 236, -138, -138, -63, 100, 11, -133, -56, -59, -138, + 66, -233, -56, 50, -47, -47, -80, 78, 84, 79, + 80, -47, -47, -74, -81, -84, -87, 75, 102, 100, + 101, 86, -74, -74, -74, -74, -74, -74, -74, -74, + -74, -74, -74, -74, -74, -74, -74, -139, 68, 70, + 68, -73, -73, -128, -45, 34, -44, -46, 109, -47, + -133, -129, -134, -126, -233, -14, -44, -44, -47, -47, + -44, -37, -89, -90, 88, -128, -233, -44, -45, -44, + -44, -97, -100, -118, 18, 10, 46, 46, -44, -102, + 64, -103, -83, -85, -84, -232, -14, -101, -128, -68, + 66, 92, 120, -95, -47, -110, -112, -114, 289, 286, + 292, 68, -132, -232, -232, -204, -184, 92, -184, 117, + -183, 170, 167, -184, -184, -184, -184, -184, 205, 205, + -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, + -184, -184, -184, -6, 68, -199, -198, 137, 31, 30, + -223, 78, 70, 71, 72, 78, -35, -70, -117, 240, + 244, 245, 32, 32, 70, 8, -182, 68, 70, 195, + 196, 41, 41, 198, 199, -188, 194, 71, -178, -178, + 42, -195, 70, -195, 71, 71, -226, 117, -183, -56, + -56, -56, -138, -124, -125, 131, 32, 92, 133, 138, + 138, 138, -56, -138, 70, 70, -47, -59, -68, -47, + -138, 51, 78, 79, 80, -81, -74, -74, -74, -43, + 143, 83, -233, -233, -44, 66, -131, -130, 35, -128, + 70, 120, -232, 120, -233, -233, -233, 66, 136, 35, + -233, -44, -92, -90, 90, -47, -233, -233, -233, -233, + -233, -56, -48, 10, 40, -102, 66, -233, -233, -233, + 66, 120, -95, -104, -47, -129, -99, 286, 290, 291, + -233, -132, -132, 70, -182, -184, -184, 42, 71, 71, + 71, 70, 70, -184, -184, 71, 70, 68, 71, 71, + 71, 71, 41, 70, 41, 196, 195, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 71, 41, + 71, 41, 71, 41, 68, -127, -2, -1, 136, -6, + 32, -199, 65, -35, 67, 68, 118, 67, 66, 67, + 66, 67, 66, -184, -184, -232, -232, -232, -56, -138, + 68, 167, -200, 68, -196, -63, -43, 83, -74, -74, + -233, -46, -130, 109, -134, -45, -129, -141, 118, 164, + 142, 162, 158, 179, 169, 192, 160, 193, -139, -141, + 255, -95, 91, -47, 89, -68, -49, -50, -51, -52, + -65, -87, -232, -56, 32, -85, 46, -14, -232, -128, + -128, -99, -233, -233, -182, -182, 70, 70, 65, -3, + 23, 20, 28, 65, -2, -6, 67, 71, 70, 71, + 71, -220, 68, 41, -186, 68, 118, 41, -206, -205, + -128, -206, -206, 42, -74, 120, -233, -233, -149, -149, + -149, -190, -149, 152, -149, 152, -233, -233, -232, -41, + 253, -47, -93, 12, 66, -53, -54, -55, 54, 58, + 60, 55, 56, 57, 61, -137, 35, -49, -232, -136, + -135, 35, -133, 70, 8, -83, -14, 120, -232, -154, + 263, -206, -206, 65, -2, 67, 67, 67, -233, 66, + -149, -233, -233, 68, 109, -178, 68, -74, -233, 70, + -94, 13, 15, -50, -51, -50, -51, 54, 54, 54, + 59, 54, 59, 54, -54, -133, -233, -66, 62, 134, + 63, -135, -103, -233, -128, -228, -227, 262, 71, 67, + 67, -206, 65, -209, -205, -207, -210, -40, 102, 258, + -47, -82, 64, 64, 54, 54, 131, 131, 131, 66, + -233, 68, -211, -211, 67, -206, -208, -216, -212, -214, + 25, 77, 136, -208, -213, -212, 258, -208, -212, -233, + 256, 61, 259, -47, -47, -232, -232, -232, -227, 46, + -217, 25, -1, 77, 258, -211, 67, -215, 43, 19, + -184, 70, -219, 23, 20, 27, 51, 257, 260, -67, + -128, -67, -67, 102, -184, 70, 27, -211, -184, -184, + 71, 68, 51, -233, 66, -233, -233, -84, 71, 68, + -220, -220, 258, -128, 259, 260, } - var yyDef = [...]int{ + 0, -2, 2, -2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 594, 0, 380, 380, 380, 380, 380, 0, - 685, 668, 0, 0, 0, 367, 0, 0, 892, 892, - 0, 892, 0, 892, 892, 0, 892, 892, 892, 892, - 0, 33, 34, 890, 1, 3, 602, 0, 0, 384, - 387, 382, 668, 0, 0, 0, 49, 0, 666, 0, - 0, 0, 666, 686, 0, 669, 664, 0, 664, 0, - 0, 0, 0, 892, 892, 0, 0, 892, 892, 892, - 0, 892, 892, 892, 892, 892, 368, 360, 361, 362, - 0, 375, 691, 692, 817, 818, 819, 820, 821, 822, + 21, 22, 596, 0, 382, 382, 382, 382, 382, 0, + 687, 670, 0, 0, 0, 369, 0, 0, 894, 894, + 0, 894, 0, 894, 894, 0, 894, 894, 894, 894, + 0, 33, 34, 892, 1, 3, 604, 0, 0, 386, + 389, 384, 670, 0, 0, 0, 49, 0, 668, 0, + 0, 0, 668, 688, 0, 671, 666, 0, 666, 0, + 0, 0, 0, 894, 894, 0, 0, 894, 894, 894, + 0, 894, 894, 894, 894, 894, 894, 894, 370, 362, + 363, 364, 0, 377, 693, 694, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, - 883, 884, 885, 886, 887, 888, 889, 324, 325, 892, - 0, 328, 892, 330, 331, 0, 0, 892, 0, 892, - 892, 0, 376, 377, 378, 379, 27, 606, 0, 0, - 594, 29, 0, 380, 385, 386, 390, 388, 389, 381, - 0, 0, 440, 0, 37, 38, 630, 0, 0, 632, - 659, 660, -2, 0, 0, 0, 689, 690, -2, 706, - 687, 688, 695, 696, 697, 698, 699, 700, 701, 702, - 703, 704, 705, 708, 709, 710, 711, 712, 713, 714, + 883, 884, 885, 886, 887, 888, 889, 890, 891, 324, + 325, 894, 0, 328, 894, 330, 331, 0, 0, 894, + 0, 894, 894, 0, 378, 379, 380, 381, 27, 608, + 0, 0, 596, 29, 0, 382, 387, 388, 392, 390, + 391, 383, 0, 0, 442, 0, 37, 38, 632, 0, + 0, 634, 661, 662, -2, 0, 0, 0, 691, 692, + -2, 708, 689, 690, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, @@ -2313,127 +2322,127 @@ var yyDef = [...]int{ 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, - 815, 816, 44, 50, 51, 0, 0, 0, 165, 0, - 169, 170, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 322, 323, 358, 0, 0, 344, 345, - 363, 0, 369, 370, 0, 365, 366, 349, 350, 351, - 363, 353, 354, 355, 356, 357, 892, 326, 892, 329, - 892, 0, 892, 334, 680, 336, 337, 892, 892, 892, - 28, 891, 23, 0, 0, 603, 450, 0, 455, 457, - 0, 492, 493, 494, 495, 496, 0, 0, 0, 0, - 0, 0, 518, 519, 520, 521, 580, 581, 582, 583, - 584, 585, 586, 459, 460, 577, 0, 626, 0, 0, - 0, 0, 0, 0, 0, 568, 0, 542, 542, 542, - 542, 542, 542, 542, 542, 0, 0, 0, 0, -2, - -2, 595, 596, 599, 602, 27, 387, 0, 392, 391, - 383, 0, 0, 439, 0, 0, 448, 0, 644, 655, - 648, 0, 0, 633, 0, 0, 637, 641, 642, 643, - 266, 640, 0, 0, -2, 291, 175, 242, 172, 173, - 174, 235, 190, 235, 235, 235, 235, 262, 262, 262, - 262, 218, 219, 220, 221, 222, 0, 0, 205, 235, - 235, 235, 209, 225, 226, 227, 228, 229, 230, 231, - 232, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 237, 237, 237, 239, 239, -2, 0, 0, 0, 0, - 91, 0, 317, 320, 665, 0, 319, 602, 0, 892, - 892, 371, 0, 0, 363, 892, 374, 327, 332, 0, - 490, 333, 0, 681, 682, 338, 339, 340, 607, 0, - 0, 0, 0, 0, 0, 453, 0, 0, 0, 0, + 815, 816, 817, 818, 44, 50, 51, 0, 0, 0, + 165, 0, 169, 170, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 322, 323, 360, 0, 0, + 344, 345, 365, 0, 371, 372, 0, 367, 368, 349, + 350, 351, 365, 353, 354, 355, 356, 357, 358, 359, + 894, 326, 894, 329, 894, 0, 894, 334, 682, 336, + 337, 894, 894, 894, 28, 893, 23, 0, 0, 605, + 452, 0, 457, 459, 0, 494, 495, 496, 497, 498, + 0, 0, 0, 0, 0, 0, 520, 521, 522, 523, + 582, 583, 584, 585, 586, 587, 588, 461, 462, 579, + 0, 628, 0, 0, 0, 0, 0, 0, 0, 570, + 0, 544, 544, 544, 544, 544, 544, 544, 544, 0, + 0, 0, 0, -2, -2, 597, 598, 601, 604, 27, + 389, 0, 394, 393, 385, 0, 0, 441, 0, 0, + 450, 0, 646, 657, 650, 0, 0, 635, 0, 0, + 639, 643, 644, 645, 266, 642, 0, 0, -2, 291, + 175, 242, 172, 173, 174, 235, 190, 235, 235, 235, + 235, 262, 262, 262, 262, 218, 219, 220, 221, 222, + 0, 0, 205, 235, 235, 235, 209, 225, 226, 227, + 228, 229, 230, 231, 232, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 237, 237, 237, 239, 239, -2, + 0, 0, 0, 0, 91, 0, 317, 320, 667, 0, + 319, 604, 0, 894, 894, 373, 0, 0, 365, 894, + 376, 327, 332, 0, 492, 333, 0, 683, 684, 338, + 339, 340, 609, 0, 0, 0, 0, 0, 0, 455, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 479, + 480, 481, 482, 483, 484, 485, 458, 0, 472, 0, + 0, 0, 514, 515, 516, 517, 518, 0, 396, 0, + 27, 0, 0, 0, 0, 0, 0, 392, 0, 571, + 0, 536, 0, 537, 538, 539, 540, 541, 542, 543, + 0, 396, 0, 0, 0, 600, 602, 603, 608, 30, + 392, 0, 589, 0, 0, 0, 395, 621, 0, 0, + -2, 0, 440, 450, 629, 0, 579, 0, 443, 695, + 696, 708, 709, 596, 0, 633, 0, 648, 0, 649, + 0, 0, 659, 660, 647, 636, 637, 638, 640, 0, + 0, 0, 0, 92, -2, 95, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 84, 84, 0, 84, 84, 84, 84, 84, 0, 0, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 83, 166, 167, 283, 302, 0, 304, + 305, 300, -2, 292, 168, 176, 177, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 246, 0, 0, + 261, 0, 275, 277, 0, 0, 0, 0, 0, 244, + 243, 189, 0, 262, 262, 212, 213, 214, 0, 215, + 216, 217, 0, 0, 206, 207, 208, 200, 0, 201, + 202, 203, 0, 204, 45, -2, 78, 0, 669, 0, + 0, 0, 894, 682, 0, 679, 0, 677, 0, 672, + 673, 674, 675, 676, 678, 680, 681, 0, 318, 894, + 0, 342, 343, 346, 0, 0, 366, 365, 450, 352, + 0, 627, 894, 0, 453, 454, 456, 473, 0, 475, + 477, 606, 607, 463, 464, 488, 489, 490, 0, 0, + 0, 0, 486, 468, 0, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 513, 555, 556, + 0, 511, 512, 519, 0, 0, 397, 398, 400, 404, + 0, 580, 0, -2, 491, 27, 0, 0, 0, 0, + 0, 0, 577, 574, 0, 0, 545, 0, 0, 0, + 0, 599, 24, 0, 664, 665, 590, 591, 409, 31, + 0, 621, 611, 623, 625, 0, 27, 0, 617, 596, + 0, 0, 0, 604, 451, 658, 651, 652, 0, 0, + 656, 267, 0, 0, 0, 96, 0, 85, 0, 84, + 84, 86, 0, 0, 0, 0, 0, 0, 84, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 477, 478, 479, 480, 481, - 482, 483, 456, 0, 470, 0, 0, 0, 512, 513, - 514, 515, 516, 0, 394, 0, 27, 0, 0, 0, - 0, 0, 0, 390, 0, 569, 0, 534, 0, 535, - 536, 537, 538, 539, 540, 541, 0, 394, 0, 0, - 0, 598, 600, 601, 606, 30, 390, 0, 587, 0, - 0, 0, 393, 619, 0, 0, -2, 0, 438, 448, - 627, 0, 577, 0, 441, 693, 694, 706, 707, 594, - 0, 631, 0, 646, 0, 647, 0, 0, 657, 658, - 645, 634, 635, 636, 638, 0, 0, 0, 0, 92, - -2, 95, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 84, 84, 0, 84, - 84, 84, 84, 84, 0, 0, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 83, - 166, 167, 283, 302, 0, 304, 305, 300, -2, 292, - 168, 176, 177, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 246, 0, 0, 261, 0, 275, 277, - 0, 0, 0, 0, 0, 244, 243, 189, 0, 262, - 262, 212, 213, 214, 0, 215, 216, 217, 0, 0, - 206, 207, 208, 200, 0, 201, 202, 203, 0, 204, - 45, -2, 78, 0, 667, 0, 0, 0, 892, 680, - 0, 677, 0, 675, 0, 670, 671, 672, 673, 674, - 676, 678, 679, 0, 318, 892, 0, 342, 343, 346, - 0, 0, 364, 363, 448, 352, 0, 625, 892, 0, - 451, 452, 454, 471, 0, 473, 475, 604, 605, 461, - 462, 486, 487, 488, 0, 0, 0, 0, 484, 466, - 0, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 511, 553, 554, 0, 509, 510, 517, - 0, 0, 395, 396, 398, 402, 0, 578, 0, -2, - 489, 27, 0, 0, 0, 0, 0, 0, 575, 572, - 0, 0, 543, 0, 0, 0, 0, 597, 24, 0, - 662, 663, 588, 589, 407, 31, 0, 619, 609, 621, - 623, 0, 27, 0, 615, 594, 0, 0, 0, 602, - 449, 656, 649, 650, 0, 0, 654, 267, 0, 0, - 0, 96, 0, 85, 0, 84, 84, 86, 0, 0, - 0, 0, 0, 0, 84, 84, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 295, - 284, 283, 303, 0, 302, 293, 178, 247, 248, 249, - 250, 251, 252, 253, 255, 258, 259, 260, 274, 276, - 278, 0, 265, 160, 161, 268, 269, 270, 271, 272, - 273, 171, 245, 0, 210, 211, 0, 0, 233, 0, - 0, 0, 79, 84, 84, 0, 0, 0, 309, 0, - 892, 683, 684, 0, 0, 0, 0, 0, 321, 341, - 359, 372, 373, 371, 347, 491, 335, 608, 472, 474, - 476, 463, 484, 467, 0, 464, 0, 0, 458, 522, - 0, 0, 399, 403, 0, 405, 406, 0, 394, 0, - -2, 525, 526, 0, 0, 0, 0, 594, 0, 573, - 0, 0, 533, 544, 545, 546, 547, 25, 448, 0, - 0, 32, 0, 624, -2, 0, 0, 0, 602, 628, - 629, 578, 36, 651, 652, 653, 52, 0, 0, 162, - 163, 0, 0, 87, 121, 122, 159, 124, 125, 0, - 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 0, 296, 0, 0, 295, 283, 0, 254, - 236, 263, 264, 223, 0, 224, 0, 240, 0, 0, - 0, 0, 0, 0, 310, 311, 312, 0, 314, 315, - 316, 348, 465, 0, 485, 468, 523, 397, 404, 400, - 0, 0, 579, 0, 235, 235, 558, 235, 239, 561, - 235, 563, 235, 566, 0, 0, 0, 570, 532, 576, - 0, 590, 408, 409, 411, 412, 413, 421, 0, 423, - 0, 622, 0, -2, 0, 617, 616, 35, 0, 42, - 123, 164, 126, 127, 0, 294, 297, 298, 299, 0, - 0, 295, 256, 0, 234, 0, 0, 80, 57, 58, - 81, 88, 89, 90, 0, 306, 235, 0, 0, 0, - 469, 0, 524, 527, 555, 262, 559, 560, 562, 564, - 565, 567, 529, 528, 0, 0, 0, 574, 592, 0, - 0, 0, 0, 0, 428, 0, 0, 431, 0, 0, - 0, 0, 422, 0, 0, 442, 424, 0, 426, 427, - 0, 612, 27, 0, 0, 54, 0, 0, 0, 0, - 0, 257, 238, 241, 62, 0, 308, 66, 70, 313, - 401, 556, 557, 548, 531, 571, 26, 0, 0, 410, - 417, 0, 420, 429, 430, 432, 0, 434, 0, 436, - 437, 414, 415, 416, 0, 0, 0, 425, 620, -2, - 618, 0, 39, 0, 43, 289, 289, 0, 0, 72, - 307, 72, 72, 0, 0, 0, 593, 591, 0, 0, - 433, 435, 0, 0, 0, 0, 53, 0, 279, 280, - 289, 0, 46, 63, 64, 65, 84, 0, 0, 47, - 67, 68, 0, 48, 71, 530, 0, 0, 0, 418, - 419, 0, 0, 0, 40, 0, 290, 84, 286, 0, - 0, 281, 289, 73, 84, 84, 0, 61, 59, 55, - 56, 0, 549, 0, 552, 0, 446, 0, 0, 0, - 0, 287, 0, 282, 0, 0, 60, 69, 550, 443, - 0, 444, 445, 41, 285, 288, 74, 75, 0, 447, - 0, 551, + 0, 0, 0, 295, 284, 283, 303, 0, 302, 293, + 178, 247, 248, 249, 250, 251, 252, 253, 255, 258, + 259, 260, 274, 276, 278, 0, 265, 160, 161, 268, + 269, 270, 271, 272, 273, 171, 245, 0, 210, 211, + 0, 0, 233, 0, 0, 0, 79, 84, 84, 0, + 0, 0, 309, 0, 894, 685, 686, 0, 0, 0, + 0, 0, 321, 341, 361, 374, 375, 373, 347, 493, + 335, 610, 474, 476, 478, 465, 486, 469, 0, 466, + 0, 0, 460, 524, 0, 0, 401, 405, 0, 407, + 408, 0, 396, 0, -2, 527, 528, 0, 0, 0, + 0, 596, 0, 575, 0, 0, 535, 546, 547, 548, + 549, 25, 450, 0, 0, 32, 0, 626, -2, 0, + 0, 0, 604, 630, 631, 580, 36, 653, 654, 655, + 52, 0, 0, 162, 163, 0, 0, 87, 121, 122, + 159, 124, 125, 0, 0, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 0, 296, 0, 0, + 295, 283, 0, 254, 236, 263, 264, 223, 0, 224, + 0, 240, 0, 0, 0, 0, 0, 0, 310, 311, + 312, 0, 314, 315, 316, 348, 467, 0, 487, 470, + 525, 399, 406, 402, 0, 0, 581, 0, 235, 235, + 560, 235, 239, 563, 235, 565, 235, 568, 0, 0, + 0, 572, 534, 578, 0, 592, 410, 411, 413, 414, + 415, 423, 0, 425, 0, 624, 0, -2, 0, 619, + 618, 35, 0, 42, 123, 164, 126, 127, 0, 294, + 297, 298, 299, 0, 0, 295, 256, 0, 234, 0, + 0, 80, 57, 58, 81, 88, 89, 90, 0, 306, + 235, 0, 0, 0, 471, 0, 526, 529, 557, 262, + 561, 562, 564, 566, 567, 569, 531, 530, 0, 0, + 0, 576, 594, 0, 0, 0, 0, 0, 430, 0, + 0, 433, 0, 0, 0, 0, 424, 0, 0, 444, + 426, 0, 428, 429, 0, 614, 27, 0, 0, 54, + 0, 0, 0, 0, 0, 257, 238, 241, 62, 0, + 308, 66, 70, 313, 403, 558, 559, 550, 533, 573, + 26, 0, 0, 412, 419, 0, 422, 431, 432, 434, + 0, 436, 0, 438, 439, 416, 417, 418, 0, 0, + 0, 427, 622, -2, 620, 0, 39, 0, 43, 289, + 289, 0, 0, 72, 307, 72, 72, 0, 0, 0, + 595, 593, 0, 0, 435, 437, 0, 0, 0, 0, + 53, 0, 279, 280, 289, 0, 46, 63, 64, 65, + 84, 0, 0, 47, 67, 68, 0, 48, 71, 532, + 0, 0, 0, 420, 421, 0, 0, 0, 40, 0, + 290, 84, 286, 0, 0, 281, 289, 73, 84, 84, + 0, 61, 59, 55, 56, 0, 551, 0, 554, 0, + 448, 0, 0, 0, 0, 287, 0, 282, 0, 0, + 60, 69, 552, 445, 0, 446, 447, 41, 285, 288, + 74, 75, 0, 449, 0, 553, } - var yyTok1 = [...]int{ + 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 85, 3, 3, 3, 112, 104, 3, 65, 67, 109, 107, 66, 108, 120, 110, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 300, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 301, 93, 92, 94, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -2442,8 +2451,8 @@ var yyTok1 = [...]int{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 103, 3, 115, } - var yyTok2 = [...]int{ + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, @@ -2471,14 +2480,13 @@ var yyTok2 = [...]int{ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, } - var yyTok3 = [...]int{ 57600, 275, 57601, 276, 57602, 277, 57603, 278, 57604, 279, 57605, 280, 57606, 281, 57607, 282, 57608, 283, 57609, 284, 57610, 285, 57611, 286, 57612, 287, 57613, 288, 57614, 289, 57615, 290, 57616, 291, 57617, 292, 57618, 293, 57619, 294, 57620, 295, 57621, 296, 57622, 297, 57623, 298, 57624, 299, - 0, + 57625, 300, 0, } var yyErrorMessages = [...]struct { @@ -2490,6 +2498,7 @@ var yyErrorMessages = [...]struct { //line yaccpar:1 /* parser for yacc output */ + var ( yyDebug = 0 yyErrorVerbose = false @@ -2499,10 +2508,12 @@ type yyLexer interface { Lex(lval *yySymType) int Error(s string) } + type yyParser interface { Parse(yyLexer) int Lookahead() int } + type yyParserImpl struct { lval yySymType stack [yyInitialStackSize]yySymType @@ -2512,6 +2523,7 @@ type yyParserImpl struct { func (p *yyParserImpl) Lookahead() int { return p.char } + func yyNewParser() yyParser { return &yyParserImpl{} } @@ -2526,6 +2538,7 @@ func yyTokname(c int) string { } return __yyfmt__.Sprintf("tok-%v", c) } + func yyStatname(s int) string { if s >= 0 && s < len(yyStatenames) { if yyStatenames[s] != "" { @@ -2534,19 +2547,25 @@ func yyStatname(s int) string { } return __yyfmt__.Sprintf("state-%v", s) } + func yyErrorMessage(state, lookAhead int) string { const TOKSTART = 4 + if !yyErrorVerbose { return "syntax error" } + for _, e := range yyErrorMessages { if e.state == state && e.token == lookAhead { return "syntax error: " + e.msg } } + res := "syntax error: unexpected " + yyTokname(lookAhead) + // To match Bison, suggest at most four expected tokens. expected := make([]int, 0, 4) + // Look for shiftable tokens. base := yyPact[state] for tok := TOKSTART; tok-1 < len(yyToknames); tok++ { @@ -2557,11 +2576,13 @@ func yyErrorMessage(state, lookAhead int) string { expected = append(expected, tok) } } + if yyDef[state] == -2 { i := 0 for yyExca[i] != -1 || yyExca[i+1] != state { i += 2 } + // Look for tokens that we accept or reduce. for i += 2; yyExca[i] >= 0; i += 2 { tok := yyExca[i] @@ -2573,11 +2594,13 @@ func yyErrorMessage(state, lookAhead int) string { } expected = append(expected, tok) } + // If the default action is to accept or reduce, give up. if yyExca[i+1] != 0 { return res } } + for i, tok := range expected { if i == 0 { res += ", expecting " @@ -2588,6 +2611,7 @@ func yyErrorMessage(state, lookAhead int) string { } return res } + func yylex1(lex yyLexer, lval *yySymType) (char, token int) { token = 0 char = lex.Lex(lval) @@ -2612,6 +2636,7 @@ func yylex1(lex yyLexer, lval *yySymType) (char, token int) { goto out } } + out: if token == 0 { token = yyTok2[1] /* unknown char */ @@ -2621,15 +2646,18 @@ out: } return char, token } + func yyParse(yylex yyLexer) int { return yyNewParser().Parse(yylex) } + func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int { var yyn int var yyVAL yySymType var yyDollar []yySymType _ = yyDollar // silence set and not used yyS := yyrcvr.stack[:] + Nerrs := 0 /* number of errors */ Errflag := 0 /* error recovery flag */ yystate := 0 @@ -2643,15 +2671,19 @@ func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int { }() yyp := -1 goto yystack + ret0: return 0 + ret1: return 1 + yystack: /* put a state and value onto the stack */ if yyDebug >= 4 { __yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate)) } + yyp++ if yyp >= len(yyS) { nyys := make([]yySymType, len(yyS)*2) @@ -2660,6 +2692,7 @@ yystack: } yyS[yyp] = yyVAL yyS[yyp].yys = yystate + yynewstate: yyn = yyPact[yystate] if yyn <= yyFlag { @@ -2683,6 +2716,7 @@ yynewstate: } goto yystack } + yydefault: /* default state action */ yyn = yyDef[yystate] @@ -2690,6 +2724,7 @@ yydefault: if yyrcvr.char < 0 { yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) } + /* look through exception table */ xi := 0 for { @@ -2720,8 +2755,10 @@ yydefault: __yyfmt__.Printf(" saw %s\n", yyTokname(yytoken)) } fallthrough + case 1, 2: /* incompletely recovered error ... try again */ Errflag = 3 + /* find a state where "error" is a legal shift action */ for yyp >= 0 { yyn = yyPact[yyS[yyp].yys] + yyErrCode @@ -2731,6 +2768,7 @@ yydefault: goto yystack } } + /* the current p has no shift on "error", pop stack */ if yyDebug >= 2 { __yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys) @@ -2739,6 +2777,7 @@ yydefault: } /* there is no state on the stack with an error shift ... abort */ goto ret1 + case 3: /* no shift yet; clobber input char */ if yyDebug >= 2 { __yyfmt__.Printf("error recovery discards %s\n", yyTokname(yytoken)) @@ -2751,13 +2790,16 @@ yydefault: goto yynewstate /* try again in the same state */ } } + /* reduction by production yyn */ if yyDebug >= 2 { __yyfmt__.Printf("reduce %v in:\n\t%v\n", yyn, yyStatname(yystate)) } + yynt := yyn yypt := yyp _ = yypt // guard against "declared and not used" + yyp -= yyR2[yyn] // yyp is now the index of $0. Perform the default action. Iff the // reduced production is ε, $1 is possibly out of range. @@ -2767,10 +2809,12 @@ yydefault: yyS = nyys } yyVAL = yyS[yyp+1] + /* consult goto table to find next state */ yyn = yyR1[yyn] yyg := yyPgo[yyn] yyj := yyg + yyS[yyp].yys + 1 + if yyj >= yyLast { yystate = yyAct[yyg] } else { @@ -2784,29 +2828,29 @@ yydefault: case 1: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1014 +//line sql.y:1015 { setParseTree(yylex, yyDollar[1].statement) } case 2: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1020 +//line sql.y:1021 { } case 3: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1022 +//line sql.y:1023 { } case 4: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1026 +//line sql.y:1027 { yyVAL.statement = yyDollar[1].selStmt } case 23: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1050 +//line sql.y:1051 { sel := yyDollar[1].selStmt.(*Select) sel.OrderBy = yyDollar[2].orderBy @@ -2816,49 +2860,49 @@ yydefault: } case 24: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1058 +//line sql.y:1059 { yyVAL.selStmt = &Union{Type: yyDollar[2].str, Left: yyDollar[1].selStmt, Right: yyDollar[3].selStmt, OrderBy: yyDollar[4].orderBy, Limit: yyDollar[5].limit, Lock: yyDollar[6].str} } case 25: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:1062 +//line sql.y:1063 { yyVAL.selStmt = &Select{Comments: Comments(yyDollar[2].bytes2), Cache: yyDollar[3].str, SelectExprs: SelectExprs{Nextval{Expr: yyDollar[5].expr}}, From: TableExprs{&AliasedTableExpr{Expr: yyDollar[7].tableName}}} } case 26: yyDollar = yyS[yypt-10 : yypt+1] -//line sql.y:1069 +//line sql.y:1070 { yyVAL.selStmt = &Select{Comments: Comments(yyDollar[2].bytes2), Cache: yyDollar[3].str, Distinct: yyDollar[4].str, Hints: yyDollar[5].str, SelectExprs: yyDollar[6].selectExprs, From: yyDollar[7].tableExprs, Where: NewWhere(WhereStr, yyDollar[8].expr), GroupBy: GroupBy(yyDollar[9].exprs), Having: NewWhere(HavingStr, yyDollar[10].expr)} } case 27: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1075 +//line sql.y:1076 { yyVAL.selStmt = yyDollar[1].selStmt } case 28: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1079 +//line sql.y:1080 { yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} } case 29: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1085 +//line sql.y:1086 { yyVAL.selStmt = yyDollar[1].selStmt } case 30: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1089 +//line sql.y:1090 { yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} } case 31: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1095 +//line sql.y:1096 { // insert_data returns a *Insert pre-filled with Columns & Values ins := yyDollar[5].ins @@ -2871,7 +2915,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:1106 +//line sql.y:1107 { cols := make(Columns, 0, len(yyDollar[6].updateExprs)) vals := make(ValTuple, 0, len(yyDollar[7].updateExprs)) @@ -2883,67 +2927,67 @@ yydefault: } case 33: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1118 +//line sql.y:1119 { yyVAL.str = InsertStr } case 34: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1122 +//line sql.y:1123 { yyVAL.str = ReplaceStr } case 35: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:1128 +//line sql.y:1129 { yyVAL.statement = &Update{Comments: Comments(yyDollar[2].bytes2), Table: yyDollar[3].tableName, Exprs: yyDollar[5].updateExprs, Where: NewWhere(WhereStr, yyDollar[6].expr), OrderBy: yyDollar[7].orderBy, Limit: yyDollar[8].limit} } case 36: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:1134 +//line sql.y:1135 { yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), Table: yyDollar[4].tableName, Where: NewWhere(WhereStr, yyDollar[5].expr), OrderBy: yyDollar[6].orderBy, Limit: yyDollar[7].limit} } case 37: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1140 +//line sql.y:1141 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[3].setExprs} } case 38: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1144 +//line sql.y:1145 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[3].setExprs} } case 39: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1150 +//line sql.y:1151 { yyVAL.partitionDefinitions = []*PartitionDefinition{yyDollar[1].partitionDefinition} } case 40: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1154 +//line sql.y:1155 { yyVAL.partitionDefinitions = append(yyDollar[1].partitionDefinitions, yyDollar[3].partitionDefinition) } case 41: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1160 +//line sql.y:1161 { yyVAL.partitionDefinition = &PartitionDefinition{Backend: string(yyDollar[2].bytes), Row: yyDollar[5].valTuple} } case 42: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1166 +//line sql.y:1167 { yyVAL.optVal = nil } case 43: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1170 +//line sql.y:1171 { if string(yyDollar[2].bytes) == "0" { yylex.Error("Number of partitions must be a positive integer") @@ -2953,7 +2997,7 @@ yydefault: } case 44: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1180 +//line sql.y:1181 { yyDollar[1].ddl.Action = CreateTableStr yyDollar[1].ddl.TableSpec = yyDollar[2].tableSpec @@ -2962,7 +3006,7 @@ yydefault: } case 45: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1187 +//line sql.y:1188 { var ifnotexists bool if yyDollar[3].byt != 0 { @@ -2972,43 +3016,43 @@ yydefault: } case 46: yyDollar = yyS[yypt-11 : yypt+1] -//line sql.y:1195 +//line sql.y:1196 { yyVAL.statement = &DDL{Action: CreateIndexStr, IndexType: yyDollar[2].str, IndexName: string(yyDollar[4].bytes), Table: yyDollar[6].tableName, NewName: yyDollar[6].tableName, IndexOpts: NewIndexOptions(yyDollar[8].indexColumns, append(yyDollar[10].indexOptionList, yyDollar[11].indexOptionList...))} } case 47: yyDollar = yyS[yypt-11 : yypt+1] -//line sql.y:1199 +//line sql.y:1200 { yyVAL.statement = &DDL{Action: CreateIndexStr, IndexType: FullTextStr, IndexName: string(yyDollar[4].bytes), Table: yyDollar[6].tableName, NewName: yyDollar[6].tableName, IndexOpts: NewIndexOptions(yyDollar[8].indexColumns, append(yyDollar[10].indexOptionList, yyDollar[11].indexOptionList...))} } case 48: yyDollar = yyS[yypt-11 : yypt+1] -//line sql.y:1203 +//line sql.y:1204 { yyVAL.statement = &DDL{Action: CreateIndexStr, IndexType: SpatialStr, IndexName: string(yyDollar[4].bytes), Table: yyDollar[6].tableName, NewName: yyDollar[6].tableName, IndexOpts: NewIndexOptions(yyDollar[8].indexColumns, append(yyDollar[10].indexOptionList, yyDollar[11].indexOptionList...))} } case 49: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1209 +//line sql.y:1210 { yyVAL.partitionOption = &PartOptNormal{} } case 50: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1213 +//line sql.y:1214 { yyVAL.partitionOption = &PartOptGlobal{} } case 51: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1217 +//line sql.y:1218 { yyVAL.partitionOption = &PartOptSingle{} } case 52: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1221 +//line sql.y:1222 { yyVAL.partitionOption = &PartOptSingle{ BackendName: yyDollar[4].colIdent.String(), @@ -3016,7 +3060,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-9 : yypt+1] -//line sql.y:1227 +//line sql.y:1228 { yyVAL.partitionOption = &PartOptList{ Name: yyDollar[5].colIdent.String(), @@ -3025,7 +3069,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:1234 +//line sql.y:1235 { yyVAL.partitionOption = &PartOptHash{ Name: yyDollar[5].colIdent.String(), @@ -3034,31 +3078,31 @@ yydefault: } case 55: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1243 +//line sql.y:1244 { yyVAL.str = "hash" } case 56: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1247 +//line sql.y:1248 { yyVAL.str = "btree" } case 57: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1253 +//line sql.y:1254 { yyVAL.str = string(yyDollar[1].bytes) } case 58: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1257 +//line sql.y:1258 { yyVAL.str = "default" } case 59: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1264 +//line sql.y:1265 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionUsing, @@ -3067,7 +3111,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1273 +//line sql.y:1274 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionBlockSize, @@ -3076,7 +3120,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1280 +//line sql.y:1281 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionComment, @@ -3085,49 +3129,49 @@ yydefault: } case 62: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1288 +//line sql.y:1289 { yyVAL.indexOptionList = []*IndexOption{} } case 63: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1292 +//line sql.y:1293 { yyVAL.indexOptionList = append(yyDollar[1].indexOptionList, yyDollar[2].indexOption) } case 64: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1298 +//line sql.y:1299 { yyVAL.indexOption = yyDollar[1].indexOption } case 65: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1302 +//line sql.y:1303 { yyVAL.indexOption = yyDollar[1].indexOption } case 66: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1307 +//line sql.y:1308 { yyVAL.indexOptionList = []*IndexOption{} } case 67: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1311 +//line sql.y:1312 { yyVAL.indexOptionList = append(yyDollar[1].indexOptionList, yyDollar[2].indexOption) } case 68: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1317 +//line sql.y:1318 { yyVAL.indexOption = yyDollar[1].indexOption } case 69: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1321 +//line sql.y:1322 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionParser, @@ -3136,31 +3180,31 @@ yydefault: } case 70: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1329 +//line sql.y:1330 { yyVAL.indexOptionList = []*IndexOption{} } case 71: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1333 +//line sql.y:1334 { yyVAL.indexOptionList = append(yyDollar[1].indexOptionList, yyDollar[2].indexOption) } case 72: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1338 +//line sql.y:1339 { yyVAL.indexOptionList = []*IndexOption{} } case 73: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1342 +//line sql.y:1343 { yyVAL.indexOptionList = append(yyDollar[1].indexOptionList, yyDollar[2].indexOption) } case 74: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1348 +//line sql.y:1349 { if !CheckIndexLock(yyDollar[3].str) { yylex.Error("unknown lock type") @@ -3173,7 +3217,7 @@ yydefault: } case 75: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1359 +//line sql.y:1360 { if !CheckIndexAlgorithm(yyDollar[3].str) { yylex.Error("unknown algorithm type") @@ -3186,31 +3230,31 @@ yydefault: } case 76: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1371 +//line sql.y:1372 { yyVAL.databaseOptionListOpt.DBOptList = []*DatabaseOption{} } case 77: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1375 +//line sql.y:1376 { yyVAL.databaseOptionListOpt.DBOptList = yyDollar[1].databaseOptionList } case 78: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1381 +//line sql.y:1382 { yyVAL.databaseOptionList = append(yyVAL.databaseOptionList, yyDollar[1].databaseOption) } case 79: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1385 +//line sql.y:1386 { yyVAL.databaseOptionList = append(yyDollar[1].databaseOptionList, yyDollar[2].databaseOption) } case 80: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1391 +//line sql.y:1392 { yyVAL.databaseOption = &DatabaseOption{ CharsetOrCollate: string(yyDollar[2].bytes), @@ -3219,7 +3263,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1398 +//line sql.y:1399 { yyVAL.databaseOption = &DatabaseOption{ CharsetOrCollate: string(yyDollar[2].str), @@ -3228,57 +3272,57 @@ yydefault: } case 82: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1406 +//line sql.y:1407 { } case 83: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1408 +//line sql.y:1409 { } case 84: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1411 +//line sql.y:1412 { } case 85: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1413 +//line sql.y:1414 { } case 86: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1417 +//line sql.y:1418 { yyVAL.str = string(yyDollar[1].bytes) } case 87: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1421 +//line sql.y:1422 { yyVAL.str = "character set" } case 88: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1427 +//line sql.y:1428 { yyVAL.str = string(yyDollar[1].bytes) } case 89: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1431 +//line sql.y:1432 { yyVAL.str = string(yyDollar[1].bytes) } case 90: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1435 +//line sql.y:1436 { yyVAL.str = "default" } case 91: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1441 +//line sql.y:1442 { var ifnotexists bool if yyDollar[3].byt != 0 { @@ -3289,7 +3333,7 @@ yydefault: } case 92: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1452 +//line sql.y:1453 { yyVAL.tableSpec = yyDollar[2].tableSpec @@ -3371,31 +3415,31 @@ yydefault: } case 93: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1533 +//line sql.y:1534 { yyVAL.tableOptionListOpt.TblOptList = []*TableOption{} } case 94: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1537 +//line sql.y:1538 { yyVAL.tableOptionListOpt.TblOptList = yyDollar[1].tableOptionList } case 95: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1543 +//line sql.y:1544 { yyVAL.tableOptionList = append(yyVAL.tableOptionList, yyDollar[1].tableOption) } case 96: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1547 +//line sql.y:1548 { yyVAL.tableOptionList = append(yyDollar[1].tableOptionList, yyDollar[2].tableOption) } case 97: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1553 +//line sql.y:1554 { yyVAL.tableOption = &TableOption{ Type: TableOptionComment, @@ -3404,7 +3448,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1560 +//line sql.y:1561 { yyVAL.tableOption = &TableOption{ Type: TableOptionEngine, @@ -3413,7 +3457,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1567 +//line sql.y:1568 { yyVAL.tableOption = &TableOption{ Type: TableOptionCharset, @@ -3422,7 +3466,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1574 +//line sql.y:1575 { yyVAL.tableOption = &TableOption{ Type: TableOptionAutoInc, @@ -3431,7 +3475,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1581 +//line sql.y:1582 { yyVAL.tableOption = &TableOption{ Type: TableOptionAvgRowLength, @@ -3440,7 +3484,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1588 +//line sql.y:1589 { yyVAL.tableOption = &TableOption{ Type: TableOptionChecksum, @@ -3449,7 +3493,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1595 +//line sql.y:1596 { yyVAL.tableOption = &TableOption{ Type: TableOptionCollate, @@ -3458,7 +3502,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1602 +//line sql.y:1603 { yyVAL.tableOption = &TableOption{ Type: TableOptionCompression, @@ -3467,7 +3511,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1609 +//line sql.y:1610 { yyVAL.tableOption = &TableOption{ Type: TableOptionConnection, @@ -3476,7 +3520,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1616 +//line sql.y:1617 { yyVAL.tableOption = &TableOption{ Type: TableOptionDataDirectory, @@ -3485,7 +3529,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1623 +//line sql.y:1624 { yyVAL.tableOption = &TableOption{ Type: TableOptionIndexDirectory, @@ -3494,7 +3538,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1630 +//line sql.y:1631 { yyVAL.tableOption = &TableOption{ Type: TableOptionDelayKeyWrite, @@ -3503,7 +3547,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1637 +//line sql.y:1638 { yyVAL.tableOption = &TableOption{ Type: TableOptionEncryption, @@ -3512,7 +3556,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1644 +//line sql.y:1645 { yyVAL.tableOption = &TableOption{ Type: TableOptionInsertMethod, @@ -3521,7 +3565,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1651 +//line sql.y:1652 { yyVAL.tableOption = &TableOption{ Type: TableOptionKeyBlockSize, @@ -3530,7 +3574,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1658 +//line sql.y:1659 { yyVAL.tableOption = &TableOption{ Type: TableOptionMaxRows, @@ -3539,7 +3583,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1665 +//line sql.y:1666 { yyVAL.tableOption = &TableOption{ Type: TableOptionMinRows, @@ -3548,7 +3592,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1672 +//line sql.y:1673 { yyVAL.tableOption = &TableOption{ Type: TableOptionPackKeys, @@ -3557,7 +3601,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1679 +//line sql.y:1680 { yyVAL.tableOption = &TableOption{ Type: TableOptionPassword, @@ -3566,7 +3610,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1686 +//line sql.y:1687 { yyVAL.tableOption = &TableOption{ Type: TableOptionRowFormat, @@ -3575,7 +3619,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1693 +//line sql.y:1694 { yyVAL.tableOption = &TableOption{ Type: TableOptionStatsAutoRecalc, @@ -3584,7 +3628,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1700 +//line sql.y:1701 { yyVAL.tableOption = &TableOption{ Type: TableOptionStatsPersistent, @@ -3593,7 +3637,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1707 +//line sql.y:1708 { yyVAL.tableOption = &TableOption{ Type: TableOptionStatsSamplePages, @@ -3602,7 +3646,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1714 +//line sql.y:1715 { yyVAL.tableOption = &TableOption{ Type: TableOptionTableSpace, @@ -3611,24 +3655,24 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1723 +//line sql.y:1724 { } case 122: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1727 +//line sql.y:1728 { yyVAL.optVal = NewIntVal(yyDollar[3].bytes) } case 123: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1733 +//line sql.y:1734 { yyVAL.optVal = yyDollar[4].optVal } case 124: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1739 +//line sql.y:1740 { switch StrToLower(string(yyDollar[3].bytes)) { case "zlib", "lz4", "none": @@ -3641,31 +3685,31 @@ yydefault: } case 125: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1752 +//line sql.y:1753 { yyVAL.optVal = NewStrVal(yyDollar[3].bytes) } case 126: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1758 +//line sql.y:1759 { yyVAL.optVal = NewStrVal(yyDollar[4].bytes) } case 127: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1764 +//line sql.y:1765 { yyVAL.optVal = NewStrVal(yyDollar[4].bytes) } case 128: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1770 +//line sql.y:1771 { yyVAL.optVal = NewIntVal(yyDollar[3].bytes) } case 129: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1776 +//line sql.y:1777 { switch string(yyDollar[3].bytes) { case "Y", "y": @@ -3681,7 +3725,7 @@ yydefault: } case 130: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1792 +//line sql.y:1793 { switch StrToLower(string(yyDollar[3].bytes)) { case "no", "first", "last": @@ -3694,232 +3738,232 @@ yydefault: } case 131: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1805 +//line sql.y:1806 { yyVAL.optVal = NewIntVal(yyDollar[3].bytes) } case 132: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1811 +//line sql.y:1812 { yyVAL.optVal = NewIntVal(yyDollar[3].bytes) } case 133: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1817 +//line sql.y:1818 { yyVAL.optVal = NewIntVal(yyDollar[3].bytes) } case 134: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1823 +//line sql.y:1824 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 135: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1827 +//line sql.y:1828 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 136: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1833 +//line sql.y:1834 { yyVAL.optVal = NewStrVal(yyDollar[3].bytes) } case 137: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1841 +//line sql.y:1842 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 138: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1845 +//line sql.y:1846 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 139: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1849 +//line sql.y:1850 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 140: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1853 +//line sql.y:1854 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 141: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1857 +//line sql.y:1858 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 142: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1861 +//line sql.y:1862 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 143: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1865 +//line sql.y:1866 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 144: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1869 +//line sql.y:1870 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 145: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1873 +//line sql.y:1874 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 146: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1877 +//line sql.y:1878 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 147: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1881 +//line sql.y:1882 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 148: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1885 +//line sql.y:1886 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 149: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1889 +//line sql.y:1890 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 150: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1893 +//line sql.y:1894 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 151: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1899 +//line sql.y:1900 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 152: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1903 +//line sql.y:1904 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 153: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1909 +//line sql.y:1910 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 154: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1913 +//line sql.y:1914 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 155: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1920 +//line sql.y:1921 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 156: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1924 +//line sql.y:1925 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 157: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1930 +//line sql.y:1931 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 158: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1934 +//line sql.y:1935 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 159: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1940 +//line sql.y:1941 { yyVAL.optVal = NewIntVal(yyDollar[3].bytes) } case 160: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1946 +//line sql.y:1947 { // Normal str as an identify, without quote yyVAL.optVal = NewStrValWithoutQuote(yyDollar[1].bytes) } case 161: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1951 +//line sql.y:1952 { // Str with Quote, it will be parsed by Lex begin with quote \' or \" yyVAL.optVal = NewStrVal(yyDollar[1].bytes) } case 162: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1958 +//line sql.y:1959 { yyVAL.optVal = NewStrVal(yyDollar[3].bytes) } case 163: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1964 +//line sql.y:1965 { yyVAL.optVal = yyDollar[3].optVal } case 164: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1970 +//line sql.y:1971 { yyVAL.optVal = yyDollar[4].optVal } case 165: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1976 +//line sql.y:1977 { yyVAL.tableSpec = &TableSpec{} yyVAL.tableSpec.AddColumn(yyDollar[1].columnDefinition) } case 166: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1981 +//line sql.y:1982 { yyVAL.tableSpec.AddColumn(yyDollar[3].columnDefinition) } case 167: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1985 +//line sql.y:1986 { yyVAL.tableSpec.AddIndex(yyDollar[3].indexDefinition) } case 168: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1991 +//line sql.y:1992 { yyDollar[2].columnType.NotNull = yyDollar[3].columnOptionListOpt.GetColumnOption(ColumnOptionNotNull).NotNull yyDollar[2].columnType.Autoincrement = yyDollar[3].columnOptionListOpt.GetColumnOption(ColumnOptionAutoincrement).Autoincrement @@ -3935,19 +3979,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2007 +//line sql.y:2008 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 170: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2011 +//line sql.y:2012 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 171: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2017 +//line sql.y:2018 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].boolVal @@ -3955,31 +3999,31 @@ yydefault: } case 175: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2027 +//line sql.y:2028 { yyVAL.columnOptionListOpt.ColOptList = []*ColumnOption{} } case 176: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2031 +//line sql.y:2032 { yyVAL.columnOptionListOpt.ColOptList = yyDollar[1].columnOptionList } case 177: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2037 +//line sql.y:2038 { yyVAL.columnOptionList = append(yyVAL.columnOptionList, yyDollar[1].columnOption) } case 178: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2041 +//line sql.y:2042 { yyVAL.columnOptionList = append(yyDollar[1].columnOptionList, yyDollar[2].columnOption) } case 179: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2047 +//line sql.y:2048 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionNotNull, @@ -3988,7 +4032,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2054 +//line sql.y:2055 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionDefault, @@ -3997,7 +4041,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2061 +//line sql.y:2062 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionAutoincrement, @@ -4006,7 +4050,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2068 +//line sql.y:2069 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionKeyPrimaryOpt, @@ -4015,7 +4059,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2075 +//line sql.y:2076 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionKeyUniqueOpt, @@ -4024,7 +4068,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2082 +//line sql.y:2083 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionComment, @@ -4033,7 +4077,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2089 +//line sql.y:2090 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionOnUpdate, @@ -4042,7 +4086,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2096 +//line sql.y:2097 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionCollate, @@ -4051,7 +4095,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2103 +//line sql.y:2104 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionFormat, @@ -4060,7 +4104,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2110 +//line sql.y:2111 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionStorage, @@ -4069,74 +4113,74 @@ yydefault: } case 189: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2119 +//line sql.y:2120 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].optVal } case 190: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2124 +//line sql.y:2125 { yyVAL.columnType = yyDollar[1].columnType } case 191: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2130 +//line sql.y:2131 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 192: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2134 +//line sql.y:2135 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 193: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2138 +//line sql.y:2139 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 194: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2142 +//line sql.y:2143 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 195: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2146 +//line sql.y:2147 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 196: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2150 +//line sql.y:2151 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 197: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2154 +//line sql.y:2155 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 198: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2158 +//line sql.y:2159 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 199: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2162 +//line sql.y:2163 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 200: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2168 +//line sql.y:2169 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].lengthScaleOption.Length @@ -4144,7 +4188,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2174 +//line sql.y:2175 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].lengthScaleOption.Length @@ -4152,7 +4196,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2180 +//line sql.y:2181 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].lengthScaleOption.Length @@ -4160,7 +4204,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2186 +//line sql.y:2187 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].lengthScaleOption.Length @@ -4168,7 +4212,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2192 +//line sql.y:2193 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].lengthScaleOption.Length @@ -4176,206 +4220,206 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2200 +//line sql.y:2201 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 206: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2204 +//line sql.y:2205 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 207: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2208 +//line sql.y:2209 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 208: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2212 +//line sql.y:2213 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 209: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2216 +//line sql.y:2217 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 210: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2222 +//line sql.y:2223 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str} } case 211: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2226 +//line sql.y:2227 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str} } case 212: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2230 +//line sql.y:2231 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 213: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2234 +//line sql.y:2235 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 214: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2238 +//line sql.y:2239 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str} } case 215: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2242 +//line sql.y:2243 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str} } case 216: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2246 +//line sql.y:2247 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str} } case 217: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2250 +//line sql.y:2251 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str} } case 218: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2254 +//line sql.y:2255 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 219: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2258 +//line sql.y:2259 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 220: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2262 +//line sql.y:2263 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 221: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2266 +//line sql.y:2267 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 222: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2270 +//line sql.y:2271 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 223: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2274 +//line sql.y:2275 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs} } case 224: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2278 +//line sql.y:2279 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs} } case 225: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2284 +//line sql.y:2285 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 226: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2288 +//line sql.y:2289 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 227: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2292 +//line sql.y:2293 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 228: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2296 +//line sql.y:2297 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 229: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2300 +//line sql.y:2301 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 230: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2304 +//line sql.y:2305 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 231: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2308 +//line sql.y:2309 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 232: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2312 +//line sql.y:2313 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 233: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2318 +//line sql.y:2319 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, "'"+string(yyDollar[1].bytes)+"'") } case 234: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2323 +//line sql.y:2324 { yyVAL.strs = append(yyDollar[1].strs, "'"+string(yyDollar[3].bytes)+"'") } case 235: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2328 +//line sql.y:2329 { yyVAL.optVal = nil } case 236: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2332 +//line sql.y:2333 { yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } case 237: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2337 +//line sql.y:2338 { yyVAL.lengthScaleOption = LengthScaleOption{} } case 238: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2341 +//line sql.y:2342 { yyVAL.lengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), @@ -4384,13 +4428,13 @@ yydefault: } case 239: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2349 +//line sql.y:2350 { yyVAL.lengthScaleOption = LengthScaleOption{} } case 240: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2353 +//line sql.y:2354 { yyVAL.lengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), @@ -4398,7 +4442,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2359 +//line sql.y:2360 { yyVAL.lengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), @@ -4407,73 +4451,73 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2367 +//line sql.y:2368 { yyVAL.boolVal = BoolVal(false) } case 243: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2371 +//line sql.y:2372 { yyVAL.boolVal = BoolVal(true) } case 244: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2376 +//line sql.y:2377 { yyVAL.boolVal = BoolVal(false) } case 245: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2380 +//line sql.y:2381 { yyVAL.boolVal = BoolVal(true) } case 246: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2387 +//line sql.y:2388 { yyVAL.boolVal = BoolVal(false) } case 247: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2391 +//line sql.y:2392 { yyVAL.boolVal = BoolVal(true) } case 248: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2397 +//line sql.y:2398 { yyVAL.optVal = NewStrVal(yyDollar[2].bytes) } case 249: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2401 +//line sql.y:2402 { yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } case 250: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2405 +//line sql.y:2406 { yyVAL.optVal = NewFloatVal(yyDollar[2].bytes) } case 251: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2409 +//line sql.y:2410 { yyVAL.optVal = NewValArg(yyDollar[2].bytes) } case 252: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2413 +//line sql.y:2414 { yyVAL.optVal = NewStrValWithoutQuote([]byte(yyDollar[2].str)) } case 253: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2417 +//line sql.y:2418 { if yyDollar[2].boolVal { yyVAL.optVal = NewStrValWithoutQuote([]byte("true")) @@ -4483,109 +4527,109 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2427 +//line sql.y:2428 { yyVAL.str = yyDollar[3].str } case 255: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2433 +//line sql.y:2434 { yyVAL.str = string(yyDollar[1].bytes) } case 256: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2437 +//line sql.y:2438 { yyVAL.str = string(yyDollar[1].bytes) + "(" + ")" } case 257: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2441 +//line sql.y:2442 { yyVAL.str = string(yyDollar[1].bytes) + "(" + string(yyDollar[3].bytes) + ")" } case 258: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2449 +//line sql.y:2450 { yyVAL.bytes = yyDollar[1].bytes } case 259: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2453 +//line sql.y:2454 { yyVAL.bytes = yyDollar[1].bytes } case 260: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2457 +//line sql.y:2458 { yyVAL.bytes = yyDollar[1].bytes } case 261: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2464 +//line sql.y:2465 { yyVAL.boolVal = BoolVal(true) } case 262: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2469 +//line sql.y:2470 { yyVAL.str = "" } case 263: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2473 +//line sql.y:2474 { yyVAL.str = string(yyDollar[3].bytes) } case 264: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2477 +//line sql.y:2478 { yyVAL.str = string(yyDollar[3].bytes) } case 265: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2484 +//line sql.y:2485 { yyVAL.optVal = yyDollar[2].optVal } case 266: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2489 +//line sql.y:2490 { yyVAL.str = "" } case 267: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2493 +//line sql.y:2494 { yyVAL.str = string(yyDollar[2].bytes) } case 268: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2499 +//line sql.y:2500 { yyVAL.str = string(yyDollar[2].bytes) } case 269: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2503 +//line sql.y:2504 { yyVAL.str = string(yyDollar[2].bytes) } case 270: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2507 +//line sql.y:2508 { yyVAL.str = string(yyDollar[2].bytes) } case 271: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2513 +//line sql.y:2514 { // "default" is not in official doc: https://dev.mysql.com/doc/refman/5.7/en/create-table.html // but actually mysql support it, see: https://github.com/mysql/mysql-server/blob/5.7/sql/sql_yacc.yy#L6953 @@ -4593,25 +4637,25 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2519 +//line sql.y:2520 { yyVAL.str = string(yyDollar[2].bytes) } case 273: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2523 +//line sql.y:2524 { yyVAL.str = string(yyDollar[2].bytes) } case 274: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2529 +//line sql.y:2530 { yyVAL.colPrimaryKeyOpt = ColKeyPrimary } case 275: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2533 +//line sql.y:2534 { // KEY is normally a synonym for INDEX. The key attribute PRIMARY KEY // can also be specified as just KEY when given in a column definition. @@ -4620,25 +4664,25 @@ yydefault: } case 276: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2542 +//line sql.y:2543 { yyVAL.colUniqueKeyOpt = ColKeyUniqueKey } case 277: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2546 +//line sql.y:2547 { yyVAL.colUniqueKeyOpt = ColKeyUniqueKey } case 278: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2552 +//line sql.y:2553 { yyVAL.optVal = NewStrVal(yyDollar[2].bytes) } case 279: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:2558 +//line sql.y:2559 { // TODO(): in the future we'll support format out index_type, currently skip it. // If index_name is empty, becarful that the `name` result will be diffirent when doing format. @@ -4652,7 +4696,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:2570 +//line sql.y:2571 { typ := string(yyDollar[1].bytes) if yyDollar[3].str != "" { @@ -4668,7 +4712,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:2584 +//line sql.y:2585 { // TODO(): in the future we'll support format out index_type, currently skip it yyVAL.indexDefinition = &IndexDefinition{ @@ -4681,7 +4725,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-9 : yypt+1] -//line sql.y:2595 +//line sql.y:2596 { // TODO(): in the future we'll support format out index_type, currently skip it typ := string(yyDollar[2].bytes) @@ -4698,19 +4742,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2611 +//line sql.y:2612 { yyVAL.str = "" } case 284: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2615 +//line sql.y:2616 { yyVAL.str = string(yyDollar[1].bytes) } case 285: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2621 +//line sql.y:2622 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionBlockSize, @@ -4719,7 +4763,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2628 +//line sql.y:2629 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionUsing, @@ -4728,7 +4772,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2635 +//line sql.y:2636 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionComment, @@ -4737,7 +4781,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2642 +//line sql.y:2643 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionParser, @@ -4746,174 +4790,174 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2650 +//line sql.y:2651 { yyVAL.indexOptionList = []*IndexOption{} } case 290: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2654 +//line sql.y:2655 { yyVAL.indexOptionList = append(yyDollar[1].indexOptionList, yyDollar[2].indexOption) } case 291: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2660 +//line sql.y:2661 { } case 292: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2663 +//line sql.y:2664 { } case 293: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2666 +//line sql.y:2667 { } case 294: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2672 +//line sql.y:2673 { yyVAL.bytes = yyDollar[2].bytes } case 295: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2677 +//line sql.y:2678 { } case 296: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2680 +//line sql.y:2681 { yyVAL.bytes = yyDollar[1].bytes } case 297: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2686 +//line sql.y:2687 { yyVAL.bytes = yyDollar[1].bytes } case 298: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2690 +//line sql.y:2691 { yyVAL.bytes = yyDollar[1].bytes } case 299: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2694 +//line sql.y:2695 { yyVAL.bytes = yyDollar[1].bytes } case 300: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2700 +//line sql.y:2701 { yyVAL.bytes = yyDollar[1].bytes } case 301: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2704 +//line sql.y:2705 { yyVAL.bytes = yyDollar[1].bytes } case 302: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2709 +//line sql.y:2710 { // set empty yyVAL.str = "" } case 303: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2714 +//line sql.y:2715 { yyVAL.str = yyDollar[1].str } case 304: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2721 +//line sql.y:2722 { yyVAL.str = string(yyDollar[1].bytes) } case 305: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2725 +//line sql.y:2726 { yyVAL.str = string(yyDollar[1].bytes) } case 306: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2731 +//line sql.y:2732 { yyVAL.indexColumns = []*IndexColumn{yyDollar[1].indexColumn} } case 307: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2735 +//line sql.y:2736 { yyVAL.indexColumns = append(yyVAL.indexColumns, yyDollar[3].indexColumn) } case 308: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2741 +//line sql.y:2742 { yyVAL.indexColumn = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].optVal} } case 309: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2747 +//line sql.y:2748 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } case 310: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:2751 +//line sql.y:2752 { // Change this to a rename statement yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[4].tableName, NewName: yyDollar[7].tableName} } case 311: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:2756 +//line sql.y:2757 { // Rename an index can just be an alter yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } case 312: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:2761 +//line sql.y:2762 { yyVAL.statement = &DDL{Action: AlterEngineStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName, Engine: string(yyDollar[7].bytes)} } case 313: yyDollar = yyS[yypt-9 : yypt+1] -//line sql.y:2765 +//line sql.y:2766 { yyVAL.statement = &DDL{Action: AlterCharsetStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName, Charset: string(yyDollar[9].bytes)} } case 314: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:2769 +//line sql.y:2770 { yyVAL.statement = &DDL{Action: AlterAddColumnStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName, TableSpec: yyDollar[7].tableSpec} } case 315: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:2773 +//line sql.y:2774 { yyVAL.statement = &DDL{Action: AlterDropColumnStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName, DropColumnName: string(yyDollar[7].bytes)} } case 316: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:2777 +//line sql.y:2778 { yyVAL.statement = &DDL{Action: AlterModifyColumnStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName, ModifyColumnDef: yyDollar[7].columnDefinition} } case 317: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2783 +//line sql.y:2784 { var exists bool if yyDollar[3].byt != 0 { @@ -4923,14 +4967,14 @@ yydefault: } case 318: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2791 +//line sql.y:2792 { // Change this to an alter statement yyVAL.statement = &DDL{Action: DropIndexStr, IndexName: string(yyDollar[3].bytes), Table: yyDollar[5].tableName, NewName: yyDollar[5].tableName} } case 319: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2796 +//line sql.y:2797 { var exists bool if yyDollar[3].byt != 0 { @@ -4940,169 +4984,169 @@ yydefault: } case 320: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2806 +//line sql.y:2807 { yyVAL.tableNames = TableNames{yyDollar[1].tableName} } case 321: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2810 +//line sql.y:2811 { yyVAL.tableNames = append(yyVAL.tableNames, yyDollar[3].tableName) } case 322: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2816 +//line sql.y:2817 { yyVAL.statement = &DDL{Action: TruncateTableStr, Table: yyDollar[3].tableName, NewName: yyDollar[3].tableName} } case 323: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2822 +//line sql.y:2823 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName, NewName: yyDollar[3].tableName} } case 324: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2828 +//line sql.y:2829 { yyVAL.statement = &Xa{} } case 325: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2834 +//line sql.y:2835 { yyVAL.statement = &Explain{} } case 326: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2840 +//line sql.y:2841 { yyVAL.statement = &Kill{QueryID: &NumVal{raw: string(yyDollar[2].bytes)}} } case 327: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2844 +//line sql.y:2845 { yyVAL.statement = &Kill{QueryID: &NumVal{raw: string(yyDollar[3].bytes)}} } case 328: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2850 +//line sql.y:2851 { yyVAL.statement = &Transaction{Action: BeginTxnStr} } case 329: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2854 +//line sql.y:2855 { yyVAL.statement = &Transaction{Action: StartTxnStr} } case 330: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2858 +//line sql.y:2859 { yyVAL.statement = &Transaction{Action: RollbackTxnStr} } case 331: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2862 +//line sql.y:2863 { yyVAL.statement = &Transaction{Action: CommitTxnStr} } case 332: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2868 +//line sql.y:2869 { yyVAL.statement = &Radon{Action: AttachStr, Row: yyDollar[3].valTuple} } case 333: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2872 +//line sql.y:2873 { yyVAL.statement = &Radon{Action: DetachStr, Row: yyDollar[3].valTuple} } case 334: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2876 +//line sql.y:2877 { yyVAL.statement = &Radon{Action: AttachListStr} } case 335: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2880 +//line sql.y:2881 { yyVAL.statement = &Radon{Action: ReshardStr, Table: yyDollar[3].tableName, NewName: yyDollar[5].tableName} } case 336: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2884 +//line sql.y:2885 { yyVAL.statement = &Radon{Action: CleanupStr} } case 337: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2888 +//line sql.y:2889 { yyVAL.statement = &Radon{Action: RebalanceStr} } case 338: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2892 +//line sql.y:2893 { yyVAL.statement = &Radon{Action: XARecoverStr} } case 339: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2896 +//line sql.y:2897 { yyVAL.statement = &Radon{Action: XACommitStr} } case 340: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2900 +//line sql.y:2901 { yyVAL.statement = &Radon{Action: XARollbackStr} } case 341: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2906 +//line sql.y:2907 { yyVAL.statement = &Show{Type: ShowBinlogEventsStr, From: yyDollar[4].str, Limit: yyDollar[5].limit} } case 342: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2910 +//line sql.y:2911 { yyVAL.statement = &Show{Type: ShowCreateTableStr, Table: yyDollar[4].tableName} } case 343: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2914 +//line sql.y:2915 { yyVAL.statement = &Show{Type: ShowCreateDatabaseStr, Database: yyDollar[4].tableIdent.v} } case 344: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2918 +//line sql.y:2919 { yyVAL.statement = &Show{Type: ShowDatabasesStr} } case 345: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2922 +//line sql.y:2923 { yyVAL.statement = &Show{Type: ShowEnginesStr} } case 346: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2926 +//line sql.y:2927 { yyVAL.statement = &Show{Full: yyDollar[2].str, Type: ShowTablesStr, Database: yyDollar[4].str, Filter: yyDollar[5].showFilter} } case 347: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2930 +//line sql.y:2931 { if yyDollar[5].str != "" { yyDollar[4].tableName.Qualifier.v = yyDollar[5].str @@ -5115,7 +5159,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:2941 +//line sql.y:2942 { if yyDollar[6].str != "" { yyDollar[5].tableName.Qualifier.v = yyDollar[6].str @@ -5124,512 +5168,524 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2948 +//line sql.y:2949 { yyVAL.statement = &Show{Type: ShowProcesslistStr} } case 350: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2952 +//line sql.y:2953 { yyVAL.statement = &Show{Type: ShowQueryzStr} } case 351: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2956 +//line sql.y:2957 { yyVAL.statement = &Show{Type: ShowStatusStr} } case 352: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2960 +//line sql.y:2961 { yyVAL.statement = &Show{Type: ShowTableStatusStr, Database: yyDollar[4].str} } case 353: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2964 +//line sql.y:2965 { yyVAL.statement = &Show{Type: ShowTxnzStr} } case 354: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2968 +//line sql.y:2969 { yyVAL.statement = &Show{Type: ShowVariablesStr} } case 355: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2972 +//line sql.y:2973 { yyVAL.statement = &Show{Type: ShowVersionsStr} } case 356: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2976 +//line sql.y:2977 { yyVAL.statement = &Show{Type: ShowWarningsStr} } case 357: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2980 +//line sql.y:2981 { - yyVAL.statement = &Show{Type: ShowUnsupportedStr} + yyVAL.statement = &Show{Type: ShowCollationStr} } case 358: - yyDollar = yyS[yypt-0 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2985 { - yyVAL.str = "" + yyVAL.statement = &Show{Type: ShowCharsetStr} } case 359: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2989 { - yyVAL.str = string(yyDollar[3].bytes) + yyVAL.statement = &Show{Type: ShowUnsupportedStr} } case 360: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:2994 + { + yyVAL.str = "" + } + case 361: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:2998 + { + yyVAL.str = string(yyDollar[3].bytes) + } + case 362: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2995 +//line sql.y:3004 { yyVAL.str = string(yyDollar[1].bytes) } - case 361: + case 363: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2999 +//line sql.y:3008 { yyVAL.str = string(yyDollar[1].bytes) } - case 362: + case 364: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3003 +//line sql.y:3012 { yyVAL.str = string(yyDollar[1].bytes) } - case 363: + case 365: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3009 +//line sql.y:3018 { yyVAL.str = "" } - case 364: + case 366: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3013 +//line sql.y:3022 { yyVAL.str = yyDollar[2].tableIdent.v } - case 365: + case 367: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3019 +//line sql.y:3028 { yyVAL.str = string(yyDollar[1].bytes) } - case 366: + case 368: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3023 +//line sql.y:3032 { yyVAL.str = string(yyDollar[1].bytes) } - case 367: + case 369: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3029 +//line sql.y:3038 { yyVAL.str = "" } - case 368: + case 370: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3033 +//line sql.y:3042 { yyVAL.str = "full " } - case 369: + case 371: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3039 +//line sql.y:3048 { yyVAL.str = string(yyDollar[1].bytes) } - case 370: + case 372: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3043 +//line sql.y:3052 { yyVAL.str = string(yyDollar[1].bytes) } - case 371: + case 373: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3049 +//line sql.y:3058 { yyVAL.showFilter = nil } - case 372: + case 374: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3053 +//line sql.y:3062 { yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} } - case 373: + case 375: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3057 +//line sql.y:3066 { yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr} } - case 374: + case 376: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3063 +//line sql.y:3072 { yyVAL.statement = &Checksum{Table: yyDollar[3].tableName} } - case 375: + case 377: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3069 +//line sql.y:3078 { yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} } - case 376: + case 378: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3075 +//line sql.y:3084 { yyVAL.statement = &OtherRead{} } - case 377: + case 379: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3079 +//line sql.y:3088 { yyVAL.statement = &OtherRead{} } - case 378: + case 380: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3083 +//line sql.y:3092 { yyVAL.statement = &OtherAdmin{} } - case 379: + case 381: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3087 +//line sql.y:3096 { yyVAL.statement = &OtherAdmin{} } - case 380: + case 382: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3092 +//line sql.y:3101 { setAllowComments(yylex, true) } - case 381: + case 383: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3095 +//line sql.y:3104 { yyVAL.bytes2 = yyDollar[2].bytes2 setAllowComments(yylex, false) } - case 382: + case 384: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3101 +//line sql.y:3110 { yyVAL.bytes2 = nil } - case 383: + case 385: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3105 +//line sql.y:3114 { yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes) } - case 384: + case 386: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3111 +//line sql.y:3120 { yyVAL.str = UnionStr } - case 385: + case 387: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3115 +//line sql.y:3124 { yyVAL.str = UnionAllStr } - case 386: + case 388: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3119 +//line sql.y:3128 { yyVAL.str = UnionDistinctStr } - case 387: + case 389: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3124 +//line sql.y:3133 { yyVAL.str = "" } - case 388: + case 390: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3128 +//line sql.y:3137 { yyVAL.str = SQLNoCacheStr } - case 389: + case 391: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3132 +//line sql.y:3141 { yyVAL.str = SQLCacheStr } - case 390: + case 392: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3137 +//line sql.y:3146 { yyVAL.str = "" } - case 391: + case 393: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3141 +//line sql.y:3150 { yyVAL.str = DistinctStr } - case 392: + case 394: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3146 +//line sql.y:3155 { yyVAL.str = "" } - case 393: + case 395: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3150 +//line sql.y:3159 { yyVAL.str = StraightJoinHint } - case 394: + case 396: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3155 +//line sql.y:3164 { yyVAL.selectExprs = nil } - case 395: + case 397: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3159 +//line sql.y:3168 { yyVAL.selectExprs = yyDollar[1].selectExprs } - case 396: + case 398: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3165 +//line sql.y:3174 { yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr} } - case 397: + case 399: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3169 +//line sql.y:3178 { yyVAL.selectExprs = append(yyVAL.selectExprs, yyDollar[3].selectExpr) } - case 398: + case 400: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3175 +//line sql.y:3184 { yyVAL.selectExpr = &StarExpr{} } - case 399: + case 401: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3179 +//line sql.y:3188 { yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent} } - case 400: + case 402: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3183 +//line sql.y:3192 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } - case 401: + case 403: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3187 +//line sql.y:3196 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } - case 402: + case 404: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3192 +//line sql.y:3201 { yyVAL.colIdent = ColIdent{} } - case 403: + case 405: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3196 +//line sql.y:3205 { yyVAL.colIdent = yyDollar[1].colIdent } - case 404: + case 406: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3200 +//line sql.y:3209 { yyVAL.colIdent = yyDollar[2].colIdent } - case 406: + case 408: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3207 +//line sql.y:3216 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 407: + case 409: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3212 +//line sql.y:3221 { yyVAL.tableExprs = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } - case 408: + case 410: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3216 +//line sql.y:3225 { yyVAL.tableExprs = yyDollar[2].tableExprs } - case 409: + case 411: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3222 +//line sql.y:3231 { yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr} } - case 410: + case 412: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3226 +//line sql.y:3235 { yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr) } - case 413: + case 415: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3236 +//line sql.y:3245 { yyVAL.tableExpr = yyDollar[1].aliasedTableName } - case 414: + case 416: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3240 +//line sql.y:3249 { yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent} } - case 415: + case 417: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3244 +//line sql.y:3253 { yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} } - case 416: + case 418: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3250 +//line sql.y:3259 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} } - case 417: + case 419: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3263 +//line sql.y:3272 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} } - case 418: + case 420: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3267 +//line sql.y:3276 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, On: yyDollar[5].expr} } - case 419: + case 421: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3271 +//line sql.y:3280 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, On: yyDollar[5].expr} } - case 420: + case 422: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3275 +//line sql.y:3284 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} } - case 421: + case 423: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3280 +//line sql.y:3289 { yyVAL.empty = struct{}{} } - case 422: + case 424: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3284 +//line sql.y:3293 { yyVAL.empty = struct{}{} } - case 423: + case 425: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3289 +//line sql.y:3298 { yyVAL.tableIdent = NewTableIdent("") } - case 424: + case 426: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3293 +//line sql.y:3302 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 425: + case 427: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3297 +//line sql.y:3306 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 427: + case 429: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3304 +//line sql.y:3313 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 428: + case 430: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3310 +//line sql.y:3319 { yyVAL.str = JoinStr } - case 429: + case 431: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3314 +//line sql.y:3323 { yyVAL.str = JoinStr } - case 430: + case 432: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3318 +//line sql.y:3327 { yyVAL.str = JoinStr } - case 431: + case 433: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3322 +//line sql.y:3331 { yyVAL.str = StraightJoinStr } - case 432: + case 434: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3328 +//line sql.y:3337 { yyVAL.str = LeftJoinStr } - case 433: + case 435: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3332 +//line sql.y:3341 { yyVAL.str = LeftJoinStr } - case 434: + case 436: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3336 +//line sql.y:3345 { yyVAL.str = RightJoinStr } - case 435: + case 437: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3340 +//line sql.y:3349 { yyVAL.str = RightJoinStr } - case 436: + case 438: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3346 +//line sql.y:3355 { yyVAL.str = NaturalJoinStr } - case 437: + case 439: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3350 +//line sql.y:3359 { if yyDollar[2].str == LeftJoinStr { yyVAL.str = NaturalLeftJoinStr @@ -5637,459 +5693,459 @@ yydefault: yyVAL.str = NaturalRightJoinStr } } - case 438: + case 440: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3360 +//line sql.y:3369 { yyVAL.tableName = yyDollar[2].tableName } - case 439: + case 441: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3364 +//line sql.y:3373 { yyVAL.tableName = yyDollar[1].tableName } - case 440: + case 442: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3370 +//line sql.y:3379 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 441: + case 443: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3374 +//line sql.y:3383 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } - case 442: + case 444: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3379 +//line sql.y:3388 { yyVAL.indexHints = nil } - case 443: + case 445: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3383 +//line sql.y:3392 { yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].colIdents} } - case 444: + case 446: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3387 +//line sql.y:3396 { yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].colIdents} } - case 445: + case 447: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3391 +//line sql.y:3400 { yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].colIdents} } - case 446: + case 448: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3397 +//line sql.y:3406 { yyVAL.colIdents = []ColIdent{yyDollar[1].colIdent} } - case 447: + case 449: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3401 +//line sql.y:3410 { yyVAL.colIdents = append(yyDollar[1].colIdents, yyDollar[3].colIdent) } - case 448: + case 450: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3406 +//line sql.y:3415 { yyVAL.expr = nil } - case 449: + case 451: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3410 +//line sql.y:3419 { yyVAL.expr = yyDollar[2].expr } - case 450: + case 452: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3416 +//line sql.y:3425 { yyVAL.expr = yyDollar[1].expr } - case 451: + case 453: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3420 +//line sql.y:3429 { yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } - case 452: + case 454: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3424 +//line sql.y:3433 { yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } - case 453: + case 455: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3428 +//line sql.y:3437 { yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr} } - case 454: + case 456: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3432 +//line sql.y:3441 { yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr} } - case 455: + case 457: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3436 +//line sql.y:3445 { yyVAL.expr = yyDollar[1].expr } - case 456: + case 458: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3440 +//line sql.y:3449 { yyVAL.expr = &Default{ColName: yyDollar[2].str} } - case 457: + case 459: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3446 +//line sql.y:3455 { yyVAL.str = "" } - case 458: + case 460: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3450 +//line sql.y:3459 { yyVAL.str = string(yyDollar[2].bytes) } - case 459: + case 461: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3456 +//line sql.y:3465 { yyVAL.boolVal = BoolVal(true) } - case 460: + case 462: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3460 +//line sql.y:3469 { yyVAL.boolVal = BoolVal(false) } - case 461: + case 463: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3466 +//line sql.y:3475 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} } - case 462: + case 464: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3470 +//line sql.y:3479 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} } - case 463: + case 465: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3474 +//line sql.y:3483 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} } - case 464: + case 466: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3478 +//line sql.y:3487 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} } - case 465: + case 467: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3482 +//line sql.y:3491 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} } - case 466: + case 468: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3486 +//line sql.y:3495 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} } - case 467: + case 469: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3490 +//line sql.y:3499 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} } - case 468: + case 470: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3494 +//line sql.y:3503 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} } - case 469: + case 471: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:3498 +//line sql.y:3507 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} } - case 470: + case 472: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3502 +//line sql.y:3511 { yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} } - case 471: + case 473: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3508 +//line sql.y:3517 { yyVAL.str = IsNullStr } - case 472: + case 474: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3512 +//line sql.y:3521 { yyVAL.str = IsNotNullStr } - case 473: + case 475: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3516 +//line sql.y:3525 { yyVAL.str = IsTrueStr } - case 474: + case 476: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3520 +//line sql.y:3529 { yyVAL.str = IsNotTrueStr } - case 475: + case 477: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3524 +//line sql.y:3533 { yyVAL.str = IsFalseStr } - case 476: + case 478: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3528 +//line sql.y:3537 { yyVAL.str = IsNotFalseStr } - case 477: + case 479: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3534 +//line sql.y:3543 { yyVAL.str = EqualStr } - case 478: + case 480: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3538 +//line sql.y:3547 { yyVAL.str = LessThanStr } - case 479: + case 481: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3542 +//line sql.y:3551 { yyVAL.str = GreaterThanStr } - case 480: + case 482: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3546 +//line sql.y:3555 { yyVAL.str = LessEqualStr } - case 481: + case 483: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3550 +//line sql.y:3559 { yyVAL.str = GreaterEqualStr } - case 482: + case 484: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3554 +//line sql.y:3563 { yyVAL.str = NotEqualStr } - case 483: + case 485: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3558 +//line sql.y:3567 { yyVAL.str = NullSafeEqualStr } - case 484: + case 486: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3563 +//line sql.y:3572 { yyVAL.expr = nil } - case 485: + case 487: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3567 +//line sql.y:3576 { yyVAL.expr = yyDollar[2].expr } - case 486: + case 488: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3573 +//line sql.y:3582 { yyVAL.colTuple = yyDollar[1].valTuple } - case 487: + case 489: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3577 +//line sql.y:3586 { yyVAL.colTuple = yyDollar[1].subquery } - case 488: + case 490: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3581 +//line sql.y:3590 { yyVAL.colTuple = ListArg(yyDollar[1].bytes) } - case 489: + case 491: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3587 +//line sql.y:3596 { yyVAL.subquery = &Subquery{yyDollar[2].selStmt} } - case 490: + case 492: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3593 +//line sql.y:3602 { yyVAL.exprs = Exprs{yyDollar[1].expr} } - case 491: + case 493: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3597 +//line sql.y:3606 { yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) } - case 492: + case 494: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3603 +//line sql.y:3612 { yyVAL.expr = yyDollar[1].expr } - case 493: + case 495: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3607 +//line sql.y:3616 { yyVAL.expr = yyDollar[1].boolVal } - case 494: + case 496: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3611 +//line sql.y:3620 { yyVAL.expr = yyDollar[1].colName } - case 495: + case 497: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3615 +//line sql.y:3624 { yyVAL.expr = yyDollar[1].expr } - case 496: + case 498: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3619 +//line sql.y:3628 { yyVAL.expr = yyDollar[1].subquery } - case 497: + case 499: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3623 +//line sql.y:3632 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} } - case 498: + case 500: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3627 +//line sql.y:3636 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} } - case 499: + case 501: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3631 +//line sql.y:3640 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} } - case 500: + case 502: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3635 +//line sql.y:3644 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} } - case 501: + case 503: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3639 +//line sql.y:3648 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} } - case 502: + case 504: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3643 +//line sql.y:3652 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} } - case 503: + case 505: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3647 +//line sql.y:3656 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} } - case 504: + case 506: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3651 +//line sql.y:3660 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} } - case 505: + case 507: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3655 +//line sql.y:3664 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } - case 506: + case 508: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3659 +//line sql.y:3668 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } - case 507: + case 509: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3663 +//line sql.y:3672 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} } - case 508: + case 510: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3667 +//line sql.y:3676 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} } - case 509: + case 511: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3671 +//line sql.y:3680 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} } - case 510: + case 512: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3675 +//line sql.y:3684 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} } - case 511: + case 513: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3679 +//line sql.y:3688 { yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} } - case 512: + case 514: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3683 +//line sql.y:3692 { yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} } - case 513: + case 515: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3687 +//line sql.y:3696 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { yyVAL.expr = num @@ -6097,9 +6153,9 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UPlusStr, Expr: yyDollar[2].expr} } } - case 514: + case 516: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3695 +//line sql.y:3704 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { // Handle double negative @@ -6113,21 +6169,21 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UMinusStr, Expr: yyDollar[2].expr} } } - case 515: + case 517: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3709 +//line sql.y:3718 { yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} } - case 516: + case 518: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3713 +//line sql.y:3722 { yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} } - case 517: + case 519: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3717 +//line sql.y:3726 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -6135,389 +6191,389 @@ yydefault: // will be non-trivial because of grammar conflicts. yyVAL.expr = &IntervalExpr{Expr: yyDollar[2].expr, Unit: yyDollar[3].colIdent.String()} } - case 522: + case 524: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3735 +//line sql.y:3744 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs} } - case 523: + case 525: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3739 +//line sql.y:3748 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} } - case 524: + case 526: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:3743 +//line sql.y:3752 { yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} } - case 525: + case 527: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3753 +//line sql.y:3762 { yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} } - case 526: + case 528: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3757 +//line sql.y:3766 { yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} } - case 527: + case 529: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:3761 +//line sql.y:3770 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } - case 528: + case 530: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:3765 +//line sql.y:3774 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } - case 529: + case 531: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:3769 +//line sql.y:3778 { yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} } - case 530: + case 532: yyDollar = yyS[yypt-9 : yypt+1] -//line sql.y:3773 +//line sql.y:3782 { yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} } - case 531: + case 533: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:3777 +//line sql.y:3786 { yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} } - case 532: + case 534: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3781 +//line sql.y:3790 { yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} } - case 533: + case 535: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3785 +//line sql.y:3794 { yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colIdent} } - case 534: + case 536: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3795 +//line sql.y:3804 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} } - case 535: + case 537: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3799 +//line sql.y:3808 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} } - case 536: + case 538: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3803 +//line sql.y:3812 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} } - case 537: + case 539: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3807 +//line sql.y:3816 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} } - case 538: + case 540: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3812 +//line sql.y:3821 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} } - case 539: + case 541: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3817 +//line sql.y:3826 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} } - case 540: + case 542: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3822 +//line sql.y:3831 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} } - case 541: + case 543: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3827 +//line sql.y:3836 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} } - case 544: + case 546: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3842 +//line sql.y:3851 { yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} } - case 545: + case 547: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3846 +//line sql.y:3855 { yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} } - case 546: + case 548: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3850 +//line sql.y:3859 { yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} } - case 547: + case 549: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3854 +//line sql.y:3863 { yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} } - case 548: + case 550: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3860 +//line sql.y:3869 { yyVAL.str = "" } - case 549: + case 551: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3864 +//line sql.y:3873 { yyVAL.str = BooleanModeStr } - case 550: + case 552: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3868 +//line sql.y:3877 { yyVAL.str = NaturalLanguageModeStr } - case 551: + case 553: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:3872 +//line sql.y:3881 { yyVAL.str = NaturalLanguageModeWithQueryExpansionStr } - case 552: + case 554: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3876 +//line sql.y:3885 { yyVAL.str = QueryExpansionStr } - case 553: + case 555: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3882 +//line sql.y:3891 { yyVAL.str = string(yyDollar[1].bytes) } - case 554: + case 556: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3886 +//line sql.y:3895 { yyVAL.str = string(yyDollar[1].bytes) } - case 555: + case 557: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3892 +//line sql.y:3901 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 556: + case 558: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3896 +//line sql.y:3905 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} } - case 557: + case 559: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3900 +//line sql.y:3909 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)} } - case 558: + case 560: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3904 +//line sql.y:3913 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 559: + case 561: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3908 +//line sql.y:3917 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 560: + case 562: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3912 +//line sql.y:3921 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType.Length = yyDollar[2].lengthScaleOption.Length yyVAL.convertType.Scale = yyDollar[2].lengthScaleOption.Scale } - case 561: + case 563: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3918 +//line sql.y:3927 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 562: + case 564: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3922 +//line sql.y:3931 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 563: + case 565: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3926 +//line sql.y:3935 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 564: + case 566: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3930 +//line sql.y:3939 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 565: + case 567: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3934 +//line sql.y:3943 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 566: + case 568: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3938 +//line sql.y:3947 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 567: + case 569: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3942 +//line sql.y:3951 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 568: + case 570: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3947 +//line sql.y:3956 { yyVAL.expr = nil } - case 569: + case 571: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3951 +//line sql.y:3960 { yyVAL.expr = yyDollar[1].expr } - case 570: + case 572: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3956 +//line sql.y:3965 { yyVAL.str = string("") } - case 571: + case 573: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3960 +//line sql.y:3969 { yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" } - case 572: + case 574: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3966 +//line sql.y:3975 { yyVAL.whens = []*When{yyDollar[1].when} } - case 573: + case 575: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3970 +//line sql.y:3979 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } - case 574: + case 576: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3976 +//line sql.y:3985 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } - case 575: + case 577: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3981 +//line sql.y:3990 { yyVAL.expr = nil } - case 576: + case 578: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3985 +//line sql.y:3994 { yyVAL.expr = yyDollar[2].expr } - case 577: + case 579: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3991 +//line sql.y:4000 { yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } - case 578: + case 580: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3995 +//line sql.y:4004 { yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } - case 579: + case 581: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3999 +//line sql.y:4008 { yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } - case 580: + case 582: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4005 +//line sql.y:4014 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 581: + case 583: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4009 +//line sql.y:4018 { yyVAL.expr = NewHexVal(yyDollar[1].bytes) } - case 582: + case 584: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4013 +//line sql.y:4022 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 583: + case 585: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4017 +//line sql.y:4026 { yyVAL.expr = NewFloatVal(yyDollar[1].bytes) } - case 584: + case 586: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4021 +//line sql.y:4030 { yyVAL.expr = NewHexNum(yyDollar[1].bytes) } - case 585: + case 587: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4025 +//line sql.y:4034 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 586: + case 588: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4029 +//line sql.y:4038 { yyVAL.expr = &NullVal{} } - case 587: + case 589: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4035 +//line sql.y:4044 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -6526,239 +6582,239 @@ yydefault: } yyVAL.expr = NewIntVal([]byte("1")) } - case 588: + case 590: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4044 +//line sql.y:4053 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 589: + case 591: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4048 +//line sql.y:4057 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 590: + case 592: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4053 +//line sql.y:4062 { yyVAL.exprs = nil } - case 591: + case 593: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4057 +//line sql.y:4066 { yyVAL.exprs = yyDollar[3].exprs } - case 592: + case 594: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4062 +//line sql.y:4071 { yyVAL.expr = nil } - case 593: + case 595: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4066 +//line sql.y:4075 { yyVAL.expr = yyDollar[2].expr } - case 594: + case 596: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4071 +//line sql.y:4080 { yyVAL.orderBy = nil } - case 595: + case 597: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4075 +//line sql.y:4084 { yyVAL.orderBy = yyDollar[3].orderBy } - case 596: + case 598: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4081 +//line sql.y:4090 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } - case 597: + case 599: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4085 +//line sql.y:4094 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } - case 598: + case 600: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4091 +//line sql.y:4100 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } - case 599: + case 601: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4096 +//line sql.y:4105 { yyVAL.str = AscScr } - case 600: + case 602: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4100 +//line sql.y:4109 { yyVAL.str = AscScr } - case 601: + case 603: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4104 +//line sql.y:4113 { yyVAL.str = DescScr } - case 602: + case 604: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4109 +//line sql.y:4118 { yyVAL.limit = nil } - case 603: + case 605: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4113 +//line sql.y:4122 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } - case 604: + case 606: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4117 +//line sql.y:4126 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } - case 605: + case 607: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4121 +//line sql.y:4130 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } - case 606: + case 608: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4126 +//line sql.y:4135 { yyVAL.str = "" } - case 607: + case 609: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4130 +//line sql.y:4139 { yyVAL.str = ForUpdateStr } - case 608: + case 610: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4134 +//line sql.y:4143 { yyVAL.str = ShareModeStr } - case 609: + case 611: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4147 +//line sql.y:4156 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } - case 610: + case 612: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4151 +//line sql.y:4160 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } - case 611: + case 613: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4155 +//line sql.y:4164 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} } - case 612: + case 614: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4160 +//line sql.y:4169 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } - case 613: + case 615: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4164 +//line sql.y:4173 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } - case 614: + case 616: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:4168 +//line sql.y:4177 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} } - case 615: + case 617: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4175 +//line sql.y:4184 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 616: + case 618: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4179 +//line sql.y:4188 { yyVAL.columns = Columns{yyDollar[3].colIdent} } - case 617: + case 619: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4183 +//line sql.y:4192 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 618: + case 620: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4187 +//line sql.y:4196 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } - case 619: + case 621: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4192 +//line sql.y:4201 { yyVAL.updateExprs = nil } - case 620: + case 622: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4196 +//line sql.y:4205 { yyVAL.updateExprs = yyDollar[5].updateExprs } - case 621: + case 623: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4202 +//line sql.y:4211 { yyVAL.values = Values{yyDollar[1].valTuple} } - case 622: + case 624: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4206 +//line sql.y:4215 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } - case 623: + case 625: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4212 +//line sql.y:4221 { yyVAL.valTuple = yyDollar[1].valTuple } - case 624: + case 626: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4216 +//line sql.y:4225 { yyVAL.valTuple = ValTuple{} } - case 625: + case 627: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4222 +//line sql.y:4231 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } - case 626: + case 628: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4228 +//line sql.y:4237 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} @@ -6766,222 +6822,210 @@ yydefault: yyVAL.expr = yyDollar[1].valTuple } } - case 627: + case 629: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4238 +//line sql.y:4247 { yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} } - case 628: + case 630: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4242 +//line sql.y:4251 { yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) } - case 629: + case 631: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4248 +//line sql.y:4257 { yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } - case 630: + case 632: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4254 +//line sql.y:4263 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } - case 631: + case 633: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4258 +//line sql.y:4267 { yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) } - case 632: + case 634: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4264 +//line sql.y:4273 { yyVAL.setExpr = yyDollar[1].setExpr } - case 633: + case 635: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4268 +//line sql.y:4277 { yyDollar[2].setExpr.Scope = yyDollar[1].str yyVAL.setExpr = yyDollar[2].setExpr } - case 634: + case 636: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4275 +//line sql.y:4284 { yyVAL.setExpr = &SetExpr{Type: yyDollar[1].colIdent, Val: &OptVal{Value: NewStrVal([]byte("on"))}} } - case 635: + case 637: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4279 +//line sql.y:4288 { yyVAL.setExpr = &SetExpr{Type: yyDollar[1].colIdent, Val: &OptVal{Value: NewStrVal([]byte("off"))}} } - case 636: + case 638: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4283 +//line sql.y:4292 { yyVAL.setExpr = &SetExpr{Type: yyDollar[1].colIdent, Val: &OptVal{Value: yyDollar[3].expr}} } - case 637: + case 639: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4287 +//line sql.y:4296 { yyVAL.setExpr = &SetExpr{Type: NewColIdent(string(yyDollar[1].bytes)), Val: &OptVal{Value: yyDollar[2].expr}} } - case 638: + case 640: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4291 +//line sql.y:4300 { yyVAL.setExpr = &SetExpr{Type: NewColIdent(string(yyDollar[1].bytes)), Val: &OptVal{Value: &CollateExpr{Expr: yyDollar[2].expr, Charset: yyDollar[3].str}}} } - case 640: + case 642: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4298 +//line sql.y:4307 { yyVAL.bytes = []byte("charset") } - case 641: + case 643: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4304 +//line sql.y:4313 { yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) } - case 642: + case 644: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4308 +//line sql.y:4317 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 643: + case 645: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4312 +//line sql.y:4321 { yyVAL.expr = &Default{} } - case 644: + case 646: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4318 +//line sql.y:4327 { yyVAL.setExprs = SetExprs{&SetExpr{Type: NewColIdent(string(yyDollar[1].bytes)), Val: yyDollar[2].setVal}} } - case 645: + case 647: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4322 +//line sql.y:4331 { yyVAL.setExprs = SetExprs{&SetExpr{Scope: yyDollar[1].str, Type: NewColIdent(string(yyDollar[2].bytes)), Val: yyDollar[3].setVal}} } - case 646: + case 648: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4328 +//line sql.y:4337 { yyVAL.setVal = &TxnVal{Level: yyDollar[1].str, Mode: yyDollar[2].str} } - case 647: + case 649: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4332 +//line sql.y:4341 { yyVAL.setVal = &TxnVal{Level: yyDollar[2].str, Mode: yyDollar[1].str} } - case 648: + case 650: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4338 +//line sql.y:4347 { yyVAL.str = "" } - case 649: + case 651: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4342 +//line sql.y:4351 { yyVAL.str = yyDollar[2].str } - case 650: + case 652: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4348 +//line sql.y:4357 { yyVAL.str = yyDollar[3].str } - case 651: + case 653: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4354 +//line sql.y:4363 { yyVAL.str = RepeatableRead } - case 652: + case 654: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4358 +//line sql.y:4367 { yyVAL.str = ReadCommitted } - case 653: + case 655: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4362 +//line sql.y:4371 { yyVAL.str = ReadUncommitted } - case 654: + case 656: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4366 +//line sql.y:4375 { yyVAL.str = Serializable } - case 655: + case 657: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4372 +//line sql.y:4381 { yyVAL.str = "" } - case 656: + case 658: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4376 +//line sql.y:4385 { yyVAL.str = yyDollar[2].str } - case 657: + case 659: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4382 +//line sql.y:4391 { yyVAL.str = TxReadWrite } - case 658: + case 660: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4386 +//line sql.y:4395 { yyVAL.str = TxReadOnly } - case 659: + case 661: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4392 +//line sql.y:4401 { yyVAL.str = SessionStr } - case 660: + case 662: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4396 +//line sql.y:4405 { yyVAL.str = SessionStr } - case 661: + case 663: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4400 - { - yyVAL.str = GlobalStr - } - case 664: - yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:4409 { - yyVAL.byt = 0 - } - case 665: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4413 - { - yyVAL.byt = 1 + yyVAL.str = GlobalStr } case 666: yyDollar = yyS[yypt-0 : yypt+1] @@ -6990,7 +7034,7 @@ yydefault: yyVAL.byt = 0 } case 667: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:4422 { yyVAL.byt = 1 @@ -6999,76 +7043,76 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:4427 { - yyVAL.str = "" + yyVAL.byt = 0 } case 669: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:4431 { - yyVAL.str = IgnoreStr + yyVAL.byt = 1 } case 670: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4437 + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4436 { - yyVAL.empty = struct{}{} + yyVAL.str = "" } case 671: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4441 +//line sql.y:4440 { - yyVAL.empty = struct{}{} + yyVAL.str = IgnoreStr } case 672: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4445 +//line sql.y:4446 { yyVAL.empty = struct{}{} } case 673: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4449 +//line sql.y:4450 { yyVAL.empty = struct{}{} } case 674: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4453 +//line sql.y:4454 { yyVAL.empty = struct{}{} } case 675: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4457 +//line sql.y:4458 { yyVAL.empty = struct{}{} } case 676: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4461 +//line sql.y:4462 { yyVAL.empty = struct{}{} } case 677: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4465 +//line sql.y:4466 { yyVAL.empty = struct{}{} } case 678: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4469 +//line sql.y:4470 { yyVAL.empty = struct{}{} } case 679: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4473 +//line sql.y:4474 { yyVAL.empty = struct{}{} } case 680: - yyDollar = yyS[yypt-0 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:4478 { yyVAL.empty = struct{}{} @@ -7080,89 +7124,101 @@ yydefault: yyVAL.empty = struct{}{} } case 682: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4486 + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4487 { yyVAL.empty = struct{}{} } case 683: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4492 +//line sql.y:4491 { yyVAL.empty = struct{}{} } case 684: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4496 +//line sql.y:4495 { yyVAL.empty = struct{}{} } case 685: - yyDollar = yyS[yypt-0 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:4501 { - yyVAL.str = IndexStr + yyVAL.empty = struct{}{} } case 686: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:4505 { - yyVAL.str = UniqueStr + yyVAL.empty = struct{}{} } case 687: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4511 + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4510 { - yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) + yyVAL.str = IndexStr } case 688: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4515 +//line sql.y:4514 + { + yyVAL.str = UniqueStr + } + case 689: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4520 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 690: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4522 +//line sql.y:4524 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 691: + case 692: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4528 +//line sql.y:4531 { - yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) + yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 692: + case 693: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4532 +//line sql.y:4537 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } case 694: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4539 +//line sql.y:4541 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 890: + case 696: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4761 +//line sql.y:4548 + { + yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) + } + case 892: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4770 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 891: + case 893: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4770 +//line sql.y:4779 { decNesting(yylex) } - case 892: + case 894: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4775 +//line sql.y:4784 { forceEOF(yylex) } diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.y b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.y index 815c45d2..547bd957 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.y +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.y @@ -460,6 +460,7 @@ func forceEOF(yylex interface{}) { // Supported SHOW tokens %token + COLLATION DATABASES TABLES WARNINGS @@ -2976,6 +2977,14 @@ show_statement: { $$ = &Show{Type: ShowWarningsStr} } +| SHOW COLLATION force_eof + { + $$ = &Show{Type: ShowCollationStr} + } +| SHOW CHARSET force_eof + { + $$ = &Show{Type: ShowCharsetStr} + } | SHOW ID force_eof { $$ = &Show{Type: ShowUnsupportedStr} diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/token.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/token.go index b3c848de..ff3edf51 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/token.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/token.go @@ -100,6 +100,7 @@ var keywords = map[string]int{ "checksum": CHECKSUM, "cleanup": CLEANUP, "collate": COLLATE, + "collation": COLLATION, "column": COLUMN, "column_format": COLUMN_FORMAT, "columns": COLUMNS,