From 94dc15a95ce0711fe099cb602cd61fc17e1ef56d Mon Sep 17 00:00:00 2001 From: Andrew Mason Date: Fri, 30 Apr 2021 08:46:34 -0400 Subject: [PATCH 01/63] Add `vttablet_restore_done` hook and fire async when a tablet has finished restoring We fire the hook in either success or error cases, and in the case of error, include the error string in the hook env, so the hook can access it. Signed-off-by: Andrew Mason --- go/vt/vttablet/tabletmanager/restore.go | 60 +++++++++++++++++++------ 1 file changed, 46 insertions(+), 14 deletions(-) diff --git a/go/vt/vttablet/tabletmanager/restore.go b/go/vt/vttablet/tabletmanager/restore.go index 818c8d162c1..f0ad6f5448c 100644 --- a/go/vt/vttablet/tabletmanager/restore.go +++ b/go/vt/vttablet/tabletmanager/restore.go @@ -17,33 +17,28 @@ limitations under the License. package tabletmanager import ( + "context" "flag" "fmt" "io" "time" - "vitess.io/vitess/go/vt/proto/vttime" - - "vitess.io/vitess/go/vt/vttablet/tabletmanager/vreplication" - + "vitess.io/vitess/go/mysql" "vitess.io/vitess/go/vt/dbconfigs" - - "vitess.io/vitess/go/vt/topo" - "vitess.io/vitess/go/vt/vterrors" - "vitess.io/vitess/go/vt/vttablet/tmclient" - - "context" - + "vitess.io/vitess/go/vt/hook" "vitess.io/vitess/go/vt/log" - - "vitess.io/vitess/go/mysql" "vitess.io/vitess/go/vt/logutil" "vitess.io/vitess/go/vt/mysqlctl" + "vitess.io/vitess/go/vt/topo" "vitess.io/vitess/go/vt/topo/topoproto" + "vitess.io/vitess/go/vt/vterrors" + "vitess.io/vitess/go/vt/vttablet/tabletmanager/vreplication" + "vitess.io/vitess/go/vt/vttablet/tmclient" binlogdatapb "vitess.io/vitess/go/vt/proto/binlogdata" topodatapb "vitess.io/vitess/go/vt/proto/topodata" vtrpcpb "vitess.io/vitess/go/vt/proto/vtrpc" + "vitess.io/vitess/go/vt/proto/vttime" ) // This file handles the initial backup restore upon startup. @@ -88,10 +83,47 @@ func (tm *TabletManager) RestoreData(ctx context.Context, logger logutil.Logger, log.Warningf("Orchestrator BeginMaintenance failed: %v", err) } }() - err := tm.restoreDataLocked(ctx, logger, waitForBackupInterval, deleteBeforeRestore) + + var ( + err error + startTime time.Time + ) + + defer func() { + stopTime := time.Now() + + h := hook.NewSimpleHook("vttablet_restore_done") + h.ExtraEnv = tm.hookExtraEnv() + h.ExtraEnv["TM_RESTORE_DATA_START_TS"] = startTime.UTC().Format(time.RFC3339) + h.ExtraEnv["TM_RESTORE_DATA_STOP_TS"] = stopTime.UTC().Format(time.RFC3339) + h.ExtraEnv["TM_RESTORE_DATA_DURATION"] = stopTime.Sub(startTime).String() + + if err != nil { + h.ExtraEnv["TM_RESTORE_DATA_ERROR"] = err.Error() + } + + // vttablet_restore_done is best-effort (for now?). + go func() { + // Package vthook already logs the stdout/stderr of hooks when they + // are run, so we don't duplicate that here. + hr := h.Execute() + switch hr.ExitStatus { + case hook.HOOK_SUCCESS: + case hook.HOOK_DOES_NOT_EXIST: + log.Info("No vttablet_restore_done hook.") + default: + log.Warning("vttablet_restore_done hook failed") + } + }() + }() + + startTime = time.Now() + + err = tm.restoreDataLocked(ctx, logger, waitForBackupInterval, deleteBeforeRestore) if err != nil { return err } + // Tell Orchestrator we're no longer stopped on purpose. // Do this in the background, as it's best-effort. go func() { From 1e4ffbe078ea1927b15e59b874318409e2463d50 Mon Sep 17 00:00:00 2001 From: Andrew Mason Date: Fri, 30 Apr 2021 08:47:38 -0400 Subject: [PATCH 02/63] Add keyspace and shard to the default tabletmanager `hookExtraEnv` Signed-off-by: Andrew Mason --- go/vt/vttablet/tabletmanager/tm_init.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/go/vt/vttablet/tabletmanager/tm_init.go b/go/vt/vttablet/tabletmanager/tm_init.go index db38b091ea2..79c78d9b235 100644 --- a/go/vt/vttablet/tabletmanager/tm_init.go +++ b/go/vt/vttablet/tabletmanager/tm_init.go @@ -723,5 +723,11 @@ func (tm *TabletManager) BlacklistedTables() []string { // hookExtraEnv returns the map to pass to local hooks func (tm *TabletManager) hookExtraEnv() map[string]string { - return map[string]string{"TABLET_ALIAS": topoproto.TabletAliasString(tm.tabletAlias)} + tablet := tm.Tablet() + + return map[string]string{ + "TABLET_ALIAS": topoproto.TabletAliasString(tm.tabletAlias), + "KEYSPACE": tablet.Keyspace, + "SHARD": tablet.Shard, + } } From 8784d66f210fe1db87ffc05b992810772ffbc4c3 Mon Sep 17 00:00:00 2001 From: deepthi Date: Mon, 3 May 2021 12:54:05 -0700 Subject: [PATCH 03/63] Release notes: add Known Issues Signed-off-by: deepthi --- doc/releasenotes/10_0_0_release_notes.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/releasenotes/10_0_0_release_notes.md b/doc/releasenotes/10_0_0_release_notes.md index 64279f40b2d..0366e578283 100644 --- a/doc/releasenotes/10_0_0_release_notes.md +++ b/doc/releasenotes/10_0_0_release_notes.md @@ -1,7 +1,8 @@ This release complies with VEP-3 which removes the upgrade order requirement. Components can be upgraded in any order. It is recommended that the upgrade order should still be followed if possible, except to canary test the new version of VTGate before upgrading the rest of the components. - -The following PRs made changes to behaviors that clients might rely on. They should be reviewed carefully so that client code can be changed in concert with a Vitess release deployment. +## Known Issues +* Running binaries with `--version` or calling @@version from a MySQL client still shows `10.0.0-RC1` +* Online DDL [cannot be used](https://github.com/vitessio/vitess/pull/7873#issuecomment-822798180) if you are using the keyspace filtering feature of VTGate ## Bugs Fixed From b2a42b0394486f7627a20890ebef35816bf6cf3d Mon Sep 17 00:00:00 2001 From: deepthi Date: Tue, 4 May 2021 09:51:56 -0700 Subject: [PATCH 04/63] Release notes: fix sql query Signed-off-by: deepthi --- doc/releasenotes/10_0_0_release_notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/releasenotes/10_0_0_release_notes.md b/doc/releasenotes/10_0_0_release_notes.md index 0366e578283..52db491c0c0 100644 --- a/doc/releasenotes/10_0_0_release_notes.md +++ b/doc/releasenotes/10_0_0_release_notes.md @@ -1,7 +1,7 @@ This release complies with VEP-3 which removes the upgrade order requirement. Components can be upgraded in any order. It is recommended that the upgrade order should still be followed if possible, except to canary test the new version of VTGate before upgrading the rest of the components. ## Known Issues -* Running binaries with `--version` or calling @@version from a MySQL client still shows `10.0.0-RC1` +* Running binaries with `--version` or running `select @@version` from a MySQL client still shows `10.0.0-RC1` * Online DDL [cannot be used](https://github.com/vitessio/vitess/pull/7873#issuecomment-822798180) if you are using the keyspace filtering feature of VTGate ## Bugs Fixed From 6feb7677d2cf04d866b46e1608376b303d72c2a1 Mon Sep 17 00:00:00 2001 From: Jacques Grove Date: Wed, 5 May 2021 11:55:27 -0700 Subject: [PATCH 05/63] Make TwoPC engine initialization async, retrying forever. Signed-off-by: Jacques Grove --- go/vt/vttablet/tabletserver/twopc.go | 1 + go/vt/vttablet/tabletserver/tx_engine.go | 34 +++++++++++++++++------- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/go/vt/vttablet/tabletserver/twopc.go b/go/vt/vttablet/tabletserver/twopc.go index 18c84b58ac0..fc97b60ea46 100644 --- a/go/vt/vttablet/tabletserver/twopc.go +++ b/go/vt/vttablet/tabletserver/twopc.go @@ -197,6 +197,7 @@ func (tpc *TwoPC) Open(dbconfigs *dbconfigs.DBConfigs) error { } } tpc.readPool.Open(dbconfigs.AppWithDB(), dbconfigs.DbaWithDB(), dbconfigs.DbaWithDB()) + log.Infof("TwoPC: Engine open succeeded") return nil } diff --git a/go/vt/vttablet/tabletserver/tx_engine.go b/go/vt/vttablet/tabletserver/tx_engine.go index 31caad42b42..996440e2c9c 100644 --- a/go/vt/vttablet/tabletserver/tx_engine.go +++ b/go/vt/vttablet/tabletserver/tx_engine.go @@ -168,15 +168,29 @@ func (te *TxEngine) transition(state txEngineState) { // If there are errors, we choose to raise an alert and // continue anyway. Serving traffic is considered more important // than blocking everything for the sake of a few transactions. - if err := te.twoPC.Open(te.env.Config().DB); err != nil { - te.env.Stats().InternalErrors.Add("TwopcOpen", 1) - log.Errorf("Could not open TwoPC engine: %v", err) - } - if err := te.prepareFromRedo(); err != nil { - te.env.Stats().InternalErrors.Add("TwopcResurrection", 1) - log.Errorf("Could not prepare transactions: %v", err) - } - te.startWatchdog() + // We do this async; so we do not end up blocking writes on + // failover for our setup tasks if using semi-sync replication. + go func() { + for { + if err := te.twoPC.Open(te.env.Config().DB); err != nil { + te.env.Stats().InternalErrors.Add("TwopcOpen", 1) + log.Errorf("Could not open TwoPC engine, retrying: %v", err) + time.Sleep(10 * time.Second) + } else { + break + } + } + for { + if err := te.prepareFromRedo(); err != nil { + te.env.Stats().InternalErrors.Add("TwopcResurrection", 1) + log.Errorf("Could not prepare transactions, retrying: %v", err) + time.Sleep(10 * time.Second) + } else { + break + } + } + te.startWatchdog() + }() } } @@ -398,7 +412,7 @@ outer: te.preparedPool.SetFailed(preparedTx.Dtid) } te.txPool.AdjustLastID(maxid) - log.Infof("Prepared %d transactions, and registered %d failures.", len(prepared), len(failed)) + log.Infof("TwoPC: Prepared %d transactions, and registered %d failures.", len(prepared), len(failed)) return allErr.Error() } From eb1a906e578655f757c7b2e865b4ddb6fd7c4cec Mon Sep 17 00:00:00 2001 From: Jacques Grove Date: Wed, 5 May 2021 13:24:12 -0700 Subject: [PATCH 06/63] Simplify; we do not actually need to retry; just making it async is sufficient. Signed-off-by: Jacques Grove --- go/vt/vttablet/tabletserver/tx_engine.go | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/go/vt/vttablet/tabletserver/tx_engine.go b/go/vt/vttablet/tabletserver/tx_engine.go index 996440e2c9c..f3a67625e79 100644 --- a/go/vt/vttablet/tabletserver/tx_engine.go +++ b/go/vt/vttablet/tabletserver/tx_engine.go @@ -171,23 +171,13 @@ func (te *TxEngine) transition(state txEngineState) { // We do this async; so we do not end up blocking writes on // failover for our setup tasks if using semi-sync replication. go func() { - for { - if err := te.twoPC.Open(te.env.Config().DB); err != nil { - te.env.Stats().InternalErrors.Add("TwopcOpen", 1) - log.Errorf("Could not open TwoPC engine, retrying: %v", err) - time.Sleep(10 * time.Second) - } else { - break - } + if err := te.twoPC.Open(te.env.Config().DB); err != nil { + te.env.Stats().InternalErrors.Add("TwopcOpen", 1) + log.Errorf("Could not open TwoPC engine: %v", err) } - for { - if err := te.prepareFromRedo(); err != nil { - te.env.Stats().InternalErrors.Add("TwopcResurrection", 1) - log.Errorf("Could not prepare transactions, retrying: %v", err) - time.Sleep(10 * time.Second) - } else { - break - } + if err := te.prepareFromRedo(); err != nil { + te.env.Stats().InternalErrors.Add("TwopcResurrection", 1) + log.Errorf("Could not prepare transactions: %v", err) } te.startWatchdog() }() From 9fbf47eee1bc2ead3fded42b4a34b760a52ca2c9 Mon Sep 17 00:00:00 2001 From: Jacques Grove Date: Thu, 6 May 2021 12:06:20 -0700 Subject: [PATCH 07/63] Synchronize tests to allow for the twopc engine to open Signed-off-by: Jacques Grove --- go/vt/vttablet/tabletserver/query_executor_test.go | 3 +++ go/vt/vttablet/tabletserver/tabletserver_test.go | 1 + go/vt/vttablet/tabletserver/tx_engine.go | 13 +++++++++++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/go/vt/vttablet/tabletserver/query_executor_test.go b/go/vt/vttablet/tabletserver/query_executor_test.go index 7e67ce5d3b3..0a5cf4e3522 100644 --- a/go/vt/vttablet/tabletserver/query_executor_test.go +++ b/go/vt/vttablet/tabletserver/query_executor_test.go @@ -1151,6 +1151,9 @@ func newTestTabletServer(ctx context.Context, flags executorFlags, db *fakesqldb dbconfigs := newDBConfigs(db) target := querypb.Target{TabletType: topodatapb.TabletType_MASTER} err := tsv.StartService(target, dbconfigs, nil /* mysqld */) + if config.TwoPCEnable { + tsv.te.twoPCEngineWait() + } if err != nil { panic(err) } diff --git a/go/vt/vttablet/tabletserver/tabletserver_test.go b/go/vt/vttablet/tabletserver/tabletserver_test.go index 023c0bdd3c1..ef1ff4d5c8c 100644 --- a/go/vt/vttablet/tabletserver/tabletserver_test.go +++ b/go/vt/vttablet/tabletserver/tabletserver_test.go @@ -131,6 +131,7 @@ func TestTabletServerRedoLogIsKeptBetweenRestarts(t *testing.T) { turnOnTxEngine := func() { tsv.SetServingType(topodatapb.TabletType_MASTER, time.Time{}, true, "") + tsv.te.twoPCEngineWait() } turnOffTxEngine := func() { tsv.SetServingType(topodatapb.TabletType_REPLICA, time.Time{}, true, "") diff --git a/go/vt/vttablet/tabletserver/tx_engine.go b/go/vt/vttablet/tabletserver/tx_engine.go index f3a67625e79..09dcbf43ff2 100644 --- a/go/vt/vttablet/tabletserver/tx_engine.go +++ b/go/vt/vttablet/tabletserver/tx_engine.go @@ -254,6 +254,15 @@ func (te *TxEngine) Rollback(ctx context.Context, transactionID int64) (int64, e }) } +// Wait until the TwoPC engine has been opened, and the redo read (for testing) +func (te *TxEngine) twoPCEngineWait() { + for { + if te.ticks.Running() { + return + } + } +} + func (te *TxEngine) txFinish(transactionID int64, reason tx.ReleaseReason, f func(*StatefulConnection) error) (int64, error) { conn, err := te.txPool.GetAndLock(transactionID, reason.String()) if err != nil { @@ -364,7 +373,7 @@ outer: for _, preparedTx := range prepared { txid, err := dtids.TransactionID(preparedTx.Dtid) if err != nil { - log.Errorf("Error extracting transaction ID from ditd: %v", err) + log.Errorf("Error extracting transaction ID from dtid: %v", err) } if txid > maxid { maxid = txid @@ -394,7 +403,7 @@ outer: for _, preparedTx := range failed { txid, err := dtids.TransactionID(preparedTx.Dtid) if err != nil { - log.Errorf("Error extracting transaction ID from ditd: %v", err) + log.Errorf("Error extracting transaction ID from dtid: %v", err) } if txid > maxid { maxid = txid From 3a7fd0374bb8e059f057184401a9f22bcd8eeef9 Mon Sep 17 00:00:00 2001 From: Jacques Grove Date: Thu, 6 May 2021 12:21:59 -0700 Subject: [PATCH 08/63] Use a waitgroup for synchronization instead Signed-off-by: Jacques Grove --- go/vt/vttablet/tabletserver/tx_engine.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/go/vt/vttablet/tabletserver/tx_engine.go b/go/vt/vttablet/tabletserver/tx_engine.go index 09dcbf43ff2..dc4179b82c5 100644 --- a/go/vt/vttablet/tabletserver/tx_engine.go +++ b/go/vt/vttablet/tabletserver/tx_engine.go @@ -90,6 +90,7 @@ type TxEngine struct { txPool *TxPool preparedPool *TxPreparedPool twoPC *TwoPC + twoPCReady sync.WaitGroup } // NewTxEngine creates a new TxEngine. @@ -170,7 +171,9 @@ func (te *TxEngine) transition(state txEngineState) { // than blocking everything for the sake of a few transactions. // We do this async; so we do not end up blocking writes on // failover for our setup tasks if using semi-sync replication. + te.twoPCReady.Add(1) go func() { + defer te.twoPCReady.Done() if err := te.twoPC.Open(te.env.Config().DB); err != nil { te.env.Stats().InternalErrors.Add("TwopcOpen", 1) log.Errorf("Could not open TwoPC engine: %v", err) @@ -256,11 +259,7 @@ func (te *TxEngine) Rollback(ctx context.Context, transactionID int64) (int64, e // Wait until the TwoPC engine has been opened, and the redo read (for testing) func (te *TxEngine) twoPCEngineWait() { - for { - if te.ticks.Running() { - return - } - } + te.twoPCReady.Wait() } func (te *TxEngine) txFinish(transactionID int64, reason tx.ReleaseReason, f func(*StatefulConnection) error) (int64, error) { From aaf07533514036c2098d9b75df62ebecd5c99da9 Mon Sep 17 00:00:00 2001 From: Jacques Grove Date: Thu, 6 May 2021 16:23:05 -0700 Subject: [PATCH 09/63] Move TwoPCEngineWait to tabletserver, since we need to access from e2e tests Signed-off-by: Jacques Grove --- go/vt/vttablet/tabletserver/query_executor_test.go | 2 +- go/vt/vttablet/tabletserver/tabletserver.go | 5 +++++ go/vt/vttablet/tabletserver/tabletserver_test.go | 2 +- go/vt/vttablet/tabletserver/tx_engine.go | 5 ----- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/go/vt/vttablet/tabletserver/query_executor_test.go b/go/vt/vttablet/tabletserver/query_executor_test.go index 0a5cf4e3522..9df0feb0512 100644 --- a/go/vt/vttablet/tabletserver/query_executor_test.go +++ b/go/vt/vttablet/tabletserver/query_executor_test.go @@ -1152,7 +1152,7 @@ func newTestTabletServer(ctx context.Context, flags executorFlags, db *fakesqldb target := querypb.Target{TabletType: topodatapb.TabletType_MASTER} err := tsv.StartService(target, dbconfigs, nil /* mysqld */) if config.TwoPCEnable { - tsv.te.twoPCEngineWait() + tsv.TwoPCEngineWait() } if err != nil { panic(err) diff --git a/go/vt/vttablet/tabletserver/tabletserver.go b/go/vt/vttablet/tabletserver/tabletserver.go index d76c230d8bb..bb3bc117bce 100644 --- a/go/vt/vttablet/tabletserver/tabletserver.go +++ b/go/vt/vttablet/tabletserver/tabletserver.go @@ -453,6 +453,11 @@ func (tsv *TabletServer) TableGC() *gc.TableGC { return tsv.tableGC } +// TwoPCEngineWait waits until the TwoPC engine has been opened, and the redo read +func (tsv *TabletServer) TwoPCEngineWait() { + tsv.te.twoPCReady.Wait() +} + // SchemaEngine returns the SchemaEngine part of TabletServer. func (tsv *TabletServer) SchemaEngine() *schema.Engine { return tsv.se diff --git a/go/vt/vttablet/tabletserver/tabletserver_test.go b/go/vt/vttablet/tabletserver/tabletserver_test.go index ef1ff4d5c8c..f4510c58c7e 100644 --- a/go/vt/vttablet/tabletserver/tabletserver_test.go +++ b/go/vt/vttablet/tabletserver/tabletserver_test.go @@ -131,7 +131,7 @@ func TestTabletServerRedoLogIsKeptBetweenRestarts(t *testing.T) { turnOnTxEngine := func() { tsv.SetServingType(topodatapb.TabletType_MASTER, time.Time{}, true, "") - tsv.te.twoPCEngineWait() + tsv.TwoPCEngineWait() } turnOffTxEngine := func() { tsv.SetServingType(topodatapb.TabletType_REPLICA, time.Time{}, true, "") diff --git a/go/vt/vttablet/tabletserver/tx_engine.go b/go/vt/vttablet/tabletserver/tx_engine.go index dc4179b82c5..6831b670675 100644 --- a/go/vt/vttablet/tabletserver/tx_engine.go +++ b/go/vt/vttablet/tabletserver/tx_engine.go @@ -257,11 +257,6 @@ func (te *TxEngine) Rollback(ctx context.Context, transactionID int64) (int64, e }) } -// Wait until the TwoPC engine has been opened, and the redo read (for testing) -func (te *TxEngine) twoPCEngineWait() { - te.twoPCReady.Wait() -} - func (te *TxEngine) txFinish(transactionID int64, reason tx.ReleaseReason, f func(*StatefulConnection) error) (int64, error) { conn, err := te.txPool.GetAndLock(transactionID, reason.String()) if err != nil { From ef70a864209c116aa68591a14781c76061a4c3b0 Mon Sep 17 00:00:00 2001 From: Jacques Grove Date: Thu, 6 May 2021 16:24:04 -0700 Subject: [PATCH 10/63] Fix e2e vttablet tests for async twopc startup Signed-off-by: Jacques Grove --- go/vt/vttablet/endtoend/framework/client.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/go/vt/vttablet/endtoend/framework/client.go b/go/vt/vttablet/endtoend/framework/client.go index 7d02b07ce50..39c1cf186f8 100644 --- a/go/vt/vttablet/endtoend/framework/client.go +++ b/go/vt/vttablet/endtoend/framework/client.go @@ -164,6 +164,8 @@ func (client *QueryClient) ReadTransaction(dtid string) (*querypb.TransactionMet // It currently supports only master->replica and back. func (client *QueryClient) SetServingType(tabletType topodatapb.TabletType) error { err := client.server.SetServingType(tabletType, time.Time{}, true /* serving */, "" /* reason */) + // Wait for TwoPC transition, if necessary + client.server.TwoPCEngineWait() return err } From 7185eb1258b1ae919b7a0522137cdb1641c90507 Mon Sep 17 00:00:00 2001 From: Harshit Gangal Date: Wed, 12 May 2021 00:42:33 +0530 Subject: [PATCH 11/63] added reserved connection buffer test Signed-off-by: Harshit Gangal --- .../tabletgateway/buffer/buffer_test.go | 57 ++++++++++++++----- 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/go/test/endtoend/tabletgateway/buffer/buffer_test.go b/go/test/endtoend/tabletgateway/buffer/buffer_test.go index 4c063f43737..04583e83a82 100644 --- a/go/test/endtoend/tabletgateway/buffer/buffer_test.go +++ b/go/test/endtoend/tabletgateway/buffer/buffer_test.go @@ -79,7 +79,6 @@ const ( //threadParams is set of params passed into read and write threads type threadParams struct { - writable bool quit bool rpcs int // Number of queries successfully executed. errors int // Number of failed queries. @@ -90,6 +89,7 @@ type threadParams struct { i int // commitErrors int executeFunction func(c *threadParams, conn *mysql.Conn) error // Implement the method for read/update. + reservedConn bool } // Thread which constantly executes a query on vtgate. @@ -100,6 +100,13 @@ func (c *threadParams) threadRun() { log.Errorf("error connecting to mysql with params %v: %v", vtParams, err) } defer conn.Close() + if c.reservedConn { + _, err = conn.ExecuteFetch("set default_week_format = 1", 1000, true) + if err != nil { + c.errors++ + log.Errorf("error setting default_week_format: %v", err) + } + } for !c.quit { err = c.executeFunction(c, conn) if err != nil { @@ -164,7 +171,7 @@ func updateExecute(c *threadParams, conn *mysql.Conn) error { if c.commitErrors > 1 { return err } - log.Errorf("UPDATE %d failed during ROLLBACK. This is okay once because we do not support buffering it. err: %v", attempt, err) + log.Errorf("UPDATE %d failed during COMMIT. This is okay once because we do not support buffering it. err: %v", attempt, err) } } if err != nil { @@ -176,7 +183,7 @@ func updateExecute(c *threadParams, conn *mysql.Conn) error { if c.commitErrors > 1 { return err } - log.Errorf("UPDATE %d failed during COMMIT with err: %v.This is okay once because we do not support buffering it.", attempt, err) + log.Errorf("UPDATE %d failed during ROLLBACK with err: %v.This is okay once because we do not support buffering it.", attempt, err) } return nil } @@ -185,6 +192,7 @@ func createCluster() (*cluster.LocalProcessCluster, int) { clusterInstance = cluster.NewCluster(cell, hostname) // Start topo server + clusterInstance.VtctldExtraArgs = []string{"-remote_operation_timeout", "20s", "-topo_etcd_lease_ttl", "40"} if err := clusterInstance.StartTopo(); err != nil { return nil, 1 } @@ -194,8 +202,9 @@ func createCluster() (*cluster.LocalProcessCluster, int) { Name: keyspaceUnshardedName, SchemaSQL: sqlSchema, } - clusterInstance.VtTabletExtraArgs = []string{"-health_check_interval", "1s"} - + clusterInstance.VtTabletExtraArgs = []string{"-health_check_interval", "1s", + "-queryserver-config-transaction-timeout", "5", + } if err := clusterInstance.StartUnshardedKeyspace(*keyspace, 1, false); err != nil { return nil, 1 } @@ -228,14 +237,16 @@ func exec(t *testing.T, conn *mysql.Conn, query string) *sqltypes.Result { } func TestBufferInternalReparenting(t *testing.T) { - testBufferBase(t, false) + testBufferBase(t, false, false) + testBufferBase(t, false, true) } func TestBufferExternalReparenting(t *testing.T) { - testBufferBase(t, true) + testBufferBase(t, true, false) + testBufferBase(t, true, true) } -func testBufferBase(t *testing.T, isExternalParent bool) { +func testBufferBase(t *testing.T, isExternalParent bool, useReservedConn bool) { defer cluster.PanicHandler(t) clusterInstance, exitCode := createCluster() if exitCode != 0 { @@ -253,10 +264,19 @@ func testBufferBase(t *testing.T, isExternalParent bool) { exec(t, conn, fmt.Sprintf("INSERT INTO buffer (id, msg) VALUES (%d, %s)", updateRowID, "'update'")) //Start both threads. - readThreadInstance := &threadParams{writable: false, quit: false, rpcs: 0, errors: 0, notifyAfterNSuccessfulRpcs: 0, rpcsSoFar: 0, executeFunction: readExecute, waitForNotification: make(chan bool)} + readThreadInstance := &threadParams{ + executeFunction: readExecute, + waitForNotification: make(chan bool), + reservedConn: useReservedConn, + } wg.Add(1) go readThreadInstance.threadRun() - updateThreadInstance := &threadParams{writable: false, quit: false, rpcs: 0, errors: 0, notifyAfterNSuccessfulRpcs: 0, rpcsSoFar: 0, executeFunction: updateExecute, i: 1, commitErrors: 0, waitForNotification: make(chan bool)} + updateThreadInstance := &threadParams{ + i: 1, + executeFunction: updateExecute, + waitForNotification: make(chan bool), + reservedConn: useReservedConn, + } wg.Add(1) go updateThreadInstance.threadRun() @@ -275,13 +295,24 @@ func testBufferBase(t *testing.T, isExternalParent bool) { externalReparenting(ctx, t, clusterInstance) } else { //reparent call - clusterInstance.VtctlclientProcess.ExecuteCommand("PlannedReparentShard", "-keyspace_shard", + err := clusterInstance.VtctlclientProcess.ExecuteCommand("PlannedReparentShard", "-keyspace_shard", fmt.Sprintf("%s/%s", keyspaceUnshardedName, "0"), "-new_master", clusterInstance.Keyspaces[0].Shards[0].Vttablets[1].Alias) + require.NoError(t, err) } - <-readThreadInstance.waitForNotification - <-updateThreadInstance.waitForNotification + timeout := time.After(40 * time.Second) + select { + case <-readThreadInstance.waitForNotification: + case <-timeout: + timeout = time.After(100 * time.Millisecond) + log.Error("failed to get read thread notification") + } + select { + case <-updateThreadInstance.waitForNotification: + case <-timeout: + log.Error("failed to get update thread notification") + } // Stop threads readThreadInstance.stop() From 3d0414c6a2f76d3fe9e790af0977e0f4fbde7eb8 Mon Sep 17 00:00:00 2001 From: Harshit Gangal Date: Wed, 12 May 2021 10:18:07 +0530 Subject: [PATCH 12/63] update timeout values Signed-off-by: Harshit Gangal --- go/test/endtoend/tabletgateway/buffer/buffer_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go/test/endtoend/tabletgateway/buffer/buffer_test.go b/go/test/endtoend/tabletgateway/buffer/buffer_test.go index 04583e83a82..3785894b39c 100644 --- a/go/test/endtoend/tabletgateway/buffer/buffer_test.go +++ b/go/test/endtoend/tabletgateway/buffer/buffer_test.go @@ -192,7 +192,7 @@ func createCluster() (*cluster.LocalProcessCluster, int) { clusterInstance = cluster.NewCluster(cell, hostname) // Start topo server - clusterInstance.VtctldExtraArgs = []string{"-remote_operation_timeout", "20s", "-topo_etcd_lease_ttl", "40"} + clusterInstance.VtctldExtraArgs = []string{"-remote_operation_timeout", "30s", "-topo_etcd_lease_ttl", "40"} if err := clusterInstance.StartTopo(); err != nil { return nil, 1 } @@ -203,7 +203,7 @@ func createCluster() (*cluster.LocalProcessCluster, int) { SchemaSQL: sqlSchema, } clusterInstance.VtTabletExtraArgs = []string{"-health_check_interval", "1s", - "-queryserver-config-transaction-timeout", "5", + "-queryserver-config-transaction-timeout", "20", } if err := clusterInstance.StartUnshardedKeyspace(*keyspace, 1, false); err != nil { return nil, 1 From ad4d63fb019426fe2de4def251f46b906f8bf793 Mon Sep 17 00:00:00 2001 From: Andres Taylor Date: Wed, 12 May 2021 09:16:45 +0200 Subject: [PATCH 13/63] make sure to block state transitions when doing ReserveBegin Signed-off-by: Andres Taylor --- .../tabletgateway/buffer/buffer_test.go | 30 ++++++----- go/vt/vttablet/tabletserver/tx_engine.go | 50 ++++++++++-------- go/vt/vttablet/tabletserver/tx_engine_test.go | 51 +++++++++++++------ 3 files changed, 81 insertions(+), 50 deletions(-) diff --git a/go/test/endtoend/tabletgateway/buffer/buffer_test.go b/go/test/endtoend/tabletgateway/buffer/buffer_test.go index 3785894b39c..9f55445963b 100644 --- a/go/test/endtoend/tabletgateway/buffer/buffer_test.go +++ b/go/test/endtoend/tabletgateway/buffer/buffer_test.go @@ -35,7 +35,6 @@ import ( "io/ioutil" "math/rand" "net/http" - "os" "reflect" "strconv" "strings" @@ -94,7 +93,6 @@ type threadParams struct { // Thread which constantly executes a query on vtgate. func (c *threadParams) threadRun() { - ctx := context.Background() conn, err := mysql.Connect(ctx, &vtParams) if err != nil { log.Errorf("error connecting to mysql with params %v: %v", vtParams, err) @@ -236,25 +234,31 @@ func exec(t *testing.T, conn *mysql.Conn, query string) *sqltypes.Result { return qr } -func TestBufferInternalReparenting(t *testing.T) { - testBufferBase(t, false, false) - testBufferBase(t, false, true) +func TestBufferReparenting(t *testing.T) { + t.Run("TER without reserved connection", func(t *testing.T) { + testBufferBase(t, true, false) + }) + t.Run("TER with reserved connection", func(t *testing.T) { + testBufferBase(t, true, true) + }) + t.Run("PRS without reserved connections", func(t *testing.T) { + testBufferBase(t, false, false) + }) + t.Run("PRS with reserved connections", func(t *testing.T) { + testBufferBase(t, false, true) + }) } -func TestBufferExternalReparenting(t *testing.T) { - testBufferBase(t, true, false) - testBufferBase(t, true, true) -} +var ctx = context.Background() func testBufferBase(t *testing.T, isExternalParent bool, useReservedConn bool) { defer cluster.PanicHandler(t) clusterInstance, exitCode := createCluster() if exitCode != 0 { - os.Exit(exitCode) + t.Fatal("failed to start cluster") } // Healthcheck interval on tablet is set to 1s, so sleep for 2s time.Sleep(2 * time.Second) - ctx := context.Background() conn, err := mysql.Connect(ctx, &vtParams) require.Nil(t, err) defer conn.Close() @@ -319,8 +323,8 @@ func testBufferBase(t *testing.T, isExternalParent bool, useReservedConn bool) { updateThreadInstance.stop() // Both threads must not see any error - assert.Equal(t, 0, readThreadInstance.errors) - assert.Equal(t, 0, updateThreadInstance.errors) + assert.Zero(t, readThreadInstance.errors, "found errors in read queries") + assert.Zero(t, updateThreadInstance.errors, "found errors in tx queries") //At least one thread should have been buffered. //This may fail if a failover is too fast. Add retries then. diff --git a/go/vt/vttablet/tabletserver/tx_engine.go b/go/vt/vttablet/tabletserver/tx_engine.go index 31caad42b42..a8d20015fec 100644 --- a/go/vt/vttablet/tabletserver/tx_engine.go +++ b/go/vt/vttablet/tabletserver/tx_engine.go @@ -71,6 +71,7 @@ func (state txEngineState) String() string { type TxEngine struct { env tabletenv.Env + // stateLock is to protect state and beginRequests changes. stateLock sync.Mutex state txEngineState @@ -196,6 +197,18 @@ func (te *TxEngine) Close() { log.Info("TxEngine: closed") } +func (te *TxEngine) isTxPoolAvailable(addToWaitGroup func(int)) error { + te.stateLock.Lock() + defer te.stateLock.Unlock() + + canOpenTransactions := te.state == AcceptingReadOnly || te.state == AcceptingReadAndWrite + if !canOpenTransactions { + return vterrors.Errorf(vtrpc.Code_UNAVAILABLE, "tx engine can't accept new connections in state %v", te.state) + } + addToWaitGroup(1) + return nil +} + // Begin begins a transaction, and returns the associated transaction id and the // statement(s) used to execute the begin (if any). // @@ -203,20 +216,11 @@ func (te *TxEngine) Close() { func (te *TxEngine) Begin(ctx context.Context, preQueries []string, reservedID int64, options *querypb.ExecuteOptions) (int64, string, error) { span, ctx := trace.NewSpan(ctx, "TxEngine.Begin") defer span.Finish() - te.stateLock.Lock() - - canOpenTransactions := te.state == AcceptingReadOnly || te.state == AcceptingReadAndWrite - if !canOpenTransactions { - // We are not in a state where we can start new transactions. Abort. - te.stateLock.Unlock() - return 0, "", vterrors.Errorf(vtrpc.Code_UNAVAILABLE, "tx engine can't accept new transactions in state %v", te.state) + err := te.isTxPoolAvailable(te.beginRequests.Add) + if err != nil { + return 0, "", err } - // By Add() to beginRequests, we block others from initiating state - // changes until we have finished adding this transaction - te.beginRequests.Add(1) - te.stateLock.Unlock() - defer te.beginRequests.Done() conn, beginSQL, err := te.txPool.Begin(ctx, options, te.state == AcceptingReadOnly, reservedID, preQueries) if err != nil { @@ -483,6 +487,12 @@ func (te *TxEngine) stopWatchdog() { func (te *TxEngine) ReserveBegin(ctx context.Context, options *querypb.ExecuteOptions, preQueries []string) (int64, error) { span, ctx := trace.NewSpan(ctx, "TxEngine.ReserveBegin") defer span.Finish() + err := te.isTxPoolAvailable(te.beginRequests.Add) + if err != nil { + return 0, err + } + defer te.beginRequests.Done() + conn, err := te.reserve(ctx, options, preQueries) if err != nil { return 0, err @@ -497,11 +507,17 @@ func (te *TxEngine) ReserveBegin(ctx context.Context, options *querypb.ExecuteOp return conn.ReservedID(), nil } +var noop = func(int) {} + // Reserve creates a reserved connection and returns the id to it func (te *TxEngine) Reserve(ctx context.Context, options *querypb.ExecuteOptions, txID int64, preQueries []string) (int64, error) { span, ctx := trace.NewSpan(ctx, "TxEngine.Reserve") defer span.Finish() if txID == 0 { + err := te.isTxPoolAvailable(noop) + if err != nil { + return 0, err + } conn, err := te.reserve(ctx, options, preQueries) if err != nil { return 0, err @@ -525,16 +541,6 @@ func (te *TxEngine) Reserve(ctx context.Context, options *querypb.ExecuteOptions // Reserve creates a reserved connection and returns the id to it func (te *TxEngine) reserve(ctx context.Context, options *querypb.ExecuteOptions, preQueries []string) (*StatefulConnection, error) { - te.stateLock.Lock() - - canOpenTransactions := te.state == AcceptingReadOnly || te.state == AcceptingReadAndWrite - if !canOpenTransactions { - // We are not in a state where we can start new transactions. Abort. - te.stateLock.Unlock() - return nil, vterrors.Errorf(vtrpc.Code_UNAVAILABLE, "cannot provide new connection in state %v", te.state) - } - te.stateLock.Unlock() - conn, err := te.txPool.scp.NewConn(ctx, options) if err != nil { return nil, err diff --git a/go/vt/vttablet/tabletserver/tx_engine_test.go b/go/vt/vttablet/tabletserver/tx_engine_test.go index 4b6b3f8d53b..18bde479420 100644 --- a/go/vt/vttablet/tabletserver/tx_engine_test.go +++ b/go/vt/vttablet/tabletserver/tx_engine_test.go @@ -151,20 +151,41 @@ func TestTxEngineBegin(t *testing.T) { config := tabletenv.NewDefaultConfig() config.DB = newDBConfigs(db) te := NewTxEngine(tabletenv.NewEnv(config, "TabletServerTest")) - te.AcceptReadOnly() - tx1, _, err := te.Begin(ctx, nil, 0, &querypb.ExecuteOptions{}) - require.NoError(t, err) - _, _, err = te.Commit(ctx, tx1) - require.NoError(t, err) - require.Equal(t, "start transaction read only;commit", db.QueryLog()) - db.ResetQueryLog() - te.AcceptReadWrite() - tx2, _, err := te.Begin(ctx, nil, 0, &querypb.ExecuteOptions{}) - require.NoError(t, err) - _, _, err = te.Commit(ctx, tx2) - require.NoError(t, err) - require.Equal(t, "begin;commit", db.QueryLog()) + for _, exec := range []func() (int64, error){ + func() (int64, error) { + tx, _, err := te.Begin(ctx, nil, 0, &querypb.ExecuteOptions{}) + return tx, err + }, + func() (int64, error) { + return te.ReserveBegin(ctx, &querypb.ExecuteOptions{}, nil) + }, + } { + te.AcceptReadOnly() + tx1, err := exec() + require.NoError(t, err) + _, _, err = te.Commit(ctx, tx1) + require.NoError(t, err) + require.Equal(t, "start transaction read only;commit", db.QueryLog()) + db.ResetQueryLog() + + te.AcceptReadWrite() + tx2, err := exec() + require.NoError(t, err) + _, _, err = te.Commit(ctx, tx2) + require.NoError(t, err) + require.Equal(t, "begin;commit", db.QueryLog()) + db.ResetQueryLog() + + te.transition(Transitioning) + _, err = exec() + assert.EqualError(t, err, "tx engine can't accept new connections in state Transitioning") + + te.transition(NotServing) + _, err = exec() + assert.EqualError(t, err, "tx engine can't accept new connections in state NotServing") + } + } func TestTxEngineRenewFails(t *testing.T) { @@ -545,10 +566,10 @@ func TestTxEngineFailReserve(t *testing.T) { options := &querypb.ExecuteOptions{} _, err := te.Reserve(ctx, options, 0, nil) - assert.EqualError(t, err, "cannot provide new connection in state NotServing") + assert.EqualError(t, err, "tx engine can't accept new connections in state NotServing") _, err = te.ReserveBegin(ctx, options, nil) - assert.EqualError(t, err, "cannot provide new connection in state NotServing") + assert.EqualError(t, err, "tx engine can't accept new connections in state NotServing") te.AcceptReadOnly() From 72094107d17e9e749988e8f136da575e73b708dd Mon Sep 17 00:00:00 2001 From: GuptaManan100 Date: Wed, 12 May 2021 13:43:13 +0530 Subject: [PATCH 14/63] call analyzer only for the select statements Signed-off-by: GuptaManan100 --- go/vt/vtgate/planbuilder/fuzz.go | 8 ++++---- go/vt/vtgate/planbuilder/fuzz_test.go | 28 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 go/vt/vtgate/planbuilder/fuzz_test.go diff --git a/go/vt/vtgate/planbuilder/fuzz.go b/go/vt/vtgate/planbuilder/fuzz.go index c9e380b50b3..752897964a3 100644 --- a/go/vt/vtgate/planbuilder/fuzz.go +++ b/go/vt/vtgate/planbuilder/fuzz.go @@ -42,12 +42,12 @@ func FuzzAnalyse(data []byte) int { if err != nil { return -1 } - semTable, err := semantics.Analyze(tree, "", &fakeFuzzSI{}) - if err != nil { - return 0 - } switch stmt := tree.(type) { case *sqlparser.Select: + semTable, err := semantics.Analyze(tree, "", &fakeFuzzSI{}) + if err != nil { + return 0 + } _, _ = createQGFromSelect(stmt, semTable) default: return 0 diff --git a/go/vt/vtgate/planbuilder/fuzz_test.go b/go/vt/vtgate/planbuilder/fuzz_test.go new file mode 100644 index 00000000000..ccd7b9407be --- /dev/null +++ b/go/vt/vtgate/planbuilder/fuzz_test.go @@ -0,0 +1,28 @@ +/* +Copyright 2021 The Vitess Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package planbuilder + +import "testing" + +func TestFuzzAnalyze(t *testing.T) { + testcases := []string{"seT b=b"} + for _, testcase := range testcases { + t.Run(testcase, func(t *testing.T) { + FuzzAnalyse([]byte(testcase)) + }) + } +} From 6dba84da59c7ad2e6553c80e72ba3653b81f781a Mon Sep 17 00:00:00 2001 From: GuptaManan100 Date: Wed, 12 May 2021 14:04:21 +0530 Subject: [PATCH 15/63] fix server connection in mysql fuzzer Signed-off-by: GuptaManan100 --- go/mysql/mysql_fuzzer.go | 3 ++- go/mysql/mysql_fuzzer_test.go | 33 +++++++++++++++++++++++++++++++++ go/mysql/server.go | 2 +- 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 go/mysql/mysql_fuzzer_test.go diff --git a/go/mysql/mysql_fuzzer.go b/go/mysql/mysql_fuzzer.go index 4cfcd3619dd..ca417088f8b 100644 --- a/go/mysql/mysql_fuzzer.go +++ b/go/mysql/mysql_fuzzer.go @@ -95,7 +95,7 @@ func (t fuzztestRun) ComQuery(c *Conn, query string, callback func(*sqltypes.Res } func (t fuzztestRun) ComPrepare(c *Conn, query string, bindVars map[string]*querypb.BindVariable) ([]*querypb.Field, error) { - panic("implement me") + return nil, nil } func (t fuzztestRun) ComStmtExecute(c *Conn, prepare *PrepareData, callback func(*sqltypes.Result) error) error { @@ -205,6 +205,7 @@ func FuzzHandleNextCommand(data []byte) int { pos: -1, queryPacket: data, }) + sConn.PrepareData = map[uint32]*PrepareData{} handler := &fuzztestRun{} _ = sConn.handleNextCommand(handler) diff --git a/go/mysql/mysql_fuzzer_test.go b/go/mysql/mysql_fuzzer_test.go new file mode 100644 index 00000000000..3c5f831bd80 --- /dev/null +++ b/go/mysql/mysql_fuzzer_test.go @@ -0,0 +1,33 @@ +/* +Copyright 2021 The Vitess Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package mysql + +import ( + "strconv" + "testing" +) + +func TestFuzzHandleNextCommand(t *testing.T) { + testcases := [][]byte{ + {0x20, 0x20, 0x20, 0x00, 0x16, 0x20, 0x20, 0x20, 0x20, 0x20}, + } + for i, testcase := range testcases { + t.Run(strconv.Itoa(i), func(t *testing.T) { + FuzzHandleNextCommand(testcase) + }) + } +} diff --git a/go/mysql/server.go b/go/mysql/server.go index 0647e06644f..e6de1925974 100644 --- a/go/mysql/server.go +++ b/go/mysql/server.go @@ -183,7 +183,7 @@ type Listener struct { PreHandleFunc func(context.Context, net.Conn, uint32) (net.Conn, error) } -// NewFromListener creares a new mysql listener from an existing net.Listener +// NewFromListener creates a new mysql listener from an existing net.Listener func NewFromListener(l net.Listener, authServer AuthServer, handler Handler, connReadTimeout time.Duration, connWriteTimeout time.Duration) (*Listener, error) { cfg := ListenerConfig{ Listener: l, From d4b2325b98d44d37cfd47bc7d1d4418e0b7fca07 Mon Sep 17 00:00:00 2001 From: GuptaManan100 Date: Wed, 12 May 2021 14:17:13 +0530 Subject: [PATCH 16/63] caught error where the length of data is zero in the header Signed-off-by: GuptaManan100 --- go/mysql/conn.go | 3 +++ go/mysql/mysql_fuzzer_test.go | 1 + 2 files changed, 4 insertions(+) diff --git a/go/mysql/conn.go b/go/mysql/conn.go index cdb1282b571..599cbd80f1b 100644 --- a/go/mysql/conn.go +++ b/go/mysql/conn.go @@ -860,6 +860,9 @@ func (c *Conn) handleNextCommand(handler Handler) bool { } return false } + if len(data) == 0 { + return false + } switch data[0] { case ComQuit: diff --git a/go/mysql/mysql_fuzzer_test.go b/go/mysql/mysql_fuzzer_test.go index 3c5f831bd80..018bfdbfe01 100644 --- a/go/mysql/mysql_fuzzer_test.go +++ b/go/mysql/mysql_fuzzer_test.go @@ -24,6 +24,7 @@ import ( func TestFuzzHandleNextCommand(t *testing.T) { testcases := [][]byte{ {0x20, 0x20, 0x20, 0x00, 0x16, 0x20, 0x20, 0x20, 0x20, 0x20}, + {0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20}, } for i, testcase := range testcases { t.Run(strconv.Itoa(i), func(t *testing.T) { From 8a4b7a6348f09d22d020fbce0a5ef23e0f5e19d5 Mon Sep 17 00:00:00 2001 From: GuptaManan100 Date: Wed, 12 May 2021 14:48:29 +0530 Subject: [PATCH 17/63] ported fuzzer test to use files and added a new fuzzer test Signed-off-by: GuptaManan100 --- ...andle_next_command_fuzzer-4604217852559360 | Bin 0 -> 16385 bytes ...andle_next_command_fuzzer-4955625785262080 | Bin 0 -> 10 bytes ...andle_next_command_fuzzer-6488670103273472 | Bin 0 -> 10 bytes go/mysql/mysql_fuzzer_test.go | 28 +++++++++++++----- 4 files changed, 20 insertions(+), 8 deletions(-) create mode 100644 go/mysql/fuzzdata/clusterfuzz-testcase-minimized-handle_next_command_fuzzer-4604217852559360 create mode 100644 go/mysql/fuzzdata/clusterfuzz-testcase-minimized-handle_next_command_fuzzer-4955625785262080 create mode 100644 go/mysql/fuzzdata/clusterfuzz-testcase-minimized-handle_next_command_fuzzer-6488670103273472 diff --git a/go/mysql/fuzzdata/clusterfuzz-testcase-minimized-handle_next_command_fuzzer-4604217852559360 b/go/mysql/fuzzdata/clusterfuzz-testcase-minimized-handle_next_command_fuzzer-4604217852559360 new file mode 100644 index 0000000000000000000000000000000000000000..1a7853faf71aca53dd976069a566868e6877160a GIT binary patch literal 16385 zcmeI!!3~2j5ClL_Ug;p+P)llvl&Vbyd=fdK1jPCnKMXI}8(a3R@7wg));{-X`Moc# zJq-c`2oNYPuzgSa_PQ6ZQh5Xj5Fl`{z!2BT5Frm6fieQ=$Id_B2md})H0{{Z50KotN literal 0 HcmV?d00001 diff --git a/go/mysql/mysql_fuzzer_test.go b/go/mysql/mysql_fuzzer_test.go index 018bfdbfe01..fa5e1ebc41d 100644 --- a/go/mysql/mysql_fuzzer_test.go +++ b/go/mysql/mysql_fuzzer_test.go @@ -17,17 +17,29 @@ limitations under the License. package mysql import ( - "strconv" + "io/ioutil" + "path" + "runtime/debug" "testing" + + "github.com/stretchr/testify/require" ) -func TestFuzzHandleNextCommand(t *testing.T) { - testcases := [][]byte{ - {0x20, 0x20, 0x20, 0x00, 0x16, 0x20, 0x20, 0x20, 0x20, 0x20}, - {0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20}, - } - for i, testcase := range testcases { - t.Run(strconv.Itoa(i), func(t *testing.T) { +func TestFuzzHandleNextCommandFromFile(t *testing.T) { + directoryName := "fuzzdata" + files, err := ioutil.ReadDir(directoryName) + require.NoError(t, err) + for _, file := range files { + t.Run(file.Name(), func(t *testing.T) { + defer func() { + r := recover() + if r != nil { + t.Error(r) + t.Fatal(string(debug.Stack())) + } + }() + testcase, err := ioutil.ReadFile(path.Join(directoryName, file.Name())) + require.NoError(t, err) FuzzHandleNextCommand(testcase) }) } From ac274f2a2033128fc94a1dc54cc030d97d68e7c5 Mon Sep 17 00:00:00 2001 From: Alejandro Rodriguez Date: Wed, 5 May 2021 18:14:52 +0100 Subject: [PATCH 18/63] Add image and base image arguments to build.sh Signed-off-by: Alejandro Rodriguez --- docker/bootstrap/README.md | 18 ++++++++++++++++++ docker/bootstrap/build.sh | 30 +++++++++++++++++++++++++++++- 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/docker/bootstrap/README.md b/docker/bootstrap/README.md index 9014d8bbb86..3d19d0b750b 100644 --- a/docker/bootstrap/README.md +++ b/docker/bootstrap/README.md @@ -25,6 +25,24 @@ vitess$ docker/bootstrap/build.sh common vitess$ docker/bootstrap/build.sh mysql56 ``` +Is it also possible to specify the resulting image name: + +```sh +vitess$ docker/bootstrap/build.sh common --image my-common-image +``` + +If custom image names are specified, you might need to set the base image name when building flavors: + +```sh +vitess$ docker/bootstrap/build.sh mysql56 --base_image my-common-image +``` + +Both arguments can be combined. For example: + +```sh +vitess$ docker/bootstrap/build.sh mysql56 --base_image my-common-image --image my-mysql-image +``` + ## For Vitess Project Maintainers To update all bootstrap images on Docker Hub, you can use the `docker_bootstrap` diff --git a/docker/bootstrap/build.sh b/docker/bootstrap/build.sh index 7d0d558c194..1b640aaa638 100755 --- a/docker/bootstrap/build.sh +++ b/docker/bootstrap/build.sh @@ -13,6 +13,21 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +# +# Usage: +# +# First build the `common` image, then any flavors you want. For example: +# $ docker/bootstrap/build.sh common +# $ docker/bootstrap/build.sh mysql56 +# +# Is it also possible to specify the resulting image name: +# $ docker/bootstrap/build.sh common --image my-common-image +# +# If custom image names are specified, you might need to set the base image name when building flavors: +# $ docker/bootstrap/build.sh mysql56 --base_image my-common-image +# Both arguments can be combined. For example: +# $ docker/bootstrap/build.sh mysql56 --base_image my-common-image --image my-mysql-image + flavor=$1 if [[ -z "$flavor" ]]; then @@ -33,6 +48,19 @@ chmod -R o=g * arch=$(uname -m) [ "$arch" == "aarch64" ] && [ $flavor != "common" ] && arch_ext='-arm64v8' + + +base_image="${base_image:-vitess/bootstrap:$version-common}" +image="${image:-vitess/bootstrap:$version-$flavor$arch_ext}" + +while [ $# -gt 0 ]; do + if [[ $1 == *"--"* ]]; then + param="${1/--/}" + declare $param="$2" + fi + shift +done + if [ -f "docker/bootstrap/Dockerfile.$flavor$arch_ext" ]; then - docker build --no-cache -f docker/bootstrap/Dockerfile.$flavor$arch_ext -t vitess/bootstrap:$version-$flavor$arch_ext --build-arg bootstrap_version=$version . + docker build --no-cache -f docker/bootstrap/Dockerfile.$flavor$arch_ext -t $image --build-arg bootstrap_version=$version --build-arg image=$base_image . fi From d8aa87a25e2d645edf6a025e4eb68fe478c2e7a4 Mon Sep 17 00:00:00 2001 From: Andres Taylor Date: Wed, 12 May 2021 14:57:21 +0200 Subject: [PATCH 19/63] dont read over the limits Signed-off-by: Andres Taylor --- go/mysql/mysql_fuzzer.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go/mysql/mysql_fuzzer.go b/go/mysql/mysql_fuzzer.go index ca417088f8b..a339488a300 100644 --- a/go/mysql/mysql_fuzzer.go +++ b/go/mysql/mysql_fuzzer.go @@ -119,8 +119,8 @@ type fuzztestConn struct { } func (t fuzztestConn) Read(b []byte) (n int, err error) { - for j, i := range t.queryPacket { - b[j] = i + for i := 0; i < len(b) && i < len(t.queryPacket); i++ { + b[i] = t.queryPacket[i] } return len(b), nil } From 7bd1c6a05a2d49e44ce0419303ae4062eedc93ab Mon Sep 17 00:00:00 2001 From: Harshit Gangal Date: Wed, 12 May 2021 20:15:25 +0530 Subject: [PATCH 20/63] fix the error message Signed-off-by: Harshit Gangal --- go/vt/vttablet/tabletserver/state_manager.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/vt/vttablet/tabletserver/state_manager.go b/go/vt/vttablet/tabletserver/state_manager.go index 909dca84208..36be73038cc 100644 --- a/go/vt/vttablet/tabletserver/state_manager.go +++ b/go/vt/vttablet/tabletserver/state_manager.go @@ -391,7 +391,7 @@ func (sm *stateManager) verifyTargetLocked(ctx context.Context, target *querypb. return nil } } - return vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "%s: %v, want: %v or %v", vterrors.WrongTablet, sm.target.TabletType, sm.target.TabletType, sm.alsoAllow) + return vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "%s: %v, want: %v or %v", vterrors.WrongTablet, target.TabletType, sm.target.TabletType, sm.alsoAllow) } } else { if !tabletenv.IsLocalContext(ctx) { From 5e1619aad705fe59591636f3f153f3056b6d94ac Mon Sep 17 00:00:00 2001 From: Harshit Gangal Date: Wed, 12 May 2021 20:17:45 +0530 Subject: [PATCH 21/63] reset the shard session for reserved connection if the error is caused by failover Signed-off-by: Harshit Gangal --- go/vt/vtgate/buffer/buffer.go | 19 ++++++++++--------- go/vt/vtgate/scatter_conn.go | 13 ++++++++----- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/go/vt/vtgate/buffer/buffer.go b/go/vt/vtgate/buffer/buffer.go index 8598d6ce995..3f77799c4c5 100644 --- a/go/vt/vtgate/buffer/buffer.go +++ b/go/vt/vtgate/buffer/buffer.go @@ -195,7 +195,7 @@ type RetryDoneFunc context.CancelFunc func (b *Buffer) WaitForFailoverEnd(ctx context.Context, keyspace, shard string, err error) (RetryDoneFunc, error) { // If an err is given, it must be related to a failover. // We never buffer requests with other errors. - if err != nil && !causedByFailover(err) { + if err != nil && !CausedByFailover(err) { return nil, nil } @@ -257,32 +257,33 @@ func (b *Buffer) StatsUpdate(ts *discovery.LegacyTabletStats) { sb.recordExternallyReparentedTimestamp(timestamp, ts.Tablet.Alias) } -// causedByFailover returns true if "err" was supposedly caused by a failover. +// CausedByFailover returns true if "err" was supposedly caused by a failover. // To simplify things, we've merged the detection for different MySQL flavors // in one function. Supported flavors: MariaDB, MySQL, Google internal. -func causedByFailover(err error) bool { +func CausedByFailover(err error) bool { log.V(2).Infof("Checking error (type: %T) if it is caused by a failover. err: %v", err, err) // TODO(sougou): Remove the INTERNAL check after rollout. if code := vterrors.Code(err); code != vtrpcpb.Code_FAILED_PRECONDITION && code != vtrpcpb.Code_INTERNAL { return false } + errString := err.Error() switch { // All flavors. - case strings.Contains(err.Error(), "operation not allowed in state NOT_SERVING") || - strings.Contains(err.Error(), "operation not allowed in state SHUTTING_DOWN") || + case strings.Contains(errString, "operation not allowed in state NOT_SERVING") || + strings.Contains(errString, "operation not allowed in state SHUTTING_DOWN") || // Match 1290 if -queryserver-config-terse-errors explicitly hid the error message // (which it does to avoid logging the original query including any PII). - strings.Contains(err.Error(), "(errno 1290) (sqlstate HY000) during query:"): + strings.Contains(errString, "(errno 1290) (sqlstate HY000) during query:"): return true // MariaDB flavor. - case strings.Contains(err.Error(), "The MariaDB server is running with the --read-only option so it cannot execute this statement (errno 1290) (sqlstate HY000)"): + case strings.Contains(errString, "The MariaDB server is running with the --read-only option so it cannot execute this statement (errno 1290) (sqlstate HY000)"): return true // MySQL flavor. - case strings.Contains(err.Error(), "The MySQL server is running with the --read-only option so it cannot execute this statement (errno 1290) (sqlstate HY000)"): + case strings.Contains(errString, "The MySQL server is running with the --read-only option so it cannot execute this statement (errno 1290) (sqlstate HY000)"): return true // Google internal flavor. - case strings.Contains(err.Error(), "failover in progress (errno 1227) (sqlstate 42000)"): + case strings.Contains(errString, "failover in progress (errno 1227) (sqlstate 42000)"): return true } return false diff --git a/go/vt/vtgate/scatter_conn.go b/go/vt/vtgate/scatter_conn.go index fafd1f124f2..dd7bea88965 100644 --- a/go/vt/vtgate/scatter_conn.go +++ b/go/vt/vtgate/scatter_conn.go @@ -24,6 +24,8 @@ import ( "sync" "time" + "vitess.io/vitess/go/vt/vtgate/buffer" + "github.com/golang/protobuf/proto" "vitess.io/vitess/go/mysql" @@ -221,7 +223,7 @@ func (stc *ScatterConn) ExecuteMultiShard( } retryRequest := func(exec func()) { - retry := checkAndResetShardSession(info, err, session) + retry := checkAndResetShardSession(info, err, session, rs.Target) switch retry { case newQS: // Current tablet is not available, try querying new tablet using gateway. @@ -288,13 +290,13 @@ func (stc *ScatterConn) ExecuteMultiShard( return qr, allErrors.GetErrors() } -func checkAndResetShardSession(info *shardActionInfo, err error, session *SafeSession) reset { +func checkAndResetShardSession(info *shardActionInfo, err error, session *SafeSession, target *querypb.Target) reset { retry := none if info.reservedID != 0 && info.transactionID == 0 { if wasConnectionClosed(err) { retry = shard } - if requireNewQS(err) { + if requireNewQS(err, target) { retry = newQS } } @@ -700,10 +702,11 @@ func wasConnectionClosed(err error) bool { (sqlErr.Number() == mysql.ERQueryInterrupted && txClosed.MatchString(message)) } -func requireNewQS(err error) bool { +func requireNewQS(err error, target *querypb.Target) bool { code := vterrors.Code(err) msg := err.Error() - return code == vtrpcpb.Code_FAILED_PRECONDITION && (vterrors.RxOp.MatchString(msg) || vterrors.RxWrongTablet.MatchString(msg)) + return (code == vtrpcpb.Code_FAILED_PRECONDITION && (vterrors.RxOp.MatchString(msg) || vterrors.RxWrongTablet.MatchString(msg))) || + (target != nil && target.TabletType == topodatapb.TabletType_MASTER && buffer.CausedByFailover(err)) } // actionInfo looks at the current session, and returns information about what needs to be done for this tablet From f5c2920423119999d0629718f5bb5bc647a5efbf Mon Sep 17 00:00:00 2001 From: Harshit Gangal Date: Wed, 12 May 2021 20:18:29 +0530 Subject: [PATCH 22/63] buffer test more assert Signed-off-by: Harshit Gangal --- .../endtoend/tabletgateway/buffer/buffer_test.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/go/test/endtoend/tabletgateway/buffer/buffer_test.go b/go/test/endtoend/tabletgateway/buffer/buffer_test.go index 9f55445963b..46a8b8d7f53 100644 --- a/go/test/endtoend/tabletgateway/buffer/buffer_test.go +++ b/go/test/endtoend/tabletgateway/buffer/buffer_test.go @@ -163,7 +163,7 @@ func updateExecute(c *threadParams, conn *mysql.Conn) error { if err != nil { _, errRollback := conn.ExecuteFetch("rollback", 1000, true) if errRollback != nil { - log.Errorf("Error in rollback: %v", errRollback) + log.Errorf("Error in rollback #%d: %v", attempt, errRollback) } c.commitErrors++ if c.commitErrors > 1 { @@ -175,7 +175,7 @@ func updateExecute(c *threadParams, conn *mysql.Conn) error { if err != nil { _, errRollback := conn.ExecuteFetch("rollback", 1000, true) if errRollback != nil { - log.Errorf("Error in rollback: %v", errRollback) + log.Errorf("Error in rollback #%d: %v", attempt, errRollback) } c.commitErrors++ if c.commitErrors > 1 { @@ -257,6 +257,8 @@ func testBufferBase(t *testing.T, isExternalParent bool, useReservedConn bool) { if exitCode != 0 { t.Fatal("failed to start cluster") } + defer clusterInstance.Teardown() + // Healthcheck interval on tablet is set to 1s, so sleep for 2s time.Sleep(2 * time.Second) conn, err := mysql.Connect(ctx, &vtParams) @@ -296,7 +298,8 @@ func testBufferBase(t *testing.T, isExternalParent bool, useReservedConn bool) { updateThreadInstance.setNotifyAfterNSuccessfulRpcs(10) if isExternalParent { - externalReparenting(ctx, t, clusterInstance) + err := externalReparenting(t, clusterInstance) + require.NoError(t, err) } else { //reparent call err := clusterInstance.VtctlclientProcess.ExecuteCommand("PlannedReparentShard", "-keyspace_shard", @@ -365,7 +368,6 @@ func testBufferBase(t *testing.T, isExternalParent bool, useReservedConn bool) { assert.Equal(t, masterPromotedCount, bufferingStops) } wg.Wait() - clusterInstance.Teardown() } func getVarFromVtgate(t *testing.T, label string, param string, resultMap map[string]interface{}) int { @@ -385,7 +387,7 @@ func getVarFromVtgate(t *testing.T, label string, param string, resultMap map[st return paramVal } -func externalReparenting(ctx context.Context, t *testing.T, clusterInstance *cluster.LocalProcessCluster) { +func externalReparenting(t *testing.T, clusterInstance *cluster.LocalProcessCluster) error { start := time.Now() // Demote master Query @@ -426,5 +428,5 @@ func externalReparenting(ctx context.Context, t *testing.T, clusterInstance *clu oldMaster.VttabletProcess.QueryTablet(changeMasterCommands, keyspaceUnshardedName, true) // Notify the new vttablet master about the reparent. - clusterInstance.VtctlclientProcess.ExecuteCommand("TabletExternallyReparented", newMaster.Alias) + return clusterInstance.VtctlclientProcess.ExecuteCommand("TabletExternallyReparented", newMaster.Alias) } From 683c0e77d36342a0987aae081f33fe337b7027fa Mon Sep 17 00:00:00 2001 From: Sara Bee <855595+doeg@users.noreply.github.com> Date: Wed, 12 May 2021 13:42:08 -0400 Subject: [PATCH 23/63] [vtadmin-web] Add Keyspace detail view Signed-off-by: Sara Bee <855595+doeg@users.noreply.github.com> --- web/vtadmin/src/components/App.tsx | 5 + .../src/components/links/KeyspaceLink.tsx | 58 +++++ .../src/components/routes/Keyspaces.tsx | 7 +- web/vtadmin/src/components/routes/Schema.tsx | 6 +- web/vtadmin/src/components/routes/Schemas.tsx | 7 +- web/vtadmin/src/components/routes/Tablets.tsx | 26 +- .../src/components/routes/Workflow.tsx | 31 ++- .../src/components/routes/Workflows.tsx | 9 +- .../routes/keyspace/Keyspace.module.scss | 54 +++++ .../components/routes/keyspace/Keyspace.tsx | 97 ++++++++ .../routes/keyspace/KeyspaceShards.test.tsx | 139 +++++++++++ .../routes/keyspace/KeyspaceShards.tsx | 229 ++++++++++++++++++ 12 files changed, 650 insertions(+), 18 deletions(-) create mode 100644 web/vtadmin/src/components/links/KeyspaceLink.tsx create mode 100644 web/vtadmin/src/components/routes/keyspace/Keyspace.module.scss create mode 100644 web/vtadmin/src/components/routes/keyspace/Keyspace.tsx create mode 100644 web/vtadmin/src/components/routes/keyspace/KeyspaceShards.test.tsx create mode 100644 web/vtadmin/src/components/routes/keyspace/KeyspaceShards.tsx diff --git a/web/vtadmin/src/components/App.tsx b/web/vtadmin/src/components/App.tsx index 437ee152dbd..448250c2a94 100644 --- a/web/vtadmin/src/components/App.tsx +++ b/web/vtadmin/src/components/App.tsx @@ -30,6 +30,7 @@ import { Stream } from './routes/Stream'; import { Workflows } from './routes/Workflows'; import { Workflow } from './routes/Workflow'; import { VTExplain } from './routes/VTExplain'; +import { Keyspace } from './routes/keyspace/Keyspace'; export const App = () => { return ( @@ -53,6 +54,10 @@ export const App = () => { + + + + diff --git a/web/vtadmin/src/components/links/KeyspaceLink.tsx b/web/vtadmin/src/components/links/KeyspaceLink.tsx new file mode 100644 index 00000000000..d56023a23b1 --- /dev/null +++ b/web/vtadmin/src/components/links/KeyspaceLink.tsx @@ -0,0 +1,58 @@ +/** + * Copyright 2021 The Vitess Authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React from 'react'; +import { Link } from 'react-router-dom'; +import { stringify } from '../../util/queryString'; + +interface Props { + className?: string; + clusterID: string | null | undefined; + name: string | null | undefined; + // Shorthand property equivalent to "shardFilter:${shard}" + // Note that `shard` will be ignored if `shardFilter` is defined. + shard?: string | null | undefined; + shardFilter?: string | null | undefined; +} + +export const KeyspaceLink: React.FunctionComponent = ({ + children, + className, + clusterID, + name, + shard, + ...props +}) => { + if (!clusterID || !name) { + return {children}; + } + + let shardFilter = props.shardFilter; + if (!shardFilter && !!shard) { + shardFilter = `shard:${shard}`; + } + + const to = { + pathname: `/keyspace/${clusterID}/${name}`, + search: stringify({ shardFilter }), + }; + + return ( + + {children} + + ); +}; diff --git a/web/vtadmin/src/components/routes/Keyspaces.tsx b/web/vtadmin/src/components/routes/Keyspaces.tsx index 9cb67cd0489..18ab4be7bf0 100644 --- a/web/vtadmin/src/components/routes/Keyspaces.tsx +++ b/web/vtadmin/src/components/routes/Keyspaces.tsx @@ -29,6 +29,7 @@ import { ContentContainer } from '../layout/ContentContainer'; import { WorkspaceHeader } from '../layout/WorkspaceHeader'; import { WorkspaceTitle } from '../layout/WorkspaceTitle'; import { DataFilter } from '../dataTable/DataFilter'; +import { KeyspaceLink } from '../links/KeyspaceLink'; export const Keyspaces = () => { useDocumentTitle('Keyspaces'); @@ -56,8 +57,10 @@ export const Keyspaces = () => { rows.map((row, idx) => ( -
{row.name}
-
{row.cluster}
+ +
{row.name}
+
{row.cluster}
+
{!!row.servingShards && ( diff --git a/web/vtadmin/src/components/routes/Schema.tsx b/web/vtadmin/src/components/routes/Schema.tsx index 86358145ec2..2bc60f909c5 100644 --- a/web/vtadmin/src/components/routes/Schema.tsx +++ b/web/vtadmin/src/components/routes/Schema.tsx @@ -26,6 +26,7 @@ import { NavCrumbs } from '../layout/NavCrumbs'; import { WorkspaceHeader } from '../layout/WorkspaceHeader'; import { WorkspaceTitle } from '../layout/WorkspaceTitle'; import { Tooltip } from '../tooltip/Tooltip'; +import { KeyspaceLink } from '../links/KeyspaceLink'; interface RouteParams { clusterID: string; @@ -70,7 +71,10 @@ export const Schema = () => { Cluster: {clusterID} - Keyspace: {keyspace} + Keyspace:{' '} + + {keyspace} + diff --git a/web/vtadmin/src/components/routes/Schemas.tsx b/web/vtadmin/src/components/routes/Schemas.tsx index 9277306c2e5..bdb4b4b438e 100644 --- a/web/vtadmin/src/components/routes/Schemas.tsx +++ b/web/vtadmin/src/components/routes/Schemas.tsx @@ -29,6 +29,7 @@ import { DataTable } from '../dataTable/DataTable'; import { ContentContainer } from '../layout/ContentContainer'; import { WorkspaceHeader } from '../layout/WorkspaceHeader'; import { WorkspaceTitle } from '../layout/WorkspaceTitle'; +import { KeyspaceLink } from '../links/KeyspaceLink'; import { HelpTooltip } from '../tooltip/HelpTooltip'; const TABLE_COLUMNS = [ @@ -90,8 +91,10 @@ export const Schemas = () => { return ( -
{row.keyspace}
-
{row.cluster}
+ +
{row.keyspace}
+
{row.cluster}
+
{href ? {row.table} : row.table} diff --git a/web/vtadmin/src/components/routes/Tablets.tsx b/web/vtadmin/src/components/routes/Tablets.tsx index ddfc851f6b2..a2b1fddce4e 100644 --- a/web/vtadmin/src/components/routes/Tablets.tsx +++ b/web/vtadmin/src/components/routes/Tablets.tsx @@ -30,6 +30,7 @@ import { ContentContainer } from '../layout/ContentContainer'; import { WorkspaceHeader } from '../layout/WorkspaceHeader'; import { WorkspaceTitle } from '../layout/WorkspaceTitle'; import { DataFilter } from '../dataTable/DataFilter'; +import { KeyspaceLink } from '../links/KeyspaceLink'; export const Tablets = () => { useDocumentTitle('Tablets'); @@ -47,16 +48,25 @@ export const Tablets = () => { return rows.map((t, tdx) => ( -
{t.keyspace}
-
{t.cluster}
+ +
{t.keyspace}
+
{t.cluster}
+
- {t.shard} - {ksQuery.isSuccess && ( -
- {!t.isShardServing && 'NOT SERVING'} -
- )} + + {t.shard} + {ksQuery.isSuccess && ( +
+ {!t.isShardServing && 'NOT SERVING'} +
+ )} +
{t.type} diff --git a/web/vtadmin/src/components/routes/Workflow.tsx b/web/vtadmin/src/components/routes/Workflow.tsx index 04353c9fb16..aac7a8b3ca4 100644 --- a/web/vtadmin/src/components/routes/Workflow.tsx +++ b/web/vtadmin/src/components/routes/Workflow.tsx @@ -30,6 +30,7 @@ import { StreamStatePip } from '../pips/StreamStatePip'; import { formatAlias } from '../../util/tablets'; import { useDocumentTitle } from '../../hooks/useDocumentTitle'; import { formatDateTime } from '../../util/time'; +import { KeyspaceLink } from '../links/KeyspaceLink'; interface RouteParams { clusterID: string; @@ -63,6 +64,9 @@ export const Workflow = () => { ? `/workflow/${clusterID}/${keyspace}/${name}/stream/${row.tablet.cell}/${row.tablet.uid}/${row.id}` : null; + const source = getStreamSource(row); + const target = getStreamTarget(row, keyspace); + return ( @@ -74,9 +78,27 @@ export const Workflow = () => { Updated {formatDateTime(row.time_updated?.seconds)} - {getStreamSource(row) || N/A} - {getStreamTarget(row, keyspace) || N/A} + {source ? ( + + {source} + + ) : ( + N/A + )} + + + {target ? ( + + {source} + + ) : ( + N/A + )} {formatAlias(row.tablet)} @@ -97,7 +119,10 @@ export const Workflow = () => { Cluster: {clusterID} - Target keyspace: {keyspace} + Target keyspace:{' '} + + {keyspace} + diff --git a/web/vtadmin/src/components/routes/Workflows.tsx b/web/vtadmin/src/components/routes/Workflows.tsx index bdb946e3657..69531f12517 100644 --- a/web/vtadmin/src/components/routes/Workflows.tsx +++ b/web/vtadmin/src/components/routes/Workflows.tsx @@ -32,6 +32,7 @@ import { WorkspaceHeader } from '../layout/WorkspaceHeader'; import { WorkspaceTitle } from '../layout/WorkspaceTitle'; import { DataFilter } from '../dataTable/DataFilter'; import { Tooltip } from '../tooltip/Tooltip'; +import { KeyspaceLink } from '../links/KeyspaceLink'; export const Workflows = () => { useDocumentTitle('Workflows'); @@ -71,7 +72,9 @@ export const Workflows = () => { {row.source ? ( <> -
{row.source}
+ + {row.source} +
{(row.sourceShards || []).join(', ')}
) : ( @@ -81,7 +84,9 @@ export const Workflows = () => { {row.target ? ( <> -
{row.target}
+ + {row.target} +
{(row.targetShards || []).join(', ')}
) : ( diff --git a/web/vtadmin/src/components/routes/keyspace/Keyspace.module.scss b/web/vtadmin/src/components/routes/keyspace/Keyspace.module.scss new file mode 100644 index 00000000000..ef7851a375f --- /dev/null +++ b/web/vtadmin/src/components/routes/keyspace/Keyspace.module.scss @@ -0,0 +1,54 @@ +/** + * Copyright 2021 The Vitess Authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +.headingMeta { + display: flex; +} + +.headingMeta span { + display: inline-block; + line-height: 2; + + &::after { + color: var(--colorScaffoldingHighlight); + content: '/'; + display: inline-block; + margin: 0 1.2rem; + } + + &:last-child::after { + content: none; + } +} + +.placeholder { + align-items: center; + display: flex; + flex-direction: column; + font-size: var(--fontSizeLarge); + justify-content: center; + margin: 25vh auto; + max-width: 720px; + text-align: center; + + h1 { + margin: 1.6rem 0; + } +} + +.errorEmoji { + display: block; + font-size: 5.6rem; +} diff --git a/web/vtadmin/src/components/routes/keyspace/Keyspace.tsx b/web/vtadmin/src/components/routes/keyspace/Keyspace.tsx new file mode 100644 index 00000000000..5c73c18fadc --- /dev/null +++ b/web/vtadmin/src/components/routes/keyspace/Keyspace.tsx @@ -0,0 +1,97 @@ +/** + * Copyright 2021 The Vitess Authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Switch, useLocation, useParams, useRouteMatch } from 'react-router'; +import { Link, Redirect, Route } from 'react-router-dom'; + +import { useKeyspaces } from '../../../hooks/api'; +import { useDocumentTitle } from '../../../hooks/useDocumentTitle'; +import { NavCrumbs } from '../../layout/NavCrumbs'; +import { WorkspaceHeader } from '../../layout/WorkspaceHeader'; +import { WorkspaceTitle } from '../../layout/WorkspaceTitle'; +import style from './Keyspace.module.scss'; +import { KeyspaceShards } from './KeyspaceShards'; + +interface RouteParams { + clusterID: string; + name: string; +} + +export const Keyspace = () => { + const { clusterID, name } = useParams(); + const { path } = useRouteMatch(); + const { search } = useLocation(); + + useDocumentTitle(`${name} (${clusterID})`); + + // TODO(doeg): add a vtadmin-api endpoint to fetch a single keyspace + // See https://github.com/vitessio/vitess/projects/12#card-59980087 + const { data: keyspaces = [], ...kq } = useKeyspaces(); + const keyspace = keyspaces.find((k) => k.cluster?.id === clusterID && k.keyspace?.name === name); + + if (kq.error) { + return ( +
+ 😰 +

An error occurred

+ {(kq.error as any).response?.error?.message || kq.error?.message} +

+ ← All keyspaces +

+
+ ); + } + + if (!kq.isLoading && !keyspace) { + return ( +
+ 😖 +

Keyspace not found

+

+ ← All keyspaces +

+
+ ); + } + + return ( +
+ + + Keyspaces + + + {name} + +
+ + Cluster: {clusterID} + +
+
+ + {/* TODO skeleton placeholder */} + {!!kq.isLoading &&
Loading
} + + + + + + + + +
+ ); +}; diff --git a/web/vtadmin/src/components/routes/keyspace/KeyspaceShards.test.tsx b/web/vtadmin/src/components/routes/keyspace/KeyspaceShards.test.tsx new file mode 100644 index 00000000000..20c29e3045e --- /dev/null +++ b/web/vtadmin/src/components/routes/keyspace/KeyspaceShards.test.tsx @@ -0,0 +1,139 @@ +/** + * Copyright 2021 The Vitess Authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { topodata, vtadmin as pb } from '../../../proto/vtadmin'; +import { formatRows } from './KeyspaceShards'; + +describe('KeyspaceShards', () => { + describe('formatRows', () => { + const tests: { + name: string; + params: Parameters; + expected: ReturnType; + }[] = [ + { + name: 'should handle when keyspace is null', + params: [null, [], null], + expected: [], + }, + { + name: 'should filter across shards and tablets', + params: [ + pb.Keyspace.create({ + cluster: { + id: 'cluster1', + }, + keyspace: { + name: 'keyspace1', + }, + shards: { + '-80': { + name: '-80', + shard: { + is_master_serving: false, + }, + }, + '80-': { + name: '80-', + shard: { + is_master_serving: true, + }, + }, + }, + }), + [ + pb.Tablet.create({ + cluster: { id: 'cluster1' }, + state: pb.Tablet.ServingState.SERVING, + tablet: { + alias: { + cell: 'zone1', + uid: 100, + }, + keyspace: 'keyspace1', + shard: '-80', + type: topodata.TabletType.MASTER, + }, + }), + pb.Tablet.create({ + cluster: { id: 'cluster1' }, + state: pb.Tablet.ServingState.SERVING, + tablet: { + alias: { + cell: 'zone1', + uid: 200, + }, + keyspace: 'keyspace2', + shard: '-', + type: topodata.TabletType.MASTER, + }, + }), + pb.Tablet.create({ + cluster: { id: 'cluster1' }, + state: pb.Tablet.ServingState.NOT_SERVING, + tablet: { + alias: { + cell: 'zone1', + uid: 300, + }, + hostname: 'tablet-zone1-300-80-00', + keyspace: 'keyspace1', + shard: '80-', + type: topodata.TabletType.MASTER, + }, + }), + ], + 'not', + ], + expected: [ + { + // -80 matches the filter string "not" because shardState is "NOT_SERVING'", + // however all of its tablets are serving and therefore none of them match. + isShardServing: false, + shard: '-80', + shardState: 'NOT_SERVING', + tablets: [], + }, + { + // 80- (the shard itself) does not match the filter string, since + // its shardState is "SERVING'. However, its non-serving tablet + // does match the filter string, so we include it. + isShardServing: true, + shard: '80-', + shardState: 'SERVING', + tablets: [ + { + alias: 'zone1-300', + hostname: 'tablet-zone1-300-80-00', + shard: '80-', + tabletState: 'NOT_SERVING', + tabletType: 'PRIMARY', + _tabletStateEnum: pb.Tablet.ServingState.NOT_SERVING, + }, + ], + }, + ], + }, + ]; + + test.each(tests.map(Object.values))( + '%s', + (name: string, params: Parameters, expected: ReturnType) => { + const result = formatRows(...params); + expect(result).toMatchObject(expected); + } + ); + }); +}); diff --git a/web/vtadmin/src/components/routes/keyspace/KeyspaceShards.tsx b/web/vtadmin/src/components/routes/keyspace/KeyspaceShards.tsx new file mode 100644 index 00000000000..1c5e1b17ea9 --- /dev/null +++ b/web/vtadmin/src/components/routes/keyspace/KeyspaceShards.tsx @@ -0,0 +1,229 @@ +/** + * Copyright 2021 The Vitess Authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { groupBy, orderBy, uniq } from 'lodash'; + +import { topodata, vtadmin as pb } from '../../../proto/vtadmin.d'; +import { useTablets } from '../../../hooks/api'; +import { formatAlias, formatDisplayType, formatState } from '../../../util/tablets'; +import { DataTable } from '../../dataTable/DataTable'; +import { DataCell } from '../../dataTable/DataCell'; +import { ShardServingPip } from '../../pips/ShardServingPip'; +import { TabletServingPip } from '../../pips/TabletServingPip'; +import { DataFilter } from '../../dataTable/DataFilter'; +import { useSyncedURLParam } from '../../../hooks/useSyncedURLParam'; +import { filterNouns } from '../../../util/filterNouns'; +import { ContentContainer } from '../../layout/ContentContainer'; +interface Props { + keyspace: pb.Keyspace | null | undefined; +} + +type ShardState = 'SERVING' | 'NOT_SERVING'; + +const TABLE_COLUMNS = ['Shard', 'Tablet', 'Tablet State', 'Alias', 'Hostname']; +const PAGE_SIZE = 16; + +export const KeyspaceShards = ({ keyspace }: Props) => { + const { data: tablets = [], ...tq } = useTablets(); + const { value: filter, updateValue: updateFilter } = useSyncedURLParam('shardFilter'); + + const data = React.useMemo(() => { + if (!keyspace || tq.isLoading) { + return []; + } + + return formatRows(keyspace, tablets, filter); + }, [filter, keyspace, tablets, tq.isLoading]); + + const renderRows = React.useCallback( + (rows: typeof data) => { + return rows.reduce((acc, row) => { + if (!row.tablets.length) { + acc.push( + + + {row.shard} + {row.shardState === 'NOT_SERVING' && ( +
+ {row.shardState} +
+ )} +
+ +
+ No tablets in {keyspace?.keyspace?.name}/{row.shard}{' '} + {!!filter && 'matching filters'} +
+
+ + ); + } + + row.tablets.forEach((tablet, tdx) => { + const rowKey = `${row.shard}-${tablet.alias}`; + acc.push( + + {tdx === 0 && ( + + {row.shard} + {row.shardState === 'NOT_SERVING' && ( +
+ {row.shardState} +
+ )} +
+ )} + + {tablet.tabletType} + + {tablet.tabletState} + {tablet.alias} + {tablet.hostname} + + ); + }); + + return acc; + }, [] as JSX.Element[]); + }, + [filter, keyspace?.keyspace?.name] + ); + + if (!keyspace) { + return null; + } + + return ( + + updateFilter(e.target.value)} + onClear={() => updateFilter('')} + placeholder="Filter shards and tablets" + value={filter || ''} + /> + + + + ); +}; + +interface Row { + isShardServing: boolean; + shard: string | null | undefined; + shardState: ShardState; + tablets: { + alias: string | null; + hostname: string | null | undefined; + shard: string | null | undefined; + tabletState: string | pb.Tablet.ServingState.UNKNOWN; + tabletType: string | topodata.TabletType.UNKNOWN | null | undefined; + _tabletStateEnum: pb.Tablet.ServingState; + }[]; +} + +// Filtering data is complicated by how we group rows by their shard, +// since we want the filtering to apply to both shard-level properties, +// ("shard:-80") as well as nested tablet-level properties ("hostname:some-tablet-123"). +// +// This gets surprisingly complex: what do you do when fuzzy filtering, +// and you match a shard, and also _some_ tablets in the shard -- do you show all +// of the tablets (since the shard matches), or (more likely) just the filtered ones? +// +// Instead of doing a complicated-and-hacky solution, this approach is a +// fairly straightforward, fairly hacky, and definitely non-generalized approach +// that still feels intuitive to use: +// +// 1. Filtering all the shards in the keyspace by filter string, +// which includes all of the tablets in that shards. +// +// 2. Filtering all the tablets in the keyspace (across all shards, +// not just the filtered shards) by filter string. +// +// 3. Taking the intersection of these two sets of shards/tablets. +// +// Investigating a more robust + general filtering implementation +// that supports complex use cases is ticketed here: +// https://github.com/vitessio/vitess/projects/12#card-60968004) +export const formatRows = ( + keyspace: pb.Keyspace | null | undefined, + tablets: pb.Tablet[], + filter: string | null | undefined +): Row[] => { + if (!keyspace) { + return []; + } + + // Reduce the set of tablets to just the ones for this keyspace, + // and map them to simplified objects to allow key/value filtering + // with `filterNouns` + const tabletsForKeyspace = orderBy( + tablets + .filter((t) => t.cluster?.id === keyspace.cluster?.id && t.tablet?.keyspace === keyspace.keyspace?.name) + .map((t) => ({ + alias: formatAlias(t.tablet?.alias), + hostname: t.tablet?.hostname, + shard: t.tablet?.shard, + tabletState: formatState(t), + tabletType: formatDisplayType(t), + _tabletStateEnum: t.state, + })), + ['tabletType', 'alias'] + ); + + // Compare tablets against the filter string + const filteredTablets = filterNouns(filter, tabletsForKeyspace); + const filteredTabletsByShard = groupBy(filteredTablets, 'shard'); + + const shardsForKeyspace = Object.values(keyspace.shards || {}).map((shard) => { + const isShardServing = !!shard.shard?.is_master_serving; + return { + isShardServing, + shard: shard.name, + shardState: (isShardServing ? 'SERVING' : 'NOT_SERVING') as ShardState, + }; + }); + const shardsForKeyspaceByShard = groupBy(shardsForKeyspace, 'shard'); + + const filteredShards = filterNouns(filter, shardsForKeyspace); + const filteredShardsByShard = groupBy(filteredShards, 'shard'); + + // Take the intersection of all shardNames across... + const allFilteredShards = uniq([ + // 1. Shards with tablets matching the filter criteria + ...Object.keys(filteredShardsByShard), + // 2. Shards that themselves match the filter criteria + ...Object.keys(filteredTabletsByShard), + ]); + + // "Hydrate" the filtered shard names into rows + const rows = allFilteredShards.reduce((acc, shardName) => { + const shard = shardsForKeyspaceByShard[shardName][0]; + if (!shard) { + return acc; + } + + acc.push({ + ...shard, + // Make sure we only take the filtered tablets + tablets: filteredTabletsByShard[shardName] || [], + }); + + return acc; + }, [] as Row[]); + + return orderBy(rows, 'shard'); +}; From c238ae2beb70445a05490f2f598cf756bb073e22 Mon Sep 17 00:00:00 2001 From: Jacques Grove Date: Wed, 12 May 2021 14:32:53 -0700 Subject: [PATCH 24/63] Fix ghost/pt-osc in the external DB case where MySQL might be reporting a bogus (e.g. private) hostname and/or port. Signed-off-by: Jacques Grove --- go/vt/vttablet/onlineddl/executor.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/go/vt/vttablet/onlineddl/executor.go b/go/vt/vttablet/onlineddl/executor.go index 756bd35d692..f9e1d066a8d 100644 --- a/go/vt/vttablet/onlineddl/executor.go +++ b/go/vt/vttablet/onlineddl/executor.go @@ -344,9 +344,15 @@ func (e *Executor) readMySQLVariables(ctx context.Context) (variables *mysqlVari } variables = &mysqlVariables{} - variables.host = row["hostname"].ToString() + if e.env.Config().DB.Host != "" { + variables.host = e.env.Config().DB.Host + } else { + variables.host = row["hostname"].ToString() + } - if port, err := row.ToInt64("port"); err != nil { + if e.env.Config().DB.Port != 0 { + variables.port = e.env.Config().DB.Port + } else if port, err := row.ToInt64("port"); err != nil { return nil, vterrors.Errorf(vtrpcpb.Code_UNKNOWN, "could not parse @@global.port %v: %v", tm, err) } else { variables.port = int(port) From 7518be4e8745be37869ede52b45cee883e8670c6 Mon Sep 17 00:00:00 2001 From: deepthi Date: Wed, 12 May 2021 15:59:51 -0700 Subject: [PATCH 25/63] Release notes: add #8080 to Known Issues Signed-off-by: deepthi --- doc/releasenotes/10_0_0_release_notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/releasenotes/10_0_0_release_notes.md b/doc/releasenotes/10_0_0_release_notes.md index 52db491c0c0..025c57d2512 100644 --- a/doc/releasenotes/10_0_0_release_notes.md +++ b/doc/releasenotes/10_0_0_release_notes.md @@ -3,6 +3,7 @@ This release complies with VEP-3 which removes the upgrade order requirement. Co ## Known Issues * Running binaries with `--version` or running `select @@version` from a MySQL client still shows `10.0.0-RC1` * Online DDL [cannot be used](https://github.com/vitessio/vitess/pull/7873#issuecomment-822798180) if you are using the keyspace filtering feature of VTGate +* VReplication errors when a fixed-length binary column is used as the sharding key #8080 ## Bugs Fixed From 6688e476187256b081f02d6a7cd7ce727e1fcabc Mon Sep 17 00:00:00 2001 From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Date: Thu, 13 May 2021 08:59:31 +0300 Subject: [PATCH 26/63] Support for vtgate -enable_direct_ddl flag Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> --- go/vt/schema/online_ddl.go | 2 ++ go/vt/vtgate/engine/ddl.go | 11 ++++++++--- go/vt/vtgate/planbuilder/builder.go | 1 + go/vt/vtgate/planbuilder/ddl.go | 12 +++++++----- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/go/vt/schema/online_ddl.go b/go/vt/schema/online_ddl.go index 531bbe4e56d..4d52ef493a5 100644 --- a/go/vt/schema/online_ddl.go +++ b/go/vt/schema/online_ddl.go @@ -41,6 +41,8 @@ var ( ) var ( + // ErrDirectDDLDisabled is returned when direct DDL is disabled, and a user attempts to run a DDL statement + ErrDirectDDLDisabled = errors.New("direct DDL is disabled") // ErrOnlineDDLDisabled is returned when online DDL is disabled, and a user attempts to run an online DDL operation (submit, review, control) ErrOnlineDDLDisabled = errors.New("online DDL is disabled") ErrForeignKeyFound = errors.New("Foreign key found") diff --git a/go/vt/vtgate/engine/ddl.go b/go/vt/vtgate/engine/ddl.go index f2b598749c1..110e85e3d24 100644 --- a/go/vt/vtgate/engine/ddl.go +++ b/go/vt/vtgate/engine/ddl.go @@ -37,6 +37,7 @@ type DDL struct { NormalDDL *Send OnlineDDL *OnlineDDL + DirectDDLEnabled bool OnlineDDLEnabled bool CreateTempTable bool @@ -98,14 +99,18 @@ func (ddl *DDL) Execute(vcursor VCursor, bindVars map[string]*query.BindVariable } ddl.OnlineDDL.DDLStrategySetting = ddlStrategySetting - if ddl.isOnlineSchemaDDL() { + switch { + case ddl.isOnlineSchemaDDL(): if !ddl.OnlineDDLEnabled { return nil, schema.ErrOnlineDDLDisabled } return ddl.OnlineDDL.Execute(vcursor, bindVars, wantfields) + default: // non online-ddl + if !ddl.DirectDDLEnabled { + return nil, schema.ErrDirectDDLDisabled + } + return ddl.NormalDDL.Execute(vcursor, bindVars, wantfields) } - - return ddl.NormalDDL.Execute(vcursor, bindVars, wantfields) } // StreamExecute implements the Primitive interface diff --git a/go/vt/vtgate/planbuilder/builder.go b/go/vt/vtgate/planbuilder/builder.go index ee3105084d2..87864cec921 100644 --- a/go/vt/vtgate/planbuilder/builder.go +++ b/go/vt/vtgate/planbuilder/builder.go @@ -38,6 +38,7 @@ import ( var ( enableOnlineDDL = flag.Bool("enable_online_ddl", true, "Allow users to submit, review and control Online DDL") + enableDirectDDL = flag.Bool("enable_direct_ddl", true, "Allow users to submit direct DDL statements") ) // ContextVSchema defines the interface for this package to fetch diff --git a/go/vt/vtgate/planbuilder/ddl.go b/go/vt/vtgate/planbuilder/ddl.go index 463789c0d2d..5459b6dcf4b 100644 --- a/go/vt/vtgate/planbuilder/ddl.go +++ b/go/vt/vtgate/planbuilder/ddl.go @@ -68,11 +68,13 @@ func buildGeneralDDLPlan(sql string, ddlStatement sqlparser.DDLStatement, reserv } return &engine.DDL{ - Keyspace: normalDDLPlan.Keyspace, - SQL: normalDDLPlan.Query, - DDL: ddlStatement, - NormalDDL: normalDDLPlan, - OnlineDDL: onlineDDLPlan, + Keyspace: normalDDLPlan.Keyspace, + SQL: normalDDLPlan.Query, + DDL: ddlStatement, + NormalDDL: normalDDLPlan, + OnlineDDL: onlineDDLPlan, + + DirectDDLEnabled: *enableDirectDDL, OnlineDDLEnabled: *enableOnlineDDL, CreateTempTable: ddlStatement.IsTemporary(), From cfdb5ccd8f4fa9773d5bcdfa946b00b392de2c82 Mon Sep 17 00:00:00 2001 From: Andres Taylor Date: Thu, 13 May 2021 10:18:02 +0200 Subject: [PATCH 27/63] clean up parse tests around create table Signed-off-by: Andres Taylor --- go/vt/sqlparser/parse_test.go | 841 +++++++++++++++++----------------- 1 file changed, 414 insertions(+), 427 deletions(-) diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index b062dd3a880..7975b4251d4 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -1971,7 +1971,7 @@ func TestValid(t *testing.T) { if tcase.output == "" { tcase.output = tcase.input } - tree, err := Parse(tcase.input) + tree, err := ParseStrictDDL(tcase.input) require.NoError(t, err, tcase.input) out := String(tree) if tcase.output != out { @@ -2544,443 +2544,430 @@ func TestLoadData(t *testing.T) { } func TestCreateTable(t *testing.T) { - validSQL := []string{ + createTableQueries := []struct { + input, output string + }{{ // test all the data types and options - "create table t (\n" + - " col_bit bit,\n" + - " col_tinyint tinyint auto_increment,\n" + - " col_tinyint3 tinyint(3) unsigned,\n" + - " col_smallint smallint,\n" + - " col_smallint4 smallint(4) zerofill,\n" + - " col_mediumint mediumint,\n" + - " col_mediumint5 mediumint(5) unsigned not null,\n" + - " col_int int,\n" + - " col_int10 int(10) not null,\n" + - " col_integer integer comment 'this is an integer',\n" + - " col_bigint bigint,\n" + - " col_bigint10 bigint(10) zerofill not null default 10,\n" + - " col_real real,\n" + - " col_real2 real(1,2) not null default 1.23,\n" + - " col_double double,\n" + - " col_double2 double(3,4) not null default 1.23,\n" + - " col_float float,\n" + - " col_float2 float(3,4) not null default 1.23,\n" + - " col_decimal decimal,\n" + - " col_decimal2 decimal(2),\n" + - " col_decimal3 decimal(2,3),\n" + - " col_numeric numeric,\n" + - " col_numeric2 numeric(2),\n" + - " col_numeric3 numeric(2,3),\n" + - " col_date date,\n" + - " col_time time,\n" + - " col_timestamp timestamp,\n" + - " col_datetime datetime,\n" + - " col_year year,\n" + - " col_char char,\n" + - " col_char2 char(2),\n" + - " col_char3 char(3) character set ascii,\n" + - " col_char4 char(4) character set ascii collate ascii_bin,\n" + - " col_varchar varchar,\n" + - " col_varchar2 varchar(2),\n" + - " col_varchar3 varchar(3) character set ascii,\n" + - " col_varchar4 varchar(4) character set ascii collate ascii_bin,\n" + - " col_binary binary,\n" + - " col_varbinary varbinary(10),\n" + - " col_tinyblob tinyblob,\n" + - " col_blob blob,\n" + - " col_mediumblob mediumblob,\n" + - " col_longblob longblob,\n" + - " col_tinytext tinytext,\n" + - " col_text text,\n" + - " col_mediumtext mediumtext,\n" + - " col_longtext longtext,\n" + - " col_text text character set ascii collate ascii_bin,\n" + - " col_json json,\n" + - " col_enum enum('a', 'b', 'c', 'd'),\n" + - " col_enum2 enum('a', 'b', 'c', 'd') character set ascii,\n" + - " col_enum3 enum('a', 'b', 'c', 'd') collate ascii_bin,\n" + - " col_enum4 enum('a', 'b', 'c', 'd') character set ascii collate ascii_bin,\n" + - " col_set set('a', 'b', 'c', 'd'),\n" + - " col_set2 set('a', 'b', 'c', 'd') character set ascii,\n" + - " col_set3 set('a', 'b', 'c', 'd') collate ascii_bin,\n" + - " col_set4 set('a', 'b', 'c', 'd') character set ascii collate ascii_bin,\n" + - " col_geometry1 geometry,\n" + - " col_geometry2 geometry not null,\n" + - " col_point1 point,\n" + - " col_point2 point not null,\n" + - " col_linestring1 linestring,\n" + - " col_linestring2 linestring not null,\n" + - " col_polygon1 polygon,\n" + - " col_polygon2 polygon not null,\n" + - " col_geometrycollection1 geometrycollection,\n" + - " col_geometrycollection2 geometrycollection not null,\n" + - " col_multipoint1 multipoint,\n" + - " col_multipoint2 multipoint not null,\n" + - " col_multilinestring1 multilinestring,\n" + - " col_multilinestring2 multilinestring not null,\n" + - " col_multipolygon1 multipolygon,\n" + - " col_multipolygon2 multipolygon not null\n" + - ")", - + input: `create table t ( + col_bit bit, + col_tinyint tinyint auto_increment, + col_tinyint3 tinyint(3) unsigned, + col_smallint smallint, + col_smallint4 smallint(4) zerofill, + col_mediumint mediumint, + col_mediumint5 mediumint(5) unsigned not null, + col_int int, + col_int10 int(10) not null, + col_integer integer comment 'this is an integer', + col_bigint bigint, + col_bigint10 bigint(10) zerofill not null default 10, + col_real real, + col_real2 real(1,2) not null default 1.23, + col_double double, + col_double2 double(3,4) not null default 1.23, + col_float float, + col_float2 float(3,4) not null default 1.23, + col_decimal decimal, + col_decimal2 decimal(2), + col_decimal3 decimal(2,3), + col_numeric numeric, + col_numeric2 numeric(2), + col_numeric3 numeric(2,3), + col_date date, + col_time time, + col_timestamp timestamp, + col_datetime datetime, + col_year year, + col_char char, + col_char2 char(2), + col_char3 char(3) character set ascii, + col_char4 char(4) character set ascii collate ascii_bin, + col_varchar varchar, + col_varchar2 varchar(2), + col_varchar3 varchar(3) character set ascii, + col_varchar4 varchar(4) character set ascii collate ascii_bin, + col_binary binary, + col_varbinary varbinary(10), + col_tinyblob tinyblob, + col_blob blob, + col_mediumblob mediumblob, + col_longblob longblob, + col_tinytext tinytext, + col_text text, + col_mediumtext mediumtext, + col_longtext longtext, + col_text text character set ascii collate ascii_bin, + col_json json, + col_enum enum('a', 'b', 'c', 'd'), + col_enum2 enum('a', 'b', 'c', 'd') character set ascii, + col_enum3 enum('a', 'b', 'c', 'd') collate ascii_bin, + col_enum4 enum('a', 'b', 'c', 'd') character set ascii collate ascii_bin, + col_set set('a', 'b', 'c', 'd'), + col_set2 set('a', 'b', 'c', 'd') character set ascii, + col_set3 set('a', 'b', 'c', 'd') collate ascii_bin, + col_set4 set('a', 'b', 'c', 'd') character set ascii collate ascii_bin, + col_geometry1 geometry, + col_geometry2 geometry not null, + col_point1 point, + col_point2 point not null, + col_linestring1 linestring, + col_linestring2 linestring not null, + col_polygon1 polygon, + col_polygon2 polygon not null, + col_geometrycollection1 geometrycollection, + col_geometrycollection2 geometrycollection not null, + col_multipoint1 multipoint, + col_multipoint2 multipoint not null, + col_multilinestring1 multilinestring, + col_multilinestring2 multilinestring not null, + col_multipolygon1 multipolygon, + col_multipolygon2 multipolygon not null +)`, + }, // test null columns - "create table foo (\n" + - " id int primary key,\n" + - " a varchar(255) null,\n" + - " b varchar(255) null default 'foo',\n" + - " c timestamp null default current_timestamp()\n" + - ")", - + { + input: `create table foo ( + id int primary key, + a varchar(255) null, + b varchar(255) null default 'foo', + c timestamp null default current_timestamp() +)`, + }, // test defining indexes separately - "create table t (\n" + - " id int auto_increment,\n" + - " username varchar,\n" + - " email varchar,\n" + - " full_name varchar,\n" + - " geom point not null,\n" + - " status_nonkeyword varchar,\n" + - " primary key (id),\n" + - " spatial key geom (geom),\n" + - " fulltext key fts (full_name),\n" + - " unique key by_username (username),\n" + - " unique key by_username2 (username),\n" + - " unique index by_username3 (username),\n" + - " index by_status (status_nonkeyword),\n" + - " key by_full_name (full_name)\n" + - ")", - + { + input: `create table t ( + id int auto_increment, + username varchar, + email varchar, + full_name varchar, + geom point not null, + status_nonkeyword varchar, + primary key (id), + spatial key geom (geom), + fulltext key fts (full_name), + unique key by_username (username), + unique key by_username2 (username), + unique index by_username3 (username), + index by_status (status_nonkeyword), + key by_full_name (full_name) +)`, + }, // test that indexes support USING - "create table t (\n" + - " id int auto_increment,\n" + - " username varchar,\n" + - " email varchar,\n" + - " full_name varchar,\n" + - " status_nonkeyword varchar,\n" + - " primary key (id) using BTREE,\n" + - " unique key by_username (username) using HASH,\n" + - " unique key by_username2 (username) using OTHER,\n" + - " unique index by_username3 (username) using XYZ,\n" + - " index by_status (status_nonkeyword) using PDQ,\n" + - " key by_full_name (full_name) using OTHER\n" + - ")", + { + input: `create table t ( + id int auto_increment, + username varchar, + email varchar, + full_name varchar, + status_nonkeyword varchar, + primary key (id) using BTREE, + unique key by_username (username) using HASH, + unique key by_username2 (username) using OTHER, + unique index by_username3 (username) using XYZ, + index by_status (status_nonkeyword) using PDQ, + key by_full_name (full_name) using OTHER +)`, + }, // test other index options - "create table t (\n" + - " id int auto_increment,\n" + - " username varchar,\n" + - " email varchar,\n" + - " primary key (id) comment 'hi',\n" + - " unique key by_username (username) key_block_size 8,\n" + - " unique index by_username4 (username) comment 'hi' using BTREE,\n" + - " unique index by_username4 (username) using BTREE key_block_size 4 comment 'hi'\n" + - ")", - + { + input: `create table t ( + id int auto_increment, + username varchar, + email varchar, + primary key (id) comment 'hi', + unique key by_username (username) key_block_size 8, + unique index by_username4 (username) comment 'hi' using BTREE, + unique index by_username4 (username) using BTREE key_block_size 4 comment 'hi' +)`, + }, // multi-column indexes - "create table t (\n" + - " id int auto_increment,\n" + - " username varchar,\n" + - " email varchar,\n" + - " full_name varchar,\n" + - " a int,\n" + - " b int,\n" + - " c int,\n" + - " primary key (id, username),\n" + - " unique key by_abc (a, b, c),\n" + - " unique key (a, b, c),\n" + - " key by_email (email(10), username)\n" + - ")", - + { + input: `create table t ( + id int auto_increment, + username varchar, + email varchar, + full_name varchar, + a int, + b int, + c int, + primary key (id, username), + unique key by_abc (a, b, c), + unique key (a, b, c), + key by_email (email(10), username) +)`, + }, // foreign keys - "create table t (\n" + - " id int auto_increment,\n" + - " username varchar,\n" + - " k int,\n" + - " Z int,\n" + - " primary key (id, username),\n" + - " key by_email (email(10), username),\n" + - " constraint second_ibfk_1 foreign key (k, j) references simple (a, b),\n" + - " constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on delete restrict,\n" + - " constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on delete no action,\n" + - " constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on delete cascade on update set default,\n" + - " constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on delete set default on update set null,\n" + - " constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on delete set null on update restrict,\n" + - " constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on update no action,\n" + - " constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on update cascade\n" + - ")", - + { + input: `create table t ( + id int auto_increment, + username varchar, + k int, + Z int, + primary key (id, username), + key by_email (email(10), username), + constraint second_ibfk_1 foreign key (k, j) references simple (a, b), + constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on delete restrict, + constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on delete no action, + constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on delete cascade on update set default, + constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on delete set default on update set null, + constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on delete set null on update restrict, + constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on update no action, + constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on update cascade +)`, + }, // constraint name with spaces - "create table `Post With Space` (\n" + - " id int(11) not null auto_increment,\n" + - " user_id int(11) not null,\n" + - " primary key (id),\n" + - " unique key post_user_unique (user_id),\n" + - " constraint `Post With Space_ibfk_1` foreign key (user_id) references `User` (id)\n" + - ") ENGINE Innodb", - + { + input: `create table ` + "`" + `Post With Space` + "`" + ` ( + id int(11) not null auto_increment, + user_id int(11) not null, + primary key (id), + unique key post_user_unique (user_id), + constraint ` + "`" + `Post With Space_ibfk_1` + "`" + ` foreign key (user_id) references ` + "`" + `User` + "`" + ` (id) +) ENGINE Innodb`, + }, // table options - "create table t (\n" + - " id int auto_increment\n" + - ") engine InnoDB,\n" + - " auto_increment 123,\n" + - " avg_row_length 1,\n" + - " charset utf8mb4,\n" + - " charset latin1,\n" + - " checksum 0,\n" + - " collate binary,\n" + - " collate ascii_bin,\n" + - " comment 'this is a comment',\n" + - " compression 'zlib',\n" + - " connection 'connect_string',\n" + - " data directory 'absolute path to directory',\n" + - " delay_key_write 1,\n" + - " encryption 'n',\n" + - " index directory 'absolute path to directory',\n" + - " insert_method no,\n" + - " key_block_size 1024,\n" + - " max_rows 100,\n" + - " min_rows 10,\n" + - " pack_keys 0,\n" + - " password 'sekret',\n" + - " row_format default,\n" + - " stats_auto_recalc default,\n" + - " stats_persistent 0,\n" + - " stats_sample_pages 1,\n" + - " tablespace tablespace_name storage disk,\n" + - " union (a, b, c),\n" + - " tablespace tablespace_name\n", - + { + input: `create table t ( + id int auto_increment +) engine InnoDB, + auto_increment 123, + avg_row_length 1, + charset utf8mb4, + charset latin1, + checksum 0, + collate binary, + collate ascii_bin, + comment 'this is a comment', + compression 'zlib', + connection 'connect_string', + data directory 'absolute path to directory', + delay_key_write 1, + encryption 'n', + index directory 'absolute path to directory', + insert_method no, + key_block_size 1024, + max_rows 100, + min_rows 10, + pack_keys 0, + password 'sekret', + row_format default, + stats_auto_recalc default, + stats_persistent 0, + stats_sample_pages 1, + tablespace tablespace_name storage disk, + union (a, b, c), + tablespace tablespace_name`, + }, // boolean columns - "create table t (\n" + - " bi bigint not null primary key,\n" + - " b1 bool not null,\n" + - " b2 boolean\n" + - ")", - } - for _, sql := range validSQL { - sql = strings.TrimSpace(sql) - tree, err := ParseStrictDDL(sql) - if err != nil { - t.Errorf("input: %s, err: %v", sql, err) - continue - } - got := String(tree.(*CreateTable)) - assert.True(t, tree.(*CreateTable).FullyParsed) - require.Equal(t, sql, got) - } - - sql := "create table t garbage" - tree, err := Parse(sql) - if err != nil { - t.Errorf("input: %s, err: %v", sql, err) - } - assert.True(t, !tree.(*CreateTable).FullyParsed) - - tree, err = ParseStrictDDL(sql) - if tree != nil || err == nil { - t.Errorf("ParseStrictDDL unexpectedly accepted input %s", sql) - } - - testCases := []struct { - input string - output string - }{{ - // test key_block_size - input: "create table t (\n" + - " id int auto_increment,\n" + - " username varchar,\n" + - " unique key by_username (username) key_block_size 8,\n" + - " unique key by_username2 (username) key_block_size=8,\n" + - " unique by_username3 (username) key_block_size = 4\n" + - ")", - output: "create table t (\n" + - " id int auto_increment,\n" + - " username varchar,\n" + - " unique key by_username (username) key_block_size 8,\n" + - " unique key by_username2 (username) key_block_size 8,\n" + - " unique key by_username3 (username) key_block_size 4\n" + - ")", - }, { - // test defaults - input: "create table t (\n" + - " i1 int default 1,\n" + - " i2 int default null,\n" + - " f1 float default 1.23,\n" + - " s1 varchar default 'c',\n" + - " s2 varchar default 'this is a string',\n" + - " s3 varchar default null,\n" + - " s4 timestamp default current_timestamp,\n" + - " s5 bit(1) default B'0'\n" + - ")", - output: "create table t (\n" + - " i1 int default 1,\n" + - " i2 int default null,\n" + - " f1 float default 1.23,\n" + - " s1 varchar default 'c',\n" + - " s2 varchar default 'this is a string',\n" + - " `s3` varchar default null,\n" + - " s4 timestamp default current_timestamp(),\n" + - " s5 bit(1) default B'0'\n" + - ")", - }, { - // test non_reserved word in column name - input: "create table t (\n" + - " repair int\n" + - ")", - output: "create table t (\n" + - " `repair` int\n" + - ")", - }, { - // test key field options - input: "create table t (\n" + - " id int auto_increment primary key,\n" + - " username varchar unique key,\n" + - " email varchar unique,\n" + - " full_name varchar key,\n" + - " time1 timestamp on update current_timestamp,\n" + - " time2 timestamp default current_timestamp on update current_timestamp\n" + - ")", - output: "create table t (\n" + - " id int auto_increment primary key,\n" + - " username varchar unique key,\n" + - " email varchar unique,\n" + - " full_name varchar key,\n" + - " time1 timestamp on update current_timestamp(),\n" + - " time2 timestamp default current_timestamp() on update current_timestamp()\n" + - ")", - }, { - // test current_timestamp with and without () - input: "create table t (\n" + - " time1 timestamp default current_timestamp,\n" + - " time2 timestamp default current_timestamp(),\n" + - " time3 timestamp default current_timestamp on update current_timestamp,\n" + - " time4 timestamp default current_timestamp() on update current_timestamp(),\n" + - " time5 timestamp(3) default current_timestamp(3) on update current_timestamp(3)\n" + - ")", - output: "create table t (\n" + - " time1 timestamp default current_timestamp(),\n" + - " time2 timestamp default current_timestamp(),\n" + - " time3 timestamp default current_timestamp() on update current_timestamp(),\n" + - " time4 timestamp default current_timestamp() on update current_timestamp(),\n" + - " time5 timestamp(3) default current_timestamp(3) on update current_timestamp(3)\n" + - ")", - }, { - // test utc_timestamp with and without () - input: "create table t (\n" + - " time1 timestamp default utc_timestamp,\n" + - " time2 timestamp default utc_timestamp(),\n" + - " time3 timestamp default utc_timestamp on update utc_timestamp,\n" + - " time4 timestamp default utc_timestamp() on update utc_timestamp(),\n" + - " time5 timestamp(4) default utc_timestamp(4) on update utc_timestamp(4)\n" + - ")", - output: "create table t (\n" + - " time1 timestamp default utc_timestamp(),\n" + - " time2 timestamp default utc_timestamp(),\n" + - " time3 timestamp default utc_timestamp() on update utc_timestamp(),\n" + - " time4 timestamp default utc_timestamp() on update utc_timestamp(),\n" + - " time5 timestamp(4) default utc_timestamp(4) on update utc_timestamp(4)\n" + - ")", - }, { - // test utc_time with and without () - input: "create table t (\n" + - " time1 timestamp default utc_time,\n" + - " time2 timestamp default utc_time(),\n" + - " time3 timestamp default utc_time on update utc_time,\n" + - " time4 timestamp default utc_time() on update utc_time(),\n" + - " time5 timestamp(5) default utc_time(5) on update utc_time(5)\n" + - ")", - output: "create table t (\n" + - " time1 timestamp default utc_time(),\n" + - " time2 timestamp default utc_time(),\n" + - " time3 timestamp default utc_time() on update utc_time(),\n" + - " time4 timestamp default utc_time() on update utc_time(),\n" + - " time5 timestamp(5) default utc_time(5) on update utc_time(5)\n" + - ")", - }, { - // test utc_date with and without () - input: "create table t (\n" + - " time1 timestamp default utc_date,\n" + - " time2 timestamp default utc_date(),\n" + - " time3 timestamp default utc_date on update utc_date,\n" + - " time4 timestamp default utc_date() on update utc_date()\n" + - ")", - output: "create table t (\n" + - " time1 timestamp default utc_date(),\n" + - " time2 timestamp default utc_date(),\n" + - " time3 timestamp default utc_date() on update utc_date(),\n" + - " time4 timestamp default utc_date() on update utc_date()\n" + - ")", - }, { - // test localtime with and without () - input: "create table t (\n" + - " time1 timestamp default localtime,\n" + - " time2 timestamp default localtime(),\n" + - " time3 timestamp default localtime on update localtime,\n" + - " time4 timestamp default localtime() on update localtime(),\n" + - " time5 timestamp(6) default localtime(6) on update localtime(6)\n" + - ")", - output: "create table t (\n" + - " time1 timestamp default localtime(),\n" + - " time2 timestamp default localtime(),\n" + - " time3 timestamp default localtime() on update localtime(),\n" + - " time4 timestamp default localtime() on update localtime(),\n" + - " time5 timestamp(6) default localtime(6) on update localtime(6)\n" + - ")", - }, { - // test localtimestamp with and without () - input: "create table t (\n" + - " time1 timestamp default localtimestamp,\n" + - " time2 timestamp default localtimestamp(),\n" + - " time3 timestamp default localtimestamp on update localtimestamp,\n" + - " time4 timestamp default localtimestamp() on update localtimestamp(),\n" + - " time5 timestamp(1) default localtimestamp(1) on update localtimestamp(1)\n" + - ")", - output: "create table t (\n" + - " time1 timestamp default localtimestamp(),\n" + - " time2 timestamp default localtimestamp(),\n" + - " time3 timestamp default localtimestamp() on update localtimestamp(),\n" + - " time4 timestamp default localtimestamp() on update localtimestamp(),\n" + - " time5 timestamp(1) default localtimestamp(1) on update localtimestamp(1)\n" + - ")", - }, { - // test current_date with and without () - input: "create table t (\n" + - " time1 timestamp default current_date,\n" + - " time2 timestamp default current_date(),\n" + - " time3 timestamp default current_date on update current_date,\n" + - " time4 timestamp default current_date() on update current_date()\n" + - ")", - output: "create table t (\n" + - " time1 timestamp default current_date(),\n" + - " time2 timestamp default current_date(),\n" + - " time3 timestamp default current_date() on update current_date(),\n" + - " time4 timestamp default current_date() on update current_date()\n" + - ")", - }, { - // test current_time with and without () - input: "create table t (\n" + - " time1 timestamp default current_time,\n" + - " time2 timestamp default current_time(),\n" + - " time3 timestamp default current_time on update current_time,\n" + - " time4 timestamp default current_time() on update current_time(),\n" + - " time5 timestamp(2) default current_time(2) on update current_time(2)\n" + - ")", - output: "create table t (\n" + - " time1 timestamp default current_time(),\n" + - " time2 timestamp default current_time(),\n" + - " time3 timestamp default current_time() on update current_time(),\n" + - " time4 timestamp default current_time() on update current_time(),\n" + - " time5 timestamp(2) default current_time(2) on update current_time(2)\n" + - ")", - }, + { + input: `create table t ( + bi bigint not null primary key, + b1 bool not null, + b2 boolean +)`, + }, + { + // test key_block_size + input: `create table t ( + id int auto_increment, + username varchar, + unique key by_username (username) key_block_size 8, + unique key by_username2 (username) key_block_size=8, + unique by_username3 (username) key_block_size = 4 +)`, + output: `create table t ( + id int auto_increment, + username varchar, + unique key by_username (username) key_block_size 8, + unique key by_username2 (username) key_block_size 8, + unique key by_username3 (username) key_block_size 4 +)`, + }, { + // test defaults + input: `create table t ( + i1 int default 1, + i2 int default null, + f1 float default 1.23, + s1 varchar default 'c', + s2 varchar default 'this is a string', + s3 varchar default null, + s4 timestamp default current_timestamp, + s5 bit(1) default B'0' +)`, + output: `create table t ( + i1 int default 1, + i2 int default null, + f1 float default 1.23, + s1 varchar default 'c', + s2 varchar default 'this is a string', + ` + "`" + `s3` + "`" + ` varchar default null, + s4 timestamp default current_timestamp(), + s5 bit(1) default B'0' +)`, + }, { + // test non_reserved word in column name + input: `create table t ( + repair int +)`, + output: `create table t ( + ` + "`" + `repair` + "`" + ` int +)`, + }, { + // test key field options + input: `create table t ( + id int auto_increment primary key, + username varchar unique key, + email varchar unique, + full_name varchar key, + time1 timestamp on update current_timestamp, + time2 timestamp default current_timestamp on update current_timestamp +)`, + output: `create table t ( + id int auto_increment primary key, + username varchar unique key, + email varchar unique, + full_name varchar key, + time1 timestamp on update current_timestamp(), + time2 timestamp default current_timestamp() on update current_timestamp() +)`, + }, { + // test current_timestamp with and without () + input: `create table t ( + time1 timestamp default current_timestamp, + time2 timestamp default current_timestamp(), + time3 timestamp default current_timestamp on update current_timestamp, + time4 timestamp default current_timestamp() on update current_timestamp(), + time5 timestamp(3) default current_timestamp(3) on update current_timestamp(3) +)`, + output: `create table t ( + time1 timestamp default current_timestamp(), + time2 timestamp default current_timestamp(), + time3 timestamp default current_timestamp() on update current_timestamp(), + time4 timestamp default current_timestamp() on update current_timestamp(), + time5 timestamp(3) default current_timestamp(3) on update current_timestamp(3) +)`, + }, { + // test utc_timestamp with and without () + input: `create table t ( + time1 timestamp default utc_timestamp, + time2 timestamp default utc_timestamp(), + time3 timestamp default utc_timestamp on update utc_timestamp, + time4 timestamp default utc_timestamp() on update utc_timestamp(), + time5 timestamp(4) default utc_timestamp(4) on update utc_timestamp(4) +)`, + output: `create table t ( + time1 timestamp default utc_timestamp(), + time2 timestamp default utc_timestamp(), + time3 timestamp default utc_timestamp() on update utc_timestamp(), + time4 timestamp default utc_timestamp() on update utc_timestamp(), + time5 timestamp(4) default utc_timestamp(4) on update utc_timestamp(4) +)`, + }, { + // test utc_time with and without () + input: `create table t ( + time1 timestamp default utc_time, + time2 timestamp default utc_time(), + time3 timestamp default utc_time on update utc_time, + time4 timestamp default utc_time() on update utc_time(), + time5 timestamp(5) default utc_time(5) on update utc_time(5) +)`, + output: `create table t ( + time1 timestamp default utc_time(), + time2 timestamp default utc_time(), + time3 timestamp default utc_time() on update utc_time(), + time4 timestamp default utc_time() on update utc_time(), + time5 timestamp(5) default utc_time(5) on update utc_time(5) +)`, + }, { + // test utc_date with and without () + input: `create table t ( + time1 timestamp default utc_date, + time2 timestamp default utc_date(), + time3 timestamp default utc_date on update utc_date, + time4 timestamp default utc_date() on update utc_date() +)`, + output: `create table t ( + time1 timestamp default utc_date(), + time2 timestamp default utc_date(), + time3 timestamp default utc_date() on update utc_date(), + time4 timestamp default utc_date() on update utc_date() +)`, + }, { + // test localtime with and without () + input: `create table t ( + time1 timestamp default localtime, + time2 timestamp default localtime(), + time3 timestamp default localtime on update localtime, + time4 timestamp default localtime() on update localtime(), + time5 timestamp(6) default localtime(6) on update localtime(6) +)`, + output: `create table t ( + time1 timestamp default localtime(), + time2 timestamp default localtime(), + time3 timestamp default localtime() on update localtime(), + time4 timestamp default localtime() on update localtime(), + time5 timestamp(6) default localtime(6) on update localtime(6) +)`, + }, { + // test localtimestamp with and without () + input: `create table t ( + time1 timestamp default localtimestamp, + time2 timestamp default localtimestamp(), + time3 timestamp default localtimestamp on update localtimestamp, + time4 timestamp default localtimestamp() on update localtimestamp(), + time5 timestamp(1) default localtimestamp(1) on update localtimestamp(1) +)`, + output: `create table t ( + time1 timestamp default localtimestamp(), + time2 timestamp default localtimestamp(), + time3 timestamp default localtimestamp() on update localtimestamp(), + time4 timestamp default localtimestamp() on update localtimestamp(), + time5 timestamp(1) default localtimestamp(1) on update localtimestamp(1) +)`, + }, { + // test current_date with and without () + input: `create table t ( + time1 timestamp default current_date, + time2 timestamp default current_date(), + time3 timestamp default current_date on update current_date, + time4 timestamp default current_date() on update current_date() +)`, + output: `create table t ( + time1 timestamp default current_date(), + time2 timestamp default current_date(), + time3 timestamp default current_date() on update current_date(), + time4 timestamp default current_date() on update current_date() +)`, + }, { + // test current_time with and without () + input: `create table t ( + time1 timestamp default current_time, + time2 timestamp default current_time(), + time3 timestamp default current_time on update current_time, + time4 timestamp default current_time() on update current_time(), + time5 timestamp(2) default current_time(2) on update current_time(2) +)`, + output: `create table t ( + time1 timestamp default current_time(), + time2 timestamp default current_time(), + time3 timestamp default current_time() on update current_time(), + time4 timestamp default current_time() on update current_time(), + time5 timestamp(2) default current_time(2) on update current_time(2) +)`, + }, } - for _, tcase := range testCases { - tree, err := ParseStrictDDL(tcase.input) - if err != nil { - t.Errorf("input: %s, err: %v", tcase.input, err) - continue - } - assert.True(t, tree.(*CreateTable).FullyParsed) - if got, want := String(tree.(*CreateTable)), tcase.output; got != want { - t.Errorf("Parse(%s):\n%s, want\n%s", tcase.input, got, want) - } + for _, test := range createTableQueries { + sql := strings.TrimSpace(test.input) + t.Run(sql, func(t *testing.T) { + tree, err := ParseStrictDDL(sql) + require.NoError(t, err) + got := String(tree) + expected := test.output + if expected == "" { + expected = sql + } + require.Equal(t, expected, got) + }) } } From 5c6e13ac1500464174dba8c051efa2f05ad1589b Mon Sep 17 00:00:00 2001 From: Andres Taylor Date: Thu, 13 May 2021 10:41:47 +0200 Subject: [PATCH 28/63] add support for generated columns in DDL Signed-off-by: Andres Taylor --- Makefile | 2 +- go/vt/sqlparser/ast.go | 1 + go/vt/sqlparser/ast_clone.go | 1 + go/vt/sqlparser/ast_equals.go | 1 + go/vt/sqlparser/ast_format.go | 3 + go/vt/sqlparser/ast_format_fast.go | 6 + go/vt/sqlparser/cached_size.go | 6 +- go/vt/sqlparser/parse_test.go | 6 + go/vt/sqlparser/sql.go | 5546 ++++++++++++++-------------- go/vt/sqlparser/sql.y | 7 +- 10 files changed, 2815 insertions(+), 2764 deletions(-) diff --git a/Makefile b/Makefile index b0c190aa66d..4cfedb66483 100644 --- a/Makefile +++ b/Makefile @@ -133,7 +133,7 @@ grpcvtctldclient: go/vt/proto/vtctlservice/vtctlservice.pb.go parser: make -C go/vt/sqlparser -codegen: asthelpergen sizegen parser +codegen: asthelpergen sizegen parser astfmtgen visitor: asthelpergen echo "make visitor has been replaced by make asthelpergen" diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index 2d20297e7bf..4942e7a3cc7 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -1514,6 +1514,7 @@ type ColumnTypeOptions struct { Autoincrement bool Default Expr OnUpdate Expr + As Expr Comment *Literal // Key specification diff --git a/go/vt/sqlparser/ast_clone.go b/go/vt/sqlparser/ast_clone.go index 3050d09e7cb..7cfadc03700 100644 --- a/go/vt/sqlparser/ast_clone.go +++ b/go/vt/sqlparser/ast_clone.go @@ -2276,6 +2276,7 @@ func CloneRefOfColumnTypeOptions(n *ColumnTypeOptions) *ColumnTypeOptions { out.Null = CloneRefOfBool(n.Null) out.Default = CloneExpr(n.Default) out.OnUpdate = CloneExpr(n.OnUpdate) + out.As = CloneExpr(n.As) out.Comment = CloneRefOfLiteral(n.Comment) return &out } diff --git a/go/vt/sqlparser/ast_equals.go b/go/vt/sqlparser/ast_equals.go index 08b60de6f13..30158be59f6 100644 --- a/go/vt/sqlparser/ast_equals.go +++ b/go/vt/sqlparser/ast_equals.go @@ -3765,6 +3765,7 @@ func EqualsRefOfColumnTypeOptions(a, b *ColumnTypeOptions) bool { EqualsRefOfBool(a.Null, b.Null) && EqualsExpr(a.Default, b.Default) && EqualsExpr(a.OnUpdate, b.OnUpdate) && + EqualsExpr(a.As, b.As) && EqualsRefOfLiteral(a.Comment, b.Comment) && a.KeyOpt == b.KeyOpt } diff --git a/go/vt/sqlparser/ast_format.go b/go/vt/sqlparser/ast_format.go index 88aa4d235b8..d662695cf64 100644 --- a/go/vt/sqlparser/ast_format.go +++ b/go/vt/sqlparser/ast_format.go @@ -469,6 +469,9 @@ func (ct *ColumnType) Format(buf *TrackedBuffer) { if ct.Options.OnUpdate != nil { buf.astPrintf(ct, " %s %s %v", keywordStrings[ON], keywordStrings[UPDATE], ct.Options.OnUpdate) } + if ct.Options.As != nil { + buf.astPrintf(ct, " %s %v", keywordStrings[AS], ct.Options.As) + } if ct.Options.Autoincrement { buf.astPrintf(ct, " %s", keywordStrings[AUTO_INCREMENT]) } diff --git a/go/vt/sqlparser/ast_format_fast.go b/go/vt/sqlparser/ast_format_fast.go index a53c60d95f1..9fbf4e342b8 100644 --- a/go/vt/sqlparser/ast_format_fast.go +++ b/go/vt/sqlparser/ast_format_fast.go @@ -678,6 +678,12 @@ func (ct *ColumnType) formatFast(buf *TrackedBuffer) { buf.WriteByte(' ') ct.Options.OnUpdate.formatFast(buf) } + if ct.Options.As != nil { + buf.WriteByte(' ') + buf.WriteString(keywordStrings[AS]) + buf.WriteByte(' ') + ct.Options.As.formatFast(buf) + } if ct.Options.Autoincrement { buf.WriteByte(' ') buf.WriteString(keywordStrings[AUTO_INCREMENT]) diff --git a/go/vt/sqlparser/cached_size.go b/go/vt/sqlparser/cached_size.go index 21f425909e2..4a7a4d3da4a 100644 --- a/go/vt/sqlparser/cached_size.go +++ b/go/vt/sqlparser/cached_size.go @@ -516,7 +516,7 @@ func (cached *ColumnTypeOptions) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(64) + size += int64(80) } // field Null *bool size += int64(1) @@ -528,6 +528,10 @@ func (cached *ColumnTypeOptions) CachedSize(alloc bool) int64 { if cc, ok := cached.OnUpdate.(cachedObject); ok { size += cc.CachedSize(true) } + // field As vitess.io/vitess/go/vt/sqlparser.Expr + if cc, ok := cached.As.(cachedObject); ok { + size += cc.CachedSize(true) + } // field Comment *vitess.io/vitess/go/vt/sqlparser.Literal size += cached.Comment.CachedSize(true) return size diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index 7975b4251d4..c59b6b69b38 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -2953,6 +2953,12 @@ func TestCreateTable(t *testing.T) { time3 timestamp default current_time() on update current_time(), time4 timestamp default current_time() on update current_time(), time5 timestamp(2) default current_time(2) on update current_time(2) +)`, + }, { + input: `create table t1 ( + first_name varchar(10), + last_name varchar(10), + full_name varchar(255) as concat(first_name, ' ', last_name) )`, }, } diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index b65a7d607dd..7764b5bdc37 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -999,659 +999,674 @@ var yyExca = [...]int{ 143, 118, 259, 118, 314, 118, - -2, 326, + -2, 327, -1, 53, - 34, 474, - 165, 474, - 177, 474, - 210, 488, - 211, 488, - -2, 476, + 34, 475, + 165, 475, + 177, 475, + 210, 489, + 211, 489, + -2, 477, -1, 58, - 167, 498, - -2, 496, + 167, 499, + -2, 497, -1, 84, - 56, 566, - -2, 574, + 56, 567, + -2, 575, -1, 97, - 164, 936, + 164, 937, -2, 91, -1, 99, 1, 113, 476, 113, -2, 118, -1, 109, - 170, 231, - 171, 231, - -2, 320, + 170, 232, + 171, 232, + -2, 321, -1, 128, 143, 118, 259, 118, 314, 118, - -2, 335, + -2, 336, -1, 563, - 150, 957, - -2, 953, - -1, 564, 150, 958, -2, 954, + -1, 564, + 150, 959, + -2, 955, -1, 583, - 56, 567, - -2, 579, - -1, 584, 56, 568, -2, 580, + -1, 584, + 56, 569, + -2, 581, -1, 605, - 118, 1302, + 118, 1303, -2, 84, -1, 606, - 118, 1183, + 118, 1184, -2, 85, -1, 612, - 118, 1234, - -2, 930, + 118, 1235, + -2, 931, -1, 750, - 118, 1120, - -2, 927, + 118, 1121, + -2, 928, -1, 786, 176, 38, 181, 38, - -2, 242, + -2, 243, -1, 863, - 1, 373, - 476, 373, + 1, 374, + 476, 374, -2, 118, -1, 1104, - 1, 269, - 476, 269, + 1, 270, + 476, 270, -2, 118, -1, 1180, - 170, 231, - 171, 231, - -2, 320, + 170, 232, + 171, 232, + -2, 321, -1, 1189, 176, 39, 181, 39, - -2, 243, + -2, 244, -1, 1397, - 150, 962, - -2, 956, + 150, 963, + -2, 957, -1, 1490, 74, 66, 82, 66, -2, 70, -1, 1511, - 1, 270, - 476, 270, + 1, 271, + 476, 271, -2, 118, - -1, 1934, - 5, 823, - 18, 823, - 20, 823, - 32, 823, - 83, 823, - -2, 606, - -1, 2159, - 46, 898, - -2, 892, + -1, 1935, + 5, 824, + 18, 824, + 20, 824, + 32, 824, + 83, 824, + -2, 607, + -1, 2161, + 46, 899, + -2, 893, } const yyPrivate = 57344 -const yyLast = 28077 +const yyLast = 28227 var yyAct = [...]int{ - 563, 2253, 2244, 2084, 2199, 2186, 2137, 1991, 1727, 2212, - 2109, 506, 83, 3, 1434, 1694, 1576, 1508, 1811, 2160, - 2081, 1915, 1005, 521, 1728, 1911, 1914, 1526, 1541, 1052, - 1791, 576, 1854, 1059, 1561, 1546, 753, 535, 1815, 816, - 504, 1487, 1792, 1926, 501, 1793, 903, 1873, 1086, 165, - 1391, 1654, 165, 1295, 469, 165, 1574, 874, 923, 610, - 485, 1714, 165, 1383, 1187, 1607, 123, 81, 1560, 1548, - 165, 1785, 781, 1096, 1469, 1089, 1476, 585, 1079, 1057, - 1205, 137, 1082, 1161, 1044, 1360, 1417, 1062, 497, 1436, - 33, 1292, 485, 1080, 941, 485, 165, 485, 784, 1558, - 760, 570, 1394, 508, 794, 1194, 1278, 757, 1069, 1537, - 1452, 1095, 761, 787, 782, 1093, 783, 79, 1492, 921, - 140, 100, 101, 106, 1179, 1021, 859, 8, 7, 6, - 1156, 78, 1527, 1834, 1833, 1300, 1605, 1018, 107, 492, - 1264, 1861, 1862, 1431, 1432, 2111, 1349, 1348, 1347, 1346, - 607, 167, 168, 169, 1345, 1344, 495, 1337, 496, 769, - 2226, 1692, 764, 2156, 1960, 818, 102, 754, 2060, 2133, - 571, 108, 2132, 820, 592, 596, 942, 2079, 832, 833, - 2080, 836, 837, 838, 839, 819, 444, 842, 843, 844, + 563, 2255, 2246, 2086, 2201, 2188, 1993, 2139, 2214, 2111, + 2162, 83, 3, 1727, 1694, 1576, 535, 1812, 1915, 2083, + 1508, 1916, 1005, 1434, 1792, 1059, 1714, 1052, 1728, 521, + 506, 1912, 1161, 1541, 1855, 1816, 1561, 504, 1546, 816, + 1794, 137, 1793, 1487, 501, 1927, 923, 1874, 1295, 165, + 1391, 1086, 165, 753, 469, 165, 1654, 1187, 874, 81, + 485, 1574, 165, 1383, 1607, 610, 123, 576, 1548, 903, + 165, 1096, 1786, 781, 1469, 1476, 1089, 1057, 1560, 585, + 1526, 1079, 1436, 1082, 1062, 1044, 1360, 1417, 497, 33, + 570, 1394, 485, 1080, 941, 485, 165, 485, 1292, 784, + 508, 1558, 757, 760, 1278, 1194, 761, 787, 794, 1537, + 1452, 782, 783, 1095, 79, 1093, 1492, 1069, 1205, 1527, + 140, 100, 859, 101, 106, 8, 1018, 7, 6, 78, + 1156, 1835, 1834, 1300, 1021, 1605, 1264, 1862, 607, 921, + 107, 492, 1863, 2113, 167, 168, 169, 1431, 1432, 1349, + 1348, 1347, 1346, 1345, 1344, 1179, 1337, 167, 168, 169, + 495, 1692, 496, 2228, 2158, 818, 102, 769, 754, 571, + 821, 592, 596, 444, 764, 2062, 1962, 942, 832, 833, + 2135, 836, 837, 838, 839, 2134, 820, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, - 855, 856, 2252, 493, 2209, 1644, 84, 604, 2247, 797, - 821, 1553, 2181, 2240, 942, 798, 2085, 1593, 2208, 2180, - 102, 775, 774, 1890, 611, 80, 2024, 1170, 822, 823, - 824, 1693, 1551, 1758, 1841, 776, 1757, 1940, 1840, 1759, - 1860, 829, 952, 86, 87, 88, 89, 90, 91, 1941, - 1942, 97, 1503, 1504, 162, 1642, 1097, 439, 1098, 35, - 1502, 161, 72, 39, 40, 1433, 773, 1493, 868, 869, - 167, 168, 169, 834, 473, 893, 567, 569, 881, 919, - 952, 835, 777, 882, 102, 566, 103, 881, 125, 898, - 899, 880, 882, 879, 161, 1775, 1520, 145, 483, 2146, - 967, 966, 976, 977, 969, 970, 971, 972, 973, 974, - 975, 968, 1550, 1993, 978, 894, 770, 887, 862, 103, - 2015, 2183, 858, 771, 1338, 1339, 1340, 2013, 135, 472, - 145, 1336, 948, 124, 71, 940, 487, 548, 1048, 554, - 555, 552, 553, 1816, 551, 550, 549, 481, 1618, 1616, - 1617, 142, 1284, 143, 556, 557, 1575, 1254, 112, 113, - 134, 133, 160, 1837, 1620, 1987, 1621, 2246, 1622, 1613, - 948, 1762, 773, 1988, 765, 900, 918, 1608, 1279, 768, - 896, 897, 767, 766, 142, 901, 143, 2227, 916, 1994, - 902, 895, 864, 888, 1623, 160, 1849, 473, 473, 1255, - 841, 1256, 840, 1995, 773, 857, 1610, 778, 2129, 2074, - 129, 110, 136, 117, 109, 1577, 130, 131, 1612, 2238, - 1470, 146, 814, 1614, 813, 812, 811, 810, 809, 771, - 772, 151, 118, 808, 807, 802, 805, 803, 1173, 165, - 1959, 165, 815, 1493, 165, 473, 121, 119, 114, 115, - 116, 120, 472, 472, 146, 2130, 111, 2259, 758, 1611, - 789, 758, 914, 2257, 151, 122, 790, 1293, 861, 758, - 485, 485, 485, 756, 1559, 947, 944, 945, 946, 951, - 953, 950, 1839, 949, 598, 1853, 1552, 1850, 485, 485, - 943, 1599, 1285, 910, 1289, 912, 2179, 891, 1193, 1192, - 472, 928, 934, 877, 825, 883, 884, 885, 886, 1967, - 915, 1836, 917, 947, 944, 945, 946, 951, 953, 950, - 2147, 949, 796, 1899, 1695, 1697, 920, 1874, 943, 806, - 804, 1898, 909, 911, 1643, 2184, 772, 138, 1897, 1168, - 1856, 1167, 1166, 1826, 1290, 1855, 1164, 1848, 443, 438, - 1847, 990, 991, 860, 992, 993, 994, 995, 996, 997, - 998, 999, 1000, 1001, 1673, 2167, 2044, 165, 772, 2200, - 138, 1876, 99, 1595, 1266, 1265, 1267, 1268, 1269, 1772, - 1767, 1939, 1856, 1719, 1670, 1050, 796, 1855, 1283, 73, - 925, 926, 878, 132, 1662, 485, 1585, 1498, 165, 870, - 165, 165, 867, 485, 1049, 126, 1073, 988, 127, 485, - 1003, 2255, 1046, 1509, 2256, 872, 2254, 937, 935, 936, - 907, 1696, 968, 1768, 908, 978, 796, 1006, 890, 796, - 978, 1754, 831, 1878, 913, 1882, 1367, 1877, 796, 1875, - 892, 1078, 1448, 955, 1880, 1770, 796, 904, 1765, 1045, - 1365, 1366, 1364, 1879, 1301, 1332, 906, 94, 795, 958, - 1766, 607, 876, 1063, 441, 958, 1881, 1883, 1280, 2175, - 1281, 817, 1924, 1282, 488, 1024, 1026, 1609, 1029, 1031, - 1286, 1034, 568, 957, 955, 1061, 1020, 1023, 1025, 1027, - 1028, 1030, 1032, 1033, 167, 168, 169, 1594, 1385, 1099, - 958, 938, 95, 990, 991, 1042, 1892, 1418, 759, 139, - 144, 141, 147, 148, 149, 150, 152, 153, 154, 155, - 1773, 1771, 795, 990, 991, 156, 157, 158, 159, 789, - 792, 793, 1418, 758, 1680, 611, 863, 786, 790, 1804, - 1587, 1944, 139, 144, 141, 147, 148, 149, 150, 152, - 153, 154, 155, 165, 1386, 1587, 785, 1157, 156, 157, - 158, 159, 795, 905, 1591, 795, 1165, 1592, 799, 789, - 1302, 799, 789, 1590, 795, 875, 830, 805, 800, 1589, - 1051, 800, 795, 803, 1066, 485, 597, 1189, 2059, 789, - 792, 793, 1094, 758, 71, 1198, 801, 786, 790, 1202, - 2260, 2058, 485, 485, 2241, 485, 1363, 485, 485, 1199, - 485, 485, 485, 485, 485, 485, 1171, 1172, 167, 168, - 169, 1185, 1780, 1273, 1965, 485, 956, 957, 955, 165, - 1238, 1769, 2242, 1789, 1233, 1234, 969, 970, 971, 972, - 973, 974, 975, 968, 958, 1251, 978, 1178, 1355, 1357, - 1358, 1453, 1454, 1788, 2021, 1556, 485, 1274, 165, 1197, - 1356, 1235, 971, 972, 973, 974, 975, 968, 2261, 1291, - 978, 1271, 2232, 165, 1241, 1242, 599, 600, 1781, 1259, - 1247, 1248, 1272, 1207, 602, 1208, 1258, 1210, 1212, 165, - 1163, 1216, 1218, 1220, 1222, 1224, 165, 1195, 1195, 1196, - 2233, 1261, 1901, 1176, 1175, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 485, 485, 485, 1188, 1174, 1257, - 956, 957, 955, 1647, 1648, 1649, 1303, 1304, 1894, 1249, - 1270, 1243, 1297, 956, 957, 955, 1240, 1239, 958, 1214, - 1308, 165, 167, 168, 169, 1305, 1761, 1315, 1316, 1317, - 1902, 958, 1309, 2236, 1311, 1312, 1313, 1314, 1236, 1990, - 1260, 1318, 1294, 967, 966, 976, 977, 969, 970, 971, - 972, 973, 974, 975, 968, 1333, 1169, 978, 2235, 1384, - 2234, 2220, 2218, 2100, 102, 775, 774, 2056, 1387, 1343, - 167, 168, 169, 1668, 1569, 2032, 167, 168, 169, 1361, - 1567, 1667, 485, 1947, 1903, 1359, 1798, 580, 1368, 1369, + 855, 856, 108, 2081, 819, 493, 2082, 604, 2254, 2211, + 797, 611, 1553, 2249, 2183, 1644, 84, 461, 2242, 798, + 102, 775, 776, 774, 80, 2087, 460, 1593, 2210, 822, + 823, 824, 2026, 1551, 1891, 2182, 35, 458, 942, 72, + 39, 40, 1170, 952, 1842, 829, 1758, 161, 1841, 1757, + 1503, 1504, 1759, 86, 87, 88, 89, 90, 91, 1693, + 834, 97, 1941, 773, 162, 868, 869, 439, 1861, 1433, + 862, 1097, 103, 1098, 125, 1642, 455, 1493, 1942, 1943, + 167, 168, 169, 145, 102, 467, 1502, 569, 473, 835, + 2148, 967, 966, 976, 977, 969, 970, 971, 972, 973, + 974, 975, 968, 881, 952, 978, 893, 919, 882, 567, + 566, 71, 777, 1550, 135, 894, 880, 887, 879, 124, + 771, 1776, 1520, 1338, 1339, 1340, 898, 899, 2017, 881, + 858, 2015, 473, 948, 882, 2185, 940, 142, 1336, 143, + 1995, 483, 481, 472, 112, 113, 134, 133, 160, 487, + 1618, 1616, 1617, 1284, 1048, 1817, 773, 857, 1575, 1838, + 445, 1989, 447, 462, 1608, 475, 2248, 474, 451, 1990, + 449, 453, 463, 454, 1620, 448, 1621, 459, 1622, 916, + 450, 464, 465, 479, 478, 466, 1613, 472, 457, 476, + 2229, 895, 1279, 888, 948, 902, 129, 110, 136, 117, + 109, 770, 130, 131, 918, 473, 548, 146, 554, 555, + 552, 553, 900, 551, 550, 549, 1996, 151, 118, 1254, + 861, 864, 901, 556, 557, 896, 897, 772, 473, 1850, + 1623, 841, 121, 119, 114, 115, 116, 120, 840, 165, + 1614, 165, 111, 1997, 165, 1612, 1610, 2131, 2076, 1577, + 796, 122, 1961, 1470, 805, 473, 910, 773, 912, 765, + 472, 1255, 914, 1256, 768, 814, 813, 767, 766, 812, + 485, 485, 485, 811, 810, 809, 947, 944, 945, 946, + 951, 953, 950, 472, 949, 803, 1611, 1552, 485, 485, + 808, 943, 1840, 1285, 807, 909, 911, 802, 778, 1173, + 815, 934, 2132, 915, 877, 860, 883, 884, 885, 886, + 472, 2149, 2181, 477, 771, 2261, 796, 758, 2240, 796, + 772, 1875, 790, 138, 789, 758, 1493, 920, 1854, 756, + 758, 470, 1193, 1192, 1293, 917, 1559, 947, 944, 945, + 946, 951, 953, 950, 1643, 949, 471, 806, 598, 2186, + 1851, 1599, 943, 1289, 992, 993, 994, 995, 996, 997, + 998, 999, 1000, 1001, 928, 1877, 73, 165, 2202, 825, + 1266, 1265, 1267, 1268, 1269, 594, 1969, 891, 804, 132, + 1837, 796, 1768, 907, 1050, 1900, 795, 908, 1773, 1767, + 878, 126, 799, 789, 127, 485, 1049, 913, 165, 1899, + 165, 165, 800, 485, 988, 1898, 1168, 870, 1167, 485, + 925, 926, 1695, 1697, 867, 937, 796, 935, 936, 906, + 801, 772, 2259, 1857, 1166, 1857, 1006, 1879, 1856, 1883, + 1856, 1878, 1769, 1876, 831, 1827, 1290, 1164, 1881, 443, + 796, 498, 438, 1078, 1673, 99, 2169, 1880, 1849, 607, + 1045, 1848, 795, 1670, 1771, 795, 1595, 1765, 799, 789, + 1882, 1884, 789, 792, 793, 1063, 758, 2046, 800, 1766, + 786, 790, 990, 991, 1061, 1020, 1023, 1025, 1027, 1028, + 1030, 1032, 1033, 1940, 1024, 1026, 1719, 1029, 1031, 785, + 1034, 1509, 1283, 978, 1662, 139, 144, 141, 147, 148, + 149, 150, 152, 153, 154, 155, 1585, 1042, 890, 1696, + 1498, 156, 157, 158, 159, 1073, 1003, 795, 872, 1754, + 892, 968, 611, 904, 978, 1301, 1448, 955, 958, 1774, + 1772, 967, 966, 976, 977, 969, 970, 971, 972, 973, + 974, 975, 968, 958, 94, 978, 167, 168, 169, 1332, + 1385, 2177, 795, 165, 957, 955, 817, 1157, 1925, 789, + 792, 793, 1609, 758, 876, 1286, 1165, 786, 790, 1099, + 2257, 958, 1280, 2258, 1281, 2256, 795, 1282, 830, 938, + 1594, 1893, 1367, 990, 991, 485, 1418, 1189, 1680, 95, + 1051, 1655, 990, 991, 1418, 1198, 1365, 1366, 1364, 1202, + 1805, 1592, 485, 485, 1590, 485, 1386, 485, 485, 863, + 485, 485, 485, 485, 485, 485, 1171, 1172, 971, 972, + 973, 974, 975, 968, 1587, 485, 978, 1587, 1199, 165, + 1238, 167, 168, 169, 1945, 1781, 805, 803, 1185, 905, + 1770, 1302, 2243, 71, 2234, 1251, 1066, 1178, 1591, 1668, + 2262, 1589, 1197, 1233, 1234, 1363, 485, 1667, 165, 976, + 977, 969, 970, 971, 972, 973, 974, 975, 968, 1291, + 2244, 978, 2235, 165, 1241, 1242, 1450, 875, 1235, 2061, + 1247, 1248, 956, 957, 955, 2060, 1163, 1967, 1094, 165, + 1790, 1782, 1647, 1648, 1649, 1789, 165, 1556, 1274, 1196, + 958, 1195, 1195, 1259, 1176, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 485, 485, 485, 1188, 2263, 1258, + 1174, 1207, 1273, 1208, 1271, 1210, 1212, 1257, 1249, 1216, + 1218, 1220, 1222, 1224, 1243, 1175, 597, 1240, 1297, 1449, + 1239, 165, 1355, 1357, 1358, 1236, 1305, 1261, 1214, 1303, + 1304, 1453, 1454, 1309, 1356, 1311, 1312, 1313, 1314, 956, + 957, 955, 1318, 1308, 956, 957, 955, 1895, 2238, 1294, + 1315, 1316, 1317, 956, 957, 955, 1333, 958, 1361, 1384, + 602, 1272, 958, 1270, 102, 775, 1169, 774, 1387, 2237, + 1902, 958, 1343, 969, 970, 971, 972, 973, 974, 975, + 968, 2236, 485, 978, 2222, 1359, 1260, 2220, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, - 1380, 1381, 1382, 1406, 1409, 1307, 956, 957, 955, 1419, - 1450, 1388, 1389, 1328, 1329, 1330, 485, 485, 1786, 1638, - 1401, 167, 168, 169, 958, 1252, 1603, 165, 167, 168, - 169, 866, 2127, 871, 1602, 1442, 873, 1396, 1790, 1298, - 1262, 485, 1395, 1397, 1250, 1362, 1246, 1421, 165, 1245, - 1441, 485, 1669, 1244, 80, 165, 2126, 165, 1974, 2237, - 1006, 1443, 956, 957, 955, 165, 165, 1974, 2206, 1425, - 1426, 1455, 485, 1449, 1923, 485, 2083, 1488, 1974, 2173, - 958, 1974, 2168, 1974, 580, 1818, 485, 2077, 580, 1801, - 1402, 1403, 1974, 2075, 1408, 1411, 1412, 82, 956, 957, - 955, 1715, 1398, 1587, 580, 2042, 580, 1467, 1957, 1956, - 1953, 1954, 1395, 1397, 1491, 1517, 958, 1953, 1952, 2061, - 1424, 1463, 1513, 1427, 1428, 1461, 580, 1528, 1529, 1530, - 607, 35, 580, 607, 1493, 1835, 956, 957, 955, 1160, - 1820, 485, 1813, 1814, 1473, 580, 1494, 1562, 1563, 1564, - 954, 580, 1566, 1568, 958, 1160, 1159, 2039, 1516, 1465, - 1105, 1104, 2174, 1461, 1543, 485, 1512, 2062, 2063, 2064, - 1473, 485, 1198, 35, 1549, 1198, 1521, 1198, 1522, 1523, - 1524, 1525, 1912, 954, 1500, 1586, 1496, 1499, 1974, 1715, - 1077, 1923, 1955, 1088, 1533, 1534, 1535, 1536, 1722, 1588, - 1515, 1573, 1514, 1473, 611, 1501, 71, 611, 1495, 524, - 523, 526, 527, 528, 529, 485, 1497, 1384, 525, 1462, - 530, 1723, 1384, 1384, 967, 966, 976, 977, 969, 970, - 971, 972, 973, 974, 975, 968, 1580, 1685, 978, 1583, - 1472, 1584, 1539, 1540, 1544, 573, 580, 1494, 71, 1565, - 1557, 1596, 1555, 1554, 1587, 1748, 35, 165, 1923, 1684, - 1461, 1587, 797, 1493, 165, 1570, 1451, 594, 798, 165, - 165, 1579, 1597, 165, 1229, 165, 1544, 564, 1195, 1582, - 1598, 165, 1578, 1429, 1655, 1600, 1601, 1341, 165, 1461, - 1288, 1473, 967, 966, 976, 977, 969, 970, 971, 972, - 973, 974, 975, 968, 2116, 1606, 978, 1091, 780, 1495, - 779, 2198, 71, 2139, 2082, 165, 485, 1493, 2050, 1162, - 71, 1542, 1230, 1231, 1232, 2065, 166, 1989, 1821, 166, - 1538, 71, 166, 498, 1532, 1531, 1276, 486, 1190, 166, - 1186, 1633, 1634, 1158, 96, 1106, 1636, 166, 2027, 1794, - 1478, 1481, 1482, 1483, 1479, 1637, 1480, 1484, 1795, 862, - 1927, 1928, 1626, 1927, 1928, 1992, 1226, 2140, 1553, 486, - 2066, 2067, 486, 166, 486, 2229, 2249, 2245, 1972, 1971, - 1970, 1930, 1361, 1912, 2026, 1805, 1627, 1334, 1739, 1933, - 1651, 1652, 1653, 1740, 1795, 967, 966, 976, 977, 969, - 970, 971, 972, 973, 974, 975, 968, 1932, 1736, 978, - 165, 1227, 1228, 1664, 1737, 1735, 1641, 2207, 165, 1738, - 1904, 1237, 1478, 1481, 1482, 1483, 1479, 1704, 1480, 1484, - 1650, 967, 966, 976, 977, 969, 970, 971, 972, 973, - 974, 975, 968, 165, 1741, 978, 1482, 1483, 1362, 1060, - 1277, 2161, 2163, 1701, 165, 165, 165, 165, 165, 2043, - 2164, 2231, 1724, 1977, 1729, 1708, 165, 1713, 1712, 571, - 165, 2211, 2213, 165, 165, 1659, 1660, 165, 165, 165, - 1663, 1306, 1746, 1679, 1717, 2188, 2191, 1702, 1310, 2158, - 1760, 1287, 1045, 2187, 1691, 1703, 1677, 565, 1799, 1321, - 1322, 1323, 1324, 1325, 1326, 1327, 827, 1699, 1779, 826, - 1720, 1707, 2002, 1053, 1749, 1794, 1859, 927, 1751, 1828, - 1827, 1718, 1414, 2114, 1778, 1054, 1782, 1783, 1784, 1716, - 1776, 1777, 1730, 1088, 485, 1733, 103, 1415, 1297, 165, - 1949, 1742, 1948, 1581, 1204, 1747, 165, 1203, 1731, 1732, - 1191, 1734, 485, 1752, 2037, 1755, 1453, 1454, 485, 590, - 586, 1446, 1549, 1198, 1968, 1630, 1764, 1817, 485, 2169, - 1797, 2134, 1486, 1763, 1711, 587, 574, 575, 1619, 1646, - 1832, 577, 1710, 2219, 1787, 1715, 2217, 2216, 2192, 590, - 586, 165, 165, 165, 165, 165, 1831, 1796, 1064, 1065, - 589, 2190, 588, 1802, 2036, 587, 1973, 165, 165, 1571, - 578, 1806, 1807, 1808, 82, 2035, 1830, 1178, 1907, 1396, - 2251, 2250, 2251, 1674, 1823, 1397, 1671, 1822, 583, 584, - 589, 1074, 588, 1829, 1067, 2165, 1946, 1447, 573, 80, - 85, 77, 533, 485, 1, 456, 1430, 1043, 468, 1384, - 2243, 1420, 1263, 1253, 2086, 1851, 2136, 1980, 1547, 1857, - 1464, 788, 1858, 128, 1510, 1511, 2202, 1468, 93, 1471, - 751, 92, 791, 889, 1872, 1572, 2078, 1871, 1490, 485, - 1865, 1866, 1774, 1863, 1519, 1111, 1109, 1110, 1108, 1113, - 165, 1891, 1869, 1112, 1107, 1886, 1887, 1885, 1888, 1889, - 485, 1870, 484, 1335, 482, 1485, 485, 485, 163, 1895, - 1896, 1913, 1884, 1100, 1729, 1068, 166, 828, 166, 446, - 1958, 166, 1331, 1604, 452, 986, 1709, 1756, 608, 165, - 601, 1918, 1910, 2185, 609, 579, 2157, 755, 2159, 762, - 2110, 1916, 2162, 2155, 2230, 2210, 1518, 486, 486, 486, - 1445, 1056, 2034, 1906, 1678, 1015, 1416, 1931, 1870, 1900, - 1083, 507, 1440, 1354, 522, 486, 486, 519, 959, 1922, - 1936, 520, 1456, 1721, 1950, 1951, 960, 505, 499, 1075, - 1966, 1477, 1475, 1474, 1628, 1087, 165, 1921, 1929, 1935, - 1925, 1937, 1945, 1938, 485, 1081, 1460, 1838, 1986, 939, - 582, 494, 485, 763, 498, 1413, 2145, 165, 1976, 1645, - 2023, 581, 61, 1016, 1963, 1964, 1962, 165, 1961, 38, - 1979, 489, 1981, 2225, 1943, 930, 591, 32, 31, 30, - 1975, 165, 161, 29, 165, 1549, 1978, 28, 23, 22, - 21, 20, 19, 2003, 166, 1055, 1058, 25, 1984, 1983, - 18, 17, 16, 98, 48, 45, 43, 103, 105, 104, - 46, 42, 865, 1998, 1997, 27, 26, 15, 145, 1088, - 14, 13, 486, 12, 11, 166, 1615, 166, 166, 10, - 486, 1624, 1625, 2006, 9, 1629, 486, 2011, 5, 2004, - 4, 933, 24, 1632, 1004, 2000, 2001, 2, 0, 0, - 1635, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2033, 0, 0, 0, 0, 1729, 0, 0, 0, 2038, - 0, 0, 142, 0, 143, 0, 0, 1639, 2047, 0, - 0, 0, 0, 160, 0, 0, 2046, 0, 2008, 2009, - 0, 2010, 0, 0, 2012, 0, 2014, 0, 165, 2052, - 2054, 165, 165, 165, 485, 485, 0, 0, 0, 0, - 2055, 0, 2057, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2072, 2087, 485, 485, 485, 0, 2053, 976, - 977, 969, 970, 971, 972, 973, 974, 975, 968, 0, - 2093, 978, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 151, 0, 0, 0, 0, 0, 0, 485, - 485, 485, 165, 0, 0, 0, 2091, 2092, 0, 0, - 0, 0, 0, 485, 0, 485, 2107, 2103, 2105, 2106, - 166, 485, 0, 0, 2117, 2099, 0, 0, 0, 2113, - 2108, 2115, 0, 2094, 2095, 2096, 2097, 2098, 0, 2122, - 2119, 2101, 2102, 2124, 0, 2125, 0, 1916, 2121, 0, - 0, 1916, 486, 485, 2123, 0, 485, 0, 0, 2128, - 0, 0, 0, 0, 2131, 0, 0, 0, 0, 486, - 486, 2135, 486, 0, 486, 486, 1750, 486, 486, 486, - 486, 486, 486, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 486, 2154, 0, 0, 166, 0, 138, 0, - 0, 165, 609, 609, 609, 0, 0, 0, 0, 0, - 485, 165, 0, 2166, 2138, 0, 0, 2172, 0, 0, - 929, 931, 0, 486, 1916, 166, 0, 0, 2176, 0, - 0, 0, 0, 2020, 1299, 0, 2182, 0, 485, 0, - 166, 1803, 0, 0, 2193, 485, 485, 1729, 0, 2189, - 0, 2201, 2195, 0, 0, 0, 166, 0, 0, 0, - 0, 2215, 0, 166, 2214, 0, 0, 0, 0, 485, - 2221, 0, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 486, 486, 486, 2228, 2196, 0, 2224, 0, 0, - 0, 0, 0, 1842, 1843, 1844, 1845, 1846, 0, 0, - 0, 0, 2239, 2138, 2203, 0, 2019, 0, 166, 1088, - 1852, 0, 1350, 1351, 1352, 1353, 2248, 0, 0, 0, - 0, 0, 0, 2258, 0, 0, 0, 1071, 0, 0, - 0, 0, 0, 0, 0, 609, 0, 0, 0, 0, - 0, 1101, 967, 966, 976, 977, 969, 970, 971, 972, - 973, 974, 975, 968, 0, 0, 978, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1404, 1405, 486, - 139, 144, 141, 147, 148, 149, 150, 152, 153, 154, - 155, 0, 2018, 0, 0, 0, 156, 157, 158, 159, - 0, 0, 1905, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 486, 486, 498, 0, 0, 0, 0, - 167, 168, 169, 0, 166, 967, 966, 976, 977, 969, - 970, 971, 972, 973, 974, 975, 968, 0, 486, 978, - 0, 0, 0, 0, 0, 166, 0, 0, 486, 0, - 0, 0, 166, 0, 166, 0, 0, 0, 0, 0, - 0, 0, 166, 166, 0, 0, 0, 1507, 0, 486, - 0, 0, 486, 0, 0, 0, 0, 0, 0, 0, - 461, 0, 0, 486, 0, 0, 0, 0, 0, 460, - 0, 0, 0, 0, 0, 0, 0, 0, 1969, 0, - 458, 967, 966, 976, 977, 969, 970, 971, 972, 973, - 974, 975, 968, 0, 0, 978, 0, 0, 0, 1982, - 0, 0, 0, 0, 0, 0, 1545, 755, 0, 1985, - 0, 0, 0, 0, 0, 0, 0, 0, 486, 455, - 1200, 0, 0, 1996, 1206, 1206, 1999, 1206, 467, 1206, - 1206, 0, 1215, 1206, 1206, 1206, 1206, 1206, 0, 0, - 0, 962, 486, 965, 0, 1200, 1200, 755, 486, 979, - 980, 981, 982, 983, 984, 985, 0, 963, 964, 961, + 1380, 1381, 1382, 1307, 1669, 2102, 599, 600, 1388, 1389, + 2058, 2034, 1401, 956, 957, 955, 485, 485, 1903, 1791, + 1949, 1904, 1406, 1409, 167, 168, 169, 165, 1419, 1799, + 1395, 958, 1396, 1328, 1329, 1330, 167, 168, 169, 1787, + 1761, 485, 1362, 956, 957, 955, 1638, 1421, 165, 1397, + 1441, 485, 1603, 1602, 1442, 165, 959, 165, 1298, 1006, + 1262, 958, 1250, 1246, 1245, 165, 165, 1244, 1992, 1425, + 1426, 580, 485, 1976, 2239, 485, 1488, 1976, 2208, 1402, + 1403, 1976, 2175, 1408, 1411, 1412, 485, 2129, 956, 957, + 955, 2128, 498, 1924, 167, 168, 169, 1443, 1569, 1398, + 1395, 1016, 1467, 1976, 2170, 80, 958, 1455, 2085, 1424, + 1976, 580, 1427, 1428, 2079, 580, 1819, 1491, 607, 1397, + 1802, 607, 1517, 1463, 2041, 1521, 1512, 1522, 1523, 1524, + 1525, 1976, 2077, 1055, 1058, 2176, 167, 168, 169, 1513, + 1567, 485, 954, 1533, 1534, 1535, 1536, 1562, 1563, 1564, + 1587, 580, 1566, 1568, 580, 35, 167, 168, 169, 1516, + 1252, 2044, 580, 1959, 1958, 485, 1955, 1956, 1465, 1543, + 82, 485, 1198, 1955, 1954, 1198, 1549, 1198, 1461, 580, + 1528, 1529, 1530, 580, 1496, 1586, 1500, 1499, 1493, 1836, + 35, 611, 1160, 1821, 611, 1814, 1815, 1515, 1514, 1588, 967, 966, 976, 977, 969, 970, 971, 972, 973, 974, - 975, 968, 0, 0, 978, 473, 0, 0, 1275, 967, + 975, 968, 1473, 580, 978, 485, 1472, 1384, 1573, 954, + 580, 1715, 1384, 1384, 1160, 1159, 1105, 1104, 1913, 1580, + 71, 573, 1583, 1976, 1584, 1715, 1461, 1924, 2118, 1544, + 1957, 1494, 1539, 1540, 2029, 1748, 1473, 1554, 1557, 1501, + 1685, 1565, 1555, 1493, 1587, 1462, 1684, 165, 1461, 35, + 1587, 1494, 1570, 797, 165, 71, 1796, 1473, 1596, 165, + 165, 1544, 798, 165, 1579, 165, 1578, 1597, 564, 1582, + 1598, 165, 1195, 1451, 1722, 1600, 1601, 2063, 165, 1429, + 1473, 967, 966, 976, 977, 969, 970, 971, 972, 973, + 974, 975, 968, 1495, 1924, 978, 71, 1723, 1606, 1229, + 2023, 1497, 862, 1341, 1288, 165, 485, 524, 523, 526, + 527, 528, 529, 1495, 1091, 1461, 525, 166, 530, 780, + 166, 1493, 779, 166, 71, 2064, 2065, 2066, 486, 2200, + 166, 71, 1633, 1634, 2141, 1060, 2028, 1636, 166, 2084, + 2052, 1162, 1542, 1991, 1822, 1538, 1637, 1230, 1231, 1232, + 2067, 1361, 1532, 1531, 1276, 1190, 1186, 1158, 96, 1626, + 486, 1994, 1795, 486, 166, 486, 966, 976, 977, 969, + 970, 971, 972, 973, 974, 975, 968, 1928, 1929, 978, + 1651, 1652, 1653, 967, 966, 976, 977, 969, 970, 971, + 972, 973, 974, 975, 968, 2068, 2069, 978, 2142, 1553, + 165, 2251, 2247, 1934, 1226, 1974, 1641, 1796, 165, 967, 966, 976, 977, 969, 970, 971, 972, 973, 974, 975, - 968, 0, 486, 978, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 445, 0, 447, 462, 0, 475, 0, - 474, 451, 0, 449, 453, 463, 454, 0, 448, 0, - 459, 0, 0, 450, 464, 465, 479, 478, 466, 0, - 472, 457, 476, 0, 166, 0, 609, 609, 609, 0, - 2068, 166, 0, 2069, 2070, 2071, 166, 166, 1864, 0, - 166, 0, 166, 0, 0, 0, 0, 0, 166, 0, - 0, 534, 0, 0, 0, 166, 0, 0, 967, 966, - 976, 977, 969, 970, 971, 972, 973, 974, 975, 968, - 0, 0, 978, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 166, 486, 966, 976, 977, 969, 970, 971, - 972, 973, 974, 975, 968, 0, 0, 978, 0, 0, - 164, 0, 0, 442, 0, 0, 480, 0, 0, 0, - 0, 0, 0, 442, 1390, 0, 609, 0, 0, 0, - 0, 442, 0, 0, 0, 0, 1399, 1400, 0, 0, - 1200, 0, 0, 0, 0, 0, 0, 0, 595, 595, - 0, 0, 0, 0, 0, 0, 477, 442, 1422, 1423, - 0, 0, 0, 0, 0, 0, 1681, 0, 0, 0, - 0, 0, 0, 0, 470, 0, 0, 0, 0, 0, - 0, 0, 1444, 1457, 0, 0, 0, 166, 0, 471, - 0, 0, 0, 1071, 0, 166, 609, 1705, 1706, 1058, - 0, 0, 0, 2171, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2177, 609, 0, 0, 609, 0, 0, - 166, 0, 0, 0, 0, 0, 0, 0, 755, 0, - 0, 166, 166, 166, 166, 166, 0, 0, 0, 0, - 0, 0, 0, 166, 0, 0, 0, 166, 1656, 0, - 166, 166, 0, 0, 166, 166, 166, 0, 0, 0, - 0, 35, 36, 37, 72, 39, 40, 0, 967, 966, + 968, 1650, 1299, 978, 1478, 1481, 1482, 1483, 1479, 1973, + 1480, 1484, 1972, 165, 1933, 1362, 1931, 1913, 1806, 1664, + 1627, 1701, 1334, 1736, 165, 165, 165, 165, 165, 1227, + 1228, 1724, 1739, 1708, 1659, 1660, 165, 1740, 571, 1663, + 165, 1737, 1735, 165, 165, 1720, 1738, 165, 165, 165, + 2231, 1746, 2209, 1729, 1679, 1677, 1717, 1905, 1704, 1741, + 1760, 1482, 1483, 1045, 2045, 1691, 2163, 2165, 1979, 1713, + 1699, 1712, 2233, 2213, 2215, 2166, 2190, 1702, 1780, 1707, + 1350, 1351, 1352, 1353, 2189, 1703, 1749, 2193, 2160, 1287, + 1751, 565, 1800, 1718, 827, 826, 1716, 1779, 1414, 1783, + 1784, 1785, 2004, 1763, 485, 1730, 1795, 1860, 1733, 165, + 1742, 927, 1829, 1415, 1297, 1747, 165, 1053, 1731, 1732, + 1828, 1734, 485, 1755, 1752, 103, 1446, 2116, 485, 1054, + 1951, 1950, 1581, 1198, 1549, 1404, 1405, 1764, 485, 1204, + 1798, 1478, 1481, 1482, 1483, 1479, 1203, 1480, 1484, 1191, + 1833, 1928, 1929, 1777, 1778, 1788, 1818, 2039, 1970, 590, + 586, 165, 165, 165, 165, 165, 1797, 1453, 1454, 1832, + 1630, 2171, 1803, 498, 2136, 587, 1486, 165, 165, 574, + 575, 1711, 1824, 1831, 1396, 1619, 1646, 1178, 577, 1710, + 1823, 1807, 1808, 1809, 590, 586, 2221, 2219, 1064, 1065, + 589, 1397, 588, 2218, 2194, 2192, 2038, 1975, 1830, 1571, + 587, 578, 82, 485, 2037, 1908, 1715, 2253, 2252, 1384, + 1674, 1671, 1074, 1067, 1420, 1507, 2253, 2167, 1852, 1948, + 1447, 573, 80, 583, 584, 589, 85, 588, 77, 1872, + 1, 456, 1873, 1430, 1043, 468, 2245, 1263, 1253, 485, + 1866, 1867, 1858, 1892, 2088, 1859, 2138, 1982, 1864, 1871, + 165, 1547, 1870, 788, 128, 1887, 1888, 1886, 1889, 1890, + 485, 1510, 1511, 2204, 93, 751, 485, 485, 92, 1896, + 1897, 791, 1885, 889, 1545, 1572, 1914, 166, 2080, 166, + 1917, 1775, 166, 1519, 1111, 1109, 1110, 1108, 1113, 165, + 1112, 1107, 1335, 1729, 1923, 482, 1485, 163, 579, 1100, + 1068, 828, 446, 1960, 1331, 1604, 1871, 452, 486, 486, + 486, 986, 1709, 1756, 1936, 608, 1938, 601, 1939, 1932, + 1919, 2187, 2159, 2161, 2112, 2164, 486, 486, 1911, 2157, + 2232, 2212, 1937, 1518, 1445, 1056, 2036, 1907, 1952, 1953, + 1678, 1968, 1015, 1416, 1944, 1083, 507, 165, 1440, 1354, + 2022, 522, 1946, 1947, 519, 485, 520, 1901, 1456, 1721, + 960, 505, 499, 485, 1075, 1477, 1475, 1474, 165, 1628, + 1087, 1930, 1926, 1081, 1963, 1965, 1966, 1964, 165, 1460, + 1981, 1839, 1983, 1988, 533, 1922, 939, 582, 1978, 494, + 763, 1413, 165, 2147, 1645, 165, 2025, 581, 1549, 61, + 1980, 38, 489, 2227, 2005, 166, 1986, 1985, 1977, 930, + 591, 32, 31, 30, 29, 28, 23, 22, 2000, 21, + 20, 19, 25, 18, 17, 16, 98, 1999, 48, 45, + 2021, 43, 105, 486, 104, 46, 166, 42, 166, 166, + 865, 486, 27, 26, 484, 15, 14, 486, 2010, 2011, + 2006, 2012, 13, 2013, 2014, 12, 2016, 2002, 2003, 967, + 966, 976, 977, 969, 970, 971, 972, 973, 974, 975, + 968, 11, 10, 978, 9, 5, 609, 4, 933, 755, + 2008, 762, 24, 1004, 2, 0, 2040, 0, 0, 2048, + 0, 0, 0, 2049, 0, 1729, 0, 0, 0, 0, + 0, 0, 2054, 0, 2055, 0, 0, 0, 0, 0, + 165, 0, 0, 165, 165, 165, 485, 485, 2056, 0, + 0, 0, 0, 0, 2035, 0, 0, 0, 0, 0, + 0, 0, 0, 2074, 1681, 2089, 485, 485, 485, 967, + 966, 976, 977, 969, 970, 971, 972, 973, 974, 975, + 968, 0, 2095, 978, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1705, 1706, 1058, 0, 0, + 0, 485, 485, 485, 165, 2057, 2093, 2059, 0, 0, + 0, 0, 0, 0, 0, 485, 0, 485, 2105, 2107, + 2108, 166, 0, 485, 0, 2119, 0, 2109, 1917, 0, + 0, 2115, 1917, 2117, 2121, 2096, 2097, 2098, 2099, 2100, + 2124, 0, 0, 2103, 2104, 0, 0, 0, 2126, 0, + 2127, 0, 0, 486, 0, 485, 0, 0, 485, 0, + 2130, 0, 2094, 2101, 0, 2133, 0, 0, 0, 0, + 486, 486, 2137, 486, 0, 486, 486, 0, 486, 486, + 486, 486, 486, 486, 0, 2110, 2123, 0, 0, 0, + 0, 0, 2125, 486, 2156, 0, 0, 166, 0, 0, + 0, 0, 0, 165, 2140, 1917, 0, 2168, 0, 0, + 0, 0, 485, 165, 0, 0, 0, 0, 2174, 2020, + 0, 0, 0, 0, 486, 0, 166, 0, 0, 2178, + 0, 0, 0, 0, 0, 0, 0, 2184, 0, 0, + 485, 166, 2191, 0, 0, 0, 0, 485, 485, 0, + 0, 2195, 0, 2197, 2203, 0, 0, 166, 0, 0, + 0, 0, 0, 2217, 166, 2216, 0, 0, 1729, 0, + 0, 485, 2223, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 486, 486, 486, 2230, 0, 2198, 2226, 0, + 0, 0, 0, 2140, 2205, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2241, 0, 0, 0, 0, 166, + 0, 0, 0, 0, 0, 0, 0, 0, 2250, 0, + 0, 0, 0, 0, 161, 2260, 1894, 0, 967, 966, 976, 977, 969, 970, 971, 972, 973, 974, 975, 968, - 0, 76, 978, 762, 0, 0, 41, 67, 68, 0, - 65, 69, 0, 0, 0, 0, 0, 66, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 755, 0, 0, - 0, 486, 0, 762, 0, 0, 166, 0, 0, 0, - 0, 0, 0, 166, 0, 0, 54, 0, 0, 486, - 0, 0, 0, 0, 0, 486, 71, 0, 0, 0, - 0, 0, 0, 0, 0, 486, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 755, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 166, 166, - 166, 166, 166, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 166, 166, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 44, 47, - 50, 49, 52, 0, 64, 0, 0, 70, 0, 0, - 486, 0, 0, 0, 0, 0, 0, 0, 1893, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 75, 74, 0, 0, 62, 63, 51, 0, 0, - 0, 0, 0, 0, 0, 0, 486, 0, 1640, 0, - 0, 0, 0, 1908, 0, 0, 0, 166, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 486, 0, 0, - 0, 0, 0, 486, 486, 0, 55, 56, 0, 57, - 58, 59, 60, 0, 0, 0, 0, 0, 0, 0, - 442, 0, 442, 0, 0, 442, 166, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1657, - 0, 0, 0, 1658, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1665, 1666, 0, 0, 0, 0, - 1672, 0, 0, 1675, 1676, 0, 0, 0, 0, 0, - 0, 1682, 0, 1683, 0, 0, 1686, 1687, 1688, 1689, - 1690, 0, 0, 166, 0, 0, 0, 0, 0, 0, - 0, 486, 1700, 0, 0, 0, 0, 0, 0, 486, - 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, - 0, 73, 0, 0, 166, 1200, 0, 0, 0, 0, + 0, 0, 978, 0, 0, 0, 0, 0, 0, 103, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 145, 1909, 0, 0, 0, 0, 0, 0, 0, 0, + 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 609, 609, 609, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1762, 929, 931, 486, 486, 0, 0, 0, 0, + 0, 0, 0, 0, 142, 166, 143, 0, 0, 0, + 0, 161, 0, 0, 0, 160, 0, 0, 0, 486, + 0, 0, 0, 0, 0, 0, 166, 0, 0, 486, + 0, 0, 0, 166, 0, 166, 103, 0, 0, 0, + 0, 0, 0, 166, 166, 0, 0, 145, 0, 0, + 486, 0, 0, 486, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 486, 0, 1865, 0, 0, 0, + 0, 0, 0, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 151, 0, 967, 966, 976, 977, + 969, 970, 971, 972, 973, 974, 975, 968, 0, 1071, + 978, 142, 0, 143, 0, 0, 0, 609, 0, 0, + 0, 0, 160, 1101, 0, 0, 0, 0, 0, 486, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2027, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 486, 0, 0, 0, 0, 0, 486, + 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, + 0, 2050, 0, 0, 2051, 0, 0, 2053, 0, 0, + 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 151, 0, 0, 0, 0, 962, 0, 965, 0, + 138, 0, 0, 486, 979, 980, 981, 982, 983, 984, + 985, 0, 963, 964, 961, 967, 966, 976, 977, 969, + 970, 971, 972, 973, 974, 975, 968, 0, 0, 978, + 967, 966, 976, 977, 969, 970, 971, 972, 973, 974, + 975, 968, 0, 0, 978, 166, 0, 0, 0, 0, + 0, 0, 166, 0, 0, 0, 0, 166, 166, 0, + 0, 166, 0, 166, 0, 0, 0, 0, 0, 166, + 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, + 0, 0, 0, 2114, 498, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 138, 0, 755, + 0, 0, 0, 166, 486, 0, 0, 0, 0, 0, + 0, 0, 1200, 0, 0, 0, 1206, 1206, 0, 1206, + 0, 1206, 1206, 0, 1215, 1206, 1206, 1206, 1206, 1206, + 0, 1656, 0, 0, 0, 0, 0, 1200, 1200, 755, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1399, + 1400, 967, 966, 976, 977, 969, 970, 971, 972, 973, + 974, 975, 968, 0, 0, 978, 0, 0, 0, 0, + 1275, 0, 139, 144, 141, 147, 148, 149, 150, 152, + 153, 154, 155, 0, 0, 0, 0, 0, 156, 157, + 158, 159, 0, 0, 0, 1444, 0, 0, 166, 0, + 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 609, 609, + 609, 166, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 166, 166, 166, 166, 166, 0, 0, 0, + 0, 0, 0, 0, 166, 0, 0, 0, 166, 0, + 0, 166, 166, 0, 0, 166, 166, 166, 0, 139, + 144, 141, 147, 148, 149, 150, 152, 153, 154, 155, + 0, 0, 0, 0, 0, 156, 157, 158, 159, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1390, 0, 609, 0, + 0, 0, 486, 0, 0, 0, 0, 166, 0, 0, + 0, 0, 1200, 0, 166, 0, 0, 0, 0, 0, + 486, 0, 0, 0, 0, 0, 486, 0, 0, 0, + 1422, 1423, 0, 0, 0, 0, 486, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 534, 0, 0, + 0, 0, 0, 0, 0, 1457, 0, 0, 0, 166, + 166, 166, 166, 166, 0, 1071, 0, 0, 609, 0, + 0, 0, 0, 0, 0, 166, 166, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 609, 0, 0, 609, + 0, 0, 0, 0, 0, 0, 164, 0, 0, 442, + 755, 0, 480, 0, 0, 0, 0, 0, 0, 442, + 0, 486, 0, 0, 0, 0, 0, 442, 0, 0, + 0, 1046, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 595, 595, 0, 0, 0, 0, + 0, 0, 0, 442, 0, 0, 0, 486, 0, 0, + 0, 0, 0, 0, 0, 762, 0, 0, 166, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 486, 0, + 0, 0, 0, 441, 486, 486, 0, 0, 0, 755, + 0, 0, 0, 488, 0, 762, 0, 0, 0, 0, + 0, 568, 0, 0, 0, 0, 0, 166, 0, 0, + 0, 0, 0, 0, 0, 35, 36, 37, 72, 39, + 40, 0, 1657, 0, 0, 0, 1658, 759, 0, 0, + 0, 0, 0, 0, 0, 76, 0, 1665, 1666, 755, + 41, 67, 68, 1672, 65, 69, 1675, 1676, 0, 0, + 0, 66, 0, 0, 1682, 0, 1683, 0, 0, 1686, + 1687, 1688, 1689, 1690, 0, 166, 0, 0, 0, 0, + 0, 0, 0, 486, 0, 1700, 0, 0, 0, 0, + 54, 486, 0, 0, 0, 0, 166, 0, 0, 0, + 71, 0, 0, 0, 0, 0, 166, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 166, 0, 0, 166, 0, 0, 0, 0, 161, 0, + 0, 0, 1744, 1745, 0, 0, 0, 0, 0, 1811, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1640, 0, 0, 103, 0, 125, 0, 0, 0, 0, + 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, + 0, 0, 44, 47, 50, 49, 52, 0, 64, 0, + 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, + 124, 0, 0, 0, 53, 75, 74, 0, 0, 62, + 63, 51, 0, 0, 0, 0, 0, 0, 142, 0, + 143, 0, 0, 0, 0, 1181, 1182, 134, 133, 160, 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, - 0, 166, 0, 0, 0, 0, 0, 0, 0, 1744, - 1745, 0, 0, 0, 0, 0, 0, 0, 442, 0, + 0, 166, 166, 166, 486, 486, 0, 0, 0, 0, + 55, 56, 0, 57, 58, 59, 60, 0, 0, 0, + 0, 0, 0, 0, 486, 486, 486, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 129, 1183, 136, + 0, 1180, 0, 130, 131, 0, 0, 1200, 146, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 151, 486, + 486, 486, 166, 0, 1868, 1869, 442, 0, 442, 0, + 0, 442, 0, 486, 0, 486, 0, 0, 0, 0, + 0, 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2025, 0, 595, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, - 0, 442, 1090, 0, 0, 498, 0, 0, 0, 0, - 0, 0, 2048, 0, 0, 2049, 1800, 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1812, 0, 0, 0, 1200, 0, - 1819, 0, 0, 0, 0, 0, 0, 0, 609, 0, - 1824, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 166, 0, 0, 166, 166, - 166, 486, 486, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 486, 0, 73, 486, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1801, 0, + 1920, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 866, 0, 871, 0, 0, 873, 1813, 0, 0, 0, + 1200, 1935, 1820, 0, 0, 0, 0, 0, 0, 0, + 609, 166, 1825, 0, 138, 0, 0, 0, 0, 0, + 486, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 486, 486, 486, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 442, 0, 0, 0, 486, 0, + 0, 0, 0, 0, 0, 486, 486, 0, 0, 0, + 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 132, 0, 0, 0, 0, 442, 0, 442, 1090, 486, + 0, 0, 126, 0, 0, 127, 0, 609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 536, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2112, 498, 609, 486, 486, 486, 166, - 0, 1867, 1868, 0, 0, 0, 0, 0, 0, 0, - 486, 0, 486, 0, 0, 0, 0, 0, 486, 0, - 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, - 0, 1206, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 536, 34, 0, 0, 0, 0, 0, 0, - 486, 0, 609, 486, 0, 1200, 0, 0, 1920, 1206, - 0, 0, 0, 0, 0, 0, 0, 1919, 0, 1201, - 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1934, 0, - 0, 0, 0, 0, 1201, 1201, 0, 0, 166, 0, - 442, 0, 0, 0, 0, 0, 0, 486, 166, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 572, 0, 0, 0, 0, 0, 0, 442, - 0, 0, 0, 0, 0, 486, 0, 0, 0, 0, - 0, 0, 486, 486, 1296, 0, 755, 0, 0, 1200, - 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, - 442, 0, 0, 0, 0, 0, 486, 442, 0, 0, - 0, 0, 0, 0, 0, 0, 1319, 1320, 442, 442, - 442, 442, 442, 442, 442, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2005, 442, 0, 0, 2007, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2016, 2017, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2031, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1200, 0, 0, 2040, - 2041, 0, 0, 2045, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 595, 1296, 0, 0, 0, 595, - 595, 0, 0, 595, 595, 595, 0, 0, 0, 1201, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1812, 2073, 0, 595, - 595, 595, 595, 595, 0, 0, 0, 0, 1438, 0, - 0, 0, 2076, 0, 0, 0, 2088, 2089, 2090, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, - 0, 0, 0, 0, 0, 1296, 442, 0, 442, 0, - 0, 0, 0, 0, 0, 0, 442, 442, 0, 0, - 0, 1812, 1812, 1812, 0, 0, 0, 0, 0, 0, - 2104, 0, 0, 0, 0, 2118, 0, 2120, 0, 0, - 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1206, 0, 2007, 0, 0, 0, 2009, + 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, + 2018, 2019, 0, 0, 609, 0, 0, 1200, 0, 1077, + 1921, 1206, 1088, 0, 0, 0, 2033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2042, 2043, 0, 0, 2047, 0, 0, + 572, 0, 0, 0, 0, 0, 139, 144, 141, 147, + 148, 149, 150, 152, 153, 154, 155, 0, 0, 0, + 0, 0, 156, 157, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1128, 0, 0, 1812, 0, 0, 609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2141, 2142, 2143, 2144, - 0, 2148, 0, 2149, 2150, 2151, 0, 2152, 2153, 0, + 442, 0, 0, 0, 0, 0, 0, 2078, 0, 755, + 0, 0, 1200, 0, 0, 0, 0, 1813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2178, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1200, 0, - 2194, 0, 0, 0, 0, 0, 0, 609, 609, 0, - 0, 0, 922, 922, 922, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1116, 0, 0, 0, 0, - 0, 1812, 34, 0, 0, 0, 0, 0, 2222, 2223, - 0, 0, 0, 0, 0, 987, 989, 0, 442, 0, - 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, - 442, 442, 0, 0, 442, 0, 1631, 0, 0, 1129, - 0, 0, 442, 0, 0, 0, 1002, 0, 0, 442, - 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 0, 1017, - 1019, 1022, 1022, 1022, 1019, 1022, 1022, 1019, 1022, 1035, - 1036, 1037, 1038, 1039, 1040, 1041, 442, 0, 0, 0, - 0, 1047, 0, 0, 0, 34, 0, 0, 0, 0, - 1142, 1145, 1146, 1147, 1148, 1149, 1150, 0, 1151, 1152, - 1153, 1154, 1155, 1130, 1131, 1132, 1133, 1114, 1115, 1143, - 0, 1117, 1084, 1118, 1119, 1120, 1121, 1122, 1123, 1124, - 1125, 1126, 1127, 1134, 1135, 1136, 1137, 1138, 1139, 1140, - 1141, 0, 0, 0, 595, 595, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 161, 0, 595, 0, 0, 0, 0, - 0, 0, 0, 0, 1810, 0, 0, 0, 0, 0, - 0, 442, 0, 0, 0, 0, 0, 0, 103, 1438, - 125, 0, 0, 0, 0, 0, 0, 0, 0, 145, - 0, 0, 0, 0, 0, 0, 0, 0, 1144, 0, - 0, 0, 0, 595, 442, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1201, 442, 442, 442, 442, 442, - 135, 0, 0, 0, 0, 124, 0, 1743, 0, 0, - 0, 442, 0, 0, 442, 442, 0, 0, 442, 1753, - 1296, 0, 0, 142, 0, 143, 0, 0, 0, 0, - 1181, 1182, 134, 133, 160, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, - 442, 0, 129, 1183, 136, 0, 1180, 1809, 130, 131, - 1177, 0, 0, 146, 0, 0, 0, 1201, 0, 0, - 0, 0, 0, 151, 103, 0, 125, 1296, 0, 0, - 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 442, 442, 442, 442, 442, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 135, 0, 442, 442, - 0, 124, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, - 0, 143, 0, 0, 0, 0, 1181, 1182, 134, 133, - 160, 0, 0, 595, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 922, 922, 922, 138, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 129, 1183, - 136, 442, 1180, 0, 130, 131, 0, 0, 0, 146, - 0, 0, 0, 0, 1201, 0, 0, 0, 0, 151, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, - 442, 0, 0, 0, 0, 0, 0, 126, 0, 0, - 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1201, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1201, 1201, 0, 0, 1106, 0, 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 442, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1201, 0, + 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1200, + 1296, 2143, 2144, 2145, 2146, 0, 2150, 0, 2151, 2152, + 2153, 0, 2154, 2155, 0, 0, 442, 0, 0, 0, + 0, 0, 0, 442, 0, 0, 0, 0, 0, 0, + 1237, 0, 1319, 1320, 442, 442, 442, 442, 442, 442, + 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1813, 2075, 2180, 0, 0, 0, 0, 0, 0, 1277, 0, 0, 0, 0, 0, 0, 0, 0, 442, 0, - 0, 0, 0, 0, 0, 138, 0, 0, 442, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 442, 0, 0, 442, 0, 1489, 0, 0, - 0, 139, 144, 141, 147, 148, 149, 150, 152, 153, - 154, 155, 0, 0, 0, 0, 0, 156, 157, 158, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1201, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2090, 2091, 2092, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1306, 0, 0, 0, 0, 0, 0, 1310, 0, 0, + 0, 0, 0, 2224, 2225, 1813, 1813, 1813, 1321, 1322, + 1323, 1324, 1325, 1326, 1327, 0, 0, 0, 0, 2120, + 1128, 2122, 0, 0, 0, 0, 0, 1813, 0, 0, + 595, 1296, 0, 0, 0, 595, 595, 0, 0, 595, + 595, 595, 1088, 0, 0, 1201, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1813, + 0, 0, 609, 0, 0, 595, 595, 595, 595, 595, + 0, 0, 0, 0, 1438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, - 0, 0, 442, 442, 442, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, + 0, 1296, 442, 0, 442, 0, 0, 0, 0, 0, + 0, 0, 442, 442, 0, 0, 1813, 0, 0, 0, + 922, 922, 922, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1116, 0, 0, 0, 0, 0, 0, + 34, 0, 1200, 0, 2196, 0, 0, 0, 0, 0, + 0, 609, 609, 987, 989, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1464, + 0, 0, 0, 0, 0, 1813, 1468, 1129, 1471, 0, + 0, 0, 0, 0, 1002, 0, 0, 1490, 1007, 1008, + 1009, 1010, 1011, 1012, 1013, 1014, 0, 1017, 1019, 1022, + 1022, 1022, 1019, 1022, 1022, 1019, 1022, 1035, 1036, 1037, + 1038, 1039, 1040, 1041, 0, 0, 0, 0, 0, 1047, + 0, 0, 0, 34, 0, 0, 0, 0, 1142, 1145, + 1146, 1147, 1148, 1149, 1150, 0, 1151, 1152, 1153, 1154, + 1155, 1130, 1131, 1132, 1133, 1114, 1115, 1143, 0, 1117, + 1084, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, + 1127, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 139, 144, 141, - 147, 148, 149, 150, 152, 153, 154, 155, 0, 0, - 0, 0, 0, 156, 157, 158, 159, 0, 0, 0, - 0, 0, 0, 1438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, + 0, 442, 0, 0, 0, 0, 442, 442, 0, 0, + 442, 0, 1631, 0, 0, 0, 0, 0, 442, 0, + 0, 0, 0, 0, 0, 442, 1144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, + 0, 0, 0, 0, 0, 1615, 0, 0, 0, 0, + 1624, 1625, 0, 0, 1629, 0, 0, 0, 0, 0, + 0, 0, 1632, 0, 0, 0, 0, 0, 0, 1635, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 595, 595, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1639, 0, 0, 0, + 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 442, 0, 0, + 0, 0, 0, 0, 0, 1438, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 595, + 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1201, 442, 442, 442, 442, 442, 0, 0, 0, 0, + 0, 0, 0, 1743, 0, 0, 0, 442, 0, 0, + 442, 442, 161, 0, 442, 1753, 1296, 0, 0, 0, + 0, 0, 0, 1177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 103, 0, 125, + 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, + 0, 0, 0, 0, 922, 922, 922, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 442, 0, 0, 135, + 0, 0, 0, 1810, 124, 1750, 0, 0, 0, 0, + 0, 0, 0, 1201, 0, 0, 0, 0, 0, 0, + 0, 0, 142, 1296, 143, 0, 0, 0, 0, 1181, + 1182, 134, 133, 160, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 442, 442, + 442, 442, 442, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 442, 442, 0, 0, 0, 0, + 1804, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 129, 1183, 136, 0, 1180, 0, 130, 131, 0, + 0, 0, 146, 0, 0, 0, 0, 0, 0, 595, + 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1843, 1844, 1845, 1846, 1847, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1088, 1853, + 0, 0, 0, 0, 0, 1489, 0, 442, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1201, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 442, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1201, 0, 0, 0, 0, + 0, 0, 0, 0, 132, 442, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 442, 126, 0, 0, 127, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, + 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1984, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1987, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1201, 1998, 0, 0, 2001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 139, 144, 141, 147, 148, 149, 150, 152, 153, 154, + 155, 0, 0, 0, 0, 0, 156, 157, 158, 159, + 0, 0, 0, 0, 0, 0, 0, 442, 0, 0, + 442, 442, 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1201, 1661, 0, - 0, 572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1661, 0, 0, 572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1698, 0, + 0, 1438, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2070, 0, 0, 2071, 2072, 2073, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1084, 0, 0, 0, 0, - 0, 0, 1725, 1726, 0, 0, 1084, 1084, 1084, 1084, - 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1489, 0, 0, 1084, 0, 0, 0, 1084, + 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, + 1725, 1726, 0, 0, 1084, 1084, 1084, 1084, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1489, 0, 0, 1084, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 313, 0, 0, 2173, 0, 0, 0, 0, 1826, + 222, 0, 0, 0, 2179, 0, 271, 0, 0, 0, + 327, 0, 365, 208, 280, 278, 393, 232, 225, 221, + 207, 255, 286, 325, 383, 319, 0, 275, 0, 0, + 374, 298, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 261, 206, 175, + 310, 375, 236, 0, 0, 0, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 197, 0, 204, + 0, 0, 0, 0, 218, 259, 224, 217, 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 0, 1825, 222, 0, 0, 0, 0, 0, 271, 0, - 0, 0, 327, 0, 365, 208, 280, 278, 393, 232, - 225, 221, 207, 255, 286, 325, 383, 319, 0, 275, - 0, 0, 374, 298, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, - 206, 175, 310, 375, 236, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 197, - 0, 204, 0, 0, 0, 0, 218, 259, 224, 217, - 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 967, 966, 976, 977, 969, 970, 971, 972, 973, + 974, 975, 968, 0, 0, 978, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 967, 966, 976, 977, 969, 970, 971, - 972, 973, 974, 975, 968, 0, 0, 978, 0, 0, + 0, 244, 0, 299, 1918, 0, 34, 0, 422, 0, + 0, 0, 0, 0, 0, 0, 0, 270, 0, 267, + 171, 186, 0, 0, 309, 348, 354, 0, 0, 1084, + 209, 0, 352, 323, 407, 193, 234, 345, 328, 350, + 0, 0, 351, 276, 395, 340, 405, 423, 424, 216, + 303, 413, 387, 419, 434, 187, 213, 317, 380, 410, + 371, 296, 391, 392, 266, 370, 242, 174, 274, 431, + 185, 360, 201, 178, 382, 403, 198, 363, 0, 0, + 0, 180, 401, 379, 293, 263, 264, 179, 0, 344, + 220, 240, 211, 312, 398, 399, 210, 436, 189, 418, + 182, 0, 417, 305, 394, 402, 294, 285, 181, 400, + 292, 284, 269, 230, 250, 338, 279, 339, 251, 301, + 300, 302, 0, 176, 0, 376, 411, 437, 194, 195, + 196, 0, 229, 233, 239, 241, 0, 247, 254, 272, + 316, 337, 335, 341, 0, 389, 406, 414, 421, 427, + 428, 432, 429, 430, 433, 304, 190, 253, 372, 268, + 277, 0, 0, 322, 353, 199, 409, 373, 0, 0, + 0, 0, 2024, 0, 0, 0, 0, 0, 0, 2030, + 2031, 2032, 0, 0, 0, 0, 0, 0, 170, 183, + 273, 0, 342, 237, 435, 416, 412, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 244, 0, 299, 1917, 0, 34, 0, - 422, 0, 0, 0, 0, 0, 0, 0, 0, 270, - 0, 267, 171, 186, 0, 0, 309, 348, 354, 0, - 0, 1084, 209, 0, 352, 323, 407, 193, 234, 345, - 328, 350, 0, 0, 351, 276, 395, 340, 405, 423, - 424, 216, 303, 413, 387, 419, 434, 187, 213, 317, - 380, 410, 371, 296, 391, 392, 266, 370, 242, 174, - 274, 431, 185, 360, 201, 178, 382, 403, 198, 363, - 0, 0, 0, 180, 401, 379, 293, 263, 264, 179, - 0, 344, 220, 240, 211, 312, 398, 399, 210, 436, - 189, 418, 182, 0, 417, 305, 394, 402, 294, 285, - 181, 400, 292, 284, 269, 230, 250, 338, 279, 339, - 251, 301, 300, 302, 0, 176, 0, 376, 411, 437, - 194, 195, 196, 0, 229, 233, 239, 241, 0, 247, - 254, 272, 316, 337, 335, 341, 0, 389, 406, 414, - 421, 427, 428, 432, 429, 430, 433, 304, 190, 253, - 372, 268, 277, 0, 0, 322, 353, 199, 409, 373, - 0, 0, 0, 2022, 0, 0, 0, 0, 0, 0, - 2028, 2029, 2030, 0, 0, 0, 0, 0, 0, 0, - 170, 183, 273, 0, 342, 237, 435, 416, 412, 0, - 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 184, 192, 202, 214, - 227, 235, 245, 249, 252, 256, 257, 260, 265, 282, - 287, 288, 289, 290, 306, 307, 308, 311, 314, 315, - 318, 320, 321, 324, 330, 331, 332, 333, 334, 336, - 343, 347, 355, 356, 357, 358, 359, 361, 362, 366, - 367, 368, 369, 377, 381, 396, 397, 408, 420, 425, - 246, 404, 426, 0, 281, 0, 0, 283, 231, 248, - 258, 0, 415, 378, 188, 349, 238, 177, 205, 191, - 212, 226, 228, 262, 291, 297, 326, 329, 243, 223, - 203, 346, 200, 364, 384, 385, 386, 388, 295, 219, - 0, 0, 1917, 0, 34, 0, 1917, 0, 0, 0, + 0, 0, 172, 173, 184, 192, 202, 214, 227, 235, + 245, 249, 252, 256, 257, 260, 265, 282, 287, 288, + 289, 290, 306, 307, 308, 311, 314, 315, 318, 320, + 321, 324, 330, 331, 332, 333, 334, 336, 343, 347, + 355, 356, 357, 358, 359, 361, 362, 366, 367, 368, + 369, 377, 381, 396, 397, 408, 420, 425, 246, 404, + 426, 0, 281, 0, 0, 283, 231, 248, 258, 0, + 415, 378, 188, 349, 238, 177, 205, 191, 212, 226, + 228, 262, 291, 297, 326, 329, 243, 223, 203, 346, + 200, 364, 384, 385, 386, 388, 295, 219, 0, 0, + 0, 0, 1918, 0, 34, 0, 1918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1917, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2170, 0, 0, 0, 0, 34, 0, 0, + 0, 0, 2172, 0, 0, 0, 0, 34, 0, 0, 0, 0, 734, 721, 0, 0, 670, 737, 641, 659, 746, 661, 664, 704, 620, 683, 313, 656, 0, 645, 616, 652, 617, 643, 672, 222, 676, 640, 723, 686, @@ -1660,7 +1675,7 @@ var yyAct = [...]int{ 319, 743, 275, 693, 0, 374, 298, 0, 0, 0, 674, 726, 681, 717, 669, 705, 630, 692, 738, 657, 701, 739, 261, 206, 175, 310, 375, 236, 0, 0, - 0, 167, 168, 169, 0, 2204, 2205, 0, 0, 0, + 0, 167, 168, 169, 0, 2206, 2207, 0, 0, 0, 0, 0, 197, 0, 204, 698, 733, 654, 700, 218, 259, 224, 217, 390, 703, 749, 615, 695, 0, 618, 621, 745, 729, 649, 650, 0, 0, 0, 0, 0, @@ -1712,7 +1727,7 @@ var yyAct = [...]int{ 218, 259, 224, 217, 390, 703, 749, 615, 695, 0, 618, 621, 745, 729, 649, 650, 0, 0, 0, 0, 0, 0, 0, 673, 682, 714, 667, 0, 0, 0, - 0, 0, 0, 1909, 0, 647, 0, 691, 0, 0, + 0, 0, 0, 1910, 0, 647, 0, 691, 0, 0, 0, 626, 619, 0, 0, 0, 0, 671, 0, 0, 0, 629, 0, 648, 715, 0, 613, 244, 623, 299, 0, 719, 728, 668, 422, 732, 666, 665, 735, 710, @@ -2460,7 +2475,7 @@ var yyAct = [...]int{ 244, 0, 299, 0, 560, 0, 0, 422, 0, 0, 558, 0, 0, 0, 0, 0, 270, 0, 267, 171, 186, 0, 0, 309, 348, 354, 0, 0, 0, 209, - 0, 352, 323, 407, 193, 234, 345, 328, 350, 2197, + 0, 352, 323, 407, 193, 234, 345, 328, 350, 2199, 0, 351, 276, 395, 340, 405, 423, 424, 216, 303, 413, 387, 419, 434, 187, 213, 317, 380, 410, 371, 296, 391, 392, 266, 370, 242, 174, 274, 431, 185, @@ -3912,23 +3927,23 @@ var yyAct = [...]int{ } var yyPact = [...]int{ - 2795, -1000, -345, 1654, -1000, -1000, -1000, -1000, -1000, -1000, + 3049, -1000, -347, 1677, -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, 1618, 1145, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 576, 1283, -1000, 1526, 256, -1000, 27601, 385, - -1000, 27144, 384, 2256, 27601, -1000, 114, -1000, 60, 27601, - 100, 26687, -1000, -1000, -284, 12944, 1476, -18, -27, 27601, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1259, - 1575, 1583, 1613, 1069, 1588, -1000, 11103, 11103, 316, 316, - 316, 9275, -1000, -1000, 16613, 27601, 27601, 209, -1000, 1526, - -1000, -1000, 139, -1000, 210, 1248, -1000, 1246, -1000, 557, - 597, 236, 331, 330, 235, 234, 229, 228, 227, 226, - 225, 223, 246, -1000, 553, 553, -168, -180, 1847, 288, - 288, 288, 337, 1495, 1492, -1000, 609, -1000, 553, 553, - 138, 553, 553, 553, 553, 195, 193, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 241, 1526, 183, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1646, 1169, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 663, 1307, -1000, 1545, 242, -1000, 27751, 478, + -1000, 27294, 475, 73, 27751, -1000, 109, -1000, 103, 27751, + 113, 26837, -1000, -1000, -280, 13094, 1500, 7, 6, 27751, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1245, + 1608, 1620, 1644, 1120, 1623, -1000, 11253, 11253, 380, 380, + 380, 9425, -1000, -1000, 16763, 27751, 27751, 294, -1000, 1545, + -1000, -1000, 169, -1000, 301, 1270, -1000, 1267, -1000, 490, + 421, 298, 379, 348, 295, 291, 276, 275, 274, 270, + 267, 266, 304, -1000, 638, 638, -149, -167, 2346, 352, + 352, 352, 402, 1511, 1510, -1000, 611, -1000, 638, 638, + 146, 638, 638, 638, 638, 231, 224, 638, 638, 638, + 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, + 638, 638, 193, 1545, 212, -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, @@ -3955,26 +3970,26 @@ 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, -1000, 27601, 103, - 27601, -1000, 465, 27601, 649, 649, -10, 649, 649, 649, - 649, 107, 463, -28, -1000, 105, 170, 79, 180, 635, - 329, 67, -1000, -1000, 177, 635, 73, -1000, 649, 7391, - 7391, 7391, -1000, 1506, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 334, -1000, -1000, -1000, -1000, 27601, 26230, 253, - 583, -1000, -1000, -1000, 32, -1000, -1000, 1121, 719, -1000, - 12944, 2371, 1251, 1251, -1000, -1000, 400, -1000, -1000, 14315, - 14315, 14315, 14315, 14315, 14315, 14315, 14315, 14315, 14315, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 27751, 100, + 27751, -1000, 568, 27751, 751, 751, 15, 751, 751, 751, + 751, 107, 543, 3, -1000, 105, 215, 116, 185, 711, + 292, 60, -1000, -1000, 168, 711, 101, -1000, 751, 7541, + 7541, 7541, -1000, 1530, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 397, -1000, -1000, -1000, -1000, 27751, 26380, 230, + 661, -1000, -1000, -1000, 33, -1000, -1000, 1080, 866, -1000, + 13094, 2416, 1280, 1280, -1000, -1000, 521, -1000, -1000, 14465, + 14465, 14465, 14465, 14465, 14465, 14465, 14465, 14465, 14465, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1251, 460, -1000, 12487, 1251, 1251, 1251, - 1251, 1251, 1251, 1251, 1251, 12944, 1251, 1251, 1251, 1251, - 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, - 1251, 1251, 1251, -1000, -1000, -1000, 27601, -1000, 1251, 111, - 1618, -1000, 1145, -1000, -1000, -1000, 1513, 12944, 12944, 1618, - -1000, 1413, 11103, -1000, -1000, 1558, -1000, -1000, -1000, -1000, - -1000, 690, 1642, -1000, 15229, 456, 1639, 25773, -1000, 19368, - 25316, 1245, 8804, -61, -1000, -1000, -1000, 581, 18454, -1000, + -1000, -1000, -1000, 1280, 566, -1000, 12637, 1280, 1280, 1280, + 1280, 1280, 1280, 1280, 1280, 13094, 1280, 1280, 1280, 1280, + 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, + 1280, 1280, 1280, -1000, -1000, -1000, 27751, -1000, 1280, 127, + 1646, -1000, 1169, -1000, -1000, -1000, 1547, 13094, 13094, 1646, + -1000, 1309, 11253, -1000, -1000, 1588, -1000, -1000, -1000, -1000, + -1000, 752, 1661, -1000, 15379, 565, 1660, 25923, -1000, 19518, + 25466, 1262, 8954, -46, -1000, -1000, -1000, 651, 18604, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1506, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 1530, -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, @@ -3987,193 +4002,193 @@ 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, 1098, 27601, -1000, -1000, 3711, 964, -1000, 1282, -1000, - 1093, -1000, 1258, 1302, 382, 964, 377, 376, 374, -1000, - -109, -1000, -1000, -1000, -1000, -1000, 553, 553, 242, 256, - 4154, -1000, -1000, -1000, 24852, 1279, 964, -1000, 1277, -1000, - 1541, 328, 493, 493, 964, -1000, -1000, 27601, 964, 1538, - 1535, 27601, 27601, -1000, 24395, -1000, 23938, 23481, 850, 27601, - 23024, 22567, 22110, 21653, 21196, -1000, 1356, -1000, 1264, -1000, - -1000, -1000, 27601, 27601, 27601, 15, -1000, -1000, 27601, 964, - -1000, -1000, 848, 847, 553, 553, 842, 985, 981, 978, - 553, 553, 840, 976, 957, 175, 830, 797, 790, 871, - 972, 110, 841, 793, 768, 27601, 1275, 27601, -1000, 164, - 515, 264, 562, 1526, 1470, 1228, 327, 380, 964, 298, - 298, -1000, 7862, -1000, -1000, 971, 12944, -1000, 642, 635, - 635, -1000, -1000, -1000, -1000, -1000, -1000, 649, 27601, 642, - -1000, -1000, -1000, 635, 649, 27601, 649, 649, 649, 649, - 635, 635, 635, 649, 27601, 27601, 27601, 27601, 27601, 27601, - 27601, 27601, 27601, 7391, 7391, 7391, 529, 649, -1000, 1334, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 95, -1000, - -1000, -1000, -1000, -1000, 1654, -1000, -1000, -1000, -113, 1225, - 20739, -1000, -288, -289, -294, -295, -1000, -1000, -1000, -296, - -297, -1000, -1000, -1000, 12944, 12944, 12944, 12944, 750, 540, - 14315, 713, 524, 14315, 14315, 14315, 14315, 14315, 14315, 14315, - 14315, 14315, 14315, 14315, 14315, 14315, 14315, 14315, 610, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 964, -1000, 1652, - 1142, 1142, 487, 487, 487, 487, 487, 487, 487, 487, - 487, 4934, 9732, 7862, 1069, 1088, 1618, 11103, 11103, 12944, - 12944, 12017, 11560, 11103, 1520, 593, 719, 27601, -1000, 924, - -1000, -1000, 13858, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 27601, 27601, 11103, 11103, 11103, - 11103, 11103, -1000, 1221, -1000, -176, 16156, 12944, 967, 1583, - 1069, 1558, 1554, 1647, 514, 1011, 1204, -1000, 826, 1583, - 17997, 1227, -1000, 1558, -1000, -1000, -1000, 27601, -1000, -1000, - 20282, -1000, -1000, 6920, 27601, 221, 27601, -1000, 1229, 1379, - -1000, -1000, -1000, 1569, 17540, 27601, 1255, 1154, -1000, -1000, - 447, 8333, -61, -1000, 8333, 1143, -1000, -58, -68, 10189, - 470, -1000, -1000, -1000, 1847, 14772, 1052, -1000, 12, -1000, - -1000, -1000, 1258, -1000, 1258, 1258, 1258, 1258, 15, 15, - 15, 15, -1000, -1000, -1000, -1000, -1000, 1274, 1273, -1000, - 1258, 1258, 1258, 1258, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 1164, 27751, -1000, -1000, 3859, 960, -1000, 1306, -1000, + 1162, -1000, 1290, 1255, 473, 960, 459, 443, 441, -1000, + -94, -1000, -1000, -1000, -1000, -1000, 638, 638, 303, 242, + 4387, -1000, -1000, -1000, 25002, 1305, 960, -1000, 1304, -1000, + 1570, 362, 552, 552, 960, -1000, -1000, 27751, 960, 1567, + 1560, 27751, 27751, -1000, 24545, -1000, 24088, 23631, 859, 27751, + 23174, 22717, 22260, 21803, 21346, -1000, 1404, -1000, 1299, -1000, + -1000, -1000, 27751, 27751, 27751, 29, -1000, -1000, 27751, 960, + -1000, -1000, 851, 848, 638, 638, 845, 999, 996, 995, + 638, 638, 839, 994, 1092, 237, 838, 830, 814, 917, + 992, 106, 894, 892, 809, 27751, 1303, 27751, -1000, 178, + 619, 265, 647, 1545, 1498, 1252, 386, 472, 960, 365, + 365, -1000, 8012, -1000, -1000, 990, 13094, -1000, 713, 711, + 711, -1000, -1000, -1000, -1000, -1000, -1000, 751, 27751, 713, + -1000, -1000, -1000, 711, 751, 27751, 751, 751, 751, 751, + 711, 711, 711, 751, 27751, 27751, 27751, 27751, 27751, 27751, + 27751, 27751, 27751, 7541, 7541, 7541, 623, 751, -1000, 1399, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 102, -1000, + -1000, -1000, -1000, -1000, 1677, -1000, -1000, -1000, -114, 1251, + 20889, -1000, -289, -290, -291, -292, -1000, -1000, -1000, -293, + -294, -1000, -1000, -1000, 13094, 13094, 13094, 13094, 844, 603, + 14465, 762, 670, 14465, 14465, 14465, 14465, 14465, 14465, 14465, + 14465, 14465, 14465, 14465, 14465, 14465, 14465, 14465, 662, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 960, -1000, 1675, + 1250, 1250, 550, 550, 550, 550, 550, 550, 550, 550, + 550, 5082, 9882, 8012, 1120, 1157, 1646, 11253, 11253, 13094, + 13094, 12167, 11710, 11253, 1526, 680, 866, 27751, -1000, 1008, + -1000, -1000, 14008, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 27751, 27751, 11253, 11253, 11253, + 11253, 11253, -1000, 1227, -1000, -172, 16306, 13094, 986, 1620, + 1120, 1588, 1549, 1670, 598, 857, 1221, -1000, 926, 1620, + 18147, 1263, -1000, 1588, -1000, -1000, -1000, 27751, -1000, -1000, + 20432, -1000, -1000, 7070, 27751, 254, 27751, -1000, 1205, 1391, + -1000, -1000, -1000, 1603, 17690, 27751, 1269, 1249, -1000, -1000, + 560, 8483, -46, -1000, 8483, 1187, -1000, -32, -70, 10339, + 548, -1000, -1000, -1000, 2346, 14922, 1059, -1000, 38, -1000, + -1000, -1000, 1290, -1000, 1290, 1290, 1290, 1290, 29, 29, + 29, 29, -1000, -1000, -1000, -1000, -1000, 1302, 1301, -1000, + 1290, 1290, 1290, 1290, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1269, 1269, 1269, 1260, 1260, 282, -1000, 12944, 137, - 27601, 1551, 766, 164, 305, 1314, 964, 964, 964, 305, - -1000, 912, 906, -1000, 1203, -1000, -1000, 1612, -1000, -1000, - 617, 677, 671, 600, 27601, 132, 216, -1000, 285, -1000, - 27601, 964, 1534, 493, 964, -1000, 964, -1000, -1000, -1000, - -1000, 446, -1000, -1000, 964, 1199, -1000, 1192, 673, 667, - 658, 661, 1199, -1000, -1000, -132, 1199, -1000, 1199, -1000, - 1199, -1000, 1199, -1000, 1199, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 542, 27601, 132, 610, -1000, 324, -1000, - -1000, 610, 610, -1000, -1000, -1000, -1000, 966, 958, -1000, + -1000, 1294, 1294, 1294, 1291, 1291, 354, -1000, 13094, 138, + 27751, 1592, 808, 178, 367, 1355, 960, 960, 960, 367, + -1000, 1072, 1030, -1000, 1200, -1000, -1000, 1642, -1000, -1000, + 587, 731, 730, 487, 27751, 134, 250, -1000, 341, -1000, + 27751, 960, 1553, 552, 960, -1000, 960, -1000, -1000, -1000, + -1000, 556, -1000, -1000, 960, 1198, -1000, 1192, 745, 698, + 742, 695, 1198, -1000, -1000, -122, 1198, -1000, 1198, -1000, + 1198, -1000, 1198, -1000, 1198, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 625, 27751, 134, 662, -1000, 384, -1000, + -1000, 662, 662, -1000, -1000, -1000, -1000, 985, 984, -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, -337, 27601, -1000, 161, 559, - 201, 254, 205, 27601, 120, 1577, 147, 187, 27601, 27601, - 298, 1333, 27601, 1561, 27601, -1000, -1000, -1000, -1000, 719, - 27601, -1000, -1000, 649, 649, -1000, -1000, 27601, 649, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 649, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -338, 27751, -1000, 148, 644, + 241, 281, 222, 27751, 122, 1614, 157, 223, 27751, 27751, + 365, 1397, 27751, 1596, 27751, -1000, -1000, -1000, -1000, 866, + 27751, -1000, -1000, 751, 751, -1000, -1000, 27751, 751, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 751, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 951, -1000, 27601, 27601, -1000, -1000, -1000, -1000, - -1000, 70, -64, 185, -1000, -1000, -1000, -1000, 1579, -1000, - 719, 540, 575, 534, -1000, -1000, 825, -1000, -1000, 2390, - -1000, -1000, -1000, -1000, 713, 14315, 14315, 14315, 1115, 2390, - 2679, 1868, 2504, 487, 727, 727, 482, 482, 482, 482, - 482, 703, 703, -1000, -1000, -1000, -1000, 924, -1000, -1000, - -1000, 924, 11103, 11103, 1198, 1251, 444, -1000, 1259, -1000, - -1000, 1583, 1063, 1063, 919, 1049, 572, 1634, 1063, 552, - 1631, 1063, 1063, 11103, -1000, -1000, 618, -1000, 12944, 924, - -1000, 1183, 1197, 1175, 1063, 924, 924, 1063, 1063, 27601, - -1000, -279, -1000, -89, 453, 1251, -1000, 19825, -1000, -1000, - 924, 1121, -1000, 1513, -1000, -1000, 1468, -1000, 1389, 12944, - 12944, 12944, -1000, -1000, -1000, 1513, 1582, -1000, 1434, 1433, - 1592, 11103, 19368, 1558, -1000, -1000, -1000, 433, 1592, 1187, - 1251, -1000, 27601, 19368, 19368, 19368, 19368, 19368, -1000, 1372, - 1365, -1000, 1371, 1345, 1401, 27601, -1000, 1082, 1069, 17540, - 221, 1201, 19368, 27601, -1000, -1000, 19368, 27601, 6449, -1000, - 1143, -61, -86, -1000, -1000, -1000, -1000, 719, -1000, 858, - -1000, 289, -1000, 293, -1000, -1000, -1000, -1000, 550, 10, - -1000, -1000, 15, 15, -1000, -1000, 470, 734, 470, 470, - 470, 950, 950, -1000, -1000, -1000, -1000, -1000, 764, -1000, - -1000, -1000, 744, -1000, -1000, 975, 1337, 137, -1000, -1000, - 553, 918, 1480, 27601, -1000, -1000, 1026, 161, 27601, 629, - 1332, -1000, 1314, 1314, 1314, 27601, -1000, -1000, -1000, -1000, - 4008, 27601, 1080, -1000, 118, 27601, 1022, 27601, -1000, 1077, - 1267, -1000, 964, -1000, -1000, 7862, -1000, 27601, 1251, -1000, - -1000, -1000, -1000, 379, 1510, 1509, 132, 118, 470, 964, - -1000, -1000, -1000, -1000, -1000, -341, 1072, 345, 140, 150, - 27601, 27601, 27601, 27601, 27601, 392, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 188, 320, -1000, 27601, 27601, 403, -1000, - -1000, -1000, 635, -1000, -1000, 635, -1000, -1000, -1000, -1000, - -1000, -1000, 1504, -79, -311, -1000, -308, -1000, -1000, -1000, - -1000, 1115, 2390, 2479, -1000, 14315, 14315, -1000, -1000, 1063, - 1063, 11103, 7862, 1618, 1513, -1000, -1000, 383, 610, 383, - 14315, 14315, -1000, 14315, 14315, -1000, -123, 1101, 589, -1000, - 12944, 813, -1000, -1000, 14315, 14315, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 373, 366, 358, 27601, -1000, - -1000, -1000, 862, 916, 1381, 719, 719, -1000, -1000, 27601, - -1000, -1000, -1000, -1000, 1624, 12944, -1000, 1141, -1000, 5978, - 1583, 1330, 27601, 1251, 1654, 15699, 27601, 1196, -1000, 554, - 1379, 1310, 1328, 1307, -1000, -1000, -1000, -1000, 1364, -1000, - 1346, -1000, -1000, -1000, -1000, -1000, 1069, 1592, 19368, 1108, - -1000, 1108, -1000, 431, -1000, -1000, -1000, -82, -74, -1000, - -1000, -1000, 1847, -1000, -1000, -1000, 643, 14315, 1646, -1000, - 915, 1533, -1000, 1531, -1000, -1000, 470, 470, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1055, -1000, 1048, 1130, 1046, - 54, -1000, 1301, 1503, 553, 553, -1000, 735, -1000, 964, - -1000, -1000, 343, -1000, 1560, 27601, 1327, 1326, 1325, -1000, - 1609, 1126, -1000, 27601, -1000, -1000, 27601, -1000, -1000, 1429, - 137, 27601, -1000, -1000, -1000, 216, 27601, -1000, 1142, 118, - -1000, -1000, -1000, -1000, -1000, -1000, 27601, 151, -1000, 1266, - 874, -1000, 1311, -1000, -1000, -1000, -1000, 108, 198, -1000, - 27601, 361, 1337, 27601, -1000, -1000, -1000, 649, 649, -1000, - 1500, -1000, 964, -1000, 14315, 2390, 2390, -1000, -1000, 924, - -1000, 1583, -1000, 924, 1258, 1258, -1000, 1258, 1260, -1000, - 1258, 83, 1258, 76, 924, 924, 2292, 2216, 2143, 834, - 1251, -116, -1000, 719, 12944, 1322, 1286, 1251, 1251, 1251, - 1041, 907, 15, -1000, -1000, -1000, 1620, 1607, 719, -1000, - -1000, -1000, 1546, 1129, 1095, -1000, -1000, 10646, 1043, 1425, - 416, 1041, 1618, 27601, 12944, -1000, -1000, 12944, 1257, -1000, - 12944, -1000, -1000, -1000, 1618, 1618, 1108, -1000, -1000, 496, - -1000, -1000, -1000, -1000, -1000, 2390, 11, -1000, -1000, -1000, - -1000, -1000, 15, 899, 15, 712, -1000, 699, -1000, -1000, - -218, -1000, -1000, 1109, 1315, -1000, -1000, 27601, -1000, -1000, - 27601, 27601, 27601, 27601, 27601, -1000, -1000, 208, -1000, 1030, - 1025, -1000, -172, -1000, -1000, 1253, -1000, -1000, -1000, 1013, - -1000, -133, 964, 27601, 27601, 27601, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 2390, -1000, 1513, -1000, -1000, 186, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 14315, 14315, - 14315, 14315, 14315, 1583, 895, 719, 14315, 14315, 18911, 27601, - 27601, 17070, 15, -1, -1000, 12944, 12944, 1514, -1000, 1251, - -1000, 1270, 27601, 1251, 27601, -1000, 1583, -1000, 719, 719, - 27601, 719, 1583, -1000, -1000, 470, -1000, 470, 993, 969, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1253, -1000, - -1000, -1000, 1126, -1000, 206, 272, -1000, 216, -1000, -181, - -184, 1568, 27601, -1000, -1000, 7862, -1000, -1000, 1252, 1313, - -1000, -1000, -1000, -1000, 1183, 1183, 1183, 1183, 171, 924, - -1000, 1183, 1183, 1021, -1000, 1021, 1021, 453, -273, -1000, - 1466, 1427, 719, 1121, 1645, -1000, 1251, 1654, 415, 1095, - -1000, -1000, 1019, -1000, -1000, -1000, -1000, -1000, 1566, 1251, - 27601, -1000, -1000, -1000, 1145, 1016, 1100, -1000, 551, 27601, - 27601, -1000, -1000, -1000, -1000, 924, 149, -138, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1, 273, -1000, 1461, 1427, - -1000, 1604, 1460, 1591, -1000, 27601, 1095, 27601, -1000, 1145, - 13401, 1250, 220, -1000, 7862, 5507, 1005, -1000, -1000, 1378, - -130, -147, 1441, 1443, 1443, 1461, -1000, 1590, 1589, -1000, - 894, 1586, 893, 1012, -1000, 220, 1183, 924, 27601, -1000, - -53, -1000, -1000, -1000, -1000, -1000, 1311, -1000, 1336, -1000, - 1430, 799, -1000, -1000, -1000, -1000, 892, 890, -1000, 865, - -1000, -1000, -1000, -1000, 996, 243, -1000, -1000, -133, -136, - -1000, 731, -1000, -1000, -1000, -1000, -1000, 1324, 152, -1000, - -142, -1000, -1000, 1323, -1000, 1630, -1000, -149, -1000, 1632, - 432, 432, -1000, -1000, -1000, -1000, 279, 770, -1000, -1000, - -1000, -1000, + -1000, -1000, 978, -1000, 27751, 27751, -1000, -1000, -1000, -1000, + -1000, 94, -44, 195, -1000, -1000, -1000, -1000, 1616, -1000, + 866, 603, 646, 618, -1000, -1000, 794, -1000, -1000, 2431, + -1000, -1000, -1000, -1000, 762, 14465, 14465, 14465, 602, 2431, + 2552, 728, 1266, 550, 683, 683, 581, 581, 581, 581, + 581, 860, 860, -1000, -1000, -1000, -1000, 1008, -1000, -1000, + -1000, 1008, 11253, 11253, 1196, 1280, 544, -1000, 1245, -1000, + -1000, 1620, 1116, 1116, 775, 1001, 641, 1659, 1116, 632, + 1658, 1116, 1116, 11253, -1000, -1000, 672, -1000, 13094, 1008, + -1000, 1091, 1194, 1188, 1116, 1008, 1008, 1116, 1116, 27751, + -1000, -279, -1000, -61, 541, 1280, -1000, 19975, -1000, -1000, + 1008, 1080, -1000, 1547, -1000, -1000, 1488, -1000, 1450, 13094, + 13094, 13094, -1000, -1000, -1000, 1547, 1619, -1000, 1467, 1465, + 1653, 11253, 19518, 1588, -1000, -1000, -1000, 536, 1653, 1273, + 1280, -1000, 27751, 19518, 19518, 19518, 19518, 19518, -1000, 1429, + 1410, -1000, 1428, 1419, 1446, 27751, -1000, 1150, 1120, 17690, + 254, 1191, 19518, 27751, -1000, -1000, 19518, 27751, 6599, -1000, + 1187, -46, -73, -1000, -1000, -1000, -1000, 866, -1000, 972, + -1000, 2249, -1000, 349, -1000, -1000, -1000, -1000, 559, 36, + -1000, -1000, 29, 29, -1000, -1000, 548, 747, 548, 548, + 548, 971, 971, -1000, -1000, -1000, -1000, -1000, 806, -1000, + -1000, -1000, 801, -1000, -1000, 956, 1360, 138, -1000, -1000, + 638, 961, 1504, 27751, -1000, -1000, 1057, 148, 27751, 690, + 1395, -1000, 1355, 1355, 1355, 27751, -1000, -1000, -1000, -1000, + 3153, 27751, 1133, -1000, 130, 27751, 1053, 27751, -1000, 1130, + 1293, -1000, 960, -1000, -1000, 8012, -1000, 27751, 1280, -1000, + -1000, -1000, -1000, 471, 1540, 1532, 134, 130, 548, 960, + -1000, -1000, -1000, -1000, -1000, -343, 1126, 414, 136, 160, + 27751, 27751, 27751, 27751, 27751, 493, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 221, 383, -1000, 27751, 27751, 446, -1000, + -1000, -1000, 711, -1000, -1000, 711, -1000, -1000, -1000, -1000, + -1000, -1000, 1525, -51, -315, -1000, -308, -1000, -1000, -1000, + -1000, 602, 2431, 2297, -1000, 14465, 14465, -1000, -1000, 1116, + 1116, 11253, 8012, 1646, 1547, -1000, -1000, 377, 662, 377, + 14465, 14465, -1000, 14465, 14465, -1000, -112, 1174, 664, -1000, + 13094, 852, -1000, -1000, 14465, 14465, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 440, 434, 420, 27751, -1000, + -1000, -1000, 950, 953, 1448, 866, 866, -1000, -1000, 27751, + -1000, -1000, -1000, -1000, 1651, 13094, -1000, 1184, -1000, 6128, + 1620, 1394, 27751, 1280, 1677, 15849, 27751, 1242, -1000, 640, + 1391, 1334, 1393, 1528, -1000, -1000, -1000, -1000, 1401, -1000, + 1370, -1000, -1000, -1000, -1000, -1000, 1120, 1653, 19518, 1228, + -1000, 1228, -1000, 533, -1000, -1000, -1000, -57, -45, -1000, + -1000, -1000, 2346, -1000, -1000, -1000, 736, 14465, 14465, 1669, + -1000, 952, 1552, -1000, 1551, -1000, -1000, 548, 548, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1111, -1000, 1104, 1178, + 1101, 66, -1000, 1209, 1524, 638, 638, -1000, 798, -1000, + 960, -1000, -1000, 410, -1000, 1584, 27751, 1389, 1386, 1362, + -1000, 1640, 1171, -1000, 27751, -1000, -1000, 27751, -1000, -1000, + 1464, 138, 27751, -1000, -1000, -1000, 250, 27751, -1000, 1250, + 130, -1000, -1000, -1000, -1000, -1000, -1000, 27751, 147, -1000, + 1292, 1003, -1000, 1317, -1000, -1000, -1000, -1000, 135, 238, + -1000, 27751, 444, 1360, 27751, -1000, -1000, -1000, 751, 751, + -1000, 1520, -1000, 960, -1000, 14465, 2431, 2431, -1000, -1000, + 1008, -1000, 1620, -1000, 1008, 1290, 1290, -1000, 1290, 1291, + -1000, 1290, 87, 1290, 84, 1008, 1008, 2129, 1870, 1790, + 1310, 1280, -110, -1000, 866, 13094, 1284, 1182, 1280, 1280, + 1280, 1088, 943, 29, -1000, -1000, -1000, 1649, 1639, 866, + -1000, -1000, -1000, 1579, 1175, 1062, -1000, -1000, 10796, 1099, + 1460, 517, 1088, 1646, 27751, 13094, -1000, -1000, 13094, 1289, + -1000, 13094, -1000, -1000, -1000, 1646, 1646, 1228, -1000, -1000, + 584, -1000, -1000, -1000, -1000, -1000, 2431, 2431, 80, -1000, + -1000, -1000, -1000, -1000, 29, 942, 29, 796, -1000, 790, + -1000, -1000, -211, -1000, -1000, 1277, 1350, -1000, -1000, 27751, + -1000, -1000, 27751, 27751, 27751, 27751, 27751, -1000, -1000, 247, + -1000, 1069, 1052, -1000, -146, -1000, -1000, 1288, -1000, -1000, + -1000, 1045, -1000, -124, 960, 27751, 27751, 27751, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 2431, -1000, 1547, -1000, + -1000, 196, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 14465, 14465, 14465, 14465, 14465, 1620, 937, 866, 14465, 14465, + 19061, 27751, 27751, 17220, 29, 41, -1000, 13094, 13094, 1548, + -1000, 1280, -1000, 1204, 27751, 1280, 27751, -1000, 1620, -1000, + 866, 866, 27751, 866, 1620, -1000, -1000, 548, -1000, 548, + 1028, 1024, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1288, -1000, -1000, -1000, 1171, -1000, 245, 319, -1000, 250, + -1000, -168, -173, 1601, 27751, -1000, -1000, 8012, -1000, -1000, + 1283, 1354, -1000, -1000, -1000, -1000, 1091, 1091, 1091, 1091, + 162, 1008, -1000, 1091, 1091, 1048, -1000, 1048, 1048, 541, + -272, -1000, 1495, 1472, 866, 1080, 1667, -1000, 1280, 1677, + 496, 1062, -1000, -1000, 1041, -1000, -1000, -1000, -1000, -1000, + 1598, 1280, 27751, -1000, -1000, -1000, 1169, 1019, 1073, -1000, + 633, 27751, 27751, -1000, -1000, -1000, -1000, 1008, 165, -136, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 41, 287, -1000, + 1482, 1472, -1000, 1638, 1491, 1637, -1000, 27751, 1062, 27751, + -1000, 1169, 13551, 1278, 219, -1000, 8012, 5657, 1015, -1000, + -1000, 1443, -120, -142, 1473, 1475, 1475, 1482, -1000, 1636, + 1630, -1000, 919, 1629, 916, 1031, -1000, 219, 1091, 1008, + 27751, -1000, -50, -1000, -1000, -1000, -1000, -1000, 1317, -1000, + 1441, -1000, 1471, 771, -1000, -1000, -1000, -1000, 913, 901, + -1000, 880, -1000, -1000, -1000, -1000, 1011, 342, -1000, -1000, + -124, -131, -1000, 769, -1000, -1000, -1000, -1000, -1000, 1359, + 151, -1000, -137, -1000, -1000, 1358, -1000, 1657, -1000, -143, + -1000, 1666, 591, 591, -1000, -1000, -1000, -1000, 337, 820, + -1000, -1000, -1000, -1000, } var yyPgo = [...]int{ - 0, 1917, 1914, 12, 90, 101, 1912, 1911, 1910, 1908, - 129, 128, 127, 1904, 1899, 1894, 1893, 1891, 1890, 1887, - 1886, 1885, 1882, 1881, 1880, 66, 124, 42, 45, 138, - 1879, 1878, 30, 1876, 1875, 1874, 122, 121, 572, 1873, - 120, 1872, 1871, 1870, 1867, 1862, 1861, 1860, 1859, 1858, - 1857, 1853, 1849, 1848, 1847, 206, 1846, 1845, 4, 1843, - 32, 1841, 1839, 1832, 1831, 1830, 94, 1829, 1826, 1825, - 117, 1823, 1821, 51, 102, 50, 87, 1820, 1819, 77, - 126, 1818, 65, 106, 1817, 1287, 1816, 41, 78, 93, - 1815, 43, 1810, 1808, 48, 1805, 1804, 1803, 76, 1802, - 1801, 612, 1799, 75, 82, 15, 61, 1798, 1797, 1796, - 1793, 40, 44, 1792, 1791, 23, 1787, 1784, 125, 1783, - 85, 22, 1782, 26, 37, 21, 1781, 103, 1780, 11, - 56, 38, 1776, 86, 1775, 1774, 1773, 1772, 33, 1771, - 79, 110, 31, 1770, 1766, 9, 10, 1765, 1764, 1763, - 1762, 1760, 1758, 19, 1756, 5, 1753, 29, 1751, 18, - 20, 74, 80, 25, 8, 1750, 132, 1748, 24, 115, - 73, 111, 1747, 1746, 1745, 786, 145, 1744, 1743, 57, - 1742, 91, 99, 1740, 162, 1739, 1737, 59, 1297, 1662, - 58, 108, 1735, 1733, 2601, 53, 89, 14, 1728, 46, - 1725, 1724, 1723, 139, 119, 63, 792, 47, 1714, 1713, - 1709, 1708, 1707, 1706, 1705, 83, 27, 17, 109, 28, - 1704, 1702, 1696, 71, 36, 1695, 116, 114, 72, 104, - 1693, 135, 105, 64, 1692, 39, 1691, 1690, 1688, 1686, - 81, 1685, 1684, 1683, 1681, 112, 100, 69, 34, 1678, - 35, 68, 113, 107, 1677, 16, 123, 6, 1676, 3, - 0, 1674, 7, 130, 159, 98, 1673, 1672, 1, 1670, - 2, 1668, 1667, 84, 1666, 1665, 1664, 1661, 3372, 1671, - 118, 1660, 137, + 0, 1944, 1943, 11, 89, 90, 1942, 1938, 1937, 1935, + 128, 127, 125, 1934, 1932, 1931, 1915, 1912, 1906, 1905, + 1903, 1902, 1900, 1897, 1895, 66, 155, 42, 40, 140, + 1894, 1892, 24, 1891, 1889, 1888, 123, 121, 645, 1886, + 120, 1885, 1884, 1883, 1882, 1881, 1880, 1879, 1877, 1876, + 1875, 1874, 1873, 1872, 1871, 216, 1870, 1869, 4, 1863, + 34, 1862, 1861, 1859, 1857, 1856, 94, 1854, 1853, 1851, + 114, 1850, 1849, 56, 91, 50, 84, 1847, 1846, 79, + 122, 1843, 64, 104, 1841, 575, 1839, 43, 81, 93, + 1833, 45, 1832, 1831, 51, 1830, 1829, 1827, 75, 1826, + 1825, 2971, 1824, 76, 83, 14, 26, 1822, 1821, 1820, + 1819, 37, 44, 1818, 1816, 29, 1814, 1811, 134, 1809, + 86, 22, 1808, 18, 16, 21, 1806, 100, 1805, 30, + 61, 35, 1803, 87, 1802, 1800, 1797, 1796, 25, 1795, + 77, 110, 67, 1794, 1793, 8, 9, 1791, 1790, 1789, + 1785, 1784, 1783, 10, 1782, 5, 1781, 27, 1780, 17, + 19, 74, 118, 31, 13, 1777, 119, 1775, 28, 115, + 71, 113, 1773, 1772, 1771, 936, 143, 1767, 1765, 58, + 1764, 98, 101, 1763, 174, 1762, 1761, 65, 1298, 1844, + 46, 117, 1760, 1759, 2897, 48, 82, 23, 1757, 69, + 1756, 1755, 1752, 141, 139, 63, 888, 47, 1751, 1750, + 1748, 1747, 1746, 1745, 1744, 32, 80, 20, 109, 33, + 1743, 1741, 1738, 72, 53, 1735, 112, 111, 73, 108, + 1733, 133, 105, 57, 1731, 39, 1728, 1725, 1724, 1723, + 41, 1722, 1721, 1714, 1713, 106, 103, 68, 36, 1711, + 38, 78, 107, 102, 1707, 15, 124, 7, 1706, 3, + 0, 1704, 6, 130, 167, 99, 1698, 1697, 1, 1696, + 2, 1695, 1694, 85, 1693, 1691, 1690, 1688, 3520, 1674, + 116, 1686, 126, } -//line sql.y:5211 +//line sql.y:5216 type yySymType struct { union interface{} empty struct{} @@ -4625,89 +4640,89 @@ var yyR1 = [...]int{ 264, 236, 39, 39, 38, 38, 38, 38, 40, 40, 37, 37, 36, 36, 238, 238, 225, 225, 237, 237, 237, 237, 237, 237, 237, 224, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 208, 208, 208, - 208, 211, 211, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 210, 210, 210, 210, 210, 212, 212, 212, - 212, 212, 213, 213, 213, 213, 213, 213, 213, 213, - 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, - 214, 214, 214, 214, 214, 223, 223, 215, 215, 218, - 218, 219, 219, 219, 220, 220, 221, 221, 216, 216, - 216, 216, 217, 217, 217, 226, 250, 250, 249, 249, - 247, 247, 247, 247, 235, 235, 244, 244, 244, 244, - 244, 234, 234, 230, 230, 230, 231, 231, 232, 232, - 229, 229, 233, 233, 246, 246, 245, 227, 227, 228, - 228, 252, 252, 252, 252, 253, 269, 270, 268, 268, - 268, 268, 268, 60, 60, 60, 183, 183, 183, 242, - 242, 241, 241, 241, 243, 243, 240, 240, 240, 240, + 144, 144, 144, 144, 144, 144, 144, 144, 208, 208, + 208, 208, 211, 211, 209, 209, 209, 209, 209, 209, + 209, 209, 209, 210, 210, 210, 210, 210, 212, 212, + 212, 212, 212, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, + 214, 214, 214, 214, 214, 214, 223, 223, 215, 215, + 218, 218, 219, 219, 219, 220, 220, 221, 221, 216, + 216, 216, 216, 217, 217, 217, 226, 250, 250, 249, + 249, 247, 247, 247, 247, 235, 235, 244, 244, 244, + 244, 244, 234, 234, 230, 230, 230, 231, 231, 232, + 232, 229, 229, 233, 233, 246, 246, 245, 227, 227, + 228, 228, 252, 252, 252, 252, 253, 269, 270, 268, + 268, 268, 268, 268, 60, 60, 60, 183, 183, 183, + 242, 242, 241, 241, 241, 243, 243, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 178, 178, 178, 267, 267, - 267, 267, 267, 267, 266, 266, 266, 239, 239, 239, - 265, 265, 130, 130, 131, 131, 30, 30, 30, 30, - 30, 30, 29, 29, 29, 25, 25, 25, 25, 25, + 240, 240, 240, 240, 240, 240, 178, 178, 178, 267, + 267, 267, 267, 267, 267, 266, 266, 266, 239, 239, + 239, 265, 265, 130, 130, 131, 131, 30, 30, 30, + 30, 30, 30, 29, 29, 29, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 31, 31, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 16, 16, + 25, 25, 25, 25, 25, 25, 25, 25, 31, 31, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 256, 256, 256, + 16, 16, 16, 16, 16, 16, 16, 16, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 222, - 222, 222, 254, 254, 255, 255, 17, 22, 22, 18, - 18, 18, 18, 19, 19, 41, 42, 42, 42, 42, + 222, 222, 222, 254, 254, 255, 255, 17, 22, 22, + 18, 18, 18, 18, 19, 19, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 271, 271, 177, 177, 185, 185, 176, 176, - 199, 199, 199, 179, 179, 179, 180, 180, 275, 275, - 275, 43, 43, 45, 45, 46, 47, 47, 201, 201, - 202, 202, 48, 49, 61, 61, 61, 61, 61, 61, - 63, 63, 63, 7, 7, 7, 7, 57, 57, 57, - 6, 6, 44, 44, 51, 272, 272, 273, 274, 274, - 274, 274, 52, 54, 20, 20, 20, 20, 20, 20, - 78, 78, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 72, 72, 72, 67, 67, 281, - 55, 56, 56, 70, 70, 70, 64, 64, 64, 69, - 69, 69, 75, 75, 77, 77, 77, 77, 77, 79, - 79, 79, 79, 79, 79, 79, 74, 74, 76, 76, - 76, 76, 192, 192, 192, 191, 191, 86, 86, 87, - 87, 88, 88, 89, 89, 89, 128, 104, 104, 160, - 160, 159, 159, 162, 162, 90, 90, 90, 90, 91, - 91, 92, 92, 93, 93, 200, 200, 197, 197, 197, - 196, 196, 97, 97, 97, 99, 98, 98, 98, 98, - 100, 100, 102, 102, 101, 101, 103, 105, 105, 105, - 105, 105, 106, 106, 85, 85, 85, 85, 85, 85, - 85, 85, 174, 174, 108, 108, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 119, 119, 119, 119, - 119, 119, 109, 109, 109, 109, 109, 109, 109, 73, - 73, 120, 120, 120, 127, 121, 121, 112, 112, 112, + 42, 42, 42, 271, 271, 177, 177, 185, 185, 176, + 176, 199, 199, 199, 179, 179, 179, 180, 180, 275, + 275, 275, 43, 43, 45, 45, 46, 47, 47, 201, + 201, 202, 202, 48, 49, 61, 61, 61, 61, 61, + 61, 63, 63, 63, 7, 7, 7, 7, 57, 57, + 57, 6, 6, 44, 44, 51, 272, 272, 273, 274, + 274, 274, 274, 52, 54, 20, 20, 20, 20, 20, + 20, 78, 78, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 72, 72, 72, 67, 67, + 281, 55, 56, 56, 70, 70, 70, 64, 64, 64, + 69, 69, 69, 75, 75, 77, 77, 77, 77, 77, + 79, 79, 79, 79, 79, 79, 79, 74, 74, 76, + 76, 76, 76, 192, 192, 192, 191, 191, 86, 86, + 87, 87, 88, 88, 89, 89, 89, 128, 104, 104, + 160, 160, 159, 159, 162, 162, 90, 90, 90, 90, + 91, 91, 92, 92, 93, 93, 200, 200, 197, 197, + 197, 196, 196, 97, 97, 97, 99, 98, 98, 98, + 98, 100, 100, 102, 102, 101, 101, 103, 105, 105, + 105, 105, 105, 106, 106, 85, 85, 85, 85, 85, + 85, 85, 85, 174, 174, 108, 108, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 119, 119, 119, + 119, 119, 119, 109, 109, 109, 109, 109, 109, 109, + 73, 73, 120, 120, 120, 127, 121, 121, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 116, 116, 116, 116, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 115, + 112, 112, 116, 116, 116, 116, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 282, 282, 118, 117, 117, - 117, 117, 117, 117, 117, 68, 68, 68, 68, 68, - 205, 205, 205, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 134, 134, 65, 65, - 132, 132, 133, 135, 135, 129, 129, 129, 111, 111, - 111, 111, 111, 111, 111, 111, 113, 113, 113, 136, - 136, 137, 137, 138, 138, 139, 139, 140, 141, 141, - 141, 142, 142, 142, 142, 32, 32, 32, 32, 32, - 27, 27, 27, 27, 28, 28, 28, 80, 80, 80, - 80, 82, 82, 81, 81, 58, 58, 59, 59, 59, - 83, 83, 84, 84, 84, 84, 157, 157, 157, 143, - 143, 143, 143, 149, 149, 149, 145, 145, 147, 147, - 147, 148, 148, 148, 146, 154, 154, 156, 156, 155, - 155, 151, 151, 152, 152, 153, 153, 153, 150, 150, - 110, 110, 110, 110, 110, 158, 158, 158, 158, 163, - 163, 123, 123, 125, 125, 124, 126, 164, 164, 168, - 165, 165, 169, 169, 169, 169, 169, 166, 166, 167, - 167, 193, 193, 193, 173, 173, 184, 184, 181, 181, - 182, 182, 175, 175, 186, 186, 186, 53, 122, 122, - 251, 251, 248, 189, 189, 190, 190, 194, 194, 198, - 198, 195, 195, 187, 187, 187, 187, 187, 187, 187, + 115, 115, 115, 115, 115, 115, 282, 282, 118, 117, + 117, 117, 117, 117, 117, 117, 68, 68, 68, 68, + 68, 205, 205, 205, 207, 207, 207, 207, 207, 207, + 207, 207, 207, 207, 207, 207, 207, 134, 134, 65, + 65, 132, 132, 133, 135, 135, 129, 129, 129, 111, + 111, 111, 111, 111, 111, 111, 111, 113, 113, 113, + 136, 136, 137, 137, 138, 138, 139, 139, 140, 141, + 141, 141, 142, 142, 142, 142, 32, 32, 32, 32, + 32, 27, 27, 27, 27, 28, 28, 28, 80, 80, + 80, 80, 82, 82, 81, 81, 58, 58, 59, 59, + 59, 83, 83, 84, 84, 84, 84, 157, 157, 157, + 143, 143, 143, 143, 149, 149, 149, 145, 145, 147, + 147, 147, 148, 148, 148, 146, 154, 154, 156, 156, + 155, 155, 151, 151, 152, 152, 153, 153, 153, 150, + 150, 110, 110, 110, 110, 110, 158, 158, 158, 158, + 163, 163, 123, 123, 125, 125, 124, 126, 164, 164, + 168, 165, 165, 169, 169, 169, 169, 169, 166, 166, + 167, 167, 193, 193, 193, 173, 173, 184, 184, 181, + 181, 182, 182, 175, 175, 186, 186, 186, 53, 122, + 122, 251, 251, 248, 189, 189, 190, 190, 194, 194, + 198, 198, 195, 195, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, @@ -4721,6 +4736,7 @@ var yyR1 = [...]int{ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, @@ -4746,9 +4762,8 @@ var yyR1 = [...]int{ 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 278, 279, - 203, 204, 204, 204, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 278, + 279, 203, 204, 204, 204, } var yyR2 = [...]int{ @@ -4766,89 +4781,89 @@ var yyR2 = [...]int{ 1, 4, 0, 1, 1, 1, 2, 2, 0, 1, 4, 4, 4, 4, 2, 4, 1, 3, 1, 1, 3, 4, 3, 3, 3, 3, 0, 2, 3, 3, - 4, 2, 3, 3, 2, 3, 2, 3, 1, 1, - 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, - 2, 2, 4, 4, 2, 2, 3, 3, 3, 3, - 1, 1, 1, 1, 1, 6, 6, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 0, 3, 0, - 5, 0, 3, 5, 0, 1, 0, 1, 0, 2, - 2, 2, 0, 2, 2, 5, 0, 1, 1, 2, - 1, 3, 2, 3, 0, 1, 3, 3, 3, 4, - 2, 0, 2, 1, 1, 1, 1, 1, 0, 1, - 1, 1, 0, 1, 1, 3, 3, 3, 1, 3, - 1, 11, 12, 12, 13, 5, 3, 3, 1, 1, - 2, 2, 2, 0, 1, 1, 0, 1, 2, 0, - 1, 1, 3, 2, 1, 2, 3, 3, 4, 4, - 3, 3, 3, 3, 4, 4, 3, 3, 3, 3, + 3, 4, 2, 3, 3, 2, 3, 2, 3, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, + 2, 2, 2, 4, 4, 2, 2, 3, 3, 3, + 3, 1, 1, 1, 1, 1, 6, 6, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 0, 3, + 0, 5, 0, 3, 5, 0, 1, 0, 1, 0, + 2, 2, 2, 0, 2, 2, 5, 0, 1, 1, + 2, 1, 3, 2, 3, 0, 1, 3, 3, 3, + 4, 2, 0, 2, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 0, 1, 1, 3, 3, 3, 1, + 3, 1, 11, 12, 12, 13, 5, 3, 3, 1, + 1, 2, 2, 2, 0, 1, 1, 0, 1, 2, + 0, 1, 1, 3, 2, 1, 2, 3, 3, 4, + 4, 3, 3, 3, 3, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 4, 5, 0, 2, 2, 1, 1, + 3, 3, 3, 3, 4, 5, 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 0, 2, 0, 2, 0, 1, 5, 1, - 3, 7, 1, 3, 3, 1, 2, 2, 2, 5, - 5, 5, 6, 6, 5, 5, 2, 2, 2, 2, - 3, 3, 3, 4, 1, 3, 5, 1, 3, 3, - 3, 3, 3, 3, 3, 3, 2, 2, 2, 4, - 4, 2, 11, 3, 6, 8, 6, 6, 6, 13, - 8, 6, 10, 5, 5, 5, 5, 5, 3, 7, - 4, 4, 4, 4, 3, 3, 3, 7, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 2, 0, - 2, 2, 1, 3, 8, 8, 3, 3, 5, 7, - 7, 6, 5, 3, 2, 3, 3, 3, 7, 3, - 3, 3, 3, 4, 7, 5, 2, 4, 4, 4, - 4, 4, 5, 5, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 2, 4, 2, 4, 5, - 4, 4, 4, 4, 3, 3, 5, 2, 3, 3, - 3, 3, 1, 1, 0, 1, 0, 1, 1, 1, - 0, 2, 2, 0, 2, 2, 0, 2, 0, 1, - 1, 2, 1, 1, 2, 1, 1, 5, 0, 1, - 0, 1, 2, 3, 0, 3, 3, 3, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, - 3, 3, 2, 2, 3, 1, 3, 2, 1, 2, - 1, 2, 2, 4, 3, 3, 6, 4, 7, 6, - 1, 3, 2, 2, 2, 2, 1, 1, 1, 3, - 2, 1, 1, 1, 0, 1, 1, 0, 3, 0, - 2, 0, 2, 1, 2, 2, 0, 1, 1, 0, - 1, 1, 0, 1, 0, 1, 2, 3, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, - 3, 5, 0, 1, 2, 1, 1, 0, 2, 1, - 3, 1, 1, 1, 3, 3, 3, 3, 7, 0, - 3, 1, 3, 1, 3, 4, 4, 4, 3, 2, - 4, 0, 1, 0, 2, 0, 1, 0, 1, 2, - 1, 1, 1, 2, 2, 1, 2, 3, 2, 3, - 2, 2, 2, 1, 1, 3, 3, 0, 5, 4, - 5, 5, 0, 2, 1, 3, 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, + 1, 0, 1, 0, 2, 0, 2, 0, 1, 5, + 1, 3, 7, 1, 3, 3, 1, 2, 2, 2, + 5, 5, 5, 6, 6, 5, 5, 2, 2, 2, + 2, 3, 3, 3, 4, 1, 3, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 1, 1, 1, - 1, 4, 5, 5, 6, 4, 4, 6, 6, 6, - 8, 8, 8, 8, 9, 8, 5, 4, 2, 2, + 4, 4, 2, 11, 3, 6, 8, 6, 6, 6, + 13, 8, 6, 10, 5, 5, 5, 5, 5, 3, + 7, 4, 4, 4, 4, 3, 3, 3, 7, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, + 0, 2, 2, 1, 3, 8, 8, 3, 3, 5, + 7, 7, 6, 5, 3, 2, 3, 3, 3, 7, + 3, 3, 3, 3, 4, 7, 5, 2, 4, 4, + 4, 4, 4, 5, 5, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 2, 4, 2, 4, + 5, 4, 4, 4, 4, 3, 3, 5, 2, 3, + 3, 3, 3, 1, 1, 0, 1, 0, 1, 1, + 1, 0, 2, 2, 0, 2, 2, 0, 2, 0, + 1, 1, 2, 1, 1, 2, 1, 1, 5, 0, + 1, 0, 1, 2, 3, 0, 3, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, + 1, 3, 3, 2, 2, 3, 1, 3, 2, 1, + 2, 1, 2, 2, 4, 3, 3, 6, 4, 7, + 6, 1, 3, 2, 2, 2, 2, 1, 1, 1, + 3, 2, 1, 1, 1, 0, 1, 1, 0, 3, + 0, 2, 0, 2, 1, 2, 2, 0, 1, 1, + 0, 1, 1, 0, 1, 0, 1, 2, 3, 4, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, + 2, 3, 5, 0, 1, 2, 1, 1, 0, 2, + 1, 3, 1, 1, 1, 3, 3, 3, 3, 7, + 0, 3, 1, 3, 1, 3, 4, 4, 4, 3, + 2, 4, 0, 1, 0, 2, 0, 1, 0, 1, + 2, 1, 1, 1, 2, 2, 1, 2, 3, 2, + 3, 2, 2, 2, 1, 1, 3, 3, 0, 5, + 4, 5, 5, 0, 2, 1, 3, 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, 3, 3, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, 1, 1, + 1, 1, 4, 5, 5, 6, 4, 4, 6, 6, + 6, 8, 8, 8, 8, 9, 8, 5, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 8, 8, 0, 2, 3, 4, 4, - 4, 4, 4, 4, 4, 0, 3, 4, 7, 3, - 1, 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, 1, 2, 2, 0, - 3, 0, 2, 0, 3, 1, 3, 2, 0, 1, - 1, 0, 2, 4, 4, 0, 2, 2, 1, 1, - 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, - 3, 0, 3, 1, 1, 0, 4, 0, 1, 1, - 0, 3, 1, 3, 2, 1, 0, 2, 4, 0, - 9, 3, 5, 0, 3, 3, 0, 1, 0, 2, - 2, 0, 2, 2, 2, 0, 2, 1, 2, 3, - 3, 0, 2, 1, 2, 3, 4, 3, 0, 1, - 2, 1, 5, 4, 4, 1, 3, 3, 5, 0, - 5, 1, 3, 1, 2, 3, 1, 1, 3, 3, - 1, 3, 3, 3, 3, 3, 2, 1, 2, 1, - 1, 1, 1, 1, 1, 1, 0, 1, 0, 2, - 0, 3, 0, 1, 0, 1, 1, 5, 0, 1, - 0, 1, 2, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 8, 8, 0, 2, 3, 4, + 4, 4, 4, 4, 4, 4, 0, 3, 4, 7, + 3, 1, 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, 1, 2, 2, + 0, 3, 0, 2, 0, 3, 1, 3, 2, 0, + 1, 1, 0, 2, 4, 4, 0, 2, 2, 1, + 1, 3, 3, 3, 3, 3, 3, 3, 0, 3, + 3, 3, 0, 3, 1, 1, 0, 4, 0, 1, + 1, 0, 3, 1, 3, 2, 1, 0, 2, 4, + 0, 9, 3, 5, 0, 3, 3, 0, 1, 0, + 2, 2, 0, 2, 2, 2, 0, 2, 1, 2, + 3, 3, 0, 2, 1, 2, 3, 4, 3, 0, + 1, 2, 1, 5, 4, 4, 1, 3, 3, 5, + 0, 5, 1, 3, 1, 2, 3, 1, 1, 3, + 3, 1, 3, 3, 3, 3, 3, 2, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, + 2, 0, 3, 0, 1, 0, 1, 1, 5, 0, + 1, 0, 1, 2, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 1, 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, @@ -4889,7 +4904,7 @@ 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, - 0, 0, 1, 1, + 1, 0, 0, 1, 1, } var yyChk = [...]int{ @@ -5069,287 +5084,287 @@ var yyChk = [...]int{ -88, -89, -89, -88, -89, 63, 63, 63, 68, 63, 68, 63, -98, -194, -279, -279, -3, -161, 74, -87, -101, -87, -103, -194, 135, -170, -172, 322, 319, 325, - -260, 88, 82, -240, -228, 98, 110, 30, 73, 281, - 95, 171, 29, 170, -221, 285, -216, -216, -217, -260, - 88, 144, -217, -217, -217, -223, 88, -223, 89, 89, - 83, -32, -27, -28, 32, 77, -247, -235, 88, 38, - -189, 83, -82, -101, 110, 73, -251, -251, -251, -194, - 16, -159, -189, 82, 83, -131, 225, -129, 83, -189, - 83, 81, -233, -190, -189, -278, 164, 30, 30, -130, - -131, -217, -260, 475, 474, 83, 166, 223, -84, 332, - 88, 84, -101, -101, -101, -101, -101, 158, 155, 208, - 167, -94, -101, 82, -60, 184, 179, -199, -199, 32, - 319, 452, 450, -73, 109, -112, -112, -279, -279, -75, - -190, -138, -157, -207, 144, 256, 188, 254, 250, 270, - 261, 283, 252, 284, -205, -207, -112, -112, -112, -112, - 346, -138, 117, -85, 115, -112, -112, 165, 165, 165, - -162, 40, 88, 88, 59, -101, -136, 14, -85, 135, - -142, -163, 73, -164, -123, -125, -124, -278, -158, -279, - -189, -162, -106, 82, 118, -92, -91, 73, 74, -93, - 73, -91, 63, 63, -279, -106, -87, -106, -106, 150, - 319, 323, 324, -240, 98, -112, 10, 88, 29, 29, - -217, -217, 83, 82, 83, 82, 83, 82, -183, 386, - 110, -28, -27, -235, -235, 89, -260, 166, 24, -101, - 73, 73, 73, 17, 82, -224, -129, 54, -250, -159, - -254, -255, -101, -111, -131, -101, -81, 214, 222, 81, - 85, -262, 74, 205, 281, 205, -101, -60, -32, -101, - -179, -179, 32, -260, -112, -279, -142, -279, -215, -215, - -215, -219, -215, 244, -215, 244, -279, -279, 20, 20, - 20, 20, -278, -65, 342, -85, 82, 82, -278, -278, - -278, -279, 88, -216, -137, 15, 17, 28, -163, 82, - -279, -279, 82, 54, 150, -279, -138, -168, -85, -85, - 81, -85, -138, -106, -115, -216, 88, -216, 89, 89, - 386, 30, 78, 79, 80, 30, 75, 76, -101, -101, - -101, -101, -159, -189, 201, 83, -279, 82, -222, 349, - 352, -160, 81, 83, -259, 349, -261, -260, -189, -189, - -189, -157, -216, -260, -112, -112, -112, -112, -112, -142, - 88, -112, -112, -159, -279, -159, -159, -197, -216, -146, - -151, -176, -85, -121, 29, -125, 54, -3, -189, -123, - -189, -142, -159, -142, -217, -217, 83, 83, -160, 202, - 183, -255, 353, 353, 23, -159, -258, -257, -190, 81, - 74, -279, -279, -279, -279, -68, 128, 349, -279, -279, - -279, -279, -279, -279, -105, -149, 436, -154, 43, -152, - -153, 44, -150, 45, 53, 10, -123, 150, 83, 23, - -278, -101, -3, 83, 82, 118, -159, -101, -279, 347, - 70, 350, -146, 48, 262, -156, -155, 52, 44, -153, - 17, 46, 17, -164, -189, -3, -112, 198, 81, -58, - 349, -257, -239, -190, 88, 89, 83, 59, 348, 351, - -147, 50, -145, 49, -145, -155, 17, 17, 88, 17, - 88, -58, -279, -279, -159, -59, 213, 440, -262, 59, - -148, 51, 73, 101, 88, 88, 88, 83, 176, -259, - 349, 73, 101, -269, -270, 73, 215, 350, -270, 73, - 11, 10, 351, -268, 184, 179, 182, 31, -268, 178, - 30, 98, + -260, 88, 82, -240, -228, 98, 110, 30, 23, 73, + 281, 95, 171, 29, 170, -221, 285, -216, -216, -217, + -260, 88, 144, -217, -217, -217, -223, 88, -223, 89, + 89, 83, -32, -27, -28, 32, 77, -247, -235, 88, + 38, -189, 83, -82, -101, 110, 73, -251, -251, -251, + -194, 16, -159, -189, 82, 83, -131, 225, -129, 83, + -189, 83, 81, -233, -190, -189, -278, 164, 30, 30, + -130, -131, -217, -260, 475, 474, 83, 166, 223, -84, + 332, 88, 84, -101, -101, -101, -101, -101, 158, 155, + 208, 167, -94, -101, 82, -60, 184, 179, -199, -199, + 32, 319, 452, 450, -73, 109, -112, -112, -279, -279, + -75, -190, -138, -157, -207, 144, 256, 188, 254, 250, + 270, 261, 283, 252, 284, -205, -207, -112, -112, -112, + -112, 346, -138, 117, -85, 115, -112, -112, 165, 165, + 165, -162, 40, 88, 88, 59, -101, -136, 14, -85, + 135, -142, -163, 73, -164, -123, -125, -124, -278, -158, + -279, -189, -162, -106, 82, 118, -92, -91, 73, 74, + -93, 73, -91, 63, 63, -279, -106, -87, -106, -106, + 150, 319, 323, 324, -240, 98, -112, -112, 10, 88, + 29, 29, -217, -217, 83, 82, 83, 82, 83, 82, + -183, 386, 110, -28, -27, -235, -235, 89, -260, 166, + 24, -101, 73, 73, 73, 17, 82, -224, -129, 54, + -250, -159, -254, -255, -101, -111, -131, -101, -81, 214, + 222, 81, 85, -262, 74, 205, 281, 205, -101, -60, + -32, -101, -179, -179, 32, -260, -112, -279, -142, -279, + -215, -215, -215, -219, -215, 244, -215, 244, -279, -279, + 20, 20, 20, 20, -278, -65, 342, -85, 82, 82, + -278, -278, -278, -279, 88, -216, -137, 15, 17, 28, + -163, 82, -279, -279, 82, 54, 150, -279, -138, -168, + -85, -85, 81, -85, -138, -106, -115, -216, 88, -216, + 89, 89, 386, 30, 78, 79, 80, 30, 75, 76, + -101, -101, -101, -101, -159, -189, 201, 83, -279, 82, + -222, 349, 352, -160, 81, 83, -259, 349, -261, -260, + -189, -189, -189, -157, -216, -260, -112, -112, -112, -112, + -112, -142, 88, -112, -112, -159, -279, -159, -159, -197, + -216, -146, -151, -176, -85, -121, 29, -125, 54, -3, + -189, -123, -189, -142, -159, -142, -217, -217, 83, 83, + -160, 202, 183, -255, 353, 353, 23, -159, -258, -257, + -190, 81, 74, -279, -279, -279, -279, -68, 128, 349, + -279, -279, -279, -279, -279, -279, -105, -149, 436, -154, + 43, -152, -153, 44, -150, 45, 53, 10, -123, 150, + 83, 23, -278, -101, -3, 83, 82, 118, -159, -101, + -279, 347, 70, 350, -146, 48, 262, -156, -155, 52, + 44, -153, 17, 46, 17, -164, -189, -3, -112, 198, + 81, -58, 349, -257, -239, -190, 88, 89, 83, 59, + 348, 351, -147, 50, -145, 49, -145, -155, 17, 17, + 88, 17, 88, -58, -279, -279, -159, -59, 213, 440, + -262, 59, -148, 51, 73, 101, 88, 88, 88, 83, + 176, -259, 349, 73, 101, -269, -270, 73, 215, 350, + -270, 73, 11, 10, 351, -268, 184, 179, 182, 31, + -268, 178, 30, 98, } var yyDef = [...]int{ 34, -2, 2, 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, 32, 33, 823, 0, 559, 559, 559, 559, 559, - 559, 559, 0, 0, 559, -2, -2, 559, 959, 0, - 559, 0, 0, -2, 492, 493, 0, 495, -2, 0, - 0, 504, 1370, 1370, 554, 0, 0, 0, 0, 0, - 559, 1368, 55, 56, 510, 511, 512, 1, 3, 0, - 563, 831, 0, 0, -2, 561, 0, 0, 942, 942, - 942, 0, 86, 87, 0, 0, 0, -2, 90, -2, - 114, 115, 0, 119, 368, 329, 371, 327, 357, -2, - 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 332, 224, 224, 0, 0, -2, 320, - 320, 320, 0, 0, 0, 354, 944, 274, 224, 224, - 0, 224, 224, 224, 224, 0, 0, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 847, 118, 960, 957, 958, 35, 36, 37, - 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, - 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, - 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, - 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, - 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, - 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, - 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, - 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, - 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, - 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, - 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, - 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, - 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, - 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, - 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, - 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, - 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, - 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, - 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, - 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, - 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, - 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, - 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, - 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, - 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, - 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, - 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 0, 936, - 0, 424, 644, 0, 483, 483, 0, 483, 483, 483, - 483, 0, 0, 0, 436, 0, 0, 0, 0, 480, - 0, 0, 455, 457, 0, 480, 0, 467, 483, 1371, - 1371, 1371, 927, 0, 477, 475, 489, 490, 472, 473, - 491, 494, 0, 499, 502, 953, 954, 0, 517, 0, - 1176, 509, 522, 523, 0, 555, 556, 40, 695, 654, - 0, 660, 662, 0, 697, 698, 699, 700, 701, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 727, - 728, 729, 730, 808, 809, 810, 811, 812, 813, 814, - 815, 664, 665, 805, 0, 916, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 796, 0, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 0, 0, 0, 0, - 0, 0, 0, -2, -2, 1370, 0, 532, 0, 0, - 823, 51, 0, 559, 564, 565, 866, 0, 0, 823, - 1369, 0, 0, -2, -2, 575, 581, 582, 583, 584, - 585, 560, 0, 588, 592, 0, 0, 0, 943, 0, - 0, 72, 0, 1333, 920, -2, -2, 0, 0, 955, - 956, 929, -2, 963, 964, 965, 966, 967, 968, 969, - 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, - 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, - 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, - 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, - 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, - 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, - 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, - 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, - 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, - 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, - 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, - 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, - 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, - -2, 0, 0, 128, 129, 0, 38, 250, 0, 124, - 0, 244, 197, 847, 0, 0, 0, 0, 0, 559, - 0, 937, 109, 110, 116, 117, 224, 224, 0, 118, - 118, 336, 337, 338, 0, 0, -2, 248, 0, 321, - 0, 0, 238, 238, 242, 240, 241, 0, 0, 0, - 0, 0, 0, 348, 0, 349, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 408, 0, 225, 0, 366, - 367, 275, 0, 0, 0, 0, 346, 347, 0, 0, - 945, 946, 0, 0, 224, 224, 0, 0, 0, 0, - 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 108, 860, - 0, 0, 0, -2, 0, 416, 0, 0, 0, 938, - 938, 423, 0, 425, 426, 0, 0, 427, 0, 480, - 480, 478, 479, 429, 430, 431, 432, 483, 0, 0, - 233, 234, 235, 480, 483, 0, 483, 483, 483, 483, - 480, 480, 480, 483, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1371, 1371, 1371, 486, 483, 464, 465, - 468, 469, 1372, 1373, 974, 470, 471, 928, 500, 503, - 520, 518, 519, 521, 513, 514, 515, 516, 0, 534, - 535, 540, 0, 0, 0, 0, 546, 547, 548, 0, - 0, 551, 552, 553, 0, 0, 0, 0, 0, 658, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 682, - 683, 684, 685, 686, 687, 688, 661, 0, 675, 0, - 0, 0, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 0, 572, 0, 0, 0, 823, 0, 0, 0, - 0, 0, 0, 0, 569, 0, 797, 0, 748, 0, - 749, 757, 0, 750, 758, 751, 759, 752, 753, 760, - 754, 761, 755, 756, 762, 0, 0, 0, 572, 572, - 0, 0, 41, 524, 525, 0, 627, 948, 0, 831, - 0, 574, 869, 0, 0, 832, 824, 825, 828, 831, - 0, 597, 586, 576, 579, 580, 562, 0, 589, 593, - 0, 595, 596, 0, 0, 70, 0, 643, 0, 599, - 601, 602, 603, 625, 0, 0, 0, 0, 66, 68, - 644, 0, 1333, 926, 0, 74, 75, 0, 0, 0, - 212, 931, 932, 933, -2, 231, 0, 136, 204, 148, - 149, 150, 197, 152, 197, 197, 197, 197, 208, 208, - 208, 208, 180, 181, 182, 183, 184, 0, 0, 167, - 197, 197, 197, 197, 187, 188, 189, 190, 191, 192, - 193, 194, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 199, 199, 199, 201, 201, 0, 39, 0, 216, - 0, 828, 0, 860, 940, 950, 0, 0, 0, 940, - 92, 0, 0, 369, 330, 358, 370, 0, 333, 334, - -2, 0, 0, 320, 0, 322, 0, 232, 0, -2, - 0, 242, 0, 238, 242, 239, 242, 230, 243, 350, - 805, 0, 351, 352, 0, 388, 613, 0, 0, 0, - 0, 0, 394, 395, 396, 0, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 359, 360, 361, 362, - 363, 364, 365, 0, 0, 322, 0, 355, 0, 276, - 277, 0, 0, 280, 281, 282, 283, 0, 0, 286, - 287, 288, 289, 290, 314, 315, 316, 291, 292, 293, - 294, 295, 296, 297, 308, 309, 310, 311, 312, 313, - 298, 299, 300, 301, 302, 305, 0, 102, 851, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 938, 0, 0, 0, 0, 645, 961, 962, 484, 485, - 0, 236, 237, 483, 483, 433, 456, 0, 483, 437, - 458, 438, 440, 439, 441, 460, 461, 483, 444, 481, - 482, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 462, 0, 463, 0, 0, 501, 505, 506, 507, - 508, 0, 0, 537, 542, 543, 544, 545, 557, 550, - 696, 655, 656, 657, 659, 676, 0, 678, 680, 666, - 667, 691, 692, 693, 0, 0, 0, 0, 689, 671, - 0, 702, 703, 704, 705, 706, 707, 708, 709, 710, - 711, 712, 713, 716, 780, 781, 782, 0, 714, 715, - 726, 0, 0, 0, 573, 806, 0, -2, 0, 694, - 915, 831, 0, 0, 0, 0, 699, 808, 0, 699, - 808, 0, 0, 0, 570, 571, 803, 800, 0, 0, - 766, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 527, 528, 530, 0, 647, 0, 628, 0, 630, 631, - 0, 949, 533, 866, 52, 42, 0, 867, 0, 0, - 0, 0, 827, 829, 830, 866, 0, 816, 0, 0, - 652, 0, 0, 577, 48, 594, 590, 0, 652, 0, - 0, 642, 0, 0, 0, 0, 0, 0, 632, 0, - 0, 635, 0, 0, 0, 0, 626, 0, 0, 0, - -2, 0, 0, 0, 62, 63, 0, 0, 0, 921, - 73, 0, 0, 78, 79, 922, 923, 924, 925, 0, - 111, -2, 271, 130, 132, 133, 134, 125, 135, 206, - 205, 151, 208, 208, 174, 175, 212, 0, 212, 212, - 212, 0, 0, 168, 169, 170, 171, 162, 0, 163, - 164, 165, 0, 166, 249, 0, 835, 217, 218, 220, - 224, 0, 0, 0, 245, 246, 0, 851, 0, 0, - 0, 951, 950, 950, 950, 0, 120, 121, 122, 123, - 118, 0, 0, 126, 324, 0, 0, 0, 247, 0, - 0, 226, 242, 227, 228, 0, 353, 0, 0, 390, - 391, 392, 393, 0, 0, 0, 322, 324, 212, 0, - 278, 279, 284, 285, 303, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 383, 384, 385, 386, - 848, 849, 850, 0, 0, 417, 0, 0, 263, 64, - 939, 422, 480, 443, 459, 480, 435, 442, 487, 466, - 497, 541, 0, 0, 0, 549, 0, 677, 679, 681, - 668, 689, 672, 0, 669, 0, 0, 663, 731, 0, - 0, 572, 0, 823, 866, 735, 736, 0, 0, 0, - 0, 0, 773, 0, 0, 774, 0, 823, 0, 801, - 0, 0, 747, 767, 0, 0, 768, 769, 770, 771, - 772, 526, 529, 531, 607, 0, 0, 0, 0, 629, - 947, 44, 0, 0, 0, 833, 834, 826, 43, 0, - 934, 935, 817, 818, 819, 0, 587, 598, 578, 0, - 831, 909, 0, 0, 901, 0, 0, 652, 917, 0, - 600, 621, 623, 0, 618, 633, 634, 636, 0, 638, - 0, 640, 641, 604, 605, 606, 0, 652, 0, 652, - 67, 652, 69, 0, 646, 76, 77, 0, 0, 83, - 213, 214, 118, 273, 131, 137, 0, 0, 0, 141, - 0, 0, 144, 146, 147, 207, 212, 212, 176, 209, - 210, 211, 177, 178, 179, 0, 195, 0, 0, 0, - 266, 88, 839, 838, 224, 224, 219, 0, 222, 0, - 952, 198, 0, 101, 0, 0, 0, 0, 0, 107, - 0, 328, 611, 0, 339, 340, 0, 323, 387, 0, - 216, 0, 229, 806, 614, 0, 0, 341, 0, 324, - 344, 345, 356, 306, 307, 304, 0, 0, 861, 862, - 0, 865, 93, 376, 378, 377, 381, 0, 0, 374, - 0, 263, 835, 0, 421, 264, 265, 483, 483, 536, - 0, 539, 0, 670, 0, 690, 673, 732, 733, 0, - 807, 831, 46, 0, 197, 197, 786, 197, 201, 789, - 197, 791, 197, 794, 0, 0, 0, 0, 0, 0, - 0, 798, 746, 804, 0, 0, 0, 0, 0, 0, - 0, 0, 208, 871, 868, 45, 821, 0, 653, 591, - 49, 53, 0, 909, 900, 911, 913, 0, 0, 0, - 905, 0, 823, 0, 0, 615, 622, 0, 0, 616, - 0, 617, 637, 639, -2, 823, 652, 60, 61, 0, - 80, 81, 82, 272, 138, 139, 0, 142, 143, 145, - 172, 173, 208, 0, 208, 0, 202, 0, 255, 267, - 0, 836, 837, 0, 0, 221, 223, 0, 941, 103, - 0, 0, 0, 0, 0, 127, 325, 0, 215, 0, - 0, 412, 409, 342, 343, 609, 852, 853, 854, 0, - 864, 96, 0, 0, 0, 0, 418, 419, 420, 65, - 428, 434, 538, 558, 674, 734, 866, 737, 783, 208, - 787, 788, 790, 792, 793, 795, 739, 738, 0, 0, - 0, 0, 0, 831, 0, 802, 0, 0, 0, 0, - 0, 627, 208, 891, 50, 0, 0, 0, 54, 0, - 914, 0, 0, 0, 0, 71, 831, 918, 919, 619, - 0, 624, 831, 59, 140, 212, 196, 212, 0, 0, - 268, 840, 841, 842, 843, 844, 845, 846, 609, 104, - 105, 106, 331, 612, 0, 0, 389, 0, 397, 0, - 0, 0, 0, 863, 375, 0, 94, 95, 0, 0, - 380, 47, 784, 785, 0, 0, 0, 0, 775, 0, - 799, 0, 0, 0, 649, 0, 0, 647, 873, 872, - 885, 898, 822, 820, 0, 912, 0, 904, 907, 903, - 906, 57, 0, 58, 185, 186, 200, 203, 0, 0, - 0, 413, 410, 411, 0, 0, 97, 98, 0, 0, - 0, 740, 742, 741, 743, 0, 0, 0, 745, 763, - 764, 648, 650, 651, 608, 891, 0, 884, 0, -2, - 893, 0, 0, 0, 899, 0, 902, 0, 620, 0, - 0, 0, 855, 610, 0, 0, 0, 382, 744, 0, - 0, 0, 878, 876, 876, 886, 887, 0, 0, 894, - 0, 0, 0, 910, 908, 855, 0, 0, 0, 372, - 857, 99, 100, 317, 318, 319, 93, 776, 0, 779, - 881, 0, 874, 877, 875, 888, 0, 0, 895, 0, - 897, 89, 414, 415, 0, 0, 858, 859, 96, 777, - 870, 0, 879, 880, 889, 890, 896, 251, 0, 379, - 0, 882, 883, 252, 253, 0, 856, 0, 254, 0, - 0, 0, 778, 256, 258, 259, 0, 0, 257, 260, - 261, 262, + 31, 32, 33, 824, 0, 560, 560, 560, 560, 560, + 560, 560, 0, 0, 560, -2, -2, 560, 960, 0, + 560, 0, 0, -2, 493, 494, 0, 496, -2, 0, + 0, 505, 1371, 1371, 555, 0, 0, 0, 0, 0, + 560, 1369, 55, 56, 511, 512, 513, 1, 3, 0, + 564, 832, 0, 0, -2, 562, 0, 0, 943, 943, + 943, 0, 86, 87, 0, 0, 0, -2, 90, -2, + 114, 115, 0, 119, 369, 330, 372, 328, 358, -2, + 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 333, 225, 225, 0, 0, -2, 321, + 321, 321, 0, 0, 0, 355, 945, 275, 225, 225, + 0, 225, 225, 225, 225, 0, 0, 225, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 848, 118, 961, 958, 959, 35, 36, 37, + 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, + 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, + 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, + 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, + 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, + 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, + 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, + 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, + 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, + 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, + 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, + 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, + 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, + 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, + 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, + 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, + 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, + 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, + 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, + 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, + 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, + 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, + 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, + 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, + 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, + 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 0, 937, + 0, 425, 645, 0, 484, 484, 0, 484, 484, 484, + 484, 0, 0, 0, 437, 0, 0, 0, 0, 481, + 0, 0, 456, 458, 0, 481, 0, 468, 484, 1372, + 1372, 1372, 928, 0, 478, 476, 490, 491, 473, 474, + 492, 495, 0, 500, 503, 954, 955, 0, 518, 0, + 1177, 510, 523, 524, 0, 556, 557, 40, 696, 655, + 0, 661, 663, 0, 698, 699, 700, 701, 702, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 728, + 729, 730, 731, 809, 810, 811, 812, 813, 814, 815, + 816, 665, 666, 806, 0, 917, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 797, 0, 766, 766, 766, + 766, 766, 766, 766, 766, 766, 0, 0, 0, 0, + 0, 0, 0, -2, -2, 1371, 0, 533, 0, 0, + 824, 51, 0, 560, 565, 566, 867, 0, 0, 824, + 1370, 0, 0, -2, -2, 576, 582, 583, 584, 585, + 586, 561, 0, 589, 593, 0, 0, 0, 944, 0, + 0, 72, 0, 1334, 921, -2, -2, 0, 0, 956, + 957, 930, -2, 964, 965, 966, 967, 968, 969, 970, + 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, + 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, + 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, + 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, + 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, + 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, + 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, + 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, + 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, + 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, + 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, + 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, + 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, + -2, 0, 0, 128, 129, 0, 38, 251, 0, 124, + 0, 245, 198, 848, 0, 0, 0, 0, 0, 560, + 0, 938, 109, 110, 116, 117, 225, 225, 0, 118, + 118, 337, 338, 339, 0, 0, -2, 249, 0, 322, + 0, 0, 239, 239, 243, 241, 242, 0, 0, 0, + 0, 0, 0, 349, 0, 350, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 409, 0, 226, 0, 367, + 368, 276, 0, 0, 0, 0, 347, 348, 0, 0, + 946, 947, 0, 0, 225, 225, 0, 0, 0, 0, + 225, 225, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 108, 861, + 0, 0, 0, -2, 0, 417, 0, 0, 0, 939, + 939, 424, 0, 426, 427, 0, 0, 428, 0, 481, + 481, 479, 480, 430, 431, 432, 433, 484, 0, 0, + 234, 235, 236, 481, 484, 0, 484, 484, 484, 484, + 481, 481, 481, 484, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1372, 1372, 1372, 487, 484, 465, 466, + 469, 470, 1373, 1374, 975, 471, 472, 929, 501, 504, + 521, 519, 520, 522, 514, 515, 516, 517, 0, 535, + 536, 541, 0, 0, 0, 0, 547, 548, 549, 0, + 0, 552, 553, 554, 0, 0, 0, 0, 0, 659, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 683, + 684, 685, 686, 687, 688, 689, 662, 0, 676, 0, + 0, 0, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 0, 573, 0, 0, 0, 824, 0, 0, 0, + 0, 0, 0, 0, 570, 0, 798, 0, 749, 0, + 750, 758, 0, 751, 759, 752, 760, 753, 754, 761, + 755, 762, 756, 757, 763, 0, 0, 0, 573, 573, + 0, 0, 41, 525, 526, 0, 628, 949, 0, 832, + 0, 575, 870, 0, 0, 833, 825, 826, 829, 832, + 0, 598, 587, 577, 580, 581, 563, 0, 590, 594, + 0, 596, 597, 0, 0, 70, 0, 644, 0, 600, + 602, 603, 604, 626, 0, 0, 0, 0, 66, 68, + 645, 0, 1334, 927, 0, 74, 75, 0, 0, 0, + 213, 932, 933, 934, -2, 232, 0, 136, 205, 149, + 150, 151, 198, 153, 198, 198, 198, 198, 209, 209, + 209, 209, 181, 182, 183, 184, 185, 0, 0, 168, + 198, 198, 198, 198, 188, 189, 190, 191, 192, 193, + 194, 195, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 200, 200, 200, 202, 202, 0, 39, 0, 217, + 0, 829, 0, 861, 941, 951, 0, 0, 0, 941, + 92, 0, 0, 370, 331, 359, 371, 0, 334, 335, + -2, 0, 0, 321, 0, 323, 0, 233, 0, -2, + 0, 243, 0, 239, 243, 240, 243, 231, 244, 351, + 806, 0, 352, 353, 0, 389, 614, 0, 0, 0, + 0, 0, 395, 396, 397, 0, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 360, 361, 362, 363, + 364, 365, 366, 0, 0, 323, 0, 356, 0, 277, + 278, 0, 0, 281, 282, 283, 284, 0, 0, 287, + 288, 289, 290, 291, 315, 316, 317, 292, 293, 294, + 295, 296, 297, 298, 309, 310, 311, 312, 313, 314, + 299, 300, 301, 302, 303, 306, 0, 102, 852, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 939, 0, 0, 0, 0, 646, 962, 963, 485, 486, + 0, 237, 238, 484, 484, 434, 457, 0, 484, 438, + 459, 439, 441, 440, 442, 461, 462, 484, 445, 482, + 483, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 463, 0, 464, 0, 0, 502, 506, 507, 508, + 509, 0, 0, 538, 543, 544, 545, 546, 558, 551, + 697, 656, 657, 658, 660, 677, 0, 679, 681, 667, + 668, 692, 693, 694, 0, 0, 0, 0, 690, 672, + 0, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 717, 781, 782, 783, 0, 715, 716, + 727, 0, 0, 0, 574, 807, 0, -2, 0, 695, + 916, 832, 0, 0, 0, 0, 700, 809, 0, 700, + 809, 0, 0, 0, 571, 572, 804, 801, 0, 0, + 767, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 528, 529, 531, 0, 648, 0, 629, 0, 631, 632, + 0, 950, 534, 867, 52, 42, 0, 868, 0, 0, + 0, 0, 828, 830, 831, 867, 0, 817, 0, 0, + 653, 0, 0, 578, 48, 595, 591, 0, 653, 0, + 0, 643, 0, 0, 0, 0, 0, 0, 633, 0, + 0, 636, 0, 0, 0, 0, 627, 0, 0, 0, + -2, 0, 0, 0, 62, 63, 0, 0, 0, 922, + 73, 0, 0, 78, 79, 923, 924, 925, 926, 0, + 111, -2, 272, 130, 132, 133, 134, 125, 135, 207, + 206, 152, 209, 209, 175, 176, 213, 0, 213, 213, + 213, 0, 0, 169, 170, 171, 172, 163, 0, 164, + 165, 166, 0, 167, 250, 0, 836, 218, 219, 221, + 225, 0, 0, 0, 246, 247, 0, 852, 0, 0, + 0, 952, 951, 951, 951, 0, 120, 121, 122, 123, + 118, 0, 0, 126, 325, 0, 0, 0, 248, 0, + 0, 227, 243, 228, 229, 0, 354, 0, 0, 391, + 392, 393, 394, 0, 0, 0, 323, 325, 213, 0, + 279, 280, 285, 286, 304, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 384, 385, 386, 387, + 849, 850, 851, 0, 0, 418, 0, 0, 264, 64, + 940, 423, 481, 444, 460, 481, 436, 443, 488, 467, + 498, 542, 0, 0, 0, 550, 0, 678, 680, 682, + 669, 690, 673, 0, 670, 0, 0, 664, 732, 0, + 0, 573, 0, 824, 867, 736, 737, 0, 0, 0, + 0, 0, 774, 0, 0, 775, 0, 824, 0, 802, + 0, 0, 748, 768, 0, 0, 769, 770, 771, 772, + 773, 527, 530, 532, 608, 0, 0, 0, 0, 630, + 948, 44, 0, 0, 0, 834, 835, 827, 43, 0, + 935, 936, 818, 819, 820, 0, 588, 599, 579, 0, + 832, 910, 0, 0, 902, 0, 0, 653, 918, 0, + 601, 622, 624, 0, 619, 634, 635, 637, 0, 639, + 0, 641, 642, 605, 606, 607, 0, 653, 0, 653, + 67, 653, 69, 0, 647, 76, 77, 0, 0, 83, + 214, 215, 118, 274, 131, 137, 0, 0, 0, 0, + 142, 0, 0, 145, 147, 148, 208, 213, 213, 177, + 210, 211, 212, 178, 179, 180, 0, 196, 0, 0, + 0, 267, 88, 840, 839, 225, 225, 220, 0, 223, + 0, 953, 199, 0, 101, 0, 0, 0, 0, 0, + 107, 0, 329, 612, 0, 340, 341, 0, 324, 388, + 0, 217, 0, 230, 807, 615, 0, 0, 342, 0, + 325, 345, 346, 357, 307, 308, 305, 0, 0, 862, + 863, 0, 866, 93, 377, 379, 378, 382, 0, 0, + 375, 0, 264, 836, 0, 422, 265, 266, 484, 484, + 537, 0, 540, 0, 671, 0, 691, 674, 733, 734, + 0, 808, 832, 46, 0, 198, 198, 787, 198, 202, + 790, 198, 792, 198, 795, 0, 0, 0, 0, 0, + 0, 0, 799, 747, 805, 0, 0, 0, 0, 0, + 0, 0, 0, 209, 872, 869, 45, 822, 0, 654, + 592, 49, 53, 0, 910, 901, 912, 914, 0, 0, + 0, 906, 0, 824, 0, 0, 616, 623, 0, 0, + 617, 0, 618, 638, 640, -2, 824, 653, 60, 61, + 0, 80, 81, 82, 273, 138, 139, 140, 0, 143, + 144, 146, 173, 174, 209, 0, 209, 0, 203, 0, + 256, 268, 0, 837, 838, 0, 0, 222, 224, 0, + 942, 103, 0, 0, 0, 0, 0, 127, 326, 0, + 216, 0, 0, 413, 410, 343, 344, 610, 853, 854, + 855, 0, 865, 96, 0, 0, 0, 0, 419, 420, + 421, 65, 429, 435, 539, 559, 675, 735, 867, 738, + 784, 209, 788, 789, 791, 793, 794, 796, 740, 739, + 0, 0, 0, 0, 0, 832, 0, 803, 0, 0, + 0, 0, 0, 628, 209, 892, 50, 0, 0, 0, + 54, 0, 915, 0, 0, 0, 0, 71, 832, 919, + 920, 620, 0, 625, 832, 59, 141, 213, 197, 213, + 0, 0, 269, 841, 842, 843, 844, 845, 846, 847, + 610, 104, 105, 106, 332, 613, 0, 0, 390, 0, + 398, 0, 0, 0, 0, 864, 376, 0, 94, 95, + 0, 0, 381, 47, 785, 786, 0, 0, 0, 0, + 776, 0, 800, 0, 0, 0, 650, 0, 0, 648, + 874, 873, 886, 899, 823, 821, 0, 913, 0, 905, + 908, 904, 907, 57, 0, 58, 186, 187, 201, 204, + 0, 0, 0, 414, 411, 412, 0, 0, 97, 98, + 0, 0, 0, 741, 743, 742, 744, 0, 0, 0, + 746, 764, 765, 649, 651, 652, 609, 892, 0, 885, + 0, -2, 894, 0, 0, 0, 900, 0, 903, 0, + 621, 0, 0, 0, 856, 611, 0, 0, 0, 383, + 745, 0, 0, 0, 879, 877, 877, 887, 888, 0, + 0, 895, 0, 0, 0, 911, 909, 856, 0, 0, + 0, 373, 858, 99, 100, 318, 319, 320, 93, 777, + 0, 780, 882, 0, 875, 878, 876, 889, 0, 0, + 896, 0, 898, 89, 415, 416, 0, 0, 859, 860, + 96, 778, 871, 0, 880, 881, 890, 891, 897, 252, + 0, 380, 0, 883, 884, 253, 254, 0, 857, 0, + 255, 0, 0, 0, 779, 257, 259, 260, 0, 0, + 258, 261, 262, 263, } var yyTok1 = [...]int{ @@ -6613,7 +6628,7 @@ yydefault: var yyLOCAL *ColumnTypeOptions //line sql.y:1029 { - yyLOCAL = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil} + yyLOCAL = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil, As: nil} } yyVAL.union = yyLOCAL case 137: @@ -6646,29 +6661,29 @@ yydefault: } yyVAL.union = yyLOCAL case 140: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions //line sql.y:1050 { - yyDollar[1].columnTypeOptionsUnion().OnUpdate = yyDollar[4].exprUnion() + yyDollar[1].columnTypeOptionsUnion().As = yyDollar[3].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL case 141: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *ColumnTypeOptions //line sql.y:1055 { - yyDollar[1].columnTypeOptionsUnion().Autoincrement = true + yyDollar[1].columnTypeOptionsUnion().OnUpdate = yyDollar[4].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL case 142: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions //line sql.y:1060 { - yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) + yyDollar[1].columnTypeOptionsUnion().Autoincrement = true yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL @@ -6677,123 +6692,124 @@ yydefault: var yyLOCAL *ColumnTypeOptions //line sql.y:1065 { - yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKeyPrimary + yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL case 144: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions //line sql.y:1070 { - yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKey + yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKeyPrimary yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL case 145: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions //line sql.y:1075 { - yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKeyUniqueKey + yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKey yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL case 146: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions //line sql.y:1080 { - yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKeyUnique + yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKeyUniqueKey yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL case 147: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1085 + { + yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKeyUnique + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + } + yyVAL.union = yyLOCAL + case 148: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1087 +//line sql.y:1092 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].booleanUnion() yyVAL.columnType.Zerofill = yyDollar[3].booleanUnion() } - case 151: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1098 - { - yyVAL.columnType = yyDollar[1].columnType - yyVAL.columnType.Length = yyDollar[2].literalUnion() - } case 152: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1103 { yyVAL.columnType = yyDollar[1].columnType + yyVAL.columnType.Length = yyDollar[2].literalUnion() } case 153: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1109 +//line sql.y:1108 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + yyVAL.columnType = yyDollar[1].columnType } case 154: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1113 +//line sql.y:1114 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 155: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1117 +//line sql.y:1118 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 156: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1121 +//line sql.y:1122 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 157: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1125 +//line sql.y:1126 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 158: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1129 +//line sql.y:1130 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 159: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1133 +//line sql.y:1134 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 160: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1137 +//line sql.y:1138 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 161: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1141 +//line sql.y:1142 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 162: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1147 + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1146 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length - yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } case 163: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1153 +//line sql.y:1152 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6801,7 +6817,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1159 +//line sql.y:1158 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6809,7 +6825,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1165 +//line sql.y:1164 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6817,125 +6833,127 @@ yydefault: } case 166: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1171 +//line sql.y:1170 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } case 167: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1179 + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1176 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length + yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } case 168: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1183 + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1184 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 169: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1187 +//line sql.y:1188 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 170: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1191 +//line sql.y:1192 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 171: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1195 +//line sql.y:1196 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 172: - yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1201 + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1200 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 173: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1205 +//line sql.y:1206 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 174: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1209 + yyDollar = yyS[yypt-4 : yypt+1] +//line sql.y:1210 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 175: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1213 +//line sql.y:1214 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 176: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1217 + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1218 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 177: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1221 +//line sql.y:1222 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 178: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1225 +//line sql.y:1226 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 179: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1229 +//line sql.y:1230 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 180: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1233 + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1234 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 181: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1237 +//line sql.y:1238 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 182: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1241 +//line sql.y:1242 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 183: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1245 +//line sql.y:1246 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 184: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1249 +//line sql.y:1250 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 185: - yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1253 + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1254 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 186: yyDollar = yyS[yypt-6 : yypt+1] @@ -6944,1293 +6962,1299 @@ yydefault: yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 187: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1264 + yyDollar = yyS[yypt-6 : yypt+1] +//line sql.y:1263 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 188: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1268 +//line sql.y:1269 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 189: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1272 +//line sql.y:1273 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 190: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1276 +//line sql.y:1277 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 191: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1280 +//line sql.y:1281 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 192: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1284 +//line sql.y:1285 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 193: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1288 +//line sql.y:1289 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 194: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1292 +//line sql.y:1293 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 195: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1298 +//line sql.y:1297 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 196: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1303 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, encodeSQLString(yyDollar[1].str)) } - case 196: + case 197: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1303 +//line sql.y:1308 { yyVAL.strs = append(yyDollar[1].strs, encodeSQLString(yyDollar[3].str)) } - case 197: + case 198: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Literal -//line sql.y:1308 +//line sql.y:1313 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 198: + case 199: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Literal -//line sql.y:1312 +//line sql.y:1317 { yyLOCAL = NewIntLiteral(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 199: + case 200: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1317 +//line sql.y:1322 { yyVAL.LengthScaleOption = LengthScaleOption{} } - case 200: + case 201: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1321 +//line sql.y:1326 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), Scale: NewIntLiteral(yyDollar[4].str), } } - case 201: + case 202: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1329 +//line sql.y:1334 { yyVAL.LengthScaleOption = LengthScaleOption{} } - case 202: + case 203: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1333 +//line sql.y:1338 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), } } - case 203: + case 204: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1339 +//line sql.y:1344 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), Scale: NewIntLiteral(yyDollar[4].str), } } - case 204: + case 205: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1347 +//line sql.y:1352 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 205: + case 206: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1351 +//line sql.y:1356 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 206: + case 207: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1356 +//line sql.y:1361 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 207: + case 208: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1360 +//line sql.y:1365 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 208: + case 209: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1365 +//line sql.y:1370 { yyVAL.str = "" } - case 209: + case 210: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1369 +//line sql.y:1374 { yyVAL.str = string(yyDollar[2].colIdent.String()) } - case 210: + case 211: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1373 +//line sql.y:1378 { yyVAL.str = encodeSQLString(yyDollar[2].str) } - case 211: + case 212: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1377 +//line sql.y:1382 { yyVAL.str = string(yyDollar[2].str) } - case 212: + case 213: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1382 +//line sql.y:1387 { yyVAL.str = "" } - case 213: + case 214: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1386 +//line sql.y:1391 { yyVAL.str = string(yyDollar[2].colIdent.String()) } - case 214: + case 215: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1390 +//line sql.y:1395 { yyVAL.str = encodeSQLString(yyDollar[2].str) } - case 215: + case 216: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexDefinition -//line sql.y:1397 +//line sql.y:1402 { yyLOCAL = &IndexDefinition{Info: yyDollar[1].indexInfoUnion(), Columns: yyDollar[3].indexColumnsUnion(), Options: yyDollar[5].indexOptionsUnion()} } yyVAL.union = yyLOCAL - case 216: + case 217: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1402 +//line sql.y:1407 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 217: + case 218: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1406 +//line sql.y:1411 { yyLOCAL = yyDollar[1].indexOptionsUnion() } yyVAL.union = yyLOCAL - case 218: + case 219: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1412 +//line sql.y:1417 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL - case 219: + case 220: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1416 +//line sql.y:1421 { yySLICE := (*[]*IndexOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].indexOptionUnion()) } - case 220: + case 221: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1422 +//line sql.y:1427 { yyLOCAL = yyDollar[1].indexOptionUnion() } yyVAL.union = yyLOCAL - case 221: + case 222: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1426 +//line sql.y:1431 { // should not be string yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 222: + case 223: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1431 +//line sql.y:1436 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 223: + case 224: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1435 +//line sql.y:1440 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str) + " " + string(yyDollar[2].str), String: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 224: + case 225: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1441 +//line sql.y:1446 { yyVAL.str = "" } - case 225: + case 226: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1445 +//line sql.y:1450 { yyVAL.str = string(yyDollar[1].str) } - case 226: + case 227: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1451 +//line sql.y:1456 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} } yyVAL.union = yyLOCAL - case 227: + case 228: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1455 +//line sql.y:1460 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Spatial: true, Unique: false} } yyVAL.union = yyLOCAL - case 228: + case 229: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1459 +//line sql.y:1464 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Fulltext: true, Unique: false} } yyVAL.union = yyLOCAL - case 229: + case 230: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1463 +//line sql.y:1468 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent(yyDollar[4].str), Unique: true} } yyVAL.union = yyLOCAL - case 230: + case 231: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1467 +//line sql.y:1472 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(yyDollar[2].str), Unique: false} } yyVAL.union = yyLOCAL - case 231: + case 232: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1472 +//line sql.y:1477 { yyVAL.str = "" } - case 232: + case 233: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1476 +//line sql.y:1481 { yyVAL.str = yyDollar[2].str } - case 233: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1482 - { - yyVAL.str = string(yyDollar[1].str) - } case 234: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1486 +//line sql.y:1487 { yyVAL.str = string(yyDollar[1].str) } case 235: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1490 +//line sql.y:1491 { yyVAL.str = string(yyDollar[1].str) } case 236: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1497 +//line sql.y:1495 { yyVAL.str = string(yyDollar[1].str) } case 237: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1501 +//line sql.y:1502 { yyVAL.str = string(yyDollar[1].str) } case 238: - yyDollar = yyS[yypt-0 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1506 { - yyVAL.str = "key" + yyVAL.str = string(yyDollar[1].str) } case 239: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1510 + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:1511 { - yyVAL.str = yyDollar[1].str + yyVAL.str = "key" } case 240: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1516 +//line sql.y:1515 { - yyVAL.str = string(yyDollar[1].str) + yyVAL.str = yyDollar[1].str } case 241: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1520 +//line sql.y:1521 { yyVAL.str = string(yyDollar[1].str) } case 242: - yyDollar = yyS[yypt-0 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1525 { - yyVAL.str = "" + yyVAL.str = string(yyDollar[1].str) } case 243: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:1530 + { + yyVAL.str = "" + } + case 244: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1529 +//line sql.y:1534 { yyVAL.str = string(yyDollar[1].colIdent.String()) } - case 244: + case 245: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexColumn -//line sql.y:1535 +//line sql.y:1540 { yyLOCAL = []*IndexColumn{yyDollar[1].indexColumnUnion()} } yyVAL.union = yyLOCAL - case 245: + case 246: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1539 +//line sql.y:1544 { yySLICE := (*[]*IndexColumn)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].indexColumnUnion()) } - case 246: + case 247: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexColumn -//line sql.y:1545 +//line sql.y:1550 { yyLOCAL = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].literalUnion(), Direction: yyDollar[3].orderDirectionUnion()} } yyVAL.union = yyLOCAL - case 247: + case 248: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1551 +//line sql.y:1556 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 248: + case 249: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1555 +//line sql.y:1560 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 249: + case 250: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1561 +//line sql.y:1566 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 250: + case 251: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1565 +//line sql.y:1570 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 251: + case 252: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1571 +//line sql.y:1576 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion()} } yyVAL.union = yyLOCAL - case 252: + case 253: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1575 +//line sql.y:1580 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnDelete: yyDollar[12].ReferenceActionUnion()} } yyVAL.union = yyLOCAL - case 253: + case 254: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1579 +//line sql.y:1584 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnUpdate: yyDollar[12].ReferenceActionUnion()} } yyVAL.union = yyLOCAL - case 254: + case 255: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1583 +//line sql.y:1588 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnDelete: yyDollar[12].ReferenceActionUnion(), OnUpdate: yyDollar[13].ReferenceActionUnion()} } yyVAL.union = yyLOCAL - case 255: + case 256: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1589 +//line sql.y:1594 { yyLOCAL = &CheckConstraintDefinition{Expr: yyDollar[3].exprUnion(), Enforced: yyDollar[5].booleanUnion()} } yyVAL.union = yyLOCAL - case 256: + case 257: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1595 +//line sql.y:1600 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } yyVAL.union = yyLOCAL - case 257: + case 258: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1601 +//line sql.y:1606 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } yyVAL.union = yyLOCAL - case 258: + case 259: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1607 +//line sql.y:1612 { yyLOCAL = Restrict } yyVAL.union = yyLOCAL - case 259: + case 260: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1611 +//line sql.y:1616 { yyLOCAL = Cascade } yyVAL.union = yyLOCAL - case 260: + case 261: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1615 +//line sql.y:1620 { yyLOCAL = NoAction } yyVAL.union = yyLOCAL - case 261: + case 262: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1619 +//line sql.y:1624 { yyLOCAL = SetDefault } yyVAL.union = yyLOCAL - case 262: + case 263: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1623 +//line sql.y:1628 { yyLOCAL = SetNull } yyVAL.union = yyLOCAL - case 263: + case 264: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1628 +//line sql.y:1633 { yyVAL.str = "" } - case 264: + case 265: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1632 +//line sql.y:1637 { yyVAL.str = string(yyDollar[1].str) } - case 265: + case 266: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1636 +//line sql.y:1641 { yyVAL.str = string(yyDollar[1].str) } - case 266: + case 267: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1641 +//line sql.y:1646 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 267: + case 268: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1645 +//line sql.y:1650 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 268: + case 269: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:1649 +//line sql.y:1654 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 269: + case 270: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1654 +//line sql.y:1659 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 270: + case 271: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1658 +//line sql.y:1663 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 271: + case 272: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1664 +//line sql.y:1669 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 272: + case 273: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1668 +//line sql.y:1673 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableOptionUnion()) } - case 273: + case 274: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1672 +//line sql.y:1677 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) } - case 274: + case 275: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1678 +//line sql.y:1683 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 275: + case 276: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1682 +//line sql.y:1687 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) } - case 276: + case 277: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1688 +//line sql.y:1693 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 277: + case 278: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1692 +//line sql.y:1697 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 278: + case 279: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1696 +//line sql.y:1701 { yyLOCAL = &TableOption{Name: (string(yyDollar[2].str)), String: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 279: + case 280: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1700 +//line sql.y:1705 { yyLOCAL = &TableOption{Name: string(yyDollar[2].str), String: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 280: + case 281: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1704 +//line sql.y:1709 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 281: + case 282: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1708 +//line sql.y:1713 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 282: + case 283: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1712 +//line sql.y:1717 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 283: + case 284: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1716 +//line sql.y:1721 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 284: + case 285: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1720 +//line sql.y:1725 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 285: + case 286: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1724 +//line sql.y:1729 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 286: + case 287: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1728 +//line sql.y:1733 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 287: + case 288: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1732 +//line sql.y:1737 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 288: + case 289: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1736 +//line sql.y:1741 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 289: + case 290: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1740 +//line sql.y:1745 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 290: + case 291: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1744 +//line sql.y:1749 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 291: + case 292: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1748 +//line sql.y:1753 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 292: + case 293: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1752 +//line sql.y:1757 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 293: + case 294: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1756 +//line sql.y:1761 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 294: + case 295: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1760 +//line sql.y:1765 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 295: + case 296: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1764 +//line sql.y:1769 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 296: + case 297: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1768 +//line sql.y:1773 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 297: + case 298: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1772 +//line sql.y:1777 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 298: + case 299: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1776 +//line sql.y:1781 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 299: + case 300: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1780 +//line sql.y:1785 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 300: + case 301: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1784 +//line sql.y:1789 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 301: + case 302: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1788 +//line sql.y:1793 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 302: + case 303: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1792 +//line sql.y:1797 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 303: + case 304: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1796 +//line sql.y:1801 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: (yyDollar[3].colIdent.String() + yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 304: + case 305: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1800 +//line sql.y:1805 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Tables: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 305: + case 306: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1805 +//line sql.y:1810 { yyVAL.str = "" } - case 306: + case 307: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1809 +//line sql.y:1814 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 307: + case 308: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1813 +//line sql.y:1818 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 317: + case 318: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1832 +//line sql.y:1837 { yyVAL.str = yyDollar[1].colIdent.String() } - case 318: + case 319: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1836 +//line sql.y:1841 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 319: + case 320: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1840 +//line sql.y:1845 { yyVAL.str = string(yyDollar[1].str) } - case 320: + case 321: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1845 +//line sql.y:1850 { yyVAL.str = "" } - case 322: + case 323: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:1851 +//line sql.y:1856 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 323: + case 324: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:1855 +//line sql.y:1860 { yyLOCAL = yyDollar[2].colNameUnion() } yyVAL.union = yyLOCAL - case 324: + case 325: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:1860 +//line sql.y:1865 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 325: + case 326: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:1864 +//line sql.y:1869 { yyLOCAL = yyDollar[2].colNameUnion() } yyVAL.union = yyLOCAL - case 326: + case 327: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1869 +//line sql.y:1874 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 327: + case 328: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1873 +//line sql.y:1878 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL - case 328: + case 329: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1877 +//line sql.y:1882 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &OrderByOption{Cols: yyDollar[5].columnsUnion()}) } - case 329: + case 330: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1881 +//line sql.y:1886 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL - case 330: + case 331: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1885 +//line sql.y:1890 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionsUnion()...) } - case 331: + case 332: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1889 +//line sql.y:1894 { yyLOCAL = append(append(yyDollar[1].alterOptionsUnion(), yyDollar[3].alterOptionsUnion()...), &OrderByOption{Cols: yyDollar[7].columnsUnion()}) } yyVAL.union = yyLOCAL - case 332: + case 333: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1895 +//line sql.y:1900 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 333: + case 334: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1899 +//line sql.y:1904 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 334: + case 335: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1903 +//line sql.y:1908 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 335: + case 336: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1909 +//line sql.y:1914 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 336: + case 337: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1913 +//line sql.y:1918 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } yyVAL.union = yyLOCAL - case 337: + case 338: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1917 +//line sql.y:1922 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } yyVAL.union = yyLOCAL - case 338: + case 339: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1921 +//line sql.y:1926 { yyLOCAL = &AddIndexDefinition{IndexDefinition: yyDollar[2].indexDefinitionUnion()} } yyVAL.union = yyLOCAL - case 339: + case 340: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1925 +//line sql.y:1930 { yyLOCAL = &AddColumns{Columns: yyDollar[4].columnDefinitionsUnion()} } yyVAL.union = yyLOCAL - case 340: + case 341: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1929 +//line sql.y:1934 { yyLOCAL = &AddColumns{Columns: []*ColumnDefinition{yyDollar[3].columnDefinitionUnion()}, First: yyDollar[4].colNameUnion(), After: yyDollar[5].colNameUnion()} } yyVAL.union = yyLOCAL - case 341: + case 342: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1933 +//line sql.y:1938 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: true} } yyVAL.union = yyLOCAL - case 342: + case 343: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1937 +//line sql.y:1942 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 343: + case 344: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1941 +//line sql.y:1946 { yyLOCAL = &ChangeColumn{OldColumn: yyDollar[3].colNameUnion(), NewColDefinition: yyDollar[4].columnDefinitionUnion(), First: yyDollar[5].colNameUnion(), After: yyDollar[6].colNameUnion()} } yyVAL.union = yyLOCAL - case 344: + case 345: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1945 +//line sql.y:1950 { yyLOCAL = &ModifyColumn{NewColDefinition: yyDollar[3].columnDefinitionUnion(), First: yyDollar[4].colNameUnion(), After: yyDollar[5].colNameUnion()} } yyVAL.union = yyLOCAL - case 345: + case 346: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1949 +//line sql.y:1954 { yyLOCAL = &AlterCharset{CharacterSet: yyDollar[4].str, Collate: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 346: + case 347: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1953 +//line sql.y:1958 { yyLOCAL = &KeyState{Enable: false} } yyVAL.union = yyLOCAL - case 347: + case 348: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1957 +//line sql.y:1962 { yyLOCAL = &KeyState{Enable: true} } yyVAL.union = yyLOCAL - case 348: + case 349: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1961 +//line sql.y:1966 { yyLOCAL = &TablespaceOperation{Import: false} } yyVAL.union = yyLOCAL - case 349: + case 350: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1965 +//line sql.y:1970 { yyLOCAL = &TablespaceOperation{Import: true} } yyVAL.union = yyLOCAL - case 350: + case 351: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1969 +//line sql.y:1974 { yyLOCAL = &DropColumn{Name: yyDollar[3].colNameUnion()} } yyVAL.union = yyLOCAL - case 351: + case 352: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1973 +//line sql.y:1978 { yyLOCAL = &DropKey{Type: NormalKeyType, Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 352: + case 353: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1977 +//line sql.y:1982 { yyLOCAL = &DropKey{Type: PrimaryKeyType} } yyVAL.union = yyLOCAL - case 353: + case 354: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1981 +//line sql.y:1986 { yyLOCAL = &DropKey{Type: ForeignKeyType, Name: yyDollar[4].colIdent} } yyVAL.union = yyLOCAL - case 354: + case 355: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1985 +//line sql.y:1990 { yyLOCAL = &Force{} } yyVAL.union = yyLOCAL - case 355: + case 356: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1989 +//line sql.y:1994 { yyLOCAL = &RenameTableName{Table: yyDollar[3].tableName} } yyVAL.union = yyLOCAL - case 356: + case 357: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1993 +//line sql.y:1998 { yyLOCAL = &RenameIndex{OldName: yyDollar[3].colIdent, NewName: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 357: + case 358: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1999 +//line sql.y:2004 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 358: + case 359: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2003 +//line sql.y:2008 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 359: + case 360: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2009 +//line sql.y:2014 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 360: + case 361: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2013 +//line sql.y:2018 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 361: + case 362: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2017 +//line sql.y:2022 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 362: + case 363: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2021 +//line sql.y:2026 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.union = yyLOCAL - case 363: + case 364: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2025 +//line sql.y:2030 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.union = yyLOCAL - case 364: + case 365: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2029 +//line sql.y:2034 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.union = yyLOCAL - case 365: + case 366: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2033 +//line sql.y:2038 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.union = yyLOCAL - case 366: + case 367: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2037 +//line sql.y:2042 { yyLOCAL = &Validation{With: true} } yyVAL.union = yyLOCAL - case 367: + case 368: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2041 +//line sql.y:2046 { yyLOCAL = &Validation{With: false} } yyVAL.union = yyLOCAL - case 368: + case 369: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2047 +//line sql.y:2052 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 369: + case 370: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2053 +//line sql.y:2058 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8238,10 +8262,10 @@ yydefault: yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 370: + case 371: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2060 +//line sql.y:2065 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8249,28 +8273,28 @@ yydefault: yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 371: + case 372: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2067 +//line sql.y:2072 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[2].partSpecUnion() yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 372: + case 373: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL Statement -//line sql.y:2073 +//line sql.y:2078 { yyLOCAL = &AlterView{ViewName: yyDollar[7].tableName.ToViewName(), Algorithm: yyDollar[3].str, Definer: yyDollar[4].str, Security: yyDollar[5].str, Columns: yyDollar[8].columnsUnion(), Select: yyDollar[10].selStmtUnion(), CheckOption: yyDollar[11].str} } yyVAL.union = yyLOCAL - case 373: + case 374: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2077 +//line sql.y:2082 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8278,10 +8302,10 @@ yydefault: yyLOCAL = yyDollar[1].alterDatabaseUnion() } yyVAL.union = yyLOCAL - case 374: + case 375: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2084 +//line sql.y:2089 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8289,10 +8313,10 @@ yydefault: yyLOCAL = yyDollar[1].alterDatabaseUnion() } yyVAL.union = yyLOCAL - case 375: + case 376: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2091 +//line sql.y:2096 { yyLOCAL = &AlterVschema{ Action: CreateVindexDDLAction, @@ -8305,10 +8329,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 376: + case 377: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2103 +//line sql.y:2108 { yyLOCAL = &AlterVschema{ Action: DropVindexDDLAction, @@ -8319,26 +8343,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 377: + case 378: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2113 +//line sql.y:2118 { yyLOCAL = &AlterVschema{Action: AddVschemaTableDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 378: + case 379: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2117 +//line sql.y:2122 { yyLOCAL = &AlterVschema{Action: DropVschemaTableDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 379: + case 380: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL Statement -//line sql.y:2121 +//line sql.y:2126 { yyLOCAL = &AlterVschema{ Action: AddColVindexDDLAction, @@ -8352,10 +8376,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 380: + case 381: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2134 +//line sql.y:2139 { yyLOCAL = &AlterVschema{ Action: DropColVindexDDLAction, @@ -8366,18 +8390,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 381: + case 382: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2144 +//line sql.y:2149 { yyLOCAL = &AlterVschema{Action: AddSequenceDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 382: + case 383: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Statement -//line sql.y:2148 +//line sql.y:2153 { yyLOCAL = &AlterVschema{ Action: AddAutoIncDDLAction, @@ -8389,10 +8413,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 383: + case 384: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2159 +//line sql.y:2164 { yyLOCAL = &AlterMigration{ Type: RetryMigrationType, @@ -8400,10 +8424,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 384: + case 385: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2166 +//line sql.y:2171 { yyLOCAL = &AlterMigration{ Type: CompleteMigrationType, @@ -8411,10 +8435,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 385: + case 386: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2173 +//line sql.y:2178 { yyLOCAL = &AlterMigration{ Type: CancelMigrationType, @@ -8422,282 +8446,282 @@ yydefault: } } yyVAL.union = yyLOCAL - case 386: + case 387: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2180 +//line sql.y:2185 { yyLOCAL = &AlterMigration{ Type: CancelAllMigrationType, } } yyVAL.union = yyLOCAL - case 387: + case 388: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2188 +//line sql.y:2193 { yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}} } yyVAL.union = yyLOCAL - case 388: + case 389: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2192 +//line sql.y:2197 { yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 389: + case 390: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2196 +//line sql.y:2201 { yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()} } yyVAL.union = yyLOCAL - case 390: + case 391: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2200 +//line sql.y:2205 { yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 391: + case 392: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2204 +//line sql.y:2209 { yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true} } yyVAL.union = yyLOCAL - case 392: + case 393: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2208 +//line sql.y:2213 { yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 393: + case 394: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2212 +//line sql.y:2217 { yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true} } yyVAL.union = yyLOCAL - case 394: + case 395: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2216 +//line sql.y:2221 { yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 395: + case 396: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2220 +//line sql.y:2225 { yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true} } yyVAL.union = yyLOCAL - case 396: + case 397: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2224 +//line sql.y:2229 { yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 397: + case 398: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2228 +//line sql.y:2233 { yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].colIdent}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()} } yyVAL.union = yyLOCAL - case 398: + case 399: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2232 +//line sql.y:2237 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 399: + case 400: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2236 +//line sql.y:2241 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true} } yyVAL.union = yyLOCAL - case 400: + case 401: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2240 +//line sql.y:2245 { yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 401: + case 402: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2244 +//line sql.y:2249 { yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true} } yyVAL.union = yyLOCAL - case 402: + case 403: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2248 +//line sql.y:2253 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 403: + case 404: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2252 +//line sql.y:2257 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true} } yyVAL.union = yyLOCAL - case 404: + case 405: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2256 +//line sql.y:2261 { yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 405: + case 406: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2260 +//line sql.y:2265 { yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true} } yyVAL.union = yyLOCAL - case 406: + case 407: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2264 +//line sql.y:2269 { yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 407: + case 408: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2268 +//line sql.y:2273 { yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true} } yyVAL.union = yyLOCAL - case 408: + case 409: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2272 +//line sql.y:2277 { yyLOCAL = &PartitionSpec{Action: UpgradeAction} } yyVAL.union = yyLOCAL - case 409: + case 410: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2277 +//line sql.y:2282 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 410: + case 411: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2281 +//line sql.y:2286 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 411: + case 412: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2285 +//line sql.y:2290 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 412: + case 413: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:2292 +//line sql.y:2297 { yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()} } yyVAL.union = yyLOCAL - case 413: + case 414: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2296 +//line sql.y:2301 { yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].partDefUnion()) } - case 414: + case 415: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2302 +//line sql.y:2307 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 415: + case 416: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2306 +//line sql.y:2311 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} } yyVAL.union = yyLOCAL - case 416: + case 417: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2312 +//line sql.y:2317 { yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()} } yyVAL.union = yyLOCAL - case 417: + case 418: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*RenameTablePair -//line sql.y:2318 +//line sql.y:2323 { yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}} } yyVAL.union = yyLOCAL - case 418: + case 419: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2322 +//line sql.y:2327 { yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName}) } - case 419: + case 420: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2328 +//line sql.y:2333 { yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs), Temp: yyDollar[3].booleanUnion()} } yyVAL.union = yyLOCAL - case 420: + case 421: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2332 +//line sql.y:2337 { // Change this to an alter statement if yyDollar[4].colIdent.Lowered() == "primary" { @@ -8707,387 +8731,387 @@ yydefault: } } yyVAL.union = yyLOCAL - case 421: + case 422: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2341 +//line sql.y:2346 { yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), IfExists: yyDollar[4].booleanUnion()} } yyVAL.union = yyLOCAL - case 422: + case 423: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2345 +//line sql.y:2350 { yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs), DBName: yyDollar[5].tableIdent, IfExists: yyDollar[4].booleanUnion()} } yyVAL.union = yyLOCAL - case 423: + case 424: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2351 +//line sql.y:2356 { yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName} } yyVAL.union = yyLOCAL - case 424: + case 425: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2355 +//line sql.y:2360 { yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName} } yyVAL.union = yyLOCAL - case 425: + case 426: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2360 +//line sql.y:2365 { yyLOCAL = &OtherRead{} } yyVAL.union = yyLOCAL - case 426: + case 427: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2366 +//line sql.y:2371 { yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 427: + case 428: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2370 +//line sql.y:2375 { yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 428: + case 429: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2374 +//line sql.y:2379 { yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 429: + case 430: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2378 +//line sql.y:2383 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 430: + case 431: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2382 +//line sql.y:2387 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 431: + case 432: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2386 +//line sql.y:2391 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 432: + case 433: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2390 +//line sql.y:2395 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 433: + case 434: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2394 +//line sql.y:2399 { yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 434: + case 435: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2398 +//line sql.y:2403 { yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 435: + case 436: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2402 +//line sql.y:2407 { yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 436: + case 437: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2406 +//line sql.y:2411 { yyLOCAL = &Show{&ShowBasic{Command: Privilege}} } yyVAL.union = yyLOCAL - case 437: + case 438: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2410 +//line sql.y:2415 { yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 438: + case 439: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2414 +//line sql.y:2419 { yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 439: + case 440: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2418 +//line sql.y:2423 { yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 440: + case 441: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2422 +//line sql.y:2427 { yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 441: + case 442: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2426 +//line sql.y:2431 { yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 442: + case 443: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2430 +//line sql.y:2435 { yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 443: + case 444: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2434 +//line sql.y:2439 { yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 444: + case 445: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2438 +//line sql.y:2443 { yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].tableIdent, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 445: + case 446: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2442 +//line sql.y:2447 { yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 446: + case 447: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2446 +//line sql.y:2451 { yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 447: + case 448: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2450 +//line sql.y:2455 { yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 448: + case 449: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2454 +//line sql.y:2459 { yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 449: + case 450: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2458 +//line sql.y:2463 { yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 450: + case 451: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2462 +//line sql.y:2467 { yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 451: + case 452: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2466 +//line sql.y:2471 { yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 452: + case 453: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2470 +//line sql.y:2475 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 453: + case 454: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2474 +//line sql.y:2479 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].colIdent.String()), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 454: + case 455: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2478 +//line sql.y:2483 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 455: + case 456: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2482 +//line sql.y:2487 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 456: + case 457: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2486 +//line sql.y:2491 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 457: + case 458: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2490 +//line sql.y:2495 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 458: + case 459: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2494 +//line sql.y:2499 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 459: + case 460: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2498 +//line sql.y:2503 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 460: + case 461: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2502 +//line sql.y:2507 { yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].tableIdent}} } yyVAL.union = yyLOCAL - case 461: + case 462: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2506 +//line sql.y:2511 { yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].tableIdent}} } yyVAL.union = yyLOCAL - case 462: + case 463: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2510 +//line sql.y:2515 { showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilterUnion()} yyLOCAL = &Show{&ShowLegacy{Scope: VitessMetadataScope, Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt}} } yyVAL.union = yyLOCAL - case 463: + case 464: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2515 +//line sql.y:2520 { yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL - case 464: + case 465: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2519 +//line sql.y:2524 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 465: + case 466: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2523 +//line sql.y:2528 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 466: + case 467: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2527 +//line sql.y:2532 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), OnTable: yyDollar[5].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 467: + case 468: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2531 +//line sql.y:2536 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 468: + case 469: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2536 +//line sql.y:2541 { // This should probably be a different type (ShowVitessTopoOpt), but // just getting the thing working for now @@ -9095,1204 +9119,1204 @@ yydefault: yyLOCAL = &Show{&ShowLegacy{Type: yyDollar[2].str, ShowTablesOpt: showTablesOpt}} } yyVAL.union = yyLOCAL - case 469: + case 470: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2550 +//line sql.y:2555 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].colIdent.String()), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 470: + case 471: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2554 +//line sql.y:2559 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 471: + case 472: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2558 +//line sql.y:2563 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 472: + case 473: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2564 +//line sql.y:2569 { yyVAL.str = string(yyDollar[1].str) } - case 473: + case 474: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2568 +//line sql.y:2573 { yyVAL.str = string(yyDollar[1].str) } - case 474: + case 475: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2574 +//line sql.y:2579 { yyVAL.str = "" } - case 475: + case 476: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2578 +//line sql.y:2583 { yyVAL.str = "extended " } - case 476: + case 477: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2584 +//line sql.y:2589 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 477: + case 478: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2588 +//line sql.y:2593 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 478: + case 479: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2594 +//line sql.y:2599 { yyVAL.str = string(yyDollar[1].str) } - case 479: + case 480: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2598 +//line sql.y:2603 { yyVAL.str = string(yyDollar[1].str) } - case 480: + case 481: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2604 +//line sql.y:2609 { yyVAL.tableIdent = NewTableIdent("") } - case 481: + case 482: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2608 +//line sql.y:2613 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 482: + case 483: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2612 +//line sql.y:2617 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 483: + case 484: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2618 +//line sql.y:2623 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 484: + case 485: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2622 +//line sql.y:2627 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 485: + case 486: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2626 +//line sql.y:2631 { yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 486: + case 487: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2632 +//line sql.y:2637 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 487: + case 488: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2636 +//line sql.y:2641 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 488: + case 489: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2642 +//line sql.y:2647 { yyVAL.empty = struct{}{} } - case 489: + case 490: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2646 +//line sql.y:2651 { yyVAL.empty = struct{}{} } - case 490: + case 491: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2650 +//line sql.y:2655 { yyVAL.empty = struct{}{} } - case 491: + case 492: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2656 +//line sql.y:2661 { yyLOCAL = &Use{DBName: yyDollar[2].tableIdent} } yyVAL.union = yyLOCAL - case 492: + case 493: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2660 +//line sql.y:2665 { yyLOCAL = &Use{DBName: TableIdent{v: ""}} } yyVAL.union = yyLOCAL - case 493: + case 494: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2666 +//line sql.y:2671 { yyLOCAL = &Begin{} } yyVAL.union = yyLOCAL - case 494: + case 495: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2670 +//line sql.y:2675 { yyLOCAL = &Begin{} } yyVAL.union = yyLOCAL - case 495: + case 496: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2676 +//line sql.y:2681 { yyLOCAL = &Commit{} } yyVAL.union = yyLOCAL - case 496: + case 497: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2682 +//line sql.y:2687 { yyLOCAL = &Rollback{} } yyVAL.union = yyLOCAL - case 497: + case 498: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2686 +//line sql.y:2691 { yyLOCAL = &SRollback{Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 498: + case 499: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2691 +//line sql.y:2696 { yyVAL.empty = struct{}{} } - case 499: + case 500: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2693 +//line sql.y:2698 { yyVAL.empty = struct{}{} } - case 500: + case 501: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2696 +//line sql.y:2701 { yyVAL.empty = struct{}{} } - case 501: + case 502: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2698 +//line sql.y:2703 { yyVAL.empty = struct{}{} } - case 502: + case 503: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2703 +//line sql.y:2708 { yyLOCAL = &Savepoint{Name: yyDollar[2].colIdent} } yyVAL.union = yyLOCAL - case 503: + case 504: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2709 +//line sql.y:2714 { yyLOCAL = &Release{Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 504: + case 505: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2714 +//line sql.y:2719 { yyLOCAL = EmptyType } yyVAL.union = yyLOCAL - case 505: + case 506: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2718 +//line sql.y:2723 { yyLOCAL = JSONType } yyVAL.union = yyLOCAL - case 506: + case 507: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2722 +//line sql.y:2727 { yyLOCAL = TreeType } yyVAL.union = yyLOCAL - case 507: + case 508: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2726 +//line sql.y:2731 { yyLOCAL = VitessType } yyVAL.union = yyLOCAL - case 508: + case 509: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2730 +//line sql.y:2735 { yyLOCAL = TraditionalType } yyVAL.union = yyLOCAL - case 509: + case 510: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2734 +//line sql.y:2739 { yyLOCAL = AnalyzeType } yyVAL.union = yyLOCAL - case 510: + case 511: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2740 +//line sql.y:2745 { yyVAL.str = yyDollar[1].str } - case 511: + case 512: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2744 +//line sql.y:2749 { yyVAL.str = yyDollar[1].str } - case 512: + case 513: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2748 +//line sql.y:2753 { yyVAL.str = yyDollar[1].str } - case 513: + case 514: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2754 +//line sql.y:2759 { yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 514: + case 515: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2758 +//line sql.y:2763 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 515: + case 516: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2762 +//line sql.y:2767 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 516: + case 517: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2766 +//line sql.y:2771 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 517: + case 518: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2771 +//line sql.y:2776 { yyVAL.str = "" } - case 518: + case 519: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2775 +//line sql.y:2780 { yyVAL.str = yyDollar[1].colIdent.val } - case 519: + case 520: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2779 +//line sql.y:2784 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 520: + case 521: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2785 +//line sql.y:2790 { yyLOCAL = &ExplainTab{Table: yyDollar[2].tableName, Wild: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 521: + case 522: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2789 +//line sql.y:2794 { yyLOCAL = &ExplainStmt{Type: yyDollar[2].explainTypeUnion(), Statement: yyDollar[3].statementUnion()} } yyVAL.union = yyLOCAL - case 522: + case 523: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2795 +//line sql.y:2800 { yyLOCAL = &OtherAdmin{} } yyVAL.union = yyLOCAL - case 523: + case 524: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2799 +//line sql.y:2804 { yyLOCAL = &OtherAdmin{} } yyVAL.union = yyLOCAL - case 524: + case 525: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2805 +//line sql.y:2810 { yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()} } yyVAL.union = yyLOCAL - case 525: + case 526: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableAndLockTypes -//line sql.y:2811 +//line sql.y:2816 { yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()} } yyVAL.union = yyLOCAL - case 526: + case 527: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2815 +//line sql.y:2820 { yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion()) } - case 527: + case 528: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *TableAndLockType -//line sql.y:2821 +//line sql.y:2826 { yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()} } yyVAL.union = yyLOCAL - case 528: + case 529: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2827 +//line sql.y:2832 { yyLOCAL = Read } yyVAL.union = yyLOCAL - case 529: + case 530: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:2831 +//line sql.y:2836 { yyLOCAL = ReadLocal } yyVAL.union = yyLOCAL - case 530: + case 531: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2835 +//line sql.y:2840 { yyLOCAL = Write } yyVAL.union = yyLOCAL - case 531: + case 532: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:2839 +//line sql.y:2844 { yyLOCAL = LowPriorityWrite } yyVAL.union = yyLOCAL - case 532: + case 533: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2845 +//line sql.y:2850 { yyLOCAL = &UnlockTables{} } yyVAL.union = yyLOCAL - case 533: + case 534: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2851 +//line sql.y:2856 { yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs), UUID: string(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 534: + case 535: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2857 +//line sql.y:2862 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs} } yyVAL.union = yyLOCAL - case 535: + case 536: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2861 +//line sql.y:2866 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()} } yyVAL.union = yyLOCAL - case 536: + case 537: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2865 +//line sql.y:2870 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true} } yyVAL.union = yyLOCAL - case 537: + case 538: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2869 +//line sql.y:2874 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 538: + case 539: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2873 +//line sql.y:2878 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true} } yyVAL.union = yyLOCAL - case 539: + case 540: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2877 +//line sql.y:2882 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true} } yyVAL.union = yyLOCAL - case 540: + case 541: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2883 +//line sql.y:2888 { yyVAL.strs = []string{yyDollar[1].str} } - case 541: + case 542: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2887 +//line sql.y:2892 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str) } - case 542: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2893 - { - yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) - } case 543: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2897 +//line sql.y:2898 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 544: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2901 +//line sql.y:2902 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 545: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2905 +//line sql.y:2906 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 546: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2909 + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:2910 { - yyVAL.str = string(yyDollar[1].str) + yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 547: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2913 +//line sql.y:2914 { yyVAL.str = string(yyDollar[1].str) } case 548: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2917 +//line sql.y:2918 { yyVAL.str = string(yyDollar[1].str) } case 549: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2922 + { + yyVAL.str = string(yyDollar[1].str) + } + case 550: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2921 +//line sql.y:2926 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str } - case 550: + case 551: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2925 +//line sql.y:2930 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 551: + case 552: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2929 +//line sql.y:2934 { yyVAL.str = string(yyDollar[1].str) } - case 552: + case 553: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2933 +//line sql.y:2938 { yyVAL.str = string(yyDollar[1].str) } - case 553: + case 554: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2937 +//line sql.y:2942 { yyVAL.str = string(yyDollar[1].str) } - case 554: + case 555: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2942 +//line sql.y:2947 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 555: + case 556: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2946 +//line sql.y:2951 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 556: + case 557: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2950 +//line sql.y:2955 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 557: + case 558: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2955 +//line sql.y:2960 { yyVAL.str = "" } - case 558: + case 559: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2959 +//line sql.y:2964 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].colIdent.String() } - case 559: + case 560: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2964 +//line sql.y:2969 { setAllowComments(yylex, true) } - case 560: + case 561: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2968 +//line sql.y:2973 { yyVAL.strs = yyDollar[2].strs setAllowComments(yylex, false) } - case 561: + case 562: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2974 +//line sql.y:2979 { yyVAL.strs = nil } - case 562: + case 563: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2978 +//line sql.y:2983 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str) } - case 563: + case 564: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2984 +//line sql.y:2989 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 564: + case 565: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2988 +//line sql.y:2993 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 565: + case 566: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2992 +//line sql.y:2997 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 566: + case 567: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2997 +//line sql.y:3002 { yyVAL.str = "" } - case 567: + case 568: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3001 +//line sql.y:3006 { yyVAL.str = SQLNoCacheStr } - case 568: + case 569: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3005 +//line sql.y:3010 { yyVAL.str = SQLCacheStr } - case 569: + case 570: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3010 +//line sql.y:3015 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 570: + case 571: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3014 +//line sql.y:3019 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 571: + case 572: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3018 +//line sql.y:3023 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 572: + case 573: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3023 +//line sql.y:3028 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 573: + case 574: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3027 +//line sql.y:3032 { yyLOCAL = yyDollar[1].selectExprsUnion() } yyVAL.union = yyLOCAL - case 574: + case 575: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3032 +//line sql.y:3037 { yyVAL.strs = nil } - case 575: + case 576: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3036 +//line sql.y:3041 { yyVAL.strs = []string{yyDollar[1].str} } - case 576: + case 577: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3040 +//line sql.y:3045 { // TODO: This is a hack since I couldn't get it to work in a nicer way. I got 'conflicts: 8 shift/reduce' yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str} } - case 577: + case 578: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3044 +//line sql.y:3049 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str} } - case 578: + case 579: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3048 +//line sql.y:3053 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str, yyDollar[4].str} } - case 579: + case 580: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3054 +//line sql.y:3059 { yyVAL.str = SQLNoCacheStr } - case 580: + case 581: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3058 +//line sql.y:3063 { yyVAL.str = SQLCacheStr } - case 581: + case 582: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3062 +//line sql.y:3067 { yyVAL.str = DistinctStr } - case 582: + case 583: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3066 +//line sql.y:3071 { yyVAL.str = DistinctStr } - case 583: + case 584: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3070 +//line sql.y:3075 { yyVAL.str = StraightJoinHint } - case 584: + case 585: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3074 +//line sql.y:3079 { yyVAL.str = SQLCalcFoundRowsStr } - case 585: + case 586: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3078 +//line sql.y:3083 { yyVAL.str = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway } - case 586: + case 587: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3084 +//line sql.y:3089 { yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()} } yyVAL.union = yyLOCAL - case 587: + case 588: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3088 +//line sql.y:3093 { yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion()) } - case 588: + case 589: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3094 +//line sql.y:3099 { yyLOCAL = &StarExpr{} } yyVAL.union = yyLOCAL - case 589: + case 590: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3098 +//line sql.y:3103 { yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].colIdent} } yyVAL.union = yyLOCAL - case 590: + case 591: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3102 +//line sql.y:3107 { yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } yyVAL.union = yyLOCAL - case 591: + case 592: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3106 +//line sql.y:3111 { yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL - case 592: + case 593: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3111 +//line sql.y:3116 { yyVAL.colIdent = ColIdent{} } - case 593: + case 594: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3115 +//line sql.y:3120 { yyVAL.colIdent = yyDollar[1].colIdent } - case 594: + case 595: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3119 +//line sql.y:3124 { yyVAL.colIdent = yyDollar[2].colIdent } - case 596: + case 597: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3126 +//line sql.y:3131 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 597: + case 598: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3131 +//line sql.y:3136 { yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } yyVAL.union = yyLOCAL - case 598: + case 599: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3135 +//line sql.y:3140 { yyLOCAL = yyDollar[2].tableExprsUnion() } yyVAL.union = yyLOCAL - case 599: + case 600: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3141 +//line sql.y:3146 { yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()} } yyVAL.union = yyLOCAL - case 600: + case 601: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3145 +//line sql.y:3150 { yySLICE := (*TableExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion()) } - case 603: + case 604: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3155 +//line sql.y:3160 { yyLOCAL = yyDollar[1].aliasedTableNameUnion() } yyVAL.union = yyLOCAL - case 604: + case 605: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3159 +//line sql.y:3164 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].tableIdent} } yyVAL.union = yyLOCAL - case 605: + case 606: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3163 +//line sql.y:3168 { yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()} } yyVAL.union = yyLOCAL - case 606: + case 607: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:3169 +//line sql.y:3174 { yyLOCAL = &DerivedTable{yyDollar[2].selStmtUnion()} } yyVAL.union = yyLOCAL - case 607: + case 608: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3175 +//line sql.y:3180 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHintsUnion()} } yyVAL.union = yyLOCAL - case 608: + case 609: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3179 +//line sql.y:3184 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHintsUnion()} } yyVAL.union = yyLOCAL - case 609: + case 610: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:3184 +//line sql.y:3189 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 610: + case 611: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:3188 +//line sql.y:3193 { yyLOCAL = yyDollar[2].columnsUnion() } yyVAL.union = yyLOCAL - case 611: + case 612: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:3194 +//line sql.y:3199 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 612: + case 613: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3198 +//line sql.y:3203 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 613: + case 614: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Partitions -//line sql.y:3204 +//line sql.y:3209 { yyLOCAL = Partitions{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 614: + case 615: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3208 +//line sql.y:3213 { yySLICE := (*Partitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 615: + case 616: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3221 +//line sql.y:3226 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 616: + case 617: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3225 +//line sql.y:3230 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 617: + case 618: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3229 +//line sql.y:3234 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 618: + case 619: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3233 +//line sql.y:3238 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()} } yyVAL.union = yyLOCAL - case 619: + case 620: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3239 +//line sql.y:3244 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } - case 620: + case 621: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3241 +//line sql.y:3246 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columnsUnion()} } - case 621: + case 622: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3245 +//line sql.y:3250 { yyVAL.joinCondition = JoinCondition{} } - case 622: + case 623: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3247 +//line sql.y:3252 { yyVAL.joinCondition = yyDollar[1].joinCondition } - case 623: + case 624: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3251 +//line sql.y:3256 { yyVAL.joinCondition = JoinCondition{} } - case 624: + case 625: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3253 +//line sql.y:3258 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } - case 625: + case 626: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3256 +//line sql.y:3261 { yyVAL.empty = struct{}{} } - case 626: + case 627: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3258 +//line sql.y:3263 { yyVAL.empty = struct{}{} } - case 627: + case 628: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3261 +//line sql.y:3266 { yyVAL.tableIdent = NewTableIdent("") } - case 628: + case 629: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3265 +//line sql.y:3270 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 629: + case 630: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3269 +//line sql.y:3274 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 631: + case 632: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3276 +//line sql.y:3281 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 632: + case 633: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3282 +//line sql.y:3287 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 633: + case 634: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3286 +//line sql.y:3291 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 634: + case 635: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3290 +//line sql.y:3295 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 635: + case 636: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3296 +//line sql.y:3301 { yyLOCAL = StraightJoinType } yyVAL.union = yyLOCAL - case 636: + case 637: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3302 +//line sql.y:3307 { yyLOCAL = LeftJoinType } yyVAL.union = yyLOCAL - case 637: + case 638: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3306 +//line sql.y:3311 { yyLOCAL = LeftJoinType } yyVAL.union = yyLOCAL - case 638: + case 639: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3310 +//line sql.y:3315 { yyLOCAL = RightJoinType } yyVAL.union = yyLOCAL - case 639: + case 640: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3314 +//line sql.y:3319 { yyLOCAL = RightJoinType } yyVAL.union = yyLOCAL - case 640: + case 641: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3320 +//line sql.y:3325 { yyLOCAL = NaturalJoinType } yyVAL.union = yyLOCAL - case 641: + case 642: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3324 +//line sql.y:3329 { if yyDollar[2].joinTypeUnion() == LeftJoinType { yyLOCAL = NaturalLeftJoinType @@ -10301,668 +10325,668 @@ yydefault: } } yyVAL.union = yyLOCAL - case 642: + case 643: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3334 +//line sql.y:3339 { yyVAL.tableName = yyDollar[2].tableName } - case 643: + case 644: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3338 +//line sql.y:3343 { yyVAL.tableName = yyDollar[1].tableName } - case 644: + case 645: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3344 +//line sql.y:3349 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 645: + case 646: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3348 +//line sql.y:3353 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } - case 646: + case 647: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3354 +//line sql.y:3359 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 647: + case 648: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3359 +//line sql.y:3364 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 648: + case 649: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3363 +//line sql.y:3368 { yyLOCAL = &IndexHints{Type: UseOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 649: + case 650: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3367 +//line sql.y:3372 { yyLOCAL = &IndexHints{Type: UseOp} } yyVAL.union = yyLOCAL - case 650: + case 651: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3371 +//line sql.y:3376 { yyLOCAL = &IndexHints{Type: IgnoreOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 651: + case 652: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3375 +//line sql.y:3380 { yyLOCAL = &IndexHints{Type: ForceOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 652: + case 653: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3380 +//line sql.y:3385 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 653: + case 654: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3384 +//line sql.y:3389 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 654: + case 655: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3390 +//line sql.y:3395 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 655: + case 656: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3394 +//line sql.y:3399 { yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 656: + case 657: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3398 +//line sql.y:3403 { yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 657: + case 658: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3402 +//line sql.y:3407 { yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 658: + case 659: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3406 +//line sql.y:3411 { yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 659: + case 660: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3410 +//line sql.y:3415 { yyLOCAL = &IsExpr{Operator: yyDollar[3].isExprOperatorUnion(), Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 660: + case 661: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3414 +//line sql.y:3419 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 661: + case 662: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3418 +//line sql.y:3423 { yyLOCAL = &Default{ColName: yyDollar[2].str} } yyVAL.union = yyLOCAL - case 662: + case 663: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3424 +//line sql.y:3429 { yyVAL.str = "" } - case 663: + case 664: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3428 +//line sql.y:3433 { yyVAL.str = string(yyDollar[2].colIdent.String()) } - case 664: + case 665: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3434 +//line sql.y:3439 { yyLOCAL = BoolVal(true) } yyVAL.union = yyLOCAL - case 665: + case 666: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3438 +//line sql.y:3443 { yyLOCAL = BoolVal(false) } yyVAL.union = yyLOCAL - case 666: + case 667: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3444 +//line sql.y:3449 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 667: + case 668: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3448 +//line sql.y:3453 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()} } yyVAL.union = yyLOCAL - case 668: + case 669: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3452 +//line sql.y:3457 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()} } yyVAL.union = yyLOCAL - case 669: + case 670: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3456 +//line sql.y:3461 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 670: + case 671: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3460 +//line sql.y:3465 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 671: + case 672: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3464 +//line sql.y:3469 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 672: + case 673: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3468 +//line sql.y:3473 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 673: + case 674: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3472 +//line sql.y:3477 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: BetweenOp, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 674: + case 675: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3476 +//line sql.y:3481 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: NotBetweenOp, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 675: + case 676: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3480 +//line sql.y:3485 { yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()} } yyVAL.union = yyLOCAL - case 676: + case 677: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3486 +//line sql.y:3491 { yyLOCAL = IsNullOp } yyVAL.union = yyLOCAL - case 677: + case 678: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3490 +//line sql.y:3495 { yyLOCAL = IsNotNullOp } yyVAL.union = yyLOCAL - case 678: + case 679: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3494 +//line sql.y:3499 { yyLOCAL = IsTrueOp } yyVAL.union = yyLOCAL - case 679: + case 680: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3498 +//line sql.y:3503 { yyLOCAL = IsNotTrueOp } yyVAL.union = yyLOCAL - case 680: + case 681: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3502 +//line sql.y:3507 { yyLOCAL = IsFalseOp } yyVAL.union = yyLOCAL - case 681: + case 682: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3506 +//line sql.y:3511 { yyLOCAL = IsNotFalseOp } yyVAL.union = yyLOCAL - case 682: + case 683: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3512 +//line sql.y:3517 { yyLOCAL = EqualOp } yyVAL.union = yyLOCAL - case 683: + case 684: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3516 +//line sql.y:3521 { yyLOCAL = LessThanOp } yyVAL.union = yyLOCAL - case 684: + case 685: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3520 +//line sql.y:3525 { yyLOCAL = GreaterThanOp } yyVAL.union = yyLOCAL - case 685: + case 686: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3524 +//line sql.y:3529 { yyLOCAL = LessEqualOp } yyVAL.union = yyLOCAL - case 686: + case 687: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3528 +//line sql.y:3533 { yyLOCAL = GreaterEqualOp } yyVAL.union = yyLOCAL - case 687: + case 688: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3532 +//line sql.y:3537 { yyLOCAL = NotEqualOp } yyVAL.union = yyLOCAL - case 688: + case 689: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3536 +//line sql.y:3541 { yyLOCAL = NullSafeEqualOp } yyVAL.union = yyLOCAL - case 689: + case 690: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3541 +//line sql.y:3546 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 690: + case 691: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3545 +//line sql.y:3550 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 691: + case 692: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3551 +//line sql.y:3556 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 692: + case 693: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3555 +//line sql.y:3560 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 693: + case 694: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3559 +//line sql.y:3564 { yyLOCAL = ListArg(yyDollar[1].str[2:]) bindVariable(yylex, yyDollar[1].str[2:]) } yyVAL.union = yyLOCAL - case 694: + case 695: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Subquery -//line sql.y:3566 +//line sql.y:3571 { yyLOCAL = &Subquery{yyDollar[2].selStmtUnion()} } yyVAL.union = yyLOCAL - case 695: + case 696: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:3572 +//line sql.y:3577 { yyLOCAL = Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 696: + case 697: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3576 +//line sql.y:3581 { yySLICE := (*Exprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].exprUnion()) } - case 697: + case 698: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3582 +//line sql.y:3587 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 698: + case 699: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3586 +//line sql.y:3591 { yyLOCAL = yyDollar[1].boolValUnion() } yyVAL.union = yyLOCAL - case 699: + case 700: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3590 +//line sql.y:3595 { yyLOCAL = yyDollar[1].colNameUnion() } yyVAL.union = yyLOCAL - case 700: + case 701: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3594 +//line sql.y:3599 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 701: + case 702: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3598 +//line sql.y:3603 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 702: + case 703: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3602 +//line sql.y:3607 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 703: + case 704: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3606 +//line sql.y:3611 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 704: + case 705: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3610 +//line sql.y:3615 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 705: + case 706: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3614 +//line sql.y:3619 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 706: + case 707: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3618 +//line sql.y:3623 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 707: + case 708: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3622 +//line sql.y:3627 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 708: + case 709: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3626 +//line sql.y:3631 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 709: + case 710: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3630 +//line sql.y:3635 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 710: + case 711: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3634 +//line sql.y:3639 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 711: + case 712: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3638 +//line sql.y:3643 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 712: + case 713: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3642 +//line sql.y:3647 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 713: + case 714: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3646 +//line sql.y:3651 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 714: + case 715: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3650 +//line sql.y:3655 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONExtractOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 715: + case 716: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3654 +//line sql.y:3659 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONUnquoteExtractOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 716: + case 717: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3658 +//line sql.y:3663 { yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Charset: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 717: + case 718: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3662 +//line sql.y:3667 { yyLOCAL = &UnaryExpr{Operator: BinaryOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 718: + case 719: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3666 +//line sql.y:3671 { yyLOCAL = &UnaryExpr{Operator: UBinaryOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 719: + case 720: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3670 +//line sql.y:3675 { yyLOCAL = &UnaryExpr{Operator: Utf8Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 720: + case 721: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3674 +//line sql.y:3679 { yyLOCAL = &UnaryExpr{Operator: Utf8mb4Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 721: + case 722: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3678 +//line sql.y:3683 { yyLOCAL = &UnaryExpr{Operator: Latin1Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 722: + case 723: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3682 +//line sql.y:3687 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 723: + case 724: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3686 +//line sql.y:3691 { yyLOCAL = handleUnaryMinus(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 724: + case 725: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3690 +//line sql.y:3695 { yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 725: + case 726: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3694 +//line sql.y:3699 { yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 726: + case 727: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3698 +//line sql.y:3703 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -10971,172 +10995,164 @@ yydefault: yyLOCAL = &IntervalExpr{Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 731: + case 732: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3716 +//line sql.y:3721 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 732: + case 733: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3720 +//line sql.y:3725 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 733: + case 734: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3724 +//line sql.y:3729 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 734: + case 735: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3728 +//line sql.y:3733 { yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 735: + case 736: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3738 +//line sql.y:3743 { yyLOCAL = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 736: + case 737: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3742 +//line sql.y:3747 { yyLOCAL = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 737: + case 738: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3746 +//line sql.y:3751 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 738: + case 739: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3750 +//line sql.y:3755 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 739: + case 740: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3754 +//line sql.y:3759 { yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 740: + case 741: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3758 +//line sql.y:3763 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 741: + case 742: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3762 +//line sql.y:3767 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 742: + case 743: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3766 +//line sql.y:3771 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 743: + case 744: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3770 +//line sql.y:3775 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 744: + case 745: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:3774 +//line sql.y:3779 { yyLOCAL = &MatchExpr{Columns: yyDollar[3].selectExprsUnion(), Expr: yyDollar[7].exprUnion(), Option: yyDollar[8].matchExprOptionUnion()} } yyVAL.union = yyLOCAL - case 745: + case 746: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3778 +//line sql.y:3783 { yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].selectExprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()} } yyVAL.union = yyLOCAL - case 746: + case 747: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3782 +//line sql.y:3787 { yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 747: + case 748: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3786 +//line sql.y:3791 { yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()} } yyVAL.union = yyLOCAL - case 748: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3790 - { - yyLOCAL = &FuncExpr{Name: NewColIdent(yyDollar[1].str)} - } - yyVAL.union = yyLOCAL case 749: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3800 +//line sql.y:3795 { - yyLOCAL = &FuncExpr{Name: NewColIdent("current_timestamp")} + yyLOCAL = &FuncExpr{Name: NewColIdent(yyDollar[1].str)} } yyVAL.union = yyLOCAL case 750: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3804 +//line sql.y:3805 { - yyLOCAL = &FuncExpr{Name: NewColIdent("utc_timestamp")} + yyLOCAL = &FuncExpr{Name: NewColIdent("current_timestamp")} } yyVAL.union = yyLOCAL case 751: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3808 +//line sql.y:3809 { - yyLOCAL = &FuncExpr{Name: NewColIdent("utc_time")} + yyLOCAL = &FuncExpr{Name: NewColIdent("utc_timestamp")} } yyVAL.union = yyLOCAL case 752: @@ -11144,7 +11160,7 @@ yydefault: var yyLOCAL Expr //line sql.y:3813 { - yyLOCAL = &FuncExpr{Name: NewColIdent("utc_date")} + yyLOCAL = &FuncExpr{Name: NewColIdent("utc_time")} } yyVAL.union = yyLOCAL case 753: @@ -11152,7 +11168,7 @@ yydefault: var yyLOCAL Expr //line sql.y:3818 { - yyLOCAL = &FuncExpr{Name: NewColIdent("localtime")} + yyLOCAL = &FuncExpr{Name: NewColIdent("utc_date")} } yyVAL.union = yyLOCAL case 754: @@ -11160,15 +11176,15 @@ yydefault: var yyLOCAL Expr //line sql.y:3823 { - yyLOCAL = &FuncExpr{Name: NewColIdent("localtimestamp")} + yyLOCAL = &FuncExpr{Name: NewColIdent("localtime")} } yyVAL.union = yyLOCAL case 755: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3829 +//line sql.y:3828 { - yyLOCAL = &FuncExpr{Name: NewColIdent("current_date")} + yyLOCAL = &FuncExpr{Name: NewColIdent("localtimestamp")} } yyVAL.union = yyLOCAL case 756: @@ -11176,7 +11192,7 @@ yydefault: var yyLOCAL Expr //line sql.y:3834 { - yyLOCAL = &FuncExpr{Name: NewColIdent("current_time")} + yyLOCAL = &FuncExpr{Name: NewColIdent("current_date")} } yyVAL.union = yyLOCAL case 757: @@ -11184,23 +11200,23 @@ yydefault: var yyLOCAL Expr //line sql.y:3839 { - yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].exprUnion()} + yyLOCAL = &FuncExpr{Name: NewColIdent("current_time")} } yyVAL.union = yyLOCAL case 758: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3843 +//line sql.y:3844 { - yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].exprUnion()} + yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL case 759: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3847 +//line sql.y:3848 { - yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].exprUnion()} + yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL case 760: @@ -11208,7 +11224,7 @@ yydefault: var yyLOCAL Expr //line sql.y:3852 { - yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].exprUnion()} + yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL case 761: @@ -11216,7 +11232,7 @@ yydefault: var yyLOCAL Expr //line sql.y:3857 { - yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].exprUnion()} + yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL case 762: @@ -11224,413 +11240,421 @@ yydefault: var yyLOCAL Expr //line sql.y:3862 { - yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].exprUnion()} + yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL case 763: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:3867 + { + yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 764: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3866 +//line sql.y:3871 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 764: + case 765: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3870 +//line sql.y:3875 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 767: + case 768: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3880 +//line sql.y:3885 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 768: + case 769: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3890 +//line sql.y:3895 { yyLOCAL = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 769: + case 770: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3894 +//line sql.y:3899 { yyLOCAL = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 770: + case 771: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3898 +//line sql.y:3903 { yyLOCAL = &FuncExpr{Name: NewColIdent("schema"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 771: + case 772: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3902 +//line sql.y:3907 { yyLOCAL = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 772: + case 773: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3906 +//line sql.y:3911 { yyLOCAL = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 773: + case 774: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3910 +//line sql.y:3915 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 774: + case 775: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3914 +//line sql.y:3919 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 775: + case 776: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3920 +//line sql.y:3925 { yyLOCAL = NoOption } yyVAL.union = yyLOCAL - case 776: + case 777: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3924 +//line sql.y:3929 { yyLOCAL = BooleanModeOpt } yyVAL.union = yyLOCAL - case 777: + case 778: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3928 +//line sql.y:3933 { yyLOCAL = NaturalLanguageModeOpt } yyVAL.union = yyLOCAL - case 778: + case 779: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3932 +//line sql.y:3937 { yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt } yyVAL.union = yyLOCAL - case 779: + case 780: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3936 +//line sql.y:3941 { yyLOCAL = QueryExpansionOpt } yyVAL.union = yyLOCAL - case 780: + case 781: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3942 +//line sql.y:3947 { yyVAL.str = string(yyDollar[1].colIdent.String()) } - case 781: + case 782: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3946 +//line sql.y:3951 { yyVAL.str = string(yyDollar[1].str) } - case 782: + case 783: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3950 +//line sql.y:3955 { yyVAL.str = string(yyDollar[1].str) } - case 783: + case 784: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3956 +//line sql.y:3961 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 784: + case 785: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3960 +//line sql.y:3965 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Operator: CharacterSetOp} } yyVAL.union = yyLOCAL - case 785: + case 786: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3964 +//line sql.y:3969 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: string(yyDollar[3].colIdent.String())} } yyVAL.union = yyLOCAL - case 786: + case 787: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3968 +//line sql.y:3973 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 787: + case 788: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3972 +//line sql.y:3977 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 788: + case 789: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3976 +//line sql.y:3981 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length yyLOCAL.Scale = yyDollar[2].LengthScaleOption.Scale } yyVAL.union = yyLOCAL - case 789: + case 790: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3982 +//line sql.y:3987 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 790: + case 791: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3986 +//line sql.y:3991 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 791: + case 792: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3990 +//line sql.y:3995 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 792: + case 793: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3994 +//line sql.y:3999 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 793: + case 794: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3998 +//line sql.y:4003 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 794: + case 795: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4002 +//line sql.y:4007 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 795: + case 796: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4006 +//line sql.y:4011 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 796: + case 797: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4011 +//line sql.y:4016 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 797: + case 798: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4015 +//line sql.y:4020 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 798: + case 799: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4020 +//line sql.y:4025 { yyVAL.str = string("") } - case 799: + case 800: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4024 +//line sql.y:4029 { yyVAL.str = " separator " + encodeSQLString(yyDollar[2].str) } - case 800: + case 801: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*When -//line sql.y:4030 +//line sql.y:4035 { yyLOCAL = []*When{yyDollar[1].whenUnion()} } yyVAL.union = yyLOCAL - case 801: + case 802: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4034 +//line sql.y:4039 { yySLICE := (*[]*When)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].whenUnion()) } - case 802: + case 803: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *When -//line sql.y:4040 +//line sql.y:4045 { yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 803: + case 804: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4045 +//line sql.y:4050 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 804: + case 805: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4049 +//line sql.y:4054 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 805: + case 806: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ColName -//line sql.y:4055 +//line sql.y:4060 { yyLOCAL = &ColName{Name: yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 806: + case 807: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColName -//line sql.y:4059 +//line sql.y:4064 { yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 807: + case 808: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColName -//line sql.y:4063 +//line sql.y:4068 { yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 808: + case 809: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4069 +//line sql.y:4074 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 809: + case 810: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4073 +//line sql.y:4078 { yyLOCAL = NewHexLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 810: + case 811: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4077 +//line sql.y:4082 { yyLOCAL = NewBitLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 811: + case 812: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4081 +//line sql.y:4086 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 812: + case 813: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4085 +//line sql.y:4090 { yyLOCAL = NewFloatLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 813: + case 814: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4089 +//line sql.y:4094 { yyLOCAL = NewHexNumLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 814: + case 815: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4093 +//line sql.y:4098 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 815: + case 816: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4098 +//line sql.y:4103 { yyLOCAL = &NullVal{} } yyVAL.union = yyLOCAL - case 816: + case 817: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4104 +//line sql.y:4109 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -11640,707 +11664,707 @@ yydefault: yyLOCAL = NewIntLiteral("1") } yyVAL.union = yyLOCAL - case 817: + case 818: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4113 +//line sql.y:4118 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 818: + case 819: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4117 +//line sql.y:4122 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 819: + case 820: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4123 +//line sql.y:4128 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 820: + case 821: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Exprs -//line sql.y:4127 +//line sql.y:4132 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 821: + case 822: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4132 +//line sql.y:4137 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 822: + case 823: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4136 +//line sql.y:4141 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 823: + case 824: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4141 +//line sql.y:4146 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 824: + case 825: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4145 +//line sql.y:4150 { yyLOCAL = yyDollar[3].orderByUnion() } yyVAL.union = yyLOCAL - case 825: + case 826: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4151 +//line sql.y:4156 { yyLOCAL = OrderBy{yyDollar[1].orderUnion()} } yyVAL.union = yyLOCAL - case 826: + case 827: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4155 +//line sql.y:4160 { yySLICE := (*OrderBy)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].orderUnion()) } - case 827: + case 828: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Order -//line sql.y:4161 +//line sql.y:4166 { yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()} } yyVAL.union = yyLOCAL - case 828: + case 829: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4166 +//line sql.y:4171 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 829: + case 830: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4170 +//line sql.y:4175 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 830: + case 831: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4174 +//line sql.y:4179 { yyLOCAL = DescOrder } yyVAL.union = yyLOCAL - case 831: + case 832: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Limit -//line sql.y:4179 +//line sql.y:4184 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 832: + case 833: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Limit -//line sql.y:4183 +//line sql.y:4188 { yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 833: + case 834: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4187 +//line sql.y:4192 { yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 834: + case 835: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4191 +//line sql.y:4196 { yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 835: + case 836: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4196 +//line sql.y:4201 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 836: + case 837: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4200 +//line sql.y:4205 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 837: + case 838: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4204 +//line sql.y:4209 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 838: + case 839: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4208 +//line sql.y:4213 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 839: + case 840: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4212 +//line sql.y:4217 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 840: + case 841: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4219 +//line sql.y:4224 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.union = yyLOCAL - case 841: + case 842: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4223 +//line sql.y:4228 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.union = yyLOCAL - case 842: + case 843: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4227 +//line sql.y:4232 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.union = yyLOCAL - case 843: + case 844: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4231 +//line sql.y:4236 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.union = yyLOCAL - case 844: + case 845: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4237 +//line sql.y:4242 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 845: + case 846: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4241 +//line sql.y:4246 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 846: + case 847: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4245 +//line sql.y:4250 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 847: + case 848: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4250 +//line sql.y:4255 { yyVAL.str = "" } - case 848: + case 849: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4254 +//line sql.y:4259 { yyVAL.str = string(yyDollar[3].str) } - case 849: + case 850: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4258 +//line sql.y:4263 { yyVAL.str = string(yyDollar[3].str) } - case 850: + case 851: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4262 +//line sql.y:4267 { yyVAL.str = string(yyDollar[3].str) } - case 851: + case 852: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4267 +//line sql.y:4272 { yyVAL.str = "" } - case 852: + case 853: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4271 +//line sql.y:4276 { yyVAL.str = yyDollar[3].str } - case 853: + case 854: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4277 +//line sql.y:4282 { yyVAL.str = string(yyDollar[1].str) } - case 854: + case 855: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4281 +//line sql.y:4286 { yyVAL.str = string(yyDollar[1].str) } - case 855: + case 856: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4286 +//line sql.y:4291 { yyVAL.str = "" } - case 856: + case 857: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4290 +//line sql.y:4295 { yyVAL.str = yyDollar[2].str } - case 857: + case 858: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4295 +//line sql.y:4300 { yyVAL.str = "cascaded" } - case 858: + case 859: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4299 +//line sql.y:4304 { yyVAL.str = string(yyDollar[1].str) } - case 859: + case 860: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4303 +//line sql.y:4308 { yyVAL.str = string(yyDollar[1].str) } - case 860: + case 861: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4308 +//line sql.y:4313 { yyVAL.str = "" } - case 861: + case 862: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4312 +//line sql.y:4317 { yyVAL.str = yyDollar[3].str } - case 862: + case 863: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4318 +//line sql.y:4323 { yyVAL.str = string(yyDollar[1].str) } - case 863: + case 864: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4322 +//line sql.y:4327 { yyVAL.str = string(yyDollar[1].str) } - case 864: + case 865: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4326 +//line sql.y:4331 { yyVAL.str = encodeSQLString(yyDollar[1].str) + "@" + string(yyDollar[2].str) } - case 865: + case 866: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4330 +//line sql.y:4335 { yyVAL.str = string(yyDollar[1].str) } - case 866: + case 867: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Lock -//line sql.y:4335 +//line sql.y:4340 { yyLOCAL = NoLock } yyVAL.union = yyLOCAL - case 867: + case 868: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Lock -//line sql.y:4339 +//line sql.y:4344 { yyLOCAL = ForUpdateLock } yyVAL.union = yyLOCAL - case 868: + case 869: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:4343 +//line sql.y:4348 { yyLOCAL = ShareModeLock } yyVAL.union = yyLOCAL - case 869: + case 870: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4348 +//line sql.y:4353 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 870: + case 871: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4352 +//line sql.y:4357 { yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].str, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str} } yyVAL.union = yyLOCAL - case 871: + case 872: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4356 +//line sql.y:4361 { yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: "", FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 872: + case 873: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4360 +//line sql.y:4365 { yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].str, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 873: + case 874: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4365 +//line sql.y:4370 { yyVAL.str = "" } - case 874: + case 875: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4369 +//line sql.y:4374 { yyVAL.str = " format csv" + yyDollar[3].str } - case 875: + case 876: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4373 +//line sql.y:4378 { yyVAL.str = " format text" + yyDollar[3].str } - case 876: + case 877: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4378 +//line sql.y:4383 { yyVAL.str = "" } - case 877: + case 878: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4382 +//line sql.y:4387 { yyVAL.str = " header" } - case 878: + case 879: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4387 +//line sql.y:4392 { yyVAL.str = "" } - case 879: + case 880: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4391 +//line sql.y:4396 { yyVAL.str = " manifest on" } - case 880: + case 881: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4395 +//line sql.y:4400 { yyVAL.str = " manifest off" } - case 881: + case 882: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4400 +//line sql.y:4405 { yyVAL.str = "" } - case 882: + case 883: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4404 +//line sql.y:4409 { yyVAL.str = " overwrite on" } - case 883: + case 884: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4408 +//line sql.y:4413 { yyVAL.str = " overwrite off" } - case 884: + case 885: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4414 +//line sql.y:4419 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 885: + case 886: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4419 +//line sql.y:4424 { yyVAL.str = "" } - case 886: + case 887: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4423 +//line sql.y:4428 { yyVAL.str = " lines" + yyDollar[2].str } - case 887: + case 888: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4429 +//line sql.y:4434 { yyVAL.str = yyDollar[1].str } - case 888: + case 889: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4433 +//line sql.y:4438 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 889: + case 890: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4439 +//line sql.y:4444 { yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str) } - case 890: + case 891: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4443 +//line sql.y:4448 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 891: + case 892: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4448 +//line sql.y:4453 { yyVAL.str = "" } - case 892: + case 893: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4452 +//line sql.y:4457 { yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str } - case 893: + case 894: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4458 +//line sql.y:4463 { yyVAL.str = yyDollar[1].str } - case 894: + case 895: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4462 +//line sql.y:4467 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 895: + case 896: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4468 +//line sql.y:4473 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 896: + case 897: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4472 +//line sql.y:4477 { yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str) } - case 897: + case 898: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4476 +//line sql.y:4481 { yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str) } - case 898: + case 899: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4481 +//line sql.y:4486 { yyVAL.str = "" } - case 899: + case 900: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4485 +//line sql.y:4490 { yyVAL.str = " optionally" } - case 900: + case 901: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Insert -//line sql.y:4498 +//line sql.y:4503 { yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion()} } yyVAL.union = yyLOCAL - case 901: + case 902: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Insert -//line sql.y:4502 +//line sql.y:4507 { yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()} } yyVAL.union = yyLOCAL - case 902: + case 903: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *Insert -//line sql.y:4506 +//line sql.y:4511 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion()} } yyVAL.union = yyLOCAL - case 903: + case 904: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4510 +//line sql.y:4515 { yyLOCAL = &Insert{Rows: yyDollar[4].valuesUnion()} } yyVAL.union = yyLOCAL - case 904: + case 905: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4514 +//line sql.y:4519 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()} } yyVAL.union = yyLOCAL - case 905: + case 906: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:4520 +//line sql.y:4525 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 906: + case 907: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:4524 +//line sql.y:4529 { yyLOCAL = Columns{yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 907: + case 908: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4528 +//line sql.y:4533 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 908: + case 909: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4532 +//line sql.y:4537 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[5].colIdent) } - case 909: + case 910: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4537 +//line sql.y:4542 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 910: + case 911: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4541 +//line sql.y:4546 { yyLOCAL = yyDollar[5].updateExprsUnion() } yyVAL.union = yyLOCAL - case 911: + case 912: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Values -//line sql.y:4547 +//line sql.y:4552 { yyLOCAL = Values{yyDollar[1].valTupleUnion()} } yyVAL.union = yyLOCAL - case 912: + case 913: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4551 +//line sql.y:4556 { yySLICE := (*Values)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion()) } - case 913: + case 914: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4557 +//line sql.y:4562 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 914: + case 915: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4561 +//line sql.y:4566 { yyLOCAL = ValTuple{} } yyVAL.union = yyLOCAL - case 915: + case 916: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4567 +//line sql.y:4572 { yyLOCAL = ValTuple(yyDollar[2].exprsUnion()) } yyVAL.union = yyLOCAL - case 916: + case 917: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4573 +//line sql.y:4578 { if len(yyDollar[1].valTupleUnion()) == 1 { yyLOCAL = yyDollar[1].valTupleUnion()[0] @@ -12349,329 +12373,329 @@ yydefault: } } yyVAL.union = yyLOCAL - case 917: + case 918: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4583 +//line sql.y:4588 { yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()} } yyVAL.union = yyLOCAL - case 918: + case 919: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4587 +//line sql.y:4592 { yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion()) } - case 919: + case 920: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *UpdateExpr -//line sql.y:4593 +//line sql.y:4598 { yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 920: + case 921: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SetExprs -//line sql.y:4599 +//line sql.y:4604 { yyLOCAL = SetExprs{yyDollar[1].setExprUnion()} } yyVAL.union = yyLOCAL - case 921: + case 922: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4603 +//line sql.y:4608 { yySLICE := (*SetExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].setExprUnion()) } - case 922: + case 923: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4609 +//line sql.y:4614 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("on")} } yyVAL.union = yyLOCAL - case 923: + case 924: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4613 +//line sql.y:4618 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("off")} } yyVAL.union = yyLOCAL - case 924: + case 925: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4617 +//line sql.y:4622 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 925: + case 926: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4621 +//line sql.y:4626 { yyLOCAL = &SetExpr{Name: NewColIdent(string(yyDollar[1].str)), Scope: ImplicitScope, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 926: + case 927: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4625 +//line sql.y:4630 { yyDollar[2].setExprUnion().Scope = yyDollar[1].scopeUnion() yyLOCAL = yyDollar[2].setExprUnion() } yyVAL.union = yyLOCAL - case 928: + case 929: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4633 +//line sql.y:4638 { yyVAL.str = "charset" } - case 931: + case 932: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4643 +//line sql.y:4648 { yyLOCAL = NewStrLiteral(yyDollar[1].colIdent.String()) } yyVAL.union = yyLOCAL - case 932: + case 933: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4647 +//line sql.y:4652 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 933: + case 934: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4651 +//line sql.y:4656 { yyLOCAL = &Default{} } yyVAL.union = yyLOCAL - case 936: + case 937: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4660 +//line sql.y:4665 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 937: + case 938: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4662 +//line sql.y:4667 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 938: + case 939: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4665 +//line sql.y:4670 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 939: + case 940: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4667 +//line sql.y:4672 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 940: + case 941: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4670 +//line sql.y:4675 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 941: + case 942: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line sql.y:4672 +//line sql.y:4677 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 942: + case 943: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Ignore -//line sql.y:4675 +//line sql.y:4680 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 943: + case 944: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Ignore -//line sql.y:4677 +//line sql.y:4682 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 944: + case 945: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4680 +//line sql.y:4685 { yyVAL.empty = struct{}{} } - case 945: + case 946: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4682 +//line sql.y:4687 { yyVAL.empty = struct{}{} } - case 946: + case 947: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4684 +//line sql.y:4689 { yyVAL.empty = struct{}{} } - case 947: + case 948: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4688 +//line sql.y:4693 { yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()} } yyVAL.union = yyLOCAL - case 948: + case 949: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4693 +//line sql.y:4698 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 949: + case 950: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:4697 +//line sql.y:4702 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 950: + case 951: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4702 +//line sql.y:4707 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 951: + case 952: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4704 +//line sql.y:4709 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL - case 952: + case 953: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:4708 +//line sql.y:4713 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].colIdent.String())} } yyVAL.union = yyLOCAL - case 953: + case 954: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4714 +//line sql.y:4719 { yyVAL.colIdent = yyDollar[1].colIdent } - case 954: + case 955: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4718 +//line sql.y:4723 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 956: + case 957: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4725 +//line sql.y:4730 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 957: + case 958: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4731 +//line sql.y:4736 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].colIdent.String())) } - case 958: + case 959: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4735 +//line sql.y:4740 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 959: + case 960: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4740 +//line sql.y:4745 { yyVAL.tableIdent = NewTableIdent("") } - case 960: + case 961: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4744 +//line sql.y:4749 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 962: + case 963: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4751 +//line sql.y:4756 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 1368: + case 1369: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5181 +//line sql.y:5186 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 1369: + case 1370: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5190 +//line sql.y:5195 { decNesting(yylex) } - case 1370: + case 1371: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5195 +//line sql.y:5200 { skipToEnd(yylex) } - case 1371: + case 1372: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5200 +//line sql.y:5205 { skipToEnd(yylex) } - case 1372: + case 1373: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5204 +//line sql.y:5209 { skipToEnd(yylex) } - case 1373: + case 1374: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5208 +//line sql.y:5213 { skipToEnd(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index bd6b0fdfda1..19bcf976898 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -1027,7 +1027,7 @@ column_definition: // was specific (as stated in the MySQL guide) and did not accept arbitrary order options. For example NOT NULL DEFAULT 1 and not DEFAULT 1 NOT NULL column_type_options: { - $$ = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil} + $$ = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil, As: nil} } | column_type_options NULL { @@ -1046,6 +1046,11 @@ column_type_options: $1.Default = $3 $$ = $1 } +| column_type_options AS value_expression + { + $1.As = $3 + $$ = $1 + } | column_type_options ON UPDATE function_call_nonkeyword { $1.OnUpdate = $4 From 657a9cf43e8c24211ef44044f82dda405edb22b1 Mon Sep 17 00:00:00 2001 From: Andres Taylor Date: Thu, 13 May 2021 11:06:17 +0200 Subject: [PATCH 29/63] accept GENERATED ALWAYS when parsing column definition Signed-off-by: Andres Taylor --- go/vt/sqlparser/keywords.go | 3 +- go/vt/sqlparser/parse_test.go | 10 +- go/vt/sqlparser/sql.go | 11597 ++++++++++++++++---------------- go/vt/sqlparser/sql.y | 19 +- 4 files changed, 5841 insertions(+), 5788 deletions(-) diff --git a/go/vt/sqlparser/keywords.go b/go/vt/sqlparser/keywords.go index 8e79cf785fa..4daf28d2980 100644 --- a/go/vt/sqlparser/keywords.go +++ b/go/vt/sqlparser/keywords.go @@ -65,6 +65,7 @@ var keywords = []keyword{ {"algorithm", ALGORITHM}, {"all", ALL}, {"alter", ALTER}, + {"always", ALWAYS}, {"analyze", ANALYZE}, {"and", AND}, {"as", AS}, @@ -207,7 +208,7 @@ var keywords = []keyword{ {"fulltext", FULLTEXT}, {"function", FUNCTION}, {"general", GENERAL}, - {"generated", UNUSED}, + {"generated", GENERATED}, {"geometry", GEOMETRY}, {"geometrycollection", GEOMETRYCOLLECTION}, {"get", UNUSED}, diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index c59b6b69b38..5c98b00612a 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -1971,7 +1971,7 @@ func TestValid(t *testing.T) { if tcase.output == "" { tcase.output = tcase.input } - tree, err := ParseStrictDDL(tcase.input) + tree, err := Parse(tcase.input) require.NoError(t, err, tcase.input) out := String(tree) if tcase.output != out { @@ -2959,6 +2959,14 @@ func TestCreateTable(t *testing.T) { first_name varchar(10), last_name varchar(10), full_name varchar(255) as concat(first_name, ' ', last_name) +)`, + }, { + input: `create table t1 (first_name varchar(10), last_name varchar(10), + full_name varchar(255) generated always as (concat(first_name, ' ', last_name)))`, + output: `create table t1 ( + first_name varchar(10), + last_name varchar(10), + full_name varchar(255) as concat(first_name, ' ', last_name) )`, }, } diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index 7764b5bdc37..a7b200ee0f0 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -80,426 +80,428 @@ const DO = 57377 const CALL = 57378 const DISTINCTROW = 57379 const PARSER = 57380 -const OUTFILE = 57381 -const S3 = 57382 -const DATA = 57383 -const LOAD = 57384 -const LINES = 57385 -const TERMINATED = 57386 -const ESCAPED = 57387 -const ENCLOSED = 57388 -const DUMPFILE = 57389 -const CSV = 57390 -const HEADER = 57391 -const MANIFEST = 57392 -const OVERWRITE = 57393 -const STARTING = 57394 -const OPTIONALLY = 57395 -const VALUES = 57396 -const LAST_INSERT_ID = 57397 -const NEXT = 57398 -const VALUE = 57399 -const SHARE = 57400 -const MODE = 57401 -const SQL_NO_CACHE = 57402 -const SQL_CACHE = 57403 -const SQL_CALC_FOUND_ROWS = 57404 -const JOIN = 57405 -const STRAIGHT_JOIN = 57406 -const LEFT = 57407 -const RIGHT = 57408 -const INNER = 57409 -const OUTER = 57410 -const CROSS = 57411 -const NATURAL = 57412 -const USE = 57413 -const FORCE = 57414 -const ON = 57415 -const USING = 57416 -const INPLACE = 57417 -const COPY = 57418 -const ALGORITHM = 57419 -const NONE = 57420 -const SHARED = 57421 -const EXCLUSIVE = 57422 -const ID = 57423 -const AT_ID = 57424 -const AT_AT_ID = 57425 -const HEX = 57426 -const STRING = 57427 -const INTEGRAL = 57428 -const FLOAT = 57429 -const HEXNUM = 57430 -const VALUE_ARG = 57431 -const LIST_ARG = 57432 -const COMMENT = 57433 -const COMMENT_KEYWORD = 57434 -const BIT_LITERAL = 57435 -const COMPRESSION = 57436 -const NULL = 57437 -const TRUE = 57438 -const FALSE = 57439 -const OFF = 57440 -const DISCARD = 57441 -const IMPORT = 57442 -const ENABLE = 57443 -const DISABLE = 57444 -const TABLESPACE = 57445 -const OR = 57446 -const XOR = 57447 -const AND = 57448 -const NOT = 57449 -const BETWEEN = 57450 -const CASE = 57451 -const WHEN = 57452 -const THEN = 57453 -const ELSE = 57454 -const END = 57455 -const LE = 57456 -const GE = 57457 -const NE = 57458 -const NULL_SAFE_EQUAL = 57459 -const IS = 57460 -const LIKE = 57461 -const REGEXP = 57462 -const IN = 57463 -const SHIFT_LEFT = 57464 -const SHIFT_RIGHT = 57465 -const DIV = 57466 -const MOD = 57467 -const UNARY = 57468 -const COLLATE = 57469 -const BINARY = 57470 -const UNDERSCORE_BINARY = 57471 -const UNDERSCORE_UTF8MB4 = 57472 -const UNDERSCORE_UTF8 = 57473 -const UNDERSCORE_LATIN1 = 57474 -const INTERVAL = 57475 -const JSON_EXTRACT_OP = 57476 -const JSON_UNQUOTE_EXTRACT_OP = 57477 -const CREATE = 57478 -const ALTER = 57479 -const DROP = 57480 -const RENAME = 57481 -const ANALYZE = 57482 -const ADD = 57483 -const FLUSH = 57484 -const CHANGE = 57485 -const MODIFY = 57486 -const REVERT = 57487 -const SCHEMA = 57488 -const TABLE = 57489 -const INDEX = 57490 -const VIEW = 57491 -const TO = 57492 -const IGNORE = 57493 -const IF = 57494 -const UNIQUE = 57495 -const PRIMARY = 57496 -const COLUMN = 57497 -const SPATIAL = 57498 -const FULLTEXT = 57499 -const KEY_BLOCK_SIZE = 57500 -const CHECK = 57501 -const INDEXES = 57502 -const ACTION = 57503 -const CASCADE = 57504 -const CONSTRAINT = 57505 -const FOREIGN = 57506 -const NO = 57507 -const REFERENCES = 57508 -const RESTRICT = 57509 -const SHOW = 57510 -const DESCRIBE = 57511 -const EXPLAIN = 57512 -const DATE = 57513 -const ESCAPE = 57514 -const REPAIR = 57515 -const OPTIMIZE = 57516 -const TRUNCATE = 57517 -const COALESCE = 57518 -const EXCHANGE = 57519 -const REBUILD = 57520 -const PARTITIONING = 57521 -const REMOVE = 57522 -const MAXVALUE = 57523 -const PARTITION = 57524 -const REORGANIZE = 57525 -const LESS = 57526 -const THAN = 57527 -const PROCEDURE = 57528 -const TRIGGER = 57529 -const VINDEX = 57530 -const VINDEXES = 57531 -const DIRECTORY = 57532 -const NAME = 57533 -const UPGRADE = 57534 -const STATUS = 57535 -const VARIABLES = 57536 -const WARNINGS = 57537 -const CASCADED = 57538 -const DEFINER = 57539 -const OPTION = 57540 -const SQL = 57541 -const UNDEFINED = 57542 -const SEQUENCE = 57543 -const MERGE = 57544 -const TEMPORARY = 57545 -const TEMPTABLE = 57546 -const INVOKER = 57547 -const SECURITY = 57548 -const FIRST = 57549 -const AFTER = 57550 -const LAST = 57551 -const VITESS_MIGRATION = 57552 -const CANCEL = 57553 -const RETRY = 57554 -const COMPLETE = 57555 -const BEGIN = 57556 -const START = 57557 -const TRANSACTION = 57558 -const COMMIT = 57559 -const ROLLBACK = 57560 -const SAVEPOINT = 57561 -const RELEASE = 57562 -const WORK = 57563 -const BIT = 57564 -const TINYINT = 57565 -const SMALLINT = 57566 -const MEDIUMINT = 57567 -const INT = 57568 -const INTEGER = 57569 -const BIGINT = 57570 -const INTNUM = 57571 -const REAL = 57572 -const DOUBLE = 57573 -const FLOAT_TYPE = 57574 -const DECIMAL = 57575 -const NUMERIC = 57576 -const TIME = 57577 -const TIMESTAMP = 57578 -const DATETIME = 57579 -const YEAR = 57580 -const CHAR = 57581 -const VARCHAR = 57582 -const BOOL = 57583 -const CHARACTER = 57584 -const VARBINARY = 57585 -const NCHAR = 57586 -const TEXT = 57587 -const TINYTEXT = 57588 -const MEDIUMTEXT = 57589 -const LONGTEXT = 57590 -const BLOB = 57591 -const TINYBLOB = 57592 -const MEDIUMBLOB = 57593 -const LONGBLOB = 57594 -const JSON = 57595 -const ENUM = 57596 -const GEOMETRY = 57597 -const POINT = 57598 -const LINESTRING = 57599 -const POLYGON = 57600 -const GEOMETRYCOLLECTION = 57601 -const MULTIPOINT = 57602 -const MULTILINESTRING = 57603 -const MULTIPOLYGON = 57604 -const NULLX = 57605 -const AUTO_INCREMENT = 57606 -const APPROXNUM = 57607 -const SIGNED = 57608 -const UNSIGNED = 57609 -const ZEROFILL = 57610 -const CODE = 57611 -const COLLATION = 57612 -const COLUMNS = 57613 -const DATABASES = 57614 -const ENGINES = 57615 -const EVENT = 57616 -const EXTENDED = 57617 -const FIELDS = 57618 -const FULL = 57619 -const FUNCTION = 57620 -const GTID_EXECUTED = 57621 -const KEYSPACES = 57622 -const OPEN = 57623 -const PLUGINS = 57624 -const PRIVILEGES = 57625 -const PROCESSLIST = 57626 -const SCHEMAS = 57627 -const TABLES = 57628 -const TRIGGERS = 57629 -const USER = 57630 -const VGTID_EXECUTED = 57631 -const VITESS_KEYSPACES = 57632 -const VITESS_METADATA = 57633 -const VITESS_MIGRATIONS = 57634 -const VITESS_SHARDS = 57635 -const VITESS_TABLETS = 57636 -const VSCHEMA = 57637 -const NAMES = 57638 -const CHARSET = 57639 -const GLOBAL = 57640 -const SESSION = 57641 -const ISOLATION = 57642 -const LEVEL = 57643 -const READ = 57644 -const WRITE = 57645 -const ONLY = 57646 -const REPEATABLE = 57647 -const COMMITTED = 57648 -const UNCOMMITTED = 57649 -const SERIALIZABLE = 57650 -const CURRENT_TIMESTAMP = 57651 -const DATABASE = 57652 -const CURRENT_DATE = 57653 -const CURRENT_TIME = 57654 -const LOCALTIME = 57655 -const LOCALTIMESTAMP = 57656 -const CURRENT_USER = 57657 -const UTC_DATE = 57658 -const UTC_TIME = 57659 -const UTC_TIMESTAMP = 57660 -const REPLACE = 57661 -const CONVERT = 57662 -const CAST = 57663 -const SUBSTR = 57664 -const SUBSTRING = 57665 -const GROUP_CONCAT = 57666 -const SEPARATOR = 57667 -const TIMESTAMPADD = 57668 -const TIMESTAMPDIFF = 57669 -const MATCH = 57670 -const AGAINST = 57671 -const BOOLEAN = 57672 -const LANGUAGE = 57673 -const WITH = 57674 -const QUERY = 57675 -const EXPANSION = 57676 -const WITHOUT = 57677 -const VALIDATION = 57678 -const UNUSED = 57679 -const ARRAY = 57680 -const CUME_DIST = 57681 -const DESCRIPTION = 57682 -const DENSE_RANK = 57683 -const EMPTY = 57684 -const EXCEPT = 57685 -const FIRST_VALUE = 57686 -const GROUPING = 57687 -const GROUPS = 57688 -const JSON_TABLE = 57689 -const LAG = 57690 -const LAST_VALUE = 57691 -const LATERAL = 57692 -const LEAD = 57693 -const MEMBER = 57694 -const NTH_VALUE = 57695 -const NTILE = 57696 -const OF = 57697 -const OVER = 57698 -const PERCENT_RANK = 57699 -const RANK = 57700 -const RECURSIVE = 57701 -const ROW_NUMBER = 57702 -const SYSTEM = 57703 -const WINDOW = 57704 -const ACTIVE = 57705 -const ADMIN = 57706 -const BUCKETS = 57707 -const CLONE = 57708 -const COMPONENT = 57709 -const DEFINITION = 57710 -const ENFORCED = 57711 -const EXCLUDE = 57712 -const FOLLOWING = 57713 -const GEOMCOLLECTION = 57714 -const GET_MASTER_PUBLIC_KEY = 57715 -const HISTOGRAM = 57716 -const HISTORY = 57717 -const INACTIVE = 57718 -const INVISIBLE = 57719 -const LOCKED = 57720 -const MASTER_COMPRESSION_ALGORITHMS = 57721 -const MASTER_PUBLIC_KEY_PATH = 57722 -const MASTER_TLS_CIPHERSUITES = 57723 -const MASTER_ZSTD_COMPRESSION_LEVEL = 57724 -const NESTED = 57725 -const NETWORK_NAMESPACE = 57726 -const NOWAIT = 57727 -const NULLS = 57728 -const OJ = 57729 -const OLD = 57730 -const OPTIONAL = 57731 -const ORDINALITY = 57732 -const ORGANIZATION = 57733 -const OTHERS = 57734 -const PATH = 57735 -const PERSIST = 57736 -const PERSIST_ONLY = 57737 -const PRECEDING = 57738 -const PRIVILEGE_CHECKS_USER = 57739 -const PROCESS = 57740 -const RANDOM = 57741 -const REFERENCE = 57742 -const REQUIRE_ROW_FORMAT = 57743 -const RESOURCE = 57744 -const RESPECT = 57745 -const RESTART = 57746 -const RETAIN = 57747 -const REUSE = 57748 -const ROLE = 57749 -const SECONDARY = 57750 -const SECONDARY_ENGINE = 57751 -const SECONDARY_LOAD = 57752 -const SECONDARY_UNLOAD = 57753 -const SKIP = 57754 -const SRID = 57755 -const THREAD_PRIORITY = 57756 -const TIES = 57757 -const UNBOUNDED = 57758 -const VCPU = 57759 -const VISIBLE = 57760 -const FORMAT = 57761 -const TREE = 57762 -const VITESS = 57763 -const TRADITIONAL = 57764 -const LOCAL = 57765 -const LOW_PRIORITY = 57766 -const NO_WRITE_TO_BINLOG = 57767 -const LOGS = 57768 -const ERROR = 57769 -const GENERAL = 57770 -const HOSTS = 57771 -const OPTIMIZER_COSTS = 57772 -const USER_RESOURCES = 57773 -const SLOW = 57774 -const CHANNEL = 57775 -const RELAY = 57776 -const EXPORT = 57777 -const AVG_ROW_LENGTH = 57778 -const CONNECTION = 57779 -const CHECKSUM = 57780 -const DELAY_KEY_WRITE = 57781 -const ENCRYPTION = 57782 -const ENGINE = 57783 -const INSERT_METHOD = 57784 -const MAX_ROWS = 57785 -const MIN_ROWS = 57786 -const PACK_KEYS = 57787 -const PASSWORD = 57788 -const FIXED = 57789 -const DYNAMIC = 57790 -const COMPRESSED = 57791 -const REDUNDANT = 57792 -const COMPACT = 57793 -const ROW_FORMAT = 57794 -const STATS_AUTO_RECALC = 57795 -const STATS_PERSISTENT = 57796 -const STATS_SAMPLE_PAGES = 57797 -const STORAGE = 57798 -const MEMORY = 57799 -const DISK = 57800 +const GENERATED = 57381 +const ALWAYS = 57382 +const OUTFILE = 57383 +const S3 = 57384 +const DATA = 57385 +const LOAD = 57386 +const LINES = 57387 +const TERMINATED = 57388 +const ESCAPED = 57389 +const ENCLOSED = 57390 +const DUMPFILE = 57391 +const CSV = 57392 +const HEADER = 57393 +const MANIFEST = 57394 +const OVERWRITE = 57395 +const STARTING = 57396 +const OPTIONALLY = 57397 +const VALUES = 57398 +const LAST_INSERT_ID = 57399 +const NEXT = 57400 +const VALUE = 57401 +const SHARE = 57402 +const MODE = 57403 +const SQL_NO_CACHE = 57404 +const SQL_CACHE = 57405 +const SQL_CALC_FOUND_ROWS = 57406 +const JOIN = 57407 +const STRAIGHT_JOIN = 57408 +const LEFT = 57409 +const RIGHT = 57410 +const INNER = 57411 +const OUTER = 57412 +const CROSS = 57413 +const NATURAL = 57414 +const USE = 57415 +const FORCE = 57416 +const ON = 57417 +const USING = 57418 +const INPLACE = 57419 +const COPY = 57420 +const ALGORITHM = 57421 +const NONE = 57422 +const SHARED = 57423 +const EXCLUSIVE = 57424 +const ID = 57425 +const AT_ID = 57426 +const AT_AT_ID = 57427 +const HEX = 57428 +const STRING = 57429 +const INTEGRAL = 57430 +const FLOAT = 57431 +const HEXNUM = 57432 +const VALUE_ARG = 57433 +const LIST_ARG = 57434 +const COMMENT = 57435 +const COMMENT_KEYWORD = 57436 +const BIT_LITERAL = 57437 +const COMPRESSION = 57438 +const NULL = 57439 +const TRUE = 57440 +const FALSE = 57441 +const OFF = 57442 +const DISCARD = 57443 +const IMPORT = 57444 +const ENABLE = 57445 +const DISABLE = 57446 +const TABLESPACE = 57447 +const OR = 57448 +const XOR = 57449 +const AND = 57450 +const NOT = 57451 +const BETWEEN = 57452 +const CASE = 57453 +const WHEN = 57454 +const THEN = 57455 +const ELSE = 57456 +const END = 57457 +const LE = 57458 +const GE = 57459 +const NE = 57460 +const NULL_SAFE_EQUAL = 57461 +const IS = 57462 +const LIKE = 57463 +const REGEXP = 57464 +const IN = 57465 +const SHIFT_LEFT = 57466 +const SHIFT_RIGHT = 57467 +const DIV = 57468 +const MOD = 57469 +const UNARY = 57470 +const COLLATE = 57471 +const BINARY = 57472 +const UNDERSCORE_BINARY = 57473 +const UNDERSCORE_UTF8MB4 = 57474 +const UNDERSCORE_UTF8 = 57475 +const UNDERSCORE_LATIN1 = 57476 +const INTERVAL = 57477 +const JSON_EXTRACT_OP = 57478 +const JSON_UNQUOTE_EXTRACT_OP = 57479 +const CREATE = 57480 +const ALTER = 57481 +const DROP = 57482 +const RENAME = 57483 +const ANALYZE = 57484 +const ADD = 57485 +const FLUSH = 57486 +const CHANGE = 57487 +const MODIFY = 57488 +const REVERT = 57489 +const SCHEMA = 57490 +const TABLE = 57491 +const INDEX = 57492 +const VIEW = 57493 +const TO = 57494 +const IGNORE = 57495 +const IF = 57496 +const UNIQUE = 57497 +const PRIMARY = 57498 +const COLUMN = 57499 +const SPATIAL = 57500 +const FULLTEXT = 57501 +const KEY_BLOCK_SIZE = 57502 +const CHECK = 57503 +const INDEXES = 57504 +const ACTION = 57505 +const CASCADE = 57506 +const CONSTRAINT = 57507 +const FOREIGN = 57508 +const NO = 57509 +const REFERENCES = 57510 +const RESTRICT = 57511 +const SHOW = 57512 +const DESCRIBE = 57513 +const EXPLAIN = 57514 +const DATE = 57515 +const ESCAPE = 57516 +const REPAIR = 57517 +const OPTIMIZE = 57518 +const TRUNCATE = 57519 +const COALESCE = 57520 +const EXCHANGE = 57521 +const REBUILD = 57522 +const PARTITIONING = 57523 +const REMOVE = 57524 +const MAXVALUE = 57525 +const PARTITION = 57526 +const REORGANIZE = 57527 +const LESS = 57528 +const THAN = 57529 +const PROCEDURE = 57530 +const TRIGGER = 57531 +const VINDEX = 57532 +const VINDEXES = 57533 +const DIRECTORY = 57534 +const NAME = 57535 +const UPGRADE = 57536 +const STATUS = 57537 +const VARIABLES = 57538 +const WARNINGS = 57539 +const CASCADED = 57540 +const DEFINER = 57541 +const OPTION = 57542 +const SQL = 57543 +const UNDEFINED = 57544 +const SEQUENCE = 57545 +const MERGE = 57546 +const TEMPORARY = 57547 +const TEMPTABLE = 57548 +const INVOKER = 57549 +const SECURITY = 57550 +const FIRST = 57551 +const AFTER = 57552 +const LAST = 57553 +const VITESS_MIGRATION = 57554 +const CANCEL = 57555 +const RETRY = 57556 +const COMPLETE = 57557 +const BEGIN = 57558 +const START = 57559 +const TRANSACTION = 57560 +const COMMIT = 57561 +const ROLLBACK = 57562 +const SAVEPOINT = 57563 +const RELEASE = 57564 +const WORK = 57565 +const BIT = 57566 +const TINYINT = 57567 +const SMALLINT = 57568 +const MEDIUMINT = 57569 +const INT = 57570 +const INTEGER = 57571 +const BIGINT = 57572 +const INTNUM = 57573 +const REAL = 57574 +const DOUBLE = 57575 +const FLOAT_TYPE = 57576 +const DECIMAL = 57577 +const NUMERIC = 57578 +const TIME = 57579 +const TIMESTAMP = 57580 +const DATETIME = 57581 +const YEAR = 57582 +const CHAR = 57583 +const VARCHAR = 57584 +const BOOL = 57585 +const CHARACTER = 57586 +const VARBINARY = 57587 +const NCHAR = 57588 +const TEXT = 57589 +const TINYTEXT = 57590 +const MEDIUMTEXT = 57591 +const LONGTEXT = 57592 +const BLOB = 57593 +const TINYBLOB = 57594 +const MEDIUMBLOB = 57595 +const LONGBLOB = 57596 +const JSON = 57597 +const ENUM = 57598 +const GEOMETRY = 57599 +const POINT = 57600 +const LINESTRING = 57601 +const POLYGON = 57602 +const GEOMETRYCOLLECTION = 57603 +const MULTIPOINT = 57604 +const MULTILINESTRING = 57605 +const MULTIPOLYGON = 57606 +const NULLX = 57607 +const AUTO_INCREMENT = 57608 +const APPROXNUM = 57609 +const SIGNED = 57610 +const UNSIGNED = 57611 +const ZEROFILL = 57612 +const CODE = 57613 +const COLLATION = 57614 +const COLUMNS = 57615 +const DATABASES = 57616 +const ENGINES = 57617 +const EVENT = 57618 +const EXTENDED = 57619 +const FIELDS = 57620 +const FULL = 57621 +const FUNCTION = 57622 +const GTID_EXECUTED = 57623 +const KEYSPACES = 57624 +const OPEN = 57625 +const PLUGINS = 57626 +const PRIVILEGES = 57627 +const PROCESSLIST = 57628 +const SCHEMAS = 57629 +const TABLES = 57630 +const TRIGGERS = 57631 +const USER = 57632 +const VGTID_EXECUTED = 57633 +const VITESS_KEYSPACES = 57634 +const VITESS_METADATA = 57635 +const VITESS_MIGRATIONS = 57636 +const VITESS_SHARDS = 57637 +const VITESS_TABLETS = 57638 +const VSCHEMA = 57639 +const NAMES = 57640 +const CHARSET = 57641 +const GLOBAL = 57642 +const SESSION = 57643 +const ISOLATION = 57644 +const LEVEL = 57645 +const READ = 57646 +const WRITE = 57647 +const ONLY = 57648 +const REPEATABLE = 57649 +const COMMITTED = 57650 +const UNCOMMITTED = 57651 +const SERIALIZABLE = 57652 +const CURRENT_TIMESTAMP = 57653 +const DATABASE = 57654 +const CURRENT_DATE = 57655 +const CURRENT_TIME = 57656 +const LOCALTIME = 57657 +const LOCALTIMESTAMP = 57658 +const CURRENT_USER = 57659 +const UTC_DATE = 57660 +const UTC_TIME = 57661 +const UTC_TIMESTAMP = 57662 +const REPLACE = 57663 +const CONVERT = 57664 +const CAST = 57665 +const SUBSTR = 57666 +const SUBSTRING = 57667 +const GROUP_CONCAT = 57668 +const SEPARATOR = 57669 +const TIMESTAMPADD = 57670 +const TIMESTAMPDIFF = 57671 +const MATCH = 57672 +const AGAINST = 57673 +const BOOLEAN = 57674 +const LANGUAGE = 57675 +const WITH = 57676 +const QUERY = 57677 +const EXPANSION = 57678 +const WITHOUT = 57679 +const VALIDATION = 57680 +const UNUSED = 57681 +const ARRAY = 57682 +const CUME_DIST = 57683 +const DESCRIPTION = 57684 +const DENSE_RANK = 57685 +const EMPTY = 57686 +const EXCEPT = 57687 +const FIRST_VALUE = 57688 +const GROUPING = 57689 +const GROUPS = 57690 +const JSON_TABLE = 57691 +const LAG = 57692 +const LAST_VALUE = 57693 +const LATERAL = 57694 +const LEAD = 57695 +const MEMBER = 57696 +const NTH_VALUE = 57697 +const NTILE = 57698 +const OF = 57699 +const OVER = 57700 +const PERCENT_RANK = 57701 +const RANK = 57702 +const RECURSIVE = 57703 +const ROW_NUMBER = 57704 +const SYSTEM = 57705 +const WINDOW = 57706 +const ACTIVE = 57707 +const ADMIN = 57708 +const BUCKETS = 57709 +const CLONE = 57710 +const COMPONENT = 57711 +const DEFINITION = 57712 +const ENFORCED = 57713 +const EXCLUDE = 57714 +const FOLLOWING = 57715 +const GEOMCOLLECTION = 57716 +const GET_MASTER_PUBLIC_KEY = 57717 +const HISTOGRAM = 57718 +const HISTORY = 57719 +const INACTIVE = 57720 +const INVISIBLE = 57721 +const LOCKED = 57722 +const MASTER_COMPRESSION_ALGORITHMS = 57723 +const MASTER_PUBLIC_KEY_PATH = 57724 +const MASTER_TLS_CIPHERSUITES = 57725 +const MASTER_ZSTD_COMPRESSION_LEVEL = 57726 +const NESTED = 57727 +const NETWORK_NAMESPACE = 57728 +const NOWAIT = 57729 +const NULLS = 57730 +const OJ = 57731 +const OLD = 57732 +const OPTIONAL = 57733 +const ORDINALITY = 57734 +const ORGANIZATION = 57735 +const OTHERS = 57736 +const PATH = 57737 +const PERSIST = 57738 +const PERSIST_ONLY = 57739 +const PRECEDING = 57740 +const PRIVILEGE_CHECKS_USER = 57741 +const PROCESS = 57742 +const RANDOM = 57743 +const REFERENCE = 57744 +const REQUIRE_ROW_FORMAT = 57745 +const RESOURCE = 57746 +const RESPECT = 57747 +const RESTART = 57748 +const RETAIN = 57749 +const REUSE = 57750 +const ROLE = 57751 +const SECONDARY = 57752 +const SECONDARY_ENGINE = 57753 +const SECONDARY_LOAD = 57754 +const SECONDARY_UNLOAD = 57755 +const SKIP = 57756 +const SRID = 57757 +const THREAD_PRIORITY = 57758 +const TIES = 57759 +const UNBOUNDED = 57760 +const VCPU = 57761 +const VISIBLE = 57762 +const FORMAT = 57763 +const TREE = 57764 +const VITESS = 57765 +const TRADITIONAL = 57766 +const LOCAL = 57767 +const LOW_PRIORITY = 57768 +const NO_WRITE_TO_BINLOG = 57769 +const LOGS = 57770 +const ERROR = 57771 +const GENERAL = 57772 +const HOSTS = 57773 +const OPTIMIZER_COSTS = 57774 +const USER_RESOURCES = 57775 +const SLOW = 57776 +const CHANNEL = 57777 +const RELAY = 57778 +const EXPORT = 57779 +const AVG_ROW_LENGTH = 57780 +const CONNECTION = 57781 +const CHECKSUM = 57782 +const DELAY_KEY_WRITE = 57783 +const ENCRYPTION = 57784 +const ENGINE = 57785 +const INSERT_METHOD = 57786 +const MAX_ROWS = 57787 +const MIN_ROWS = 57788 +const PACK_KEYS = 57789 +const PASSWORD = 57790 +const FIXED = 57791 +const DYNAMIC = 57792 +const COMPRESSED = 57793 +const REDUNDANT = 57794 +const COMPACT = 57795 +const ROW_FORMAT = 57796 +const STATS_AUTO_RECALC = 57797 +const STATS_PERSISTENT = 57798 +const STATS_SAMPLE_PAGES = 57799 +const STORAGE = 57800 +const MEMORY = 57801 +const DISK = 57802 var yyToknames = [...]string{ "$end", @@ -540,6 +542,8 @@ var yyToknames = [...]string{ "CALL", "DISTINCTROW", "PARSER", + "GENERATED", + "ALWAYS", "OUTFILE", "S3", "DATA", @@ -993,2957 +997,2974 @@ var yyExca = [...]int{ -2, 0, -1, 45, 1, 112, - 476, 112, + 478, 112, -2, 118, -1, 46, - 143, 118, - 259, 118, - 314, 118, - -2, 327, + 145, 118, + 261, 118, + 316, 118, + -2, 329, -1, 53, - 34, 475, - 165, 475, - 177, 475, - 210, 489, - 211, 489, - -2, 477, + 34, 477, + 167, 477, + 179, 477, + 212, 491, + 213, 491, + -2, 479, -1, 58, - 167, 499, - -2, 497, + 169, 501, + -2, 499, -1, 84, - 56, 567, - -2, 575, + 58, 569, + -2, 577, -1, 97, - 164, 937, + 166, 939, -2, 91, -1, 99, 1, 113, - 476, 113, + 478, 113, -2, 118, -1, 109, - 170, 232, - 171, 232, - -2, 321, + 172, 234, + 173, 234, + -2, 323, -1, 128, - 143, 118, - 259, 118, - 314, 118, - -2, 336, - -1, 563, - 150, 958, - -2, 954, + 145, 118, + 261, 118, + 316, 118, + -2, 338, -1, 564, - 150, 959, - -2, 955, - -1, 583, - 56, 568, - -2, 580, + 152, 960, + -2, 956, + -1, 565, + 152, 961, + -2, 957, -1, 584, - 56, 569, - -2, 581, - -1, 605, - 118, 1303, - -2, 84, + 58, 570, + -2, 582, + -1, 585, + 58, 571, + -2, 583, -1, 606, - 118, 1184, + 120, 1307, + -2, 84, + -1, 607, + 120, 1188, -2, 85, - -1, 612, - 118, 1235, - -2, 931, - -1, 750, - 118, 1121, - -2, 928, - -1, 786, - 176, 38, - 181, 38, - -2, 243, - -1, 863, - 1, 374, - 476, 374, + -1, 613, + 120, 1239, + -2, 933, + -1, 752, + 120, 1125, + -2, 930, + -1, 788, + 178, 38, + 183, 38, + -2, 245, + -1, 865, + 1, 376, + 478, 376, -2, 118, - -1, 1104, - 1, 270, - 476, 270, + -1, 1106, + 1, 272, + 478, 272, -2, 118, - -1, 1180, - 170, 232, - 171, 232, - -2, 321, - -1, 1189, - 176, 39, - 181, 39, - -2, 244, - -1, 1397, - 150, 963, - -2, 957, - -1, 1490, - 74, 66, - 82, 66, + -1, 1182, + 172, 234, + 173, 234, + -2, 323, + -1, 1191, + 178, 39, + 183, 39, + -2, 246, + -1, 1399, + 152, 965, + -2, 959, + -1, 1492, + 76, 66, + 84, 66, -2, 70, - -1, 1511, - 1, 271, - 476, 271, + -1, 1513, + 1, 273, + 478, 273, -2, 118, - -1, 1935, - 5, 824, - 18, 824, - 20, 824, - 32, 824, - 83, 824, - -2, 607, - -1, 2161, - 46, 899, - -2, 893, + -1, 1520, + 23, 136, + -2, 135, + -1, 1938, + 5, 826, + 18, 826, + 20, 826, + 32, 826, + 85, 826, + -2, 609, + -1, 2166, + 48, 901, + -2, 895, } const yyPrivate = 57344 -const yyLast = 28227 +const yyLast = 28368 var yyAct = [...]int{ - 563, 2255, 2246, 2086, 2201, 2188, 1993, 2139, 2214, 2111, - 2162, 83, 3, 1727, 1694, 1576, 535, 1812, 1915, 2083, - 1508, 1916, 1005, 1434, 1792, 1059, 1714, 1052, 1728, 521, - 506, 1912, 1161, 1541, 1855, 1816, 1561, 504, 1546, 816, - 1794, 137, 1793, 1487, 501, 1927, 923, 1874, 1295, 165, - 1391, 1086, 165, 753, 469, 165, 1654, 1187, 874, 81, - 485, 1574, 165, 1383, 1607, 610, 123, 576, 1548, 903, - 165, 1096, 1786, 781, 1469, 1476, 1089, 1057, 1560, 585, - 1526, 1079, 1436, 1082, 1062, 1044, 1360, 1417, 497, 33, - 570, 1394, 485, 1080, 941, 485, 165, 485, 1292, 784, - 508, 1558, 757, 760, 1278, 1194, 761, 787, 794, 1537, - 1452, 782, 783, 1095, 79, 1093, 1492, 1069, 1205, 1527, - 140, 100, 859, 101, 106, 8, 1018, 7, 6, 78, - 1156, 1835, 1834, 1300, 1021, 1605, 1264, 1862, 607, 921, - 107, 492, 1863, 2113, 167, 168, 169, 1431, 1432, 1349, - 1348, 1347, 1346, 1345, 1344, 1179, 1337, 167, 168, 169, - 495, 1692, 496, 2228, 2158, 818, 102, 769, 754, 571, - 821, 592, 596, 444, 764, 2062, 1962, 942, 832, 833, - 2135, 836, 837, 838, 839, 2134, 820, 842, 843, 844, - 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, - 855, 856, 108, 2081, 819, 493, 2082, 604, 2254, 2211, - 797, 611, 1553, 2249, 2183, 1644, 84, 461, 2242, 798, - 102, 775, 776, 774, 80, 2087, 460, 1593, 2210, 822, - 823, 824, 2026, 1551, 1891, 2182, 35, 458, 942, 72, - 39, 40, 1170, 952, 1842, 829, 1758, 161, 1841, 1757, - 1503, 1504, 1759, 86, 87, 88, 89, 90, 91, 1693, - 834, 97, 1941, 773, 162, 868, 869, 439, 1861, 1433, - 862, 1097, 103, 1098, 125, 1642, 455, 1493, 1942, 1943, - 167, 168, 169, 145, 102, 467, 1502, 569, 473, 835, - 2148, 967, 966, 976, 977, 969, 970, 971, 972, 973, - 974, 975, 968, 881, 952, 978, 893, 919, 882, 567, - 566, 71, 777, 1550, 135, 894, 880, 887, 879, 124, - 771, 1776, 1520, 1338, 1339, 1340, 898, 899, 2017, 881, - 858, 2015, 473, 948, 882, 2185, 940, 142, 1336, 143, - 1995, 483, 481, 472, 112, 113, 134, 133, 160, 487, - 1618, 1616, 1617, 1284, 1048, 1817, 773, 857, 1575, 1838, - 445, 1989, 447, 462, 1608, 475, 2248, 474, 451, 1990, - 449, 453, 463, 454, 1620, 448, 1621, 459, 1622, 916, - 450, 464, 465, 479, 478, 466, 1613, 472, 457, 476, - 2229, 895, 1279, 888, 948, 902, 129, 110, 136, 117, - 109, 770, 130, 131, 918, 473, 548, 146, 554, 555, - 552, 553, 900, 551, 550, 549, 1996, 151, 118, 1254, - 861, 864, 901, 556, 557, 896, 897, 772, 473, 1850, - 1623, 841, 121, 119, 114, 115, 116, 120, 840, 165, - 1614, 165, 111, 1997, 165, 1612, 1610, 2131, 2076, 1577, - 796, 122, 1961, 1470, 805, 473, 910, 773, 912, 765, - 472, 1255, 914, 1256, 768, 814, 813, 767, 766, 812, - 485, 485, 485, 811, 810, 809, 947, 944, 945, 946, - 951, 953, 950, 472, 949, 803, 1611, 1552, 485, 485, - 808, 943, 1840, 1285, 807, 909, 911, 802, 778, 1173, - 815, 934, 2132, 915, 877, 860, 883, 884, 885, 886, - 472, 2149, 2181, 477, 771, 2261, 796, 758, 2240, 796, - 772, 1875, 790, 138, 789, 758, 1493, 920, 1854, 756, - 758, 470, 1193, 1192, 1293, 917, 1559, 947, 944, 945, - 946, 951, 953, 950, 1643, 949, 471, 806, 598, 2186, - 1851, 1599, 943, 1289, 992, 993, 994, 995, 996, 997, - 998, 999, 1000, 1001, 928, 1877, 73, 165, 2202, 825, - 1266, 1265, 1267, 1268, 1269, 594, 1969, 891, 804, 132, - 1837, 796, 1768, 907, 1050, 1900, 795, 908, 1773, 1767, - 878, 126, 799, 789, 127, 485, 1049, 913, 165, 1899, - 165, 165, 800, 485, 988, 1898, 1168, 870, 1167, 485, - 925, 926, 1695, 1697, 867, 937, 796, 935, 936, 906, - 801, 772, 2259, 1857, 1166, 1857, 1006, 1879, 1856, 1883, - 1856, 1878, 1769, 1876, 831, 1827, 1290, 1164, 1881, 443, - 796, 498, 438, 1078, 1673, 99, 2169, 1880, 1849, 607, - 1045, 1848, 795, 1670, 1771, 795, 1595, 1765, 799, 789, - 1882, 1884, 789, 792, 793, 1063, 758, 2046, 800, 1766, - 786, 790, 990, 991, 1061, 1020, 1023, 1025, 1027, 1028, - 1030, 1032, 1033, 1940, 1024, 1026, 1719, 1029, 1031, 785, - 1034, 1509, 1283, 978, 1662, 139, 144, 141, 147, 148, - 149, 150, 152, 153, 154, 155, 1585, 1042, 890, 1696, - 1498, 156, 157, 158, 159, 1073, 1003, 795, 872, 1754, - 892, 968, 611, 904, 978, 1301, 1448, 955, 958, 1774, - 1772, 967, 966, 976, 977, 969, 970, 971, 972, 973, - 974, 975, 968, 958, 94, 978, 167, 168, 169, 1332, - 1385, 2177, 795, 165, 957, 955, 817, 1157, 1925, 789, - 792, 793, 1609, 758, 876, 1286, 1165, 786, 790, 1099, - 2257, 958, 1280, 2258, 1281, 2256, 795, 1282, 830, 938, - 1594, 1893, 1367, 990, 991, 485, 1418, 1189, 1680, 95, - 1051, 1655, 990, 991, 1418, 1198, 1365, 1366, 1364, 1202, - 1805, 1592, 485, 485, 1590, 485, 1386, 485, 485, 863, - 485, 485, 485, 485, 485, 485, 1171, 1172, 971, 972, - 973, 974, 975, 968, 1587, 485, 978, 1587, 1199, 165, - 1238, 167, 168, 169, 1945, 1781, 805, 803, 1185, 905, - 1770, 1302, 2243, 71, 2234, 1251, 1066, 1178, 1591, 1668, - 2262, 1589, 1197, 1233, 1234, 1363, 485, 1667, 165, 976, - 977, 969, 970, 971, 972, 973, 974, 975, 968, 1291, - 2244, 978, 2235, 165, 1241, 1242, 1450, 875, 1235, 2061, - 1247, 1248, 956, 957, 955, 2060, 1163, 1967, 1094, 165, - 1790, 1782, 1647, 1648, 1649, 1789, 165, 1556, 1274, 1196, - 958, 1195, 1195, 1259, 1176, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 485, 485, 485, 1188, 2263, 1258, - 1174, 1207, 1273, 1208, 1271, 1210, 1212, 1257, 1249, 1216, - 1218, 1220, 1222, 1224, 1243, 1175, 597, 1240, 1297, 1449, - 1239, 165, 1355, 1357, 1358, 1236, 1305, 1261, 1214, 1303, - 1304, 1453, 1454, 1309, 1356, 1311, 1312, 1313, 1314, 956, - 957, 955, 1318, 1308, 956, 957, 955, 1895, 2238, 1294, - 1315, 1316, 1317, 956, 957, 955, 1333, 958, 1361, 1384, - 602, 1272, 958, 1270, 102, 775, 1169, 774, 1387, 2237, - 1902, 958, 1343, 969, 970, 971, 972, 973, 974, 975, - 968, 2236, 485, 978, 2222, 1359, 1260, 2220, 1368, 1369, - 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, - 1380, 1381, 1382, 1307, 1669, 2102, 599, 600, 1388, 1389, - 2058, 2034, 1401, 956, 957, 955, 485, 485, 1903, 1791, - 1949, 1904, 1406, 1409, 167, 168, 169, 165, 1419, 1799, - 1395, 958, 1396, 1328, 1329, 1330, 167, 168, 169, 1787, - 1761, 485, 1362, 956, 957, 955, 1638, 1421, 165, 1397, - 1441, 485, 1603, 1602, 1442, 165, 959, 165, 1298, 1006, - 1262, 958, 1250, 1246, 1245, 165, 165, 1244, 1992, 1425, - 1426, 580, 485, 1976, 2239, 485, 1488, 1976, 2208, 1402, - 1403, 1976, 2175, 1408, 1411, 1412, 485, 2129, 956, 957, - 955, 2128, 498, 1924, 167, 168, 169, 1443, 1569, 1398, - 1395, 1016, 1467, 1976, 2170, 80, 958, 1455, 2085, 1424, - 1976, 580, 1427, 1428, 2079, 580, 1819, 1491, 607, 1397, - 1802, 607, 1517, 1463, 2041, 1521, 1512, 1522, 1523, 1524, - 1525, 1976, 2077, 1055, 1058, 2176, 167, 168, 169, 1513, - 1567, 485, 954, 1533, 1534, 1535, 1536, 1562, 1563, 1564, - 1587, 580, 1566, 1568, 580, 35, 167, 168, 169, 1516, - 1252, 2044, 580, 1959, 1958, 485, 1955, 1956, 1465, 1543, - 82, 485, 1198, 1955, 1954, 1198, 1549, 1198, 1461, 580, - 1528, 1529, 1530, 580, 1496, 1586, 1500, 1499, 1493, 1836, - 35, 611, 1160, 1821, 611, 1814, 1815, 1515, 1514, 1588, - 967, 966, 976, 977, 969, 970, 971, 972, 973, 974, - 975, 968, 1473, 580, 978, 485, 1472, 1384, 1573, 954, - 580, 1715, 1384, 1384, 1160, 1159, 1105, 1104, 1913, 1580, - 71, 573, 1583, 1976, 1584, 1715, 1461, 1924, 2118, 1544, - 1957, 1494, 1539, 1540, 2029, 1748, 1473, 1554, 1557, 1501, - 1685, 1565, 1555, 1493, 1587, 1462, 1684, 165, 1461, 35, - 1587, 1494, 1570, 797, 165, 71, 1796, 1473, 1596, 165, - 165, 1544, 798, 165, 1579, 165, 1578, 1597, 564, 1582, - 1598, 165, 1195, 1451, 1722, 1600, 1601, 2063, 165, 1429, - 1473, 967, 966, 976, 977, 969, 970, 971, 972, 973, - 974, 975, 968, 1495, 1924, 978, 71, 1723, 1606, 1229, - 2023, 1497, 862, 1341, 1288, 165, 485, 524, 523, 526, - 527, 528, 529, 1495, 1091, 1461, 525, 166, 530, 780, - 166, 1493, 779, 166, 71, 2064, 2065, 2066, 486, 2200, - 166, 71, 1633, 1634, 2141, 1060, 2028, 1636, 166, 2084, - 2052, 1162, 1542, 1991, 1822, 1538, 1637, 1230, 1231, 1232, - 2067, 1361, 1532, 1531, 1276, 1190, 1186, 1158, 96, 1626, - 486, 1994, 1795, 486, 166, 486, 966, 976, 977, 969, - 970, 971, 972, 973, 974, 975, 968, 1928, 1929, 978, - 1651, 1652, 1653, 967, 966, 976, 977, 969, 970, 971, - 972, 973, 974, 975, 968, 2068, 2069, 978, 2142, 1553, - 165, 2251, 2247, 1934, 1226, 1974, 1641, 1796, 165, 967, - 966, 976, 977, 969, 970, 971, 972, 973, 974, 975, - 968, 1650, 1299, 978, 1478, 1481, 1482, 1483, 1479, 1973, - 1480, 1484, 1972, 165, 1933, 1362, 1931, 1913, 1806, 1664, - 1627, 1701, 1334, 1736, 165, 165, 165, 165, 165, 1227, - 1228, 1724, 1739, 1708, 1659, 1660, 165, 1740, 571, 1663, - 165, 1737, 1735, 165, 165, 1720, 1738, 165, 165, 165, - 2231, 1746, 2209, 1729, 1679, 1677, 1717, 1905, 1704, 1741, - 1760, 1482, 1483, 1045, 2045, 1691, 2163, 2165, 1979, 1713, - 1699, 1712, 2233, 2213, 2215, 2166, 2190, 1702, 1780, 1707, - 1350, 1351, 1352, 1353, 2189, 1703, 1749, 2193, 2160, 1287, - 1751, 565, 1800, 1718, 827, 826, 1716, 1779, 1414, 1783, - 1784, 1785, 2004, 1763, 485, 1730, 1795, 1860, 1733, 165, - 1742, 927, 1829, 1415, 1297, 1747, 165, 1053, 1731, 1732, - 1828, 1734, 485, 1755, 1752, 103, 1446, 2116, 485, 1054, - 1951, 1950, 1581, 1198, 1549, 1404, 1405, 1764, 485, 1204, - 1798, 1478, 1481, 1482, 1483, 1479, 1203, 1480, 1484, 1191, - 1833, 1928, 1929, 1777, 1778, 1788, 1818, 2039, 1970, 590, - 586, 165, 165, 165, 165, 165, 1797, 1453, 1454, 1832, - 1630, 2171, 1803, 498, 2136, 587, 1486, 165, 165, 574, - 575, 1711, 1824, 1831, 1396, 1619, 1646, 1178, 577, 1710, - 1823, 1807, 1808, 1809, 590, 586, 2221, 2219, 1064, 1065, - 589, 1397, 588, 2218, 2194, 2192, 2038, 1975, 1830, 1571, - 587, 578, 82, 485, 2037, 1908, 1715, 2253, 2252, 1384, - 1674, 1671, 1074, 1067, 1420, 1507, 2253, 2167, 1852, 1948, - 1447, 573, 80, 583, 584, 589, 85, 588, 77, 1872, - 1, 456, 1873, 1430, 1043, 468, 2245, 1263, 1253, 485, - 1866, 1867, 1858, 1892, 2088, 1859, 2138, 1982, 1864, 1871, - 165, 1547, 1870, 788, 128, 1887, 1888, 1886, 1889, 1890, - 485, 1510, 1511, 2204, 93, 751, 485, 485, 92, 1896, - 1897, 791, 1885, 889, 1545, 1572, 1914, 166, 2080, 166, - 1917, 1775, 166, 1519, 1111, 1109, 1110, 1108, 1113, 165, - 1112, 1107, 1335, 1729, 1923, 482, 1485, 163, 579, 1100, - 1068, 828, 446, 1960, 1331, 1604, 1871, 452, 486, 486, - 486, 986, 1709, 1756, 1936, 608, 1938, 601, 1939, 1932, - 1919, 2187, 2159, 2161, 2112, 2164, 486, 486, 1911, 2157, - 2232, 2212, 1937, 1518, 1445, 1056, 2036, 1907, 1952, 1953, - 1678, 1968, 1015, 1416, 1944, 1083, 507, 165, 1440, 1354, - 2022, 522, 1946, 1947, 519, 485, 520, 1901, 1456, 1721, - 960, 505, 499, 485, 1075, 1477, 1475, 1474, 165, 1628, - 1087, 1930, 1926, 1081, 1963, 1965, 1966, 1964, 165, 1460, - 1981, 1839, 1983, 1988, 533, 1922, 939, 582, 1978, 494, - 763, 1413, 165, 2147, 1645, 165, 2025, 581, 1549, 61, - 1980, 38, 489, 2227, 2005, 166, 1986, 1985, 1977, 930, - 591, 32, 31, 30, 29, 28, 23, 22, 2000, 21, - 20, 19, 25, 18, 17, 16, 98, 1999, 48, 45, - 2021, 43, 105, 486, 104, 46, 166, 42, 166, 166, - 865, 486, 27, 26, 484, 15, 14, 486, 2010, 2011, - 2006, 2012, 13, 2013, 2014, 12, 2016, 2002, 2003, 967, - 966, 976, 977, 969, 970, 971, 972, 973, 974, 975, - 968, 11, 10, 978, 9, 5, 609, 4, 933, 755, - 2008, 762, 24, 1004, 2, 0, 2040, 0, 0, 2048, - 0, 0, 0, 2049, 0, 1729, 0, 0, 0, 0, - 0, 0, 2054, 0, 2055, 0, 0, 0, 0, 0, - 165, 0, 0, 165, 165, 165, 485, 485, 2056, 0, - 0, 0, 0, 0, 2035, 0, 0, 0, 0, 0, - 0, 0, 0, 2074, 1681, 2089, 485, 485, 485, 967, - 966, 976, 977, 969, 970, 971, 972, 973, 974, 975, - 968, 0, 2095, 978, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1705, 1706, 1058, 0, 0, - 0, 485, 485, 485, 165, 2057, 2093, 2059, 0, 0, - 0, 0, 0, 0, 0, 485, 0, 485, 2105, 2107, - 2108, 166, 0, 485, 0, 2119, 0, 2109, 1917, 0, - 0, 2115, 1917, 2117, 2121, 2096, 2097, 2098, 2099, 2100, - 2124, 0, 0, 2103, 2104, 0, 0, 0, 2126, 0, - 2127, 0, 0, 486, 0, 485, 0, 0, 485, 0, - 2130, 0, 2094, 2101, 0, 2133, 0, 0, 0, 0, - 486, 486, 2137, 486, 0, 486, 486, 0, 486, 486, - 486, 486, 486, 486, 0, 2110, 2123, 0, 0, 0, - 0, 0, 2125, 486, 2156, 0, 0, 166, 0, 0, - 0, 0, 0, 165, 2140, 1917, 0, 2168, 0, 0, - 0, 0, 485, 165, 0, 0, 0, 0, 2174, 2020, - 0, 0, 0, 0, 486, 0, 166, 0, 0, 2178, - 0, 0, 0, 0, 0, 0, 0, 2184, 0, 0, - 485, 166, 2191, 0, 0, 0, 0, 485, 485, 0, - 0, 2195, 0, 2197, 2203, 0, 0, 166, 0, 0, - 0, 0, 0, 2217, 166, 2216, 0, 0, 1729, 0, - 0, 485, 2223, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 486, 486, 486, 2230, 0, 2198, 2226, 0, - 0, 0, 0, 2140, 2205, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2241, 0, 0, 0, 0, 166, - 0, 0, 0, 0, 0, 0, 0, 0, 2250, 0, - 0, 0, 0, 0, 161, 2260, 1894, 0, 967, 966, - 976, 977, 969, 970, 971, 972, 973, 974, 975, 968, - 0, 0, 978, 0, 0, 0, 0, 0, 0, 103, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 145, 1909, 0, 0, 0, 0, 0, 0, 0, 0, - 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 609, 609, 609, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1762, 929, 931, 486, 486, 0, 0, 0, 0, - 0, 0, 0, 0, 142, 166, 143, 0, 0, 0, - 0, 161, 0, 0, 0, 160, 0, 0, 0, 486, - 0, 0, 0, 0, 0, 0, 166, 0, 0, 486, - 0, 0, 0, 166, 0, 166, 103, 0, 0, 0, - 0, 0, 0, 166, 166, 0, 0, 145, 0, 0, - 486, 0, 0, 486, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 486, 0, 1865, 0, 0, 0, - 0, 0, 0, 0, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 151, 0, 967, 966, 976, 977, - 969, 970, 971, 972, 973, 974, 975, 968, 0, 1071, - 978, 142, 0, 143, 0, 0, 0, 609, 0, 0, - 0, 0, 160, 1101, 0, 0, 0, 0, 0, 486, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2027, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 486, 0, 0, 0, 0, 0, 486, - 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 2050, 0, 0, 2051, 0, 0, 2053, 0, 0, - 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 151, 0, 0, 0, 0, 962, 0, 965, 0, - 138, 0, 0, 486, 979, 980, 981, 982, 983, 984, - 985, 0, 963, 964, 961, 967, 966, 976, 977, 969, - 970, 971, 972, 973, 974, 975, 968, 0, 0, 978, - 967, 966, 976, 977, 969, 970, 971, 972, 973, 974, - 975, 968, 0, 0, 978, 166, 0, 0, 0, 0, - 0, 0, 166, 0, 0, 0, 0, 166, 166, 0, - 0, 166, 0, 166, 0, 0, 0, 0, 0, 166, - 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, - 0, 0, 0, 2114, 498, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 138, 0, 755, - 0, 0, 0, 166, 486, 0, 0, 0, 0, 0, - 0, 0, 1200, 0, 0, 0, 1206, 1206, 0, 1206, - 0, 1206, 1206, 0, 1215, 1206, 1206, 1206, 1206, 1206, - 0, 1656, 0, 0, 0, 0, 0, 1200, 1200, 755, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1399, - 1400, 967, 966, 976, 977, 969, 970, 971, 972, 973, - 974, 975, 968, 0, 0, 978, 0, 0, 0, 0, - 1275, 0, 139, 144, 141, 147, 148, 149, 150, 152, - 153, 154, 155, 0, 0, 0, 0, 0, 156, 157, - 158, 159, 0, 0, 0, 1444, 0, 0, 166, 0, - 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 609, 609, - 609, 166, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 166, 166, 166, 166, 166, 0, 0, 0, - 0, 0, 0, 0, 166, 0, 0, 0, 166, 0, - 0, 166, 166, 0, 0, 166, 166, 166, 0, 139, + 564, 2260, 2251, 2091, 2206, 2193, 1997, 2144, 925, 2219, + 2167, 83, 3, 1729, 1696, 2116, 536, 1815, 1578, 2088, + 1918, 1510, 1007, 1919, 522, 1436, 1730, 1054, 1915, 1795, + 507, 1858, 1543, 505, 1528, 1548, 1819, 1796, 577, 818, + 1797, 755, 1489, 1061, 1930, 1385, 1877, 1163, 1563, 165, + 1393, 1656, 165, 1088, 470, 165, 1576, 1716, 876, 1297, + 486, 123, 165, 611, 1609, 1189, 1562, 1098, 1550, 905, + 165, 1789, 1091, 1471, 586, 1478, 1438, 81, 1059, 137, + 1064, 783, 1084, 1046, 509, 1419, 33, 1362, 498, 571, + 943, 1081, 486, 1294, 762, 486, 165, 486, 1082, 786, + 608, 1560, 1396, 1196, 1280, 1454, 784, 759, 763, 789, + 796, 785, 1539, 1097, 1494, 1095, 79, 1302, 1071, 1529, + 1207, 861, 106, 140, 1020, 923, 100, 101, 8, 7, + 1158, 6, 78, 1023, 1838, 1837, 1607, 1266, 1181, 107, + 493, 1865, 1866, 2118, 167, 168, 169, 1433, 1434, 1351, + 1350, 1349, 1348, 1347, 944, 1346, 496, 1339, 497, 2233, + 1694, 2163, 766, 1966, 771, 820, 572, 593, 597, 102, + 2067, 2140, 2139, 445, 2086, 822, 756, 2087, 834, 835, + 821, 838, 839, 840, 841, 108, 2259, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, + 857, 858, 2216, 84, 494, 2254, 2188, 605, 823, 80, + 799, 612, 944, 1555, 2247, 2092, 1595, 2215, 2187, 1646, + 954, 800, 778, 102, 1894, 2030, 777, 776, 1172, 824, + 825, 826, 35, 1695, 1553, 72, 39, 40, 1945, 1946, + 86, 87, 88, 89, 90, 91, 161, 831, 97, 1845, + 912, 162, 914, 1844, 440, 1944, 864, 1505, 1506, 549, + 836, 555, 556, 553, 554, 1504, 552, 551, 550, 1435, + 1099, 103, 1100, 125, 570, 1864, 557, 558, 954, 161, + 1644, 474, 1760, 1495, 145, 1759, 921, 102, 1761, 911, + 913, 167, 168, 169, 837, 895, 779, 568, 772, 567, + 775, 1779, 870, 871, 103, 1522, 900, 901, 896, 71, + 950, 889, 1999, 942, 1552, 135, 883, 145, 2190, 2021, + 124, 884, 2019, 595, 1340, 1341, 1342, 860, 883, 882, + 484, 881, 1256, 884, 1286, 1338, 473, 482, 142, 488, + 143, 1050, 775, 859, 1820, 112, 113, 134, 133, 160, + 1620, 1618, 1619, 1577, 775, 1993, 767, 773, 1764, 1841, + 1615, 770, 1610, 1994, 769, 768, 904, 2253, 950, 1281, + 918, 142, 866, 143, 1257, 1853, 1258, 909, 898, 899, + 1625, 910, 160, 920, 897, 843, 2234, 890, 2000, 499, + 842, 915, 902, 2081, 2001, 1612, 2136, 129, 110, 136, + 117, 109, 903, 130, 131, 1622, 863, 1623, 146, 1624, + 474, 773, 474, 908, 1616, 1579, 1775, 1769, 151, 118, + 1472, 816, 815, 814, 813, 812, 1777, 807, 1614, 805, + 811, 810, 809, 121, 119, 114, 115, 116, 120, 1965, + 165, 146, 165, 111, 804, 165, 780, 1175, 817, 2137, + 2266, 151, 122, 949, 946, 947, 948, 953, 955, 952, + 2245, 951, 1771, 916, 774, 473, 474, 473, 945, 1613, + 760, 486, 486, 486, 1287, 792, 760, 760, 893, 791, + 758, 1495, 1857, 1295, 1773, 1195, 1194, 1767, 1554, 486, + 486, 862, 798, 1697, 1699, 2186, 1561, 1843, 2264, 1768, + 599, 1854, 936, 917, 1601, 879, 774, 885, 886, 887, + 888, 949, 946, 947, 948, 953, 955, 952, 774, 951, + 808, 473, 806, 1878, 138, 833, 945, 1291, 922, 930, + 827, 798, 2191, 1973, 1840, 798, 919, 2153, 969, 968, + 978, 979, 971, 972, 973, 974, 975, 976, 977, 970, + 1645, 1903, 980, 1902, 1830, 2207, 1901, 138, 1170, 1776, + 1774, 1169, 1168, 99, 73, 1292, 1166, 1880, 165, 444, + 439, 2174, 798, 1268, 1267, 1269, 1270, 1271, 1860, 1860, + 132, 2050, 1597, 1859, 1859, 1052, 992, 993, 1943, 990, + 1698, 880, 126, 1721, 1664, 127, 486, 927, 928, 165, + 1675, 165, 165, 869, 486, 872, 1587, 1500, 1672, 1285, + 486, 892, 608, 1075, 1852, 1051, 798, 1851, 1005, 939, + 937, 874, 938, 894, 1008, 1511, 980, 1756, 798, 1882, + 797, 1886, 1334, 1881, 906, 1879, 878, 791, 794, 795, + 1884, 760, 1369, 1080, 1450, 788, 792, 960, 2262, 1883, + 1047, 2263, 970, 2261, 1896, 980, 1367, 1368, 1366, 2182, + 819, 1065, 1885, 1887, 787, 958, 959, 957, 1928, 797, + 1772, 832, 1611, 797, 1022, 1025, 1027, 1029, 1030, 1032, + 1034, 1035, 1303, 960, 1026, 1028, 1063, 1031, 1033, 1282, + 1036, 1283, 959, 957, 1284, 94, 139, 144, 141, 147, + 148, 149, 150, 152, 153, 154, 155, 1044, 1596, 960, + 797, 1288, 156, 157, 158, 159, 801, 791, 1101, 1420, + 167, 168, 169, 612, 1387, 940, 802, 865, 1808, 139, + 144, 141, 147, 148, 149, 150, 152, 153, 154, 155, + 95, 992, 993, 1594, 803, 156, 157, 158, 159, 992, + 993, 877, 907, 1592, 797, 165, 807, 1589, 2154, 1159, + 1794, 791, 794, 795, 1589, 760, 797, 957, 1167, 788, + 792, 805, 801, 791, 1420, 2248, 1682, 1671, 1053, 1948, + 1388, 1593, 802, 960, 958, 959, 957, 486, 1591, 1191, + 973, 974, 975, 976, 977, 970, 2267, 1200, 980, 71, + 1304, 1204, 960, 2249, 486, 486, 1068, 486, 1275, 486, + 486, 1365, 486, 486, 486, 486, 486, 486, 1173, 1174, + 167, 168, 169, 2066, 1784, 961, 2239, 486, 1187, 1273, + 1201, 165, 1240, 968, 978, 979, 971, 972, 973, 974, + 975, 976, 977, 970, 1180, 2243, 980, 1253, 2065, 958, + 959, 957, 1971, 1905, 2240, 1235, 1236, 1898, 486, 598, + 165, 499, 1199, 958, 959, 957, 2268, 960, 1237, 1274, + 1018, 1293, 1649, 1650, 1651, 165, 1243, 1244, 1263, 1096, + 1785, 960, 1249, 1250, 1455, 1456, 1793, 1165, 1792, 1670, + 1272, 165, 167, 168, 169, 1558, 1763, 1669, 165, 1198, + 1276, 1906, 1057, 1060, 1178, 1197, 1197, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 486, 486, 486, 1190, + 1177, 1176, 958, 959, 957, 1209, 1261, 1210, 1260, 1212, + 1214, 1259, 1422, 1218, 1220, 1222, 1224, 1226, 1299, 1262, + 960, 1251, 1245, 165, 1357, 1359, 1360, 1238, 1307, 600, + 601, 1305, 1306, 1242, 1241, 1311, 1358, 1313, 1314, 1315, + 1316, 1216, 2242, 2241, 1320, 1310, 1296, 2227, 958, 959, + 957, 603, 1317, 1318, 1319, 1171, 2225, 2107, 1335, 2063, + 1363, 1386, 2038, 167, 168, 169, 960, 1571, 1952, 102, + 1389, 1907, 777, 776, 1802, 1790, 1345, 525, 524, 527, + 528, 529, 530, 1640, 486, 1605, 526, 1604, 531, 1309, + 1444, 167, 168, 169, 1397, 1569, 580, 167, 168, 169, + 1300, 1254, 167, 168, 169, 1264, 1390, 1391, 978, 979, + 971, 972, 973, 974, 975, 976, 977, 970, 486, 486, + 980, 1330, 1331, 1332, 1408, 1411, 1452, 1252, 1364, 165, + 1421, 1248, 1403, 1247, 971, 972, 973, 974, 975, 976, + 977, 970, 1246, 486, 980, 1398, 1996, 1980, 2244, 1399, + 165, 80, 1443, 486, 1980, 2213, 581, 165, 1008, 165, + 1980, 2180, 1980, 2175, 1397, 1980, 581, 165, 165, 1496, + 1445, 1427, 1428, 2134, 486, 2084, 581, 486, 1490, 2133, + 1457, 2090, 608, 1980, 2082, 608, 1589, 581, 486, 2048, + 581, 1451, 1404, 1405, 1963, 1962, 1410, 1413, 1414, 1959, + 1960, 1959, 1958, 1400, 1463, 581, 1495, 1839, 1162, 1824, + 1817, 1818, 1475, 581, 35, 1469, 958, 959, 957, 1399, + 1465, 1493, 1426, 956, 581, 1429, 1430, 1717, 1496, 1515, + 35, 581, 1717, 1497, 960, 1822, 1530, 1531, 1532, 1724, + 1805, 1499, 1523, 486, 1524, 1525, 1526, 1527, 82, 1564, + 1565, 1566, 1162, 1161, 1568, 1570, 1107, 1106, 1590, 2068, + 1535, 1536, 1537, 1538, 1725, 1519, 1514, 486, 1750, 1518, + 1545, 1467, 1916, 486, 1200, 1927, 1495, 1200, 2045, 1200, + 2123, 1927, 1301, 1464, 1498, 2181, 956, 1588, 1502, 1501, + 1551, 71, 1497, 612, 1517, 1980, 612, 1961, 1475, 1516, + 1495, 1474, 1475, 1927, 1503, 35, 1687, 71, 1575, 2069, + 2070, 2071, 1686, 1937, 1463, 1589, 1463, 486, 1589, 1386, + 1572, 1453, 1431, 1343, 1386, 1386, 574, 969, 968, 978, + 979, 971, 972, 973, 974, 975, 976, 977, 970, 1582, + 1290, 980, 1585, 1093, 1586, 581, 1546, 1541, 1542, 1557, + 1559, 1556, 782, 1567, 1475, 1463, 1231, 781, 1598, 165, + 1352, 1353, 1354, 1355, 1600, 799, 165, 1581, 2205, 1602, + 1603, 165, 165, 71, 1599, 165, 800, 165, 1546, 1584, + 1580, 565, 71, 165, 2146, 2089, 1197, 1657, 2056, 1164, + 165, 969, 968, 978, 979, 971, 972, 973, 974, 975, + 976, 977, 970, 71, 1544, 980, 1232, 1233, 1234, 2072, + 1995, 1825, 1608, 1540, 1534, 1406, 1407, 165, 486, 1533, + 1278, 1192, 1188, 1160, 96, 1798, 1799, 1228, 864, 1998, + 166, 2147, 2033, 166, 1931, 1932, 166, 1555, 2256, 2252, + 1978, 487, 1977, 166, 1635, 1636, 1976, 1934, 1916, 1638, + 1809, 166, 1629, 499, 1741, 1336, 2073, 2074, 1639, 1742, + 1739, 1936, 2236, 1363, 1738, 1740, 1628, 1743, 1737, 1484, + 1485, 2214, 1799, 487, 1229, 1230, 487, 166, 487, 969, + 968, 978, 979, 971, 972, 973, 974, 975, 976, 977, + 970, 1908, 1706, 980, 591, 587, 1480, 1483, 1484, 1485, + 1481, 1062, 1482, 1486, 2049, 1509, 1931, 1932, 2168, 2170, + 588, 1983, 165, 1715, 1643, 1714, 2238, 2171, 2218, 2220, + 165, 2165, 1666, 1480, 1483, 1484, 1485, 1481, 2198, 1482, + 1486, 1364, 2195, 1704, 1652, 1066, 1067, 590, 1289, 589, + 2194, 1705, 566, 1955, 1803, 165, 1416, 829, 828, 2008, + 1055, 1798, 1863, 1703, 929, 1832, 165, 165, 165, 165, + 165, 1417, 1056, 1726, 1547, 1710, 1831, 572, 165, 103, + 1665, 2121, 165, 591, 587, 165, 165, 1661, 1662, 165, + 165, 165, 1954, 1748, 1681, 1731, 1953, 1719, 1583, 588, + 1206, 1205, 1762, 1193, 1047, 1693, 1701, 2043, 1679, 1455, + 1456, 1974, 1448, 1632, 2176, 2141, 1950, 1488, 1722, 1621, + 1783, 1713, 1709, 1648, 584, 585, 590, 1751, 589, 1712, + 1720, 1753, 575, 576, 1718, 578, 2226, 2224, 2223, 2199, + 1782, 2197, 1786, 1787, 1788, 2042, 486, 1979, 1573, 1780, + 1781, 165, 1744, 579, 1299, 82, 1749, 1732, 165, 2041, + 1735, 1757, 1754, 1911, 486, 1733, 1734, 1717, 1736, 1676, + 486, 2258, 2257, 2258, 1673, 1200, 1076, 1069, 2172, 1951, + 486, 1449, 1801, 1765, 574, 80, 1827, 1766, 1551, 85, + 77, 1, 1836, 457, 1432, 1045, 1791, 469, 1821, 2250, + 1265, 1255, 2093, 165, 165, 165, 165, 165, 1800, 2143, + 1986, 1549, 1835, 790, 1806, 128, 1512, 1513, 2209, 165, + 165, 1810, 1811, 1812, 1180, 93, 1834, 753, 92, 793, + 891, 1574, 2085, 1778, 1521, 1113, 1111, 1398, 1112, 1110, + 1826, 1399, 1115, 534, 1114, 1833, 1109, 1337, 483, 1487, + 163, 1102, 1070, 830, 447, 486, 1964, 1333, 1606, 453, + 988, 1386, 1711, 1874, 1758, 609, 602, 1922, 2192, 2164, + 2166, 2117, 1855, 2169, 2162, 2237, 2217, 1520, 1447, 1058, + 2040, 1910, 1680, 1017, 1876, 1418, 1085, 508, 1442, 1356, + 523, 486, 520, 521, 1861, 1867, 1458, 1862, 1723, 1875, + 962, 506, 165, 485, 1873, 500, 1888, 1077, 1889, 1479, + 1477, 1476, 486, 1895, 1630, 1089, 1933, 1929, 486, 486, + 1874, 1083, 1462, 1770, 1842, 1992, 941, 583, 1917, 495, + 765, 166, 1920, 166, 1683, 610, 166, 1415, 757, 2152, + 764, 165, 1647, 2029, 582, 1731, 61, 38, 490, 2232, + 932, 1914, 592, 32, 31, 30, 29, 28, 23, 22, + 21, 20, 487, 487, 487, 1707, 1708, 1060, 19, 25, + 1935, 18, 17, 16, 98, 48, 45, 1926, 43, 105, + 487, 487, 104, 1940, 46, 42, 867, 27, 26, 15, + 14, 13, 1956, 1957, 1972, 12, 11, 1939, 10, 1941, + 165, 1942, 9, 5, 4, 935, 24, 1006, 486, 2, + 0, 1904, 0, 0, 0, 0, 486, 2032, 0, 0, + 0, 165, 0, 0, 0, 1968, 0, 1967, 1969, 1970, + 0, 165, 0, 1985, 1947, 0, 0, 0, 1987, 1925, + 0, 1982, 0, 0, 0, 165, 0, 0, 165, 1981, + 1984, 0, 0, 0, 0, 0, 1989, 2009, 0, 166, + 1990, 0, 0, 1551, 969, 968, 978, 979, 971, 972, + 973, 974, 975, 976, 977, 970, 2004, 2003, 980, 0, + 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, + 166, 0, 166, 166, 0, 487, 2027, 0, 0, 0, + 0, 487, 0, 0, 2012, 2017, 0, 0, 0, 0, + 2006, 2007, 0, 0, 0, 0, 2014, 2015, 0, 2016, + 0, 0, 2018, 0, 2020, 0, 0, 0, 0, 1401, + 1402, 2039, 0, 0, 0, 0, 2044, 0, 0, 0, + 0, 0, 0, 0, 2053, 0, 0, 0, 1731, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2052, 0, 0, 0, 165, 0, 2061, 165, 165, 165, + 486, 486, 0, 2058, 0, 1446, 0, 0, 0, 0, + 0, 0, 0, 2062, 0, 2064, 0, 2079, 2059, 2094, + 486, 486, 486, 0, 0, 0, 1897, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2100, 969, 968, 978, + 979, 971, 972, 973, 974, 975, 976, 977, 970, 0, + 0, 980, 0, 0, 0, 486, 486, 486, 165, 0, + 2098, 1912, 0, 0, 0, 0, 0, 0, 0, 486, + 2099, 486, 2110, 2112, 2113, 0, 166, 486, 0, 2124, + 0, 0, 1920, 2114, 161, 2120, 1920, 0, 2106, 2122, + 2126, 0, 0, 2115, 2129, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2131, 0, 2132, 0, 487, 103, + 486, 2128, 0, 486, 0, 2135, 0, 2130, 0, 0, + 0, 2145, 145, 2138, 0, 487, 487, 2142, 487, 0, + 487, 487, 0, 487, 487, 487, 487, 487, 487, 0, + 0, 0, 0, 0, 610, 610, 610, 0, 487, 2161, + 0, 0, 166, 0, 0, 0, 0, 0, 165, 0, + 1920, 0, 931, 933, 2173, 0, 0, 486, 165, 0, + 0, 0, 0, 2179, 0, 0, 142, 0, 143, 487, + 0, 166, 0, 0, 2183, 0, 0, 160, 0, 0, + 0, 0, 0, 0, 0, 486, 166, 2196, 2189, 0, + 0, 0, 486, 486, 0, 0, 2200, 0, 2202, 2208, + 2145, 2210, 166, 0, 0, 2026, 0, 0, 2222, 166, + 0, 2221, 0, 1731, 0, 0, 486, 2228, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 487, 487, 487, + 2235, 0, 2031, 2231, 0, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 151, 0, 0, 2246, + 0, 0, 0, 0, 166, 499, 0, 0, 0, 1073, + 0, 0, 2054, 2255, 0, 2055, 0, 610, 2057, 964, + 2265, 967, 0, 1103, 0, 0, 0, 981, 982, 983, + 984, 985, 986, 987, 0, 965, 966, 963, 969, 968, + 978, 979, 971, 972, 973, 974, 975, 976, 977, 970, + 0, 0, 980, 0, 0, 0, 0, 0, 0, 2025, + 0, 0, 0, 0, 0, 487, 969, 968, 978, 979, + 971, 972, 973, 974, 975, 976, 977, 970, 0, 0, + 980, 0, 1659, 0, 0, 0, 1660, 0, 0, 0, + 2024, 0, 0, 0, 0, 0, 0, 1667, 1668, 487, + 487, 0, 138, 1674, 0, 0, 1677, 1678, 0, 0, + 166, 0, 0, 0, 1684, 0, 1685, 0, 0, 1688, + 1689, 1690, 1691, 1692, 487, 2119, 499, 0, 0, 0, + 0, 166, 0, 0, 487, 1702, 0, 0, 166, 0, + 166, 0, 0, 0, 0, 0, 0, 0, 166, 166, + 0, 0, 0, 0, 0, 487, 0, 0, 487, 0, + 0, 0, 0, 0, 0, 1868, 0, 0, 0, 487, + 969, 968, 978, 979, 971, 972, 973, 974, 975, 976, + 977, 970, 1746, 1747, 980, 969, 968, 978, 979, 971, + 972, 973, 974, 975, 976, 977, 970, 0, 0, 980, + 757, 969, 968, 978, 979, 971, 972, 973, 974, 975, + 976, 977, 970, 1202, 0, 980, 0, 1208, 1208, 0, + 1208, 0, 1208, 1208, 487, 1217, 1208, 1208, 1208, 1208, + 1208, 0, 0, 0, 0, 0, 1658, 0, 1202, 1202, + 757, 0, 0, 0, 0, 0, 0, 0, 487, 0, + 0, 0, 0, 0, 487, 535, 969, 968, 978, 979, + 971, 972, 973, 974, 975, 976, 977, 970, 0, 0, + 980, 1277, 0, 0, 139, 144, 141, 147, 148, 149, + 150, 152, 153, 154, 155, 0, 0, 0, 0, 0, + 156, 157, 158, 159, 0, 0, 0, 0, 487, 0, + 0, 0, 0, 0, 164, 0, 0, 443, 0, 0, + 481, 0, 0, 0, 0, 0, 0, 443, 0, 0, + 0, 0, 0, 0, 0, 443, 0, 0, 0, 610, + 610, 610, 0, 0, 0, 0, 0, 0, 0, 0, + 166, 0, 596, 596, 0, 0, 0, 166, 0, 0, + 0, 443, 166, 166, 1871, 1872, 166, 0, 166, 0, + 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, + 0, 166, 969, 968, 978, 979, 971, 972, 973, 974, + 975, 976, 977, 970, 0, 0, 980, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 166, 487, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1392, 0, 610, + 1923, 0, 0, 0, 0, 0, 0, 0, 0, 502, + 0, 0, 0, 1202, 0, 0, 0, 0, 0, 0, + 0, 1938, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1424, 1425, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1459, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1073, 0, 0, 610, + 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, + 0, 166, 0, 0, 0, 0, 0, 610, 0, 0, + 610, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 757, 0, 0, 0, 0, 166, 0, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 166, 166, 166, + 166, 166, 0, 0, 0, 0, 0, 0, 0, 166, + 0, 0, 0, 166, 0, 0, 166, 166, 0, 0, + 166, 166, 166, 0, 0, 0, 2011, 0, 0, 0, + 2013, 0, 0, 0, 0, 0, 764, 0, 0, 0, + 0, 2022, 2023, 0, 0, 0, 0, 0, 0, 462, + 0, 0, 0, 0, 0, 0, 0, 2037, 461, 0, + 757, 0, 0, 0, 0, 0, 764, 0, 0, 459, + 0, 0, 0, 0, 2046, 2047, 0, 487, 2051, 0, + 0, 0, 166, 0, 0, 0, 0, 0, 0, 166, + 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, + 0, 487, 0, 0, 0, 0, 0, 0, 456, 0, + 757, 487, 0, 0, 0, 0, 0, 468, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 166, 166, 166, 166, 166, 2083, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 166, 166, 0, 0, 0, 443, 0, 443, 0, 0, + 443, 0, 0, 0, 474, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 487, 2111, 0, 0, + 0, 0, 446, 0, 448, 463, 0, 476, 0, 475, + 452, 0, 450, 454, 464, 455, 0, 449, 0, 460, + 0, 1642, 451, 465, 466, 480, 479, 467, 0, 473, + 458, 477, 487, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 487, 0, 0, 0, 0, 0, 487, + 487, 0, 0, 0, 2148, 2149, 2150, 2151, 0, 2155, + 0, 2156, 2157, 2158, 0, 2159, 2160, 0, 0, 537, + 34, 0, 166, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, + 0, 0, 0, 0, 34, 2185, 0, 0, 0, 0, + 0, 0, 0, 0, 443, 0, 443, 1092, 0, 0, + 0, 1048, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 166, 0, 0, 0, 0, 0, 0, 0, 487, + 0, 0, 0, 0, 0, 478, 0, 487, 1202, 573, + 0, 0, 166, 0, 0, 0, 2229, 2230, 0, 0, + 0, 0, 166, 471, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 442, 0, 0, 166, 0, 472, 166, + 0, 0, 0, 489, 0, 0, 0, 0, 0, 0, + 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, + 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, + 0, 0, 0, 0, 0, 0, 0, 761, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1804, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1816, 0, 0, + 0, 1202, 0, 1823, 0, 0, 0, 0, 0, 0, + 0, 610, 0, 1828, 0, 0, 0, 0, 0, 0, + 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 166, 0, 0, 166, 166, + 166, 487, 487, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1203, 0, 0, 0, 0, + 0, 487, 487, 487, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 610, 0, + 1203, 1203, 0, 0, 0, 0, 443, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 487, 487, 487, 166, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 487, 0, 487, 0, 1208, 443, 0, 0, 487, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1298, 0, 0, 0, 0, 610, 0, 0, 1202, 0, + 0, 1924, 1208, 0, 0, 0, 443, 0, 0, 0, + 0, 487, 0, 443, 487, 0, 0, 0, 0, 0, + 0, 0, 1321, 1322, 443, 443, 443, 443, 443, 443, + 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 443, 166, + 0, 0, 0, 0, 0, 0, 0, 0, 487, 166, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 757, 0, 0, 1202, 0, 487, 0, 0, 1816, + 0, 0, 0, 487, 487, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 596, 1298, 0, 0, 0, 596, 596, 487, 0, 596, + 596, 596, 0, 0, 0, 1203, 0, 0, 0, 0, + 924, 924, 924, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 596, 596, 596, 596, 596, + 34, 868, 0, 873, 1440, 0, 875, 0, 0, 0, + 0, 0, 0, 989, 991, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, + 0, 1298, 443, 0, 443, 0, 0, 0, 0, 0, + 0, 1202, 443, 443, 1004, 0, 0, 0, 1009, 1010, + 1011, 1012, 1013, 1014, 1015, 1016, 0, 1019, 1021, 1024, + 1024, 1024, 1021, 1024, 1024, 1021, 1024, 1037, 1038, 1039, + 1040, 1041, 1042, 1043, 0, 0, 0, 0, 0, 1049, + 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, + 0, 0, 1361, 1816, 2080, 1370, 1371, 1372, 1373, 1374, + 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, + 1086, 0, 0, 2095, 2096, 2097, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1816, 1816, + 1816, 0, 0, 0, 1423, 0, 0, 0, 0, 0, + 1079, 0, 2125, 1090, 2127, 0, 0, 0, 0, 0, + 1816, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1816, 0, 161, 610, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1814, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 103, 0, 125, 0, 443, 0, 0, 0, 0, 0, + 0, 443, 0, 145, 0, 0, 443, 443, 0, 0, + 443, 0, 1633, 0, 0, 0, 0, 0, 443, 0, + 1816, 0, 0, 0, 0, 443, 0, 0, 0, 0, + 0, 0, 0, 0, 135, 0, 0, 0, 0, 124, + 0, 0, 0, 0, 0, 0, 1202, 0, 2201, 0, + 0, 0, 443, 0, 0, 610, 610, 142, 0, 143, + 0, 0, 0, 0, 1183, 1184, 134, 133, 160, 0, + 0, 0, 0, 0, 0, 0, 1108, 0, 0, 1816, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 596, 596, 0, 0, 0, 0, 129, 1185, 136, 0, + 1182, 0, 130, 131, 0, 0, 0, 146, 0, 0, + 0, 596, 0, 0, 0, 0, 0, 151, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, + 0, 0, 1239, 0, 0, 1440, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, + 443, 1279, 0, 0, 0, 924, 924, 924, 0, 0, + 1203, 443, 443, 443, 443, 443, 0, 0, 0, 0, + 0, 0, 0, 1745, 0, 0, 0, 443, 0, 0, + 443, 443, 1308, 0, 443, 1755, 1298, 0, 0, 1312, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1323, 1324, 1325, 1326, 1327, 1328, 1329, 0, 0, 0, + 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1653, 1654, 1655, + 0, 0, 0, 0, 1090, 0, 0, 1130, 0, 0, + 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, + 0, 0, 0, 1813, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1203, 0, 0, 0, 0, 0, 132, + 0, 0, 0, 1298, 0, 0, 0, 0, 0, 0, + 0, 126, 0, 0, 127, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, + 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1491, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, + 1179, 0, 1118, 0, 0, 0, 0, 0, 0, 0, + 0, 1466, 0, 0, 103, 0, 125, 0, 1470, 0, + 1473, 0, 0, 0, 0, 0, 0, 145, 0, 1492, + 0, 0, 0, 0, 0, 139, 144, 141, 147, 148, + 149, 150, 152, 153, 154, 155, 1131, 443, 0, 0, + 0, 156, 157, 158, 159, 0, 0, 0, 135, 0, + 1203, 0, 0, 124, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 142, 0, 143, 0, 0, 443, 0, 1183, 1184, + 134, 133, 160, 0, 0, 0, 0, 1144, 1147, 1148, + 1149, 1150, 1151, 1152, 0, 1153, 1154, 1155, 1156, 1157, + 1132, 1133, 1134, 1135, 1116, 1117, 1145, 0, 1119, 0, + 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, + 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 0, 0, + 129, 1185, 136, 0, 1182, 443, 130, 131, 0, 0, + 0, 146, 0, 0, 0, 0, 1203, 0, 0, 0, + 0, 151, 0, 0, 0, 0, 443, 1869, 1870, 0, + 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, + 0, 0, 1890, 1891, 0, 1892, 1893, 0, 0, 0, + 443, 0, 0, 443, 0, 0, 1899, 1900, 0, 0, + 0, 0, 0, 0, 0, 1146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1090, 0, 0, 0, 0, 0, 0, 1617, 0, 0, + 0, 0, 1626, 1627, 0, 0, 1631, 0, 0, 0, + 0, 0, 0, 0, 1634, 0, 0, 0, 0, 0, + 0, 1637, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1203, 0, 0, 0, 138, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1641, 1949, + 0, 0, 0, 0, 0, 0, 0, 1663, 0, 0, + 573, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, + 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, + 0, 0, 0, 132, 0, 0, 0, 1700, 0, 0, + 0, 0, 0, 0, 0, 126, 0, 0, 127, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, + 0, 1727, 1728, 0, 0, 1086, 1086, 1086, 1086, 1086, + 0, 0, 0, 1440, 0, 0, 0, 0, 2010, 0, + 0, 1491, 0, 0, 1086, 0, 0, 0, 1086, 0, + 0, 0, 0, 0, 0, 35, 36, 37, 72, 39, + 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, + 41, 67, 68, 0, 65, 69, 0, 0, 0, 0, + 0, 0, 0, 66, 0, 0, 0, 1752, 0, 139, 144, 141, 147, 148, 149, 150, 152, 153, 154, 155, 0, 0, 0, 0, 0, 156, 157, 158, 159, 0, + 2060, 0, 54, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 71, 443, 0, 0, 0, 0, 0, 0, + 1829, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1807, 0, 0, 0, 0, 0, 1203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1390, 0, 609, 0, - 0, 0, 486, 0, 0, 0, 0, 166, 0, 0, - 0, 0, 1200, 0, 166, 0, 0, 0, 0, 0, - 486, 0, 0, 0, 0, 0, 486, 0, 0, 0, - 1422, 1423, 0, 0, 0, 0, 486, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 534, 0, 0, - 0, 0, 0, 0, 0, 1457, 0, 0, 0, 166, - 166, 166, 166, 166, 0, 1071, 0, 0, 609, 0, - 0, 0, 0, 0, 0, 166, 166, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 609, 0, 0, 609, - 0, 0, 0, 0, 0, 0, 164, 0, 0, 442, - 755, 0, 480, 0, 0, 0, 0, 0, 0, 442, - 0, 486, 0, 0, 0, 0, 0, 442, 0, 0, - 0, 1046, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 595, 595, 0, 0, 0, 0, - 0, 0, 0, 442, 0, 0, 0, 486, 0, 0, - 0, 0, 0, 0, 0, 762, 0, 0, 166, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 486, 0, - 0, 0, 0, 441, 486, 486, 0, 0, 0, 755, - 0, 0, 0, 488, 0, 762, 0, 0, 0, 0, - 0, 568, 0, 0, 0, 0, 0, 166, 0, 0, - 0, 0, 0, 0, 0, 35, 36, 37, 72, 39, - 40, 0, 1657, 0, 0, 0, 1658, 759, 0, 0, - 0, 0, 0, 0, 0, 76, 0, 1665, 1666, 755, - 41, 67, 68, 1672, 65, 69, 1675, 1676, 0, 0, - 0, 66, 0, 0, 1682, 0, 1683, 0, 0, 1686, - 1687, 1688, 1689, 1690, 0, 166, 0, 0, 0, 0, - 0, 0, 0, 486, 0, 1700, 0, 0, 0, 0, - 54, 486, 0, 0, 0, 0, 166, 0, 0, 0, - 71, 0, 0, 0, 0, 0, 166, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 166, 0, 0, 166, 0, 0, 0, 0, 161, 0, - 0, 0, 1744, 1745, 0, 0, 0, 0, 0, 1811, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1640, 0, 0, 103, 0, 125, 0, 0, 0, 0, - 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, - 0, 0, 44, 47, 50, 49, 52, 0, 64, 0, - 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, - 124, 0, 0, 0, 53, 75, 74, 0, 0, 62, - 63, 51, 0, 0, 0, 0, 0, 0, 142, 0, - 143, 0, 0, 0, 0, 1181, 1182, 134, 133, 160, - 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, - 0, 166, 166, 166, 486, 486, 0, 0, 0, 0, - 55, 56, 0, 57, 58, 59, 60, 0, 0, 0, - 0, 0, 0, 0, 486, 486, 486, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 129, 1183, 136, - 0, 1180, 0, 130, 131, 0, 0, 1200, 146, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 151, 486, - 486, 486, 166, 0, 1868, 1869, 442, 0, 442, 0, - 0, 442, 0, 486, 0, 486, 0, 0, 0, 0, - 0, 486, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 486, 0, 73, 486, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1801, 0, - 1920, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 866, 0, 871, 0, 0, 873, 1813, 0, 0, 0, - 1200, 1935, 1820, 0, 0, 0, 0, 0, 0, 0, - 609, 166, 1825, 0, 138, 0, 0, 0, 0, 0, - 486, 166, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 442, 0, 0, 0, 486, 0, - 0, 0, 0, 0, 0, 486, 486, 0, 0, 0, - 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 132, 0, 0, 0, 0, 442, 0, 442, 1090, 486, - 0, 0, 126, 0, 0, 127, 0, 609, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 536, 34, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1206, 0, 2007, 0, 0, 0, 2009, - 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, - 2018, 2019, 0, 0, 609, 0, 0, 1200, 0, 1077, - 1921, 1206, 1088, 0, 0, 0, 2033, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2042, 2043, 0, 0, 2047, 0, 0, - 572, 0, 0, 0, 0, 0, 139, 144, 141, 147, - 148, 149, 150, 152, 153, 154, 155, 0, 0, 0, - 0, 0, 156, 157, 158, 159, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 442, 0, 0, 0, 0, 0, 0, 2078, 0, 755, - 0, 0, 1200, 0, 0, 0, 0, 1813, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1201, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2106, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1201, 1201, 0, 0, 1106, 0, 442, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1200, - 1296, 2143, 2144, 2145, 2146, 0, 2150, 0, 2151, 2152, - 2153, 0, 2154, 2155, 0, 0, 442, 0, 0, 0, - 0, 0, 0, 442, 0, 0, 0, 0, 0, 0, - 1237, 0, 1319, 1320, 442, 442, 442, 442, 442, 442, - 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1813, 2075, 2180, 0, 0, 0, 0, 0, 0, 1277, - 0, 0, 0, 0, 0, 0, 0, 0, 442, 0, - 2090, 2091, 2092, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1306, 0, 0, 0, 0, 0, 0, 1310, 0, 0, - 0, 0, 0, 2224, 2225, 1813, 1813, 1813, 1321, 1322, - 1323, 1324, 1325, 1326, 1327, 0, 0, 0, 0, 2120, - 1128, 2122, 0, 0, 0, 0, 0, 1813, 0, 0, - 595, 1296, 0, 0, 0, 595, 595, 0, 0, 595, - 595, 595, 1088, 0, 0, 1201, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1813, - 0, 0, 609, 0, 0, 595, 595, 595, 595, 595, - 0, 0, 0, 0, 1438, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, - 0, 1296, 442, 0, 442, 0, 0, 0, 0, 0, - 0, 0, 442, 442, 0, 0, 1813, 0, 0, 0, - 922, 922, 922, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1116, 0, 0, 0, 0, 0, 0, - 34, 0, 1200, 0, 2196, 0, 0, 0, 0, 0, - 0, 609, 609, 987, 989, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1464, - 0, 0, 0, 0, 0, 1813, 1468, 1129, 1471, 0, - 0, 0, 0, 0, 1002, 0, 0, 1490, 1007, 1008, - 1009, 1010, 1011, 1012, 1013, 1014, 0, 1017, 1019, 1022, - 1022, 1022, 1019, 1022, 1022, 1019, 1022, 1035, 1036, 1037, - 1038, 1039, 1040, 1041, 0, 0, 0, 0, 0, 1047, - 0, 0, 0, 34, 0, 0, 0, 0, 1142, 1145, - 1146, 1147, 1148, 1149, 1150, 0, 1151, 1152, 1153, 1154, - 1155, 1130, 1131, 1132, 1133, 1114, 1115, 1143, 0, 1117, - 1084, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, - 1127, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, - 0, 442, 0, 0, 0, 0, 442, 442, 0, 0, - 442, 0, 1631, 0, 0, 0, 0, 0, 442, 0, - 0, 0, 0, 0, 0, 442, 1144, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, - 0, 0, 0, 0, 0, 1615, 0, 0, 0, 0, - 1624, 1625, 0, 0, 1629, 0, 0, 0, 0, 0, - 0, 0, 1632, 0, 0, 0, 0, 0, 0, 1635, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 595, 595, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1639, 0, 0, 0, - 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 442, 0, 0, - 0, 0, 0, 0, 0, 1438, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 595, - 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1201, 442, 442, 442, 442, 442, 0, 0, 0, 0, - 0, 0, 0, 1743, 0, 0, 0, 442, 0, 0, - 442, 442, 161, 0, 442, 1753, 1296, 0, 0, 0, - 0, 0, 0, 1177, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 103, 0, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, - 0, 0, 0, 0, 922, 922, 922, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 442, 0, 0, 135, - 0, 0, 0, 1810, 124, 1750, 0, 0, 0, 0, - 0, 0, 0, 1201, 0, 0, 0, 0, 0, 0, - 0, 0, 142, 1296, 143, 0, 0, 0, 0, 1181, - 1182, 134, 133, 160, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 442, 442, - 442, 442, 442, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 442, 442, 0, 0, 0, 0, - 1804, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 129, 1183, 136, 0, 1180, 0, 130, 131, 0, - 0, 0, 146, 0, 0, 0, 0, 0, 0, 595, - 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1843, 1844, 1845, 1846, 1847, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1088, 1853, - 0, 0, 0, 0, 0, 1489, 0, 442, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 442, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1906, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1201, 0, 0, 0, 0, - 0, 0, 0, 0, 132, 442, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 442, 126, 0, 0, 127, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, - 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1971, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1984, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1987, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1201, 1998, 0, 0, 2001, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 139, 144, 141, 147, 148, 149, 150, 152, 153, 154, - 155, 0, 0, 0, 0, 0, 156, 157, 158, 159, - 0, 0, 0, 0, 0, 0, 0, 442, 0, 0, - 442, 442, 442, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1661, 0, 0, 572, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1438, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2070, 0, 0, 2071, 2072, 2073, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1698, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, - 1725, 1726, 0, 0, 1084, 1084, 1084, 1084, 1084, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1489, 0, 0, 1084, 0, 0, 0, 1084, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1201, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 313, 0, 0, 2173, 0, 0, 0, 0, 1826, - 222, 0, 0, 0, 2179, 0, 271, 0, 0, 0, - 327, 0, 365, 208, 280, 278, 393, 232, 225, 221, - 207, 255, 286, 325, 383, 319, 0, 275, 0, 0, - 374, 298, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 261, 206, 175, - 310, 375, 236, 0, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 197, 0, 204, - 0, 0, 0, 0, 218, 259, 224, 217, 390, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 967, 966, 976, 977, 969, 970, 971, 972, 973, - 974, 975, 968, 0, 0, 978, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 244, 0, 299, 1918, 0, 34, 0, 422, 0, - 0, 0, 0, 0, 0, 0, 0, 270, 0, 267, - 171, 186, 0, 0, 309, 348, 354, 0, 0, 1084, - 209, 0, 352, 323, 407, 193, 234, 345, 328, 350, - 0, 0, 351, 276, 395, 340, 405, 423, 424, 216, - 303, 413, 387, 419, 434, 187, 213, 317, 380, 410, - 371, 296, 391, 392, 266, 370, 242, 174, 274, 431, - 185, 360, 201, 178, 382, 403, 198, 363, 0, 0, - 0, 180, 401, 379, 293, 263, 264, 179, 0, 344, - 220, 240, 211, 312, 398, 399, 210, 436, 189, 418, - 182, 0, 417, 305, 394, 402, 294, 285, 181, 400, - 292, 284, 269, 230, 250, 338, 279, 339, 251, 301, - 300, 302, 0, 176, 0, 376, 411, 437, 194, 195, - 196, 0, 229, 233, 239, 241, 0, 247, 254, 272, - 316, 337, 335, 341, 0, 389, 406, 414, 421, 427, - 428, 432, 429, 430, 433, 304, 190, 253, 372, 268, - 277, 0, 0, 322, 353, 199, 409, 373, 0, 0, - 0, 0, 2024, 0, 0, 0, 0, 0, 0, 2030, - 2031, 2032, 0, 0, 0, 0, 0, 0, 170, 183, - 273, 0, 342, 237, 435, 416, 412, 0, 0, 215, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 173, 184, 192, 202, 214, 227, 235, - 245, 249, 252, 256, 257, 260, 265, 282, 287, 288, - 289, 290, 306, 307, 308, 311, 314, 315, 318, 320, - 321, 324, 330, 331, 332, 333, 334, 336, 343, 347, - 355, 356, 357, 358, 359, 361, 362, 366, 367, 368, - 369, 377, 381, 396, 397, 408, 420, 425, 246, 404, - 426, 0, 281, 0, 0, 283, 231, 248, 258, 0, - 415, 378, 188, 349, 238, 177, 205, 191, 212, 226, - 228, 262, 291, 297, 326, 329, 243, 223, 203, 346, - 200, 364, 384, 385, 386, 388, 295, 219, 0, 0, - 0, 0, 1918, 0, 34, 0, 1918, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1918, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2172, 0, 0, 0, 0, 34, 0, 0, - 0, 0, 734, 721, 0, 0, 670, 737, 641, 659, - 746, 661, 664, 704, 620, 683, 313, 656, 0, 645, - 616, 652, 617, 643, 672, 222, 676, 640, 723, 686, - 736, 271, 34, 622, 646, 327, 706, 365, 208, 280, - 278, 393, 232, 225, 221, 207, 255, 286, 325, 383, - 319, 743, 275, 693, 0, 374, 298, 0, 0, 0, - 674, 726, 681, 717, 669, 705, 630, 692, 738, 657, - 701, 739, 261, 206, 175, 310, 375, 236, 0, 0, - 0, 167, 168, 169, 0, 2206, 2207, 0, 0, 0, - 0, 0, 197, 0, 204, 698, 733, 654, 700, 218, - 259, 224, 217, 390, 703, 749, 615, 695, 0, 618, - 621, 745, 729, 649, 650, 0, 0, 0, 0, 0, - 0, 0, 673, 682, 714, 667, 0, 0, 0, 0, - 0, 0, 0, 0, 647, 0, 691, 0, 0, 0, - 626, 619, 0, 0, 0, 0, 671, 0, 0, 0, - 629, 0, 648, 715, 0, 613, 244, 623, 299, 0, - 719, 728, 668, 422, 732, 666, 665, 735, 710, 627, - 725, 660, 270, 625, 267, 171, 186, 0, 658, 309, - 348, 354, 724, 644, 653, 209, 651, 352, 323, 407, - 193, 234, 345, 328, 350, 690, 708, 351, 276, 395, - 340, 405, 423, 424, 216, 303, 413, 387, 419, 434, - 187, 213, 317, 380, 410, 371, 296, 391, 392, 266, - 370, 242, 174, 274, 431, 185, 360, 201, 178, 382, - 403, 198, 363, 0, 0, 0, 180, 401, 379, 293, - 263, 264, 179, 0, 344, 220, 240, 211, 312, 398, - 399, 210, 436, 189, 418, 182, 924, 417, 305, 394, - 402, 294, 285, 181, 400, 292, 284, 269, 230, 250, - 338, 279, 339, 251, 301, 300, 302, 0, 176, 0, - 376, 411, 437, 194, 195, 196, 639, 229, 233, 239, - 241, 0, 247, 254, 272, 316, 337, 335, 341, 720, - 389, 406, 414, 421, 427, 428, 432, 429, 430, 433, - 304, 190, 253, 372, 268, 277, 712, 748, 322, 353, - 199, 409, 373, 634, 638, 632, 633, 684, 685, 635, - 740, 741, 742, 716, 628, 0, 636, 637, 0, 722, - 730, 731, 689, 170, 183, 273, 744, 342, 237, 435, - 416, 412, 614, 631, 215, 642, 0, 0, 655, 662, - 663, 675, 677, 678, 679, 680, 688, 696, 697, 699, - 707, 709, 711, 713, 718, 727, 747, 172, 173, 184, - 192, 202, 214, 227, 235, 245, 249, 252, 256, 257, - 260, 265, 282, 287, 288, 289, 290, 306, 307, 308, - 311, 314, 315, 318, 320, 321, 324, 330, 331, 332, - 333, 334, 336, 343, 347, 355, 356, 357, 358, 359, - 361, 362, 366, 367, 368, 369, 377, 381, 396, 397, - 408, 420, 425, 246, 404, 426, 0, 281, 687, 694, - 283, 231, 248, 258, 702, 415, 378, 188, 349, 238, - 177, 205, 191, 212, 226, 228, 262, 291, 297, 326, - 329, 243, 223, 203, 346, 200, 364, 384, 385, 386, - 388, 295, 219, 734, 721, 0, 0, 670, 737, 641, - 659, 746, 661, 664, 704, 620, 683, 313, 656, 0, - 645, 616, 652, 617, 643, 672, 222, 676, 640, 723, - 686, 736, 271, 0, 622, 646, 327, 706, 365, 208, - 280, 278, 393, 232, 225, 221, 207, 255, 286, 325, - 383, 319, 743, 275, 693, 0, 374, 298, 0, 0, - 0, 674, 726, 681, 717, 669, 705, 630, 692, 738, - 657, 701, 739, 261, 206, 175, 310, 375, 236, 0, - 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, - 0, 0, 0, 197, 0, 204, 698, 733, 654, 700, - 218, 259, 224, 217, 390, 703, 749, 615, 695, 0, - 618, 621, 745, 729, 649, 650, 0, 0, 0, 0, - 0, 0, 0, 673, 682, 714, 667, 0, 0, 0, - 0, 0, 0, 1910, 0, 647, 0, 691, 0, 0, - 0, 626, 619, 0, 0, 0, 0, 671, 0, 0, - 0, 629, 0, 648, 715, 0, 613, 244, 623, 299, - 0, 719, 728, 668, 422, 732, 666, 665, 735, 710, - 627, 725, 660, 270, 625, 267, 171, 186, 0, 658, - 309, 348, 354, 724, 644, 653, 209, 651, 352, 323, - 407, 193, 234, 345, 328, 350, 690, 708, 351, 276, - 395, 340, 405, 423, 424, 216, 303, 413, 387, 419, - 434, 187, 213, 317, 380, 410, 371, 296, 391, 392, - 266, 370, 242, 174, 274, 431, 185, 360, 201, 178, - 382, 403, 198, 363, 0, 0, 0, 180, 401, 379, - 293, 263, 264, 179, 0, 344, 220, 240, 211, 312, - 398, 399, 210, 436, 189, 418, 182, 924, 417, 305, - 394, 402, 294, 285, 181, 400, 292, 284, 269, 230, - 250, 338, 279, 339, 251, 301, 300, 302, 0, 176, - 0, 376, 411, 437, 194, 195, 196, 639, 229, 233, - 239, 241, 0, 247, 254, 272, 316, 337, 335, 341, - 720, 389, 406, 414, 421, 427, 428, 432, 429, 430, - 433, 304, 190, 253, 372, 268, 277, 712, 748, 322, - 353, 199, 409, 373, 634, 638, 632, 633, 684, 685, - 635, 740, 741, 742, 716, 628, 0, 636, 637, 0, - 722, 730, 731, 689, 170, 183, 273, 744, 342, 237, - 435, 416, 412, 614, 631, 215, 642, 0, 0, 655, - 662, 663, 675, 677, 678, 679, 680, 688, 696, 697, - 699, 707, 709, 711, 713, 718, 727, 747, 172, 173, - 184, 192, 202, 214, 227, 235, 245, 249, 252, 256, - 257, 260, 265, 282, 287, 288, 289, 290, 306, 307, - 308, 311, 314, 315, 318, 320, 321, 324, 330, 331, - 332, 333, 334, 336, 343, 347, 355, 356, 357, 358, - 359, 361, 362, 366, 367, 368, 369, 377, 381, 396, - 397, 408, 420, 425, 246, 404, 426, 0, 281, 687, - 694, 283, 231, 248, 258, 702, 415, 378, 188, 349, - 238, 177, 205, 191, 212, 226, 228, 262, 291, 297, - 326, 329, 243, 223, 203, 346, 200, 364, 384, 385, - 386, 388, 295, 219, 734, 721, 0, 0, 670, 737, - 641, 659, 746, 661, 664, 704, 620, 683, 313, 656, - 0, 645, 616, 652, 617, 643, 672, 222, 676, 640, - 723, 686, 736, 271, 0, 622, 646, 327, 706, 365, - 208, 280, 278, 393, 232, 225, 221, 207, 255, 286, - 325, 383, 319, 743, 275, 693, 0, 374, 298, 0, - 0, 0, 674, 726, 681, 717, 669, 705, 630, 692, - 738, 657, 701, 739, 261, 206, 175, 310, 375, 236, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 197, 0, 204, 698, 733, 654, - 700, 218, 259, 224, 217, 390, 703, 749, 615, 695, - 0, 618, 621, 745, 729, 649, 650, 0, 0, 0, - 0, 0, 0, 0, 673, 682, 714, 667, 0, 0, - 0, 0, 0, 0, 1754, 0, 647, 0, 691, 0, - 0, 0, 626, 619, 0, 0, 0, 0, 671, 0, - 0, 0, 629, 0, 648, 715, 0, 613, 244, 623, - 299, 0, 719, 728, 668, 422, 732, 666, 665, 735, - 710, 627, 725, 660, 270, 625, 267, 171, 186, 0, - 658, 309, 348, 354, 724, 644, 653, 209, 651, 352, - 323, 407, 193, 234, 345, 328, 350, 690, 708, 351, - 276, 395, 340, 405, 423, 424, 216, 303, 413, 387, - 419, 434, 187, 213, 317, 380, 410, 371, 296, 391, - 392, 266, 370, 242, 174, 274, 431, 185, 360, 201, - 178, 382, 403, 198, 363, 0, 0, 0, 180, 401, - 379, 293, 263, 264, 179, 0, 344, 220, 240, 211, - 312, 398, 399, 210, 436, 189, 418, 182, 924, 417, - 305, 394, 402, 294, 285, 181, 400, 292, 284, 269, - 230, 250, 338, 279, 339, 251, 301, 300, 302, 0, - 176, 0, 376, 411, 437, 194, 195, 196, 639, 229, - 233, 239, 241, 0, 247, 254, 272, 316, 337, 335, - 341, 720, 389, 406, 414, 421, 427, 428, 432, 429, - 430, 433, 304, 190, 253, 372, 268, 277, 712, 748, - 322, 353, 199, 409, 373, 634, 638, 632, 633, 684, - 685, 635, 740, 741, 742, 716, 628, 0, 636, 637, - 0, 722, 730, 731, 689, 170, 183, 273, 744, 342, - 237, 435, 416, 412, 614, 631, 215, 642, 0, 0, - 655, 662, 663, 675, 677, 678, 679, 680, 688, 696, - 697, 699, 707, 709, 711, 713, 718, 727, 747, 172, - 173, 184, 192, 202, 214, 227, 235, 245, 249, 252, - 256, 257, 260, 265, 282, 287, 288, 289, 290, 306, - 307, 308, 311, 314, 315, 318, 320, 321, 324, 330, - 331, 332, 333, 334, 336, 343, 347, 355, 356, 357, - 358, 359, 361, 362, 366, 367, 368, 369, 377, 381, - 396, 397, 408, 420, 425, 246, 404, 426, 0, 281, - 687, 694, 283, 231, 248, 258, 702, 415, 378, 188, - 349, 238, 177, 205, 191, 212, 226, 228, 262, 291, - 297, 326, 329, 243, 223, 203, 346, 200, 364, 384, - 385, 386, 388, 295, 219, 734, 721, 0, 0, 670, - 737, 641, 659, 746, 661, 664, 704, 620, 683, 313, - 656, 0, 645, 616, 652, 617, 643, 672, 222, 676, - 640, 723, 686, 736, 271, 0, 622, 646, 327, 706, - 365, 208, 280, 278, 393, 232, 225, 221, 207, 255, - 286, 325, 383, 319, 743, 275, 693, 0, 374, 298, - 0, 0, 0, 674, 726, 681, 717, 669, 705, 630, - 692, 738, 657, 701, 739, 261, 206, 175, 310, 375, - 236, 0, 0, 0, 167, 168, 169, 0, 0, 0, - 0, 0, 0, 0, 0, 197, 0, 204, 698, 733, - 654, 700, 218, 259, 224, 217, 390, 703, 749, 615, - 695, 0, 618, 621, 745, 729, 649, 650, 0, 0, - 0, 0, 0, 0, 0, 673, 682, 714, 667, 0, - 0, 0, 0, 0, 0, 1466, 0, 647, 0, 691, - 0, 0, 0, 626, 619, 0, 0, 0, 0, 671, - 0, 0, 0, 629, 0, 648, 715, 0, 613, 244, - 623, 299, 0, 719, 728, 668, 422, 732, 666, 665, - 735, 710, 627, 725, 660, 270, 625, 267, 171, 186, - 0, 658, 309, 348, 354, 724, 644, 653, 209, 651, - 352, 323, 407, 193, 234, 345, 328, 350, 690, 708, - 351, 276, 395, 340, 405, 423, 424, 216, 303, 413, - 387, 419, 434, 187, 213, 317, 380, 410, 371, 296, - 391, 392, 266, 370, 242, 174, 274, 431, 185, 360, - 201, 178, 382, 403, 198, 363, 0, 0, 0, 180, - 401, 379, 293, 263, 264, 179, 0, 344, 220, 240, - 211, 312, 398, 399, 210, 436, 189, 418, 182, 924, - 417, 305, 394, 402, 294, 285, 181, 400, 292, 284, - 269, 230, 250, 338, 279, 339, 251, 301, 300, 302, - 0, 176, 0, 376, 411, 437, 194, 195, 196, 639, - 229, 233, 239, 241, 0, 247, 254, 272, 316, 337, - 335, 341, 720, 389, 406, 414, 421, 427, 428, 432, - 429, 430, 433, 304, 190, 253, 372, 268, 277, 712, - 748, 322, 353, 199, 409, 373, 634, 638, 632, 633, - 684, 685, 635, 740, 741, 742, 716, 628, 0, 636, - 637, 0, 722, 730, 731, 689, 170, 183, 273, 744, - 342, 237, 435, 416, 412, 614, 631, 215, 642, 0, - 0, 655, 662, 663, 675, 677, 678, 679, 680, 688, - 696, 697, 699, 707, 709, 711, 713, 718, 727, 747, - 172, 173, 184, 192, 202, 214, 227, 235, 245, 249, - 252, 256, 257, 260, 265, 282, 287, 288, 289, 290, - 306, 307, 308, 311, 314, 315, 318, 320, 321, 324, - 330, 331, 332, 333, 334, 336, 343, 347, 355, 356, - 357, 358, 359, 361, 362, 366, 367, 368, 369, 377, - 381, 396, 397, 408, 420, 425, 246, 404, 426, 0, - 281, 687, 694, 283, 231, 248, 258, 702, 415, 378, - 188, 349, 238, 177, 205, 191, 212, 226, 228, 262, - 291, 297, 326, 329, 243, 223, 203, 346, 200, 364, - 384, 385, 386, 388, 295, 219, 734, 721, 0, 0, - 670, 737, 641, 659, 746, 661, 664, 704, 620, 683, - 313, 656, 0, 645, 616, 652, 617, 643, 672, 222, - 676, 640, 723, 686, 736, 271, 0, 622, 646, 327, - 706, 365, 208, 280, 278, 393, 232, 225, 221, 207, - 255, 286, 325, 383, 319, 743, 275, 693, 0, 374, - 298, 0, 0, 0, 674, 726, 681, 717, 669, 705, - 630, 692, 738, 657, 701, 739, 261, 206, 175, 310, - 375, 236, 71, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 197, 0, 204, 698, - 733, 654, 700, 218, 259, 224, 217, 390, 703, 749, - 615, 695, 0, 618, 621, 745, 729, 649, 650, 0, - 0, 0, 0, 0, 0, 0, 673, 682, 714, 667, - 0, 0, 0, 0, 0, 0, 0, 0, 647, 0, - 691, 0, 0, 0, 626, 619, 0, 0, 0, 0, - 671, 0, 0, 0, 629, 0, 648, 715, 0, 613, - 244, 623, 299, 0, 719, 728, 668, 422, 732, 666, - 665, 735, 710, 627, 725, 660, 270, 625, 267, 171, - 186, 0, 658, 309, 348, 354, 724, 644, 653, 209, - 651, 352, 323, 407, 193, 234, 345, 328, 350, 690, - 708, 351, 276, 395, 340, 405, 423, 424, 216, 303, - 413, 387, 419, 434, 187, 213, 317, 380, 410, 371, - 296, 391, 392, 266, 370, 242, 174, 274, 431, 185, - 360, 201, 178, 382, 403, 198, 363, 0, 0, 0, - 180, 401, 379, 293, 263, 264, 179, 0, 344, 220, - 240, 211, 312, 398, 399, 210, 436, 189, 418, 182, - 924, 417, 305, 394, 402, 294, 285, 181, 400, 292, - 284, 269, 230, 250, 338, 279, 339, 251, 301, 300, - 302, 0, 176, 0, 376, 411, 437, 194, 195, 196, - 639, 229, 233, 239, 241, 0, 247, 254, 272, 316, - 337, 335, 341, 720, 389, 406, 414, 421, 427, 428, - 432, 429, 430, 433, 304, 190, 253, 372, 268, 277, - 712, 748, 322, 353, 199, 409, 373, 634, 638, 632, - 633, 684, 685, 635, 740, 741, 742, 716, 628, 0, - 636, 637, 0, 722, 730, 731, 689, 170, 183, 273, - 744, 342, 237, 435, 416, 412, 614, 631, 215, 642, - 0, 0, 655, 662, 663, 675, 677, 678, 679, 680, - 688, 696, 697, 699, 707, 709, 711, 713, 718, 727, - 747, 172, 173, 184, 192, 202, 214, 227, 235, 245, - 249, 252, 256, 257, 260, 265, 282, 287, 288, 289, - 290, 306, 307, 308, 311, 314, 315, 318, 320, 321, - 324, 330, 331, 332, 333, 334, 336, 343, 347, 355, - 356, 357, 358, 359, 361, 362, 366, 367, 368, 369, - 377, 381, 396, 397, 408, 420, 425, 246, 404, 426, - 0, 281, 687, 694, 283, 231, 248, 258, 702, 415, - 378, 188, 349, 238, 177, 205, 191, 212, 226, 228, - 262, 291, 297, 326, 329, 243, 223, 203, 346, 200, - 364, 384, 385, 386, 388, 295, 219, 734, 721, 0, - 0, 670, 737, 641, 659, 746, 661, 664, 704, 620, - 683, 313, 656, 0, 645, 616, 652, 617, 643, 672, - 222, 676, 640, 723, 686, 736, 271, 0, 622, 646, - 327, 706, 365, 208, 280, 278, 393, 232, 225, 221, - 207, 255, 286, 325, 383, 319, 743, 275, 693, 0, - 374, 298, 0, 0, 0, 674, 726, 681, 717, 669, - 705, 630, 692, 738, 657, 701, 739, 261, 206, 175, - 310, 375, 236, 0, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 197, 0, 204, - 698, 733, 654, 700, 218, 259, 224, 217, 390, 703, - 749, 615, 695, 0, 618, 621, 745, 729, 649, 650, - 0, 0, 0, 0, 0, 0, 0, 673, 682, 714, - 667, 0, 0, 0, 0, 0, 0, 0, 0, 647, - 0, 691, 0, 0, 0, 626, 619, 0, 0, 0, - 0, 671, 0, 0, 0, 629, 0, 648, 715, 0, - 613, 244, 623, 299, 0, 719, 728, 668, 422, 732, - 666, 665, 735, 710, 627, 725, 660, 270, 625, 267, - 171, 186, 0, 658, 309, 348, 354, 724, 644, 653, - 209, 651, 352, 323, 407, 193, 234, 345, 328, 350, - 690, 708, 351, 276, 395, 340, 405, 423, 424, 216, - 303, 413, 387, 419, 434, 187, 213, 317, 380, 410, - 371, 296, 391, 392, 266, 370, 242, 174, 274, 431, - 185, 360, 201, 178, 382, 403, 198, 363, 0, 0, - 0, 180, 401, 379, 293, 263, 264, 179, 0, 344, - 220, 240, 211, 312, 398, 399, 210, 436, 189, 418, - 182, 924, 417, 305, 394, 402, 294, 285, 181, 400, - 292, 284, 269, 230, 250, 338, 279, 339, 251, 301, - 300, 302, 0, 176, 0, 376, 411, 437, 194, 195, - 196, 639, 229, 233, 239, 241, 0, 247, 254, 272, - 316, 337, 335, 341, 720, 389, 406, 414, 421, 427, - 428, 432, 429, 430, 433, 304, 190, 253, 372, 268, - 277, 712, 748, 322, 353, 199, 409, 373, 634, 638, - 632, 633, 684, 685, 635, 740, 741, 742, 716, 628, - 0, 636, 637, 0, 722, 730, 731, 689, 170, 183, - 273, 744, 342, 237, 435, 416, 412, 614, 631, 215, - 642, 0, 0, 655, 662, 663, 675, 677, 678, 679, - 680, 688, 696, 697, 699, 707, 709, 711, 713, 718, - 727, 747, 172, 173, 184, 192, 202, 214, 227, 235, - 245, 249, 252, 256, 257, 260, 265, 282, 287, 288, - 289, 290, 306, 307, 308, 311, 314, 315, 318, 320, - 321, 324, 330, 331, 332, 333, 334, 336, 343, 347, - 355, 356, 357, 358, 359, 361, 362, 366, 367, 368, - 369, 377, 381, 396, 397, 408, 420, 425, 246, 404, - 426, 0, 281, 687, 694, 283, 231, 248, 258, 702, - 415, 378, 188, 349, 238, 177, 205, 191, 212, 226, - 228, 262, 291, 297, 326, 329, 243, 223, 203, 346, - 200, 364, 384, 385, 386, 388, 295, 219, 734, 721, - 0, 0, 670, 737, 641, 659, 746, 661, 664, 704, - 620, 683, 313, 656, 0, 645, 616, 652, 617, 643, - 672, 222, 676, 640, 723, 686, 736, 271, 0, 622, - 646, 327, 706, 365, 208, 280, 278, 393, 232, 225, - 221, 207, 255, 286, 325, 383, 319, 743, 275, 693, - 0, 374, 298, 0, 0, 0, 674, 726, 681, 717, - 669, 705, 630, 692, 738, 657, 701, 739, 261, 206, - 175, 310, 375, 236, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 197, 0, - 204, 698, 733, 654, 700, 218, 259, 224, 217, 390, - 703, 749, 615, 695, 0, 618, 621, 745, 729, 649, - 650, 0, 0, 0, 0, 0, 0, 0, 673, 682, - 714, 667, 0, 0, 0, 0, 0, 0, 0, 0, - 647, 0, 691, 0, 0, 0, 626, 619, 0, 0, - 0, 0, 671, 0, 0, 0, 629, 0, 648, 715, - 0, 613, 244, 623, 299, 0, 719, 728, 668, 422, - 732, 666, 665, 735, 710, 627, 725, 660, 270, 625, - 267, 171, 186, 0, 658, 309, 348, 354, 724, 644, - 653, 209, 651, 352, 323, 407, 193, 234, 345, 328, - 350, 690, 708, 351, 276, 395, 340, 405, 423, 424, - 216, 303, 413, 387, 419, 434, 187, 213, 317, 380, - 410, 371, 296, 391, 392, 266, 370, 242, 174, 274, - 431, 185, 360, 201, 178, 382, 403, 198, 363, 0, - 0, 0, 180, 401, 379, 293, 263, 264, 179, 0, - 344, 220, 240, 211, 312, 398, 399, 210, 436, 189, - 418, 182, 624, 417, 305, 394, 402, 294, 285, 181, - 400, 292, 284, 269, 230, 250, 338, 279, 339, 251, - 301, 300, 302, 0, 176, 0, 376, 411, 437, 194, - 195, 196, 639, 229, 233, 239, 241, 0, 247, 254, - 272, 316, 337, 335, 341, 720, 389, 406, 414, 421, - 427, 428, 432, 429, 430, 433, 612, 750, 606, 605, - 268, 277, 712, 748, 322, 353, 199, 409, 373, 634, - 638, 632, 633, 684, 685, 635, 740, 741, 742, 716, - 628, 0, 636, 637, 0, 722, 730, 731, 689, 170, - 183, 273, 744, 342, 237, 435, 416, 412, 614, 631, - 215, 642, 0, 0, 655, 662, 663, 675, 677, 678, - 679, 680, 688, 696, 697, 699, 707, 709, 711, 713, - 718, 727, 747, 172, 173, 184, 192, 202, 214, 227, - 235, 245, 249, 252, 256, 257, 260, 265, 282, 287, - 288, 289, 290, 306, 307, 308, 311, 314, 315, 318, - 320, 321, 324, 330, 331, 332, 333, 334, 336, 343, - 347, 355, 356, 357, 358, 359, 361, 362, 366, 367, - 368, 369, 377, 381, 396, 397, 408, 420, 425, 246, - 404, 426, 0, 281, 687, 694, 283, 231, 248, 258, - 702, 415, 378, 188, 349, 238, 177, 205, 191, 212, - 226, 228, 262, 291, 297, 326, 329, 243, 223, 203, - 346, 200, 364, 384, 385, 386, 388, 295, 219, 734, - 721, 0, 0, 670, 737, 641, 659, 746, 661, 664, - 704, 620, 683, 313, 656, 0, 645, 616, 652, 617, - 643, 672, 222, 676, 640, 723, 686, 736, 271, 0, - 622, 646, 327, 706, 365, 208, 280, 278, 393, 232, - 225, 221, 207, 255, 286, 325, 383, 319, 743, 275, - 693, 0, 374, 298, 0, 0, 0, 674, 726, 681, - 717, 669, 705, 630, 692, 738, 657, 701, 739, 261, - 206, 175, 310, 375, 236, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 197, - 0, 204, 698, 733, 654, 700, 218, 259, 224, 217, - 390, 703, 749, 615, 695, 0, 618, 621, 745, 729, - 649, 650, 0, 0, 0, 0, 0, 0, 0, 673, - 682, 714, 667, 0, 0, 0, 0, 0, 0, 0, - 0, 647, 0, 691, 0, 0, 0, 626, 619, 0, - 0, 0, 0, 671, 0, 0, 0, 629, 0, 648, - 715, 0, 613, 244, 623, 299, 0, 719, 728, 668, - 422, 732, 666, 665, 735, 710, 627, 725, 660, 270, - 625, 267, 171, 186, 0, 658, 309, 348, 354, 724, - 644, 653, 209, 651, 352, 323, 407, 193, 234, 345, - 328, 350, 690, 708, 351, 276, 395, 340, 405, 423, - 424, 216, 303, 413, 387, 419, 434, 187, 213, 317, - 380, 410, 371, 296, 391, 392, 266, 370, 242, 174, - 274, 431, 185, 360, 201, 178, 382, 1092, 198, 363, - 0, 0, 0, 180, 401, 379, 293, 263, 264, 179, - 0, 344, 220, 240, 211, 312, 398, 399, 210, 436, - 189, 418, 182, 624, 417, 305, 394, 402, 294, 285, - 181, 400, 292, 284, 269, 230, 250, 338, 279, 339, - 251, 301, 300, 302, 0, 176, 0, 376, 411, 437, - 194, 195, 196, 639, 229, 233, 239, 241, 0, 247, - 254, 272, 316, 337, 335, 341, 720, 389, 406, 414, - 421, 427, 428, 432, 429, 430, 433, 612, 750, 606, - 605, 268, 277, 712, 748, 322, 353, 199, 409, 373, - 634, 638, 632, 633, 684, 685, 635, 740, 741, 742, - 716, 628, 0, 636, 637, 0, 722, 730, 731, 689, - 170, 183, 273, 744, 342, 237, 435, 416, 412, 614, - 631, 215, 642, 0, 0, 655, 662, 663, 675, 677, - 678, 679, 680, 688, 696, 697, 699, 707, 709, 711, - 713, 718, 727, 747, 172, 173, 184, 192, 202, 214, - 227, 235, 245, 249, 252, 256, 257, 260, 265, 282, - 287, 288, 289, 290, 306, 307, 308, 311, 314, 315, - 318, 320, 321, 324, 330, 331, 332, 333, 334, 336, - 343, 347, 355, 356, 357, 358, 359, 361, 362, 366, - 367, 368, 369, 377, 381, 396, 397, 408, 420, 425, - 246, 404, 426, 0, 281, 687, 694, 283, 231, 248, - 258, 702, 415, 378, 188, 349, 238, 177, 205, 191, - 212, 226, 228, 262, 291, 297, 326, 329, 243, 223, - 203, 346, 200, 364, 384, 385, 386, 388, 295, 219, - 734, 721, 0, 0, 670, 737, 641, 659, 746, 661, - 664, 704, 620, 683, 313, 656, 0, 645, 616, 652, - 617, 643, 672, 222, 676, 640, 723, 686, 736, 271, - 0, 622, 646, 327, 706, 365, 208, 280, 278, 393, - 232, 225, 221, 207, 255, 286, 325, 383, 319, 743, - 275, 693, 0, 374, 298, 0, 0, 0, 674, 726, - 681, 717, 669, 705, 630, 692, 738, 657, 701, 739, - 261, 206, 175, 310, 375, 236, 0, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 197, 0, 204, 698, 733, 654, 700, 218, 259, 224, - 217, 390, 703, 749, 615, 695, 0, 618, 621, 745, - 729, 649, 650, 0, 0, 0, 0, 0, 0, 0, - 673, 682, 714, 667, 0, 0, 0, 0, 0, 0, - 0, 0, 647, 0, 691, 0, 0, 0, 626, 619, - 0, 0, 0, 0, 671, 0, 0, 0, 629, 0, - 648, 715, 0, 613, 244, 623, 299, 0, 719, 728, - 668, 422, 732, 666, 665, 735, 710, 627, 725, 660, - 270, 625, 267, 171, 186, 0, 658, 309, 348, 354, - 724, 644, 653, 209, 651, 352, 323, 407, 193, 234, - 345, 328, 350, 690, 708, 351, 276, 395, 340, 405, - 423, 424, 216, 303, 413, 387, 419, 434, 187, 213, - 317, 380, 410, 371, 296, 391, 392, 266, 370, 242, - 174, 274, 431, 185, 360, 201, 178, 382, 603, 198, - 363, 0, 0, 0, 180, 401, 379, 293, 263, 264, - 179, 0, 344, 220, 240, 211, 312, 398, 399, 210, - 436, 189, 418, 182, 624, 417, 305, 394, 402, 294, - 285, 181, 400, 292, 284, 269, 230, 250, 338, 279, - 339, 251, 301, 300, 302, 0, 176, 0, 376, 411, - 437, 194, 195, 196, 639, 229, 233, 239, 241, 0, - 247, 254, 272, 316, 337, 335, 341, 720, 389, 406, - 414, 421, 427, 428, 432, 429, 430, 433, 612, 750, - 606, 605, 268, 277, 712, 748, 322, 353, 199, 409, - 373, 634, 638, 632, 633, 684, 685, 635, 740, 741, - 742, 716, 628, 0, 636, 637, 0, 722, 730, 731, - 689, 170, 183, 273, 744, 342, 237, 435, 416, 412, - 614, 631, 215, 642, 0, 0, 655, 662, 663, 675, - 677, 678, 679, 680, 688, 696, 697, 699, 707, 709, - 711, 713, 718, 727, 747, 172, 173, 184, 192, 202, - 214, 227, 235, 245, 249, 252, 256, 257, 260, 265, - 282, 287, 288, 289, 290, 306, 307, 308, 311, 314, - 315, 318, 320, 321, 324, 330, 331, 332, 333, 334, - 336, 343, 347, 355, 356, 357, 358, 359, 361, 362, - 366, 367, 368, 369, 377, 381, 396, 397, 408, 420, - 425, 246, 404, 426, 0, 281, 687, 694, 283, 231, - 248, 258, 702, 415, 378, 188, 349, 238, 177, 205, - 191, 212, 226, 228, 262, 291, 297, 326, 329, 243, - 223, 203, 346, 200, 364, 384, 385, 386, 388, 295, - 219, 313, 0, 0, 1392, 0, 503, 0, 0, 0, - 222, 0, 502, 0, 0, 0, 271, 0, 0, 1393, - 327, 0, 365, 208, 280, 278, 393, 232, 225, 221, - 207, 255, 286, 325, 383, 319, 546, 275, 0, 0, - 374, 298, 0, 0, 0, 0, 0, 537, 538, 0, - 0, 0, 0, 0, 0, 0, 0, 261, 206, 175, - 310, 375, 236, 71, 0, 0, 167, 168, 169, 524, - 523, 526, 527, 528, 529, 0, 0, 197, 525, 204, - 530, 531, 532, 0, 218, 259, 224, 217, 390, 0, - 0, 0, 500, 517, 0, 545, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 514, 515, 593, 0, 0, - 0, 561, 0, 516, 0, 0, 509, 510, 512, 511, - 513, 518, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 244, 0, 299, 0, 560, 0, 0, 422, 0, - 0, 558, 0, 0, 0, 0, 0, 270, 0, 267, - 171, 186, 0, 0, 309, 348, 354, 0, 0, 0, - 209, 0, 352, 323, 407, 193, 234, 345, 328, 350, - 0, 0, 351, 276, 395, 340, 405, 423, 424, 216, - 303, 413, 387, 419, 434, 187, 213, 317, 380, 410, - 371, 296, 391, 392, 266, 370, 242, 174, 274, 431, - 185, 360, 201, 178, 382, 403, 198, 363, 0, 0, - 0, 180, 401, 379, 293, 263, 264, 179, 0, 344, - 220, 240, 211, 312, 398, 399, 210, 436, 189, 418, - 182, 0, 417, 305, 394, 402, 294, 285, 181, 400, - 292, 284, 269, 230, 250, 338, 279, 339, 251, 301, - 300, 302, 0, 176, 0, 376, 411, 437, 194, 195, - 196, 0, 229, 233, 239, 241, 0, 247, 254, 272, - 316, 337, 335, 341, 0, 389, 406, 414, 421, 427, - 428, 432, 429, 430, 433, 304, 190, 253, 372, 268, - 277, 0, 0, 322, 353, 199, 409, 373, 548, 559, - 554, 555, 552, 553, 547, 551, 550, 549, 562, 539, - 540, 541, 542, 544, 0, 556, 557, 543, 170, 183, - 273, 0, 342, 237, 435, 416, 412, 0, 0, 215, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 173, 184, 192, 202, 214, 227, 235, - 245, 249, 252, 256, 257, 260, 265, 282, 287, 288, - 289, 290, 306, 307, 308, 311, 314, 315, 318, 320, - 321, 324, 330, 331, 332, 333, 334, 336, 343, 347, - 355, 356, 357, 358, 359, 361, 362, 366, 367, 368, - 369, 377, 381, 396, 397, 408, 420, 425, 246, 404, - 426, 0, 281, 0, 0, 283, 231, 248, 258, 0, - 415, 378, 188, 349, 238, 177, 205, 191, 212, 226, - 228, 262, 291, 297, 326, 329, 243, 223, 203, 346, - 200, 364, 384, 385, 386, 388, 295, 219, 313, 0, - 0, 0, 0, 503, 0, 0, 0, 222, 0, 502, - 0, 0, 0, 271, 0, 0, 0, 327, 0, 365, - 208, 280, 278, 393, 232, 225, 221, 207, 255, 286, - 325, 383, 319, 546, 275, 0, 0, 374, 298, 0, - 0, 0, 0, 0, 537, 538, 0, 0, 0, 0, - 0, 0, 1505, 0, 261, 206, 175, 310, 375, 236, - 71, 0, 0, 167, 168, 169, 524, 523, 526, 527, - 528, 529, 0, 0, 197, 525, 204, 530, 531, 532, - 1506, 218, 259, 224, 217, 390, 0, 0, 0, 500, - 517, 0, 545, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 514, 515, 0, 0, 0, 0, 561, 0, - 516, 0, 0, 509, 510, 512, 511, 513, 518, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 244, 0, - 299, 0, 560, 0, 0, 422, 0, 0, 558, 0, - 0, 0, 0, 0, 270, 0, 267, 171, 186, 0, - 0, 309, 348, 354, 0, 0, 0, 209, 0, 352, - 323, 407, 193, 234, 345, 328, 350, 0, 0, 351, - 276, 395, 340, 405, 423, 424, 216, 303, 413, 387, - 419, 434, 187, 213, 317, 380, 410, 371, 296, 391, - 392, 266, 370, 242, 174, 274, 431, 185, 360, 201, - 178, 382, 403, 198, 363, 0, 0, 0, 180, 401, - 379, 293, 263, 264, 179, 0, 344, 220, 240, 211, - 312, 398, 399, 210, 436, 189, 418, 182, 0, 417, - 305, 394, 402, 294, 285, 181, 400, 292, 284, 269, - 230, 250, 338, 279, 339, 251, 301, 300, 302, 0, - 176, 0, 376, 411, 437, 194, 195, 196, 0, 229, - 233, 239, 241, 0, 247, 254, 272, 316, 337, 335, - 341, 0, 389, 406, 414, 421, 427, 428, 432, 429, - 430, 433, 304, 190, 253, 372, 268, 277, 0, 0, - 322, 353, 199, 409, 373, 548, 559, 554, 555, 552, - 553, 547, 551, 550, 549, 562, 539, 540, 541, 542, - 544, 0, 556, 557, 543, 170, 183, 273, 0, 342, - 237, 435, 416, 412, 0, 0, 215, 0, 0, 0, + 0, 0, 0, 0, 2101, 2102, 2103, 2104, 2105, 0, + 0, 0, 2108, 2109, 44, 47, 50, 49, 52, 0, + 64, 0, 0, 70, 1846, 1847, 1848, 1849, 1850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 184, 192, 202, 214, 227, 235, 245, 249, 252, - 256, 257, 260, 265, 282, 287, 288, 289, 290, 306, - 307, 308, 311, 314, 315, 318, 320, 321, 324, 330, - 331, 332, 333, 334, 336, 343, 347, 355, 356, 357, - 358, 359, 361, 362, 366, 367, 368, 369, 377, 381, - 396, 397, 408, 420, 425, 246, 404, 426, 0, 281, - 0, 0, 283, 231, 248, 258, 0, 415, 378, 188, - 349, 238, 177, 205, 191, 212, 226, 228, 262, 291, - 297, 326, 329, 243, 223, 203, 346, 200, 364, 384, - 385, 386, 388, 295, 219, 313, 0, 0, 0, 0, - 503, 0, 0, 0, 222, 0, 502, 0, 0, 0, - 271, 0, 0, 0, 327, 0, 365, 208, 280, 278, - 393, 232, 225, 221, 207, 255, 286, 325, 383, 319, - 546, 275, 0, 0, 374, 298, 0, 0, 0, 0, - 0, 537, 538, 0, 0, 0, 0, 0, 0, 0, - 0, 261, 206, 175, 310, 375, 236, 71, 0, 580, - 167, 168, 169, 524, 523, 526, 527, 528, 529, 0, - 0, 197, 525, 204, 530, 531, 532, 0, 218, 259, - 224, 217, 390, 0, 0, 0, 500, 517, 0, 545, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 514, - 515, 0, 0, 0, 0, 561, 0, 516, 0, 0, - 509, 510, 512, 511, 513, 518, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 244, 0, 299, 0, 560, - 0, 0, 422, 0, 0, 558, 0, 0, 0, 0, - 0, 270, 0, 267, 171, 186, 0, 0, 309, 348, - 354, 0, 0, 0, 209, 0, 352, 323, 407, 193, - 234, 345, 328, 350, 0, 0, 351, 276, 395, 340, - 405, 423, 424, 216, 303, 413, 387, 419, 434, 187, - 213, 317, 380, 410, 371, 296, 391, 392, 266, 370, - 242, 174, 274, 431, 185, 360, 201, 178, 382, 403, - 198, 363, 0, 0, 0, 180, 401, 379, 293, 263, - 264, 179, 0, 344, 220, 240, 211, 312, 398, 399, - 210, 436, 189, 418, 182, 0, 417, 305, 394, 402, - 294, 285, 181, 400, 292, 284, 269, 230, 250, 338, - 279, 339, 251, 301, 300, 302, 0, 176, 0, 376, - 411, 437, 194, 195, 196, 0, 229, 233, 239, 241, - 0, 247, 254, 272, 316, 337, 335, 341, 0, 389, - 406, 414, 421, 427, 428, 432, 429, 430, 433, 304, - 190, 253, 372, 268, 277, 0, 0, 322, 353, 199, - 409, 373, 548, 559, 554, 555, 552, 553, 547, 551, - 550, 549, 562, 539, 540, 541, 542, 544, 0, 556, - 557, 543, 170, 183, 273, 0, 342, 237, 435, 416, - 412, 0, 0, 215, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 184, 192, - 202, 214, 227, 235, 245, 249, 252, 256, 257, 260, - 265, 282, 287, 288, 289, 290, 306, 307, 308, 311, - 314, 315, 318, 320, 321, 324, 330, 331, 332, 333, - 334, 336, 343, 347, 355, 356, 357, 358, 359, 361, - 362, 366, 367, 368, 369, 377, 381, 396, 397, 408, - 420, 425, 246, 404, 426, 0, 281, 0, 0, 283, - 231, 248, 258, 0, 415, 378, 188, 349, 238, 177, - 205, 191, 212, 226, 228, 262, 291, 297, 326, 329, - 243, 223, 203, 346, 200, 364, 384, 385, 386, 388, - 295, 219, 313, 0, 0, 0, 0, 503, 0, 0, - 0, 222, 0, 502, 0, 0, 0, 271, 0, 0, - 0, 327, 0, 365, 208, 280, 278, 393, 232, 225, - 221, 207, 255, 286, 325, 383, 319, 546, 275, 0, - 0, 374, 298, 0, 0, 0, 0, 0, 537, 538, - 0, 0, 0, 0, 0, 0, 0, 0, 261, 206, - 175, 310, 375, 236, 71, 0, 0, 167, 168, 169, - 524, 523, 526, 527, 528, 529, 0, 0, 197, 525, - 204, 530, 531, 532, 0, 218, 259, 224, 217, 390, - 0, 0, 0, 500, 517, 0, 545, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 514, 515, 593, 0, - 0, 0, 561, 0, 516, 0, 0, 509, 510, 512, - 511, 513, 518, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 244, 0, 299, 0, 560, 0, 0, 422, - 0, 0, 558, 0, 0, 0, 0, 0, 270, 0, - 267, 171, 186, 0, 0, 309, 348, 354, 0, 0, - 0, 209, 0, 352, 323, 407, 193, 234, 345, 328, - 350, 0, 0, 351, 276, 395, 340, 405, 423, 424, - 216, 303, 413, 387, 419, 434, 187, 213, 317, 380, - 410, 371, 296, 391, 392, 266, 370, 242, 174, 274, - 431, 185, 360, 201, 178, 382, 403, 198, 363, 0, - 0, 0, 180, 401, 379, 293, 263, 264, 179, 0, - 344, 220, 240, 211, 312, 398, 399, 210, 436, 189, - 418, 182, 0, 417, 305, 394, 402, 294, 285, 181, - 400, 292, 284, 269, 230, 250, 338, 279, 339, 251, - 301, 300, 302, 0, 176, 0, 376, 411, 437, 194, - 195, 196, 0, 229, 233, 239, 241, 0, 247, 254, - 272, 316, 337, 335, 341, 0, 389, 406, 414, 421, - 427, 428, 432, 429, 430, 433, 304, 190, 253, 372, - 268, 277, 0, 0, 322, 353, 199, 409, 373, 548, - 559, 554, 555, 552, 553, 547, 551, 550, 549, 562, - 539, 540, 541, 542, 544, 0, 556, 557, 543, 170, - 183, 273, 0, 342, 237, 435, 416, 412, 0, 0, - 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 184, 192, 202, 214, 227, - 235, 245, 249, 252, 256, 257, 260, 265, 282, 287, - 288, 289, 290, 306, 307, 308, 311, 314, 315, 318, - 320, 321, 324, 330, 331, 332, 333, 334, 336, 343, - 347, 355, 356, 357, 358, 359, 361, 362, 366, 367, - 368, 369, 377, 381, 396, 397, 408, 420, 425, 246, - 404, 426, 0, 281, 0, 0, 283, 231, 248, 258, - 0, 415, 378, 188, 349, 238, 177, 205, 191, 212, - 226, 228, 262, 291, 297, 326, 329, 243, 223, 203, - 346, 200, 364, 384, 385, 386, 388, 295, 219, 313, - 0, 0, 0, 0, 503, 0, 0, 0, 222, 0, - 502, 0, 0, 0, 271, 0, 0, 0, 327, 0, - 365, 208, 280, 278, 393, 232, 225, 221, 207, 255, - 286, 325, 383, 319, 546, 275, 0, 0, 374, 298, - 0, 0, 0, 0, 0, 537, 538, 0, 0, 0, - 0, 0, 0, 0, 0, 261, 206, 175, 310, 375, - 236, 71, 0, 0, 167, 168, 169, 524, 1410, 526, - 527, 528, 529, 0, 0, 197, 525, 204, 530, 531, - 532, 0, 218, 259, 224, 217, 390, 0, 0, 0, - 500, 517, 0, 545, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 514, 515, 593, 0, 0, 0, 561, - 0, 516, 0, 0, 509, 510, 512, 511, 513, 518, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, - 0, 299, 0, 560, 0, 0, 422, 0, 0, 558, - 0, 0, 0, 0, 0, 270, 0, 267, 171, 186, - 0, 0, 309, 348, 354, 0, 0, 0, 209, 0, - 352, 323, 407, 193, 234, 345, 328, 350, 0, 0, - 351, 276, 395, 340, 405, 423, 424, 216, 303, 413, - 387, 419, 434, 187, 213, 317, 380, 410, 371, 296, - 391, 392, 266, 370, 242, 174, 274, 431, 185, 360, - 201, 178, 382, 403, 198, 363, 0, 0, 0, 180, - 401, 379, 293, 263, 264, 179, 0, 344, 220, 240, - 211, 312, 398, 399, 210, 436, 189, 418, 182, 0, - 417, 305, 394, 402, 294, 285, 181, 400, 292, 284, - 269, 230, 250, 338, 279, 339, 251, 301, 300, 302, - 0, 176, 0, 376, 411, 437, 194, 195, 196, 0, - 229, 233, 239, 241, 0, 247, 254, 272, 316, 337, - 335, 341, 0, 389, 406, 414, 421, 427, 428, 432, - 429, 430, 433, 304, 190, 253, 372, 268, 277, 0, - 0, 322, 353, 199, 409, 373, 548, 559, 554, 555, - 552, 553, 547, 551, 550, 549, 562, 539, 540, 541, - 542, 544, 0, 556, 557, 543, 170, 183, 273, 0, - 342, 237, 435, 416, 412, 0, 0, 215, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 184, 192, 202, 214, 227, 235, 245, 249, - 252, 256, 257, 260, 265, 282, 287, 288, 289, 290, - 306, 307, 308, 311, 314, 315, 318, 320, 321, 324, - 330, 331, 332, 333, 334, 336, 343, 347, 355, 356, - 357, 358, 359, 361, 362, 366, 367, 368, 369, 377, - 381, 396, 397, 408, 420, 425, 246, 404, 426, 0, - 281, 0, 0, 283, 231, 248, 258, 0, 415, 378, - 188, 349, 238, 177, 205, 191, 212, 226, 228, 262, - 291, 297, 326, 329, 243, 223, 203, 346, 200, 364, - 384, 385, 386, 388, 295, 219, 313, 0, 0, 0, - 0, 503, 0, 0, 0, 222, 0, 502, 0, 0, - 0, 271, 0, 0, 0, 327, 0, 365, 208, 280, - 278, 393, 232, 225, 221, 207, 255, 286, 325, 383, - 319, 546, 275, 0, 0, 374, 298, 0, 0, 0, - 0, 0, 537, 538, 0, 0, 0, 0, 0, 0, - 0, 0, 261, 206, 175, 310, 375, 236, 71, 0, - 0, 167, 168, 169, 524, 1407, 526, 527, 528, 529, - 0, 0, 197, 525, 204, 530, 531, 532, 0, 218, - 259, 224, 217, 390, 0, 0, 0, 500, 517, 0, - 545, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 514, 515, 593, 0, 0, 0, 561, 0, 516, 0, - 0, 509, 510, 512, 511, 513, 518, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 244, 0, 299, 0, - 560, 0, 0, 422, 0, 0, 558, 0, 0, 0, - 0, 0, 270, 0, 267, 171, 186, 0, 0, 309, - 348, 354, 0, 0, 0, 209, 0, 352, 323, 407, - 193, 234, 345, 328, 350, 0, 0, 351, 276, 395, - 340, 405, 423, 424, 216, 303, 413, 387, 419, 434, - 187, 213, 317, 380, 410, 371, 296, 391, 392, 266, - 370, 242, 174, 274, 431, 185, 360, 201, 178, 382, - 403, 198, 363, 0, 0, 0, 180, 401, 379, 293, - 263, 264, 179, 0, 344, 220, 240, 211, 312, 398, - 399, 210, 436, 189, 418, 182, 0, 417, 305, 394, - 402, 294, 285, 181, 400, 292, 284, 269, 230, 250, - 338, 279, 339, 251, 301, 300, 302, 0, 176, 0, - 376, 411, 437, 194, 195, 196, 0, 229, 233, 239, - 241, 0, 247, 254, 272, 316, 337, 335, 341, 0, - 389, 406, 414, 421, 427, 428, 432, 429, 430, 433, - 304, 190, 253, 372, 268, 277, 0, 0, 322, 353, - 199, 409, 373, 548, 559, 554, 555, 552, 553, 547, - 551, 550, 549, 562, 539, 540, 541, 542, 544, 0, - 556, 557, 543, 170, 183, 273, 0, 342, 237, 435, - 416, 412, 0, 0, 215, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 184, - 192, 202, 214, 227, 235, 245, 249, 252, 256, 257, - 260, 265, 282, 287, 288, 289, 290, 306, 307, 308, - 311, 314, 315, 318, 320, 321, 324, 330, 331, 332, - 333, 334, 336, 343, 347, 355, 356, 357, 358, 359, - 361, 362, 366, 367, 368, 369, 377, 381, 396, 397, - 408, 420, 425, 246, 404, 426, 0, 281, 0, 0, - 283, 231, 248, 258, 0, 415, 378, 188, 349, 238, - 177, 205, 191, 212, 226, 228, 262, 291, 297, 326, - 329, 243, 223, 203, 346, 200, 364, 384, 385, 386, - 388, 295, 219, 573, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, - 0, 503, 0, 0, 0, 222, 0, 502, 0, 0, - 0, 271, 0, 0, 0, 327, 0, 365, 208, 280, - 278, 393, 232, 225, 221, 207, 255, 286, 325, 383, - 319, 546, 275, 0, 0, 374, 298, 0, 0, 0, - 0, 0, 537, 538, 0, 0, 0, 0, 0, 0, - 0, 0, 261, 206, 175, 310, 375, 236, 71, 0, - 0, 167, 168, 169, 524, 523, 526, 527, 528, 529, - 0, 0, 197, 525, 204, 530, 531, 532, 0, 218, - 259, 224, 217, 390, 0, 0, 0, 500, 517, 0, - 545, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 514, 515, 0, 0, 0, 0, 561, 0, 516, 0, - 0, 509, 510, 512, 511, 513, 518, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 244, 0, 299, 0, - 560, 0, 0, 422, 0, 0, 558, 0, 0, 0, - 0, 0, 270, 0, 267, 171, 186, 0, 0, 309, - 348, 354, 0, 0, 0, 209, 0, 352, 323, 407, - 193, 234, 345, 328, 350, 0, 0, 351, 276, 395, - 340, 405, 423, 424, 216, 303, 413, 387, 419, 434, - 187, 213, 317, 380, 410, 371, 296, 391, 392, 266, - 370, 242, 174, 274, 431, 185, 360, 201, 178, 382, - 403, 198, 363, 0, 0, 0, 180, 401, 379, 293, - 263, 264, 179, 0, 344, 220, 240, 211, 312, 398, - 399, 210, 436, 189, 418, 182, 0, 417, 305, 394, - 402, 294, 285, 181, 400, 292, 284, 269, 230, 250, - 338, 279, 339, 251, 301, 300, 302, 0, 176, 0, - 376, 411, 437, 194, 195, 196, 0, 229, 233, 239, - 241, 0, 247, 254, 272, 316, 337, 335, 341, 0, - 389, 406, 414, 421, 427, 428, 432, 429, 430, 433, - 304, 190, 253, 372, 268, 277, 0, 0, 322, 353, - 199, 409, 373, 548, 559, 554, 555, 552, 553, 547, - 551, 550, 549, 562, 539, 540, 541, 542, 544, 0, - 556, 557, 543, 170, 183, 273, 0, 342, 237, 435, - 416, 412, 0, 0, 215, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 184, - 192, 202, 214, 227, 235, 245, 249, 252, 256, 257, - 260, 265, 282, 287, 288, 289, 290, 306, 307, 308, - 311, 314, 315, 318, 320, 321, 324, 330, 331, 332, - 333, 334, 336, 343, 347, 355, 356, 357, 358, 359, - 361, 362, 366, 367, 368, 369, 377, 381, 396, 397, - 408, 420, 425, 246, 404, 426, 0, 281, 0, 0, - 283, 231, 248, 258, 0, 415, 378, 188, 349, 238, - 177, 205, 191, 212, 226, 228, 262, 291, 297, 326, - 329, 243, 223, 203, 346, 200, 364, 384, 385, 386, - 388, 295, 219, 313, 0, 0, 0, 0, 503, 0, - 0, 0, 222, 0, 502, 0, 0, 0, 271, 0, - 0, 0, 327, 0, 365, 208, 280, 278, 393, 232, - 225, 221, 207, 255, 286, 325, 383, 319, 546, 275, - 0, 0, 374, 298, 0, 0, 0, 0, 0, 537, - 538, 0, 0, 0, 0, 0, 0, 0, 0, 261, - 206, 175, 310, 375, 236, 71, 0, 0, 167, 168, - 169, 524, 523, 526, 527, 528, 529, 0, 0, 197, - 525, 204, 530, 531, 532, 0, 218, 259, 224, 217, - 390, 0, 0, 0, 500, 517, 0, 545, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 514, 515, 0, - 0, 0, 0, 561, 0, 516, 0, 0, 509, 510, - 512, 511, 513, 518, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 244, 0, 299, 0, 560, 0, 0, - 422, 0, 0, 558, 0, 0, 0, 0, 0, 270, - 0, 267, 171, 186, 0, 0, 309, 348, 354, 0, - 0, 0, 209, 0, 352, 323, 407, 193, 234, 345, - 328, 350, 0, 0, 351, 276, 395, 340, 405, 423, - 424, 216, 303, 413, 387, 419, 434, 187, 213, 317, - 380, 410, 371, 296, 391, 392, 266, 370, 242, 174, - 274, 431, 185, 360, 201, 178, 382, 403, 198, 363, - 0, 0, 0, 180, 401, 379, 293, 263, 264, 179, - 0, 344, 220, 240, 211, 312, 398, 399, 210, 436, - 189, 418, 182, 0, 417, 305, 394, 402, 294, 285, - 181, 400, 292, 284, 269, 230, 250, 338, 279, 339, - 251, 301, 300, 302, 0, 176, 0, 376, 411, 437, - 194, 195, 196, 0, 229, 233, 239, 241, 0, 247, - 254, 272, 316, 337, 335, 341, 0, 389, 406, 414, - 421, 427, 428, 432, 429, 430, 433, 304, 190, 253, - 372, 268, 277, 0, 0, 322, 353, 199, 409, 373, - 548, 559, 554, 555, 552, 553, 547, 551, 550, 549, - 562, 539, 540, 541, 542, 544, 0, 556, 557, 543, - 170, 183, 273, 0, 342, 237, 435, 416, 412, 0, - 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 184, 192, 202, 214, - 227, 235, 245, 249, 252, 256, 257, 260, 265, 282, - 287, 288, 289, 290, 306, 307, 308, 311, 314, 315, - 318, 320, 321, 324, 330, 331, 332, 333, 334, 336, - 343, 347, 355, 356, 357, 358, 359, 361, 362, 366, - 367, 368, 369, 377, 381, 396, 397, 408, 420, 425, - 246, 404, 426, 0, 281, 0, 0, 283, 231, 248, - 258, 0, 415, 378, 188, 349, 238, 177, 205, 191, - 212, 226, 228, 262, 291, 297, 326, 329, 243, 223, - 203, 346, 200, 364, 384, 385, 386, 388, 295, 219, - 313, 0, 0, 0, 0, 0, 0, 0, 0, 222, - 0, 0, 0, 0, 0, 271, 0, 0, 0, 327, - 0, 365, 208, 280, 278, 393, 232, 225, 221, 207, - 255, 286, 325, 383, 319, 546, 275, 0, 0, 374, - 298, 0, 0, 0, 0, 0, 537, 538, 0, 0, - 0, 0, 0, 0, 0, 0, 261, 206, 175, 310, - 375, 236, 71, 0, 0, 167, 168, 169, 524, 523, - 526, 527, 528, 529, 0, 0, 197, 525, 204, 530, - 531, 532, 0, 218, 259, 224, 217, 390, 0, 0, - 0, 0, 517, 0, 545, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 514, 515, 0, 0, 0, 0, - 561, 0, 516, 0, 0, 509, 510, 512, 511, 513, - 518, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 244, 0, 299, 0, 560, 0, 0, 422, 0, 0, - 558, 0, 0, 0, 0, 0, 270, 0, 267, 171, - 186, 0, 0, 309, 348, 354, 0, 0, 0, 209, - 0, 352, 323, 407, 193, 234, 345, 328, 350, 2199, - 0, 351, 276, 395, 340, 405, 423, 424, 216, 303, - 413, 387, 419, 434, 187, 213, 317, 380, 410, 371, - 296, 391, 392, 266, 370, 242, 174, 274, 431, 185, - 360, 201, 178, 382, 403, 198, 363, 0, 0, 0, - 180, 401, 379, 293, 263, 264, 179, 0, 344, 220, - 240, 211, 312, 398, 399, 210, 436, 189, 418, 182, - 0, 417, 305, 394, 402, 294, 285, 181, 400, 292, - 284, 269, 230, 250, 338, 279, 339, 251, 301, 300, - 302, 0, 176, 0, 376, 411, 437, 194, 195, 196, - 0, 229, 233, 239, 241, 0, 247, 254, 272, 316, - 337, 335, 341, 0, 389, 406, 414, 421, 427, 428, - 432, 429, 430, 433, 304, 190, 253, 372, 268, 277, - 0, 0, 322, 353, 199, 409, 373, 548, 559, 554, - 555, 552, 553, 547, 551, 550, 549, 562, 539, 540, - 541, 542, 544, 0, 556, 557, 543, 170, 183, 273, - 0, 342, 237, 435, 416, 412, 0, 0, 215, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 184, 192, 202, 214, 227, 235, 245, - 249, 252, 256, 257, 260, 265, 282, 287, 288, 289, - 290, 306, 307, 308, 311, 314, 315, 318, 320, 321, - 324, 330, 331, 332, 333, 334, 336, 343, 347, 355, - 356, 357, 358, 359, 361, 362, 366, 367, 368, 369, - 377, 381, 396, 397, 408, 420, 425, 246, 404, 426, - 0, 281, 0, 0, 283, 231, 248, 258, 0, 415, - 378, 188, 349, 238, 177, 205, 191, 212, 226, 228, - 262, 291, 297, 326, 329, 243, 223, 203, 346, 200, - 364, 384, 385, 386, 388, 295, 219, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 222, 0, 0, 0, - 0, 0, 271, 0, 0, 0, 327, 0, 365, 208, - 280, 278, 393, 232, 225, 221, 207, 255, 286, 325, - 383, 319, 546, 275, 0, 0, 374, 298, 0, 0, - 0, 0, 0, 537, 538, 0, 0, 0, 0, 0, - 0, 0, 0, 261, 206, 175, 310, 375, 236, 71, - 0, 580, 167, 168, 169, 524, 523, 526, 527, 528, - 529, 0, 0, 197, 525, 204, 530, 531, 532, 0, - 218, 259, 224, 217, 390, 0, 0, 0, 0, 517, - 0, 545, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 514, 515, 0, 0, 0, 0, 561, 0, 516, - 0, 0, 509, 510, 512, 511, 513, 518, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 244, 0, 299, - 0, 560, 0, 0, 422, 0, 0, 558, 0, 0, - 0, 0, 0, 270, 0, 267, 171, 186, 0, 0, - 309, 348, 354, 0, 0, 0, 209, 0, 352, 323, - 407, 193, 234, 345, 328, 350, 0, 0, 351, 276, - 395, 340, 405, 423, 424, 216, 303, 413, 387, 419, - 434, 187, 213, 317, 380, 410, 371, 296, 391, 392, - 266, 370, 242, 174, 274, 431, 185, 360, 201, 178, - 382, 403, 198, 363, 0, 0, 0, 180, 401, 379, - 293, 263, 264, 179, 0, 344, 220, 240, 211, 312, - 398, 399, 210, 436, 189, 418, 182, 0, 417, 305, - 394, 402, 294, 285, 181, 400, 292, 284, 269, 230, - 250, 338, 279, 339, 251, 301, 300, 302, 0, 176, - 0, 376, 411, 437, 194, 195, 196, 0, 229, 233, - 239, 241, 0, 247, 254, 272, 316, 337, 335, 341, - 0, 389, 406, 414, 421, 427, 428, 432, 429, 430, - 433, 304, 190, 253, 372, 268, 277, 0, 0, 322, - 353, 199, 409, 373, 548, 559, 554, 555, 552, 553, - 547, 551, 550, 549, 562, 539, 540, 541, 542, 544, - 0, 556, 557, 543, 170, 183, 273, 0, 342, 237, - 435, 416, 412, 0, 0, 215, 0, 0, 0, 0, + 1090, 1856, 0, 0, 0, 0, 53, 75, 74, 0, + 0, 62, 63, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 184, 192, 202, 214, 227, 235, 245, 249, 252, 256, - 257, 260, 265, 282, 287, 288, 289, 290, 306, 307, - 308, 311, 314, 315, 318, 320, 321, 324, 330, 331, - 332, 333, 334, 336, 343, 347, 355, 356, 357, 358, - 359, 361, 362, 366, 367, 368, 369, 377, 381, 396, - 397, 408, 420, 425, 246, 404, 426, 0, 281, 0, - 0, 283, 231, 248, 258, 0, 415, 378, 188, 349, - 238, 177, 205, 191, 212, 226, 228, 262, 291, 297, - 326, 329, 243, 223, 203, 346, 200, 364, 384, 385, - 386, 388, 295, 219, 313, 0, 0, 0, 0, 0, - 0, 0, 0, 222, 0, 0, 0, 0, 0, 271, - 0, 0, 0, 327, 0, 365, 208, 280, 278, 393, - 232, 225, 221, 207, 255, 286, 325, 383, 319, 546, - 275, 0, 0, 374, 298, 0, 0, 0, 0, 0, - 537, 538, 0, 0, 0, 0, 0, 0, 0, 0, - 261, 206, 175, 310, 375, 236, 71, 0, 0, 167, - 168, 169, 524, 523, 526, 527, 528, 529, 0, 0, - 197, 525, 204, 530, 531, 532, 0, 218, 259, 224, - 217, 390, 0, 0, 0, 0, 517, 0, 545, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 514, 515, - 0, 0, 0, 0, 561, 0, 516, 0, 0, 509, - 510, 512, 511, 513, 518, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 244, 0, 299, 0, 560, 0, - 0, 422, 0, 0, 558, 0, 0, 0, 0, 0, - 270, 0, 267, 171, 186, 0, 0, 309, 348, 354, - 0, 0, 0, 209, 0, 352, 323, 407, 193, 234, - 345, 328, 350, 0, 0, 351, 276, 395, 340, 405, - 423, 424, 216, 303, 413, 387, 419, 434, 187, 213, - 317, 380, 410, 371, 296, 391, 392, 266, 370, 242, - 174, 274, 431, 185, 360, 201, 178, 382, 403, 198, - 363, 0, 0, 0, 180, 401, 379, 293, 263, 264, - 179, 0, 344, 220, 240, 211, 312, 398, 399, 210, - 436, 189, 418, 182, 0, 417, 305, 394, 402, 294, - 285, 181, 400, 292, 284, 269, 230, 250, 338, 279, - 339, 251, 301, 300, 302, 0, 176, 0, 376, 411, - 437, 194, 195, 196, 0, 229, 233, 239, 241, 0, - 247, 254, 272, 316, 337, 335, 341, 0, 389, 406, - 414, 421, 427, 428, 432, 429, 430, 433, 304, 190, - 253, 372, 268, 277, 0, 0, 322, 353, 199, 409, - 373, 548, 559, 554, 555, 552, 553, 547, 551, 550, - 549, 562, 539, 540, 541, 542, 544, 0, 556, 557, - 543, 170, 183, 273, 0, 342, 237, 435, 416, 412, - 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 184, 192, 202, - 214, 227, 235, 245, 249, 252, 256, 257, 260, 265, - 282, 287, 288, 289, 290, 306, 307, 308, 311, 314, - 315, 318, 320, 321, 324, 330, 331, 332, 333, 334, - 336, 343, 347, 355, 356, 357, 358, 359, 361, 362, - 366, 367, 368, 369, 377, 381, 396, 397, 408, 420, - 425, 246, 404, 426, 0, 281, 0, 0, 283, 231, - 248, 258, 0, 415, 378, 188, 349, 238, 177, 205, - 191, 212, 226, 228, 262, 291, 297, 326, 329, 243, - 223, 203, 346, 200, 364, 384, 385, 386, 388, 295, - 219, 313, 0, 0, 0, 0, 0, 0, 0, 0, - 222, 796, 0, 0, 0, 0, 271, 0, 0, 0, - 327, 0, 365, 208, 280, 278, 393, 232, 225, 221, - 207, 255, 286, 325, 383, 319, 0, 275, 0, 0, - 374, 298, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 261, 206, 175, - 310, 375, 236, 0, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 197, 0, 204, - 0, 0, 0, 0, 218, 259, 224, 217, 390, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 244, 0, 299, 0, 0, 0, 795, 422, 0, - 0, 0, 0, 0, 0, 792, 793, 270, 758, 267, - 171, 186, 786, 790, 309, 348, 354, 0, 0, 0, - 209, 0, 352, 323, 407, 193, 234, 345, 328, 350, - 0, 0, 351, 276, 395, 340, 405, 423, 424, 216, - 303, 413, 387, 419, 434, 187, 213, 317, 380, 410, - 371, 296, 391, 392, 266, 370, 242, 174, 274, 431, - 185, 360, 201, 178, 382, 403, 198, 363, 0, 0, - 0, 180, 401, 379, 293, 263, 264, 179, 0, 344, - 220, 240, 211, 312, 398, 399, 210, 436, 189, 418, - 182, 0, 417, 305, 394, 402, 294, 285, 181, 400, - 292, 284, 269, 230, 250, 338, 279, 339, 251, 301, - 300, 302, 0, 176, 0, 376, 411, 437, 194, 195, - 196, 0, 229, 233, 239, 241, 0, 247, 254, 272, - 316, 337, 335, 341, 0, 389, 406, 414, 421, 427, - 428, 432, 429, 430, 433, 304, 190, 253, 372, 268, - 277, 0, 0, 322, 353, 199, 409, 373, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 170, 183, - 273, 0, 342, 237, 435, 416, 412, 0, 0, 215, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 173, 184, 192, 202, 214, 227, 235, - 245, 249, 252, 256, 257, 260, 265, 282, 287, 288, - 289, 290, 306, 307, 308, 311, 314, 315, 318, 320, - 321, 324, 330, 331, 332, 333, 334, 336, 343, 347, - 355, 356, 357, 358, 359, 361, 362, 366, 367, 368, - 369, 377, 381, 396, 397, 408, 420, 425, 246, 404, - 426, 0, 281, 0, 0, 283, 231, 248, 258, 0, - 415, 378, 188, 349, 238, 177, 205, 191, 212, 226, - 228, 262, 291, 297, 326, 329, 243, 223, 203, 346, - 200, 364, 384, 385, 386, 388, 295, 219, 313, 0, - 0, 0, 1070, 0, 0, 0, 0, 222, 0, 0, - 0, 0, 0, 271, 0, 0, 0, 327, 0, 365, - 208, 280, 278, 393, 232, 225, 221, 207, 255, 286, - 325, 383, 319, 0, 275, 0, 0, 374, 298, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 261, 206, 175, 310, 375, 236, - 0, 0, 0, 167, 168, 169, 0, 1072, 0, 0, - 0, 0, 0, 0, 197, 0, 204, 0, 0, 0, - 0, 218, 259, 224, 217, 390, 956, 957, 955, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 958, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 244, 0, - 299, 0, 0, 0, 0, 422, 0, 0, 0, 0, - 0, 0, 0, 0, 270, 0, 267, 171, 186, 0, - 0, 309, 348, 354, 0, 0, 0, 209, 0, 352, - 323, 407, 193, 234, 345, 328, 350, 0, 0, 351, - 276, 395, 340, 405, 423, 424, 216, 303, 413, 387, - 419, 434, 187, 213, 317, 380, 410, 371, 296, 391, - 392, 266, 370, 242, 174, 274, 431, 185, 360, 201, - 178, 382, 403, 198, 363, 0, 0, 0, 180, 401, - 379, 293, 263, 264, 179, 0, 344, 220, 240, 211, - 312, 398, 399, 210, 436, 189, 418, 182, 0, 417, - 305, 394, 402, 294, 285, 181, 400, 292, 284, 269, - 230, 250, 338, 279, 339, 251, 301, 300, 302, 0, - 176, 0, 376, 411, 437, 194, 195, 196, 0, 229, - 233, 239, 241, 0, 247, 254, 272, 316, 337, 335, - 341, 0, 389, 406, 414, 421, 427, 428, 432, 429, - 430, 433, 304, 190, 253, 372, 268, 277, 0, 0, - 322, 353, 199, 409, 373, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 183, 273, 0, 342, - 237, 435, 416, 412, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 184, 192, 202, 214, 227, 235, 245, 249, 252, - 256, 257, 260, 265, 282, 287, 288, 289, 290, 306, - 307, 308, 311, 314, 315, 318, 320, 321, 324, 330, - 331, 332, 333, 334, 336, 343, 347, 355, 356, 357, - 358, 359, 361, 362, 366, 367, 368, 369, 377, 381, - 396, 397, 408, 420, 425, 246, 404, 426, 0, 281, - 0, 0, 283, 231, 248, 258, 0, 415, 378, 188, - 349, 238, 177, 205, 191, 212, 226, 228, 262, 291, - 297, 326, 329, 243, 223, 203, 346, 200, 364, 384, - 385, 386, 388, 295, 219, 35, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, - 0, 0, 0, 0, 0, 0, 0, 222, 0, 0, - 0, 0, 0, 271, 0, 0, 0, 327, 0, 365, - 208, 280, 278, 393, 232, 225, 221, 207, 255, 286, - 325, 383, 319, 0, 275, 0, 0, 374, 298, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 261, 206, 175, 310, 375, 236, - 71, 0, 580, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 197, 0, 204, 0, 0, 0, - 0, 218, 259, 224, 217, 390, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 244, 0, - 299, 0, 0, 0, 0, 422, 0, 0, 0, 0, - 0, 0, 0, 0, 270, 0, 267, 171, 186, 0, - 0, 309, 348, 354, 0, 0, 0, 209, 0, 352, - 323, 407, 193, 234, 345, 328, 350, 0, 0, 351, - 276, 395, 340, 405, 423, 424, 216, 303, 413, 387, - 419, 434, 187, 213, 317, 380, 410, 371, 296, 391, - 392, 266, 370, 242, 174, 274, 431, 185, 360, 201, - 178, 382, 403, 198, 363, 0, 0, 0, 180, 401, - 379, 293, 263, 264, 179, 0, 344, 220, 240, 211, - 312, 398, 399, 210, 436, 189, 418, 182, 0, 417, - 305, 394, 402, 294, 285, 181, 400, 292, 284, 269, - 230, 250, 338, 279, 339, 251, 301, 300, 302, 0, - 176, 0, 376, 411, 437, 194, 195, 196, 0, 229, - 233, 239, 241, 0, 247, 254, 272, 316, 337, 335, - 341, 0, 389, 406, 414, 421, 427, 428, 432, 429, - 430, 433, 304, 190, 253, 372, 268, 277, 0, 0, - 322, 353, 199, 409, 373, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 183, 273, 0, 342, - 237, 435, 416, 412, 0, 0, 215, 0, 0, 0, + 0, 0, 0, 0, 0, 1921, 0, 34, 0, 0, + 0, 0, 55, 56, 0, 57, 58, 59, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 184, 192, 202, 214, 227, 235, 245, 249, 252, - 256, 257, 260, 265, 282, 287, 288, 289, 290, 306, - 307, 308, 311, 314, 315, 318, 320, 321, 324, 330, - 331, 332, 333, 334, 336, 343, 347, 355, 356, 357, - 358, 359, 361, 362, 366, 367, 368, 369, 377, 381, - 396, 397, 408, 420, 425, 246, 404, 426, 0, 281, - 0, 0, 283, 231, 248, 258, 0, 415, 378, 188, - 349, 238, 177, 205, 191, 212, 226, 228, 262, 291, - 297, 326, 329, 243, 223, 203, 346, 200, 364, 384, - 385, 386, 388, 295, 219, 313, 0, 0, 0, 1437, - 0, 0, 0, 0, 222, 0, 0, 0, 0, 0, - 271, 0, 0, 0, 327, 0, 365, 208, 280, 278, - 393, 232, 225, 221, 207, 255, 286, 325, 383, 319, - 0, 275, 0, 0, 374, 298, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 261, 206, 175, 310, 375, 236, 0, 0, 0, - 167, 168, 169, 0, 1439, 0, 0, 0, 0, 0, - 0, 197, 0, 204, 0, 0, 0, 0, 218, 259, - 224, 217, 390, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 244, 0, 299, 0, 0, - 0, 0, 422, 0, 0, 0, 0, 0, 0, 0, - 0, 270, 0, 267, 171, 186, 0, 0, 309, 348, - 354, 0, 0, 0, 209, 0, 352, 323, 407, 193, - 234, 345, 328, 350, 0, 1435, 351, 276, 395, 340, - 405, 423, 424, 216, 303, 413, 387, 419, 434, 187, - 213, 317, 380, 410, 371, 296, 391, 392, 266, 370, - 242, 174, 274, 431, 185, 360, 201, 178, 382, 403, - 198, 363, 0, 0, 0, 180, 401, 379, 293, 263, - 264, 179, 0, 344, 220, 240, 211, 312, 398, 399, - 210, 436, 189, 418, 182, 0, 417, 305, 394, 402, - 294, 285, 181, 400, 292, 284, 269, 230, 250, 338, - 279, 339, 251, 301, 300, 302, 0, 176, 0, 376, - 411, 437, 194, 195, 196, 0, 229, 233, 239, 241, - 0, 247, 254, 272, 316, 337, 335, 341, 0, 389, - 406, 414, 421, 427, 428, 432, 429, 430, 433, 304, - 190, 253, 372, 268, 277, 0, 0, 322, 353, 199, - 409, 373, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 183, 273, 0, 342, 237, 435, 416, - 412, 0, 0, 215, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 184, 192, - 202, 214, 227, 235, 245, 249, 252, 256, 257, 260, - 265, 282, 287, 288, 289, 290, 306, 307, 308, 311, - 314, 315, 318, 320, 321, 324, 330, 331, 332, 333, - 334, 336, 343, 347, 355, 356, 357, 358, 359, 361, - 362, 366, 367, 368, 369, 377, 381, 396, 397, 408, - 420, 425, 246, 404, 426, 0, 281, 0, 0, 283, - 231, 248, 258, 0, 415, 378, 188, 349, 238, 177, - 205, 191, 212, 226, 228, 262, 291, 297, 326, 329, - 243, 223, 203, 346, 200, 364, 384, 385, 386, 388, - 295, 219, 313, 0, 0, 0, 0, 0, 0, 0, - 0, 222, 0, 0, 0, 0, 0, 271, 0, 0, - 0, 327, 0, 365, 208, 280, 278, 393, 232, 225, - 221, 207, 255, 286, 325, 383, 319, 0, 275, 0, - 0, 374, 298, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 261, 206, - 175, 310, 375, 236, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 197, 0, - 204, 0, 0, 0, 0, 218, 259, 224, 217, 390, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 752, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 244, 0, 299, 0, 0, 0, 0, 422, - 0, 0, 0, 0, 0, 0, 0, 0, 270, 758, - 267, 171, 186, 756, 0, 309, 348, 354, 0, 0, - 0, 209, 0, 352, 323, 407, 193, 234, 345, 328, - 350, 0, 0, 351, 276, 395, 340, 405, 423, 424, - 216, 303, 413, 387, 419, 434, 187, 213, 317, 380, - 410, 371, 296, 391, 392, 266, 370, 242, 174, 274, - 431, 185, 360, 201, 178, 382, 403, 198, 363, 0, - 0, 0, 180, 401, 379, 293, 263, 264, 179, 0, - 344, 220, 240, 211, 312, 398, 399, 210, 436, 189, - 418, 182, 0, 417, 305, 394, 402, 294, 285, 181, - 400, 292, 284, 269, 230, 250, 338, 279, 339, 251, - 301, 300, 302, 0, 176, 0, 376, 411, 437, 194, - 195, 196, 0, 229, 233, 239, 241, 0, 247, 254, - 272, 316, 337, 335, 341, 0, 389, 406, 414, 421, - 427, 428, 432, 429, 430, 433, 304, 190, 253, 372, - 268, 277, 0, 0, 322, 353, 199, 409, 373, 0, + 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1909, 0, 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, - 183, 273, 0, 342, 237, 435, 416, 412, 0, 0, - 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 184, 192, 202, 214, 227, - 235, 245, 249, 252, 256, 257, 260, 265, 282, 287, - 288, 289, 290, 306, 307, 308, 311, 314, 315, 318, - 320, 321, 324, 330, 331, 332, 333, 334, 336, 343, - 347, 355, 356, 357, 358, 359, 361, 362, 366, 367, - 368, 369, 377, 381, 396, 397, 408, 420, 425, 246, - 404, 426, 0, 281, 0, 0, 283, 231, 248, 258, - 0, 415, 378, 188, 349, 238, 177, 205, 191, 212, - 226, 228, 262, 291, 297, 326, 329, 243, 223, 203, - 346, 200, 364, 384, 385, 386, 388, 295, 219, 313, - 0, 0, 0, 1437, 0, 0, 0, 0, 222, 0, - 0, 0, 0, 0, 271, 0, 0, 0, 327, 0, - 365, 208, 280, 278, 393, 232, 225, 221, 207, 255, - 286, 325, 383, 319, 0, 275, 0, 0, 374, 298, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 261, 206, 175, 310, 375, - 236, 0, 0, 0, 167, 168, 169, 0, 1439, 0, - 0, 0, 0, 0, 0, 197, 0, 204, 0, 0, - 0, 0, 218, 259, 224, 217, 390, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, - 0, 299, 0, 0, 0, 0, 422, 0, 0, 0, - 0, 0, 0, 0, 0, 270, 0, 267, 171, 186, - 0, 0, 309, 348, 354, 0, 0, 0, 209, 0, - 352, 323, 407, 193, 234, 345, 328, 350, 0, 0, - 351, 276, 395, 340, 405, 423, 424, 216, 303, 413, - 387, 419, 434, 187, 213, 317, 380, 410, 371, 296, - 391, 392, 266, 370, 242, 174, 274, 431, 185, 360, - 201, 178, 382, 403, 198, 363, 0, 0, 0, 180, - 401, 379, 293, 263, 264, 179, 0, 344, 220, 240, - 211, 312, 398, 399, 210, 436, 189, 418, 182, 0, - 417, 305, 394, 402, 294, 285, 181, 400, 292, 284, - 269, 230, 250, 338, 279, 339, 251, 301, 300, 302, - 0, 176, 0, 376, 411, 437, 194, 195, 196, 0, - 229, 233, 239, 241, 0, 247, 254, 272, 316, 337, - 335, 341, 0, 389, 406, 414, 421, 427, 428, 432, - 429, 430, 433, 304, 190, 253, 372, 268, 277, 0, - 0, 322, 353, 199, 409, 373, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 183, 273, 0, - 342, 237, 435, 416, 412, 0, 0, 215, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 184, 192, 202, 214, 227, 235, 245, 249, - 252, 256, 257, 260, 265, 282, 287, 288, 289, 290, - 306, 307, 308, 311, 314, 315, 318, 320, 321, 324, - 330, 331, 332, 333, 334, 336, 343, 347, 355, 356, - 357, 358, 359, 361, 362, 366, 367, 368, 369, 377, - 381, 396, 397, 408, 420, 425, 246, 404, 426, 0, - 281, 0, 0, 283, 231, 248, 258, 0, 415, 378, - 188, 349, 238, 177, 205, 191, 212, 226, 228, 262, - 291, 297, 326, 329, 243, 223, 203, 346, 200, 364, - 384, 385, 386, 388, 295, 219, 35, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 0, 0, 222, 0, - 0, 0, 0, 0, 271, 0, 0, 0, 327, 0, - 365, 208, 280, 278, 393, 232, 225, 221, 207, 255, - 286, 325, 383, 319, 0, 275, 0, 0, 374, 298, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 261, 206, 175, 310, 375, - 236, 71, 0, 0, 167, 168, 169, 0, 0, 0, - 0, 0, 0, 0, 0, 197, 0, 204, 0, 0, - 0, 0, 218, 259, 224, 217, 390, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, - 0, 299, 0, 0, 0, 0, 422, 0, 0, 0, - 0, 0, 0, 0, 0, 270, 0, 267, 171, 186, - 0, 0, 309, 348, 354, 0, 0, 0, 209, 0, - 352, 323, 407, 193, 234, 345, 328, 350, 0, 0, - 351, 276, 395, 340, 405, 423, 424, 216, 303, 413, - 387, 419, 434, 187, 213, 317, 380, 410, 371, 296, - 391, 392, 266, 370, 242, 174, 274, 431, 185, 360, - 201, 178, 382, 403, 198, 363, 0, 0, 0, 180, - 401, 379, 293, 263, 264, 179, 0, 344, 220, 240, - 211, 312, 398, 399, 210, 436, 189, 418, 182, 0, - 417, 305, 394, 402, 294, 285, 181, 400, 292, 284, - 269, 230, 250, 338, 279, 339, 251, 301, 300, 302, - 0, 176, 0, 376, 411, 437, 194, 195, 196, 0, - 229, 233, 239, 241, 0, 247, 254, 272, 316, 337, - 335, 341, 0, 389, 406, 414, 421, 427, 428, 432, - 429, 430, 433, 304, 190, 253, 372, 268, 277, 0, - 0, 322, 353, 199, 409, 373, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 183, 273, 0, - 342, 237, 435, 416, 412, 0, 0, 215, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 184, 192, 202, 214, 227, 235, 245, 249, - 252, 256, 257, 260, 265, 282, 287, 288, 289, 290, - 306, 307, 308, 311, 314, 315, 318, 320, 321, 324, - 330, 331, 332, 333, 334, 336, 343, 347, 355, 356, - 357, 358, 359, 361, 362, 366, 367, 368, 369, 377, - 381, 396, 397, 408, 420, 425, 246, 404, 426, 0, - 281, 0, 0, 283, 231, 248, 258, 0, 415, 378, - 188, 349, 238, 177, 205, 191, 212, 226, 228, 262, - 291, 297, 326, 329, 243, 223, 203, 346, 200, 364, - 384, 385, 386, 388, 295, 219, 313, 0, 0, 0, - 0, 0, 0, 0, 0, 222, 0, 0, 0, 0, - 0, 271, 0, 0, 0, 327, 0, 365, 208, 280, - 278, 393, 232, 225, 221, 207, 255, 286, 325, 383, - 319, 0, 275, 0, 0, 374, 298, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 261, 206, 175, 310, 375, 236, 0, 0, - 0, 167, 168, 169, 0, 0, 1458, 0, 0, 1459, - 0, 0, 197, 0, 204, 0, 0, 0, 0, 218, - 259, 224, 217, 390, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 244, 0, 299, 0, - 0, 0, 0, 422, 0, 0, 0, 0, 0, 0, - 0, 0, 270, 0, 267, 171, 186, 0, 0, 309, - 348, 354, 0, 0, 0, 209, 0, 352, 323, 407, - 193, 234, 345, 328, 350, 0, 0, 351, 276, 395, - 340, 405, 423, 424, 216, 303, 413, 387, 419, 434, - 187, 213, 317, 380, 410, 371, 296, 391, 392, 266, - 370, 242, 174, 274, 431, 185, 360, 201, 178, 382, - 403, 198, 363, 0, 0, 0, 180, 401, 379, 293, - 263, 264, 179, 0, 344, 220, 240, 211, 312, 398, - 399, 210, 436, 189, 418, 182, 0, 417, 305, 394, - 402, 294, 285, 181, 400, 292, 284, 269, 230, 250, - 338, 279, 339, 251, 301, 300, 302, 0, 176, 0, - 376, 411, 437, 194, 195, 196, 0, 229, 233, 239, - 241, 0, 247, 254, 272, 316, 337, 335, 341, 0, - 389, 406, 414, 421, 427, 428, 432, 429, 430, 433, - 304, 190, 253, 372, 268, 277, 0, 0, 322, 353, - 199, 409, 373, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 183, 273, 0, 342, 237, 435, - 416, 412, 0, 0, 215, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 184, - 192, 202, 214, 227, 235, 245, 249, 252, 256, 257, - 260, 265, 282, 287, 288, 289, 290, 306, 307, 308, - 311, 314, 315, 318, 320, 321, 324, 330, 331, 332, - 333, 334, 336, 343, 347, 355, 356, 357, 358, 359, - 361, 362, 366, 367, 368, 369, 377, 381, 396, 397, - 408, 420, 425, 246, 404, 426, 0, 281, 0, 0, - 283, 231, 248, 258, 0, 415, 378, 188, 349, 238, - 177, 205, 191, 212, 226, 228, 262, 291, 297, 326, - 329, 243, 223, 203, 346, 200, 364, 384, 385, 386, - 388, 295, 219, 313, 0, 0, 0, 0, 0, 0, - 0, 0, 222, 0, 1103, 0, 0, 0, 271, 0, - 0, 0, 327, 0, 365, 208, 280, 278, 393, 232, - 225, 221, 207, 255, 286, 325, 383, 319, 0, 275, - 0, 0, 374, 298, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, - 206, 175, 310, 375, 236, 0, 0, 0, 167, 168, - 169, 0, 1102, 0, 0, 0, 0, 0, 0, 197, - 0, 204, 0, 0, 0, 0, 218, 259, 224, 217, - 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 244, 0, 299, 0, 0, 0, 0, - 422, 0, 0, 0, 0, 0, 0, 0, 0, 270, - 0, 267, 171, 186, 0, 0, 309, 348, 354, 0, - 0, 0, 209, 0, 352, 323, 407, 193, 234, 345, - 328, 350, 0, 0, 351, 276, 395, 340, 405, 423, - 424, 216, 303, 413, 387, 419, 434, 187, 213, 317, - 380, 410, 371, 296, 391, 392, 266, 370, 242, 174, - 274, 431, 185, 360, 201, 178, 382, 403, 198, 363, - 0, 0, 0, 180, 401, 379, 293, 263, 264, 179, - 0, 344, 220, 240, 211, 312, 398, 399, 210, 436, - 189, 418, 182, 0, 417, 305, 394, 402, 294, 285, - 181, 400, 292, 284, 269, 230, 250, 338, 279, 339, - 251, 301, 300, 302, 0, 176, 0, 376, 411, 437, - 194, 195, 196, 0, 229, 233, 239, 241, 0, 247, - 254, 272, 316, 337, 335, 341, 0, 389, 406, 414, - 421, 427, 428, 432, 429, 430, 433, 304, 190, 253, - 372, 268, 277, 0, 0, 322, 353, 199, 409, 373, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 183, 273, 0, 342, 237, 435, 416, 412, 0, - 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 184, 192, 202, 214, - 227, 235, 245, 249, 252, 256, 257, 260, 265, 282, - 287, 288, 289, 290, 306, 307, 308, 311, 314, 315, - 318, 320, 321, 324, 330, 331, 332, 333, 334, 336, - 343, 347, 355, 356, 357, 358, 359, 361, 362, 366, - 367, 368, 369, 377, 381, 396, 397, 408, 420, 425, - 246, 404, 426, 0, 281, 0, 0, 283, 231, 248, - 258, 0, 415, 378, 188, 349, 238, 177, 205, 191, - 212, 226, 228, 262, 291, 297, 326, 329, 243, 223, - 203, 346, 200, 364, 384, 385, 386, 388, 295, 219, - 313, 0, 0, 0, 0, 0, 0, 0, 0, 222, - 0, 0, 0, 0, 0, 271, 0, 0, 0, 327, - 0, 365, 208, 280, 278, 393, 232, 225, 221, 207, - 255, 286, 325, 383, 319, 0, 275, 0, 0, 374, - 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 261, 206, 175, 310, - 375, 236, 0, 0, 580, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 197, 0, 204, 0, - 0, 0, 0, 218, 259, 224, 217, 390, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 244, 0, 299, 0, 0, 0, 0, 422, 0, 0, - 0, 0, 0, 0, 0, 0, 270, 0, 267, 171, - 186, 0, 0, 309, 348, 354, 0, 0, 0, 209, - 0, 352, 323, 407, 193, 234, 345, 328, 350, 0, - 0, 351, 276, 395, 340, 405, 423, 424, 216, 303, - 413, 387, 419, 434, 187, 213, 317, 380, 410, 371, - 296, 391, 392, 266, 370, 242, 174, 274, 431, 185, - 360, 201, 178, 382, 403, 198, 363, 0, 0, 0, - 180, 401, 379, 293, 263, 264, 179, 0, 344, 220, - 240, 211, 312, 398, 399, 210, 436, 189, 418, 182, - 0, 417, 305, 394, 402, 294, 285, 181, 400, 292, - 284, 269, 230, 250, 338, 279, 339, 251, 301, 300, - 302, 0, 176, 0, 376, 411, 437, 194, 195, 196, - 0, 229, 233, 239, 241, 0, 247, 254, 272, 316, - 337, 335, 341, 0, 389, 406, 414, 421, 427, 428, - 432, 429, 430, 433, 304, 190, 253, 372, 268, 277, - 0, 0, 322, 353, 199, 409, 373, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 183, 273, - 0, 342, 237, 435, 416, 412, 0, 0, 215, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 184, 192, 202, 214, 227, 235, 245, - 249, 252, 256, 257, 260, 265, 282, 287, 288, 289, - 290, 306, 307, 308, 311, 314, 315, 318, 320, 321, - 324, 330, 331, 332, 333, 334, 336, 343, 347, 355, - 356, 357, 358, 359, 361, 362, 366, 367, 368, 369, - 377, 381, 396, 397, 408, 420, 425, 246, 404, 426, - 0, 281, 0, 0, 283, 231, 248, 258, 0, 415, - 378, 188, 349, 238, 177, 205, 191, 212, 226, 228, - 262, 291, 297, 326, 329, 243, 223, 203, 346, 200, - 364, 384, 385, 386, 388, 295, 219, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 222, 0, 0, 0, - 0, 0, 271, 0, 0, 0, 327, 0, 365, 208, - 280, 278, 393, 232, 225, 221, 207, 255, 286, 325, - 383, 319, 0, 275, 0, 0, 374, 298, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 261, 206, 175, 310, 375, 236, 71, - 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, - 0, 0, 0, 197, 0, 204, 0, 0, 0, 0, - 218, 259, 224, 217, 390, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 244, 0, 299, - 0, 0, 0, 0, 422, 0, 0, 0, 0, 0, - 0, 0, 0, 270, 0, 267, 171, 186, 0, 0, - 309, 348, 354, 0, 0, 0, 209, 0, 352, 323, - 407, 193, 234, 345, 328, 350, 0, 0, 351, 276, - 395, 340, 405, 423, 424, 216, 303, 413, 387, 419, - 434, 187, 213, 317, 380, 410, 371, 296, 391, 392, - 266, 370, 242, 174, 274, 431, 185, 360, 201, 178, - 382, 403, 198, 363, 0, 0, 0, 180, 401, 379, - 293, 263, 264, 179, 0, 344, 220, 240, 211, 312, - 398, 399, 210, 436, 189, 418, 182, 0, 417, 305, - 394, 402, 294, 285, 181, 400, 292, 284, 269, 230, - 250, 338, 279, 339, 251, 301, 300, 302, 0, 176, - 0, 376, 411, 437, 194, 195, 196, 0, 229, 233, - 239, 241, 0, 247, 254, 272, 316, 337, 335, 341, - 0, 389, 406, 414, 421, 427, 428, 432, 429, 430, - 433, 304, 190, 253, 372, 268, 277, 0, 0, 322, - 353, 199, 409, 373, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 183, 273, 0, 342, 237, - 435, 416, 412, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 184, 192, 202, 214, 227, 235, 245, 249, 252, 256, - 257, 260, 265, 282, 287, 288, 289, 290, 306, 307, - 308, 311, 314, 315, 318, 320, 321, 324, 330, 331, - 332, 333, 334, 336, 343, 347, 355, 356, 357, 358, - 359, 361, 362, 366, 367, 368, 369, 377, 381, 396, - 397, 408, 420, 425, 246, 404, 426, 0, 281, 0, - 0, 283, 231, 248, 258, 0, 415, 378, 188, 349, - 238, 177, 205, 191, 212, 226, 228, 262, 291, 297, - 326, 329, 243, 223, 203, 346, 200, 364, 384, 385, - 386, 388, 295, 219, 313, 0, 0, 0, 0, 0, - 0, 0, 0, 222, 0, 0, 0, 0, 0, 271, - 0, 0, 0, 327, 0, 365, 208, 280, 278, 393, - 232, 225, 221, 207, 255, 286, 325, 383, 319, 0, - 275, 0, 0, 374, 298, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 261, 206, 175, 310, 375, 236, 0, 0, 0, 167, - 168, 169, 0, 1439, 0, 0, 0, 0, 0, 0, - 197, 0, 204, 0, 0, 0, 0, 218, 259, 224, - 217, 390, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 244, 0, 299, 0, 0, 0, - 0, 422, 0, 0, 0, 0, 0, 0, 0, 0, - 270, 0, 267, 171, 186, 0, 0, 309, 348, 354, - 0, 0, 0, 209, 0, 352, 323, 407, 193, 234, - 345, 328, 350, 0, 0, 351, 276, 395, 340, 405, - 423, 424, 216, 303, 413, 387, 419, 434, 187, 213, - 317, 380, 410, 371, 296, 391, 392, 266, 370, 242, - 174, 274, 431, 185, 360, 201, 178, 382, 403, 198, - 363, 0, 0, 0, 180, 401, 379, 293, 263, 264, - 179, 0, 344, 220, 240, 211, 312, 398, 399, 210, - 436, 189, 418, 182, 0, 417, 305, 394, 402, 294, - 285, 181, 400, 292, 284, 269, 230, 250, 338, 279, - 339, 251, 301, 300, 302, 0, 176, 0, 376, 411, - 437, 194, 195, 196, 0, 229, 233, 239, 241, 0, - 247, 254, 272, 316, 337, 335, 341, 0, 389, 406, - 414, 421, 427, 428, 432, 429, 430, 433, 304, 190, - 253, 372, 268, 277, 0, 0, 322, 353, 199, 409, - 373, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 183, 273, 0, 342, 237, 435, 416, 412, - 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 184, 192, 202, - 214, 227, 235, 245, 249, 252, 256, 257, 260, 265, - 282, 287, 288, 289, 290, 306, 307, 308, 311, 314, - 315, 318, 320, 321, 324, 330, 331, 332, 333, 334, - 336, 343, 347, 355, 356, 357, 358, 359, 361, 362, - 366, 367, 368, 369, 377, 381, 396, 397, 408, 420, - 425, 246, 404, 426, 0, 281, 0, 0, 283, 231, - 248, 258, 0, 415, 378, 188, 349, 238, 177, 205, - 191, 212, 226, 228, 262, 291, 297, 326, 329, 243, - 223, 203, 346, 200, 364, 384, 385, 386, 388, 295, - 219, 313, 0, 0, 0, 0, 0, 0, 0, 0, - 222, 0, 0, 0, 0, 0, 271, 0, 0, 0, - 327, 0, 365, 208, 280, 278, 393, 232, 225, 221, - 207, 255, 286, 325, 383, 319, 0, 275, 0, 0, - 374, 298, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 261, 206, 175, - 310, 375, 236, 0, 0, 0, 167, 168, 169, 0, - 1072, 0, 0, 0, 0, 0, 0, 197, 0, 204, - 0, 0, 0, 0, 218, 259, 224, 217, 390, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 244, 0, 299, 0, 0, 0, 0, 422, 0, - 0, 0, 0, 0, 0, 0, 0, 270, 0, 267, - 171, 186, 0, 0, 309, 348, 354, 0, 0, 0, - 209, 0, 352, 323, 407, 193, 234, 345, 328, 350, - 0, 0, 351, 276, 395, 340, 405, 423, 424, 216, - 303, 413, 387, 419, 434, 187, 213, 317, 380, 410, - 371, 296, 391, 392, 266, 370, 242, 174, 274, 431, - 185, 360, 201, 178, 382, 403, 198, 363, 0, 0, - 0, 180, 401, 379, 293, 263, 264, 179, 0, 344, - 220, 240, 211, 312, 398, 399, 210, 436, 189, 418, - 182, 0, 417, 305, 394, 402, 294, 285, 181, 400, - 292, 284, 269, 230, 250, 338, 279, 339, 251, 301, - 300, 302, 0, 176, 0, 376, 411, 437, 194, 195, - 196, 0, 229, 233, 239, 241, 0, 247, 254, 272, - 316, 337, 335, 341, 0, 389, 406, 414, 421, 427, - 428, 432, 429, 430, 433, 304, 190, 253, 372, 268, - 277, 0, 0, 322, 353, 199, 409, 373, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 170, 183, - 273, 0, 342, 237, 435, 416, 412, 0, 0, 215, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 173, 184, 192, 202, 214, 227, 235, - 245, 249, 252, 256, 257, 260, 265, 282, 287, 288, - 289, 290, 306, 307, 308, 311, 314, 315, 318, 320, - 321, 324, 330, 331, 332, 333, 334, 336, 343, 347, - 355, 356, 357, 358, 359, 361, 362, 366, 367, 368, - 369, 377, 381, 396, 397, 408, 420, 425, 246, 404, - 426, 0, 281, 0, 0, 283, 231, 248, 258, 0, - 415, 378, 188, 349, 238, 177, 205, 191, 212, 226, - 228, 262, 291, 297, 326, 329, 243, 223, 203, 346, - 200, 364, 384, 385, 386, 388, 295, 219, 313, 0, - 0, 0, 0, 0, 0, 0, 0, 222, 0, 0, - 0, 0, 0, 271, 0, 0, 0, 327, 0, 365, - 208, 280, 278, 393, 232, 225, 221, 207, 255, 286, - 325, 383, 319, 0, 275, 0, 0, 374, 298, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 261, 206, 175, 310, 375, 236, + 0, 0, 0, 0, 0, 0, 0, 2203, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1975, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1988, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1991, 0, 2028, 0, 0, 0, 0, 0, + 0, 2034, 2035, 2036, 0, 0, 2002, 0, 0, 2005, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2075, 0, 0, 2076, 2077, + 2078, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1921, 0, 34, 0, 1921, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1921, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2177, 0, 0, 0, + 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2178, + 0, 0, 0, 0, 0, 0, 736, 723, 0, 2184, + 672, 739, 642, 660, 748, 663, 666, 706, 621, 685, + 314, 657, 0, 646, 617, 653, 618, 644, 674, 223, + 678, 641, 725, 688, 738, 272, 0, 623, 647, 328, + 662, 176, 708, 366, 209, 281, 279, 394, 233, 226, + 222, 208, 256, 287, 326, 384, 320, 745, 276, 695, + 0, 375, 299, 0, 0, 0, 676, 728, 683, 719, + 671, 707, 631, 694, 740, 658, 703, 741, 262, 207, + 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, + 0, 2211, 2212, 0, 0, 0, 0, 0, 198, 0, + 205, 700, 735, 655, 702, 219, 260, 225, 218, 391, + 705, 751, 616, 697, 0, 619, 622, 747, 731, 650, + 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, + 716, 669, 0, 0, 0, 0, 0, 0, 0, 0, + 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, + 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, + 0, 614, 245, 624, 300, 0, 721, 730, 670, 423, + 734, 668, 667, 737, 712, 628, 727, 661, 271, 626, + 268, 171, 187, 0, 659, 310, 349, 355, 726, 645, + 654, 210, 652, 353, 324, 408, 194, 235, 346, 329, + 351, 692, 710, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 926, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 714, 750, 323, 354, 200, 410, 374, 635, + 639, 633, 634, 686, 687, 636, 742, 743, 744, 718, + 629, 0, 637, 638, 0, 724, 732, 733, 691, 170, + 184, 274, 746, 343, 238, 436, 417, 413, 615, 632, + 216, 643, 0, 0, 656, 664, 665, 677, 679, 680, + 681, 682, 690, 698, 699, 701, 709, 711, 713, 715, + 720, 729, 749, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 689, 696, 284, 232, 249, 259, + 704, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 736, + 723, 0, 0, 672, 739, 642, 660, 748, 663, 666, + 706, 621, 685, 314, 657, 0, 646, 617, 653, 618, + 644, 674, 223, 678, 641, 725, 688, 738, 272, 0, + 623, 647, 328, 662, 176, 708, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 745, 276, 695, 0, 375, 299, 0, 0, 0, 676, + 728, 683, 719, 671, 707, 631, 694, 740, 658, 703, + 741, 262, 207, 175, 311, 376, 237, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 700, 735, 655, 702, 219, 260, + 225, 218, 391, 705, 751, 616, 697, 0, 619, 622, + 747, 731, 650, 651, 0, 0, 0, 0, 0, 0, + 0, 675, 684, 716, 669, 0, 0, 0, 0, 0, + 0, 1913, 0, 648, 0, 693, 0, 0, 0, 627, + 620, 0, 0, 0, 0, 673, 0, 0, 0, 630, + 0, 649, 717, 0, 614, 245, 624, 300, 0, 721, + 730, 670, 423, 734, 668, 667, 737, 712, 628, 727, + 661, 271, 626, 268, 171, 187, 0, 659, 310, 349, + 355, 726, 645, 654, 210, 652, 353, 324, 408, 194, + 235, 346, 329, 351, 692, 710, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 926, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 640, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 722, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 714, 750, 323, 354, 200, + 410, 374, 635, 639, 633, 634, 686, 687, 636, 742, + 743, 744, 718, 629, 0, 637, 638, 0, 724, 732, + 733, 691, 170, 184, 274, 746, 343, 238, 436, 417, + 413, 615, 632, 216, 643, 0, 0, 656, 664, 665, + 677, 679, 680, 681, 682, 690, 698, 699, 701, 709, + 711, 713, 715, 720, 729, 749, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 689, 696, 284, + 232, 249, 259, 704, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 736, 723, 0, 0, 672, 739, 642, 660, + 748, 663, 666, 706, 621, 685, 314, 657, 0, 646, + 617, 653, 618, 644, 674, 223, 678, 641, 725, 688, + 738, 272, 0, 623, 647, 328, 662, 176, 708, 366, + 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, + 326, 384, 320, 745, 276, 695, 0, 375, 299, 0, + 0, 0, 676, 728, 683, 719, 671, 707, 631, 694, + 740, 658, 703, 741, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 197, 0, 204, 0, 0, 0, - 0, 218, 259, 224, 217, 390, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 244, 0, - 299, 0, 0, 0, 0, 422, 0, 0, 0, 0, - 0, 0, 0, 0, 270, 0, 267, 171, 186, 0, - 0, 309, 348, 354, 0, 0, 0, 209, 0, 352, - 323, 407, 193, 234, 345, 328, 350, 0, 0, 351, - 276, 395, 340, 405, 423, 424, 216, 303, 413, 387, - 419, 434, 187, 213, 317, 380, 410, 371, 296, 391, - 392, 266, 370, 242, 174, 274, 431, 185, 360, 201, - 178, 382, 403, 198, 363, 0, 0, 0, 180, 401, - 379, 293, 263, 264, 179, 0, 344, 220, 240, 211, - 312, 398, 399, 210, 436, 189, 418, 182, 0, 417, - 305, 394, 402, 294, 285, 181, 400, 292, 284, 269, - 230, 250, 338, 279, 339, 251, 301, 300, 302, 0, - 176, 0, 376, 411, 437, 194, 195, 196, 0, 229, - 233, 239, 241, 0, 247, 254, 272, 316, 337, 335, - 341, 0, 389, 406, 414, 421, 427, 428, 432, 429, - 430, 433, 304, 190, 253, 372, 268, 277, 0, 0, - 322, 353, 199, 409, 373, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 183, 273, 1342, 342, - 237, 435, 416, 412, 0, 0, 215, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 700, 735, 655, + 702, 219, 260, 225, 218, 391, 705, 751, 616, 697, + 0, 619, 622, 747, 731, 650, 651, 0, 0, 0, + 0, 0, 0, 0, 675, 684, 716, 669, 0, 0, + 0, 0, 0, 0, 1756, 0, 648, 0, 693, 0, + 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, + 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, + 300, 0, 721, 730, 670, 423, 734, 668, 667, 737, + 712, 628, 727, 661, 271, 626, 268, 171, 187, 0, + 659, 310, 349, 355, 726, 645, 654, 210, 652, 353, + 324, 408, 194, 235, 346, 329, 351, 692, 710, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 926, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 640, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 722, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 305, 191, 254, 373, 269, 278, 714, 750, + 323, 354, 200, 410, 374, 635, 639, 633, 634, 686, + 687, 636, 742, 743, 744, 718, 629, 0, 637, 638, + 0, 724, 732, 733, 691, 170, 184, 274, 746, 343, + 238, 436, 417, 413, 615, 632, 216, 643, 0, 0, + 656, 664, 665, 677, 679, 680, 681, 682, 690, 698, + 699, 701, 709, 711, 713, 715, 720, 729, 749, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 689, 696, 284, 232, 249, 259, 704, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 736, 723, 0, 0, 672, + 739, 642, 660, 748, 663, 666, 706, 621, 685, 314, + 657, 0, 646, 617, 653, 618, 644, 674, 223, 678, + 641, 725, 688, 738, 272, 0, 623, 647, 328, 662, + 176, 708, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 745, 276, 695, 0, + 375, 299, 0, 0, 0, 676, 728, 683, 719, 671, + 707, 631, 694, 740, 658, 703, 741, 262, 207, 175, + 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 700, 735, 655, 702, 219, 260, 225, 218, 391, 705, + 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, + 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, + 669, 0, 0, 0, 0, 0, 0, 1468, 0, 648, + 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, + 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, + 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, + 668, 667, 737, 712, 628, 727, 661, 271, 626, 268, + 171, 187, 0, 659, 310, 349, 355, 726, 645, 654, + 210, 652, 353, 324, 408, 194, 235, 346, 329, 351, + 692, 710, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 926, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 640, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 722, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 714, 750, 323, 354, 200, 410, 374, 635, 639, + 633, 634, 686, 687, 636, 742, 743, 744, 718, 629, + 0, 637, 638, 0, 724, 732, 733, 691, 170, 184, + 274, 746, 343, 238, 436, 417, 413, 615, 632, 216, + 643, 0, 0, 656, 664, 665, 677, 679, 680, 681, + 682, 690, 698, 699, 701, 709, 711, 713, 715, 720, + 729, 749, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 689, 696, 284, 232, 249, 259, 704, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 736, 723, + 0, 0, 672, 739, 642, 660, 748, 663, 666, 706, + 621, 685, 314, 657, 0, 646, 617, 653, 618, 644, + 674, 223, 678, 641, 725, 688, 738, 272, 0, 623, + 647, 328, 662, 176, 708, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 745, + 276, 695, 0, 375, 299, 0, 0, 0, 676, 728, + 683, 719, 671, 707, 631, 694, 740, 658, 703, 741, + 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 700, 735, 655, 702, 219, 260, 225, + 218, 391, 705, 751, 616, 697, 0, 619, 622, 747, + 731, 650, 651, 0, 0, 0, 0, 0, 0, 0, + 675, 684, 716, 669, 0, 0, 0, 0, 0, 0, + 0, 0, 648, 0, 693, 0, 0, 0, 627, 620, + 0, 0, 0, 0, 673, 0, 0, 0, 630, 0, + 649, 717, 0, 614, 245, 624, 300, 0, 721, 730, + 670, 423, 734, 668, 667, 737, 712, 628, 727, 661, + 271, 626, 268, 171, 187, 0, 659, 310, 349, 355, + 726, 645, 654, 210, 652, 353, 324, 408, 194, 235, + 346, 329, 351, 692, 710, 352, 277, 396, 341, 406, + 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, + 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, + 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, + 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, + 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, + 437, 190, 419, 183, 926, 418, 306, 395, 403, 295, + 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, + 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, + 438, 195, 196, 197, 640, 230, 234, 240, 242, 0, + 248, 255, 273, 317, 338, 336, 342, 722, 390, 407, + 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, + 254, 373, 269, 278, 714, 750, 323, 354, 200, 410, + 374, 635, 639, 633, 634, 686, 687, 636, 742, 743, + 744, 718, 629, 0, 637, 638, 0, 724, 732, 733, + 691, 170, 184, 274, 746, 343, 238, 436, 417, 413, + 615, 632, 216, 643, 0, 0, 656, 664, 665, 677, + 679, 680, 681, 682, 690, 698, 699, 701, 709, 711, + 713, 715, 720, 729, 749, 172, 173, 185, 193, 203, + 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, + 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, + 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, + 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, + 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, + 426, 247, 405, 427, 0, 282, 689, 696, 284, 232, + 249, 259, 704, 416, 379, 189, 350, 239, 178, 206, + 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, + 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, + 220, 736, 723, 0, 0, 672, 739, 642, 660, 748, + 663, 666, 706, 621, 685, 314, 657, 0, 646, 617, + 653, 618, 644, 674, 223, 678, 641, 725, 688, 738, + 272, 0, 623, 647, 328, 662, 176, 708, 366, 209, + 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, + 384, 320, 745, 276, 695, 0, 375, 299, 0, 0, + 0, 676, 728, 683, 719, 671, 707, 631, 694, 740, + 658, 703, 741, 262, 207, 175, 311, 376, 237, 0, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 700, 735, 655, 702, + 219, 260, 225, 218, 391, 705, 751, 616, 697, 0, + 619, 622, 747, 731, 650, 651, 0, 0, 0, 0, + 0, 0, 0, 675, 684, 716, 669, 0, 0, 0, + 0, 0, 0, 0, 0, 648, 0, 693, 0, 0, + 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, + 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, + 0, 721, 730, 670, 423, 734, 668, 667, 737, 712, + 628, 727, 661, 271, 626, 268, 171, 187, 0, 659, + 310, 349, 355, 726, 645, 654, 210, 652, 353, 324, + 408, 194, 235, 346, 329, 351, 692, 710, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 926, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 640, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 722, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 714, 750, 323, + 354, 200, 410, 374, 635, 639, 633, 634, 686, 687, + 636, 742, 743, 744, 718, 629, 0, 637, 638, 0, + 724, 732, 733, 691, 170, 184, 274, 746, 343, 238, + 436, 417, 413, 615, 632, 216, 643, 0, 0, 656, + 664, 665, 677, 679, 680, 681, 682, 690, 698, 699, + 701, 709, 711, 713, 715, 720, 729, 749, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 689, + 696, 284, 232, 249, 259, 704, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 736, 723, 0, 0, 672, 739, + 642, 660, 748, 663, 666, 706, 621, 685, 314, 657, + 0, 646, 617, 653, 618, 644, 674, 223, 678, 641, + 725, 688, 738, 272, 0, 623, 647, 328, 662, 176, + 708, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 745, 276, 695, 0, 375, + 299, 0, 0, 0, 676, 728, 683, 719, 671, 707, + 631, 694, 740, 658, 703, 741, 262, 207, 175, 311, + 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 700, + 735, 655, 702, 219, 260, 225, 218, 391, 705, 751, + 616, 697, 0, 619, 622, 747, 731, 650, 651, 0, + 0, 0, 0, 0, 0, 0, 675, 684, 716, 669, + 0, 0, 0, 0, 0, 0, 0, 0, 648, 0, + 693, 0, 0, 0, 627, 620, 0, 0, 0, 0, + 673, 0, 0, 0, 630, 0, 649, 717, 0, 614, + 245, 624, 300, 0, 721, 730, 670, 423, 734, 668, + 667, 737, 712, 628, 727, 661, 271, 626, 268, 171, + 187, 0, 659, 310, 349, 355, 726, 645, 654, 210, + 652, 353, 324, 408, 194, 235, 346, 329, 351, 692, + 710, 352, 277, 396, 341, 406, 424, 425, 217, 304, + 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, + 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, + 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, + 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, + 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, + 625, 418, 306, 395, 403, 295, 286, 182, 401, 293, + 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, + 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, + 640, 230, 234, 240, 242, 0, 248, 255, 273, 317, + 338, 336, 342, 722, 390, 407, 415, 422, 428, 429, + 433, 430, 431, 434, 613, 752, 607, 606, 269, 278, + 714, 750, 323, 354, 200, 410, 374, 635, 639, 633, + 634, 686, 687, 636, 742, 743, 744, 718, 629, 0, + 637, 638, 0, 724, 732, 733, 691, 170, 184, 274, + 746, 343, 238, 436, 417, 413, 615, 632, 216, 643, + 0, 0, 656, 664, 665, 677, 679, 680, 681, 682, + 690, 698, 699, 701, 709, 711, 713, 715, 720, 729, + 749, 172, 173, 185, 193, 203, 215, 228, 236, 246, + 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, + 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, + 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, + 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, + 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, + 0, 282, 689, 696, 284, 232, 249, 259, 704, 416, + 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, + 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, + 365, 385, 386, 387, 389, 296, 220, 736, 723, 0, + 0, 672, 739, 642, 660, 748, 663, 666, 706, 621, + 685, 314, 657, 0, 646, 617, 653, 618, 644, 674, + 223, 678, 641, 725, 688, 738, 272, 0, 623, 647, + 328, 662, 176, 708, 366, 209, 281, 279, 394, 233, + 226, 222, 208, 256, 287, 326, 384, 320, 745, 276, + 695, 0, 375, 299, 0, 0, 0, 676, 728, 683, + 719, 671, 707, 631, 694, 740, 658, 703, 741, 262, + 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 700, 735, 655, 702, 219, 260, 225, 218, + 391, 705, 751, 616, 697, 0, 619, 622, 747, 731, + 650, 651, 0, 0, 0, 0, 0, 0, 0, 675, + 684, 716, 669, 0, 0, 0, 0, 0, 0, 0, + 0, 648, 0, 693, 0, 0, 0, 627, 620, 0, + 0, 0, 0, 673, 0, 0, 0, 630, 0, 649, + 717, 0, 614, 245, 624, 300, 0, 721, 730, 670, + 423, 734, 668, 667, 737, 712, 628, 727, 661, 271, + 626, 268, 171, 187, 0, 659, 310, 349, 355, 726, + 645, 654, 210, 652, 353, 324, 408, 194, 235, 346, + 329, 351, 692, 710, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 1094, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 625, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 640, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 722, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 613, 752, 607, + 606, 269, 278, 714, 750, 323, 354, 200, 410, 374, + 635, 639, 633, 634, 686, 687, 636, 742, 743, 744, + 718, 629, 0, 637, 638, 0, 724, 732, 733, 691, + 170, 184, 274, 746, 343, 238, 436, 417, 413, 615, + 632, 216, 643, 0, 0, 656, 664, 665, 677, 679, + 680, 681, 682, 690, 698, 699, 701, 709, 711, 713, + 715, 720, 729, 749, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 689, 696, 284, 232, 249, + 259, 704, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 736, 723, 0, 0, 672, 739, 642, 660, 748, 663, + 666, 706, 621, 685, 314, 657, 0, 646, 617, 653, + 618, 644, 674, 223, 678, 641, 725, 688, 738, 272, + 0, 623, 647, 328, 662, 176, 708, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 745, 276, 695, 0, 375, 299, 0, 0, 0, + 676, 728, 683, 719, 671, 707, 631, 694, 740, 658, + 703, 741, 262, 207, 175, 311, 376, 237, 0, 0, + 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 700, 735, 655, 702, 219, + 260, 225, 218, 391, 705, 751, 616, 697, 0, 619, + 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, + 0, 0, 675, 684, 716, 669, 0, 0, 0, 0, + 0, 0, 0, 0, 648, 0, 693, 0, 0, 0, + 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, + 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, + 721, 730, 670, 423, 734, 668, 667, 737, 712, 628, + 727, 661, 271, 626, 268, 171, 187, 0, 659, 310, + 349, 355, 726, 645, 654, 210, 652, 353, 324, 408, + 194, 235, 346, 329, 351, 692, 710, 352, 277, 396, + 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, + 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, + 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, + 604, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, + 400, 211, 437, 190, 419, 183, 625, 418, 306, 395, + 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, + 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, + 377, 412, 438, 195, 196, 197, 640, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 722, + 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, + 613, 752, 607, 606, 269, 278, 714, 750, 323, 354, + 200, 410, 374, 635, 639, 633, 634, 686, 687, 636, + 742, 743, 744, 718, 629, 0, 637, 638, 0, 724, + 732, 733, 691, 170, 184, 274, 746, 343, 238, 436, + 417, 413, 615, 632, 216, 643, 0, 0, 656, 664, + 665, 677, 679, 680, 681, 682, 690, 698, 699, 701, + 709, 711, 713, 715, 720, 729, 749, 172, 173, 185, + 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, + 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, + 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, + 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, + 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, + 409, 421, 426, 247, 405, 427, 0, 282, 689, 696, + 284, 232, 249, 259, 704, 416, 379, 189, 350, 239, + 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, + 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, + 389, 296, 220, 314, 0, 0, 1394, 0, 504, 0, + 0, 0, 223, 0, 503, 0, 0, 0, 272, 0, + 0, 1395, 328, 0, 176, 0, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, + 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, + 0, 262, 207, 175, 311, 376, 237, 71, 0, 0, + 167, 168, 169, 525, 524, 527, 528, 529, 530, 0, + 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, + 225, 218, 391, 0, 0, 0, 501, 518, 0, 546, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, + 516, 594, 0, 0, 0, 562, 0, 517, 0, 0, + 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, + 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, + 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 549, 560, 555, 556, 553, 554, 548, 552, + 551, 550, 563, 540, 541, 542, 543, 545, 0, 557, + 558, 544, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 314, 0, 0, 0, 0, 504, 0, 0, + 0, 223, 0, 503, 0, 0, 0, 272, 0, 0, + 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, + 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, + 538, 539, 0, 0, 0, 0, 0, 0, 1507, 0, + 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, + 168, 169, 525, 524, 527, 528, 529, 530, 0, 0, + 198, 526, 205, 531, 532, 533, 1508, 219, 260, 225, + 218, 391, 0, 0, 0, 501, 518, 0, 546, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 515, 516, + 0, 0, 0, 0, 562, 0, 517, 0, 0, 510, + 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, + 0, 423, 0, 0, 559, 0, 0, 0, 0, 0, + 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, + 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, + 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, + 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, + 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, + 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, + 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, + 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, + 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, + 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, + 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, + 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, + 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, + 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, + 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, + 374, 549, 560, 555, 556, 553, 554, 548, 552, 551, + 550, 563, 540, 541, 542, 543, 545, 0, 557, 558, + 544, 170, 184, 274, 0, 343, 238, 436, 417, 413, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, + 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, + 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, + 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, + 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, + 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, + 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, + 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, + 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, + 220, 314, 0, 0, 0, 0, 504, 0, 0, 0, + 223, 0, 503, 0, 0, 0, 272, 0, 0, 0, + 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, + 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, + 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, + 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, + 207, 175, 311, 376, 237, 71, 0, 581, 167, 168, + 169, 525, 524, 527, 528, 529, 530, 0, 0, 198, + 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, + 391, 0, 0, 0, 501, 518, 0, 546, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 515, 516, 0, + 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, + 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, + 423, 0, 0, 559, 0, 0, 0, 0, 0, 271, + 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, + 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, + 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, + 549, 560, 555, 556, 553, 554, 548, 552, 551, 550, + 563, 540, 541, 542, 543, 545, 0, 557, 558, 544, + 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, + 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 314, 0, 0, 0, 0, 504, 0, 0, 0, 223, + 0, 503, 0, 0, 0, 272, 0, 0, 0, 328, + 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, + 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, + 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, + 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, + 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, + 525, 524, 527, 528, 529, 530, 0, 0, 198, 526, + 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, + 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 515, 516, 594, 0, + 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, + 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 245, 0, 300, 0, 561, 0, 0, 423, + 0, 0, 559, 0, 0, 0, 0, 0, 271, 0, + 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, + 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, + 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 0, 0, 323, 354, 200, 410, 374, 549, + 560, 555, 556, 553, 554, 548, 552, 551, 550, 563, + 540, 541, 542, 543, 545, 0, 557, 558, 544, 170, + 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, + 0, 0, 0, 0, 504, 0, 0, 0, 223, 0, + 503, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, + 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, + 311, 376, 237, 71, 0, 0, 167, 168, 169, 525, + 1412, 527, 528, 529, 530, 0, 0, 198, 526, 205, + 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, + 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 515, 516, 594, 0, 0, + 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, + 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 245, 0, 300, 0, 561, 0, 0, 423, 0, + 0, 559, 0, 0, 0, 0, 0, 271, 0, 268, + 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, + 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, + 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 0, 0, 323, 354, 200, 410, 374, 549, 560, + 555, 556, 553, 554, 548, 552, 551, 550, 563, 540, + 541, 542, 543, 545, 0, 557, 558, 544, 170, 184, + 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, + 0, 0, 0, 504, 0, 0, 0, 223, 0, 503, + 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, + 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, + 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, + 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, + 376, 237, 71, 0, 0, 167, 168, 169, 525, 1409, + 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, + 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, + 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 515, 516, 594, 0, 0, 0, + 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, + 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 245, 0, 300, 0, 561, 0, 0, 423, 0, 0, + 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, + 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, + 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, + 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, + 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, + 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, + 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, + 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, + 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, + 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, + 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, + 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, + 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, + 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, + 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, + 0, 0, 323, 354, 200, 410, 374, 549, 560, 555, + 556, 553, 554, 548, 552, 551, 550, 563, 540, 541, + 542, 543, 545, 0, 557, 558, 544, 170, 184, 274, + 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, + 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, + 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, + 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, + 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, + 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, + 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, + 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, + 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, + 365, 385, 386, 387, 389, 296, 220, 574, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 314, 0, 0, 0, 0, 504, 0, 0, 0, 223, + 0, 503, 0, 0, 0, 272, 0, 0, 0, 328, + 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, + 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, + 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, + 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, + 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, + 525, 524, 527, 528, 529, 530, 0, 0, 198, 526, + 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, + 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 515, 516, 0, 0, + 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, + 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 245, 0, 300, 0, 561, 0, 0, 423, + 0, 0, 559, 0, 0, 0, 0, 0, 271, 0, + 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, + 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, + 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 0, 0, 323, 354, 200, 410, 374, 549, + 560, 555, 556, 553, 554, 548, 552, 551, 550, 563, + 540, 541, 542, 543, 545, 0, 557, 558, 544, 170, + 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, + 0, 0, 0, 0, 504, 0, 0, 0, 223, 0, + 503, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, + 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, + 311, 376, 237, 71, 0, 0, 167, 168, 169, 525, + 524, 527, 528, 529, 530, 0, 0, 198, 526, 205, + 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, + 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 515, 516, 0, 0, 0, + 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, + 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 245, 0, 300, 0, 561, 0, 0, 423, 0, + 0, 559, 0, 0, 0, 0, 0, 271, 0, 268, + 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, + 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, + 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 0, 0, 323, 354, 200, 410, 374, 549, 560, + 555, 556, 553, 554, 548, 552, 551, 550, 563, 540, + 541, 542, 543, 545, 0, 557, 558, 544, 170, 184, + 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, + 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, + 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, + 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, + 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, + 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, + 376, 237, 71, 0, 0, 167, 168, 169, 525, 524, + 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, + 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, + 0, 0, 518, 0, 546, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 515, 516, 0, 0, 0, 0, + 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, + 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 245, 0, 300, 0, 561, 0, 0, 423, 0, 0, + 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, + 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, + 0, 353, 324, 408, 194, 235, 346, 329, 351, 2204, + 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, + 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, + 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, + 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, + 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, + 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, + 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, + 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, + 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, + 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, + 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, + 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, + 0, 0, 323, 354, 200, 410, 374, 549, 560, 555, + 556, 553, 554, 548, 552, 551, 550, 563, 540, 541, + 542, 543, 545, 0, 557, 558, 544, 170, 184, 274, + 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, + 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, + 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, + 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, + 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, + 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, + 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, + 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, + 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, + 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, + 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, + 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, + 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, + 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, + 237, 71, 0, 581, 167, 168, 169, 525, 524, 527, + 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, + 533, 0, 219, 260, 225, 218, 391, 0, 0, 0, + 0, 518, 0, 546, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 515, 516, 0, 0, 0, 0, 562, + 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, + 0, 300, 0, 561, 0, 0, 423, 0, 0, 559, + 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, + 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, + 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, + 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, + 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, + 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, + 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, + 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, + 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, + 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, + 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, + 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, + 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, + 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, + 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, + 0, 323, 354, 200, 410, 374, 549, 560, 555, 556, + 553, 554, 548, 552, 551, 550, 563, 540, 541, 542, + 543, 545, 0, 557, 558, 544, 170, 184, 274, 0, + 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, + 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, + 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, + 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, + 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, + 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, + 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, + 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, + 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, + 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, + 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, + 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, + 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, + 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, + 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, + 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, + 71, 0, 0, 167, 168, 169, 525, 524, 527, 528, + 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, + 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, + 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 515, 516, 0, 0, 0, 0, 562, 0, + 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, + 300, 0, 561, 0, 0, 423, 0, 0, 559, 0, + 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, + 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, + 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, + 323, 354, 200, 410, 374, 549, 560, 555, 556, 553, + 554, 548, 552, 551, 550, 563, 540, 541, 542, 543, + 545, 0, 557, 558, 544, 170, 184, 274, 0, 343, + 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 184, 192, 202, 214, 227, 235, 245, 249, 252, - 256, 257, 260, 265, 282, 287, 288, 289, 290, 306, - 307, 308, 311, 314, 315, 318, 320, 321, 324, 330, - 331, 332, 333, 334, 336, 343, 347, 355, 356, 357, - 358, 359, 361, 362, 366, 367, 368, 369, 377, 381, - 396, 397, 408, 420, 425, 246, 404, 426, 0, 281, - 0, 0, 283, 231, 248, 258, 0, 415, 378, 188, - 349, 238, 177, 205, 191, 212, 226, 228, 262, 291, - 297, 326, 329, 243, 223, 203, 346, 200, 364, 384, - 385, 386, 388, 295, 219, 313, 0, 1225, 0, 0, - 0, 0, 0, 0, 222, 0, 0, 0, 0, 0, - 271, 0, 0, 0, 327, 0, 365, 208, 280, 278, - 393, 232, 225, 221, 207, 255, 286, 325, 383, 319, - 0, 275, 0, 0, 374, 298, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 261, 206, 175, 310, 375, 236, 0, 0, 0, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, + 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, + 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, + 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, + 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 969, 968, 978, + 979, 971, 972, 973, 974, 975, 976, 977, 970, 0, + 0, 980, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, + 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, + 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, + 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, + 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, + 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, + 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, + 0, 0, 0, 223, 798, 0, 0, 0, 0, 272, + 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, + 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, + 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, + 0, 0, 797, 423, 0, 0, 0, 0, 0, 0, + 794, 795, 271, 760, 268, 171, 187, 788, 792, 310, + 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, + 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, + 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, + 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, + 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, + 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, + 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, + 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, + 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, + 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, + 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, + 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, + 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, + 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, + 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, + 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, + 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, + 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, + 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, + 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, + 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, + 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, + 389, 296, 220, 314, 0, 0, 0, 1072, 0, 0, + 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, + 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, + 167, 168, 169, 0, 1074, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, + 225, 218, 391, 958, 959, 957, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 960, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, + 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 35, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, + 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, + 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, + 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, + 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, + 0, 581, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, + 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, + 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, + 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, + 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, + 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, + 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 314, 0, 0, 0, 1439, 0, + 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, + 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, + 0, 167, 168, 169, 0, 1441, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, + 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, + 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, + 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, + 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, + 194, 235, 346, 329, 351, 0, 1437, 352, 277, 396, + 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, + 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, + 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, + 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, + 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, + 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, + 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, + 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, + 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, + 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, + 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, + 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, + 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, + 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, + 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, + 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, + 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, + 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, + 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, + 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, + 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, + 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, + 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 197, 0, 204, 0, 0, 0, 0, 218, 259, - 224, 217, 390, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 244, 0, 299, 0, 0, - 0, 0, 422, 0, 0, 0, 0, 0, 0, 0, - 0, 270, 0, 267, 171, 186, 0, 0, 309, 348, - 354, 0, 0, 0, 209, 0, 352, 323, 407, 193, - 234, 345, 328, 350, 0, 0, 351, 276, 395, 340, - 405, 423, 424, 216, 303, 413, 387, 419, 434, 187, - 213, 317, 380, 410, 371, 296, 391, 392, 266, 370, - 242, 174, 274, 431, 185, 360, 201, 178, 382, 403, - 198, 363, 0, 0, 0, 180, 401, 379, 293, 263, - 264, 179, 0, 344, 220, 240, 211, 312, 398, 399, - 210, 436, 189, 418, 182, 0, 417, 305, 394, 402, - 294, 285, 181, 400, 292, 284, 269, 230, 250, 338, - 279, 339, 251, 301, 300, 302, 0, 176, 0, 376, - 411, 437, 194, 195, 196, 0, 229, 233, 239, 241, - 0, 247, 254, 272, 316, 337, 335, 341, 0, 389, - 406, 414, 421, 427, 428, 432, 429, 430, 433, 304, - 190, 253, 372, 268, 277, 0, 0, 322, 353, 199, - 409, 373, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 183, 273, 0, 342, 237, 435, 416, - 412, 0, 0, 215, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 184, 192, - 202, 214, 227, 235, 245, 249, 252, 256, 257, 260, - 265, 282, 287, 288, 289, 290, 306, 307, 308, 311, - 314, 315, 318, 320, 321, 324, 330, 331, 332, 333, - 334, 336, 343, 347, 355, 356, 357, 358, 359, 361, - 362, 366, 367, 368, 369, 377, 381, 396, 397, 408, - 420, 425, 246, 404, 426, 0, 281, 0, 0, 283, - 231, 248, 258, 0, 415, 378, 188, 349, 238, 177, - 205, 191, 212, 226, 228, 262, 291, 297, 326, 329, - 243, 223, 203, 346, 200, 364, 384, 385, 386, 388, - 295, 219, 313, 0, 1223, 0, 0, 0, 0, 0, - 0, 222, 0, 0, 0, 0, 0, 271, 0, 0, - 0, 327, 0, 365, 208, 280, 278, 393, 232, 225, - 221, 207, 255, 286, 325, 383, 319, 0, 275, 0, - 0, 374, 298, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 261, 206, - 175, 310, 375, 236, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 197, 0, - 204, 0, 0, 0, 0, 218, 259, 224, 217, 390, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 244, 0, 299, 0, 0, 0, 0, 422, - 0, 0, 0, 0, 0, 0, 0, 0, 270, 0, - 267, 171, 186, 0, 0, 309, 348, 354, 0, 0, - 0, 209, 0, 352, 323, 407, 193, 234, 345, 328, - 350, 0, 0, 351, 276, 395, 340, 405, 423, 424, - 216, 303, 413, 387, 419, 434, 187, 213, 317, 380, - 410, 371, 296, 391, 392, 266, 370, 242, 174, 274, - 431, 185, 360, 201, 178, 382, 403, 198, 363, 0, - 0, 0, 180, 401, 379, 293, 263, 264, 179, 0, - 344, 220, 240, 211, 312, 398, 399, 210, 436, 189, - 418, 182, 0, 417, 305, 394, 402, 294, 285, 181, - 400, 292, 284, 269, 230, 250, 338, 279, 339, 251, - 301, 300, 302, 0, 176, 0, 376, 411, 437, 194, - 195, 196, 0, 229, 233, 239, 241, 0, 247, 254, - 272, 316, 337, 335, 341, 0, 389, 406, 414, 421, - 427, 428, 432, 429, 430, 433, 304, 190, 253, 372, - 268, 277, 0, 0, 322, 353, 199, 409, 373, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, + 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 754, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, + 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, + 0, 271, 760, 268, 171, 187, 758, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 314, 0, 0, 0, 1439, 0, 0, 0, + 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, + 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, + 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, + 168, 169, 0, 1441, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, + 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, + 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, + 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, + 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, + 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, + 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, + 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, + 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, + 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, + 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, + 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, + 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, + 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, + 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, + 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, + 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, + 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, + 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, + 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, + 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, + 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, + 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, + 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, + 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, + 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, + 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, + 220, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, + 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, + 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 71, 0, + 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, + 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, + 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, + 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, + 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, + 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, + 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, + 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, + 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, + 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, + 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, + 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, + 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, + 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, + 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, + 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, + 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, + 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, + 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, + 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, + 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, + 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, + 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, + 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, + 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, + 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, + 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, + 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, + 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, + 167, 168, 169, 0, 0, 1460, 0, 0, 1461, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, + 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, + 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, + 0, 223, 0, 1105, 0, 0, 0, 272, 0, 0, + 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, + 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, + 168, 169, 0, 1104, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, + 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, + 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, + 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, + 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, + 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, + 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, + 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, + 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, + 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, + 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, + 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, + 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, + 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, + 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, + 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, + 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, + 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, + 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, + 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, + 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, + 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, + 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, + 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, + 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, + 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, + 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, + 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, + 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, + 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, + 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, + 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, + 207, 175, 311, 376, 237, 0, 0, 581, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, + 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, + 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, + 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, + 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, + 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, + 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, + 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, + 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, + 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, + 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, + 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, + 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, + 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, + 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 183, 273, 0, 342, 237, 435, 416, 412, 0, 0, - 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 184, 192, 202, 214, 227, - 235, 245, 249, 252, 256, 257, 260, 265, 282, 287, - 288, 289, 290, 306, 307, 308, 311, 314, 315, 318, - 320, 321, 324, 330, 331, 332, 333, 334, 336, 343, - 347, 355, 356, 357, 358, 359, 361, 362, 366, 367, - 368, 369, 377, 381, 396, 397, 408, 420, 425, 246, - 404, 426, 0, 281, 0, 0, 283, 231, 248, 258, - 0, 415, 378, 188, 349, 238, 177, 205, 191, 212, - 226, 228, 262, 291, 297, 326, 329, 243, 223, 203, - 346, 200, 364, 384, 385, 386, 388, 295, 219, 313, - 0, 1221, 0, 0, 0, 0, 0, 0, 222, 0, - 0, 0, 0, 0, 271, 0, 0, 0, 327, 0, - 365, 208, 280, 278, 393, 232, 225, 221, 207, 255, - 286, 325, 383, 319, 0, 275, 0, 0, 374, 298, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 261, 206, 175, 310, 375, - 236, 0, 0, 0, 167, 168, 169, 0, 0, 0, - 0, 0, 0, 0, 0, 197, 0, 204, 0, 0, - 0, 0, 218, 259, 224, 217, 390, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, - 0, 299, 0, 0, 0, 0, 422, 0, 0, 0, - 0, 0, 0, 0, 0, 270, 0, 267, 171, 186, - 0, 0, 309, 348, 354, 0, 0, 0, 209, 0, - 352, 323, 407, 193, 234, 345, 328, 350, 0, 0, - 351, 276, 395, 340, 405, 423, 424, 216, 303, 413, - 387, 419, 434, 187, 213, 317, 380, 410, 371, 296, - 391, 392, 266, 370, 242, 174, 274, 431, 185, 360, - 201, 178, 382, 403, 198, 363, 0, 0, 0, 180, - 401, 379, 293, 263, 264, 179, 0, 344, 220, 240, - 211, 312, 398, 399, 210, 436, 189, 418, 182, 0, - 417, 305, 394, 402, 294, 285, 181, 400, 292, 284, - 269, 230, 250, 338, 279, 339, 251, 301, 300, 302, - 0, 176, 0, 376, 411, 437, 194, 195, 196, 0, - 229, 233, 239, 241, 0, 247, 254, 272, 316, 337, - 335, 341, 0, 389, 406, 414, 421, 427, 428, 432, - 429, 430, 433, 304, 190, 253, 372, 268, 277, 0, - 0, 322, 353, 199, 409, 373, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 183, 273, 0, - 342, 237, 435, 416, 412, 0, 0, 215, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 184, 192, 202, 214, 227, 235, 245, 249, - 252, 256, 257, 260, 265, 282, 287, 288, 289, 290, - 306, 307, 308, 311, 314, 315, 318, 320, 321, 324, - 330, 331, 332, 333, 334, 336, 343, 347, 355, 356, - 357, 358, 359, 361, 362, 366, 367, 368, 369, 377, - 381, 396, 397, 408, 420, 425, 246, 404, 426, 0, - 281, 0, 0, 283, 231, 248, 258, 0, 415, 378, - 188, 349, 238, 177, 205, 191, 212, 226, 228, 262, - 291, 297, 326, 329, 243, 223, 203, 346, 200, 364, - 384, 385, 386, 388, 295, 219, 313, 0, 1219, 0, - 0, 0, 0, 0, 0, 222, 0, 0, 0, 0, - 0, 271, 0, 0, 0, 327, 0, 365, 208, 280, - 278, 393, 232, 225, 221, 207, 255, 286, 325, 383, - 319, 0, 275, 0, 0, 374, 298, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 261, 206, 175, 310, 375, 236, 0, 0, - 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 197, 0, 204, 0, 0, 0, 0, 218, - 259, 224, 217, 390, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 244, 0, 299, 0, - 0, 0, 0, 422, 0, 0, 0, 0, 0, 0, - 0, 0, 270, 0, 267, 171, 186, 0, 0, 309, - 348, 354, 0, 0, 0, 209, 0, 352, 323, 407, - 193, 234, 345, 328, 350, 0, 0, 351, 276, 395, - 340, 405, 423, 424, 216, 303, 413, 387, 419, 434, - 187, 213, 317, 380, 410, 371, 296, 391, 392, 266, - 370, 242, 174, 274, 431, 185, 360, 201, 178, 382, - 403, 198, 363, 0, 0, 0, 180, 401, 379, 293, - 263, 264, 179, 0, 344, 220, 240, 211, 312, 398, - 399, 210, 436, 189, 418, 182, 0, 417, 305, 394, - 402, 294, 285, 181, 400, 292, 284, 269, 230, 250, - 338, 279, 339, 251, 301, 300, 302, 0, 176, 0, - 376, 411, 437, 194, 195, 196, 0, 229, 233, 239, - 241, 0, 247, 254, 272, 316, 337, 335, 341, 0, - 389, 406, 414, 421, 427, 428, 432, 429, 430, 433, - 304, 190, 253, 372, 268, 277, 0, 0, 322, 353, - 199, 409, 373, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 183, 273, 0, 342, 237, 435, - 416, 412, 0, 0, 215, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 184, - 192, 202, 214, 227, 235, 245, 249, 252, 256, 257, - 260, 265, 282, 287, 288, 289, 290, 306, 307, 308, - 311, 314, 315, 318, 320, 321, 324, 330, 331, 332, - 333, 334, 336, 343, 347, 355, 356, 357, 358, 359, - 361, 362, 366, 367, 368, 369, 377, 381, 396, 397, - 408, 420, 425, 246, 404, 426, 0, 281, 0, 0, - 283, 231, 248, 258, 0, 415, 378, 188, 349, 238, - 177, 205, 191, 212, 226, 228, 262, 291, 297, 326, - 329, 243, 223, 203, 346, 200, 364, 384, 385, 386, - 388, 295, 219, 313, 0, 1217, 0, 0, 0, 0, - 0, 0, 222, 0, 0, 0, 0, 0, 271, 0, - 0, 0, 327, 0, 365, 208, 280, 278, 393, 232, - 225, 221, 207, 255, 286, 325, 383, 319, 0, 275, - 0, 0, 374, 298, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, - 206, 175, 310, 375, 236, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 197, - 0, 204, 0, 0, 0, 0, 218, 259, 224, 217, - 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 244, 0, 299, 0, 0, 0, 0, - 422, 0, 0, 0, 0, 0, 0, 0, 0, 270, - 0, 267, 171, 186, 0, 0, 309, 348, 354, 0, - 0, 0, 209, 0, 352, 323, 407, 193, 234, 345, - 328, 350, 0, 0, 351, 276, 395, 340, 405, 423, - 424, 216, 303, 413, 387, 419, 434, 187, 213, 317, - 380, 410, 371, 296, 391, 392, 266, 370, 242, 174, - 274, 431, 185, 360, 201, 178, 382, 403, 198, 363, - 0, 0, 0, 180, 401, 379, 293, 263, 264, 179, - 0, 344, 220, 240, 211, 312, 398, 399, 210, 436, - 189, 418, 182, 0, 417, 305, 394, 402, 294, 285, - 181, 400, 292, 284, 269, 230, 250, 338, 279, 339, - 251, 301, 300, 302, 0, 176, 0, 376, 411, 437, - 194, 195, 196, 0, 229, 233, 239, 241, 0, 247, - 254, 272, 316, 337, 335, 341, 0, 389, 406, 414, - 421, 427, 428, 432, 429, 430, 433, 304, 190, 253, - 372, 268, 277, 0, 0, 322, 353, 199, 409, 373, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 183, 273, 0, 342, 237, 435, 416, 412, 0, - 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 184, 192, 202, 214, - 227, 235, 245, 249, 252, 256, 257, 260, 265, 282, - 287, 288, 289, 290, 306, 307, 308, 311, 314, 315, - 318, 320, 321, 324, 330, 331, 332, 333, 334, 336, - 343, 347, 355, 356, 357, 358, 359, 361, 362, 366, - 367, 368, 369, 377, 381, 396, 397, 408, 420, 425, - 246, 404, 426, 0, 281, 0, 0, 283, 231, 248, - 258, 0, 415, 378, 188, 349, 238, 177, 205, 191, - 212, 226, 228, 262, 291, 297, 326, 329, 243, 223, - 203, 346, 200, 364, 384, 385, 386, 388, 295, 219, - 313, 0, 1213, 0, 0, 0, 0, 0, 0, 222, - 0, 0, 0, 0, 0, 271, 0, 0, 0, 327, - 0, 365, 208, 280, 278, 393, 232, 225, 221, 207, - 255, 286, 325, 383, 319, 0, 275, 0, 0, 374, - 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 261, 206, 175, 310, - 375, 236, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 197, 0, 204, 0, - 0, 0, 0, 218, 259, 224, 217, 390, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 244, 0, 299, 0, 0, 0, 0, 422, 0, 0, - 0, 0, 0, 0, 0, 0, 270, 0, 267, 171, - 186, 0, 0, 309, 348, 354, 0, 0, 0, 209, - 0, 352, 323, 407, 193, 234, 345, 328, 350, 0, - 0, 351, 276, 395, 340, 405, 423, 424, 216, 303, - 413, 387, 419, 434, 187, 213, 317, 380, 410, 371, - 296, 391, 392, 266, 370, 242, 174, 274, 431, 185, - 360, 201, 178, 382, 403, 198, 363, 0, 0, 0, - 180, 401, 379, 293, 263, 264, 179, 0, 344, 220, - 240, 211, 312, 398, 399, 210, 436, 189, 418, 182, - 0, 417, 305, 394, 402, 294, 285, 181, 400, 292, - 284, 269, 230, 250, 338, 279, 339, 251, 301, 300, - 302, 0, 176, 0, 376, 411, 437, 194, 195, 196, - 0, 229, 233, 239, 241, 0, 247, 254, 272, 316, - 337, 335, 341, 0, 389, 406, 414, 421, 427, 428, - 432, 429, 430, 433, 304, 190, 253, 372, 268, 277, - 0, 0, 322, 353, 199, 409, 373, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 183, 273, - 0, 342, 237, 435, 416, 412, 0, 0, 215, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 184, 192, 202, 214, 227, 235, 245, - 249, 252, 256, 257, 260, 265, 282, 287, 288, 289, - 290, 306, 307, 308, 311, 314, 315, 318, 320, 321, - 324, 330, 331, 332, 333, 334, 336, 343, 347, 355, - 356, 357, 358, 359, 361, 362, 366, 367, 368, 369, - 377, 381, 396, 397, 408, 420, 425, 246, 404, 426, - 0, 281, 0, 0, 283, 231, 248, 258, 0, 415, - 378, 188, 349, 238, 177, 205, 191, 212, 226, 228, - 262, 291, 297, 326, 329, 243, 223, 203, 346, 200, - 364, 384, 385, 386, 388, 295, 219, 313, 0, 1211, - 0, 0, 0, 0, 0, 0, 222, 0, 0, 0, - 0, 0, 271, 0, 0, 0, 327, 0, 365, 208, - 280, 278, 393, 232, 225, 221, 207, 255, 286, 325, - 383, 319, 0, 275, 0, 0, 374, 298, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 261, 206, 175, 310, 375, 236, 0, + 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, + 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, + 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, + 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, + 1441, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, + 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, + 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, + 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, + 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, + 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, + 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, + 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, + 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, + 376, 237, 0, 0, 0, 167, 168, 169, 0, 1074, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, + 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, + 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, + 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, + 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, + 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, + 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, + 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, + 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, + 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, + 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, + 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, + 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, + 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, + 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, + 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, + 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 184, 274, + 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, + 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, + 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, + 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, + 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, + 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, + 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, + 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, + 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, + 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, + 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, + 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, + 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, + 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, + 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, + 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, + 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, + 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, + 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, + 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, + 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, + 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, + 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, + 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, + 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, + 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, + 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, + 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, + 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, + 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, + 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 274, 1344, + 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, + 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, + 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, + 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, + 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, + 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, + 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, + 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, + 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, + 385, 386, 387, 389, 296, 220, 314, 0, 1227, 0, + 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, + 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, + 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, + 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, + 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, + 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, + 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, + 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, + 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, + 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 314, 0, 1225, 0, 0, + 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, + 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, + 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, + 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, - 0, 0, 0, 197, 0, 204, 0, 0, 0, 0, - 218, 259, 224, 217, 390, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 244, 0, 299, - 0, 0, 0, 0, 422, 0, 0, 0, 0, 0, - 0, 0, 0, 270, 0, 267, 171, 186, 0, 0, - 309, 348, 354, 0, 0, 0, 209, 0, 352, 323, - 407, 193, 234, 345, 328, 350, 0, 0, 351, 276, - 395, 340, 405, 423, 424, 216, 303, 413, 387, 419, - 434, 187, 213, 317, 380, 410, 371, 296, 391, 392, - 266, 370, 242, 174, 274, 431, 185, 360, 201, 178, - 382, 403, 198, 363, 0, 0, 0, 180, 401, 379, - 293, 263, 264, 179, 0, 344, 220, 240, 211, 312, - 398, 399, 210, 436, 189, 418, 182, 0, 417, 305, - 394, 402, 294, 285, 181, 400, 292, 284, 269, 230, - 250, 338, 279, 339, 251, 301, 300, 302, 0, 176, - 0, 376, 411, 437, 194, 195, 196, 0, 229, 233, - 239, 241, 0, 247, 254, 272, 316, 337, 335, 341, - 0, 389, 406, 414, 421, 427, 428, 432, 429, 430, - 433, 304, 190, 253, 372, 268, 277, 0, 0, 322, - 353, 199, 409, 373, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 183, 273, 0, 342, 237, - 435, 416, 412, 0, 0, 215, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, + 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, + 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, + 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, + 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, + 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 184, 192, 202, 214, 227, 235, 245, 249, 252, 256, - 257, 260, 265, 282, 287, 288, 289, 290, 306, 307, - 308, 311, 314, 315, 318, 320, 321, 324, 330, 331, - 332, 333, 334, 336, 343, 347, 355, 356, 357, 358, - 359, 361, 362, 366, 367, 368, 369, 377, 381, 396, - 397, 408, 420, 425, 246, 404, 426, 0, 281, 0, - 0, 283, 231, 248, 258, 0, 415, 378, 188, 349, - 238, 177, 205, 191, 212, 226, 228, 262, 291, 297, - 326, 329, 243, 223, 203, 346, 200, 364, 384, 385, - 386, 388, 295, 219, 313, 0, 1209, 0, 0, 0, - 0, 0, 0, 222, 0, 0, 0, 0, 0, 271, - 0, 0, 0, 327, 0, 365, 208, 280, 278, 393, - 232, 225, 221, 207, 255, 286, 325, 383, 319, 0, - 275, 0, 0, 374, 298, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 261, 206, 175, 310, 375, 236, 0, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 197, 0, 204, 0, 0, 0, 0, 218, 259, 224, - 217, 390, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 244, 0, 299, 0, 0, 0, - 0, 422, 0, 0, 0, 0, 0, 0, 0, 0, - 270, 0, 267, 171, 186, 0, 0, 309, 348, 354, - 0, 0, 0, 209, 0, 352, 323, 407, 193, 234, - 345, 328, 350, 0, 0, 351, 276, 395, 340, 405, - 423, 424, 216, 303, 413, 387, 419, 434, 187, 213, - 317, 380, 410, 371, 296, 391, 392, 266, 370, 242, - 174, 274, 431, 185, 360, 201, 178, 382, 403, 198, - 363, 0, 0, 0, 180, 401, 379, 293, 263, 264, - 179, 0, 344, 220, 240, 211, 312, 398, 399, 210, - 436, 189, 418, 182, 0, 417, 305, 394, 402, 294, - 285, 181, 400, 292, 284, 269, 230, 250, 338, 279, - 339, 251, 301, 300, 302, 0, 176, 0, 376, 411, - 437, 194, 195, 196, 0, 229, 233, 239, 241, 0, - 247, 254, 272, 316, 337, 335, 341, 0, 389, 406, - 414, 421, 427, 428, 432, 429, 430, 433, 304, 190, - 253, 372, 268, 277, 0, 0, 322, 353, 199, 409, - 373, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 183, 273, 0, 342, 237, 435, 416, 412, - 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 184, 192, 202, - 214, 227, 235, 245, 249, 252, 256, 257, 260, 265, - 282, 287, 288, 289, 290, 306, 307, 308, 311, 314, - 315, 318, 320, 321, 324, 330, 331, 332, 333, 334, - 336, 343, 347, 355, 356, 357, 358, 359, 361, 362, - 366, 367, 368, 369, 377, 381, 396, 397, 408, 420, - 425, 246, 404, 426, 0, 281, 0, 0, 283, 231, - 248, 258, 0, 415, 378, 188, 349, 238, 177, 205, - 191, 212, 226, 228, 262, 291, 297, 326, 329, 243, - 223, 203, 346, 200, 364, 384, 385, 386, 388, 295, - 219, 313, 0, 0, 0, 0, 0, 0, 0, 0, - 222, 0, 0, 0, 0, 0, 271, 0, 0, 0, - 327, 0, 365, 208, 280, 278, 393, 232, 225, 221, - 207, 255, 286, 325, 383, 319, 0, 275, 0, 0, - 374, 298, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 261, 206, 175, - 310, 375, 236, 1184, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 197, 0, 204, - 0, 0, 0, 0, 218, 259, 224, 217, 390, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 244, 0, 299, 0, 0, 0, 0, 422, 0, - 0, 0, 0, 0, 0, 0, 0, 270, 0, 267, - 171, 186, 0, 0, 309, 348, 354, 0, 0, 0, - 209, 0, 352, 323, 407, 193, 234, 345, 328, 350, - 0, 0, 351, 276, 395, 340, 405, 423, 424, 216, - 303, 413, 387, 419, 434, 187, 213, 317, 380, 410, - 371, 296, 391, 392, 266, 370, 242, 174, 274, 431, - 185, 360, 201, 178, 382, 403, 198, 363, 0, 0, - 0, 180, 401, 379, 293, 263, 264, 179, 0, 344, - 220, 240, 211, 312, 398, 399, 210, 436, 189, 418, - 182, 0, 417, 305, 394, 402, 294, 285, 181, 400, - 292, 284, 269, 230, 250, 338, 279, 339, 251, 301, - 300, 302, 0, 176, 0, 376, 411, 437, 194, 195, - 196, 0, 229, 233, 239, 241, 0, 247, 254, 272, - 316, 337, 335, 341, 0, 389, 406, 414, 421, 427, - 428, 432, 429, 430, 433, 304, 190, 253, 372, 268, - 277, 0, 0, 322, 353, 199, 409, 373, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 170, 183, - 273, 0, 342, 237, 435, 416, 412, 0, 0, 215, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 173, 184, 192, 202, 214, 227, 235, - 245, 249, 252, 256, 257, 260, 265, 282, 287, 288, - 289, 290, 306, 307, 308, 311, 314, 315, 318, 320, - 321, 324, 330, 331, 332, 333, 334, 336, 343, 347, - 355, 356, 357, 358, 359, 361, 362, 366, 367, 368, - 369, 377, 381, 396, 397, 408, 420, 425, 246, 404, - 426, 0, 281, 0, 0, 283, 231, 248, 258, 0, - 415, 378, 188, 349, 238, 177, 205, 191, 212, 226, - 228, 262, 291, 297, 326, 329, 243, 223, 203, 346, - 200, 364, 384, 385, 386, 388, 295, 219, 1085, 0, - 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, - 0, 0, 0, 0, 222, 0, 0, 0, 0, 0, - 271, 0, 0, 0, 327, 0, 365, 208, 280, 278, - 393, 232, 225, 221, 207, 255, 286, 325, 383, 319, - 0, 275, 0, 0, 374, 298, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 261, 206, 175, 310, 375, 236, 0, 0, 0, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, + 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 314, 0, 1223, 0, 0, 0, + 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, + 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, + 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, + 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, + 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, + 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, + 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, + 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, + 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, + 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, + 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, + 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, + 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, + 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, + 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, + 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, + 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, + 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, + 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, + 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, + 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, + 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, + 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, + 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, + 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, + 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, + 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, + 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, + 389, 296, 220, 314, 0, 1221, 0, 0, 0, 0, + 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, + 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 197, 0, 204, 0, 0, 0, 0, 218, 259, - 224, 217, 390, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 244, 0, 299, 0, 0, - 0, 0, 422, 0, 0, 0, 0, 0, 0, 0, - 0, 270, 0, 267, 171, 186, 0, 0, 309, 348, - 354, 0, 0, 0, 209, 0, 352, 323, 407, 193, - 234, 345, 328, 350, 0, 0, 351, 276, 395, 340, - 405, 423, 424, 216, 303, 413, 387, 419, 434, 187, - 213, 317, 380, 410, 371, 296, 391, 392, 266, 370, - 242, 174, 274, 431, 185, 360, 201, 178, 382, 403, - 198, 363, 0, 0, 0, 180, 401, 379, 293, 263, - 264, 179, 0, 344, 220, 240, 211, 312, 398, 399, - 210, 436, 189, 418, 182, 0, 417, 305, 394, 402, - 294, 285, 181, 400, 292, 284, 269, 230, 250, 338, - 279, 339, 251, 301, 300, 302, 0, 176, 0, 376, - 411, 437, 194, 195, 196, 0, 229, 233, 239, 241, - 0, 247, 254, 272, 316, 337, 335, 341, 0, 389, - 406, 414, 421, 427, 428, 432, 429, 430, 433, 304, - 190, 253, 372, 268, 277, 0, 0, 322, 353, 199, - 409, 373, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 183, 273, 0, 342, 237, 435, 416, - 412, 0, 0, 215, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 184, 192, - 202, 214, 227, 235, 245, 249, 252, 256, 257, 260, - 265, 282, 287, 288, 289, 290, 306, 307, 308, 311, - 314, 315, 318, 320, 321, 324, 330, 331, 332, 333, - 334, 336, 343, 347, 355, 356, 357, 358, 359, 361, - 362, 366, 367, 368, 369, 377, 381, 396, 397, 408, - 420, 425, 246, 404, 426, 0, 281, 0, 0, 283, - 231, 248, 258, 0, 415, 378, 188, 349, 238, 177, - 205, 191, 212, 226, 228, 262, 291, 297, 326, 329, - 243, 223, 203, 346, 200, 364, 384, 385, 386, 388, - 295, 219, 313, 0, 0, 0, 0, 0, 0, 0, - 1076, 222, 0, 0, 0, 0, 0, 271, 0, 0, - 0, 327, 0, 365, 208, 280, 278, 393, 232, 225, - 221, 207, 255, 286, 325, 383, 319, 0, 275, 0, - 0, 374, 298, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 261, 206, - 175, 310, 375, 236, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 197, 0, - 204, 0, 0, 0, 0, 218, 259, 224, 217, 390, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 244, 0, 299, 0, 0, 0, 0, 422, - 0, 0, 0, 0, 0, 0, 0, 0, 270, 0, - 267, 171, 186, 0, 0, 309, 348, 354, 0, 0, - 0, 209, 0, 352, 323, 407, 193, 234, 345, 328, - 350, 0, 0, 351, 276, 395, 340, 405, 423, 424, - 216, 303, 413, 387, 419, 434, 187, 213, 317, 380, - 410, 371, 296, 391, 392, 266, 370, 242, 174, 274, - 431, 185, 360, 201, 178, 382, 403, 198, 363, 0, - 0, 0, 180, 401, 379, 293, 263, 264, 179, 0, - 344, 220, 240, 211, 312, 398, 399, 210, 436, 189, - 418, 182, 0, 417, 305, 394, 402, 294, 285, 181, - 400, 292, 284, 269, 230, 250, 338, 279, 339, 251, - 301, 300, 302, 0, 176, 0, 376, 411, 437, 194, - 195, 196, 0, 229, 233, 239, 241, 0, 247, 254, - 272, 316, 337, 335, 341, 0, 389, 406, 414, 421, - 427, 428, 432, 429, 430, 433, 304, 190, 253, 372, - 268, 277, 0, 0, 322, 353, 199, 409, 373, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, + 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, + 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 314, 0, 1219, 0, 0, 0, 0, 0, + 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, + 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, + 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, + 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, + 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, + 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, + 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, + 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, + 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, + 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, + 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, + 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, + 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, + 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, + 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, + 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, + 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, + 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, + 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, + 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, + 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, + 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, + 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, + 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, + 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, + 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, + 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, + 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, + 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, + 220, 314, 0, 1215, 0, 0, 0, 0, 0, 0, + 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, + 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, + 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, + 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, + 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, + 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, + 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, + 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, + 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, + 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 314, 0, 1213, 0, 0, 0, 0, 0, 0, 223, + 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, + 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, + 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, + 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, + 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, + 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, + 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, + 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, + 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 183, 273, 0, 342, 237, 435, 416, 412, 0, 0, - 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 184, 192, 202, 214, 227, - 235, 245, 249, 252, 256, 257, 260, 265, 282, 287, - 288, 289, 290, 306, 307, 308, 311, 314, 315, 318, - 320, 321, 324, 330, 331, 332, 333, 334, 336, 343, - 347, 355, 356, 357, 358, 359, 361, 362, 366, 367, - 368, 369, 377, 381, 396, 397, 408, 420, 425, 246, - 404, 426, 0, 281, 0, 0, 283, 231, 248, 258, - 0, 415, 378, 188, 349, 238, 177, 205, 191, 212, - 226, 228, 262, 291, 297, 326, 329, 243, 223, 203, - 346, 200, 364, 384, 385, 386, 388, 295, 219, 313, - 0, 0, 0, 0, 0, 0, 0, 0, 222, 0, - 0, 0, 0, 0, 271, 0, 0, 0, 327, 0, - 365, 208, 280, 278, 393, 232, 225, 221, 207, 255, - 286, 325, 383, 319, 0, 275, 0, 0, 374, 298, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 261, 206, 175, 310, 375, - 236, 0, 0, 0, 167, 168, 169, 0, 932, 0, - 0, 0, 0, 0, 0, 197, 0, 204, 0, 0, - 0, 0, 218, 259, 224, 217, 390, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, - 0, 299, 0, 0, 0, 0, 422, 0, 0, 0, - 0, 0, 0, 0, 0, 270, 0, 267, 171, 186, - 0, 0, 309, 348, 354, 0, 0, 0, 209, 0, - 352, 323, 407, 193, 234, 345, 328, 350, 0, 0, - 351, 276, 395, 340, 405, 423, 424, 216, 303, 413, - 387, 419, 434, 187, 213, 317, 380, 410, 371, 296, - 391, 392, 266, 370, 242, 174, 274, 431, 185, 360, - 201, 178, 382, 403, 198, 363, 0, 0, 0, 180, - 401, 379, 293, 263, 264, 179, 0, 344, 220, 240, - 211, 312, 398, 399, 210, 436, 189, 418, 182, 0, - 417, 305, 394, 402, 294, 285, 181, 400, 292, 284, - 269, 230, 250, 338, 279, 339, 251, 301, 300, 302, - 0, 176, 0, 376, 411, 437, 194, 195, 196, 0, - 229, 233, 239, 241, 0, 247, 254, 272, 316, 337, - 335, 341, 0, 389, 406, 414, 421, 427, 428, 432, - 429, 430, 433, 304, 190, 253, 372, 268, 277, 0, - 0, 322, 353, 199, 409, 373, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 183, 273, 0, - 342, 237, 435, 416, 412, 0, 0, 215, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 184, 192, 202, 214, 227, 235, 245, 249, - 252, 256, 257, 260, 265, 282, 287, 288, 289, 290, - 306, 307, 308, 311, 314, 315, 318, 320, 321, 324, - 330, 331, 332, 333, 334, 336, 343, 347, 355, 356, - 357, 358, 359, 361, 362, 366, 367, 368, 369, 377, - 381, 396, 397, 408, 420, 425, 246, 404, 426, 0, - 281, 0, 0, 283, 231, 248, 258, 0, 415, 378, - 188, 349, 238, 177, 205, 191, 212, 226, 228, 262, - 291, 297, 326, 329, 243, 223, 203, 346, 200, 364, - 384, 385, 386, 388, 295, 219, 313, 0, 0, 0, - 0, 0, 0, 0, 0, 222, 0, 0, 0, 0, - 0, 271, 0, 0, 0, 327, 0, 365, 208, 280, - 278, 393, 232, 225, 221, 207, 255, 286, 325, 383, - 319, 0, 275, 0, 0, 374, 298, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 261, 206, 175, 310, 375, 236, 0, 0, + 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, + 0, 1211, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, + 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, + 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, + 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, + 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, + 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, + 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, + 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, + 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, + 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, + 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, + 376, 237, 1186, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, + 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, + 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, + 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, + 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, + 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, + 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, + 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, + 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, + 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, + 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, + 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, + 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, + 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, + 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, + 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, + 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 184, 274, + 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, + 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, + 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, + 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, + 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, + 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, + 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, + 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, + 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, + 365, 385, 386, 387, 389, 296, 220, 1087, 0, 0, + 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, + 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, + 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 197, 0, 204, 0, 0, 0, 0, 218, - 259, 224, 217, 390, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 491, 0, 244, 0, 299, 0, - 0, 0, 0, 422, 0, 0, 0, 0, 0, 0, - 0, 0, 270, 0, 267, 171, 186, 0, 0, 309, - 348, 354, 0, 0, 0, 209, 0, 352, 323, 407, - 193, 234, 345, 328, 350, 0, 0, 351, 276, 395, - 340, 405, 423, 424, 216, 303, 413, 387, 419, 434, - 187, 213, 317, 380, 410, 371, 296, 391, 392, 266, - 370, 242, 174, 274, 431, 185, 360, 201, 178, 382, - 403, 198, 363, 0, 0, 0, 180, 401, 379, 293, - 263, 264, 179, 0, 344, 220, 240, 211, 312, 398, - 399, 210, 436, 189, 418, 182, 0, 417, 305, 394, - 402, 294, 285, 181, 400, 292, 284, 269, 230, 250, - 338, 279, 339, 251, 301, 300, 302, 0, 176, 0, - 376, 411, 437, 194, 195, 196, 0, 229, 233, 239, - 241, 0, 247, 254, 272, 316, 337, 335, 341, 0, - 389, 406, 414, 421, 427, 428, 432, 429, 430, 433, - 304, 190, 253, 372, 268, 277, 0, 0, 322, 353, - 199, 409, 373, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 183, 273, 0, 342, 237, 435, - 416, 412, 0, 0, 215, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 184, - 192, 202, 214, 227, 235, 245, 249, 252, 256, 257, - 260, 265, 282, 287, 288, 289, 290, 306, 307, 308, - 311, 314, 315, 318, 320, 321, 324, 330, 331, 332, - 333, 334, 336, 343, 347, 355, 356, 357, 358, 359, - 361, 362, 366, 367, 368, 369, 377, 381, 396, 397, - 408, 420, 425, 490, 404, 426, 0, 281, 0, 0, - 283, 231, 248, 258, 0, 415, 378, 188, 349, 238, - 177, 205, 191, 212, 226, 228, 262, 291, 297, 326, - 329, 243, 223, 203, 346, 200, 364, 384, 385, 386, - 388, 295, 219, 313, 0, 0, 0, 0, 0, 0, - 0, 0, 222, 0, 0, 0, 0, 0, 271, 0, - 0, 0, 327, 0, 365, 208, 280, 278, 393, 232, - 225, 221, 207, 255, 286, 325, 383, 319, 0, 275, - 0, 0, 374, 298, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, - 206, 175, 310, 375, 236, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 197, - 0, 204, 0, 0, 0, 0, 218, 259, 224, 217, - 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 244, 0, 299, 0, 0, 440, 0, - 422, 0, 0, 0, 0, 0, 0, 0, 0, 270, - 0, 267, 171, 186, 0, 0, 309, 348, 354, 0, - 0, 0, 209, 0, 352, 323, 407, 193, 234, 345, - 328, 350, 0, 0, 351, 276, 395, 340, 405, 423, - 424, 216, 303, 413, 387, 419, 434, 187, 213, 317, - 380, 410, 371, 296, 391, 392, 266, 370, 242, 174, - 274, 431, 185, 360, 201, 178, 382, 403, 198, 363, - 0, 0, 0, 180, 401, 379, 293, 263, 264, 179, - 0, 344, 220, 240, 211, 312, 398, 399, 210, 436, - 189, 418, 182, 0, 417, 305, 394, 402, 294, 285, - 181, 400, 292, 284, 269, 230, 250, 338, 279, 339, - 251, 301, 300, 302, 0, 176, 0, 376, 411, 437, - 194, 195, 196, 0, 229, 233, 239, 241, 0, 247, - 254, 272, 316, 337, 335, 341, 0, 389, 406, 414, - 421, 427, 428, 432, 429, 430, 433, 304, 190, 253, - 372, 268, 277, 0, 0, 322, 353, 199, 409, 373, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 183, 273, 0, 342, 237, 435, 416, 412, 0, - 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 184, 192, 202, 214, - 227, 235, 245, 249, 252, 256, 257, 260, 265, 282, - 287, 288, 289, 290, 306, 307, 308, 311, 314, 315, - 318, 320, 321, 324, 330, 331, 332, 333, 334, 336, - 343, 347, 355, 356, 357, 358, 359, 361, 362, 366, - 367, 368, 369, 377, 381, 396, 397, 408, 420, 425, - 246, 404, 426, 0, 281, 0, 0, 283, 231, 248, - 258, 0, 415, 378, 188, 349, 238, 177, 205, 191, - 212, 226, 228, 262, 291, 297, 326, 329, 243, 223, - 203, 346, 200, 364, 384, 385, 386, 388, 295, 219, - 313, 0, 0, 0, 0, 0, 0, 0, 0, 222, - 0, 0, 0, 0, 0, 271, 0, 0, 0, 327, - 0, 365, 208, 280, 278, 393, 232, 225, 221, 207, - 255, 286, 325, 383, 319, 0, 275, 0, 0, 374, - 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 261, 206, 175, 310, - 375, 236, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 197, 0, 204, 0, - 0, 0, 0, 218, 259, 224, 217, 390, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 244, 0, 299, 0, 0, 0, 0, 422, 0, 0, - 0, 0, 0, 0, 0, 0, 270, 0, 267, 171, - 186, 0, 0, 309, 348, 354, 0, 0, 0, 209, - 0, 352, 323, 407, 193, 234, 345, 328, 350, 0, - 0, 351, 276, 395, 340, 405, 423, 424, 216, 303, - 413, 387, 419, 434, 187, 213, 317, 380, 410, 371, - 296, 391, 392, 266, 370, 242, 174, 274, 431, 185, - 360, 201, 178, 382, 403, 198, 363, 0, 0, 0, - 180, 401, 379, 293, 263, 264, 179, 0, 344, 220, - 240, 211, 312, 398, 399, 210, 436, 189, 418, 182, - 0, 417, 305, 394, 402, 294, 285, 181, 400, 292, - 284, 269, 230, 250, 338, 279, 339, 251, 301, 300, - 302, 0, 176, 0, 376, 411, 437, 194, 195, 196, - 0, 229, 233, 239, 241, 0, 247, 254, 272, 316, - 337, 335, 341, 0, 389, 406, 414, 421, 427, 428, - 432, 429, 430, 433, 304, 190, 253, 372, 268, 277, - 0, 0, 322, 353, 199, 409, 373, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 183, 273, - 0, 342, 237, 435, 416, 412, 0, 0, 215, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 184, 192, 202, 214, 227, 235, 245, - 249, 252, 256, 257, 260, 265, 282, 287, 288, 289, - 290, 306, 307, 308, 311, 314, 315, 318, 320, 321, - 324, 330, 331, 332, 333, 334, 336, 343, 347, 355, - 356, 357, 358, 359, 361, 362, 366, 367, 368, 369, - 377, 381, 396, 397, 408, 420, 425, 246, 404, 426, - 0, 281, 0, 0, 283, 231, 248, 258, 0, 415, - 378, 188, 349, 238, 177, 205, 191, 212, 226, 228, - 262, 291, 297, 326, 329, 243, 223, 203, 346, 200, - 364, 384, 385, 386, 388, 295, 219, + 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, + 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, + 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, + 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, + 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, + 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, + 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, + 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, + 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, + 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, + 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, + 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, + 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, + 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, + 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, + 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, + 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, + 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, + 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, + 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, + 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, + 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, + 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, + 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, + 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, + 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, + 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, + 0, 1078, 223, 0, 0, 0, 0, 0, 272, 0, + 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, + 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, + 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, + 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, + 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, + 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, + 168, 169, 0, 934, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, + 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, + 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, + 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, + 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, + 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, + 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, + 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, + 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, + 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, + 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, + 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, + 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, + 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, + 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, + 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, + 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, + 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, + 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, + 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, + 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, + 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, + 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, + 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, + 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, + 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, + 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, + 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, + 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, + 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, + 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, + 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, + 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, + 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 492, 0, 245, 0, 300, 0, 0, 0, 0, + 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, + 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, + 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 491, 405, 427, 0, 282, 0, 0, 284, 232, 249, + 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, + 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, + 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, + 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, + 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, + 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 245, 0, 300, 0, 0, 441, 0, 423, + 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, + 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, + 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, + 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, + 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, + 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, + 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, + 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, + 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, + 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, + 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, + 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, } var yyPact = [...]int{ - 3049, -1000, -347, 1677, -1000, -1000, -1000, -1000, -1000, -1000, + 4549, -1000, -346, 1590, -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, 1646, 1169, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 663, 1307, -1000, 1545, 242, -1000, 27751, 478, - -1000, 27294, 475, 73, 27751, -1000, 109, -1000, 103, 27751, - 113, 26837, -1000, -1000, -280, 13094, 1500, 7, 6, 27751, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1245, - 1608, 1620, 1644, 1120, 1623, -1000, 11253, 11253, 380, 380, - 380, 9425, -1000, -1000, 16763, 27751, 27751, 294, -1000, 1545, - -1000, -1000, 169, -1000, 301, 1270, -1000, 1267, -1000, 490, - 421, 298, 379, 348, 295, 291, 276, 275, 274, 270, - 267, 266, 304, -1000, 638, 638, -149, -167, 2346, 352, - 352, 352, 402, 1511, 1510, -1000, 611, -1000, 638, 638, - 146, 638, 638, 638, 638, 231, 224, 638, 638, 638, - 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, - 638, 638, 193, 1545, 212, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1549, 1219, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 612, 1261, -1000, 1459, 241, -1000, 27890, 404, + -1000, 27431, 403, 2683, 27890, -1000, 102, -1000, 90, 27890, + 101, 26972, -1000, -1000, -286, 12710, 1419, -6, -8, 27890, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1240, + 1521, 1527, 1546, 1066, 1472, -1000, 10861, 10861, 330, 330, + 330, 9025, -1000, -1000, 16854, 27890, 27890, 189, -1000, 1459, + -1000, -1000, 151, -1000, 247, 1193, -1000, 1188, -1000, 463, + 543, 243, 321, 319, 231, 230, 229, 224, 223, 222, + 221, 220, 250, -1000, 540, 540, -175, -180, 2059, 305, + 305, 305, 361, 1434, 1433, -1000, 502, -1000, 540, 540, + 149, 540, 540, 540, 540, 181, 176, 540, 540, 540, + 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, + 540, 540, 177, 1459, 161, -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, @@ -3970,26 +3991,26 @@ 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, -1000, 27751, 100, - 27751, -1000, 568, 27751, 751, 751, 15, 751, 751, 751, - 751, 107, 543, 3, -1000, 105, 215, 116, 185, 711, - 292, 60, -1000, -1000, 168, 711, 101, -1000, 751, 7541, - 7541, 7541, -1000, 1530, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 397, -1000, -1000, -1000, -1000, 27751, 26380, 230, - 661, -1000, -1000, -1000, 33, -1000, -1000, 1080, 866, -1000, - 13094, 2416, 1280, 1280, -1000, -1000, 521, -1000, -1000, 14465, - 14465, 14465, 14465, 14465, 14465, 14465, 14465, 14465, 14465, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 27890, + 135, 27890, -1000, 469, 27890, 623, 623, 26, 623, 623, + 623, 623, 99, 444, -10, -1000, 96, 166, 94, 154, + 622, 84, 58, -1000, -1000, 157, 622, 78, -1000, 623, + 7133, 7133, 7133, -1000, 1443, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 360, -1000, -1000, -1000, -1000, 27890, 26513, + 226, 605, -1000, -1000, -1000, 8, -1000, -1000, 1122, 556, + -1000, 12710, 2147, 1210, 1210, -1000, -1000, 433, -1000, -1000, + 14087, 14087, 14087, 14087, 14087, 14087, 14087, 14087, 14087, 14087, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1280, 566, -1000, 12637, 1280, 1280, 1280, - 1280, 1280, 1280, 1280, 1280, 13094, 1280, 1280, 1280, 1280, - 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, - 1280, 1280, 1280, -1000, -1000, -1000, 27751, -1000, 1280, 127, - 1646, -1000, 1169, -1000, -1000, -1000, 1547, 13094, 13094, 1646, - -1000, 1309, 11253, -1000, -1000, 1588, -1000, -1000, -1000, -1000, - -1000, 752, 1661, -1000, 15379, 565, 1660, 25923, -1000, 19518, - 25466, 1262, 8954, -46, -1000, -1000, -1000, 651, 18604, -1000, + -1000, -1000, -1000, -1000, 1210, 466, -1000, 12251, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 12710, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, -1000, -1000, -1000, 27890, -1000, 1210, + 112, 1549, -1000, 1219, -1000, -1000, -1000, 1450, 12710, 12710, + 1549, -1000, 1363, 10861, -1000, -1000, 1393, -1000, -1000, -1000, + -1000, -1000, 710, 1575, -1000, 15464, 461, 1574, 26054, -1000, + 19621, 25595, 1179, 8552, -49, -1000, -1000, -1000, 598, 18703, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1530, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1443, -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, @@ -4002,193 +4023,193 @@ 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, 1164, 27751, -1000, -1000, 3859, 960, -1000, 1306, -1000, - 1162, -1000, 1290, 1255, 473, 960, 459, 443, 441, -1000, - -94, -1000, -1000, -1000, -1000, -1000, 638, 638, 303, 242, - 4387, -1000, -1000, -1000, 25002, 1305, 960, -1000, 1304, -1000, - 1570, 362, 552, 552, 960, -1000, -1000, 27751, 960, 1567, - 1560, 27751, 27751, -1000, 24545, -1000, 24088, 23631, 859, 27751, - 23174, 22717, 22260, 21803, 21346, -1000, 1404, -1000, 1299, -1000, - -1000, -1000, 27751, 27751, 27751, 29, -1000, -1000, 27751, 960, - -1000, -1000, 851, 848, 638, 638, 845, 999, 996, 995, - 638, 638, 839, 994, 1092, 237, 838, 830, 814, 917, - 992, 106, 894, 892, 809, 27751, 1303, 27751, -1000, 178, - 619, 265, 647, 1545, 1498, 1252, 386, 472, 960, 365, - 365, -1000, 8012, -1000, -1000, 990, 13094, -1000, 713, 711, - 711, -1000, -1000, -1000, -1000, -1000, -1000, 751, 27751, 713, - -1000, -1000, -1000, 711, 751, 27751, 751, 751, 751, 751, - 711, 711, 711, 751, 27751, 27751, 27751, 27751, 27751, 27751, - 27751, 27751, 27751, 7541, 7541, 7541, 623, 751, -1000, 1399, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 102, -1000, - -1000, -1000, -1000, -1000, 1677, -1000, -1000, -1000, -114, 1251, - 20889, -1000, -289, -290, -291, -292, -1000, -1000, -1000, -293, - -294, -1000, -1000, -1000, 13094, 13094, 13094, 13094, 844, 603, - 14465, 762, 670, 14465, 14465, 14465, 14465, 14465, 14465, 14465, - 14465, 14465, 14465, 14465, 14465, 14465, 14465, 14465, 662, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 960, -1000, 1675, - 1250, 1250, 550, 550, 550, 550, 550, 550, 550, 550, - 550, 5082, 9882, 8012, 1120, 1157, 1646, 11253, 11253, 13094, - 13094, 12167, 11710, 11253, 1526, 680, 866, 27751, -1000, 1008, - -1000, -1000, 14008, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 27751, 27751, 11253, 11253, 11253, - 11253, 11253, -1000, 1227, -1000, -172, 16306, 13094, 986, 1620, - 1120, 1588, 1549, 1670, 598, 857, 1221, -1000, 926, 1620, - 18147, 1263, -1000, 1588, -1000, -1000, -1000, 27751, -1000, -1000, - 20432, -1000, -1000, 7070, 27751, 254, 27751, -1000, 1205, 1391, - -1000, -1000, -1000, 1603, 17690, 27751, 1269, 1249, -1000, -1000, - 560, 8483, -46, -1000, 8483, 1187, -1000, -32, -70, 10339, - 548, -1000, -1000, -1000, 2346, 14922, 1059, -1000, 38, -1000, - -1000, -1000, 1290, -1000, 1290, 1290, 1290, 1290, 29, 29, - 29, 29, -1000, -1000, -1000, -1000, -1000, 1302, 1301, -1000, - 1290, 1290, 1290, 1290, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1092, 27890, -1000, -1000, 4016, 936, -1000, + 1260, -1000, 1088, -1000, 1226, 1269, 400, 936, 395, 394, + 391, -1000, -110, -1000, -1000, -1000, -1000, -1000, 540, 540, + 249, 241, 4144, -1000, -1000, -1000, 25129, 1259, 936, -1000, + 1258, -1000, 1484, 313, 506, 506, 936, -1000, -1000, 27890, + 936, 1482, 1481, 27890, 27890, -1000, 24670, -1000, 24211, 23752, + 870, 27890, 23293, 22834, 22375, 21916, 21457, -1000, 1317, -1000, + 1246, -1000, -1000, -1000, 27890, 27890, 27890, 20, -1000, -1000, + 27890, 936, -1000, -1000, 863, 862, 540, 540, 851, 972, + 963, 961, 540, 540, 850, 957, 931, 148, 840, 837, + 835, 848, 935, 107, 799, 778, 809, 27890, 1257, 27890, + -1000, 153, 534, 244, 591, 1459, 1415, 1176, 358, 399, + 936, 312, 312, -1000, 7606, -1000, -1000, 930, 12710, -1000, + 670, 622, 622, -1000, -1000, -1000, -1000, -1000, -1000, 623, + 27890, 670, -1000, -1000, -1000, 622, 623, 27890, 623, 623, + 623, 623, 622, 622, 622, 623, 27890, 27890, 27890, 27890, + 27890, 27890, 27890, 27890, 27890, 7133, 7133, 7133, 504, 623, + -1000, 1300, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 97, -1000, -1000, -1000, -1000, -1000, 1590, -1000, -1000, -1000, + -115, 1159, 20998, -1000, -290, -292, -293, -294, -1000, -1000, + -1000, -295, -296, -1000, -1000, -1000, 12710, 12710, 12710, 12710, + 844, 520, 14087, 716, 528, 14087, 14087, 14087, 14087, 14087, + 14087, 14087, 14087, 14087, 14087, 14087, 14087, 14087, 14087, 14087, + 634, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 936, + -1000, 1588, 908, 908, 481, 481, 481, 481, 481, 481, + 481, 481, 481, 14546, 9484, 7606, 1066, 1059, 1549, 10861, + 10861, 12710, 12710, 11779, 11320, 10861, 1444, 603, 556, 27890, + -1000, 991, -1000, -1000, 13628, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 27890, 27890, 10861, + 10861, 10861, 10861, 10861, -1000, 1158, -1000, -174, 16395, 12710, + 920, 1527, 1066, 1393, 1495, 1581, 514, 1027, 1157, -1000, + 859, 1527, 18244, 1191, -1000, 1393, -1000, -1000, -1000, 27890, + -1000, -1000, 20539, -1000, -1000, 6660, 27890, 219, 27890, -1000, + 1190, 1378, -1000, -1000, -1000, 1504, 17785, 27890, 1136, 1077, + -1000, -1000, 455, 8079, -49, -1000, 8079, 1140, -1000, -55, + -65, 9943, 480, -1000, -1000, -1000, 2059, 15005, 1100, -1000, + 19, -1000, -1000, -1000, 1226, -1000, 1226, 1226, 1226, 1226, + 20, 20, 20, 20, -1000, -1000, -1000, -1000, -1000, 1256, + 1251, -1000, 1226, 1226, 1226, 1226, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1294, 1294, 1294, 1291, 1291, 354, -1000, 13094, 138, - 27751, 1592, 808, 178, 367, 1355, 960, 960, 960, 367, - -1000, 1072, 1030, -1000, 1200, -1000, -1000, 1642, -1000, -1000, - 587, 731, 730, 487, 27751, 134, 250, -1000, 341, -1000, - 27751, 960, 1553, 552, 960, -1000, 960, -1000, -1000, -1000, - -1000, 556, -1000, -1000, 960, 1198, -1000, 1192, 745, 698, - 742, 695, 1198, -1000, -1000, -122, 1198, -1000, 1198, -1000, - 1198, -1000, 1198, -1000, 1198, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 625, 27751, 134, 662, -1000, 384, -1000, - -1000, 662, 662, -1000, -1000, -1000, -1000, 985, 984, -1000, + -1000, -1000, -1000, 1250, 1250, 1250, 1241, 1241, 299, -1000, + 12710, 137, 27890, 1494, 804, 153, 325, 1281, 936, 936, + 936, 325, -1000, 925, 897, -1000, 1156, -1000, -1000, 1541, + -1000, -1000, 587, 663, 648, 599, 27890, 127, 214, -1000, + 292, -1000, 27890, 936, 1479, 506, 936, -1000, 936, -1000, + -1000, -1000, -1000, 454, -1000, -1000, 936, 1154, -1000, 1151, + 680, 645, 673, 635, 1154, -1000, -1000, -135, 1154, -1000, + 1154, -1000, 1154, -1000, 1154, -1000, 1154, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 551, 27890, 127, 634, -1000, + 335, -1000, -1000, 634, 634, -1000, -1000, -1000, -1000, 917, + 915, -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, -339, 27890, -1000, + 144, 552, 188, 262, 194, 27890, 120, 1508, 186, 171, + 27890, 27890, 312, 1297, 27890, 1499, 27890, -1000, -1000, -1000, + -1000, 556, 27890, -1000, -1000, 623, 623, -1000, -1000, 27890, + 623, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 623, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -338, 27751, -1000, 148, 644, - 241, 281, 222, 27751, 122, 1614, 157, 223, 27751, 27751, - 365, 1397, 27751, 1596, 27751, -1000, -1000, -1000, -1000, 866, - 27751, -1000, -1000, 751, 751, -1000, -1000, 27751, 751, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 751, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 978, -1000, 27751, 27751, -1000, -1000, -1000, -1000, - -1000, 94, -44, 195, -1000, -1000, -1000, -1000, 1616, -1000, - 866, 603, 646, 618, -1000, -1000, 794, -1000, -1000, 2431, - -1000, -1000, -1000, -1000, 762, 14465, 14465, 14465, 602, 2431, - 2552, 728, 1266, 550, 683, 683, 581, 581, 581, 581, - 581, 860, 860, -1000, -1000, -1000, -1000, 1008, -1000, -1000, - -1000, 1008, 11253, 11253, 1196, 1280, 544, -1000, 1245, -1000, - -1000, 1620, 1116, 1116, 775, 1001, 641, 1659, 1116, 632, - 1658, 1116, 1116, 11253, -1000, -1000, 672, -1000, 13094, 1008, - -1000, 1091, 1194, 1188, 1116, 1008, 1008, 1116, 1116, 27751, - -1000, -279, -1000, -61, 541, 1280, -1000, 19975, -1000, -1000, - 1008, 1080, -1000, 1547, -1000, -1000, 1488, -1000, 1450, 13094, - 13094, 13094, -1000, -1000, -1000, 1547, 1619, -1000, 1467, 1465, - 1653, 11253, 19518, 1588, -1000, -1000, -1000, 536, 1653, 1273, - 1280, -1000, 27751, 19518, 19518, 19518, 19518, 19518, -1000, 1429, - 1410, -1000, 1428, 1419, 1446, 27751, -1000, 1150, 1120, 17690, - 254, 1191, 19518, 27751, -1000, -1000, 19518, 27751, 6599, -1000, - 1187, -46, -73, -1000, -1000, -1000, -1000, 866, -1000, 972, - -1000, 2249, -1000, 349, -1000, -1000, -1000, -1000, 559, 36, - -1000, -1000, 29, 29, -1000, -1000, 548, 747, 548, 548, - 548, 971, 971, -1000, -1000, -1000, -1000, -1000, 806, -1000, - -1000, -1000, 801, -1000, -1000, 956, 1360, 138, -1000, -1000, - 638, 961, 1504, 27751, -1000, -1000, 1057, 148, 27751, 690, - 1395, -1000, 1355, 1355, 1355, 27751, -1000, -1000, -1000, -1000, - 3153, 27751, 1133, -1000, 130, 27751, 1053, 27751, -1000, 1130, - 1293, -1000, 960, -1000, -1000, 8012, -1000, 27751, 1280, -1000, - -1000, -1000, -1000, 471, 1540, 1532, 134, 130, 548, 960, - -1000, -1000, -1000, -1000, -1000, -343, 1126, 414, 136, 160, - 27751, 27751, 27751, 27751, 27751, 493, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 221, 383, -1000, 27751, 27751, 446, -1000, - -1000, -1000, 711, -1000, -1000, 711, -1000, -1000, -1000, -1000, - -1000, -1000, 1525, -51, -315, -1000, -308, -1000, -1000, -1000, - -1000, 602, 2431, 2297, -1000, 14465, 14465, -1000, -1000, 1116, - 1116, 11253, 8012, 1646, 1547, -1000, -1000, 377, 662, 377, - 14465, 14465, -1000, 14465, 14465, -1000, -112, 1174, 664, -1000, - 13094, 852, -1000, -1000, 14465, 14465, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 440, 434, 420, 27751, -1000, - -1000, -1000, 950, 953, 1448, 866, 866, -1000, -1000, 27751, - -1000, -1000, -1000, -1000, 1651, 13094, -1000, 1184, -1000, 6128, - 1620, 1394, 27751, 1280, 1677, 15849, 27751, 1242, -1000, 640, - 1391, 1334, 1393, 1528, -1000, -1000, -1000, -1000, 1401, -1000, - 1370, -1000, -1000, -1000, -1000, -1000, 1120, 1653, 19518, 1228, - -1000, 1228, -1000, 533, -1000, -1000, -1000, -57, -45, -1000, - -1000, -1000, 2346, -1000, -1000, -1000, 736, 14465, 14465, 1669, - -1000, 952, 1552, -1000, 1551, -1000, -1000, 548, 548, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 1111, -1000, 1104, 1178, - 1101, 66, -1000, 1209, 1524, 638, 638, -1000, 798, -1000, - 960, -1000, -1000, 410, -1000, 1584, 27751, 1389, 1386, 1362, - -1000, 1640, 1171, -1000, 27751, -1000, -1000, 27751, -1000, -1000, - 1464, 138, 27751, -1000, -1000, -1000, 250, 27751, -1000, 1250, - 130, -1000, -1000, -1000, -1000, -1000, -1000, 27751, 147, -1000, - 1292, 1003, -1000, 1317, -1000, -1000, -1000, -1000, 135, 238, - -1000, 27751, 444, 1360, 27751, -1000, -1000, -1000, 751, 751, - -1000, 1520, -1000, 960, -1000, 14465, 2431, 2431, -1000, -1000, - 1008, -1000, 1620, -1000, 1008, 1290, 1290, -1000, 1290, 1291, - -1000, 1290, 87, 1290, 84, 1008, 1008, 2129, 1870, 1790, - 1310, 1280, -110, -1000, 866, 13094, 1284, 1182, 1280, 1280, - 1280, 1088, 943, 29, -1000, -1000, -1000, 1649, 1639, 866, - -1000, -1000, -1000, 1579, 1175, 1062, -1000, -1000, 10796, 1099, - 1460, 517, 1088, 1646, 27751, 13094, -1000, -1000, 13094, 1289, - -1000, 13094, -1000, -1000, -1000, 1646, 1646, 1228, -1000, -1000, - 584, -1000, -1000, -1000, -1000, -1000, 2431, 2431, 80, -1000, - -1000, -1000, -1000, -1000, 29, 942, 29, 796, -1000, 790, - -1000, -1000, -211, -1000, -1000, 1277, 1350, -1000, -1000, 27751, - -1000, -1000, 27751, 27751, 27751, 27751, 27751, -1000, -1000, 247, - -1000, 1069, 1052, -1000, -146, -1000, -1000, 1288, -1000, -1000, - -1000, 1045, -1000, -124, 960, 27751, 27751, 27751, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 2431, -1000, 1547, -1000, - -1000, 196, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 14465, 14465, 14465, 14465, 14465, 1620, 937, 866, 14465, 14465, - 19061, 27751, 27751, 17220, 29, 41, -1000, 13094, 13094, 1548, - -1000, 1280, -1000, 1204, 27751, 1280, 27751, -1000, 1620, -1000, - 866, 866, 27751, 866, 1620, -1000, -1000, 548, -1000, 548, - 1028, 1024, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1288, -1000, -1000, -1000, 1171, -1000, 245, 319, -1000, 250, - -1000, -168, -173, 1601, 27751, -1000, -1000, 8012, -1000, -1000, - 1283, 1354, -1000, -1000, -1000, -1000, 1091, 1091, 1091, 1091, - 162, 1008, -1000, 1091, 1091, 1048, -1000, 1048, 1048, 541, - -272, -1000, 1495, 1472, 866, 1080, 1667, -1000, 1280, 1677, - 496, 1062, -1000, -1000, 1041, -1000, -1000, -1000, -1000, -1000, - 1598, 1280, 27751, -1000, -1000, -1000, 1169, 1019, 1073, -1000, - 633, 27751, 27751, -1000, -1000, -1000, -1000, 1008, 165, -136, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 41, 287, -1000, - 1482, 1472, -1000, 1638, 1491, 1637, -1000, 27751, 1062, 27751, - -1000, 1169, 13551, 1278, 219, -1000, 8012, 5657, 1015, -1000, - -1000, 1443, -120, -142, 1473, 1475, 1475, 1482, -1000, 1636, - 1630, -1000, 919, 1629, 916, 1031, -1000, 219, 1091, 1008, - 27751, -1000, -50, -1000, -1000, -1000, -1000, -1000, 1317, -1000, - 1441, -1000, 1471, 771, -1000, -1000, -1000, -1000, 913, 901, - -1000, 880, -1000, -1000, -1000, -1000, 1011, 342, -1000, -1000, - -124, -131, -1000, 769, -1000, -1000, -1000, -1000, -1000, 1359, - 151, -1000, -137, -1000, -1000, 1358, -1000, 1657, -1000, -143, - -1000, 1666, 591, 591, -1000, -1000, -1000, -1000, 337, 820, - -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 913, -1000, 27890, 27890, -1000, -1000, + -1000, -1000, -1000, 66, -41, 199, -1000, -1000, -1000, -1000, + 1513, -1000, 556, 520, 582, 656, -1000, -1000, 772, -1000, + -1000, 2481, -1000, -1000, -1000, -1000, 716, 14087, 14087, 14087, + 1116, 2481, 2365, 895, 701, 481, 653, 653, 510, 510, + 510, 510, 510, 919, 919, -1000, -1000, -1000, -1000, 991, + -1000, -1000, -1000, 991, 10861, 10861, 1150, 1210, 442, -1000, + 1240, -1000, -1000, 1527, 1040, 1040, 813, 754, 596, 1572, + 1040, 588, 1567, 1040, 1040, 10861, -1000, -1000, 658, -1000, + 12710, 991, -1000, 1180, 1148, 1142, 1040, 991, 991, 1040, + 1040, 27890, -1000, -282, -1000, -89, 420, 1210, -1000, 20080, + -1000, -1000, 991, 1122, -1000, 1450, -1000, -1000, 1412, -1000, + 1352, 12710, 12710, 12710, -1000, -1000, -1000, 1450, 1519, -1000, + 1379, 1377, 1564, 10861, 19621, 1393, -1000, -1000, -1000, 441, + 1564, 1128, 1210, -1000, 27890, 19621, 19621, 19621, 19621, 19621, + -1000, 1323, 1319, -1000, 1315, 1309, 1322, 27890, -1000, 1048, + 1066, 17785, 219, 1112, 19621, 27890, -1000, -1000, 19621, 27890, + 6187, -1000, 1140, -49, -39, -1000, -1000, -1000, -1000, 556, + -1000, 806, -1000, 274, -1000, 298, -1000, -1000, -1000, -1000, + 387, 14, -1000, -1000, 20, 20, -1000, -1000, 480, 734, + 480, 480, 480, 905, 905, -1000, -1000, -1000, -1000, -1000, + 797, -1000, -1000, -1000, 795, -1000, -1000, 675, 1313, 137, + -1000, -1000, 540, 904, 1426, 27890, -1000, -1000, 1075, 144, + 27890, 616, 1295, -1000, 1281, 1281, 1281, 27890, -1000, -1000, + -1000, -1000, 3740, 27890, 1046, -1000, 117, 27890, 1070, 27890, + -1000, 1044, 1248, -1000, 936, -1000, -1000, 7606, -1000, 27890, + 1210, -1000, -1000, -1000, -1000, 388, 1456, 1445, 127, 117, + 480, 936, -1000, -1000, -1000, -1000, -1000, -342, 1042, 366, + 134, 163, 27890, 27890, 27890, 27890, 27890, 457, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 165, 332, -1000, 27890, 27890, + 398, -1000, -1000, -1000, 622, -1000, -1000, 622, -1000, -1000, + -1000, -1000, -1000, -1000, 1440, -46, -313, -1000, -310, -1000, + -1000, -1000, -1000, 1116, 2481, 2294, -1000, 14087, 14087, -1000, + -1000, 1040, 1040, 10861, 7606, 1549, 1450, -1000, -1000, 377, + 634, 377, 14087, 14087, -1000, 14087, 14087, -1000, -124, 1152, + 535, -1000, 12710, 740, -1000, -1000, 14087, 14087, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 389, 386, 384, + 27890, -1000, -1000, -1000, 811, 901, 1350, 556, 556, -1000, + -1000, 27890, -1000, -1000, -1000, -1000, 1559, 12710, -1000, 1138, + -1000, 5714, 1527, 1293, 27890, 1210, 1590, 15936, 27890, 1139, + -1000, 548, 1378, 1279, 1292, 1351, -1000, -1000, -1000, -1000, + 1316, -1000, 1168, -1000, -1000, -1000, -1000, -1000, 1066, 1564, + 19621, 1134, -1000, 1134, -1000, 436, -1000, -1000, -1000, -66, + -87, -1000, -1000, -1000, 2059, -1000, -1000, -1000, 679, 14087, + 1503, 1579, -1000, 898, 1477, -1000, 1473, 1423, -1000, -1000, + 480, 480, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1037, + -1000, 1035, 1133, 1030, 51, -1000, 1267, 1439, 540, 540, + -1000, 761, -1000, 936, -1000, -1000, 365, -1000, 1497, 27890, + 1291, 1287, 1285, -1000, 1540, 1131, -1000, 27890, -1000, -1000, + 27890, -1000, -1000, 1375, 137, 27890, -1000, -1000, -1000, 214, + 27890, -1000, 908, 117, -1000, -1000, -1000, -1000, -1000, -1000, + 27890, 139, -1000, 1247, 979, -1000, 1273, -1000, -1000, -1000, + -1000, 105, 187, -1000, 27890, 397, 1313, 27890, -1000, -1000, + -1000, 623, 623, -1000, 1437, -1000, 936, -1000, 14087, 2481, + 2481, -1000, -1000, 991, -1000, 1527, -1000, 991, 1226, 1226, + -1000, 1226, 1241, -1000, 1226, 76, 1226, 73, 991, 991, + 2310, 2279, 2175, 1886, 1210, -119, -1000, 556, 12710, 1743, + 1268, 1210, 1210, 1210, 1022, 892, 20, -1000, -1000, -1000, + 1554, 1538, 556, -1000, -1000, -1000, 1489, 1117, 1114, -1000, + -1000, 10402, 1025, 1368, 429, 1022, 1549, 27890, 12710, -1000, + -1000, 12710, 1225, -1000, 12710, -1000, -1000, -1000, 1549, 1549, + 1134, -1000, -1000, 490, -1000, -1000, -1000, -1000, -1000, 2481, + 14087, -69, -1000, -1000, -1000, -1000, -1000, -1000, 20, 889, + 20, 757, -1000, 732, -1000, -1000, -218, -1000, -1000, 1149, + 1299, -1000, -1000, 27890, -1000, -1000, 27890, 27890, 27890, 27890, + 27890, -1000, -1000, 190, -1000, 1019, 1011, -1000, -177, -1000, + -1000, 1222, -1000, -1000, -1000, 1016, -1000, -136, 936, 27890, + 27890, 27890, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 2481, -1000, 1450, -1000, -1000, 205, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 14087, 14087, 14087, 14087, 14087, 1527, + 887, 556, 14087, 14087, 19162, 27890, 27890, 17313, 20, 38, + -1000, 12710, 12710, 1462, -1000, 1210, -1000, 1144, 27890, 1210, + 27890, -1000, 1527, -1000, 556, 556, 27890, 556, 1527, -1000, + 2481, -1000, 480, -1000, 480, 1014, 1008, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1222, -1000, -1000, -1000, 1131, + -1000, 192, 264, -1000, 214, -1000, -183, -184, 1502, 27890, + -1000, -1000, 7606, -1000, -1000, 1221, 1275, -1000, -1000, -1000, + -1000, 1180, 1180, 1180, 1180, 407, 991, -1000, 1180, 1180, + 1001, -1000, 1001, 1001, 420, -277, -1000, 1396, 1382, 556, + 1122, 1578, -1000, 1210, 1590, 419, 1114, -1000, -1000, 998, + -1000, -1000, -1000, -1000, -1000, 1501, 1210, 27890, -1000, -1000, + -1000, 1219, 996, 1121, -1000, 539, 27890, 27890, -1000, -1000, + -1000, -1000, 991, 146, -146, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 38, 268, -1000, 1406, 1382, -1000, 1534, 1400, + 1532, -1000, 27890, 1114, 27890, -1000, 1219, 13169, 1205, 204, + -1000, 7606, 5241, 990, -1000, -1000, 1330, -133, -151, 1386, + 1388, 1388, 1406, -1000, 1531, 1530, -1000, 886, 1529, 877, + 1111, -1000, 204, 1180, 991, 27890, -1000, -56, -1000, -1000, + -1000, -1000, -1000, 1273, -1000, 1321, -1000, 1383, 751, -1000, + -1000, -1000, -1000, 873, 872, -1000, 755, -1000, -1000, -1000, + -1000, 983, 282, -1000, -1000, -136, -137, -1000, 700, -1000, + -1000, -1000, -1000, -1000, 1284, 150, -1000, -147, -1000, -1000, + 1283, -1000, 1571, -1000, -167, -1000, 1573, 467, 467, -1000, + -1000, -1000, -1000, 270, 766, -1000, -1000, -1000, -1000, } var yyPgo = [...]int{ - 0, 1944, 1943, 11, 89, 90, 1942, 1938, 1937, 1935, - 128, 127, 125, 1934, 1932, 1931, 1915, 1912, 1906, 1905, - 1903, 1902, 1900, 1897, 1895, 66, 155, 42, 40, 140, - 1894, 1892, 24, 1891, 1889, 1888, 123, 121, 645, 1886, - 120, 1885, 1884, 1883, 1882, 1881, 1880, 1879, 1877, 1876, - 1875, 1874, 1873, 1872, 1871, 216, 1870, 1869, 4, 1863, - 34, 1862, 1861, 1859, 1857, 1856, 94, 1854, 1853, 1851, - 114, 1850, 1849, 56, 91, 50, 84, 1847, 1846, 79, - 122, 1843, 64, 104, 1841, 575, 1839, 43, 81, 93, - 1833, 45, 1832, 1831, 51, 1830, 1829, 1827, 75, 1826, - 1825, 2971, 1824, 76, 83, 14, 26, 1822, 1821, 1820, - 1819, 37, 44, 1818, 1816, 29, 1814, 1811, 134, 1809, - 86, 22, 1808, 18, 16, 21, 1806, 100, 1805, 30, - 61, 35, 1803, 87, 1802, 1800, 1797, 1796, 25, 1795, - 77, 110, 67, 1794, 1793, 8, 9, 1791, 1790, 1789, - 1785, 1784, 1783, 10, 1782, 5, 1781, 27, 1780, 17, - 19, 74, 118, 31, 13, 1777, 119, 1775, 28, 115, - 71, 113, 1773, 1772, 1771, 936, 143, 1767, 1765, 58, - 1764, 98, 101, 1763, 174, 1762, 1761, 65, 1298, 1844, - 46, 117, 1760, 1759, 2897, 48, 82, 23, 1757, 69, - 1756, 1755, 1752, 141, 139, 63, 888, 47, 1751, 1750, - 1748, 1747, 1746, 1745, 1744, 32, 80, 20, 109, 33, - 1743, 1741, 1738, 72, 53, 1735, 112, 111, 73, 108, - 1733, 133, 105, 57, 1731, 39, 1728, 1725, 1724, 1723, - 41, 1722, 1721, 1714, 1713, 106, 103, 68, 36, 1711, - 38, 78, 107, 102, 1707, 15, 124, 7, 1706, 3, - 0, 1704, 6, 130, 167, 99, 1698, 1697, 1, 1696, - 2, 1695, 1694, 85, 1693, 1691, 1690, 1688, 3520, 1674, - 116, 1686, 126, + 0, 1819, 1817, 11, 86, 89, 1816, 1815, 1814, 1813, + 131, 129, 128, 1812, 1808, 1806, 1805, 1801, 1800, 1799, + 1798, 1797, 1796, 1795, 1794, 61, 138, 37, 40, 139, + 1792, 1789, 29, 1788, 1786, 1785, 127, 126, 563, 1784, + 123, 1783, 1782, 1781, 1779, 1778, 1771, 1770, 1769, 1768, + 1767, 1766, 1765, 1764, 1763, 203, 1762, 1760, 4, 1759, + 31, 1758, 1757, 1756, 1754, 1753, 90, 1752, 1749, 1747, + 116, 1740, 1739, 51, 102, 50, 80, 1737, 1736, 74, + 121, 1735, 64, 104, 1734, 1733, 323, 1732, 42, 91, + 98, 1731, 44, 1727, 1726, 53, 1725, 1724, 1721, 75, + 1720, 1719, 3101, 1717, 72, 82, 14, 57, 1715, 1711, + 1710, 1708, 33, 2669, 1706, 1703, 24, 1702, 1700, 133, + 1699, 87, 22, 1698, 20, 16, 23, 1697, 84, 1696, + 30, 56, 36, 1695, 85, 1693, 1692, 1691, 1690, 43, + 1689, 78, 105, 38, 1688, 1687, 9, 15, 1686, 1685, + 1684, 1683, 1681, 1680, 10, 1679, 5, 1678, 27, 1677, + 17, 19, 73, 120, 28, 13, 1676, 119, 1675, 26, + 115, 67, 113, 1674, 1672, 1670, 859, 143, 1669, 1668, + 58, 1667, 93, 101, 1666, 162, 1664, 1663, 63, 1301, + 1653, 8, 118, 1662, 1661, 2495, 59, 76, 25, 1660, + 69, 1659, 1658, 1657, 140, 125, 45, 879, 46, 1656, + 1654, 1652, 1649, 1648, 1646, 1645, 47, 34, 21, 112, + 32, 1644, 1643, 1642, 71, 41, 1641, 111, 106, 81, + 110, 1640, 117, 103, 65, 1639, 39, 1638, 1637, 1635, + 1628, 79, 1627, 1626, 1625, 1623, 108, 94, 68, 48, + 1621, 35, 66, 109, 107, 1620, 18, 122, 7, 1619, + 3, 0, 1612, 6, 130, 164, 99, 1611, 1610, 1, + 1609, 2, 1607, 1605, 83, 1604, 1603, 1601, 1600, 3049, + 932, 114, 1599, 124, } -//line sql.y:5216 +//line sql.y:5227 type yySymType struct { union interface{} empty struct{} @@ -4626,122 +4647,103 @@ func (st *yySymType) whensUnion() []*When { } var yyR1 = [...]int{ - 0, 276, 277, 277, 1, 1, 1, 1, 1, 1, + 0, 277, 278, 278, 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, 260, 260, 260, 263, 263, + 1, 1, 1, 1, 1, 261, 261, 261, 264, 264, 21, 50, 3, 3, 3, 3, 2, 2, 8, 9, 4, 5, 5, 10, 10, 62, 62, 11, 12, 12, - 12, 12, 280, 280, 96, 96, 94, 94, 95, 95, - 161, 161, 13, 14, 14, 171, 171, 170, 170, 170, - 172, 172, 172, 172, 206, 206, 15, 15, 15, 15, - 15, 71, 71, 262, 262, 261, 259, 259, 258, 258, - 257, 23, 24, 33, 33, 33, 33, 34, 35, 264, - 264, 236, 39, 39, 38, 38, 38, 38, 40, 40, - 37, 37, 36, 36, 238, 238, 225, 225, 237, 237, - 237, 237, 237, 237, 237, 224, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 208, 208, - 208, 208, 211, 211, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 210, 210, 210, 210, 210, 212, 212, - 212, 212, 212, 213, 213, 213, 213, 213, 213, 213, - 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, - 214, 214, 214, 214, 214, 214, 223, 223, 215, 215, - 218, 218, 219, 219, 219, 220, 220, 221, 221, 216, - 216, 216, 216, 217, 217, 217, 226, 250, 250, 249, - 249, 247, 247, 247, 247, 235, 235, 244, 244, 244, - 244, 244, 234, 234, 230, 230, 230, 231, 231, 232, - 232, 229, 229, 233, 233, 246, 246, 245, 227, 227, - 228, 228, 252, 252, 252, 252, 253, 269, 270, 268, - 268, 268, 268, 268, 60, 60, 60, 183, 183, 183, - 242, 242, 241, 241, 241, 243, 243, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 178, 178, 178, 267, - 267, 267, 267, 267, 267, 266, 266, 266, 239, 239, - 239, 265, 265, 130, 130, 131, 131, 30, 30, 30, - 30, 30, 30, 29, 29, 29, 25, 25, 25, 25, + 12, 12, 281, 281, 97, 97, 95, 95, 96, 96, + 162, 162, 13, 14, 14, 172, 172, 171, 171, 171, + 173, 173, 173, 173, 207, 207, 15, 15, 15, 15, + 15, 71, 71, 263, 263, 262, 260, 260, 259, 259, + 258, 23, 24, 33, 33, 33, 33, 34, 35, 265, + 265, 237, 39, 39, 38, 38, 38, 38, 40, 40, + 37, 37, 36, 36, 239, 239, 226, 226, 238, 238, + 238, 238, 238, 238, 238, 225, 85, 85, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 209, 209, 209, 209, 212, 212, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, + 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 215, 215, 215, 215, 215, 215, 215, 215, 224, 224, + 216, 216, 219, 219, 220, 220, 220, 221, 221, 222, + 222, 217, 217, 217, 217, 218, 218, 218, 227, 251, + 251, 250, 250, 248, 248, 248, 248, 236, 236, 245, + 245, 245, 245, 245, 235, 235, 231, 231, 231, 232, + 232, 233, 233, 230, 230, 234, 234, 247, 247, 246, + 228, 228, 229, 229, 253, 253, 253, 253, 254, 270, + 271, 269, 269, 269, 269, 269, 60, 60, 60, 184, + 184, 184, 243, 243, 242, 242, 242, 244, 244, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, + 241, 241, 241, 241, 241, 241, 241, 241, 179, 179, + 179, 268, 268, 268, 268, 268, 268, 267, 267, 267, + 240, 240, 240, 266, 266, 131, 131, 132, 132, 30, + 30, 30, 30, 30, 30, 29, 29, 29, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 31, 31, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 16, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 31, 31, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 222, 222, 222, 254, 254, 255, 255, 17, 22, 22, - 18, 18, 18, 18, 19, 19, 41, 42, 42, 42, + 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 223, 223, 223, 255, 255, 256, 256, 17, + 22, 22, 18, 18, 18, 18, 19, 19, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 271, 271, 177, 177, 185, 185, 176, - 176, 199, 199, 199, 179, 179, 179, 180, 180, 275, - 275, 275, 43, 43, 45, 45, 46, 47, 47, 201, - 201, 202, 202, 48, 49, 61, 61, 61, 61, 61, - 61, 63, 63, 63, 7, 7, 7, 7, 57, 57, - 57, 6, 6, 44, 44, 51, 272, 272, 273, 274, - 274, 274, 274, 52, 54, 20, 20, 20, 20, 20, - 20, 78, 78, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 72, 72, 72, 67, 67, - 281, 55, 56, 56, 70, 70, 70, 64, 64, 64, - 69, 69, 69, 75, 75, 77, 77, 77, 77, 77, - 79, 79, 79, 79, 79, 79, 79, 74, 74, 76, - 76, 76, 76, 192, 192, 192, 191, 191, 86, 86, - 87, 87, 88, 88, 89, 89, 89, 128, 104, 104, - 160, 160, 159, 159, 162, 162, 90, 90, 90, 90, - 91, 91, 92, 92, 93, 93, 200, 200, 197, 197, - 197, 196, 196, 97, 97, 97, 99, 98, 98, 98, - 98, 100, 100, 102, 102, 101, 101, 103, 105, 105, - 105, 105, 105, 106, 106, 85, 85, 85, 85, 85, - 85, 85, 85, 174, 174, 108, 108, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 119, 119, 119, - 119, 119, 119, 109, 109, 109, 109, 109, 109, 109, - 73, 73, 120, 120, 120, 127, 121, 121, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 116, 116, 116, 116, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 42, 42, 42, 42, 42, 272, 272, 178, 178, 186, + 186, 177, 177, 200, 200, 200, 180, 180, 180, 181, + 181, 276, 276, 276, 43, 43, 45, 45, 46, 47, + 47, 202, 202, 203, 203, 48, 49, 61, 61, 61, + 61, 61, 61, 63, 63, 63, 7, 7, 7, 7, + 57, 57, 57, 6, 6, 44, 44, 51, 273, 273, + 274, 275, 275, 275, 275, 52, 54, 20, 20, 20, + 20, 20, 20, 78, 78, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 72, 72, 72, + 67, 67, 282, 55, 56, 56, 70, 70, 70, 64, + 64, 64, 69, 69, 69, 75, 75, 77, 77, 77, + 77, 77, 79, 79, 79, 79, 79, 79, 79, 74, + 74, 76, 76, 76, 76, 193, 193, 193, 192, 192, + 87, 87, 88, 88, 89, 89, 90, 90, 90, 129, + 105, 105, 161, 161, 160, 160, 163, 163, 91, 91, + 91, 91, 92, 92, 93, 93, 94, 94, 201, 201, + 198, 198, 198, 197, 197, 98, 98, 98, 100, 99, + 99, 99, 99, 101, 101, 103, 103, 102, 102, 104, + 106, 106, 106, 106, 106, 107, 107, 86, 86, 86, + 86, 86, 86, 86, 86, 175, 175, 109, 109, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 120, + 120, 120, 120, 120, 120, 110, 110, 110, 110, 110, + 110, 110, 73, 73, 121, 121, 121, 128, 122, 122, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 117, 117, 117, 117, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 282, 282, 118, 117, - 117, 117, 117, 117, 117, 117, 68, 68, 68, 68, - 68, 205, 205, 205, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 207, 134, 134, 65, - 65, 132, 132, 133, 135, 135, 129, 129, 129, 111, - 111, 111, 111, 111, 111, 111, 111, 113, 113, 113, - 136, 136, 137, 137, 138, 138, 139, 139, 140, 141, - 141, 141, 142, 142, 142, 142, 32, 32, 32, 32, - 32, 27, 27, 27, 27, 28, 28, 28, 80, 80, - 80, 80, 82, 82, 81, 81, 58, 58, 59, 59, - 59, 83, 83, 84, 84, 84, 84, 157, 157, 157, - 143, 143, 143, 143, 149, 149, 149, 145, 145, 147, - 147, 147, 148, 148, 148, 146, 154, 154, 156, 156, - 155, 155, 151, 151, 152, 152, 153, 153, 153, 150, - 150, 110, 110, 110, 110, 110, 158, 158, 158, 158, - 163, 163, 123, 123, 125, 125, 124, 126, 164, 164, - 168, 165, 165, 169, 169, 169, 169, 169, 166, 166, - 167, 167, 193, 193, 193, 173, 173, 184, 184, 181, - 181, 182, 182, 175, 175, 186, 186, 186, 53, 122, - 122, 251, 251, 248, 189, 189, 190, 190, 194, 194, - 198, 198, 195, 195, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 115, 115, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 283, 283, + 119, 118, 118, 118, 118, 118, 118, 118, 68, 68, + 68, 68, 68, 206, 206, 206, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 135, + 135, 65, 65, 133, 133, 134, 136, 136, 130, 130, + 130, 112, 112, 112, 112, 112, 112, 112, 112, 114, + 114, 114, 137, 137, 138, 138, 139, 139, 140, 140, + 141, 142, 142, 142, 143, 143, 143, 143, 32, 32, + 32, 32, 32, 27, 27, 27, 27, 28, 28, 28, + 80, 80, 80, 80, 82, 82, 81, 81, 58, 58, + 59, 59, 59, 83, 83, 84, 84, 84, 84, 158, + 158, 158, 144, 144, 144, 144, 150, 150, 150, 146, + 146, 148, 148, 148, 149, 149, 149, 147, 155, 155, + 157, 157, 156, 156, 152, 152, 153, 153, 154, 154, + 154, 151, 151, 111, 111, 111, 111, 111, 159, 159, + 159, 159, 164, 164, 124, 124, 126, 126, 125, 127, + 165, 165, 169, 166, 166, 170, 170, 170, 170, 170, + 167, 167, 168, 168, 194, 194, 194, 174, 174, 185, + 185, 182, 182, 183, 183, 176, 176, 187, 187, 187, + 53, 123, 123, 252, 252, 249, 190, 190, 191, 191, + 195, 195, 199, 199, 196, 196, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, @@ -4755,15 +4757,34 @@ var yyR1 = [...]int{ 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 278, - 279, 203, 204, 204, 204, + 188, 188, 188, 188, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 279, 280, 204, 205, 205, 205, } var yyR2 = [...]int{ @@ -4780,90 +4801,90 @@ var yyR2 = [...]int{ 3, 6, 4, 7, 8, 8, 8, 6, 3, 1, 1, 4, 0, 1, 1, 1, 2, 2, 0, 1, 4, 4, 4, 4, 2, 4, 1, 3, 1, 1, - 3, 4, 3, 3, 3, 3, 0, 2, 3, 3, - 3, 4, 2, 3, 3, 2, 3, 2, 3, 1, - 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, - 2, 2, 2, 4, 4, 2, 2, 3, 3, 3, - 3, 1, 1, 1, 1, 1, 6, 6, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 0, 3, - 0, 5, 0, 3, 5, 0, 1, 0, 1, 0, - 2, 2, 2, 0, 2, 2, 5, 0, 1, 1, - 2, 1, 3, 2, 3, 0, 1, 3, 3, 3, - 4, 2, 0, 2, 1, 1, 1, 1, 1, 0, - 1, 1, 1, 0, 1, 1, 3, 3, 3, 1, - 3, 1, 11, 12, 12, 13, 5, 3, 3, 1, - 1, 2, 2, 2, 0, 1, 1, 0, 1, 2, - 0, 1, 1, 3, 2, 1, 2, 3, 3, 4, - 4, 3, 3, 3, 3, 4, 4, 3, 3, 3, + 3, 4, 3, 3, 3, 3, 0, 2, 0, 2, + 3, 3, 4, 4, 2, 3, 3, 2, 3, 2, + 3, 1, 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, + 1, 2, 2, 2, 2, 4, 4, 2, 2, 3, + 3, 3, 3, 1, 1, 1, 1, 1, 6, 6, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 0, 3, 0, 5, 0, 3, 5, 0, 1, 0, + 1, 0, 2, 2, 2, 0, 2, 2, 5, 0, + 1, 1, 2, 1, 3, 2, 3, 0, 1, 3, + 3, 3, 4, 2, 0, 2, 1, 1, 1, 1, + 1, 0, 1, 1, 1, 0, 1, 1, 3, 3, + 3, 1, 3, 1, 11, 12, 12, 13, 5, 3, + 3, 1, 1, 2, 2, 2, 0, 1, 1, 0, + 1, 2, 0, 1, 1, 3, 2, 1, 2, 3, + 3, 4, 4, 3, 3, 3, 3, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 4, 5, 0, 2, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 1, 0, 2, 0, 2, 0, 1, 5, - 1, 3, 7, 1, 3, 3, 1, 2, 2, 2, - 5, 5, 5, 6, 6, 5, 5, 2, 2, 2, - 2, 3, 3, 3, 4, 1, 3, 5, 1, 3, - 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, - 4, 4, 2, 11, 3, 6, 8, 6, 6, 6, - 13, 8, 6, 10, 5, 5, 5, 5, 5, 3, - 7, 4, 4, 4, 4, 3, 3, 3, 7, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 0, 2, 2, 1, 3, 8, 8, 3, 3, 5, - 7, 7, 6, 5, 3, 2, 3, 3, 3, 7, - 3, 3, 3, 3, 4, 7, 5, 2, 4, 4, - 4, 4, 4, 5, 5, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 2, 4, 2, 4, - 5, 4, 4, 4, 4, 3, 3, 5, 2, 3, - 3, 3, 3, 1, 1, 0, 1, 0, 1, 1, - 1, 0, 2, 2, 0, 2, 2, 0, 2, 0, - 1, 1, 2, 1, 1, 2, 1, 1, 5, 0, - 1, 0, 1, 2, 3, 0, 3, 3, 3, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, - 1, 3, 3, 2, 2, 3, 1, 3, 2, 1, - 2, 1, 2, 2, 4, 3, 3, 6, 4, 7, - 6, 1, 3, 2, 2, 2, 2, 1, 1, 1, - 3, 2, 1, 1, 1, 0, 1, 1, 0, 3, - 0, 2, 0, 2, 1, 2, 2, 0, 1, 1, - 0, 1, 1, 0, 1, 0, 1, 2, 3, 4, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, - 2, 3, 5, 0, 1, 2, 1, 1, 0, 2, - 1, 3, 1, 1, 1, 3, 3, 3, 3, 7, - 0, 3, 1, 3, 1, 3, 4, 4, 4, 3, - 2, 4, 0, 1, 0, 2, 0, 1, 0, 1, - 2, 1, 1, 1, 2, 2, 1, 2, 3, 2, - 3, 2, 2, 2, 1, 1, 3, 3, 0, 5, - 4, 5, 5, 0, 2, 1, 3, 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, 3, 3, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 3, 1, 1, - 1, 1, 4, 5, 5, 6, 4, 4, 6, 6, - 6, 8, 8, 8, 8, 9, 8, 5, 4, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 8, 8, 0, 2, 3, 4, - 4, 4, 4, 4, 4, 4, 0, 3, 4, 7, - 3, 1, 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, 1, 2, 2, - 0, 3, 0, 2, 0, 3, 1, 3, 2, 0, - 1, 1, 0, 2, 4, 4, 0, 2, 2, 1, - 1, 3, 3, 3, 3, 3, 3, 3, 0, 3, - 3, 3, 0, 3, 1, 1, 0, 4, 0, 1, - 1, 0, 3, 1, 3, 2, 1, 0, 2, 4, - 0, 9, 3, 5, 0, 3, 3, 0, 1, 0, - 2, 2, 0, 2, 2, 2, 0, 2, 1, 2, - 3, 3, 0, 2, 1, 2, 3, 4, 3, 0, - 1, 2, 1, 5, 4, 4, 1, 3, 3, 5, - 0, 5, 1, 3, 1, 2, 3, 1, 1, 3, - 3, 1, 3, 3, 3, 3, 3, 2, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, - 2, 0, 3, 0, 1, 0, 1, 1, 5, 0, - 1, 0, 1, 2, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 4, 5, 0, 2, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 1, 0, 2, 0, 2, 0, + 1, 5, 1, 3, 7, 1, 3, 3, 1, 2, + 2, 2, 5, 5, 5, 6, 6, 5, 5, 2, + 2, 2, 2, 3, 3, 3, 4, 1, 3, 5, + 1, 3, 3, 3, 3, 3, 3, 3, 3, 2, + 2, 2, 4, 4, 2, 11, 3, 6, 8, 6, + 6, 6, 13, 8, 6, 10, 5, 5, 5, 5, + 5, 3, 7, 4, 4, 4, 4, 3, 3, 3, + 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 2, 0, 2, 2, 1, 3, 8, 8, 3, + 3, 5, 7, 7, 6, 5, 3, 2, 3, 3, + 3, 7, 3, 3, 3, 3, 4, 7, 5, 2, + 4, 4, 4, 4, 4, 5, 5, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, + 2, 4, 5, 4, 4, 4, 4, 3, 3, 5, + 2, 3, 3, 3, 3, 1, 1, 0, 1, 0, + 1, 1, 1, 0, 2, 2, 0, 2, 2, 0, + 2, 0, 1, 1, 2, 1, 1, 2, 1, 1, + 5, 0, 1, 0, 1, 2, 3, 0, 3, 3, + 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 3, 3, 2, 2, 3, 1, 3, + 2, 1, 2, 1, 2, 2, 4, 3, 3, 6, + 4, 7, 6, 1, 3, 2, 2, 2, 2, 1, + 1, 1, 3, 2, 1, 1, 1, 0, 1, 1, + 0, 3, 0, 2, 0, 2, 1, 2, 2, 0, + 1, 1, 0, 1, 1, 0, 1, 0, 1, 2, + 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 1, 2, 3, 5, 0, 1, 2, 1, 1, + 0, 2, 1, 3, 1, 1, 1, 3, 3, 3, + 3, 7, 0, 3, 1, 3, 1, 3, 4, 4, + 4, 3, 2, 4, 0, 1, 0, 2, 0, 1, + 0, 1, 2, 1, 1, 1, 2, 2, 1, 2, + 3, 2, 3, 2, 2, 2, 1, 1, 3, 3, + 0, 5, 4, 5, 5, 0, 2, 1, 3, 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, 3, 3, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, + 1, 1, 1, 1, 4, 5, 5, 6, 4, 4, + 6, 6, 6, 8, 8, 8, 8, 9, 8, 5, + 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 8, 8, 0, 2, + 3, 4, 4, 4, 4, 4, 4, 4, 0, 3, + 4, 7, 3, 1, 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, 1, + 2, 2, 0, 3, 0, 2, 0, 3, 1, 3, + 2, 0, 1, 1, 0, 2, 4, 4, 0, 2, + 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, + 0, 3, 3, 3, 0, 3, 1, 1, 0, 4, + 0, 1, 1, 0, 3, 1, 3, 2, 1, 0, + 2, 4, 0, 9, 3, 5, 0, 3, 3, 0, + 1, 0, 2, 2, 0, 2, 2, 2, 0, 2, + 1, 2, 3, 3, 0, 2, 1, 2, 3, 4, + 3, 0, 1, 2, 1, 5, 4, 4, 1, 3, + 3, 5, 0, 5, 1, 3, 1, 2, 3, 1, + 1, 3, 3, 1, 3, 3, 3, 3, 3, 2, + 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 0, 2, 0, 3, 0, 1, 0, 1, 1, + 5, 0, 1, 0, 1, 2, 1, 1, 1, 1, + 1, 1, 0, 1, 1, 1, 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, @@ -4904,483 +4925,483 @@ 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, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 0, 0, 1, 1, } var yyChk = [...]int{ - -1000, -276, -1, -3, -8, -9, -10, -11, -12, -13, + -1000, -277, -1, -3, -8, -9, -10, -11, -12, -13, -14, -15, -16, -17, -18, -19, -41, -42, -43, -45, -46, -47, -48, -49, -6, -44, -20, -21, -50, -51, - -52, -53, -54, -4, -278, 6, 7, 8, -62, 10, - 11, 31, -23, -33, 153, -34, -24, 154, -35, 156, - 155, 192, 157, 185, 71, 231, 232, 234, 235, 236, - 237, -63, 190, 191, 159, 35, 42, 32, 33, 36, - 162, 81, 9, 336, 187, 186, 26, -277, 476, -70, - 5, -138, 16, -3, -55, -281, -55, -55, -55, -55, - -55, -55, -236, -238, 81, 126, 81, -55, -39, -38, - -37, -36, -40, 30, -30, -31, -256, -29, -26, 158, - 155, 200, 102, 103, 192, 193, 194, 157, 176, 191, - 195, 190, 209, -25, 77, 32, 349, 352, -243, 154, - 160, 161, 337, 105, 104, 72, 156, -240, 281, 453, - -40, 455, 95, 97, 454, 41, 165, 456, 457, 458, - 459, 175, 460, 461, 462, 463, 469, 470, 471, 472, - 106, 5, -55, -198, -194, -260, -188, 84, 85, 86, - 346, 178, 380, 381, 225, 77, 281, 453, 231, 245, - 239, 266, 258, 347, 382, 228, 179, 213, 450, 256, - 314, 455, 383, 193, 286, 287, 288, 95, 234, 323, - 468, 230, 384, 466, 97, 454, 76, 48, 41, 188, - 254, 250, 456, 214, 385, 357, 207, 105, 102, 475, - 248, 47, 28, 465, 104, 46, 457, 386, 458, 290, - 271, 444, 45, 291, 194, 387, 80, 351, 452, 292, - 249, 293, 224, 464, 159, 388, 436, 295, 445, 389, - 272, 276, 390, 315, 296, 49, 391, 392, 446, 103, - 393, 75, 459, 243, 244, 394, 222, 177, 317, 270, - 175, 34, 297, 348, 226, 55, 201, 318, 43, 274, - 42, 440, 395, 443, 269, 265, 50, 396, 397, 398, - 399, 460, 268, 242, 264, 474, 219, 461, 59, 161, - 278, 277, 279, 208, 313, 261, 400, 401, 402, 182, - 78, 403, 251, 19, 404, 405, 298, 215, 406, 53, - 407, 408, 321, 191, 409, 51, 462, 38, 196, 463, - 410, 411, 412, 413, 414, 300, 415, 299, 273, 275, - 203, 301, 350, 416, 247, 195, 467, 417, 183, 451, - 197, 200, 190, 322, 184, 418, 419, 420, 421, 422, - 229, 423, 424, 235, 469, 40, 425, 426, 427, 428, - 223, 218, 316, 325, 58, 79, 283, 429, 449, 241, - 216, 430, 232, 52, 470, 471, 472, 210, 473, 303, - 106, 220, 221, 44, 262, 202, 431, 432, 252, 253, - 267, 240, 263, 233, 437, 204, 304, 192, 433, 324, - 217, 284, 354, 209, 305, 448, 353, 260, 257, 211, - 434, 306, 166, 205, 206, 435, 438, 307, 308, 310, - 311, 227, 309, 312, 212, 352, 255, 285, 164, -55, - 164, -101, -194, 164, -166, 287, -185, 289, 302, 297, - 307, 295, -177, 298, 300, 203, -275, 315, 164, 304, - 153, 144, 290, 299, 308, 309, 312, 212, -271, -260, - 458, 473, 314, 259, 294, 292, 316, 440, 311, 310, - -194, 233, -201, 238, -189, -260, -188, 236, -101, -61, - 436, 157, -203, -203, -72, 440, 442, -121, -85, -107, - 110, -112, 30, 24, -111, -108, -129, -126, -127, 144, - 145, 147, 146, 148, 133, 134, 141, 111, 149, -116, - -114, -115, -117, 88, 87, 96, 89, 90, 91, 92, - 98, 99, 100, -189, -194, -124, -278, 65, 66, 337, - 338, 339, 340, 345, 341, 113, 54, 332, 326, 335, - 334, 333, 330, 331, 328, 329, 343, 344, 169, 327, - 163, 139, 336, -260, -188, 41, 303, 303, -101, -55, - -5, -4, -278, 6, 21, 22, -142, 18, 17, -279, - 83, -64, -77, 60, 61, -79, 22, 37, 64, 62, - 21, -56, -76, 135, -85, -194, -76, -175, 168, -175, - -175, -165, -206, 233, -169, 316, 315, -190, -167, -189, - -187, -166, 313, 158, 355, 109, 23, 25, 112, 144, - 17, 113, 36, 160, 259, 176, 143, 172, 337, 153, - 69, 356, 328, 329, 326, 332, 339, 340, 327, 289, - 30, 11, 358, 26, 186, 22, 37, 137, 155, 116, - 117, 189, 24, 187, 100, 361, 20, 72, 181, 12, - 174, 14, 362, 363, 15, 169, 168, 128, 165, 67, - 9, 149, 27, 125, 63, 364, 29, 365, 366, 367, - 368, 65, 126, 18, 330, 331, 32, 441, 369, 345, - 198, 139, 70, 56, 442, 110, 370, 371, 98, 372, - 101, 73, 447, 107, 16, 68, 39, 373, 199, 374, - 171, 375, 319, 376, 127, 156, 336, 66, 377, 163, - 302, 6, 342, 31, 185, 173, 64, 378, 164, 115, - 343, 344, 167, 99, 5, 170, 33, 10, 71, 74, - 333, 334, 335, 54, 349, 114, 13, 379, 320, 108, - 314, -237, 126, -224, -228, -189, 180, -253, 176, -101, - -246, -245, -189, -71, -184, 165, 174, 173, 170, -264, - 107, 220, 327, 163, -36, -37, -166, 143, 197, 82, - 82, -228, -227, -226, -265, 199, 180, -252, -244, 172, - 181, -234, 173, 174, -229, 165, 29, -265, -229, 171, - 181, 199, 199, 106, 199, 106, 199, 199, 199, 199, - 199, 199, 199, 199, 199, 196, -235, 118, -235, 353, - 353, -240, -265, -265, -265, 167, 34, 34, -186, -229, - 167, 23, -235, -235, -166, 143, -235, -235, -235, -235, - 207, 207, -235, -235, -235, -235, -235, -235, -235, -235, - -235, -235, -235, -235, -235, -235, -235, 164, -264, -80, - 312, 227, 77, -38, 209, -22, -101, -184, 165, 166, - -264, -101, 150, -101, -179, 126, 13, -179, -176, 303, - 301, 288, 293, -179, -179, -179, -179, 210, 286, -230, - 165, 34, 177, 303, 210, 286, 210, 211, 210, 211, - 296, 306, 210, -199, 12, 128, 327, 291, 295, 203, - 164, 204, 166, 305, -260, 443, 211, -199, 303, 206, - -179, -204, -278, -190, 259, -204, -204, 31, 167, -189, - -57, -189, 88, -7, -3, -11, -10, -12, 118, -78, - 303, -66, 144, 458, 444, 445, 446, 443, 300, 451, - 449, 447, 210, 448, 82, 109, 107, 108, 125, -85, - -109, 128, 110, 126, 127, 112, 130, 129, 140, 133, - 134, 135, 136, 137, 138, 139, 131, 132, 143, 118, - 119, 120, 121, 122, 123, 124, -174, -278, -127, -278, - 151, 152, -112, -112, -112, -112, -112, -112, -112, -112, - -112, -112, -278, 150, -2, -121, -4, -278, -278, -278, - -278, -278, -278, -278, -278, -134, -85, -278, -282, -278, - -282, -118, -278, -282, -118, -282, -118, -282, -282, -118, - -282, -118, -282, -282, -118, -278, -278, -278, -278, -278, - -278, -278, -203, -272, -273, -104, -101, -278, 227, -138, - -3, -55, -157, 20, 32, -85, -139, -140, -85, -138, - 56, -74, -76, -79, 60, 61, 94, 12, -192, -191, - 23, -189, 88, 150, 12, -102, 27, -101, -87, -88, - -89, -90, -104, -128, -278, 12, -94, -95, -101, -103, - -194, 82, 233, -169, -206, -171, -170, 317, 319, 118, - -193, -189, 88, 30, 83, 82, -101, -208, -211, -213, - -212, -214, -209, -210, 256, 257, 144, 260, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 31, 188, - 252, 253, 254, 255, 272, 273, 274, 275, 276, 277, - 278, 279, 239, 258, 347, 240, 241, 242, 243, 244, - 245, 247, 248, 249, 250, 251, -263, -260, 81, 83, - 82, -215, 81, -80, 164, -260, 165, 165, 165, -55, - 336, -235, -235, 196, -29, -26, -256, 16, -25, -26, - 158, 102, 103, 155, 81, -224, 81, -233, -263, -260, - 81, 29, 171, 170, -232, -229, -232, -233, -260, -129, - -189, -194, -260, 29, 29, -162, -189, -162, -162, 21, - -162, 21, -162, 21, 89, -189, -162, 21, -162, 21, - -162, 21, -162, 21, -162, 21, 30, 75, 76, 30, - 78, 79, 80, -129, -129, -224, -166, -101, -260, 89, - 89, -235, -235, 89, 88, 88, 88, -235, -235, 89, - 88, -260, 88, -266, 182, 224, 226, 89, 89, 89, - 89, 30, 88, -267, 30, 465, 464, 466, 467, 468, - 89, 30, 89, 30, 89, -189, 81, -101, -83, 214, - 153, 155, 158, 73, 88, 228, 118, 41, 82, 167, - 164, -260, -181, 169, -181, -195, -194, -187, 88, -85, - -231, 12, 128, -199, -199, -179, -101, -231, -199, -179, - -101, -179, -179, -179, -179, -199, -199, -199, -179, -194, - -194, -101, -101, -101, -101, -101, -101, -101, -204, -204, - -204, -180, 126, -179, 73, -202, 236, 270, 437, 438, - 439, 82, 349, -94, 443, 443, 443, 443, 443, 443, - -85, -85, -85, -85, -119, 98, 110, 99, 100, -112, - -120, -124, -127, 93, 128, 126, 127, 112, -112, -112, - -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, - -112, -112, -112, -205, -260, 88, 144, -260, -111, -111, - -189, -75, 22, 37, -74, -190, -195, -187, -70, -279, - -279, -138, -74, -74, -85, -85, -129, 88, -74, -129, - 88, -74, -74, -69, 22, 37, -132, -133, 114, -129, - -279, -112, -189, -189, -74, -75, -75, -74, -74, 82, - -274, 319, 320, 441, -197, 199, -196, 23, -194, 88, - -122, -121, 88, -142, -279, -143, 27, 10, 128, 82, - 19, 82, -141, 25, 26, -142, -113, -189, 89, 92, - -86, 82, 12, -79, -101, -191, 135, -195, -101, -161, - 199, -101, 31, 82, -97, -99, -98, -100, 63, 67, - 69, 64, 65, 66, 70, -200, 23, -87, -3, -278, - -101, -94, -280, 82, 12, 74, -280, 82, 150, -169, - -171, 82, 318, 320, 321, 73, 101, -85, -217, 143, - -242, -241, -240, -224, -226, -227, -228, 83, -144, -220, - 284, -215, -215, -215, -215, -215, -216, -166, -216, -216, - -216, 81, 81, -215, -215, -215, -215, -218, 81, -218, - -218, -219, 81, -219, -253, -85, -250, -249, -247, -248, - 175, 95, 349, 74, -245, -141, 89, -83, -182, 169, - -251, -248, -260, -260, -260, -182, -260, 88, -260, 88, - 82, 17, -225, -224, -130, 224, -255, 199, -252, -246, - -233, 29, -232, -233, -233, 150, -260, 82, 27, 106, - 106, 106, 106, 349, 155, 31, -224, -130, -205, 167, - -205, -205, 88, 88, -178, 473, -94, -82, 216, 118, - 205, 205, 164, 164, 218, -101, 229, 230, 228, 21, - 217, 219, 221, 207, -101, -101, -181, 73, -96, -101, - 24, -194, -101, -179, -179, -101, -179, -179, 88, -101, - -189, -66, 319, 349, 20, -67, 20, 98, 99, 100, - -120, -112, -112, -112, -73, 189, 109, -279, -279, -74, - -74, -278, 150, -5, -142, -279, -279, 82, 74, 23, - 12, 12, -279, 12, 12, -279, -279, -74, -135, -133, - 116, -85, -279, -279, 82, 82, -279, -279, -279, -279, - -279, -273, 440, 320, -105, 71, 168, 72, -278, -196, - -279, -157, 39, 47, 58, -85, -85, -140, -157, -173, - 20, 12, 54, 54, -106, 13, -76, -87, -79, 150, - -106, -110, 31, 54, -3, -278, -278, -164, -168, -129, - -88, -89, -89, -88, -89, 63, 63, 63, 68, 63, - 68, 63, -98, -194, -279, -279, -3, -161, 74, -87, - -101, -87, -103, -194, 135, -170, -172, 322, 319, 325, - -260, 88, 82, -240, -228, 98, 110, 30, 23, 73, - 281, 95, 171, 29, 170, -221, 285, -216, -216, -217, - -260, 88, 144, -217, -217, -217, -223, 88, -223, 89, - 89, 83, -32, -27, -28, 32, 77, -247, -235, 88, - 38, -189, 83, -82, -101, 110, 73, -251, -251, -251, - -194, 16, -159, -189, 82, 83, -131, 225, -129, 83, - -189, 83, 81, -233, -190, -189, -278, 164, 30, 30, - -130, -131, -217, -260, 475, 474, 83, 166, 223, -84, - 332, 88, 84, -101, -101, -101, -101, -101, 158, 155, - 208, 167, -94, -101, 82, -60, 184, 179, -199, -199, - 32, 319, 452, 450, -73, 109, -112, -112, -279, -279, - -75, -190, -138, -157, -207, 144, 256, 188, 254, 250, - 270, 261, 283, 252, 284, -205, -207, -112, -112, -112, - -112, 346, -138, 117, -85, 115, -112, -112, 165, 165, - 165, -162, 40, 88, 88, 59, -101, -136, 14, -85, - 135, -142, -163, 73, -164, -123, -125, -124, -278, -158, - -279, -189, -162, -106, 82, 118, -92, -91, 73, 74, - -93, 73, -91, 63, 63, -279, -106, -87, -106, -106, - 150, 319, 323, 324, -240, 98, -112, -112, 10, 88, - 29, 29, -217, -217, 83, 82, 83, 82, 83, 82, - -183, 386, 110, -28, -27, -235, -235, 89, -260, 166, - 24, -101, 73, 73, 73, 17, 82, -224, -129, 54, - -250, -159, -254, -255, -101, -111, -131, -101, -81, 214, - 222, 81, 85, -262, 74, 205, 281, 205, -101, -60, - -32, -101, -179, -179, 32, -260, -112, -279, -142, -279, - -215, -215, -215, -219, -215, 244, -215, 244, -279, -279, - 20, 20, 20, 20, -278, -65, 342, -85, 82, 82, - -278, -278, -278, -279, 88, -216, -137, 15, 17, 28, - -163, 82, -279, -279, 82, 54, 150, -279, -138, -168, - -85, -85, 81, -85, -138, -106, -115, -216, 88, -216, - 89, 89, 386, 30, 78, 79, 80, 30, 75, 76, - -101, -101, -101, -101, -159, -189, 201, 83, -279, 82, - -222, 349, 352, -160, 81, 83, -259, 349, -261, -260, - -189, -189, -189, -157, -216, -260, -112, -112, -112, -112, - -112, -142, 88, -112, -112, -159, -279, -159, -159, -197, - -216, -146, -151, -176, -85, -121, 29, -125, 54, -3, - -189, -123, -189, -142, -159, -142, -217, -217, 83, 83, - -160, 202, 183, -255, 353, 353, 23, -159, -258, -257, - -190, 81, 74, -279, -279, -279, -279, -68, 128, 349, - -279, -279, -279, -279, -279, -279, -105, -149, 436, -154, - 43, -152, -153, 44, -150, 45, 53, 10, -123, 150, - 83, 23, -278, -101, -3, 83, 82, 118, -159, -101, - -279, 347, 70, 350, -146, 48, 262, -156, -155, 52, - 44, -153, 17, 46, 17, -164, -189, -3, -112, 198, - 81, -58, 349, -257, -239, -190, 88, 89, 83, 59, - 348, 351, -147, 50, -145, 49, -145, -155, 17, 17, - 88, 17, 88, -58, -279, -279, -159, -59, 213, 440, - -262, 59, -148, 51, 73, 101, 88, 88, 88, 83, - 176, -259, 349, 73, 101, -269, -270, 73, 215, 350, - -270, 73, 11, 10, 351, -268, 184, 179, 182, 31, - -268, 178, 30, 98, + -52, -53, -54, -4, -279, 6, 7, 8, -62, 10, + 11, 31, -23, -33, 155, -34, -24, 156, -35, 158, + 157, 194, 159, 187, 73, 233, 234, 236, 237, 238, + 239, -63, 192, 193, 161, 35, 44, 32, 33, 36, + 164, 83, 9, 338, 189, 188, 26, -278, 478, -70, + 5, -139, 16, -3, -55, -282, -55, -55, -55, -55, + -55, -55, -237, -239, 83, 128, 83, -55, -39, -38, + -37, -36, -40, 30, -30, -31, -257, -29, -26, 160, + 157, 202, 104, 105, 194, 195, 196, 159, 178, 193, + 197, 192, 211, -25, 79, 32, 351, 354, -244, 156, + 162, 163, 339, 107, 106, 74, 158, -241, 283, 455, + -40, 457, 97, 99, 456, 43, 167, 458, 459, 460, + 461, 177, 462, 463, 464, 465, 471, 472, 473, 474, + 108, 5, -55, -199, -195, -261, -189, 86, 87, 88, + 348, 180, 382, 383, 227, 79, 40, 283, 455, 233, + 247, 241, 268, 260, 349, 384, 230, 181, 215, 452, + 258, 316, 457, 385, 195, 288, 289, 290, 97, 236, + 325, 470, 232, 386, 468, 99, 456, 78, 50, 43, + 190, 256, 252, 458, 216, 387, 359, 209, 107, 104, + 477, 250, 49, 28, 467, 106, 48, 459, 388, 460, + 292, 273, 446, 47, 293, 196, 389, 82, 353, 454, + 294, 251, 295, 226, 466, 161, 390, 438, 297, 447, + 391, 274, 278, 392, 317, 298, 51, 393, 394, 448, + 105, 395, 77, 461, 245, 246, 396, 224, 179, 319, + 272, 177, 34, 299, 350, 228, 57, 203, 320, 45, + 276, 44, 442, 397, 445, 271, 267, 52, 398, 399, + 400, 401, 462, 270, 244, 266, 476, 221, 463, 61, + 163, 280, 279, 281, 210, 315, 263, 402, 403, 404, + 184, 80, 405, 253, 19, 406, 407, 300, 217, 408, + 55, 409, 410, 323, 193, 411, 53, 464, 38, 198, + 465, 412, 413, 414, 415, 416, 302, 417, 301, 275, + 277, 205, 303, 352, 418, 249, 197, 469, 419, 185, + 453, 199, 202, 192, 324, 186, 420, 421, 422, 423, + 424, 231, 425, 426, 237, 471, 42, 427, 428, 429, + 430, 225, 220, 318, 327, 60, 81, 285, 431, 451, + 243, 218, 432, 234, 54, 472, 473, 474, 212, 475, + 305, 108, 222, 223, 46, 264, 204, 433, 434, 254, + 255, 269, 242, 265, 235, 439, 206, 306, 194, 435, + 326, 219, 286, 356, 211, 307, 450, 355, 262, 259, + 213, 436, 308, 168, 207, 208, 437, 440, 309, 310, + 312, 313, 229, 311, 314, 214, 354, 257, 287, 166, + -55, 166, -102, -195, 166, -167, 289, -186, 291, 304, + 299, 309, 297, -178, 300, 302, 205, -276, 317, 166, + 306, 155, 146, 292, 301, 310, 311, 314, 214, -272, + -261, 460, 475, 316, 261, 296, 294, 318, 442, 313, + 312, -195, 235, -202, 240, -190, -261, -189, 238, -102, + -61, 438, 159, -204, -204, -72, 442, 444, -122, -86, + -108, 112, -113, 30, 24, -112, -109, -130, -127, -128, + 146, 147, 149, 148, 150, 135, 136, 143, 113, 151, + -117, -115, -116, -118, 90, 89, 98, 91, 92, 93, + 94, 100, 101, 102, -190, -195, -125, -279, 67, 68, + 339, 340, 341, 342, 347, 343, 115, 56, 334, 328, + 337, 336, 335, 332, 333, 330, 331, 345, 346, 171, + 329, 165, 141, 338, -261, -189, 43, 305, 305, -102, + -55, -5, -4, -279, 6, 21, 22, -143, 18, 17, + -280, 85, -64, -77, 62, 63, -79, 22, 37, 66, + 64, 21, -56, -76, 137, -86, -195, -76, -176, 170, + -176, -176, -166, -207, 235, -170, 318, 317, -191, -168, + -190, -188, -167, 315, 160, 357, 111, 23, 25, 114, + 146, 17, 115, 36, 162, 261, 178, 145, 174, 339, + 155, 71, 358, 330, 331, 328, 334, 341, 342, 329, + 291, 30, 11, 360, 26, 188, 22, 37, 139, 157, + 118, 119, 191, 24, 189, 102, 363, 20, 74, 183, + 12, 176, 39, 14, 364, 365, 15, 171, 170, 130, + 167, 69, 9, 151, 27, 127, 65, 366, 29, 367, + 368, 369, 370, 67, 128, 18, 332, 333, 32, 443, + 371, 347, 200, 141, 72, 58, 444, 112, 372, 373, + 100, 374, 103, 75, 449, 109, 16, 70, 41, 375, + 201, 376, 173, 377, 321, 378, 129, 158, 338, 68, + 379, 165, 304, 6, 344, 31, 187, 175, 66, 380, + 166, 117, 345, 346, 169, 101, 5, 172, 33, 10, + 73, 76, 335, 336, 337, 56, 351, 116, 13, 381, + 322, 110, 316, -238, 128, -225, -229, -190, 182, -254, + 178, -102, -247, -246, -190, -71, -185, 167, 176, 175, + 172, -265, 109, 222, 329, 165, -36, -37, -167, 145, + 199, 84, 84, -229, -228, -227, -266, 201, 182, -253, + -245, 174, 183, -235, 175, 176, -230, 167, 29, -266, + -230, 173, 183, 201, 201, 108, 201, 108, 201, 201, + 201, 201, 201, 201, 201, 201, 201, 198, -236, 120, + -236, 355, 355, -241, -266, -266, -266, 169, 34, 34, + -187, -230, 169, 23, -236, -236, -167, 145, -236, -236, + -236, -236, 209, 209, -236, -236, -236, -236, -236, -236, + -236, -236, -236, -236, -236, -236, -236, -236, -236, 166, + -265, -80, 314, 229, 79, -38, 211, -22, -102, -185, + 167, 168, -265, -102, 152, -102, -180, 128, 13, -180, + -177, 305, 303, 290, 295, -180, -180, -180, -180, 212, + 288, -231, 167, 34, 179, 305, 212, 288, 212, 213, + 212, 213, 298, 308, 212, -200, 12, 130, 329, 293, + 297, 205, 166, 206, 168, 307, -261, 445, 213, -200, + 305, 208, -180, -205, -279, -191, 261, -205, -205, 31, + 169, -190, -57, -190, 90, -7, -3, -11, -10, -12, + 120, -78, 305, -66, 146, 460, 446, 447, 448, 445, + 302, 453, 451, 449, 212, 450, 84, 111, 109, 110, + 127, -86, -110, 130, 112, 128, 129, 114, 132, 131, + 142, 135, 136, 137, 138, 139, 140, 141, 133, 134, + 145, 120, 121, 122, 123, 124, 125, 126, -175, -279, + -128, -279, 153, 154, -113, -113, -113, -113, -113, -113, + -113, -113, -113, -113, -279, 152, -2, -122, -4, -279, + -279, -279, -279, -279, -279, -279, -279, -135, -86, -279, + -283, -279, -283, -119, -279, -283, -119, -283, -119, -283, + -283, -119, -283, -119, -283, -283, -119, -279, -279, -279, + -279, -279, -279, -279, -204, -273, -274, -105, -102, -279, + 229, -139, -3, -55, -158, 20, 32, -86, -140, -141, + -86, -139, 58, -74, -76, -79, 62, 63, 96, 12, + -193, -192, 23, -190, 90, 152, 12, -103, 27, -102, + -88, -89, -90, -91, -105, -129, -279, 12, -95, -96, + -102, -104, -195, 84, 235, -170, -207, -172, -171, 319, + 321, 120, -194, -190, 90, 30, 85, 84, -102, -209, + -212, -214, -213, -215, -210, -211, 258, 259, 146, 262, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 31, 190, 254, 255, 256, 257, 274, 275, 276, 277, + 278, 279, 280, 281, 241, 260, 349, 242, 243, 244, + 245, 246, 247, 249, 250, 251, 252, 253, -264, -261, + 83, 85, 84, -216, 83, -80, 166, -261, 167, 167, + 167, -55, 338, -236, -236, 198, -29, -26, -257, 16, + -25, -26, 160, 104, 105, 157, 83, -225, 83, -234, + -264, -261, 83, 29, 173, 172, -233, -230, -233, -234, + -261, -130, -190, -195, -261, 29, 29, -163, -190, -163, + -163, 21, -163, 21, -163, 21, 91, -190, -163, 21, + -163, 21, -163, 21, -163, 21, -163, 21, 30, 77, + 78, 30, 80, 81, 82, -130, -130, -225, -167, -102, + -261, 91, 91, -236, -236, 91, 90, 90, 90, -236, + -236, 91, 90, -261, 90, -267, 184, 226, 228, 91, + 91, 91, 91, 30, 90, -268, 30, 467, 466, 468, + 469, 470, 91, 30, 91, 30, 91, -190, 83, -102, + -83, 216, 155, 157, 160, 75, 90, 230, 120, 43, + 84, 169, 166, -261, -182, 171, -182, -196, -195, -188, + 90, -86, -232, 12, 130, -200, -200, -180, -102, -232, + -200, -180, -102, -180, -180, -180, -180, -200, -200, -200, + -180, -195, -195, -102, -102, -102, -102, -102, -102, -102, + -205, -205, -205, -181, 128, -180, 75, -203, 238, 272, + 439, 440, 441, 84, 351, -95, 445, 445, 445, 445, + 445, 445, -86, -86, -86, -86, -120, 100, 112, 101, + 102, -113, -121, -125, -128, 95, 130, 128, 129, 114, + -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, + -113, -113, -113, -113, -113, -206, -261, 90, 146, -261, + -112, -112, -190, -75, 22, 37, -74, -191, -196, -188, + -70, -280, -280, -139, -74, -74, -86, -86, -130, 90, + -74, -130, 90, -74, -74, -69, 22, 37, -133, -134, + 116, -130, -280, -113, -190, -190, -74, -75, -75, -74, + -74, 84, -275, 321, 322, 443, -198, 201, -197, 23, + -195, 90, -123, -122, 90, -143, -280, -144, 27, 10, + 130, 84, 19, 84, -142, 25, 26, -143, -114, -190, + 91, 94, -87, 84, 12, -79, -102, -192, 137, -196, + -102, -162, 201, -102, 31, 84, -98, -100, -99, -101, + 65, 69, 71, 66, 67, 68, 72, -201, 23, -88, + -3, -279, -102, -95, -281, 84, 12, 76, -281, 84, + 152, -170, -172, 84, 320, 322, 323, 75, 103, -86, + -218, 145, -243, -242, -241, -225, -227, -228, -229, 85, + -145, -221, 286, -216, -216, -216, -216, -216, -217, -167, + -217, -217, -217, 83, 83, -216, -216, -216, -216, -219, + 83, -219, -219, -220, 83, -220, -254, -86, -251, -250, + -248, -249, 177, 97, 351, 76, -246, -142, 91, -83, + -183, 171, -252, -249, -261, -261, -261, -183, -261, 90, + -261, 90, 84, 17, -226, -225, -131, 226, -256, 201, + -253, -247, -234, 29, -233, -234, -234, 152, -261, 84, + 27, 108, 108, 108, 108, 351, 157, 31, -225, -131, + -206, 169, -206, -206, 90, 90, -179, 475, -95, -82, + 218, 120, 207, 207, 166, 166, 220, -102, 231, 232, + 230, 21, 219, 221, 223, 209, -102, -102, -182, 75, + -97, -102, 24, -195, -102, -180, -180, -102, -180, -180, + 90, -102, -190, -66, 321, 351, 20, -67, 20, 100, + 101, 102, -121, -113, -113, -113, -73, 191, 111, -280, + -280, -74, -74, -279, 152, -5, -143, -280, -280, 84, + 76, 23, 12, 12, -280, 12, 12, -280, -280, -74, + -136, -134, 118, -86, -280, -280, 84, 84, -280, -280, + -280, -280, -280, -274, 442, 322, -106, 73, 170, 74, + -279, -197, -280, -158, 41, 49, 60, -86, -86, -141, + -158, -174, 20, 12, 56, 56, -107, 13, -76, -88, + -79, 152, -107, -111, 31, 56, -3, -279, -279, -165, + -169, -130, -89, -90, -90, -89, -90, 65, 65, 65, + 70, 65, 70, 65, -99, -195, -280, -280, -3, -162, + 76, -88, -102, -88, -104, -195, 137, -171, -173, 324, + 321, 327, -261, 90, 84, -241, -229, 100, 112, 30, + -85, 75, 283, 97, 173, 29, 172, 39, -222, 287, + -217, -217, -218, -261, 90, 146, -218, -218, -218, -224, + 90, -224, 91, 91, 85, -32, -27, -28, 32, 79, + -248, -236, 90, 38, -190, 85, -82, -102, 112, 75, + -252, -252, -252, -195, 16, -160, -190, 84, 85, -132, + 227, -130, 85, -190, 85, 83, -234, -191, -190, -279, + 166, 30, 30, -131, -132, -218, -261, 477, 476, 85, + 168, 225, -84, 334, 90, 86, -102, -102, -102, -102, + -102, 160, 157, 210, 169, -95, -102, 84, -60, 186, + 181, -200, -200, 32, 321, 454, 452, -73, 111, -113, + -113, -280, -280, -75, -191, -139, -158, -208, 146, 258, + 190, 256, 252, 272, 263, 285, 254, 286, -206, -208, + -113, -113, -113, -113, 348, -139, 119, -86, 117, -113, + -113, 167, 167, 167, -163, 42, 90, 90, 61, -102, + -137, 14, -86, 137, -143, -164, 75, -165, -124, -126, + -125, -279, -159, -280, -190, -163, -107, 84, 120, -93, + -92, 75, 76, -94, 75, -92, 65, 65, -280, -107, + -88, -107, -107, 152, 321, 325, 326, -241, 100, -113, + 23, 10, 90, 29, 29, 40, -218, -218, 85, 84, + 85, 84, 85, 84, -184, 388, 112, -28, -27, -236, + -236, 91, -261, 168, 24, -102, 75, 75, 75, 17, + 84, -225, -130, 56, -251, -160, -255, -256, -102, -112, + -132, -102, -81, 216, 224, 83, 87, -263, 76, 207, + 283, 207, -102, -60, -32, -102, -180, -180, 32, -261, + -113, -280, -143, -280, -216, -216, -216, -220, -216, 246, + -216, 246, -280, -280, 20, 20, 20, 20, -279, -65, + 344, -86, 84, 84, -279, -279, -279, -280, 90, -217, + -138, 15, 17, 28, -164, 84, -280, -280, 84, 56, + 152, -280, -139, -169, -86, -86, 83, -86, -139, -107, + -113, -116, -217, 90, -217, 91, 91, 388, 30, 80, + 81, 82, 30, 77, 78, -102, -102, -102, -102, -160, + -190, 203, 85, -280, 84, -223, 351, 354, -161, 83, + 85, -260, 351, -262, -261, -190, -190, -190, -158, -217, + -261, -113, -113, -113, -113, -113, -143, 90, -113, -113, + -160, -280, -160, -160, -198, -217, -147, -152, -177, -86, + -122, 29, -126, 56, -3, -190, -124, -190, -143, -160, + -143, -218, -218, 85, 85, -161, 204, 185, -256, 355, + 355, 23, -160, -259, -258, -191, 83, 76, -280, -280, + -280, -280, -68, 130, 351, -280, -280, -280, -280, -280, + -280, -106, -150, 438, -155, 45, -153, -154, 46, -151, + 47, 55, 10, -124, 152, 85, 23, -279, -102, -3, + 85, 84, 120, -160, -102, -280, 349, 72, 352, -147, + 50, 264, -157, -156, 54, 46, -154, 17, 48, 17, + -165, -190, -3, -113, 200, 83, -58, 351, -258, -240, + -191, 90, 91, 85, 61, 350, 353, -148, 52, -146, + 51, -146, -156, 17, 17, 90, 17, 90, -58, -280, + -280, -160, -59, 215, 442, -263, 61, -149, 53, 75, + 103, 90, 90, 90, 85, 178, -260, 351, 75, 103, + -270, -271, 75, 217, 352, -271, 75, 11, 10, 353, + -269, 186, 181, 184, 31, -269, 180, 30, 100, } var yyDef = [...]int{ 34, -2, 2, 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, 32, 33, 824, 0, 560, 560, 560, 560, 560, - 560, 560, 0, 0, 560, -2, -2, 560, 960, 0, - 560, 0, 0, -2, 493, 494, 0, 496, -2, 0, - 0, 505, 1371, 1371, 555, 0, 0, 0, 0, 0, - 560, 1369, 55, 56, 511, 512, 513, 1, 3, 0, - 564, 832, 0, 0, -2, 562, 0, 0, 943, 943, - 943, 0, 86, 87, 0, 0, 0, -2, 90, -2, - 114, 115, 0, 119, 369, 330, 372, 328, 358, -2, - 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 333, 225, 225, 0, 0, -2, 321, - 321, 321, 0, 0, 0, 355, 945, 275, 225, 225, - 0, 225, 225, 225, 225, 0, 0, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 848, 118, 961, 958, 959, 35, 36, 37, - 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, - 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, - 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, - 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, - 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, - 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, - 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, - 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, - 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, - 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, - 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, - 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, - 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, - 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, - 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, - 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, - 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, - 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, - 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, - 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, - 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, - 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, - 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, - 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, - 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, - 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, - 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 0, 937, - 0, 425, 645, 0, 484, 484, 0, 484, 484, 484, - 484, 0, 0, 0, 437, 0, 0, 0, 0, 481, - 0, 0, 456, 458, 0, 481, 0, 468, 484, 1372, - 1372, 1372, 928, 0, 478, 476, 490, 491, 473, 474, - 492, 495, 0, 500, 503, 954, 955, 0, 518, 0, - 1177, 510, 523, 524, 0, 556, 557, 40, 696, 655, - 0, 661, 663, 0, 698, 699, 700, 701, 702, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 728, - 729, 730, 731, 809, 810, 811, 812, 813, 814, 815, - 816, 665, 666, 806, 0, 917, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 797, 0, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 0, 0, 0, 0, - 0, 0, 0, -2, -2, 1371, 0, 533, 0, 0, - 824, 51, 0, 560, 565, 566, 867, 0, 0, 824, - 1370, 0, 0, -2, -2, 576, 582, 583, 584, 585, - 586, 561, 0, 589, 593, 0, 0, 0, 944, 0, - 0, 72, 0, 1334, 921, -2, -2, 0, 0, 956, - 957, 930, -2, 964, 965, 966, 967, 968, 969, 970, - 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, - 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, - 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, - 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, - 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, - 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, - 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, - 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, - 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, - 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, - 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, - 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, - 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, - -2, 0, 0, 128, 129, 0, 38, 251, 0, 124, - 0, 245, 198, 848, 0, 0, 0, 0, 0, 560, - 0, 938, 109, 110, 116, 117, 225, 225, 0, 118, - 118, 337, 338, 339, 0, 0, -2, 249, 0, 322, - 0, 0, 239, 239, 243, 241, 242, 0, 0, 0, - 0, 0, 0, 349, 0, 350, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 409, 0, 226, 0, 367, - 368, 276, 0, 0, 0, 0, 347, 348, 0, 0, - 946, 947, 0, 0, 225, 225, 0, 0, 0, 0, - 225, 225, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 108, 861, - 0, 0, 0, -2, 0, 417, 0, 0, 0, 939, - 939, 424, 0, 426, 427, 0, 0, 428, 0, 481, - 481, 479, 480, 430, 431, 432, 433, 484, 0, 0, - 234, 235, 236, 481, 484, 0, 484, 484, 484, 484, - 481, 481, 481, 484, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1372, 1372, 1372, 487, 484, 465, 466, - 469, 470, 1373, 1374, 975, 471, 472, 929, 501, 504, - 521, 519, 520, 522, 514, 515, 516, 517, 0, 535, - 536, 541, 0, 0, 0, 0, 547, 548, 549, 0, - 0, 552, 553, 554, 0, 0, 0, 0, 0, 659, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 683, - 684, 685, 686, 687, 688, 689, 662, 0, 676, 0, - 0, 0, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 0, 573, 0, 0, 0, 824, 0, 0, 0, - 0, 0, 0, 0, 570, 0, 798, 0, 749, 0, - 750, 758, 0, 751, 759, 752, 760, 753, 754, 761, - 755, 762, 756, 757, 763, 0, 0, 0, 573, 573, - 0, 0, 41, 525, 526, 0, 628, 949, 0, 832, - 0, 575, 870, 0, 0, 833, 825, 826, 829, 832, - 0, 598, 587, 577, 580, 581, 563, 0, 590, 594, - 0, 596, 597, 0, 0, 70, 0, 644, 0, 600, - 602, 603, 604, 626, 0, 0, 0, 0, 66, 68, - 645, 0, 1334, 927, 0, 74, 75, 0, 0, 0, - 213, 932, 933, 934, -2, 232, 0, 136, 205, 149, - 150, 151, 198, 153, 198, 198, 198, 198, 209, 209, - 209, 209, 181, 182, 183, 184, 185, 0, 0, 168, - 198, 198, 198, 198, 188, 189, 190, 191, 192, 193, - 194, 195, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 200, 200, 200, 202, 202, 0, 39, 0, 217, - 0, 829, 0, 861, 941, 951, 0, 0, 0, 941, - 92, 0, 0, 370, 331, 359, 371, 0, 334, 335, - -2, 0, 0, 321, 0, 323, 0, 233, 0, -2, - 0, 243, 0, 239, 243, 240, 243, 231, 244, 351, - 806, 0, 352, 353, 0, 389, 614, 0, 0, 0, - 0, 0, 395, 396, 397, 0, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 360, 361, 362, 363, - 364, 365, 366, 0, 0, 323, 0, 356, 0, 277, - 278, 0, 0, 281, 282, 283, 284, 0, 0, 287, - 288, 289, 290, 291, 315, 316, 317, 292, 293, 294, - 295, 296, 297, 298, 309, 310, 311, 312, 313, 314, - 299, 300, 301, 302, 303, 306, 0, 102, 852, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 939, 0, 0, 0, 0, 646, 962, 963, 485, 486, - 0, 237, 238, 484, 484, 434, 457, 0, 484, 438, - 459, 439, 441, 440, 442, 461, 462, 484, 445, 482, - 483, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 463, 0, 464, 0, 0, 502, 506, 507, 508, - 509, 0, 0, 538, 543, 544, 545, 546, 558, 551, - 697, 656, 657, 658, 660, 677, 0, 679, 681, 667, - 668, 692, 693, 694, 0, 0, 0, 0, 690, 672, - 0, 703, 704, 705, 706, 707, 708, 709, 710, 711, - 712, 713, 714, 717, 781, 782, 783, 0, 715, 716, - 727, 0, 0, 0, 574, 807, 0, -2, 0, 695, - 916, 832, 0, 0, 0, 0, 700, 809, 0, 700, - 809, 0, 0, 0, 571, 572, 804, 801, 0, 0, - 767, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 528, 529, 531, 0, 648, 0, 629, 0, 631, 632, - 0, 950, 534, 867, 52, 42, 0, 868, 0, 0, - 0, 0, 828, 830, 831, 867, 0, 817, 0, 0, - 653, 0, 0, 578, 48, 595, 591, 0, 653, 0, - 0, 643, 0, 0, 0, 0, 0, 0, 633, 0, - 0, 636, 0, 0, 0, 0, 627, 0, 0, 0, - -2, 0, 0, 0, 62, 63, 0, 0, 0, 922, - 73, 0, 0, 78, 79, 923, 924, 925, 926, 0, - 111, -2, 272, 130, 132, 133, 134, 125, 135, 207, - 206, 152, 209, 209, 175, 176, 213, 0, 213, 213, - 213, 0, 0, 169, 170, 171, 172, 163, 0, 164, - 165, 166, 0, 167, 250, 0, 836, 218, 219, 221, - 225, 0, 0, 0, 246, 247, 0, 852, 0, 0, - 0, 952, 951, 951, 951, 0, 120, 121, 122, 123, - 118, 0, 0, 126, 325, 0, 0, 0, 248, 0, - 0, 227, 243, 228, 229, 0, 354, 0, 0, 391, - 392, 393, 394, 0, 0, 0, 323, 325, 213, 0, - 279, 280, 285, 286, 304, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 384, 385, 386, 387, - 849, 850, 851, 0, 0, 418, 0, 0, 264, 64, - 940, 423, 481, 444, 460, 481, 436, 443, 488, 467, - 498, 542, 0, 0, 0, 550, 0, 678, 680, 682, - 669, 690, 673, 0, 670, 0, 0, 664, 732, 0, - 0, 573, 0, 824, 867, 736, 737, 0, 0, 0, - 0, 0, 774, 0, 0, 775, 0, 824, 0, 802, - 0, 0, 748, 768, 0, 0, 769, 770, 771, 772, - 773, 527, 530, 532, 608, 0, 0, 0, 0, 630, - 948, 44, 0, 0, 0, 834, 835, 827, 43, 0, - 935, 936, 818, 819, 820, 0, 588, 599, 579, 0, - 832, 910, 0, 0, 902, 0, 0, 653, 918, 0, - 601, 622, 624, 0, 619, 634, 635, 637, 0, 639, - 0, 641, 642, 605, 606, 607, 0, 653, 0, 653, - 67, 653, 69, 0, 647, 76, 77, 0, 0, 83, - 214, 215, 118, 274, 131, 137, 0, 0, 0, 0, - 142, 0, 0, 145, 147, 148, 208, 213, 213, 177, - 210, 211, 212, 178, 179, 180, 0, 196, 0, 0, - 0, 267, 88, 840, 839, 225, 225, 220, 0, 223, - 0, 953, 199, 0, 101, 0, 0, 0, 0, 0, - 107, 0, 329, 612, 0, 340, 341, 0, 324, 388, - 0, 217, 0, 230, 807, 615, 0, 0, 342, 0, - 325, 345, 346, 357, 307, 308, 305, 0, 0, 862, - 863, 0, 866, 93, 377, 379, 378, 382, 0, 0, - 375, 0, 264, 836, 0, 422, 265, 266, 484, 484, - 537, 0, 540, 0, 671, 0, 691, 674, 733, 734, - 0, 808, 832, 46, 0, 198, 198, 787, 198, 202, - 790, 198, 792, 198, 795, 0, 0, 0, 0, 0, - 0, 0, 799, 747, 805, 0, 0, 0, 0, 0, - 0, 0, 0, 209, 872, 869, 45, 822, 0, 654, - 592, 49, 53, 0, 910, 901, 912, 914, 0, 0, - 0, 906, 0, 824, 0, 0, 616, 623, 0, 0, - 617, 0, 618, 638, 640, -2, 824, 653, 60, 61, - 0, 80, 81, 82, 273, 138, 139, 140, 0, 143, - 144, 146, 173, 174, 209, 0, 209, 0, 203, 0, - 256, 268, 0, 837, 838, 0, 0, 222, 224, 0, - 942, 103, 0, 0, 0, 0, 0, 127, 326, 0, - 216, 0, 0, 413, 410, 343, 344, 610, 853, 854, - 855, 0, 865, 96, 0, 0, 0, 0, 419, 420, - 421, 65, 429, 435, 539, 559, 675, 735, 867, 738, - 784, 209, 788, 789, 791, 793, 794, 796, 740, 739, - 0, 0, 0, 0, 0, 832, 0, 803, 0, 0, - 0, 0, 0, 628, 209, 892, 50, 0, 0, 0, - 54, 0, 915, 0, 0, 0, 0, 71, 832, 919, - 920, 620, 0, 625, 832, 59, 141, 213, 197, 213, - 0, 0, 269, 841, 842, 843, 844, 845, 846, 847, - 610, 104, 105, 106, 332, 613, 0, 0, 390, 0, - 398, 0, 0, 0, 0, 864, 376, 0, 94, 95, - 0, 0, 381, 47, 785, 786, 0, 0, 0, 0, - 776, 0, 800, 0, 0, 0, 650, 0, 0, 648, - 874, 873, 886, 899, 823, 821, 0, 913, 0, 905, - 908, 904, 907, 57, 0, 58, 186, 187, 201, 204, - 0, 0, 0, 414, 411, 412, 0, 0, 97, 98, - 0, 0, 0, 741, 743, 742, 744, 0, 0, 0, - 746, 764, 765, 649, 651, 652, 609, 892, 0, 885, - 0, -2, 894, 0, 0, 0, 900, 0, 903, 0, - 621, 0, 0, 0, 856, 611, 0, 0, 0, 383, - 745, 0, 0, 0, 879, 877, 877, 887, 888, 0, - 0, 895, 0, 0, 0, 911, 909, 856, 0, 0, - 0, 373, 858, 99, 100, 318, 319, 320, 93, 777, - 0, 780, 882, 0, 875, 878, 876, 889, 0, 0, - 896, 0, 898, 89, 415, 416, 0, 0, 859, 860, - 96, 778, 871, 0, 880, 881, 890, 891, 897, 252, - 0, 380, 0, 883, 884, 253, 254, 0, 857, 0, - 255, 0, 0, 0, 779, 257, 259, 260, 0, 0, - 258, 261, 262, 263, + 31, 32, 33, 826, 0, 562, 562, 562, 562, 562, + 562, 562, 0, 0, 562, -2, -2, 562, 962, 0, + 562, 0, 0, -2, 495, 496, 0, 498, -2, 0, + 0, 507, 1375, 1375, 557, 0, 0, 0, 0, 0, + 562, 1373, 55, 56, 513, 514, 515, 1, 3, 0, + 566, 834, 0, 0, -2, 564, 0, 0, 945, 945, + 945, 0, 86, 87, 0, 0, 0, -2, 90, -2, + 114, 115, 0, 119, 371, 332, 374, 330, 360, -2, + 323, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 335, 227, 227, 0, 0, -2, 323, + 323, 323, 0, 0, 0, 357, 947, 277, 227, 227, + 0, 227, 227, 227, 227, 0, 0, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 850, 118, 963, 960, 961, 35, 36, 37, + 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, + 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, + 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, + 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, + 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, + 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, + 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, + 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, + 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, + 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, + 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, + 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, + 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, + 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, + 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, + 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, + 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, + 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, + 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, + 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, + 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, + 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, + 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, + 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, + 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, + 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, + 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 0, + 939, 0, 427, 647, 0, 486, 486, 0, 486, 486, + 486, 486, 0, 0, 0, 439, 0, 0, 0, 0, + 483, 0, 0, 458, 460, 0, 483, 0, 470, 486, + 1376, 1376, 1376, 930, 0, 480, 478, 492, 493, 475, + 476, 494, 497, 0, 502, 505, 956, 957, 0, 520, + 0, 1181, 512, 525, 526, 0, 558, 559, 40, 698, + 657, 0, 663, 665, 0, 700, 701, 702, 703, 704, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 730, 731, 732, 733, 811, 812, 813, 814, 815, 816, + 817, 818, 667, 668, 808, 0, 919, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 799, 0, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 0, 0, 0, + 0, 0, 0, 0, -2, -2, 1375, 0, 535, 0, + 0, 826, 51, 0, 562, 567, 568, 869, 0, 0, + 826, 1374, 0, 0, -2, -2, 578, 584, 585, 586, + 587, 588, 563, 0, 591, 595, 0, 0, 0, 946, + 0, 0, 72, 0, 1338, 923, -2, -2, 0, 0, + 958, 959, 932, -2, 966, 967, 968, 969, 970, 971, + 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, + 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, + 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, + 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, + 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, + 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, + 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, + 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, + 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, + 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, + 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, + 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, + 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, + 1102, 1103, -2, 0, 0, 128, 129, 0, 38, 253, + 0, 124, 0, 247, 200, 850, 0, 0, 0, 0, + 0, 562, 0, 940, 109, 110, 116, 117, 227, 227, + 0, 118, 118, 339, 340, 341, 0, 0, -2, 251, + 0, 324, 0, 0, 241, 241, 245, 243, 244, 0, + 0, 0, 0, 0, 0, 351, 0, 352, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 411, 0, 228, + 0, 369, 370, 278, 0, 0, 0, 0, 349, 350, + 0, 0, 948, 949, 0, 0, 227, 227, 0, 0, + 0, 0, 227, 227, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 108, 863, 0, 0, 0, -2, 0, 419, 0, 0, + 0, 941, 941, 426, 0, 428, 429, 0, 0, 430, + 0, 483, 483, 481, 482, 432, 433, 434, 435, 486, + 0, 0, 236, 237, 238, 483, 486, 0, 486, 486, + 486, 486, 483, 483, 483, 486, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1376, 1376, 1376, 489, 486, + 467, 468, 471, 472, 1377, 1378, 977, 473, 474, 931, + 503, 506, 523, 521, 522, 524, 516, 517, 518, 519, + 0, 537, 538, 543, 0, 0, 0, 0, 549, 550, + 551, 0, 0, 554, 555, 556, 0, 0, 0, 0, + 0, 661, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 685, 686, 687, 688, 689, 690, 691, 664, 0, + 678, 0, 0, 0, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 0, 575, 0, 0, 0, 826, 0, + 0, 0, 0, 0, 0, 0, 572, 0, 800, 0, + 751, 0, 752, 760, 0, 753, 761, 754, 762, 755, + 756, 763, 757, 764, 758, 759, 765, 0, 0, 0, + 575, 575, 0, 0, 41, 527, 528, 0, 630, 951, + 0, 834, 0, 577, 872, 0, 0, 835, 827, 828, + 831, 834, 0, 600, 589, 579, 582, 583, 565, 0, + 592, 596, 0, 598, 599, 0, 0, 70, 0, 646, + 0, 602, 604, 605, 606, 628, 0, 0, 0, 0, + 66, 68, 647, 0, 1338, 929, 0, 74, 75, 0, + 0, 0, 215, 934, 935, 936, -2, 234, 0, 138, + 207, 151, 152, 153, 200, 155, 200, 200, 200, 200, + 211, 211, 211, 211, 183, 184, 185, 186, 187, 0, + 0, 170, 200, 200, 200, 200, 190, 191, 192, 193, + 194, 195, 196, 197, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 202, 202, 202, 204, 204, 0, 39, + 0, 219, 0, 831, 0, 863, 943, 953, 0, 0, + 0, 943, 92, 0, 0, 372, 333, 361, 373, 0, + 336, 337, -2, 0, 0, 323, 0, 325, 0, 235, + 0, -2, 0, 245, 0, 241, 245, 242, 245, 233, + 246, 353, 808, 0, 354, 355, 0, 391, 616, 0, + 0, 0, 0, 0, 397, 398, 399, 0, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 362, 363, + 364, 365, 366, 367, 368, 0, 0, 325, 0, 358, + 0, 279, 280, 0, 0, 283, 284, 285, 286, 0, + 0, 289, 290, 291, 292, 293, 317, 318, 319, 294, + 295, 296, 297, 298, 299, 300, 311, 312, 313, 314, + 315, 316, 301, 302, 303, 304, 305, 308, 0, 102, + 854, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 941, 0, 0, 0, 0, 648, 964, 965, + 487, 488, 0, 239, 240, 486, 486, 436, 459, 0, + 486, 440, 461, 441, 443, 442, 444, 463, 464, 486, + 447, 484, 485, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 465, 0, 466, 0, 0, 504, 508, + 509, 510, 511, 0, 0, 540, 545, 546, 547, 548, + 560, 553, 699, 658, 659, 660, 662, 679, 0, 681, + 683, 669, 670, 694, 695, 696, 0, 0, 0, 0, + 692, 674, 0, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 719, 783, 784, 785, 0, + 717, 718, 729, 0, 0, 0, 576, 809, 0, -2, + 0, 697, 918, 834, 0, 0, 0, 0, 702, 811, + 0, 702, 811, 0, 0, 0, 573, 574, 806, 803, + 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 530, 531, 533, 0, 650, 0, 631, 0, + 633, 634, 0, 952, 536, 869, 52, 42, 0, 870, + 0, 0, 0, 0, 830, 832, 833, 869, 0, 819, + 0, 0, 655, 0, 0, 580, 48, 597, 593, 0, + 655, 0, 0, 645, 0, 0, 0, 0, 0, 0, + 635, 0, 0, 638, 0, 0, 0, 0, 629, 0, + 0, 0, -2, 0, 0, 0, 62, 63, 0, 0, + 0, 924, 73, 0, 0, 78, 79, 925, 926, 927, + 928, 0, 111, -2, 274, 130, 132, 133, 134, 125, + -2, 209, 208, 154, 211, 211, 177, 178, 215, 0, + 215, 215, 215, 0, 0, 171, 172, 173, 174, 165, + 0, 166, 167, 168, 0, 169, 252, 0, 838, 220, + 221, 223, 227, 0, 0, 0, 248, 249, 0, 854, + 0, 0, 0, 954, 953, 953, 953, 0, 120, 121, + 122, 123, 118, 0, 0, 126, 327, 0, 0, 0, + 250, 0, 0, 229, 245, 230, 231, 0, 356, 0, + 0, 393, 394, 395, 396, 0, 0, 0, 325, 327, + 215, 0, 281, 282, 287, 288, 306, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 386, 387, + 388, 389, 851, 852, 853, 0, 0, 420, 0, 0, + 266, 64, 942, 425, 483, 446, 462, 483, 438, 445, + 490, 469, 500, 544, 0, 0, 0, 552, 0, 680, + 682, 684, 671, 692, 675, 0, 672, 0, 0, 666, + 734, 0, 0, 575, 0, 826, 869, 738, 739, 0, + 0, 0, 0, 0, 776, 0, 0, 777, 0, 826, + 0, 804, 0, 0, 750, 770, 0, 0, 771, 772, + 773, 774, 775, 529, 532, 534, 610, 0, 0, 0, + 0, 632, 950, 44, 0, 0, 0, 836, 837, 829, + 43, 0, 937, 938, 820, 821, 822, 0, 590, 601, + 581, 0, 834, 912, 0, 0, 904, 0, 0, 655, + 920, 0, 603, 624, 626, 0, 621, 636, 637, 639, + 0, 641, 0, 643, 644, 607, 608, 609, 0, 655, + 0, 655, 67, 655, 69, 0, 649, 76, 77, 0, + 0, 83, 216, 217, 118, 276, 131, 139, 0, 0, + 0, 0, 144, 0, 0, 147, 149, 0, 150, 210, + 215, 215, 179, 212, 213, 214, 180, 181, 182, 0, + 198, 0, 0, 0, 269, 88, 842, 841, 227, 227, + 222, 0, 225, 0, 955, 201, 0, 101, 0, 0, + 0, 0, 0, 107, 0, 331, 614, 0, 342, 343, + 0, 326, 390, 0, 219, 0, 232, 809, 617, 0, + 0, 344, 0, 327, 347, 348, 359, 309, 310, 307, + 0, 0, 864, 865, 0, 868, 93, 379, 381, 380, + 384, 0, 0, 377, 0, 266, 838, 0, 424, 267, + 268, 486, 486, 539, 0, 542, 0, 673, 0, 693, + 676, 735, 736, 0, 810, 834, 46, 0, 200, 200, + 789, 200, 204, 792, 200, 794, 200, 797, 0, 0, + 0, 0, 0, 0, 0, 801, 749, 807, 0, 0, + 0, 0, 0, 0, 0, 0, 211, 874, 871, 45, + 824, 0, 656, 594, 49, 53, 0, 912, 903, 914, + 916, 0, 0, 0, 908, 0, 826, 0, 0, 618, + 625, 0, 0, 619, 0, 620, 640, 642, -2, 826, + 655, 60, 61, 0, 80, 81, 82, 275, 140, 141, + 0, 0, 145, 146, 148, 137, 175, 176, 211, 0, + 211, 0, 205, 0, 258, 270, 0, 839, 840, 0, + 0, 224, 226, 0, 944, 103, 0, 0, 0, 0, + 0, 127, 328, 0, 218, 0, 0, 415, 412, 345, + 346, 612, 855, 856, 857, 0, 867, 96, 0, 0, + 0, 0, 421, 422, 423, 65, 431, 437, 541, 561, + 677, 737, 869, 740, 786, 211, 790, 791, 793, 795, + 796, 798, 742, 741, 0, 0, 0, 0, 0, 834, + 0, 805, 0, 0, 0, 0, 0, 630, 211, 894, + 50, 0, 0, 0, 54, 0, 917, 0, 0, 0, + 0, 71, 834, 921, 922, 622, 0, 627, 834, 59, + 142, 143, 215, 199, 215, 0, 0, 271, 843, 844, + 845, 846, 847, 848, 849, 612, 104, 105, 106, 334, + 615, 0, 0, 392, 0, 400, 0, 0, 0, 0, + 866, 378, 0, 94, 95, 0, 0, 383, 47, 787, + 788, 0, 0, 0, 0, 778, 0, 802, 0, 0, + 0, 652, 0, 0, 650, 876, 875, 888, 901, 825, + 823, 0, 915, 0, 907, 910, 906, 909, 57, 0, + 58, 188, 189, 203, 206, 0, 0, 0, 416, 413, + 414, 0, 0, 97, 98, 0, 0, 0, 743, 745, + 744, 746, 0, 0, 0, 748, 766, 767, 651, 653, + 654, 611, 894, 0, 887, 0, -2, 896, 0, 0, + 0, 902, 0, 905, 0, 623, 0, 0, 0, 858, + 613, 0, 0, 0, 385, 747, 0, 0, 0, 881, + 879, 879, 889, 890, 0, 0, 897, 0, 0, 0, + 913, 911, 858, 0, 0, 0, 375, 860, 99, 100, + 320, 321, 322, 93, 779, 0, 782, 884, 0, 877, + 880, 878, 891, 0, 0, 898, 0, 900, 89, 417, + 418, 0, 0, 861, 862, 96, 780, 873, 0, 882, + 883, 892, 893, 899, 254, 0, 382, 0, 885, 886, + 255, 256, 0, 859, 0, 257, 0, 0, 0, 781, + 259, 261, 262, 0, 0, 260, 263, 264, 265, } 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, 111, 3, 3, 3, 138, 130, 3, - 81, 83, 135, 133, 82, 134, 150, 136, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 476, - 119, 118, 120, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 113, 3, 3, 3, 140, 132, 3, + 83, 85, 137, 135, 84, 136, 152, 138, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 478, + 121, 120, 122, 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, 140, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 142, 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, 129, 3, 141, + 3, 3, 3, 3, 131, 3, 143, } var yyTok2 = [...]int{ @@ -5391,13 +5412,13 @@ var yyTok2 = [...]int{ 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, - 116, 117, 121, 122, 123, 124, 125, 126, 127, 128, - 131, 132, 137, 139, 142, 143, 144, 145, 146, 147, - 148, 149, 151, 152, 153, 154, 155, 156, 157, 158, + 105, 106, 107, 108, 109, 110, 111, 112, 114, 115, + 116, 117, 118, 119, 123, 124, 125, 126, 127, 128, + 129, 130, 133, 134, 139, 141, 144, 145, 146, 147, + 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, @@ -5453,7 +5474,7 @@ var yyTok3 = [...]int{ 57785, 460, 57786, 461, 57787, 462, 57788, 463, 57789, 464, 57790, 465, 57791, 466, 57792, 467, 57793, 468, 57794, 469, 57795, 470, 57796, 471, 57797, 472, 57798, 473, 57799, 474, - 57800, 475, 0, + 57800, 475, 57801, 476, 57802, 477, 0, } var yyErrorMessages = [...]struct { @@ -6625,207 +6646,203 @@ yydefault: yyVAL.union = yyLOCAL case 136: yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL *ColumnTypeOptions +//line sql.y:1025 + { + yyVAL.str = "" + } + case 137: + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1029 + { + yyVAL.str = "" + } + case 138: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1038 { yyLOCAL = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil, As: nil} } yyVAL.union = yyLOCAL - case 137: + case 139: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1033 +//line sql.y:1042 { val := true yyDollar[1].columnTypeOptionsUnion().Null = &val yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 138: + case 140: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1039 +//line sql.y:1048 { val := false yyDollar[1].columnTypeOptionsUnion().Null = &val yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 139: + case 141: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1045 +//line sql.y:1054 { yyDollar[1].columnTypeOptionsUnion().Default = yyDollar[3].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 140: - yyDollar = yyS[yypt-3 : yypt+1] + case 142: + yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1050 +//line sql.y:1059 { - yyDollar[1].columnTypeOptionsUnion().As = yyDollar[3].exprUnion() + yyDollar[1].columnTypeOptionsUnion().As = yyDollar[4].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 141: + case 143: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1055 +//line sql.y:1064 { yyDollar[1].columnTypeOptionsUnion().OnUpdate = yyDollar[4].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 142: + case 144: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1060 +//line sql.y:1069 { yyDollar[1].columnTypeOptionsUnion().Autoincrement = true yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 143: + case 145: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1065 +//line sql.y:1074 { yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 144: + case 146: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1070 +//line sql.y:1079 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKeyPrimary yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 145: + case 147: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1075 +//line sql.y:1084 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKey yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 146: + case 148: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1080 +//line sql.y:1089 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKeyUniqueKey yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 147: + case 149: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1085 +//line sql.y:1094 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKeyUnique yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 148: + case 150: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1092 +//line sql.y:1101 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].booleanUnion() yyVAL.columnType.Zerofill = yyDollar[3].booleanUnion() } - case 152: + case 154: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1103 +//line sql.y:1112 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].literalUnion() } - case 153: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1108 - { - yyVAL.columnType = yyDollar[1].columnType - } - case 154: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1114 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } case 155: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1118 +//line sql.y:1117 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + yyVAL.columnType = yyDollar[1].columnType } case 156: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1122 +//line sql.y:1123 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 157: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1126 +//line sql.y:1127 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 158: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1130 +//line sql.y:1131 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 159: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1134 +//line sql.y:1135 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 160: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1138 +//line sql.y:1139 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 161: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1142 +//line sql.y:1143 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 162: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1146 +//line sql.y:1147 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 163: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1152 + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1151 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length - yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } case 164: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1158 + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1155 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length - yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } case 165: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1164 +//line sql.y:1161 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6833,7 +6850,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1170 +//line sql.y:1167 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6841,1420 +6858,1436 @@ yydefault: } case 167: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1176 +//line sql.y:1173 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } case 168: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1184 + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1179 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length + yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } case 169: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1188 +//line sql.y:1185 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length + yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } case 170: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1192 + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1193 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 171: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1196 +//line sql.y:1197 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 172: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1200 +//line sql.y:1201 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 173: - yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1206 + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1205 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 174: - yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1210 + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1209 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 175: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1214 + yyDollar = yyS[yypt-4 : yypt+1] +//line sql.y:1215 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 176: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1218 + yyDollar = yyS[yypt-4 : yypt+1] +//line sql.y:1219 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 177: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1222 + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1223 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 178: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1226 + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1227 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 179: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1230 +//line sql.y:1231 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 180: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1234 +//line sql.y:1235 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 181: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1238 + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1239 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 182: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1242 + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1243 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 183: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1246 +//line sql.y:1247 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 184: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1250 +//line sql.y:1251 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 185: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1254 +//line sql.y:1255 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 186: - yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1258 + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1259 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 187: - yyDollar = yyS[yypt-6 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1263 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 188: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1269 + yyDollar = yyS[yypt-6 : yypt+1] +//line sql.y:1267 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 189: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1273 + yyDollar = yyS[yypt-6 : yypt+1] +//line sql.y:1272 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 190: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1277 +//line sql.y:1278 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 191: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1281 +//line sql.y:1282 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 192: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1285 +//line sql.y:1286 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 193: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1289 +//line sql.y:1290 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 194: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1293 +//line sql.y:1294 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 195: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1297 +//line sql.y:1298 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 196: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1303 +//line sql.y:1302 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 197: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1306 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 198: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1312 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, encodeSQLString(yyDollar[1].str)) } - case 197: + case 199: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1308 +//line sql.y:1317 { yyVAL.strs = append(yyDollar[1].strs, encodeSQLString(yyDollar[3].str)) } - case 198: + case 200: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Literal -//line sql.y:1313 +//line sql.y:1322 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 199: + case 201: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Literal -//line sql.y:1317 +//line sql.y:1326 { yyLOCAL = NewIntLiteral(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 200: + case 202: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1322 +//line sql.y:1331 { yyVAL.LengthScaleOption = LengthScaleOption{} } - case 201: + case 203: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1326 +//line sql.y:1335 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), Scale: NewIntLiteral(yyDollar[4].str), } } - case 202: + case 204: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1334 +//line sql.y:1343 { yyVAL.LengthScaleOption = LengthScaleOption{} } - case 203: + case 205: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1338 +//line sql.y:1347 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), } } - case 204: + case 206: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1344 +//line sql.y:1353 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), Scale: NewIntLiteral(yyDollar[4].str), } } - case 205: + case 207: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1352 +//line sql.y:1361 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 206: + case 208: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1356 +//line sql.y:1365 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 207: + case 209: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1361 +//line sql.y:1370 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 208: + case 210: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1365 +//line sql.y:1374 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 209: + case 211: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1370 +//line sql.y:1379 { yyVAL.str = "" } - case 210: + case 212: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1374 +//line sql.y:1383 { yyVAL.str = string(yyDollar[2].colIdent.String()) } - case 211: + case 213: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1378 +//line sql.y:1387 { yyVAL.str = encodeSQLString(yyDollar[2].str) } - case 212: + case 214: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1382 +//line sql.y:1391 { yyVAL.str = string(yyDollar[2].str) } - case 213: + case 215: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1387 +//line sql.y:1396 { yyVAL.str = "" } - case 214: + case 216: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1391 +//line sql.y:1400 { yyVAL.str = string(yyDollar[2].colIdent.String()) } - case 215: + case 217: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1395 +//line sql.y:1404 { yyVAL.str = encodeSQLString(yyDollar[2].str) } - case 216: + case 218: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexDefinition -//line sql.y:1402 +//line sql.y:1411 { yyLOCAL = &IndexDefinition{Info: yyDollar[1].indexInfoUnion(), Columns: yyDollar[3].indexColumnsUnion(), Options: yyDollar[5].indexOptionsUnion()} } yyVAL.union = yyLOCAL - case 217: + case 219: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1407 +//line sql.y:1416 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 218: + case 220: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1411 +//line sql.y:1420 { yyLOCAL = yyDollar[1].indexOptionsUnion() } yyVAL.union = yyLOCAL - case 219: + case 221: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1417 +//line sql.y:1426 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL - case 220: + case 222: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1421 +//line sql.y:1430 { yySLICE := (*[]*IndexOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].indexOptionUnion()) } - case 221: + case 223: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1427 +//line sql.y:1436 { yyLOCAL = yyDollar[1].indexOptionUnion() } yyVAL.union = yyLOCAL - case 222: + case 224: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1431 +//line sql.y:1440 { // should not be string yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 223: + case 225: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1436 +//line sql.y:1445 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 224: + case 226: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1440 +//line sql.y:1449 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str) + " " + string(yyDollar[2].str), String: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 225: + case 227: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1446 +//line sql.y:1455 { yyVAL.str = "" } - case 226: + case 228: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1450 +//line sql.y:1459 { yyVAL.str = string(yyDollar[1].str) } - case 227: + case 229: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1456 +//line sql.y:1465 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} } yyVAL.union = yyLOCAL - case 228: + case 230: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1460 +//line sql.y:1469 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Spatial: true, Unique: false} } yyVAL.union = yyLOCAL - case 229: + case 231: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1464 +//line sql.y:1473 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Fulltext: true, Unique: false} } yyVAL.union = yyLOCAL - case 230: + case 232: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1468 +//line sql.y:1477 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent(yyDollar[4].str), Unique: true} } yyVAL.union = yyLOCAL - case 231: + case 233: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1472 +//line sql.y:1481 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(yyDollar[2].str), Unique: false} } yyVAL.union = yyLOCAL - case 232: + case 234: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1477 +//line sql.y:1486 { yyVAL.str = "" } - case 233: + case 235: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1481 +//line sql.y:1490 { yyVAL.str = yyDollar[2].str } - case 234: + case 236: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1487 +//line sql.y:1496 { yyVAL.str = string(yyDollar[1].str) } - case 235: + case 237: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1491 +//line sql.y:1500 { yyVAL.str = string(yyDollar[1].str) } - case 236: + case 238: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1495 +//line sql.y:1504 { yyVAL.str = string(yyDollar[1].str) } - case 237: + case 239: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1502 +//line sql.y:1511 { yyVAL.str = string(yyDollar[1].str) } - case 238: + case 240: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1506 +//line sql.y:1515 { yyVAL.str = string(yyDollar[1].str) } - case 239: + case 241: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1511 +//line sql.y:1520 { yyVAL.str = "key" } - case 240: + case 242: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1515 +//line sql.y:1524 { yyVAL.str = yyDollar[1].str } - case 241: + case 243: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1521 +//line sql.y:1530 { yyVAL.str = string(yyDollar[1].str) } - case 242: + case 244: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1525 +//line sql.y:1534 { yyVAL.str = string(yyDollar[1].str) } - case 243: + case 245: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1530 +//line sql.y:1539 { yyVAL.str = "" } - case 244: + case 246: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1534 +//line sql.y:1543 { yyVAL.str = string(yyDollar[1].colIdent.String()) } - case 245: + case 247: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexColumn -//line sql.y:1540 +//line sql.y:1549 { yyLOCAL = []*IndexColumn{yyDollar[1].indexColumnUnion()} } yyVAL.union = yyLOCAL - case 246: + case 248: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1544 +//line sql.y:1553 { yySLICE := (*[]*IndexColumn)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].indexColumnUnion()) } - case 247: + case 249: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexColumn -//line sql.y:1550 +//line sql.y:1559 { yyLOCAL = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].literalUnion(), Direction: yyDollar[3].orderDirectionUnion()} } yyVAL.union = yyLOCAL - case 248: + case 250: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1556 +//line sql.y:1565 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 249: + case 251: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1560 +//line sql.y:1569 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 250: + case 252: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1566 +//line sql.y:1575 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 251: + case 253: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1570 +//line sql.y:1579 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 252: + case 254: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1576 +//line sql.y:1585 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion()} } yyVAL.union = yyLOCAL - case 253: + case 255: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1580 +//line sql.y:1589 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnDelete: yyDollar[12].ReferenceActionUnion()} } yyVAL.union = yyLOCAL - case 254: + case 256: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1584 +//line sql.y:1593 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnUpdate: yyDollar[12].ReferenceActionUnion()} } yyVAL.union = yyLOCAL - case 255: + case 257: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1588 +//line sql.y:1597 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnDelete: yyDollar[12].ReferenceActionUnion(), OnUpdate: yyDollar[13].ReferenceActionUnion()} } yyVAL.union = yyLOCAL - case 256: + case 258: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1594 +//line sql.y:1603 { yyLOCAL = &CheckConstraintDefinition{Expr: yyDollar[3].exprUnion(), Enforced: yyDollar[5].booleanUnion()} } yyVAL.union = yyLOCAL - case 257: + case 259: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1600 +//line sql.y:1609 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } yyVAL.union = yyLOCAL - case 258: + case 260: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1606 +//line sql.y:1615 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } yyVAL.union = yyLOCAL - case 259: + case 261: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1612 +//line sql.y:1621 { yyLOCAL = Restrict } yyVAL.union = yyLOCAL - case 260: + case 262: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1616 +//line sql.y:1625 { yyLOCAL = Cascade } yyVAL.union = yyLOCAL - case 261: + case 263: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1620 +//line sql.y:1629 { yyLOCAL = NoAction } yyVAL.union = yyLOCAL - case 262: + case 264: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1624 +//line sql.y:1633 { yyLOCAL = SetDefault } yyVAL.union = yyLOCAL - case 263: + case 265: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1628 +//line sql.y:1637 { yyLOCAL = SetNull } yyVAL.union = yyLOCAL - case 264: + case 266: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1633 +//line sql.y:1642 { yyVAL.str = "" } - case 265: + case 267: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1637 +//line sql.y:1646 { yyVAL.str = string(yyDollar[1].str) } - case 266: + case 268: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1641 +//line sql.y:1650 { yyVAL.str = string(yyDollar[1].str) } - case 267: + case 269: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1646 +//line sql.y:1655 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 268: + case 270: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1650 +//line sql.y:1659 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 269: + case 271: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:1654 +//line sql.y:1663 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 270: + case 272: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1659 +//line sql.y:1668 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 271: + case 273: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1663 +//line sql.y:1672 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 272: + case 274: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1669 +//line sql.y:1678 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 273: + case 275: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1673 +//line sql.y:1682 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableOptionUnion()) } - case 274: + case 276: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1677 +//line sql.y:1686 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) } - case 275: + case 277: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1683 +//line sql.y:1692 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 276: + case 278: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1687 +//line sql.y:1696 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) } - case 277: + case 279: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1693 +//line sql.y:1702 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 278: + case 280: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1697 +//line sql.y:1706 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 279: + case 281: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1701 +//line sql.y:1710 { yyLOCAL = &TableOption{Name: (string(yyDollar[2].str)), String: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 280: + case 282: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1705 +//line sql.y:1714 { yyLOCAL = &TableOption{Name: string(yyDollar[2].str), String: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 281: + case 283: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1709 +//line sql.y:1718 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 282: + case 284: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1713 +//line sql.y:1722 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 283: + case 285: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1717 +//line sql.y:1726 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 284: + case 286: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1721 +//line sql.y:1730 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 285: + case 287: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1725 +//line sql.y:1734 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 286: + case 288: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1729 +//line sql.y:1738 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 287: + case 289: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1733 +//line sql.y:1742 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 288: + case 290: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1737 +//line sql.y:1746 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 289: + case 291: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1741 +//line sql.y:1750 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 290: + case 292: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1745 +//line sql.y:1754 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 291: + case 293: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1749 +//line sql.y:1758 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 292: + case 294: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1753 +//line sql.y:1762 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 293: + case 295: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1757 +//line sql.y:1766 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 294: + case 296: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1761 +//line sql.y:1770 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 295: + case 297: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1765 +//line sql.y:1774 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 296: + case 298: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1769 +//line sql.y:1778 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 297: + case 299: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1773 +//line sql.y:1782 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 298: + case 300: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1777 +//line sql.y:1786 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 299: + case 301: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1781 +//line sql.y:1790 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 300: + case 302: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1785 +//line sql.y:1794 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 301: + case 303: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1789 +//line sql.y:1798 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 302: + case 304: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1793 +//line sql.y:1802 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 303: + case 305: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1797 +//line sql.y:1806 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 304: + case 306: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1801 +//line sql.y:1810 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: (yyDollar[3].colIdent.String() + yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 305: + case 307: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1805 +//line sql.y:1814 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Tables: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 306: + case 308: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1810 +//line sql.y:1819 { yyVAL.str = "" } - case 307: + case 309: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1814 +//line sql.y:1823 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 308: + case 310: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1818 +//line sql.y:1827 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 318: + case 320: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1837 +//line sql.y:1846 { yyVAL.str = yyDollar[1].colIdent.String() } - case 319: + case 321: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1841 +//line sql.y:1850 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 320: + case 322: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1845 +//line sql.y:1854 { yyVAL.str = string(yyDollar[1].str) } - case 321: + case 323: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1850 +//line sql.y:1859 { yyVAL.str = "" } - case 323: + case 325: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:1856 +//line sql.y:1865 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 324: + case 326: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:1860 +//line sql.y:1869 { yyLOCAL = yyDollar[2].colNameUnion() } yyVAL.union = yyLOCAL - case 325: + case 327: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:1865 +//line sql.y:1874 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 326: + case 328: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:1869 +//line sql.y:1878 { yyLOCAL = yyDollar[2].colNameUnion() } yyVAL.union = yyLOCAL - case 327: + case 329: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1874 +//line sql.y:1883 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 328: + case 330: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1878 +//line sql.y:1887 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL - case 329: + case 331: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1882 +//line sql.y:1891 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &OrderByOption{Cols: yyDollar[5].columnsUnion()}) } - case 330: + case 332: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1886 +//line sql.y:1895 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL - case 331: + case 333: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1890 +//line sql.y:1899 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionsUnion()...) } - case 332: + case 334: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1894 +//line sql.y:1903 { yyLOCAL = append(append(yyDollar[1].alterOptionsUnion(), yyDollar[3].alterOptionsUnion()...), &OrderByOption{Cols: yyDollar[7].columnsUnion()}) } yyVAL.union = yyLOCAL - case 333: + case 335: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1900 +//line sql.y:1909 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 334: + case 336: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1904 +//line sql.y:1913 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 335: + case 337: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1908 +//line sql.y:1917 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 336: + case 338: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1914 +//line sql.y:1923 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 337: + case 339: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1918 +//line sql.y:1927 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } yyVAL.union = yyLOCAL - case 338: + case 340: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1922 +//line sql.y:1931 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } yyVAL.union = yyLOCAL - case 339: + case 341: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1926 +//line sql.y:1935 { yyLOCAL = &AddIndexDefinition{IndexDefinition: yyDollar[2].indexDefinitionUnion()} } yyVAL.union = yyLOCAL - case 340: + case 342: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1930 +//line sql.y:1939 { yyLOCAL = &AddColumns{Columns: yyDollar[4].columnDefinitionsUnion()} } yyVAL.union = yyLOCAL - case 341: + case 343: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1934 +//line sql.y:1943 { yyLOCAL = &AddColumns{Columns: []*ColumnDefinition{yyDollar[3].columnDefinitionUnion()}, First: yyDollar[4].colNameUnion(), After: yyDollar[5].colNameUnion()} } yyVAL.union = yyLOCAL - case 342: + case 344: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1938 +//line sql.y:1947 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: true} } yyVAL.union = yyLOCAL - case 343: + case 345: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1942 +//line sql.y:1951 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 344: + case 346: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1946 +//line sql.y:1955 { yyLOCAL = &ChangeColumn{OldColumn: yyDollar[3].colNameUnion(), NewColDefinition: yyDollar[4].columnDefinitionUnion(), First: yyDollar[5].colNameUnion(), After: yyDollar[6].colNameUnion()} } yyVAL.union = yyLOCAL - case 345: + case 347: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1950 +//line sql.y:1959 { yyLOCAL = &ModifyColumn{NewColDefinition: yyDollar[3].columnDefinitionUnion(), First: yyDollar[4].colNameUnion(), After: yyDollar[5].colNameUnion()} } yyVAL.union = yyLOCAL - case 346: + case 348: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1954 +//line sql.y:1963 { yyLOCAL = &AlterCharset{CharacterSet: yyDollar[4].str, Collate: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 347: + case 349: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1958 +//line sql.y:1967 { yyLOCAL = &KeyState{Enable: false} } yyVAL.union = yyLOCAL - case 348: + case 350: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1962 +//line sql.y:1971 { yyLOCAL = &KeyState{Enable: true} } yyVAL.union = yyLOCAL - case 349: + case 351: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1966 +//line sql.y:1975 { yyLOCAL = &TablespaceOperation{Import: false} } yyVAL.union = yyLOCAL - case 350: + case 352: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1970 +//line sql.y:1979 { yyLOCAL = &TablespaceOperation{Import: true} } yyVAL.union = yyLOCAL - case 351: + case 353: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1974 +//line sql.y:1983 { yyLOCAL = &DropColumn{Name: yyDollar[3].colNameUnion()} } yyVAL.union = yyLOCAL - case 352: + case 354: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1978 +//line sql.y:1987 { yyLOCAL = &DropKey{Type: NormalKeyType, Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 353: + case 355: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1982 +//line sql.y:1991 { yyLOCAL = &DropKey{Type: PrimaryKeyType} } yyVAL.union = yyLOCAL - case 354: + case 356: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1986 +//line sql.y:1995 { yyLOCAL = &DropKey{Type: ForeignKeyType, Name: yyDollar[4].colIdent} } yyVAL.union = yyLOCAL - case 355: + case 357: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1990 +//line sql.y:1999 { yyLOCAL = &Force{} } yyVAL.union = yyLOCAL - case 356: + case 358: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1994 +//line sql.y:2003 { yyLOCAL = &RenameTableName{Table: yyDollar[3].tableName} } yyVAL.union = yyLOCAL - case 357: + case 359: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1998 +//line sql.y:2007 { yyLOCAL = &RenameIndex{OldName: yyDollar[3].colIdent, NewName: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 358: + case 360: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2004 +//line sql.y:2013 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 359: + case 361: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2008 +//line sql.y:2017 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 360: + case 362: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2014 +//line sql.y:2023 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 361: + case 363: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2018 +//line sql.y:2027 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 362: + case 364: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2022 +//line sql.y:2031 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 363: + case 365: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2026 +//line sql.y:2035 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.union = yyLOCAL - case 364: + case 366: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2030 +//line sql.y:2039 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.union = yyLOCAL - case 365: + case 367: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2034 +//line sql.y:2043 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.union = yyLOCAL - case 366: + case 368: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2038 +//line sql.y:2047 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.union = yyLOCAL - case 367: + case 369: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2042 +//line sql.y:2051 { yyLOCAL = &Validation{With: true} } yyVAL.union = yyLOCAL - case 368: + case 370: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2046 +//line sql.y:2055 { yyLOCAL = &Validation{With: false} } yyVAL.union = yyLOCAL - case 369: + case 371: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2052 +//line sql.y:2061 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 370: + case 372: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2058 +//line sql.y:2067 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8262,10 +8295,10 @@ yydefault: yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 371: + case 373: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2065 +//line sql.y:2074 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8273,28 +8306,28 @@ yydefault: yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 372: + case 374: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2072 +//line sql.y:2081 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[2].partSpecUnion() yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 373: + case 375: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL Statement -//line sql.y:2078 +//line sql.y:2087 { yyLOCAL = &AlterView{ViewName: yyDollar[7].tableName.ToViewName(), Algorithm: yyDollar[3].str, Definer: yyDollar[4].str, Security: yyDollar[5].str, Columns: yyDollar[8].columnsUnion(), Select: yyDollar[10].selStmtUnion(), CheckOption: yyDollar[11].str} } yyVAL.union = yyLOCAL - case 374: + case 376: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2082 +//line sql.y:2091 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8302,10 +8335,10 @@ yydefault: yyLOCAL = yyDollar[1].alterDatabaseUnion() } yyVAL.union = yyLOCAL - case 375: + case 377: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2089 +//line sql.y:2098 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8313,10 +8346,10 @@ yydefault: yyLOCAL = yyDollar[1].alterDatabaseUnion() } yyVAL.union = yyLOCAL - case 376: + case 378: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2096 +//line sql.y:2105 { yyLOCAL = &AlterVschema{ Action: CreateVindexDDLAction, @@ -8329,10 +8362,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 377: + case 379: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2108 +//line sql.y:2117 { yyLOCAL = &AlterVschema{ Action: DropVindexDDLAction, @@ -8343,26 +8376,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 378: + case 380: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2118 +//line sql.y:2127 { yyLOCAL = &AlterVschema{Action: AddVschemaTableDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 379: + case 381: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2122 +//line sql.y:2131 { yyLOCAL = &AlterVschema{Action: DropVschemaTableDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 380: + case 382: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL Statement -//line sql.y:2126 +//line sql.y:2135 { yyLOCAL = &AlterVschema{ Action: AddColVindexDDLAction, @@ -8376,10 +8409,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 381: + case 383: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2139 +//line sql.y:2148 { yyLOCAL = &AlterVschema{ Action: DropColVindexDDLAction, @@ -8390,18 +8423,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 382: + case 384: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2149 +//line sql.y:2158 { yyLOCAL = &AlterVschema{Action: AddSequenceDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 383: + case 385: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Statement -//line sql.y:2153 +//line sql.y:2162 { yyLOCAL = &AlterVschema{ Action: AddAutoIncDDLAction, @@ -8413,10 +8446,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 384: + case 386: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2164 +//line sql.y:2173 { yyLOCAL = &AlterMigration{ Type: RetryMigrationType, @@ -8424,10 +8457,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 385: + case 387: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2171 +//line sql.y:2180 { yyLOCAL = &AlterMigration{ Type: CompleteMigrationType, @@ -8435,10 +8468,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 386: + case 388: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2178 +//line sql.y:2187 { yyLOCAL = &AlterMigration{ Type: CancelMigrationType, @@ -8446,282 +8479,282 @@ yydefault: } } yyVAL.union = yyLOCAL - case 387: + case 389: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2185 +//line sql.y:2194 { yyLOCAL = &AlterMigration{ Type: CancelAllMigrationType, } } yyVAL.union = yyLOCAL - case 388: + case 390: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2193 +//line sql.y:2202 { yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}} } yyVAL.union = yyLOCAL - case 389: + case 391: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2197 +//line sql.y:2206 { yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 390: + case 392: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2201 +//line sql.y:2210 { yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()} } yyVAL.union = yyLOCAL - case 391: + case 393: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2205 +//line sql.y:2214 { yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 392: + case 394: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2209 +//line sql.y:2218 { yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true} } yyVAL.union = yyLOCAL - case 393: + case 395: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2213 +//line sql.y:2222 { yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 394: + case 396: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2217 +//line sql.y:2226 { yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true} } yyVAL.union = yyLOCAL - case 395: + case 397: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2221 +//line sql.y:2230 { yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 396: + case 398: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2225 +//line sql.y:2234 { yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true} } yyVAL.union = yyLOCAL - case 397: + case 399: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2229 +//line sql.y:2238 { yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 398: + case 400: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2233 +//line sql.y:2242 { yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].colIdent}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()} } yyVAL.union = yyLOCAL - case 399: + case 401: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2237 +//line sql.y:2246 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 400: + case 402: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2241 +//line sql.y:2250 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true} } yyVAL.union = yyLOCAL - case 401: + case 403: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2245 +//line sql.y:2254 { yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 402: + case 404: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2249 +//line sql.y:2258 { yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true} } yyVAL.union = yyLOCAL - case 403: + case 405: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2253 +//line sql.y:2262 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 404: + case 406: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2257 +//line sql.y:2266 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true} } yyVAL.union = yyLOCAL - case 405: + case 407: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2261 +//line sql.y:2270 { yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 406: + case 408: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2265 +//line sql.y:2274 { yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true} } yyVAL.union = yyLOCAL - case 407: + case 409: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2269 +//line sql.y:2278 { yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 408: + case 410: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2273 +//line sql.y:2282 { yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true} } yyVAL.union = yyLOCAL - case 409: + case 411: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2277 +//line sql.y:2286 { yyLOCAL = &PartitionSpec{Action: UpgradeAction} } yyVAL.union = yyLOCAL - case 410: + case 412: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2282 +//line sql.y:2291 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 411: + case 413: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2286 +//line sql.y:2295 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 412: + case 414: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2290 +//line sql.y:2299 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 413: + case 415: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:2297 +//line sql.y:2306 { yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()} } yyVAL.union = yyLOCAL - case 414: + case 416: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2301 +//line sql.y:2310 { yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].partDefUnion()) } - case 415: + case 417: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2307 +//line sql.y:2316 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 416: + case 418: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2311 +//line sql.y:2320 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} } yyVAL.union = yyLOCAL - case 417: + case 419: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2317 +//line sql.y:2326 { yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()} } yyVAL.union = yyLOCAL - case 418: + case 420: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*RenameTablePair -//line sql.y:2323 +//line sql.y:2332 { yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}} } yyVAL.union = yyLOCAL - case 419: + case 421: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2327 +//line sql.y:2336 { yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName}) } - case 420: + case 422: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2333 +//line sql.y:2342 { yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs), Temp: yyDollar[3].booleanUnion()} } yyVAL.union = yyLOCAL - case 421: + case 423: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2337 +//line sql.y:2346 { // Change this to an alter statement if yyDollar[4].colIdent.Lowered() == "primary" { @@ -8731,387 +8764,387 @@ yydefault: } } yyVAL.union = yyLOCAL - case 422: + case 424: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2346 +//line sql.y:2355 { yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), IfExists: yyDollar[4].booleanUnion()} } yyVAL.union = yyLOCAL - case 423: + case 425: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2350 +//line sql.y:2359 { yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs), DBName: yyDollar[5].tableIdent, IfExists: yyDollar[4].booleanUnion()} } yyVAL.union = yyLOCAL - case 424: + case 426: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2356 +//line sql.y:2365 { yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName} } yyVAL.union = yyLOCAL - case 425: + case 427: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2360 +//line sql.y:2369 { yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName} } yyVAL.union = yyLOCAL - case 426: + case 428: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2365 +//line sql.y:2374 { yyLOCAL = &OtherRead{} } yyVAL.union = yyLOCAL - case 427: + case 429: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2371 +//line sql.y:2380 { yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 428: + case 430: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2375 +//line sql.y:2384 { yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 429: + case 431: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2379 +//line sql.y:2388 { yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 430: + case 432: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2383 +//line sql.y:2392 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 431: + case 433: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2387 +//line sql.y:2396 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 432: + case 434: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2391 +//line sql.y:2400 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 433: + case 435: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2395 +//line sql.y:2404 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 434: + case 436: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2399 +//line sql.y:2408 { yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 435: + case 437: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2403 +//line sql.y:2412 { yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 436: + case 438: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2407 +//line sql.y:2416 { yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 437: + case 439: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2411 +//line sql.y:2420 { yyLOCAL = &Show{&ShowBasic{Command: Privilege}} } yyVAL.union = yyLOCAL - case 438: + case 440: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2415 +//line sql.y:2424 { yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 439: + case 441: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2419 +//line sql.y:2428 { yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 440: + case 442: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2423 +//line sql.y:2432 { yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 441: + case 443: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2427 +//line sql.y:2436 { yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 442: + case 444: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2431 +//line sql.y:2440 { yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 443: + case 445: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2435 +//line sql.y:2444 { yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 444: + case 446: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2439 +//line sql.y:2448 { yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 445: + case 447: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2443 +//line sql.y:2452 { yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].tableIdent, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 446: + case 448: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2447 +//line sql.y:2456 { yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 447: + case 449: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2451 +//line sql.y:2460 { yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 448: + case 450: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2455 +//line sql.y:2464 { yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 449: + case 451: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2459 +//line sql.y:2468 { yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 450: + case 452: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2463 +//line sql.y:2472 { yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 451: + case 453: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2467 +//line sql.y:2476 { yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 452: + case 454: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2471 +//line sql.y:2480 { yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 453: + case 455: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2475 +//line sql.y:2484 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 454: + case 456: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2479 +//line sql.y:2488 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].colIdent.String()), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 455: + case 457: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2483 +//line sql.y:2492 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 456: + case 458: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2487 +//line sql.y:2496 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 457: + case 459: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2491 +//line sql.y:2500 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 458: + case 460: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2495 +//line sql.y:2504 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 459: + case 461: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2499 +//line sql.y:2508 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 460: + case 462: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2503 +//line sql.y:2512 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 461: + case 463: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2507 +//line sql.y:2516 { yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].tableIdent}} } yyVAL.union = yyLOCAL - case 462: + case 464: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2511 +//line sql.y:2520 { yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].tableIdent}} } yyVAL.union = yyLOCAL - case 463: + case 465: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2515 +//line sql.y:2524 { showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilterUnion()} yyLOCAL = &Show{&ShowLegacy{Scope: VitessMetadataScope, Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt}} } yyVAL.union = yyLOCAL - case 464: + case 466: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2520 +//line sql.y:2529 { yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL - case 465: + case 467: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2524 +//line sql.y:2533 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 466: + case 468: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2528 +//line sql.y:2537 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 467: + case 469: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2532 +//line sql.y:2541 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), OnTable: yyDollar[5].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 468: + case 470: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2536 +//line sql.y:2545 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 469: + case 471: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2541 +//line sql.y:2550 { // This should probably be a different type (ShowVitessTopoOpt), but // just getting the thing working for now @@ -9119,1204 +9152,1204 @@ yydefault: yyLOCAL = &Show{&ShowLegacy{Type: yyDollar[2].str, ShowTablesOpt: showTablesOpt}} } yyVAL.union = yyLOCAL - case 470: + case 472: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2555 +//line sql.y:2564 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].colIdent.String()), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 471: + case 473: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2559 +//line sql.y:2568 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 472: + case 474: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2563 +//line sql.y:2572 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 473: + case 475: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2569 +//line sql.y:2578 { yyVAL.str = string(yyDollar[1].str) } - case 474: + case 476: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2573 +//line sql.y:2582 { yyVAL.str = string(yyDollar[1].str) } - case 475: + case 477: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2579 +//line sql.y:2588 { yyVAL.str = "" } - case 476: + case 478: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2583 +//line sql.y:2592 { yyVAL.str = "extended " } - case 477: + case 479: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2589 +//line sql.y:2598 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 478: + case 480: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2593 +//line sql.y:2602 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 479: + case 481: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2599 +//line sql.y:2608 { yyVAL.str = string(yyDollar[1].str) } - case 480: + case 482: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2603 +//line sql.y:2612 { yyVAL.str = string(yyDollar[1].str) } - case 481: + case 483: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2609 +//line sql.y:2618 { yyVAL.tableIdent = NewTableIdent("") } - case 482: + case 484: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2613 +//line sql.y:2622 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 483: + case 485: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2617 +//line sql.y:2626 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 484: + case 486: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2623 +//line sql.y:2632 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 485: + case 487: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2627 +//line sql.y:2636 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 486: + case 488: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2631 +//line sql.y:2640 { yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 487: + case 489: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2637 +//line sql.y:2646 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 488: + case 490: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2641 +//line sql.y:2650 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 489: + case 491: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2647 +//line sql.y:2656 { yyVAL.empty = struct{}{} } - case 490: + case 492: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2651 +//line sql.y:2660 { yyVAL.empty = struct{}{} } - case 491: + case 493: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2655 +//line sql.y:2664 { yyVAL.empty = struct{}{} } - case 492: + case 494: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2661 +//line sql.y:2670 { yyLOCAL = &Use{DBName: yyDollar[2].tableIdent} } yyVAL.union = yyLOCAL - case 493: + case 495: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2665 +//line sql.y:2674 { yyLOCAL = &Use{DBName: TableIdent{v: ""}} } yyVAL.union = yyLOCAL - case 494: + case 496: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2671 +//line sql.y:2680 { yyLOCAL = &Begin{} } yyVAL.union = yyLOCAL - case 495: + case 497: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2675 +//line sql.y:2684 { yyLOCAL = &Begin{} } yyVAL.union = yyLOCAL - case 496: + case 498: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2681 +//line sql.y:2690 { yyLOCAL = &Commit{} } yyVAL.union = yyLOCAL - case 497: + case 499: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2687 +//line sql.y:2696 { yyLOCAL = &Rollback{} } yyVAL.union = yyLOCAL - case 498: + case 500: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2691 +//line sql.y:2700 { yyLOCAL = &SRollback{Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 499: + case 501: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2696 +//line sql.y:2705 { yyVAL.empty = struct{}{} } - case 500: + case 502: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2698 +//line sql.y:2707 { yyVAL.empty = struct{}{} } - case 501: + case 503: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2701 +//line sql.y:2710 { yyVAL.empty = struct{}{} } - case 502: + case 504: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2703 +//line sql.y:2712 { yyVAL.empty = struct{}{} } - case 503: + case 505: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2708 +//line sql.y:2717 { yyLOCAL = &Savepoint{Name: yyDollar[2].colIdent} } yyVAL.union = yyLOCAL - case 504: + case 506: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2714 +//line sql.y:2723 { yyLOCAL = &Release{Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 505: + case 507: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2719 +//line sql.y:2728 { yyLOCAL = EmptyType } yyVAL.union = yyLOCAL - case 506: + case 508: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2723 +//line sql.y:2732 { yyLOCAL = JSONType } yyVAL.union = yyLOCAL - case 507: + case 509: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2727 +//line sql.y:2736 { yyLOCAL = TreeType } yyVAL.union = yyLOCAL - case 508: + case 510: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2731 +//line sql.y:2740 { yyLOCAL = VitessType } yyVAL.union = yyLOCAL - case 509: + case 511: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2735 +//line sql.y:2744 { yyLOCAL = TraditionalType } yyVAL.union = yyLOCAL - case 510: + case 512: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2739 +//line sql.y:2748 { yyLOCAL = AnalyzeType } yyVAL.union = yyLOCAL - case 511: + case 513: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2745 +//line sql.y:2754 { yyVAL.str = yyDollar[1].str } - case 512: + case 514: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2749 +//line sql.y:2758 { yyVAL.str = yyDollar[1].str } - case 513: + case 515: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2753 +//line sql.y:2762 { yyVAL.str = yyDollar[1].str } - case 514: + case 516: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2759 +//line sql.y:2768 { yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 515: + case 517: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2763 +//line sql.y:2772 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 516: + case 518: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2767 +//line sql.y:2776 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 517: + case 519: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2771 +//line sql.y:2780 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 518: + case 520: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2776 +//line sql.y:2785 { yyVAL.str = "" } - case 519: + case 521: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2780 +//line sql.y:2789 { yyVAL.str = yyDollar[1].colIdent.val } - case 520: + case 522: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2784 +//line sql.y:2793 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 521: + case 523: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2790 +//line sql.y:2799 { yyLOCAL = &ExplainTab{Table: yyDollar[2].tableName, Wild: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 522: + case 524: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2794 +//line sql.y:2803 { yyLOCAL = &ExplainStmt{Type: yyDollar[2].explainTypeUnion(), Statement: yyDollar[3].statementUnion()} } yyVAL.union = yyLOCAL - case 523: + case 525: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2800 +//line sql.y:2809 { yyLOCAL = &OtherAdmin{} } yyVAL.union = yyLOCAL - case 524: + case 526: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2804 +//line sql.y:2813 { yyLOCAL = &OtherAdmin{} } yyVAL.union = yyLOCAL - case 525: + case 527: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2810 +//line sql.y:2819 { yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()} } yyVAL.union = yyLOCAL - case 526: + case 528: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableAndLockTypes -//line sql.y:2816 +//line sql.y:2825 { yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()} } yyVAL.union = yyLOCAL - case 527: + case 529: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2820 +//line sql.y:2829 { yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion()) } - case 528: + case 530: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *TableAndLockType -//line sql.y:2826 +//line sql.y:2835 { yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()} } yyVAL.union = yyLOCAL - case 529: + case 531: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2832 +//line sql.y:2841 { yyLOCAL = Read } yyVAL.union = yyLOCAL - case 530: + case 532: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:2836 +//line sql.y:2845 { yyLOCAL = ReadLocal } yyVAL.union = yyLOCAL - case 531: + case 533: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2840 +//line sql.y:2849 { yyLOCAL = Write } yyVAL.union = yyLOCAL - case 532: + case 534: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:2844 +//line sql.y:2853 { yyLOCAL = LowPriorityWrite } yyVAL.union = yyLOCAL - case 533: + case 535: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2850 +//line sql.y:2859 { yyLOCAL = &UnlockTables{} } yyVAL.union = yyLOCAL - case 534: + case 536: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2856 +//line sql.y:2865 { yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs), UUID: string(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 535: + case 537: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2862 +//line sql.y:2871 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs} } yyVAL.union = yyLOCAL - case 536: + case 538: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2866 +//line sql.y:2875 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()} } yyVAL.union = yyLOCAL - case 537: + case 539: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2870 +//line sql.y:2879 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true} } yyVAL.union = yyLOCAL - case 538: + case 540: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2874 +//line sql.y:2883 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 539: + case 541: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2878 +//line sql.y:2887 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true} } yyVAL.union = yyLOCAL - case 540: + case 542: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2882 +//line sql.y:2891 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true} } yyVAL.union = yyLOCAL - case 541: + case 543: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2888 +//line sql.y:2897 { yyVAL.strs = []string{yyDollar[1].str} } - case 542: + case 544: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2892 +//line sql.y:2901 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str) } - case 543: + case 545: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2898 +//line sql.y:2907 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 544: + case 546: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2902 +//line sql.y:2911 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 545: + case 547: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2906 +//line sql.y:2915 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 546: + case 548: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2910 +//line sql.y:2919 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 547: + case 549: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2914 +//line sql.y:2923 { yyVAL.str = string(yyDollar[1].str) } - case 548: + case 550: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2918 +//line sql.y:2927 { yyVAL.str = string(yyDollar[1].str) } - case 549: + case 551: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2922 +//line sql.y:2931 { yyVAL.str = string(yyDollar[1].str) } - case 550: + case 552: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2926 +//line sql.y:2935 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str } - case 551: + case 553: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2930 +//line sql.y:2939 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 552: + case 554: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2934 +//line sql.y:2943 { yyVAL.str = string(yyDollar[1].str) } - case 553: + case 555: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2938 +//line sql.y:2947 { yyVAL.str = string(yyDollar[1].str) } - case 554: + case 556: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2942 +//line sql.y:2951 { yyVAL.str = string(yyDollar[1].str) } - case 555: + case 557: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2947 +//line sql.y:2956 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 556: + case 558: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2951 +//line sql.y:2960 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 557: + case 559: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2955 +//line sql.y:2964 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 558: + case 560: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2960 +//line sql.y:2969 { yyVAL.str = "" } - case 559: + case 561: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2964 +//line sql.y:2973 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].colIdent.String() } - case 560: + case 562: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2969 +//line sql.y:2978 { setAllowComments(yylex, true) } - case 561: + case 563: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2973 +//line sql.y:2982 { yyVAL.strs = yyDollar[2].strs setAllowComments(yylex, false) } - case 562: + case 564: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2979 +//line sql.y:2988 { yyVAL.strs = nil } - case 563: + case 565: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2983 +//line sql.y:2992 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str) } - case 564: + case 566: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2989 +//line sql.y:2998 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 565: + case 567: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2993 +//line sql.y:3002 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 566: + case 568: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2997 +//line sql.y:3006 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 567: + case 569: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3002 +//line sql.y:3011 { yyVAL.str = "" } - case 568: + case 570: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3006 +//line sql.y:3015 { yyVAL.str = SQLNoCacheStr } - case 569: + case 571: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3010 +//line sql.y:3019 { yyVAL.str = SQLCacheStr } - case 570: + case 572: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3015 +//line sql.y:3024 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 571: + case 573: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3019 +//line sql.y:3028 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 572: + case 574: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3023 +//line sql.y:3032 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 573: + case 575: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3028 +//line sql.y:3037 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 574: + case 576: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3032 +//line sql.y:3041 { yyLOCAL = yyDollar[1].selectExprsUnion() } yyVAL.union = yyLOCAL - case 575: + case 577: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3037 +//line sql.y:3046 { yyVAL.strs = nil } - case 576: + case 578: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3041 +//line sql.y:3050 { yyVAL.strs = []string{yyDollar[1].str} } - case 577: + case 579: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3045 +//line sql.y:3054 { // TODO: This is a hack since I couldn't get it to work in a nicer way. I got 'conflicts: 8 shift/reduce' yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str} } - case 578: + case 580: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3049 +//line sql.y:3058 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str} } - case 579: + case 581: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3053 +//line sql.y:3062 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str, yyDollar[4].str} } - case 580: + case 582: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3059 +//line sql.y:3068 { yyVAL.str = SQLNoCacheStr } - case 581: + case 583: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3063 +//line sql.y:3072 { yyVAL.str = SQLCacheStr } - case 582: + case 584: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3067 +//line sql.y:3076 { yyVAL.str = DistinctStr } - case 583: + case 585: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3071 +//line sql.y:3080 { yyVAL.str = DistinctStr } - case 584: + case 586: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3075 +//line sql.y:3084 { yyVAL.str = StraightJoinHint } - case 585: + case 587: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3079 +//line sql.y:3088 { yyVAL.str = SQLCalcFoundRowsStr } - case 586: + case 588: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3083 +//line sql.y:3092 { yyVAL.str = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway } - case 587: + case 589: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3089 +//line sql.y:3098 { yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()} } yyVAL.union = yyLOCAL - case 588: + case 590: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3093 +//line sql.y:3102 { yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion()) } - case 589: + case 591: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3099 +//line sql.y:3108 { yyLOCAL = &StarExpr{} } yyVAL.union = yyLOCAL - case 590: + case 592: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3103 +//line sql.y:3112 { yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].colIdent} } yyVAL.union = yyLOCAL - case 591: + case 593: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3107 +//line sql.y:3116 { yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } yyVAL.union = yyLOCAL - case 592: + case 594: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3111 +//line sql.y:3120 { yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL - case 593: + case 595: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3116 +//line sql.y:3125 { yyVAL.colIdent = ColIdent{} } - case 594: + case 596: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3120 +//line sql.y:3129 { yyVAL.colIdent = yyDollar[1].colIdent } - case 595: + case 597: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3124 +//line sql.y:3133 { yyVAL.colIdent = yyDollar[2].colIdent } - case 597: + case 599: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3131 +//line sql.y:3140 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 598: + case 600: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3136 +//line sql.y:3145 { yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } yyVAL.union = yyLOCAL - case 599: + case 601: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3140 +//line sql.y:3149 { yyLOCAL = yyDollar[2].tableExprsUnion() } yyVAL.union = yyLOCAL - case 600: + case 602: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3146 +//line sql.y:3155 { yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()} } yyVAL.union = yyLOCAL - case 601: + case 603: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3150 +//line sql.y:3159 { yySLICE := (*TableExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion()) } - case 604: + case 606: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3160 +//line sql.y:3169 { yyLOCAL = yyDollar[1].aliasedTableNameUnion() } yyVAL.union = yyLOCAL - case 605: + case 607: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3164 +//line sql.y:3173 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].tableIdent} } yyVAL.union = yyLOCAL - case 606: + case 608: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3168 +//line sql.y:3177 { yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()} } yyVAL.union = yyLOCAL - case 607: + case 609: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:3174 +//line sql.y:3183 { yyLOCAL = &DerivedTable{yyDollar[2].selStmtUnion()} } yyVAL.union = yyLOCAL - case 608: + case 610: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3180 +//line sql.y:3189 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHintsUnion()} } yyVAL.union = yyLOCAL - case 609: + case 611: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3184 +//line sql.y:3193 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHintsUnion()} } yyVAL.union = yyLOCAL - case 610: + case 612: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:3189 +//line sql.y:3198 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 611: + case 613: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:3193 +//line sql.y:3202 { yyLOCAL = yyDollar[2].columnsUnion() } yyVAL.union = yyLOCAL - case 612: + case 614: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:3199 +//line sql.y:3208 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 613: + case 615: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3203 +//line sql.y:3212 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 614: + case 616: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Partitions -//line sql.y:3209 +//line sql.y:3218 { yyLOCAL = Partitions{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 615: + case 617: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3213 +//line sql.y:3222 { yySLICE := (*Partitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 616: + case 618: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3226 +//line sql.y:3235 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 617: + case 619: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3230 +//line sql.y:3239 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 618: + case 620: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3234 +//line sql.y:3243 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 619: + case 621: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3238 +//line sql.y:3247 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()} } yyVAL.union = yyLOCAL - case 620: + case 622: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3244 +//line sql.y:3253 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } - case 621: + case 623: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3246 +//line sql.y:3255 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columnsUnion()} } - case 622: + case 624: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3250 +//line sql.y:3259 { yyVAL.joinCondition = JoinCondition{} } - case 623: + case 625: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3252 +//line sql.y:3261 { yyVAL.joinCondition = yyDollar[1].joinCondition } - case 624: + case 626: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3256 +//line sql.y:3265 { yyVAL.joinCondition = JoinCondition{} } - case 625: + case 627: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3258 +//line sql.y:3267 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } - case 626: + case 628: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3261 +//line sql.y:3270 { yyVAL.empty = struct{}{} } - case 627: + case 629: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3263 +//line sql.y:3272 { yyVAL.empty = struct{}{} } - case 628: + case 630: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3266 +//line sql.y:3275 { yyVAL.tableIdent = NewTableIdent("") } - case 629: + case 631: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3270 +//line sql.y:3279 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 630: + case 632: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3274 +//line sql.y:3283 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 632: + case 634: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3281 +//line sql.y:3290 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 633: + case 635: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3287 +//line sql.y:3296 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 634: + case 636: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3291 +//line sql.y:3300 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 635: + case 637: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3295 +//line sql.y:3304 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 636: + case 638: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3301 +//line sql.y:3310 { yyLOCAL = StraightJoinType } yyVAL.union = yyLOCAL - case 637: + case 639: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3307 +//line sql.y:3316 { yyLOCAL = LeftJoinType } yyVAL.union = yyLOCAL - case 638: + case 640: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3311 +//line sql.y:3320 { yyLOCAL = LeftJoinType } yyVAL.union = yyLOCAL - case 639: + case 641: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3315 +//line sql.y:3324 { yyLOCAL = RightJoinType } yyVAL.union = yyLOCAL - case 640: + case 642: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3319 +//line sql.y:3328 { yyLOCAL = RightJoinType } yyVAL.union = yyLOCAL - case 641: + case 643: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3325 +//line sql.y:3334 { yyLOCAL = NaturalJoinType } yyVAL.union = yyLOCAL - case 642: + case 644: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3329 +//line sql.y:3338 { if yyDollar[2].joinTypeUnion() == LeftJoinType { yyLOCAL = NaturalLeftJoinType @@ -10325,668 +10358,668 @@ yydefault: } } yyVAL.union = yyLOCAL - case 643: + case 645: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3339 +//line sql.y:3348 { yyVAL.tableName = yyDollar[2].tableName } - case 644: + case 646: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3343 +//line sql.y:3352 { yyVAL.tableName = yyDollar[1].tableName } - case 645: + case 647: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3349 +//line sql.y:3358 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 646: + case 648: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3353 +//line sql.y:3362 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } - case 647: + case 649: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3359 +//line sql.y:3368 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 648: + case 650: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3364 +//line sql.y:3373 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 649: + case 651: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3368 +//line sql.y:3377 { yyLOCAL = &IndexHints{Type: UseOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 650: + case 652: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3372 +//line sql.y:3381 { yyLOCAL = &IndexHints{Type: UseOp} } yyVAL.union = yyLOCAL - case 651: + case 653: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3376 +//line sql.y:3385 { yyLOCAL = &IndexHints{Type: IgnoreOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 652: + case 654: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3380 +//line sql.y:3389 { yyLOCAL = &IndexHints{Type: ForceOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 653: + case 655: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3385 +//line sql.y:3394 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 654: + case 656: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3389 +//line sql.y:3398 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 655: + case 657: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3395 +//line sql.y:3404 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 656: + case 658: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3399 +//line sql.y:3408 { yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 657: + case 659: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3403 +//line sql.y:3412 { yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 658: + case 660: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3407 +//line sql.y:3416 { yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 659: + case 661: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3411 +//line sql.y:3420 { yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 660: + case 662: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3415 +//line sql.y:3424 { yyLOCAL = &IsExpr{Operator: yyDollar[3].isExprOperatorUnion(), Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 661: + case 663: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3419 +//line sql.y:3428 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 662: + case 664: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3423 +//line sql.y:3432 { yyLOCAL = &Default{ColName: yyDollar[2].str} } yyVAL.union = yyLOCAL - case 663: + case 665: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3429 +//line sql.y:3438 { yyVAL.str = "" } - case 664: + case 666: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3433 +//line sql.y:3442 { yyVAL.str = string(yyDollar[2].colIdent.String()) } - case 665: + case 667: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3439 +//line sql.y:3448 { yyLOCAL = BoolVal(true) } yyVAL.union = yyLOCAL - case 666: + case 668: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3443 +//line sql.y:3452 { yyLOCAL = BoolVal(false) } yyVAL.union = yyLOCAL - case 667: + case 669: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3449 +//line sql.y:3458 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 668: + case 670: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3453 +//line sql.y:3462 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()} } yyVAL.union = yyLOCAL - case 669: + case 671: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3457 +//line sql.y:3466 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()} } yyVAL.union = yyLOCAL - case 670: + case 672: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3461 +//line sql.y:3470 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 671: + case 673: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3465 +//line sql.y:3474 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 672: + case 674: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3469 +//line sql.y:3478 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 673: + case 675: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3473 +//line sql.y:3482 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 674: + case 676: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3477 +//line sql.y:3486 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: BetweenOp, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 675: + case 677: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3481 +//line sql.y:3490 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: NotBetweenOp, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 676: + case 678: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3485 +//line sql.y:3494 { yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()} } yyVAL.union = yyLOCAL - case 677: + case 679: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3491 +//line sql.y:3500 { yyLOCAL = IsNullOp } yyVAL.union = yyLOCAL - case 678: + case 680: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3495 +//line sql.y:3504 { yyLOCAL = IsNotNullOp } yyVAL.union = yyLOCAL - case 679: + case 681: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3499 +//line sql.y:3508 { yyLOCAL = IsTrueOp } yyVAL.union = yyLOCAL - case 680: + case 682: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3503 +//line sql.y:3512 { yyLOCAL = IsNotTrueOp } yyVAL.union = yyLOCAL - case 681: + case 683: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3507 +//line sql.y:3516 { yyLOCAL = IsFalseOp } yyVAL.union = yyLOCAL - case 682: + case 684: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3511 +//line sql.y:3520 { yyLOCAL = IsNotFalseOp } yyVAL.union = yyLOCAL - case 683: + case 685: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3517 +//line sql.y:3526 { yyLOCAL = EqualOp } yyVAL.union = yyLOCAL - case 684: + case 686: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3521 +//line sql.y:3530 { yyLOCAL = LessThanOp } yyVAL.union = yyLOCAL - case 685: + case 687: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3525 +//line sql.y:3534 { yyLOCAL = GreaterThanOp } yyVAL.union = yyLOCAL - case 686: + case 688: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3529 +//line sql.y:3538 { yyLOCAL = LessEqualOp } yyVAL.union = yyLOCAL - case 687: + case 689: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3533 +//line sql.y:3542 { yyLOCAL = GreaterEqualOp } yyVAL.union = yyLOCAL - case 688: + case 690: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3537 +//line sql.y:3546 { yyLOCAL = NotEqualOp } yyVAL.union = yyLOCAL - case 689: + case 691: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3541 +//line sql.y:3550 { yyLOCAL = NullSafeEqualOp } yyVAL.union = yyLOCAL - case 690: + case 692: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3546 +//line sql.y:3555 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 691: + case 693: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3550 +//line sql.y:3559 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 692: + case 694: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3556 +//line sql.y:3565 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 693: + case 695: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3560 +//line sql.y:3569 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 694: + case 696: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3564 +//line sql.y:3573 { yyLOCAL = ListArg(yyDollar[1].str[2:]) bindVariable(yylex, yyDollar[1].str[2:]) } yyVAL.union = yyLOCAL - case 695: + case 697: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Subquery -//line sql.y:3571 +//line sql.y:3580 { yyLOCAL = &Subquery{yyDollar[2].selStmtUnion()} } yyVAL.union = yyLOCAL - case 696: + case 698: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:3577 +//line sql.y:3586 { yyLOCAL = Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 697: + case 699: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3581 +//line sql.y:3590 { yySLICE := (*Exprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].exprUnion()) } - case 698: + case 700: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3587 +//line sql.y:3596 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 699: + case 701: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3591 +//line sql.y:3600 { yyLOCAL = yyDollar[1].boolValUnion() } yyVAL.union = yyLOCAL - case 700: + case 702: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3595 +//line sql.y:3604 { yyLOCAL = yyDollar[1].colNameUnion() } yyVAL.union = yyLOCAL - case 701: + case 703: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3599 +//line sql.y:3608 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 702: + case 704: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3603 +//line sql.y:3612 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 703: + case 705: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3607 +//line sql.y:3616 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 704: + case 706: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3611 +//line sql.y:3620 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 705: + case 707: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3615 +//line sql.y:3624 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 706: + case 708: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3619 +//line sql.y:3628 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 707: + case 709: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3623 +//line sql.y:3632 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 708: + case 710: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3627 +//line sql.y:3636 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 709: + case 711: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3631 +//line sql.y:3640 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 710: + case 712: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3635 +//line sql.y:3644 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 711: + case 713: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3639 +//line sql.y:3648 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 712: + case 714: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3643 +//line sql.y:3652 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 713: + case 715: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3647 +//line sql.y:3656 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 714: + case 716: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3651 +//line sql.y:3660 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 715: + case 717: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3655 +//line sql.y:3664 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONExtractOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 716: + case 718: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3659 +//line sql.y:3668 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONUnquoteExtractOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 717: + case 719: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3663 +//line sql.y:3672 { yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Charset: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 718: + case 720: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3667 +//line sql.y:3676 { yyLOCAL = &UnaryExpr{Operator: BinaryOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 719: + case 721: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3671 +//line sql.y:3680 { yyLOCAL = &UnaryExpr{Operator: UBinaryOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 720: + case 722: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3675 +//line sql.y:3684 { yyLOCAL = &UnaryExpr{Operator: Utf8Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 721: + case 723: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3679 +//line sql.y:3688 { yyLOCAL = &UnaryExpr{Operator: Utf8mb4Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 722: + case 724: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3683 +//line sql.y:3692 { yyLOCAL = &UnaryExpr{Operator: Latin1Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 723: + case 725: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3687 +//line sql.y:3696 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 724: + case 726: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3691 +//line sql.y:3700 { yyLOCAL = handleUnaryMinus(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 725: + case 727: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3695 +//line sql.y:3704 { yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 726: + case 728: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3699 +//line sql.y:3708 { yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 727: + case 729: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3703 +//line sql.y:3712 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -10995,666 +11028,666 @@ yydefault: yyLOCAL = &IntervalExpr{Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 732: + case 734: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3721 +//line sql.y:3730 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 733: + case 735: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3725 +//line sql.y:3734 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 734: + case 736: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3729 +//line sql.y:3738 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 735: + case 737: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3733 +//line sql.y:3742 { yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 736: + case 738: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3743 +//line sql.y:3752 { yyLOCAL = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 737: + case 739: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3747 +//line sql.y:3756 { yyLOCAL = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 738: + case 740: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3751 +//line sql.y:3760 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 739: + case 741: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3755 +//line sql.y:3764 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 740: + case 742: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3759 +//line sql.y:3768 { yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 741: + case 743: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3763 +//line sql.y:3772 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 742: + case 744: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3767 +//line sql.y:3776 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 743: + case 745: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3771 +//line sql.y:3780 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 744: + case 746: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3775 +//line sql.y:3784 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 745: + case 747: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:3779 +//line sql.y:3788 { yyLOCAL = &MatchExpr{Columns: yyDollar[3].selectExprsUnion(), Expr: yyDollar[7].exprUnion(), Option: yyDollar[8].matchExprOptionUnion()} } yyVAL.union = yyLOCAL - case 746: + case 748: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3783 +//line sql.y:3792 { yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].selectExprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()} } yyVAL.union = yyLOCAL - case 747: + case 749: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3787 +//line sql.y:3796 { yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 748: + case 750: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3791 +//line sql.y:3800 { yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()} } yyVAL.union = yyLOCAL - case 749: + case 751: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3795 +//line sql.y:3804 { yyLOCAL = &FuncExpr{Name: NewColIdent(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 750: + case 752: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3805 +//line sql.y:3814 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_timestamp")} } yyVAL.union = yyLOCAL - case 751: + case 753: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3809 +//line sql.y:3818 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_timestamp")} } yyVAL.union = yyLOCAL - case 752: + case 754: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3813 +//line sql.y:3822 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_time")} } yyVAL.union = yyLOCAL - case 753: + case 755: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3818 +//line sql.y:3827 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_date")} } yyVAL.union = yyLOCAL - case 754: + case 756: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3823 +//line sql.y:3832 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtime")} } yyVAL.union = yyLOCAL - case 755: + case 757: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3828 +//line sql.y:3837 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtimestamp")} } yyVAL.union = yyLOCAL - case 756: + case 758: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3834 +//line sql.y:3843 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_date")} } yyVAL.union = yyLOCAL - case 757: + case 759: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3839 +//line sql.y:3848 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_time")} } yyVAL.union = yyLOCAL - case 758: + case 760: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3844 +//line sql.y:3853 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 759: + case 761: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3848 +//line sql.y:3857 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 760: + case 762: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3852 +//line sql.y:3861 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 761: + case 763: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3857 +//line sql.y:3866 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 762: + case 764: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3862 +//line sql.y:3871 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 763: + case 765: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3867 +//line sql.y:3876 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 764: + case 766: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3871 +//line sql.y:3880 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 765: + case 767: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3875 +//line sql.y:3884 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 768: + case 770: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3885 +//line sql.y:3894 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 769: + case 771: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3895 +//line sql.y:3904 { yyLOCAL = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 770: + case 772: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3899 +//line sql.y:3908 { yyLOCAL = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 771: + case 773: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3903 +//line sql.y:3912 { yyLOCAL = &FuncExpr{Name: NewColIdent("schema"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 772: + case 774: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3907 +//line sql.y:3916 { yyLOCAL = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 773: + case 775: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3911 +//line sql.y:3920 { yyLOCAL = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 774: + case 776: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3915 +//line sql.y:3924 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 775: + case 777: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3919 +//line sql.y:3928 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 776: + case 778: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3925 +//line sql.y:3934 { yyLOCAL = NoOption } yyVAL.union = yyLOCAL - case 777: + case 779: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3929 +//line sql.y:3938 { yyLOCAL = BooleanModeOpt } yyVAL.union = yyLOCAL - case 778: + case 780: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3933 +//line sql.y:3942 { yyLOCAL = NaturalLanguageModeOpt } yyVAL.union = yyLOCAL - case 779: + case 781: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3937 +//line sql.y:3946 { yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt } yyVAL.union = yyLOCAL - case 780: + case 782: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3941 +//line sql.y:3950 { yyLOCAL = QueryExpansionOpt } yyVAL.union = yyLOCAL - case 781: + case 783: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3947 +//line sql.y:3956 { yyVAL.str = string(yyDollar[1].colIdent.String()) } - case 782: + case 784: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3951 +//line sql.y:3960 { yyVAL.str = string(yyDollar[1].str) } - case 783: + case 785: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3955 +//line sql.y:3964 { yyVAL.str = string(yyDollar[1].str) } - case 784: + case 786: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3961 +//line sql.y:3970 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 785: + case 787: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3965 +//line sql.y:3974 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Operator: CharacterSetOp} } yyVAL.union = yyLOCAL - case 786: + case 788: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3969 +//line sql.y:3978 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: string(yyDollar[3].colIdent.String())} } yyVAL.union = yyLOCAL - case 787: + case 789: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3973 +//line sql.y:3982 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 788: + case 790: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3977 +//line sql.y:3986 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 789: + case 791: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3981 +//line sql.y:3990 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length yyLOCAL.Scale = yyDollar[2].LengthScaleOption.Scale } yyVAL.union = yyLOCAL - case 790: + case 792: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3987 +//line sql.y:3996 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 791: + case 793: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3991 +//line sql.y:4000 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 792: + case 794: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3995 +//line sql.y:4004 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 793: + case 795: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3999 +//line sql.y:4008 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 794: + case 796: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4003 +//line sql.y:4012 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 795: + case 797: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4007 +//line sql.y:4016 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 796: + case 798: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4011 +//line sql.y:4020 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 797: + case 799: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4016 +//line sql.y:4025 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 798: + case 800: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4020 +//line sql.y:4029 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 799: + case 801: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4025 +//line sql.y:4034 { yyVAL.str = string("") } - case 800: + case 802: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4029 +//line sql.y:4038 { yyVAL.str = " separator " + encodeSQLString(yyDollar[2].str) } - case 801: + case 803: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*When -//line sql.y:4035 +//line sql.y:4044 { yyLOCAL = []*When{yyDollar[1].whenUnion()} } yyVAL.union = yyLOCAL - case 802: + case 804: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4039 +//line sql.y:4048 { yySLICE := (*[]*When)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].whenUnion()) } - case 803: + case 805: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *When -//line sql.y:4045 +//line sql.y:4054 { yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 804: + case 806: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4050 +//line sql.y:4059 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 805: + case 807: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4054 +//line sql.y:4063 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 806: + case 808: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ColName -//line sql.y:4060 +//line sql.y:4069 { yyLOCAL = &ColName{Name: yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 807: + case 809: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColName -//line sql.y:4064 +//line sql.y:4073 { yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 808: + case 810: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColName -//line sql.y:4068 +//line sql.y:4077 { yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 809: + case 811: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4074 +//line sql.y:4083 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 810: + case 812: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4078 +//line sql.y:4087 { yyLOCAL = NewHexLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 811: + case 813: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4082 +//line sql.y:4091 { yyLOCAL = NewBitLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 812: + case 814: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4086 +//line sql.y:4095 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 813: + case 815: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4090 +//line sql.y:4099 { yyLOCAL = NewFloatLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 814: + case 816: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4094 +//line sql.y:4103 { yyLOCAL = NewHexNumLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 815: + case 817: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4098 +//line sql.y:4107 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 816: + case 818: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4103 +//line sql.y:4112 { yyLOCAL = &NullVal{} } yyVAL.union = yyLOCAL - case 817: + case 819: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4109 +//line sql.y:4118 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -11664,707 +11697,707 @@ yydefault: yyLOCAL = NewIntLiteral("1") } yyVAL.union = yyLOCAL - case 818: + case 820: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4118 +//line sql.y:4127 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 819: + case 821: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4122 +//line sql.y:4131 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 820: + case 822: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4128 +//line sql.y:4137 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 821: + case 823: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Exprs -//line sql.y:4132 +//line sql.y:4141 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 822: + case 824: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4137 +//line sql.y:4146 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 823: + case 825: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4141 +//line sql.y:4150 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 824: + case 826: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4146 +//line sql.y:4155 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 825: + case 827: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4150 +//line sql.y:4159 { yyLOCAL = yyDollar[3].orderByUnion() } yyVAL.union = yyLOCAL - case 826: + case 828: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4156 +//line sql.y:4165 { yyLOCAL = OrderBy{yyDollar[1].orderUnion()} } yyVAL.union = yyLOCAL - case 827: + case 829: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4160 +//line sql.y:4169 { yySLICE := (*OrderBy)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].orderUnion()) } - case 828: + case 830: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Order -//line sql.y:4166 +//line sql.y:4175 { yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()} } yyVAL.union = yyLOCAL - case 829: + case 831: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4171 +//line sql.y:4180 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 830: + case 832: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4175 +//line sql.y:4184 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 831: + case 833: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4179 +//line sql.y:4188 { yyLOCAL = DescOrder } yyVAL.union = yyLOCAL - case 832: + case 834: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Limit -//line sql.y:4184 +//line sql.y:4193 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 833: + case 835: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Limit -//line sql.y:4188 +//line sql.y:4197 { yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 834: + case 836: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4192 +//line sql.y:4201 { yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 835: + case 837: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4196 +//line sql.y:4205 { yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 836: + case 838: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4201 +//line sql.y:4210 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 837: + case 839: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4205 +//line sql.y:4214 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 838: + case 840: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4209 +//line sql.y:4218 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 839: + case 841: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4213 +//line sql.y:4222 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 840: + case 842: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4217 +//line sql.y:4226 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 841: + case 843: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4224 +//line sql.y:4233 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.union = yyLOCAL - case 842: + case 844: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4228 +//line sql.y:4237 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.union = yyLOCAL - case 843: + case 845: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4232 +//line sql.y:4241 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.union = yyLOCAL - case 844: + case 846: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4236 +//line sql.y:4245 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.union = yyLOCAL - case 845: + case 847: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4242 +//line sql.y:4251 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 846: + case 848: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4246 +//line sql.y:4255 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 847: + case 849: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4250 +//line sql.y:4259 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 848: + case 850: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4255 +//line sql.y:4264 { yyVAL.str = "" } - case 849: + case 851: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4259 +//line sql.y:4268 { yyVAL.str = string(yyDollar[3].str) } - case 850: + case 852: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4263 +//line sql.y:4272 { yyVAL.str = string(yyDollar[3].str) } - case 851: + case 853: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4267 +//line sql.y:4276 { yyVAL.str = string(yyDollar[3].str) } - case 852: + case 854: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4272 +//line sql.y:4281 { yyVAL.str = "" } - case 853: + case 855: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4276 +//line sql.y:4285 { yyVAL.str = yyDollar[3].str } - case 854: + case 856: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4282 +//line sql.y:4291 { yyVAL.str = string(yyDollar[1].str) } - case 855: + case 857: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4286 +//line sql.y:4295 { yyVAL.str = string(yyDollar[1].str) } - case 856: + case 858: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4291 +//line sql.y:4300 { yyVAL.str = "" } - case 857: + case 859: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4295 +//line sql.y:4304 { yyVAL.str = yyDollar[2].str } - case 858: + case 860: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4300 +//line sql.y:4309 { yyVAL.str = "cascaded" } - case 859: + case 861: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4304 +//line sql.y:4313 { yyVAL.str = string(yyDollar[1].str) } - case 860: + case 862: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4308 +//line sql.y:4317 { yyVAL.str = string(yyDollar[1].str) } - case 861: + case 863: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4313 +//line sql.y:4322 { yyVAL.str = "" } - case 862: + case 864: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4317 +//line sql.y:4326 { yyVAL.str = yyDollar[3].str } - case 863: + case 865: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4323 +//line sql.y:4332 { yyVAL.str = string(yyDollar[1].str) } - case 864: + case 866: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4327 +//line sql.y:4336 { yyVAL.str = string(yyDollar[1].str) } - case 865: + case 867: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4331 +//line sql.y:4340 { yyVAL.str = encodeSQLString(yyDollar[1].str) + "@" + string(yyDollar[2].str) } - case 866: + case 868: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4335 +//line sql.y:4344 { yyVAL.str = string(yyDollar[1].str) } - case 867: + case 869: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Lock -//line sql.y:4340 +//line sql.y:4349 { yyLOCAL = NoLock } yyVAL.union = yyLOCAL - case 868: + case 870: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Lock -//line sql.y:4344 +//line sql.y:4353 { yyLOCAL = ForUpdateLock } yyVAL.union = yyLOCAL - case 869: + case 871: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:4348 +//line sql.y:4357 { yyLOCAL = ShareModeLock } yyVAL.union = yyLOCAL - case 870: + case 872: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4353 +//line sql.y:4362 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 871: + case 873: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4357 +//line sql.y:4366 { yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].str, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str} } yyVAL.union = yyLOCAL - case 872: + case 874: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4361 +//line sql.y:4370 { yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: "", FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 873: + case 875: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4365 +//line sql.y:4374 { yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].str, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 874: + case 876: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4370 +//line sql.y:4379 { yyVAL.str = "" } - case 875: + case 877: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4374 +//line sql.y:4383 { yyVAL.str = " format csv" + yyDollar[3].str } - case 876: + case 878: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4378 +//line sql.y:4387 { yyVAL.str = " format text" + yyDollar[3].str } - case 877: + case 879: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4383 +//line sql.y:4392 { yyVAL.str = "" } - case 878: + case 880: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4387 +//line sql.y:4396 { yyVAL.str = " header" } - case 879: + case 881: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4392 +//line sql.y:4401 { yyVAL.str = "" } - case 880: + case 882: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4396 +//line sql.y:4405 { yyVAL.str = " manifest on" } - case 881: + case 883: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4400 +//line sql.y:4409 { yyVAL.str = " manifest off" } - case 882: + case 884: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4405 +//line sql.y:4414 { yyVAL.str = "" } - case 883: + case 885: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4409 +//line sql.y:4418 { yyVAL.str = " overwrite on" } - case 884: + case 886: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4413 +//line sql.y:4422 { yyVAL.str = " overwrite off" } - case 885: + case 887: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4419 +//line sql.y:4428 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 886: + case 888: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4424 +//line sql.y:4433 { yyVAL.str = "" } - case 887: + case 889: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4428 +//line sql.y:4437 { yyVAL.str = " lines" + yyDollar[2].str } - case 888: + case 890: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4434 +//line sql.y:4443 { yyVAL.str = yyDollar[1].str } - case 889: + case 891: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4438 +//line sql.y:4447 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 890: + case 892: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4444 +//line sql.y:4453 { yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str) } - case 891: + case 893: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4448 +//line sql.y:4457 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 892: + case 894: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4453 +//line sql.y:4462 { yyVAL.str = "" } - case 893: + case 895: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4457 +//line sql.y:4466 { yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str } - case 894: + case 896: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4463 +//line sql.y:4472 { yyVAL.str = yyDollar[1].str } - case 895: + case 897: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4467 +//line sql.y:4476 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 896: + case 898: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4473 +//line sql.y:4482 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 897: + case 899: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4477 +//line sql.y:4486 { yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str) } - case 898: + case 900: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4481 +//line sql.y:4490 { yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str) } - case 899: + case 901: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4486 +//line sql.y:4495 { yyVAL.str = "" } - case 900: + case 902: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4490 +//line sql.y:4499 { yyVAL.str = " optionally" } - case 901: + case 903: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Insert -//line sql.y:4503 +//line sql.y:4512 { yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion()} } yyVAL.union = yyLOCAL - case 902: + case 904: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Insert -//line sql.y:4507 +//line sql.y:4516 { yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()} } yyVAL.union = yyLOCAL - case 903: + case 905: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *Insert -//line sql.y:4511 +//line sql.y:4520 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion()} } yyVAL.union = yyLOCAL - case 904: + case 906: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4515 +//line sql.y:4524 { yyLOCAL = &Insert{Rows: yyDollar[4].valuesUnion()} } yyVAL.union = yyLOCAL - case 905: + case 907: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4519 +//line sql.y:4528 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()} } yyVAL.union = yyLOCAL - case 906: + case 908: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:4525 +//line sql.y:4534 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 907: + case 909: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:4529 +//line sql.y:4538 { yyLOCAL = Columns{yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 908: + case 910: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4533 +//line sql.y:4542 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 909: + case 911: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4537 +//line sql.y:4546 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[5].colIdent) } - case 910: + case 912: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4542 +//line sql.y:4551 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 911: + case 913: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4546 +//line sql.y:4555 { yyLOCAL = yyDollar[5].updateExprsUnion() } yyVAL.union = yyLOCAL - case 912: + case 914: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Values -//line sql.y:4552 +//line sql.y:4561 { yyLOCAL = Values{yyDollar[1].valTupleUnion()} } yyVAL.union = yyLOCAL - case 913: + case 915: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4556 +//line sql.y:4565 { yySLICE := (*Values)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion()) } - case 914: + case 916: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4562 +//line sql.y:4571 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 915: + case 917: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4566 +//line sql.y:4575 { yyLOCAL = ValTuple{} } yyVAL.union = yyLOCAL - case 916: + case 918: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4572 +//line sql.y:4581 { yyLOCAL = ValTuple(yyDollar[2].exprsUnion()) } yyVAL.union = yyLOCAL - case 917: + case 919: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4578 +//line sql.y:4587 { if len(yyDollar[1].valTupleUnion()) == 1 { yyLOCAL = yyDollar[1].valTupleUnion()[0] @@ -12373,329 +12406,329 @@ yydefault: } } yyVAL.union = yyLOCAL - case 918: + case 920: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4588 +//line sql.y:4597 { yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()} } yyVAL.union = yyLOCAL - case 919: + case 921: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4592 +//line sql.y:4601 { yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion()) } - case 920: + case 922: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *UpdateExpr -//line sql.y:4598 +//line sql.y:4607 { yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 921: + case 923: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SetExprs -//line sql.y:4604 +//line sql.y:4613 { yyLOCAL = SetExprs{yyDollar[1].setExprUnion()} } yyVAL.union = yyLOCAL - case 922: + case 924: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4608 +//line sql.y:4617 { yySLICE := (*SetExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].setExprUnion()) } - case 923: + case 925: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4614 +//line sql.y:4623 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("on")} } yyVAL.union = yyLOCAL - case 924: + case 926: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4618 +//line sql.y:4627 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("off")} } yyVAL.union = yyLOCAL - case 925: + case 927: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4622 +//line sql.y:4631 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 926: + case 928: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4626 +//line sql.y:4635 { yyLOCAL = &SetExpr{Name: NewColIdent(string(yyDollar[1].str)), Scope: ImplicitScope, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 927: + case 929: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4630 +//line sql.y:4639 { yyDollar[2].setExprUnion().Scope = yyDollar[1].scopeUnion() yyLOCAL = yyDollar[2].setExprUnion() } yyVAL.union = yyLOCAL - case 929: + case 931: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4638 +//line sql.y:4647 { yyVAL.str = "charset" } - case 932: + case 934: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4648 +//line sql.y:4657 { yyLOCAL = NewStrLiteral(yyDollar[1].colIdent.String()) } yyVAL.union = yyLOCAL - case 933: + case 935: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4652 +//line sql.y:4661 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 934: + case 936: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4656 +//line sql.y:4665 { yyLOCAL = &Default{} } yyVAL.union = yyLOCAL - case 937: + case 939: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4665 +//line sql.y:4674 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 938: + case 940: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4667 +//line sql.y:4676 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 939: + case 941: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4670 +//line sql.y:4679 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 940: + case 942: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4672 +//line sql.y:4681 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 941: + case 943: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4675 +//line sql.y:4684 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 942: + case 944: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line sql.y:4677 +//line sql.y:4686 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 943: + case 945: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Ignore -//line sql.y:4680 +//line sql.y:4689 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 944: + case 946: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Ignore -//line sql.y:4682 +//line sql.y:4691 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 945: + case 947: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4685 +//line sql.y:4694 { yyVAL.empty = struct{}{} } - case 946: + case 948: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4687 +//line sql.y:4696 { yyVAL.empty = struct{}{} } - case 947: + case 949: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4689 +//line sql.y:4698 { yyVAL.empty = struct{}{} } - case 948: + case 950: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4693 +//line sql.y:4702 { yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()} } yyVAL.union = yyLOCAL - case 949: + case 951: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4698 +//line sql.y:4707 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 950: + case 952: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:4702 +//line sql.y:4711 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 951: + case 953: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4707 +//line sql.y:4716 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 952: + case 954: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4709 +//line sql.y:4718 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL - case 953: + case 955: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:4713 +//line sql.y:4722 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].colIdent.String())} } yyVAL.union = yyLOCAL - case 954: + case 956: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4719 +//line sql.y:4728 { yyVAL.colIdent = yyDollar[1].colIdent } - case 955: + case 957: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4723 +//line sql.y:4732 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 957: + case 959: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4730 +//line sql.y:4739 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 958: + case 960: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4736 +//line sql.y:4745 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].colIdent.String())) } - case 959: + case 961: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4740 +//line sql.y:4749 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 960: + case 962: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4745 +//line sql.y:4754 { yyVAL.tableIdent = NewTableIdent("") } - case 961: + case 963: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4749 +//line sql.y:4758 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 963: + case 965: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4756 +//line sql.y:4765 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 1369: + case 1373: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5186 +//line sql.y:5197 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 1370: + case 1374: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5195 +//line sql.y:5206 { decNesting(yylex) } - case 1371: + case 1375: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5200 +//line sql.y:5211 { skipToEnd(yylex) } - case 1372: + case 1376: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5205 +//line sql.y:5216 { skipToEnd(yylex) } - case 1373: + case 1377: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5209 +//line sql.y:5220 { skipToEnd(yylex) } - case 1374: + case 1378: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5213 +//line sql.y:5224 { skipToEnd(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index 19bcf976898..3924e8ea999 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -163,7 +163,7 @@ func bindVariable(yylex yyLexer, bvar string) { %left UNION %token SELECT STREAM VSTREAM INSERT UPDATE DELETE FROM WHERE GROUP HAVING ORDER BY LIMIT OFFSET FOR %token ALL DISTINCT AS EXISTS ASC DESC INTO DUPLICATE KEY DEFAULT SET LOCK UNLOCK KEYS DO CALL -%token DISTINCTROW PARSER +%token DISTINCTROW PARSER GENERATED ALWAYS %token OUTFILE S3 DATA LOAD LINES TERMINATED ESCAPED ENCLOSED %token DUMPFILE CSV HEADER MANIFEST OVERWRITE STARTING OPTIONALLY %token VALUES LAST_INSERT_ID @@ -309,7 +309,7 @@ func bindVariable(yylex yyLexer, bvar string) { %type select_expression %type select_options flush_option_list %type select_option algorithm_view security_view security_view_opt -%type definer_opt user +%type definer_opt user generated_always_opt %type expression %type from_opt table_references %type table_reference table_factor join_table @@ -1021,6 +1021,15 @@ column_definition: $$ = &ColumnDefinition{Name: $1, Type: $2} } +generated_always_opt: + { + $$ = "" + } +| GENERATED ALWAYS + { + $$ = "" + } + // There is a shift reduce conflict that arises here because UNIQUE and KEY are column_type_option and so is UNIQUE KEY. // So in the state "column_type_options UNIQUE. KEY" there is a shift-reduce conflict. // This has been added to emulate what MySQL does. The previous architecture was such that the order of the column options @@ -1046,9 +1055,9 @@ column_type_options: $1.Default = $3 $$ = $1 } -| column_type_options AS value_expression +| column_type_options generated_always_opt AS value_expression { - $1.As = $3 + $1.As = $4 $$ = $1 } | column_type_options ON UPDATE function_call_nonkeyword @@ -4814,6 +4823,7 @@ reserved_keyword: | FOREIGN | FROM | FULLTEXT +| GENERATED | GROUP | GROUPING | GROUPS @@ -4918,6 +4928,7 @@ non_reserved_keyword: | ADMIN | AFTER | ALGORITHM +| ALWAYS | AUTO_INCREMENT | AVG_ROW_LENGTH | BEGIN From b086c00e35631e8371b4b8cfa4136a27d2dc36ff Mon Sep 17 00:00:00 2001 From: GuptaManan100 Date: Thu, 13 May 2021 14:42:43 +0530 Subject: [PATCH 30/63] moved the enableDirectDDL and enableOnlineDDL flags outside to vtgate package Signed-off-by: GuptaManan100 --- go/vt/vtgate/executor.go | 2 +- go/vt/vtgate/planbuilder/builder.go | 22 ++++++++-------------- go/vt/vtgate/planbuilder/ddl.go | 22 +++++++++++----------- go/vt/vtgate/planbuilder/explain.go | 8 ++++---- go/vt/vtgate/planbuilder/migration.go | 8 ++++---- go/vt/vtgate/vtgate.go | 4 ++++ 6 files changed, 32 insertions(+), 34 deletions(-) diff --git a/go/vt/vtgate/executor.go b/go/vt/vtgate/executor.go index 4be1cf66c6c..3098a6b57ad 100644 --- a/go/vt/vtgate/executor.go +++ b/go/vt/vtgate/executor.go @@ -1232,7 +1232,7 @@ func (e *Executor) getPlan(vcursor *vcursorImpl, sql string, comments sqlparser. return plan.(*engine.Plan), nil } - plan, err := planbuilder.BuildFromStmt(query, statement, reservedVars, vcursor, bindVarNeeds) + plan, err := planbuilder.BuildFromStmt(query, statement, reservedVars, vcursor, bindVarNeeds, *enableOnlineDDL, *enableDirectDDL) if err != nil { return nil, err } diff --git a/go/vt/vtgate/planbuilder/builder.go b/go/vt/vtgate/planbuilder/builder.go index 87864cec921..5260ff184c4 100644 --- a/go/vt/vtgate/planbuilder/builder.go +++ b/go/vt/vtgate/planbuilder/builder.go @@ -18,7 +18,6 @@ package planbuilder import ( "errors" - "flag" "sort" "vitess.io/vitess/go/sqltypes" @@ -36,11 +35,6 @@ import ( vtrpcpb "vitess.io/vitess/go/vt/proto/vtrpc" ) -var ( - enableOnlineDDL = flag.Bool("enable_online_ddl", true, "Allow users to submit, review and control Online DDL") - enableDirectDDL = flag.Bool("enable_direct_ddl", true, "Allow users to submit direct DDL statements") -) - // ContextVSchema defines the interface for this package to fetch // info about tables. type ContextVSchema interface { @@ -105,15 +99,15 @@ func TestBuilder(query string, vschema ContextVSchema) (*engine.Plan, error) { } reservedVars := sqlparser.NewReservedVars("vtg", reserved) - return BuildFromStmt(query, result.AST, reservedVars, vschema, result.BindVarNeeds) + return BuildFromStmt(query, result.AST, reservedVars, vschema, result.BindVarNeeds, true, true) } // ErrPlanNotSupported is an error for plan building not supported var ErrPlanNotSupported = errors.New("plan building not supported") // BuildFromStmt builds a plan based on the AST provided. -func BuildFromStmt(query string, stmt sqlparser.Statement, reservedVars *sqlparser.ReservedVars, vschema ContextVSchema, bindVarNeeds *sqlparser.BindVarNeeds) (*engine.Plan, error) { - instruction, err := createInstructionFor(query, stmt, reservedVars, vschema) +func BuildFromStmt(query string, stmt sqlparser.Statement, reservedVars *sqlparser.ReservedVars, vschema ContextVSchema, bindVarNeeds *sqlparser.BindVarNeeds, enableOnlineDDL, enableDirectDDL bool) (*engine.Plan, error) { + instruction, err := createInstructionFor(query, stmt, reservedVars, vschema, enableOnlineDDL, enableDirectDDL) if err != nil { return nil, err } @@ -151,7 +145,7 @@ func buildRoutePlan(stmt sqlparser.Statement, reservedVars *sqlparser.ReservedVa type selectPlanner func(query string) func(sqlparser.Statement, *sqlparser.ReservedVars, ContextVSchema) (engine.Primitive, error) -func createInstructionFor(query string, stmt sqlparser.Statement, reservedVars *sqlparser.ReservedVars, vschema ContextVSchema) (engine.Primitive, error) { +func createInstructionFor(query string, stmt sqlparser.Statement, reservedVars *sqlparser.ReservedVars, vschema ContextVSchema, enableOnlineDDL, enableDirectDDL bool) (engine.Primitive, error) { switch stmt := stmt.(type) { case *sqlparser.Select: configuredPlanner, err := getConfiguredPlanner(vschema) @@ -168,17 +162,17 @@ func createInstructionFor(query string, stmt sqlparser.Statement, reservedVars * case *sqlparser.Union: return buildRoutePlan(stmt, reservedVars, vschema, buildUnionPlan) case sqlparser.DDLStatement: - return buildGeneralDDLPlan(query, stmt, reservedVars, vschema) + return buildGeneralDDLPlan(query, stmt, reservedVars, vschema, enableOnlineDDL, enableDirectDDL) case *sqlparser.AlterMigration: - return buildAlterMigrationPlan(query, vschema) + return buildAlterMigrationPlan(query, vschema, enableOnlineDDL) case *sqlparser.RevertMigration: - return buildRevertMigrationPlan(query, stmt, vschema) + return buildRevertMigrationPlan(query, stmt, vschema, enableOnlineDDL) case *sqlparser.AlterVschema: return buildVSchemaDDLPlan(stmt, vschema) case *sqlparser.Use: return buildUsePlan(stmt, vschema) case sqlparser.Explain: - return buildExplainPlan(stmt, reservedVars, vschema) + return buildExplainPlan(stmt, reservedVars, vschema, enableOnlineDDL, enableDirectDDL) case *sqlparser.OtherRead, *sqlparser.OtherAdmin: return buildOtherReadAndAdmin(query, vschema) case *sqlparser.Set: diff --git a/go/vt/vtgate/planbuilder/ddl.go b/go/vt/vtgate/planbuilder/ddl.go index 5459b6dcf4b..509b9bf15fa 100644 --- a/go/vt/vtgate/planbuilder/ddl.go +++ b/go/vt/vtgate/planbuilder/ddl.go @@ -50,11 +50,11 @@ func (fk *fkContraint) FkWalk(node sqlparser.SQLNode) (kontinue bool, err error) // a session context. It's only when we Execute() the primitive that we have that context. // This is why we return a compound primitive (DDL) which contains fully populated primitives (Send & OnlineDDL), // and which chooses which of the two to invoke at runtime. -func buildGeneralDDLPlan(sql string, ddlStatement sqlparser.DDLStatement, reservedVars *sqlparser.ReservedVars, vschema ContextVSchema) (engine.Primitive, error) { +func buildGeneralDDLPlan(sql string, ddlStatement sqlparser.DDLStatement, reservedVars *sqlparser.ReservedVars, vschema ContextVSchema, enableOnlineDDL, enableDirectDDL bool) (engine.Primitive, error) { if vschema.Destination() != nil { return buildByPassDDLPlan(sql, vschema) } - normalDDLPlan, onlineDDLPlan, err := buildDDLPlans(sql, ddlStatement, reservedVars, vschema) + normalDDLPlan, onlineDDLPlan, err := buildDDLPlans(sql, ddlStatement, reservedVars, vschema, enableOnlineDDL, enableDirectDDL) if err != nil { return nil, err } @@ -74,8 +74,8 @@ func buildGeneralDDLPlan(sql string, ddlStatement sqlparser.DDLStatement, reserv NormalDDL: normalDDLPlan, OnlineDDL: onlineDDLPlan, - DirectDDLEnabled: *enableDirectDDL, - OnlineDDLEnabled: *enableOnlineDDL, + DirectDDLEnabled: enableDirectDDL, + OnlineDDLEnabled: enableOnlineDDL, CreateTempTable: ddlStatement.IsTemporary(), }, nil @@ -93,7 +93,7 @@ func buildByPassDDLPlan(sql string, vschema ContextVSchema) (engine.Primitive, e }, nil } -func buildDDLPlans(sql string, ddlStatement sqlparser.DDLStatement, reservedVars *sqlparser.ReservedVars, vschema ContextVSchema) (*engine.Send, *engine.OnlineDDL, error) { +func buildDDLPlans(sql string, ddlStatement sqlparser.DDLStatement, reservedVars *sqlparser.ReservedVars, vschema ContextVSchema, enableOnlineDDL, enableDirectDDL bool) (*engine.Send, *engine.OnlineDDL, error) { var destination key.Destination var keyspace *vindexes.Keyspace var err error @@ -108,9 +108,9 @@ func buildDDLPlans(sql string, ddlStatement sqlparser.DDLStatement, reservedVars // We should find the target of the query from this tables location destination, keyspace, err = findTableDestinationAndKeyspace(vschema, ddlStatement) case *sqlparser.CreateView: - destination, keyspace, err = buildCreateView(vschema, ddl, reservedVars) + destination, keyspace, err = buildCreateView(vschema, ddl, reservedVars, enableOnlineDDL, enableDirectDDL) case *sqlparser.AlterView: - destination, keyspace, err = buildAlterView(vschema, ddl, reservedVars) + destination, keyspace, err = buildAlterView(vschema, ddl, reservedVars, enableOnlineDDL, enableDirectDDL) case *sqlparser.CreateTable: err = checkFKError(vschema, ddlStatement) if err != nil { @@ -194,7 +194,7 @@ func findTableDestinationAndKeyspace(vschema ContextVSchema, ddlStatement sqlpar return destination, keyspace, nil } -func buildAlterView(vschema ContextVSchema, ddl *sqlparser.AlterView, reservedVars *sqlparser.ReservedVars) (key.Destination, *vindexes.Keyspace, error) { +func buildAlterView(vschema ContextVSchema, ddl *sqlparser.AlterView, reservedVars *sqlparser.ReservedVars, enableOnlineDDL, enableDirectDDL bool) (key.Destination, *vindexes.Keyspace, error) { // For Alter View, we require that the view exist and the select query can be satisfied within the keyspace itself // We should remove the keyspace name from the table name, as the database name in MySQL might be different than the keyspace name destination, keyspace, err := findTableDestinationAndKeyspace(vschema, ddl) @@ -203,7 +203,7 @@ func buildAlterView(vschema ContextVSchema, ddl *sqlparser.AlterView, reservedVa } var selectPlan engine.Primitive - selectPlan, err = createInstructionFor(sqlparser.String(ddl.Select), ddl.Select, reservedVars, vschema) + selectPlan, err = createInstructionFor(sqlparser.String(ddl.Select), ddl.Select, reservedVars, vschema, enableOnlineDDL, enableDirectDDL) if err != nil { return nil, nil, err } @@ -229,7 +229,7 @@ func buildAlterView(vschema ContextVSchema, ddl *sqlparser.AlterView, reservedVa return destination, keyspace, nil } -func buildCreateView(vschema ContextVSchema, ddl *sqlparser.CreateView, reservedVars *sqlparser.ReservedVars) (key.Destination, *vindexes.Keyspace, error) { +func buildCreateView(vschema ContextVSchema, ddl *sqlparser.CreateView, reservedVars *sqlparser.ReservedVars, enableOnlineDDL, enableDirectDDL bool) (key.Destination, *vindexes.Keyspace, error) { // For Create View, we require that the keyspace exist and the select query can be satisfied within the keyspace itself // We should remove the keyspace name from the table name, as the database name in MySQL might be different than the keyspace name destination, keyspace, _, err := vschema.TargetDestination(ddl.ViewName.Qualifier.String()) @@ -239,7 +239,7 @@ func buildCreateView(vschema ContextVSchema, ddl *sqlparser.CreateView, reserved ddl.ViewName.Qualifier = sqlparser.NewTableIdent("") var selectPlan engine.Primitive - selectPlan, err = createInstructionFor(sqlparser.String(ddl.Select), ddl.Select, reservedVars, vschema) + selectPlan, err = createInstructionFor(sqlparser.String(ddl.Select), ddl.Select, reservedVars, vschema, enableOnlineDDL, enableDirectDDL) if err != nil { return nil, nil, err } diff --git a/go/vt/vtgate/planbuilder/explain.go b/go/vt/vtgate/planbuilder/explain.go index 4c9d03c1905..8ba012af2fb 100644 --- a/go/vt/vtgate/planbuilder/explain.go +++ b/go/vt/vtgate/planbuilder/explain.go @@ -29,13 +29,13 @@ import ( ) // Builds an explain-plan for the given Primitive -func buildExplainPlan(stmt sqlparser.Explain, reservedVars *sqlparser.ReservedVars, vschema ContextVSchema) (engine.Primitive, error) { +func buildExplainPlan(stmt sqlparser.Explain, reservedVars *sqlparser.ReservedVars, vschema ContextVSchema, enableOnlineDDL, enableDirectDDL bool) (engine.Primitive, error) { switch explain := stmt.(type) { case *sqlparser.ExplainTab: return explainTabPlan(explain, vschema) case *sqlparser.ExplainStmt: if explain.Type == sqlparser.VitessType { - return buildVitessTypePlan(explain, reservedVars, vschema) + return buildVitessTypePlan(explain, reservedVars, vschema, enableOnlineDDL, enableDirectDDL) } return buildOtherReadAndAdmin(sqlparser.String(explain), vschema) } @@ -61,8 +61,8 @@ func explainTabPlan(explain *sqlparser.ExplainTab, vschema ContextVSchema) (engi }, nil } -func buildVitessTypePlan(explain *sqlparser.ExplainStmt, reservedVars *sqlparser.ReservedVars, vschema ContextVSchema) (engine.Primitive, error) { - innerInstruction, err := createInstructionFor(sqlparser.String(explain.Statement), explain.Statement, reservedVars, vschema) +func buildVitessTypePlan(explain *sqlparser.ExplainStmt, reservedVars *sqlparser.ReservedVars, vschema ContextVSchema, enableOnlineDDL, enableDirectDDL bool) (engine.Primitive, error) { + innerInstruction, err := createInstructionFor(sqlparser.String(explain.Statement), explain.Statement, reservedVars, vschema, enableOnlineDDL, enableDirectDDL) if err != nil { return nil, err } diff --git a/go/vt/vtgate/planbuilder/migration.go b/go/vt/vtgate/planbuilder/migration.go index f2d504ba477..521e97defd5 100644 --- a/go/vt/vtgate/planbuilder/migration.go +++ b/go/vt/vtgate/planbuilder/migration.go @@ -26,8 +26,8 @@ import ( "vitess.io/vitess/go/vt/vtgate/engine" ) -func buildAlterMigrationPlan(query string, vschema ContextVSchema) (engine.Primitive, error) { - if !*enableOnlineDDL { +func buildAlterMigrationPlan(query string, vschema ContextVSchema, enableOnlineDDL bool) (engine.Primitive, error) { + if !enableOnlineDDL { return nil, schema.ErrOnlineDDLDisabled } dest, ks, tabletType, err := vschema.TargetDestination("") @@ -53,8 +53,8 @@ func buildAlterMigrationPlan(query string, vschema ContextVSchema) (engine.Primi }, nil } -func buildRevertMigrationPlan(query string, stmt *sqlparser.RevertMigration, vschema ContextVSchema) (engine.Primitive, error) { - if !*enableOnlineDDL { +func buildRevertMigrationPlan(query string, stmt *sqlparser.RevertMigration, vschema ContextVSchema, enableOnlineDDL bool) (engine.Primitive, error) { + if !enableOnlineDDL { return nil, schema.ErrOnlineDDLDisabled } dest, ks, tabletType, err := vschema.TargetDestination("") diff --git a/go/vt/vtgate/vtgate.go b/go/vt/vtgate/vtgate.go index 36c3ca483e3..65ffb8bf85c 100644 --- a/go/vt/vtgate/vtgate.go +++ b/go/vt/vtgate/vtgate.go @@ -84,6 +84,10 @@ var ( warnShardedOnly = flag.Bool("warn_sharded_only", false, "If any features that are only available in unsharded mode are used, query execution warnings will be added to the session") foreignKeyMode = flag.String("foreign_key_mode", "allow", "This is to provide how to handle foreign key constraint in create/alter table. Valid values are: allow, disallow") + + // flags to enable/disable online and direct DDL statements + enableOnlineDDL = flag.Bool("enable_online_ddl", true, "Allow users to submit, review and control Online DDL") + enableDirectDDL = flag.Bool("enable_direct_ddl", true, "Allow users to submit direct DDL statements") ) func getTxMode() vtgatepb.TransactionMode { From 33cbd325831751c08bdd12403ee8ad32ef955f98 Mon Sep 17 00:00:00 2001 From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Date: Thu, 13 May 2021 12:35:16 +0300 Subject: [PATCH 31/63] More explicit message on online DDL parsing error Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> --- go/vt/schema/online_ddl.go | 48 +++++++------ go/vt/schema/online_ddl_test.go | 5 +- go/vt/schemamanager/tablet_executor.go | 2 +- go/vt/sqlparser/ast.go | 94 +++++++++++++++++++++++++- go/vt/sqlparser/ast_clone.go | 31 +++++++++ go/vt/sqlparser/ast_equals.go | 50 +++++++++++++- go/vt/sqlparser/parser.go | 1 + go/vt/vtgate/engine/online_ddl.go | 2 +- 8 files changed, 203 insertions(+), 30 deletions(-) diff --git a/go/vt/schema/online_ddl.go b/go/vt/schema/online_ddl.go index 531bbe4e56d..2536848d414 100644 --- a/go/vt/schema/online_ddl.go +++ b/go/vt/schema/online_ddl.go @@ -152,9 +152,35 @@ func ParseOnlineDDLStatement(sql string) (ddlStmt sqlparser.DDLStatement, action return ddlStmt, action, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "unsupported query type: %s", sql) } +func onlineDDLStatementSanity(sql string, ddlStmt sqlparser.DDLStatement) error { + // SQL statement sanity checks: + if !ddlStmt.IsFullyParsed() { + if err := ddlStmt.GetParseError(); err != nil { + // More information about the reason why the statement is not fully parsed: + return vterrors.NewErrorf(vtrpcpb.Code_INVALID_ARGUMENT, vterrors.SyntaxError, "%v", err) + } + return vterrors.NewErrorf(vtrpcpb.Code_INVALID_ARGUMENT, vterrors.SyntaxError, "cannot parse statement: %v", sql) + } + + switch ddlStmt := ddlStmt.(type) { + case *sqlparser.AlterTable: + if len(ddlStmt.AlterOptions) == 0 { + return vterrors.NewErrorf(vtrpcpb.Code_INVALID_ARGUMENT, vterrors.SyntaxError, "cannot parse statement: %v", sql) + } + } + + if err := sqlparser.Walk(errorOnFKWalk, ddlStmt); err == ErrForeignKeyFound { + return vterrors.Errorf(vtrpcpb.Code_ABORTED, "foreign key constraint are not supported in online DDL") + } + return nil +} + // NewOnlineDDLs takes a single DDL statement, normalizes it (potentially break down into multiple statements), and generates one or more OnlineDDL instances, one for each normalized statement -func NewOnlineDDLs(keyspace string, ddlStmt sqlparser.DDLStatement, ddlStrategySetting *DDLStrategySetting, requestContext string) (onlineDDLs [](*OnlineDDL), err error) { +func NewOnlineDDLs(keyspace string, sql string, ddlStmt sqlparser.DDLStatement, ddlStrategySetting *DDLStrategySetting, requestContext string) (onlineDDLs [](*OnlineDDL), err error) { appendOnlineDDL := func(tableName string, ddlStmt sqlparser.DDLStatement) error { + if err := onlineDDLStatementSanity(sql, ddlStmt); err != nil { + return err + } onlineDDL, err := NewOnlineDDL(keyspace, tableName, sqlparser.String(ddlStmt), ddlStrategySetting, requestContext) if err != nil { return err @@ -179,23 +205,6 @@ func NewOnlineDDLs(keyspace string, ddlStmt sqlparser.DDLStatement, ddlStrategyS return nil, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "unsupported statement for Online DDL: %v", sqlparser.String(ddlStmt)) } - { - // SQL statement sanity checks: - switch ddlStmt := ddlStmt.(type) { - case *sqlparser.AlterTable: - if len(ddlStmt.AlterOptions) == 0 { - return nil, vterrors.NewErrorf(vtrpcpb.Code_INVALID_ARGUMENT, vterrors.SyntaxError, "NewOnlineDDL: cannot parse statement: %v", sqlparser.String(ddlStmt)) - } - } - - if !ddlStmt.IsFullyParsed() { - return nil, vterrors.NewErrorf(vtrpcpb.Code_INVALID_ARGUMENT, vterrors.SyntaxError, "NewOnlineDDL: cannot parse statement: %v", sqlparser.String(ddlStmt)) - } - - if err := sqlparser.Walk(errorOnFKWalk, ddlStmt); err == ErrForeignKeyFound { - return nil, vterrors.Errorf(vtrpcpb.Code_ABORTED, "foreign key constraint are not supported in online DDL") - } - } return onlineDDLs, nil } @@ -245,9 +254,6 @@ func NewOnlineDDL(keyspace string, table string, sql string, ddlStrategySetting } else { switch stmt := stmt.(type) { case sqlparser.DDLStatement: - if !stmt.IsFullyParsed() { - return nil, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "NewOnlineDDL: cannot parse statement: %v", sqlparser.String(stmt)) - } stmt.SetComments(comments) case *sqlparser.RevertMigration: stmt.SetComments(comments) diff --git a/go/vt/schema/online_ddl_test.go b/go/vt/schema/online_ddl_test.go index 96d06b1c5d3..8b196759538 100644 --- a/go/vt/schema/online_ddl_test.go +++ b/go/vt/schema/online_ddl_test.go @@ -265,7 +265,8 @@ func TestNewOnlineDDLs(t *testing.T) { "truncate table t": {isError: true}, "drop view t": {isError: true}, "rename table t to t1": {isError: true}, - "alter table corder add FOREIGN KEY my_fk(customer_id) reference customer(customer_id)": {isError: true}, + "alter table corder add FOREIGN KEY my_fk(customer_id) reference customer(customer_id)": {isError: true}, + "CREATE TABLE if not exists t (id bigint unsigned NOT NULL AUTO_INCREMENT, ts datetime(6) DEFAULT NULL, ts_generated int GENERATED ALWAYS AS (ts) VIRTUAL, PRIMARY KEY (id)) ENGINE=InnoDB": {isError: true}, } migrationContext := "354b-11eb-82cd-f875a4d24e90" for query, expect := range tests { @@ -283,7 +284,7 @@ func TestNewOnlineDDLs(t *testing.T) { } assert.True(t, ok) - onlineDDLs, err := NewOnlineDDLs("test_ks", ddlStmt, NewDDLStrategySetting(DDLStrategyOnline, ""), migrationContext) + onlineDDLs, err := NewOnlineDDLs("test_ks", query, ddlStmt, NewDDLStrategySetting(DDLStrategyOnline, ""), migrationContext) if expect.isError { assert.Error(t, err) return diff --git a/go/vt/schemamanager/tablet_executor.go b/go/vt/schemamanager/tablet_executor.go index a6419bb4c0a..4ee583c2c17 100644 --- a/go/vt/schemamanager/tablet_executor.go +++ b/go/vt/schemamanager/tablet_executor.go @@ -242,7 +242,7 @@ func (exec *TabletExecutor) executeSQL(ctx context.Context, sql string, execResu switch stmt := stmt.(type) { case sqlparser.DDLStatement: if exec.isOnlineSchemaDDL(stmt) { - onlineDDLs, err := schema.NewOnlineDDLs(exec.keyspace, stmt, exec.ddlStrategySetting, exec.requestContext) + onlineDDLs, err := schema.NewOnlineDDLs(exec.keyspace, sql, stmt, exec.ddlStrategySetting, exec.requestContext) if err != nil { execResult.ExecutorErr = err.Error() return err diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index 2d20297e7bf..9a0ea05d1e7 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -67,6 +67,8 @@ type ( SetComments(comments Comments) GetComments() Comments SetFullyParsed(fullyParsed bool) + SetParseError(parseError error) + GetParseError() error Statement } @@ -435,6 +437,7 @@ type ( PartitionSpec *PartitionSpec Comments Comments FullyParsed bool + ParseError error } // DropTable represents a DROP TABLE statement. @@ -442,8 +445,9 @@ type ( Temp bool FromTables TableNames // The following fields are set if a DDL was fully analyzed. - IfExists bool - Comments Comments + IfExists bool + Comments Comments + ParseError error } // DropView represents a DROP VIEW statement. @@ -461,6 +465,7 @@ type ( OptLike *OptLike Comments Comments FullyParsed bool + ParseError error } // CreateView represents a CREATE VIEW query @@ -1188,6 +1193,91 @@ func (node *AlterView) GetComments() Comments { return nil } +// SetParseError implements DDLStatement. +func (node *RenameTable) SetParseError(parseError error) { + // irrelevant +} + +// SetParseError implements DDLStatement. +func (node *TruncateTable) SetParseError(parseError error) { + // irrelevant +} + +// SetParseError implements DDLStatement. +func (node *AlterTable) SetParseError(parseError error) { + node.ParseError = parseError +} + +// SetParseError implements DDLStatement. +func (node *CreateTable) SetParseError(parseError error) { + node.ParseError = parseError +} + +// SetParseError implements DDLStatement. +func (node *CreateView) SetParseError(parseError error) { + // irrelevant +} + +// SetParseError implements DDLStatement. +func (node *DropTable) SetParseError(parseError error) { + node.ParseError = parseError +} + +// SetParseError implements DDLStatement. +func (node *DropView) SetParseError(parseError error) { + // irrelevant +} + +// SetParseError implements DDLStatement. +func (node *AlterView) SetParseError(parseError error) { + // irrelevant +} + +// GetParseError implements DDLStatement. +func (node *RenameTable) GetParseError() error { + // irrelevant + return nil +} + +// GetParseError implements DDLStatement. +func (node *TruncateTable) GetParseError() error { + // irrelevant + return nil +} + +// GetParseError implements DDLStatement. +func (node *AlterTable) GetParseError() error { + return node.ParseError +} + +// GetParseError implements DDLStatement. +func (node *CreateTable) GetParseError() error { + return node.ParseError +} + +// GetParseError implements DDLStatement. +func (node *CreateView) GetParseError() error { + // irrelevant + return nil +} + +// GetParseError implements DDLStatement. +func (node *DropTable) GetParseError() error { + return node.ParseError +} + +// GetParseError implements DDLStatement. +func (node *DropView) GetParseError() error { + // irrelevant + return nil +} + +// GetParseError implements DDLStatement. +func (node *AlterView) GetParseError() error { + // irrelevant + return nil +} + // GetToTables implements the DDLStatement interface func (node *RenameTable) GetToTables() TableNames { var toTables TableNames diff --git a/go/vt/sqlparser/ast_clone.go b/go/vt/sqlparser/ast_clone.go index 3050d09e7cb..8943e508614 100644 --- a/go/vt/sqlparser/ast_clone.go +++ b/go/vt/sqlparser/ast_clone.go @@ -427,6 +427,7 @@ func CloneRefOfAlterTable(n *AlterTable) *AlterTable { out.AlterOptions = CloneSliceOfAlterOption(n.AlterOptions) out.PartitionSpec = CloneRefOfPartitionSpec(n.PartitionSpec) out.Comments = CloneComments(n.Comments) + out.ParseError = Cloneerror(n.ParseError) return &out } @@ -689,6 +690,7 @@ func CloneRefOfCreateTable(n *CreateTable) *CreateTable { out.TableSpec = CloneRefOfTableSpec(n.TableSpec) out.OptLike = CloneRefOfOptLike(n.OptLike) out.Comments = CloneComments(n.Comments) + out.ParseError = Cloneerror(n.ParseError) return &out } @@ -789,6 +791,7 @@ func CloneRefOfDropTable(n *DropTable) *DropTable { out := *n out.FromTables = CloneTableNames(n.FromTables) out.Comments = CloneComments(n.Comments) + out.ParseError = Cloneerror(n.ParseError) return &out } @@ -2235,6 +2238,20 @@ func CloneSliceOfAlterOption(n []AlterOption) []AlterOption { return res } +// Cloneerror creates a deep clone of the input. +func Cloneerror(in error) error { + if in == nil { + return nil + } + switch in := in.(type) { + case PositionedErr: + return ClonePositionedErr(in) + default: + // this should never happen + return nil + } +} + // CloneSliceOfColIdent creates a deep clone of the input. func CloneSliceOfColIdent(n []ColIdent) []ColIdent { res := make([]ColIdent, 0, len(n)) @@ -2453,6 +2470,11 @@ func CloneCollateAndCharset(n CollateAndCharset) CollateAndCharset { return *CloneRefOfCollateAndCharset(&n) } +// ClonePositionedErr creates a deep clone of the input. +func ClonePositionedErr(n PositionedErr) PositionedErr { + return *CloneRefOfPositionedErr(&n) +} + // CloneRefOfIndexColumn creates a deep clone of the input. func CloneRefOfIndexColumn(n *IndexColumn) *IndexColumn { if n == nil { @@ -2503,3 +2525,12 @@ func CloneRefOfCollateAndCharset(n *CollateAndCharset) *CollateAndCharset { out := *n return &out } + +// CloneRefOfPositionedErr creates a deep clone of the input. +func CloneRefOfPositionedErr(n *PositionedErr) *PositionedErr { + if n == nil { + return nil + } + out := *n + return &out +} diff --git a/go/vt/sqlparser/ast_equals.go b/go/vt/sqlparser/ast_equals.go index 08b60de6f13..50a79113da5 100644 --- a/go/vt/sqlparser/ast_equals.go +++ b/go/vt/sqlparser/ast_equals.go @@ -1032,7 +1032,8 @@ func EqualsRefOfAlterTable(a, b *AlterTable) bool { EqualsTableName(a.Table, b.Table) && EqualsSliceOfAlterOption(a.AlterOptions, b.AlterOptions) && EqualsRefOfPartitionSpec(a.PartitionSpec, b.PartitionSpec) && - EqualsComments(a.Comments, b.Comments) + EqualsComments(a.Comments, b.Comments) && + Equalserror(a.ParseError, b.ParseError) } // EqualsRefOfAlterView does deep equals between the two objects. @@ -1359,7 +1360,8 @@ func EqualsRefOfCreateTable(a, b *CreateTable) bool { EqualsTableName(a.Table, b.Table) && EqualsRefOfTableSpec(a.TableSpec, b.TableSpec) && EqualsRefOfOptLike(a.OptLike, b.OptLike) && - EqualsComments(a.Comments, b.Comments) + EqualsComments(a.Comments, b.Comments) && + Equalserror(a.ParseError, b.ParseError) } // EqualsRefOfCreateView does deep equals between the two objects. @@ -1479,7 +1481,8 @@ func EqualsRefOfDropTable(a, b *DropTable) bool { return a.Temp == b.Temp && a.IfExists == b.IfExists && EqualsTableNames(a.FromTables, b.FromTables) && - EqualsComments(a.Comments, b.Comments) + EqualsComments(a.Comments, b.Comments) && + Equalserror(a.ParseError, b.ParseError) } // EqualsRefOfDropView does deep equals between the two objects. @@ -3701,6 +3704,27 @@ func EqualsSliceOfAlterOption(a, b []AlterOption) bool { return true } +// Equalserror does deep equals between the two objects. +func Equalserror(inA, inB error) bool { + if inA == nil && inB == nil { + return true + } + if inA == nil || inB == nil { + return false + } + switch a := inA.(type) { + case PositionedErr: + b, ok := inB.(PositionedErr) + if !ok { + return false + } + return EqualsPositionedErr(a, b) + default: + // this should never happen + return false + } +} + // EqualsSliceOfColIdent does deep equals between the two objects. func EqualsSliceOfColIdent(a, b []ColIdent) bool { if len(a) != len(b) { @@ -4004,6 +4028,13 @@ func EqualsCollateAndCharset(a, b CollateAndCharset) bool { a.Type == b.Type } +// EqualsPositionedErr does deep equals between the two objects. +func EqualsPositionedErr(a, b PositionedErr) bool { + return a.Err == b.Err && + a.Pos == b.Pos && + a.Near == b.Near +} + // EqualsRefOfIndexColumn does deep equals between the two objects. func EqualsRefOfIndexColumn(a, b *IndexColumn) bool { if a == b { @@ -4066,3 +4097,16 @@ func EqualsRefOfCollateAndCharset(a, b *CollateAndCharset) bool { a.Value == b.Value && a.Type == b.Type } + +// EqualsRefOfPositionedErr does deep equals between the two objects. +func EqualsRefOfPositionedErr(a, b *PositionedErr) bool { + if a == b { + return true + } + if a == nil || b == nil { + return false + } + return a.Err == b.Err && + a.Pos == b.Pos && + a.Near == b.Near +} diff --git a/go/vt/sqlparser/parser.go b/go/vt/sqlparser/parser.go index b17f9832dce..8b441edfb70 100644 --- a/go/vt/sqlparser/parser.go +++ b/go/vt/sqlparser/parser.go @@ -87,6 +87,7 @@ func Parse2(sql string) (Statement, BindVars, error) { x.SetFullyParsed(false) case DDLStatement: x.SetFullyParsed(false) + x.SetParseError(tokenizer.LastError) } tokenizer.ParseTree = tokenizer.partialDDL return tokenizer.ParseTree, tokenizer.BindVars, nil diff --git a/go/vt/vtgate/engine/online_ddl.go b/go/vt/vtgate/engine/online_ddl.go index 9bb4b45702f..32ebe9f53eb 100644 --- a/go/vt/vtgate/engine/online_ddl.go +++ b/go/vt/vtgate/engine/online_ddl.go @@ -82,7 +82,7 @@ func (v *OnlineDDL) Execute(vcursor VCursor, bindVars map[string]*query.BindVari }, Rows: [][]sqltypes.Value{}, } - onlineDDLs, err := schema.NewOnlineDDLs(v.GetKeyspaceName(), v.DDL, + onlineDDLs, err := schema.NewOnlineDDLs(v.GetKeyspaceName(), v.SQL, v.DDL, v.DDLStrategySetting, fmt.Sprintf("vtgate:%s", vcursor.Session().GetSessionUUID()), ) if err != nil { From 309a7f1a964f541a7a024883ed4b9bebd9193d84 Mon Sep 17 00:00:00 2001 From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Date: Thu, 13 May 2021 12:42:14 +0300 Subject: [PATCH 32/63] testing: expect error text Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> --- go/vt/schema/online_ddl_test.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/go/vt/schema/online_ddl_test.go b/go/vt/schema/online_ddl_test.go index 8b196759538..9f8e8f78886 100644 --- a/go/vt/schema/online_ddl_test.go +++ b/go/vt/schema/online_ddl_test.go @@ -242,10 +242,11 @@ func TestNewOnlineDDL(t *testing.T) { func TestNewOnlineDDLs(t *testing.T) { type expect struct { - sqls []string - notDDL bool - parseError bool - isError bool + sqls []string + notDDL bool + parseError bool + isError bool + expectErrorText string } tests := map[string]expect{ "alter table t add column i int, drop column d": {sqls: []string{"alter table t add column i int, drop column d"}}, @@ -266,7 +267,7 @@ func TestNewOnlineDDLs(t *testing.T) { "drop view t": {isError: true}, "rename table t to t1": {isError: true}, "alter table corder add FOREIGN KEY my_fk(customer_id) reference customer(customer_id)": {isError: true}, - "CREATE TABLE if not exists t (id bigint unsigned NOT NULL AUTO_INCREMENT, ts datetime(6) DEFAULT NULL, ts_generated int GENERATED ALWAYS AS (ts) VIRTUAL, PRIMARY KEY (id)) ENGINE=InnoDB": {isError: true}, + "CREATE TABLE if not exists t (id bigint unsigned NOT NULL AUTO_INCREMENT, ts datetime(6) DEFAULT NULL, ts_generated int GENERATED ALWAYS AS (ts) VIRTUAL, PRIMARY KEY (id)) ENGINE=InnoDB": {isError: true, expectErrorText: "near"}, } migrationContext := "354b-11eb-82cd-f875a4d24e90" for query, expect := range tests { @@ -287,6 +288,7 @@ func TestNewOnlineDDLs(t *testing.T) { onlineDDLs, err := NewOnlineDDLs("test_ks", query, ddlStmt, NewDDLStrategySetting(DDLStrategyOnline, ""), migrationContext) if expect.isError { assert.Error(t, err) + assert.Contains(t, err.Error(), expect.expectErrorText) return } assert.NoError(t, err) From 730a8697994752dc85ca2aca984910e0cff5fe7c Mon Sep 17 00:00:00 2001 From: GuptaManan100 Date: Thu, 13 May 2021 15:13:49 +0530 Subject: [PATCH 33/63] added test for the new flag Signed-off-by: GuptaManan100 --- go/vt/vtgate/executor_ddl_test.go | 67 +++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 go/vt/vtgate/executor_ddl_test.go diff --git a/go/vt/vtgate/executor_ddl_test.go b/go/vt/vtgate/executor_ddl_test.go new file mode 100644 index 00000000000..562752e6eb6 --- /dev/null +++ b/go/vt/vtgate/executor_ddl_test.go @@ -0,0 +1,67 @@ +/* +Copyright 2021 The Vitess Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package vtgate + +import ( + "fmt" + "testing" + + vtgatepb "vitess.io/vitess/go/vt/proto/vtgate" + + "github.com/stretchr/testify/require" +) + +func TestDDLFlags(t *testing.T) { + executor, _, _, _ := createLegacyExecutorEnv() + session := NewSafeSession(&vtgatepb.Session{TargetString: KsTestUnsharded}) + + testcases := []struct { + enableDirectDDL bool + enableOnlineDDL bool + sql string + wantErr bool + err string + }{ + { + enableDirectDDL: false, + sql: "create table t (id int)", + wantErr: true, + err: "direct DDL is disabled", + }, { + enableDirectDDL: true, + sql: "create table t (id int)", + wantErr: false, + }, { + enableOnlineDDL: false, + sql: "revert vitess_migration 'abc'", + wantErr: true, + err: "online DDL is disabled", + }, + } + for _, testcase := range testcases { + t.Run(fmt.Sprintf("%s-%v-%v", testcase.sql, testcase.enableDirectDDL, testcase.enableOnlineDDL), func(t *testing.T) { + *enableDirectDDL = testcase.enableDirectDDL + *enableOnlineDDL = testcase.enableOnlineDDL + _, err := executor.Execute(ctx, "TestDDLFlags", session, testcase.sql, nil) + if testcase.wantErr { + require.EqualError(t, err, testcase.err) + } else { + require.NoError(t, err) + } + }) + } +} From a2a498c9d15fa4131218961278bee9a94bbc0e0a Mon Sep 17 00:00:00 2001 From: GuptaManan100 Date: Thu, 13 May 2021 15:15:18 +0530 Subject: [PATCH 34/63] ran make sizegen Signed-off-by: GuptaManan100 --- go/vt/vtgate/engine/cached_size.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/vt/vtgate/engine/cached_size.go b/go/vt/vtgate/engine/cached_size.go index ef8d5b448bb..0da3cc8038d 100644 --- a/go/vt/vtgate/engine/cached_size.go +++ b/go/vt/vtgate/engine/cached_size.go @@ -90,7 +90,7 @@ func (cached *DDL) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(58) + size += int64(59) } // field Keyspace *vitess.io/vitess/go/vt/vtgate/vindexes.Keyspace size += cached.Keyspace.CachedSize(true) From e37e604cadd4890bdbfd34311f615e9dca8f8c26 Mon Sep 17 00:00:00 2001 From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Date: Thu, 13 May 2021 13:13:50 +0300 Subject: [PATCH 35/63] simplify logic. Remove ParseError from AST nodes. Use ParseStrictDDL() to extract parsing error. Remove legacy check for alter options Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> --- go/vt/schema/online_ddl.go | 9 +--- go/vt/schema/online_ddl_test.go | 4 +- go/vt/sqlparser/ast.go | 94 +-------------------------------- go/vt/sqlparser/ast_clone.go | 31 ----------- go/vt/sqlparser/ast_equals.go | 50 ++---------------- go/vt/sqlparser/parser.go | 1 - 6 files changed, 8 insertions(+), 181 deletions(-) diff --git a/go/vt/schema/online_ddl.go b/go/vt/schema/online_ddl.go index 2536848d414..dfa59f7b905 100644 --- a/go/vt/schema/online_ddl.go +++ b/go/vt/schema/online_ddl.go @@ -155,20 +155,13 @@ func ParseOnlineDDLStatement(sql string) (ddlStmt sqlparser.DDLStatement, action func onlineDDLStatementSanity(sql string, ddlStmt sqlparser.DDLStatement) error { // SQL statement sanity checks: if !ddlStmt.IsFullyParsed() { - if err := ddlStmt.GetParseError(); err != nil { + if _, err := sqlparser.ParseStrictDDL(sql); err != nil { // More information about the reason why the statement is not fully parsed: return vterrors.NewErrorf(vtrpcpb.Code_INVALID_ARGUMENT, vterrors.SyntaxError, "%v", err) } return vterrors.NewErrorf(vtrpcpb.Code_INVALID_ARGUMENT, vterrors.SyntaxError, "cannot parse statement: %v", sql) } - switch ddlStmt := ddlStmt.(type) { - case *sqlparser.AlterTable: - if len(ddlStmt.AlterOptions) == 0 { - return vterrors.NewErrorf(vtrpcpb.Code_INVALID_ARGUMENT, vterrors.SyntaxError, "cannot parse statement: %v", sql) - } - } - if err := sqlparser.Walk(errorOnFKWalk, ddlStmt); err == ErrForeignKeyFound { return vterrors.Errorf(vtrpcpb.Code_ABORTED, "foreign key constraint are not supported in online DDL") } diff --git a/go/vt/schema/online_ddl_test.go b/go/vt/schema/online_ddl_test.go index 9f8e8f78886..ab99c645883 100644 --- a/go/vt/schema/online_ddl_test.go +++ b/go/vt/schema/online_ddl_test.go @@ -266,8 +266,8 @@ func TestNewOnlineDDLs(t *testing.T) { "truncate table t": {isError: true}, "drop view t": {isError: true}, "rename table t to t1": {isError: true}, - "alter table corder add FOREIGN KEY my_fk(customer_id) reference customer(customer_id)": {isError: true}, - "CREATE TABLE if not exists t (id bigint unsigned NOT NULL AUTO_INCREMENT, ts datetime(6) DEFAULT NULL, ts_generated int GENERATED ALWAYS AS (ts) VIRTUAL, PRIMARY KEY (id)) ENGINE=InnoDB": {isError: true, expectErrorText: "near"}, + "alter table corder add FOREIGN KEY my_fk(customer_id) reference customer(customer_id)": {isError: true}, + "CREATE TABLE if not exists t (id bigint unsigned NOT NULL AUTO_INCREMENT, ts datetime(6) DEFAULT NULL, error_column NO_SUCH_TYPE NOT NULL, PRIMARY KEY (id)) ENGINE=InnoDB": {isError: true, expectErrorText: "near"}, } migrationContext := "354b-11eb-82cd-f875a4d24e90" for query, expect := range tests { diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index 9a0ea05d1e7..2d20297e7bf 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -67,8 +67,6 @@ type ( SetComments(comments Comments) GetComments() Comments SetFullyParsed(fullyParsed bool) - SetParseError(parseError error) - GetParseError() error Statement } @@ -437,7 +435,6 @@ type ( PartitionSpec *PartitionSpec Comments Comments FullyParsed bool - ParseError error } // DropTable represents a DROP TABLE statement. @@ -445,9 +442,8 @@ type ( Temp bool FromTables TableNames // The following fields are set if a DDL was fully analyzed. - IfExists bool - Comments Comments - ParseError error + IfExists bool + Comments Comments } // DropView represents a DROP VIEW statement. @@ -465,7 +461,6 @@ type ( OptLike *OptLike Comments Comments FullyParsed bool - ParseError error } // CreateView represents a CREATE VIEW query @@ -1193,91 +1188,6 @@ func (node *AlterView) GetComments() Comments { return nil } -// SetParseError implements DDLStatement. -func (node *RenameTable) SetParseError(parseError error) { - // irrelevant -} - -// SetParseError implements DDLStatement. -func (node *TruncateTable) SetParseError(parseError error) { - // irrelevant -} - -// SetParseError implements DDLStatement. -func (node *AlterTable) SetParseError(parseError error) { - node.ParseError = parseError -} - -// SetParseError implements DDLStatement. -func (node *CreateTable) SetParseError(parseError error) { - node.ParseError = parseError -} - -// SetParseError implements DDLStatement. -func (node *CreateView) SetParseError(parseError error) { - // irrelevant -} - -// SetParseError implements DDLStatement. -func (node *DropTable) SetParseError(parseError error) { - node.ParseError = parseError -} - -// SetParseError implements DDLStatement. -func (node *DropView) SetParseError(parseError error) { - // irrelevant -} - -// SetParseError implements DDLStatement. -func (node *AlterView) SetParseError(parseError error) { - // irrelevant -} - -// GetParseError implements DDLStatement. -func (node *RenameTable) GetParseError() error { - // irrelevant - return nil -} - -// GetParseError implements DDLStatement. -func (node *TruncateTable) GetParseError() error { - // irrelevant - return nil -} - -// GetParseError implements DDLStatement. -func (node *AlterTable) GetParseError() error { - return node.ParseError -} - -// GetParseError implements DDLStatement. -func (node *CreateTable) GetParseError() error { - return node.ParseError -} - -// GetParseError implements DDLStatement. -func (node *CreateView) GetParseError() error { - // irrelevant - return nil -} - -// GetParseError implements DDLStatement. -func (node *DropTable) GetParseError() error { - return node.ParseError -} - -// GetParseError implements DDLStatement. -func (node *DropView) GetParseError() error { - // irrelevant - return nil -} - -// GetParseError implements DDLStatement. -func (node *AlterView) GetParseError() error { - // irrelevant - return nil -} - // GetToTables implements the DDLStatement interface func (node *RenameTable) GetToTables() TableNames { var toTables TableNames diff --git a/go/vt/sqlparser/ast_clone.go b/go/vt/sqlparser/ast_clone.go index 8943e508614..3050d09e7cb 100644 --- a/go/vt/sqlparser/ast_clone.go +++ b/go/vt/sqlparser/ast_clone.go @@ -427,7 +427,6 @@ func CloneRefOfAlterTable(n *AlterTable) *AlterTable { out.AlterOptions = CloneSliceOfAlterOption(n.AlterOptions) out.PartitionSpec = CloneRefOfPartitionSpec(n.PartitionSpec) out.Comments = CloneComments(n.Comments) - out.ParseError = Cloneerror(n.ParseError) return &out } @@ -690,7 +689,6 @@ func CloneRefOfCreateTable(n *CreateTable) *CreateTable { out.TableSpec = CloneRefOfTableSpec(n.TableSpec) out.OptLike = CloneRefOfOptLike(n.OptLike) out.Comments = CloneComments(n.Comments) - out.ParseError = Cloneerror(n.ParseError) return &out } @@ -791,7 +789,6 @@ func CloneRefOfDropTable(n *DropTable) *DropTable { out := *n out.FromTables = CloneTableNames(n.FromTables) out.Comments = CloneComments(n.Comments) - out.ParseError = Cloneerror(n.ParseError) return &out } @@ -2238,20 +2235,6 @@ func CloneSliceOfAlterOption(n []AlterOption) []AlterOption { return res } -// Cloneerror creates a deep clone of the input. -func Cloneerror(in error) error { - if in == nil { - return nil - } - switch in := in.(type) { - case PositionedErr: - return ClonePositionedErr(in) - default: - // this should never happen - return nil - } -} - // CloneSliceOfColIdent creates a deep clone of the input. func CloneSliceOfColIdent(n []ColIdent) []ColIdent { res := make([]ColIdent, 0, len(n)) @@ -2470,11 +2453,6 @@ func CloneCollateAndCharset(n CollateAndCharset) CollateAndCharset { return *CloneRefOfCollateAndCharset(&n) } -// ClonePositionedErr creates a deep clone of the input. -func ClonePositionedErr(n PositionedErr) PositionedErr { - return *CloneRefOfPositionedErr(&n) -} - // CloneRefOfIndexColumn creates a deep clone of the input. func CloneRefOfIndexColumn(n *IndexColumn) *IndexColumn { if n == nil { @@ -2525,12 +2503,3 @@ func CloneRefOfCollateAndCharset(n *CollateAndCharset) *CollateAndCharset { out := *n return &out } - -// CloneRefOfPositionedErr creates a deep clone of the input. -func CloneRefOfPositionedErr(n *PositionedErr) *PositionedErr { - if n == nil { - return nil - } - out := *n - return &out -} diff --git a/go/vt/sqlparser/ast_equals.go b/go/vt/sqlparser/ast_equals.go index 50a79113da5..08b60de6f13 100644 --- a/go/vt/sqlparser/ast_equals.go +++ b/go/vt/sqlparser/ast_equals.go @@ -1032,8 +1032,7 @@ func EqualsRefOfAlterTable(a, b *AlterTable) bool { EqualsTableName(a.Table, b.Table) && EqualsSliceOfAlterOption(a.AlterOptions, b.AlterOptions) && EqualsRefOfPartitionSpec(a.PartitionSpec, b.PartitionSpec) && - EqualsComments(a.Comments, b.Comments) && - Equalserror(a.ParseError, b.ParseError) + EqualsComments(a.Comments, b.Comments) } // EqualsRefOfAlterView does deep equals between the two objects. @@ -1360,8 +1359,7 @@ func EqualsRefOfCreateTable(a, b *CreateTable) bool { EqualsTableName(a.Table, b.Table) && EqualsRefOfTableSpec(a.TableSpec, b.TableSpec) && EqualsRefOfOptLike(a.OptLike, b.OptLike) && - EqualsComments(a.Comments, b.Comments) && - Equalserror(a.ParseError, b.ParseError) + EqualsComments(a.Comments, b.Comments) } // EqualsRefOfCreateView does deep equals between the two objects. @@ -1481,8 +1479,7 @@ func EqualsRefOfDropTable(a, b *DropTable) bool { return a.Temp == b.Temp && a.IfExists == b.IfExists && EqualsTableNames(a.FromTables, b.FromTables) && - EqualsComments(a.Comments, b.Comments) && - Equalserror(a.ParseError, b.ParseError) + EqualsComments(a.Comments, b.Comments) } // EqualsRefOfDropView does deep equals between the two objects. @@ -3704,27 +3701,6 @@ func EqualsSliceOfAlterOption(a, b []AlterOption) bool { return true } -// Equalserror does deep equals between the two objects. -func Equalserror(inA, inB error) bool { - if inA == nil && inB == nil { - return true - } - if inA == nil || inB == nil { - return false - } - switch a := inA.(type) { - case PositionedErr: - b, ok := inB.(PositionedErr) - if !ok { - return false - } - return EqualsPositionedErr(a, b) - default: - // this should never happen - return false - } -} - // EqualsSliceOfColIdent does deep equals between the two objects. func EqualsSliceOfColIdent(a, b []ColIdent) bool { if len(a) != len(b) { @@ -4028,13 +4004,6 @@ func EqualsCollateAndCharset(a, b CollateAndCharset) bool { a.Type == b.Type } -// EqualsPositionedErr does deep equals between the two objects. -func EqualsPositionedErr(a, b PositionedErr) bool { - return a.Err == b.Err && - a.Pos == b.Pos && - a.Near == b.Near -} - // EqualsRefOfIndexColumn does deep equals between the two objects. func EqualsRefOfIndexColumn(a, b *IndexColumn) bool { if a == b { @@ -4097,16 +4066,3 @@ func EqualsRefOfCollateAndCharset(a, b *CollateAndCharset) bool { a.Value == b.Value && a.Type == b.Type } - -// EqualsRefOfPositionedErr does deep equals between the two objects. -func EqualsRefOfPositionedErr(a, b *PositionedErr) bool { - if a == b { - return true - } - if a == nil || b == nil { - return false - } - return a.Err == b.Err && - a.Pos == b.Pos && - a.Near == b.Near -} diff --git a/go/vt/sqlparser/parser.go b/go/vt/sqlparser/parser.go index 8b441edfb70..b17f9832dce 100644 --- a/go/vt/sqlparser/parser.go +++ b/go/vt/sqlparser/parser.go @@ -87,7 +87,6 @@ func Parse2(sql string) (Statement, BindVars, error) { x.SetFullyParsed(false) case DDLStatement: x.SetFullyParsed(false) - x.SetParseError(tokenizer.LastError) } tokenizer.ParseTree = tokenizer.partialDDL return tokenizer.ParseTree, tokenizer.BindVars, nil From 3296dfe2cd253260fde0f61931e1f6e435b634bc Mon Sep 17 00:00:00 2001 From: GuptaManan100 Date: Thu, 13 May 2021 16:30:48 +0530 Subject: [PATCH 36/63] remove side-effect of the created function Signed-off-by: GuptaManan100 --- go/vt/vtgate/executor_ddl_test.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/go/vt/vtgate/executor_ddl_test.go b/go/vt/vtgate/executor_ddl_test.go index 562752e6eb6..23463846819 100644 --- a/go/vt/vtgate/executor_ddl_test.go +++ b/go/vt/vtgate/executor_ddl_test.go @@ -28,7 +28,10 @@ import ( func TestDDLFlags(t *testing.T) { executor, _, _, _ := createLegacyExecutorEnv() session := NewSafeSession(&vtgatepb.Session{TargetString: KsTestUnsharded}) - + defer func() { + *enableOnlineDDL = true + *enableDirectDDL = true + }() testcases := []struct { enableDirectDDL bool enableOnlineDDL bool From 8a0f88a55c6bc73b870555504ccf1f3984b0a145 Mon Sep 17 00:00:00 2001 From: Florent Poinsard Date: Thu, 13 May 2021 14:44:22 +0200 Subject: [PATCH 37/63] Addition of parenthesis around AS' expression Signed-off-by: Florent Poinsard --- go/vt/sqlparser/ast_format.go | 2 +- go/vt/sqlparser/ast_format_fast.go | 3 +- go/vt/sqlparser/parse_test.go | 4 +- go/vt/sqlparser/sql.go | 4830 ++++++++++++++-------------- go/vt/sqlparser/sql.y | 41 +- 5 files changed, 2436 insertions(+), 2444 deletions(-) diff --git a/go/vt/sqlparser/ast_format.go b/go/vt/sqlparser/ast_format.go index d662695cf64..ed40a465a3c 100644 --- a/go/vt/sqlparser/ast_format.go +++ b/go/vt/sqlparser/ast_format.go @@ -470,7 +470,7 @@ func (ct *ColumnType) Format(buf *TrackedBuffer) { buf.astPrintf(ct, " %s %s %v", keywordStrings[ON], keywordStrings[UPDATE], ct.Options.OnUpdate) } if ct.Options.As != nil { - buf.astPrintf(ct, " %s %v", keywordStrings[AS], ct.Options.As) + buf.astPrintf(ct, " %s (%v)", keywordStrings[AS], ct.Options.As) } if ct.Options.Autoincrement { buf.astPrintf(ct, " %s", keywordStrings[AUTO_INCREMENT]) diff --git a/go/vt/sqlparser/ast_format_fast.go b/go/vt/sqlparser/ast_format_fast.go index 9fbf4e342b8..7d4d8bd624e 100644 --- a/go/vt/sqlparser/ast_format_fast.go +++ b/go/vt/sqlparser/ast_format_fast.go @@ -681,8 +681,9 @@ func (ct *ColumnType) formatFast(buf *TrackedBuffer) { if ct.Options.As != nil { buf.WriteByte(' ') buf.WriteString(keywordStrings[AS]) - buf.WriteByte(' ') + buf.WriteString(" (") ct.Options.As.formatFast(buf) + buf.WriteByte(')') } if ct.Options.Autoincrement { buf.WriteByte(' ') diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index 5c98b00612a..b21940e9787 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -2958,7 +2958,7 @@ func TestCreateTable(t *testing.T) { input: `create table t1 ( first_name varchar(10), last_name varchar(10), - full_name varchar(255) as concat(first_name, ' ', last_name) + full_name varchar(255) as (concat(first_name, ' ', last_name)) )`, }, { input: `create table t1 (first_name varchar(10), last_name varchar(10), @@ -2966,7 +2966,7 @@ func TestCreateTable(t *testing.T) { output: `create table t1 ( first_name varchar(10), last_name varchar(10), - full_name varchar(255) as concat(first_name, ' ', last_name) + full_name varchar(255) as (concat(first_name, ' ', last_name)) )`, }, } diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index a7b200ee0f0..b43fff35883 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -1098,739 +1098,572 @@ var yyExca = [...]int{ 32, 826, 85, 826, -2, 609, - -1, 2166, + -1, 2167, 48, 901, -2, 895, } const yyPrivate = 57344 -const yyLast = 28368 +const yyLast = 28131 var yyAct = [...]int{ - 564, 2260, 2251, 2091, 2206, 2193, 1997, 2144, 925, 2219, - 2167, 83, 3, 1729, 1696, 2116, 536, 1815, 1578, 2088, - 1918, 1510, 1007, 1919, 522, 1436, 1730, 1054, 1915, 1795, - 507, 1858, 1543, 505, 1528, 1548, 1819, 1796, 577, 818, - 1797, 755, 1489, 1061, 1930, 1385, 1877, 1163, 1563, 165, - 1393, 1656, 165, 1088, 470, 165, 1576, 1716, 876, 1297, - 486, 123, 165, 611, 1609, 1189, 1562, 1098, 1550, 905, - 165, 1789, 1091, 1471, 586, 1478, 1438, 81, 1059, 137, - 1064, 783, 1084, 1046, 509, 1419, 33, 1362, 498, 571, - 943, 1081, 486, 1294, 762, 486, 165, 486, 1082, 786, - 608, 1560, 1396, 1196, 1280, 1454, 784, 759, 763, 789, - 796, 785, 1539, 1097, 1494, 1095, 79, 1302, 1071, 1529, - 1207, 861, 106, 140, 1020, 923, 100, 101, 8, 7, - 1158, 6, 78, 1023, 1838, 1837, 1607, 1266, 1181, 107, - 493, 1865, 1866, 2118, 167, 168, 169, 1433, 1434, 1351, - 1350, 1349, 1348, 1347, 944, 1346, 496, 1339, 497, 2233, - 1694, 2163, 766, 1966, 771, 820, 572, 593, 597, 102, - 2067, 2140, 2139, 445, 2086, 822, 756, 2087, 834, 835, - 821, 838, 839, 840, 841, 108, 2259, 844, 845, 846, + 564, 2262, 2253, 2091, 2208, 2195, 2145, 1997, 1729, 2168, + 2116, 2221, 83, 3, 1918, 1696, 536, 1815, 1578, 925, + 2088, 1510, 1919, 1436, 1007, 1061, 1730, 1543, 1054, 1915, + 522, 1795, 1819, 1858, 876, 1716, 505, 1548, 1563, 818, + 1797, 755, 1796, 137, 502, 1489, 1930, 1877, 1088, 165, + 1393, 1576, 165, 1656, 470, 165, 1297, 783, 123, 81, + 486, 507, 165, 1385, 1609, 1789, 611, 1098, 1562, 577, + 165, 1550, 1091, 905, 1064, 1189, 1471, 1478, 1059, 1081, + 586, 1438, 1082, 1084, 1046, 1362, 1528, 1207, 33, 571, + 498, 943, 486, 509, 1419, 486, 165, 486, 1294, 789, + 762, 786, 1494, 1196, 1560, 1280, 1454, 1539, 784, 785, + 1071, 608, 1396, 79, 759, 923, 1097, 763, 1095, 100, + 140, 101, 861, 1181, 106, 796, 1020, 8, 7, 6, + 1158, 78, 1163, 1023, 1302, 1838, 1837, 1607, 1266, 493, + 107, 1865, 1866, 167, 168, 169, 1351, 2118, 1433, 1434, + 1350, 1349, 756, 1348, 1347, 1346, 496, 1339, 497, 2235, + 1529, 593, 597, 1694, 771, 820, 102, 766, 572, 2164, + 108, 2067, 823, 2141, 2140, 822, 821, 1966, 834, 835, + 2256, 838, 839, 840, 841, 1555, 2261, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, - 857, 858, 2216, 84, 494, 2254, 2188, 605, 823, 80, - 799, 612, 944, 1555, 2247, 2092, 1595, 2215, 2187, 1646, - 954, 800, 778, 102, 1894, 2030, 777, 776, 1172, 824, - 825, 826, 35, 1695, 1553, 72, 39, 40, 1945, 1946, - 86, 87, 88, 89, 90, 91, 161, 831, 97, 1845, - 912, 162, 914, 1844, 440, 1944, 864, 1505, 1506, 549, - 836, 555, 556, 553, 554, 1504, 552, 551, 550, 1435, - 1099, 103, 1100, 125, 570, 1864, 557, 558, 954, 161, - 1644, 474, 1760, 1495, 145, 1759, 921, 102, 1761, 911, - 913, 167, 168, 169, 837, 895, 779, 568, 772, 567, - 775, 1779, 870, 871, 103, 1522, 900, 901, 896, 71, - 950, 889, 1999, 942, 1552, 135, 883, 145, 2190, 2021, - 124, 884, 2019, 595, 1340, 1341, 1342, 860, 883, 882, - 484, 881, 1256, 884, 1286, 1338, 473, 482, 142, 488, - 143, 1050, 775, 859, 1820, 112, 113, 134, 133, 160, - 1620, 1618, 1619, 1577, 775, 1993, 767, 773, 1764, 1841, - 1615, 770, 1610, 1994, 769, 768, 904, 2253, 950, 1281, - 918, 142, 866, 143, 1257, 1853, 1258, 909, 898, 899, - 1625, 910, 160, 920, 897, 843, 2234, 890, 2000, 499, - 842, 915, 902, 2081, 2001, 1612, 2136, 129, 110, 136, - 117, 109, 903, 130, 131, 1622, 863, 1623, 146, 1624, - 474, 773, 474, 908, 1616, 1579, 1775, 1769, 151, 118, - 1472, 816, 815, 814, 813, 812, 1777, 807, 1614, 805, - 811, 810, 809, 121, 119, 114, 115, 116, 120, 1965, - 165, 146, 165, 111, 804, 165, 780, 1175, 817, 2137, - 2266, 151, 122, 949, 946, 947, 948, 953, 955, 952, - 2245, 951, 1771, 916, 774, 473, 474, 473, 945, 1613, - 760, 486, 486, 486, 1287, 792, 760, 760, 893, 791, - 758, 1495, 1857, 1295, 1773, 1195, 1194, 1767, 1554, 486, - 486, 862, 798, 1697, 1699, 2186, 1561, 1843, 2264, 1768, - 599, 1854, 936, 917, 1601, 879, 774, 885, 886, 887, - 888, 949, 946, 947, 948, 953, 955, 952, 774, 951, - 808, 473, 806, 1878, 138, 833, 945, 1291, 922, 930, - 827, 798, 2191, 1973, 1840, 798, 919, 2153, 969, 968, - 978, 979, 971, 972, 973, 974, 975, 976, 977, 970, - 1645, 1903, 980, 1902, 1830, 2207, 1901, 138, 1170, 1776, - 1774, 1169, 1168, 99, 73, 1292, 1166, 1880, 165, 444, - 439, 2174, 798, 1268, 1267, 1269, 1270, 1271, 1860, 1860, - 132, 2050, 1597, 1859, 1859, 1052, 992, 993, 1943, 990, - 1698, 880, 126, 1721, 1664, 127, 486, 927, 928, 165, - 1675, 165, 165, 869, 486, 872, 1587, 1500, 1672, 1285, - 486, 892, 608, 1075, 1852, 1051, 798, 1851, 1005, 939, - 937, 874, 938, 894, 1008, 1511, 980, 1756, 798, 1882, - 797, 1886, 1334, 1881, 906, 1879, 878, 791, 794, 795, - 1884, 760, 1369, 1080, 1450, 788, 792, 960, 2262, 1883, - 1047, 2263, 970, 2261, 1896, 980, 1367, 1368, 1366, 2182, - 819, 1065, 1885, 1887, 787, 958, 959, 957, 1928, 797, - 1772, 832, 1611, 797, 1022, 1025, 1027, 1029, 1030, 1032, - 1034, 1035, 1303, 960, 1026, 1028, 1063, 1031, 1033, 1282, - 1036, 1283, 959, 957, 1284, 94, 139, 144, 141, 147, - 148, 149, 150, 152, 153, 154, 155, 1044, 1596, 960, - 797, 1288, 156, 157, 158, 159, 801, 791, 1101, 1420, - 167, 168, 169, 612, 1387, 940, 802, 865, 1808, 139, - 144, 141, 147, 148, 149, 150, 152, 153, 154, 155, - 95, 992, 993, 1594, 803, 156, 157, 158, 159, 992, - 993, 877, 907, 1592, 797, 165, 807, 1589, 2154, 1159, - 1794, 791, 794, 795, 1589, 760, 797, 957, 1167, 788, - 792, 805, 801, 791, 1420, 2248, 1682, 1671, 1053, 1948, - 1388, 1593, 802, 960, 958, 959, 957, 486, 1591, 1191, - 973, 974, 975, 976, 977, 970, 2267, 1200, 980, 71, - 1304, 1204, 960, 2249, 486, 486, 1068, 486, 1275, 486, - 486, 1365, 486, 486, 486, 486, 486, 486, 1173, 1174, - 167, 168, 169, 2066, 1784, 961, 2239, 486, 1187, 1273, - 1201, 165, 1240, 968, 978, 979, 971, 972, 973, 974, - 975, 976, 977, 970, 1180, 2243, 980, 1253, 2065, 958, - 959, 957, 1971, 1905, 2240, 1235, 1236, 1898, 486, 598, - 165, 499, 1199, 958, 959, 957, 2268, 960, 1237, 1274, - 1018, 1293, 1649, 1650, 1651, 165, 1243, 1244, 1263, 1096, - 1785, 960, 1249, 1250, 1455, 1456, 1793, 1165, 1792, 1670, - 1272, 165, 167, 168, 169, 1558, 1763, 1669, 165, 1198, - 1276, 1906, 1057, 1060, 1178, 1197, 1197, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 486, 486, 486, 1190, - 1177, 1176, 958, 959, 957, 1209, 1261, 1210, 1260, 1212, - 1214, 1259, 1422, 1218, 1220, 1222, 1224, 1226, 1299, 1262, - 960, 1251, 1245, 165, 1357, 1359, 1360, 1238, 1307, 600, - 601, 1305, 1306, 1242, 1241, 1311, 1358, 1313, 1314, 1315, - 1316, 1216, 2242, 2241, 1320, 1310, 1296, 2227, 958, 959, - 957, 603, 1317, 1318, 1319, 1171, 2225, 2107, 1335, 2063, - 1363, 1386, 2038, 167, 168, 169, 960, 1571, 1952, 102, - 1389, 1907, 777, 776, 1802, 1790, 1345, 525, 524, 527, - 528, 529, 530, 1640, 486, 1605, 526, 1604, 531, 1309, - 1444, 167, 168, 169, 1397, 1569, 580, 167, 168, 169, - 1300, 1254, 167, 168, 169, 1264, 1390, 1391, 978, 979, - 971, 972, 973, 974, 975, 976, 977, 970, 486, 486, - 980, 1330, 1331, 1332, 1408, 1411, 1452, 1252, 1364, 165, - 1421, 1248, 1403, 1247, 971, 972, 973, 974, 975, 976, - 977, 970, 1246, 486, 980, 1398, 1996, 1980, 2244, 1399, - 165, 80, 1443, 486, 1980, 2213, 581, 165, 1008, 165, - 1980, 2180, 1980, 2175, 1397, 1980, 581, 165, 165, 1496, - 1445, 1427, 1428, 2134, 486, 2084, 581, 486, 1490, 2133, - 1457, 2090, 608, 1980, 2082, 608, 1589, 581, 486, 2048, - 581, 1451, 1404, 1405, 1963, 1962, 1410, 1413, 1414, 1959, - 1960, 1959, 1958, 1400, 1463, 581, 1495, 1839, 1162, 1824, - 1817, 1818, 1475, 581, 35, 1469, 958, 959, 957, 1399, - 1465, 1493, 1426, 956, 581, 1429, 1430, 1717, 1496, 1515, - 35, 581, 1717, 1497, 960, 1822, 1530, 1531, 1532, 1724, - 1805, 1499, 1523, 486, 1524, 1525, 1526, 1527, 82, 1564, - 1565, 1566, 1162, 1161, 1568, 1570, 1107, 1106, 1590, 2068, - 1535, 1536, 1537, 1538, 1725, 1519, 1514, 486, 1750, 1518, - 1545, 1467, 1916, 486, 1200, 1927, 1495, 1200, 2045, 1200, - 2123, 1927, 1301, 1464, 1498, 2181, 956, 1588, 1502, 1501, - 1551, 71, 1497, 612, 1517, 1980, 612, 1961, 1475, 1516, - 1495, 1474, 1475, 1927, 1503, 35, 1687, 71, 1575, 2069, - 2070, 2071, 1686, 1937, 1463, 1589, 1463, 486, 1589, 1386, - 1572, 1453, 1431, 1343, 1386, 1386, 574, 969, 968, 978, - 979, 971, 972, 973, 974, 975, 976, 977, 970, 1582, - 1290, 980, 1585, 1093, 1586, 581, 1546, 1541, 1542, 1557, - 1559, 1556, 782, 1567, 1475, 1463, 1231, 781, 1598, 165, - 1352, 1353, 1354, 1355, 1600, 799, 165, 1581, 2205, 1602, - 1603, 165, 165, 71, 1599, 165, 800, 165, 1546, 1584, - 1580, 565, 71, 165, 2146, 2089, 1197, 1657, 2056, 1164, - 165, 969, 968, 978, 979, 971, 972, 973, 974, 975, - 976, 977, 970, 71, 1544, 980, 1232, 1233, 1234, 2072, - 1995, 1825, 1608, 1540, 1534, 1406, 1407, 165, 486, 1533, - 1278, 1192, 1188, 1160, 96, 1798, 1799, 1228, 864, 1998, - 166, 2147, 2033, 166, 1931, 1932, 166, 1555, 2256, 2252, - 1978, 487, 1977, 166, 1635, 1636, 1976, 1934, 1916, 1638, - 1809, 166, 1629, 499, 1741, 1336, 2073, 2074, 1639, 1742, - 1739, 1936, 2236, 1363, 1738, 1740, 1628, 1743, 1737, 1484, - 1485, 2214, 1799, 487, 1229, 1230, 487, 166, 487, 969, + 857, 858, 84, 494, 2086, 2218, 1553, 2087, 944, 2190, + 605, 1646, 799, 2249, 445, 2092, 1595, 2217, 2189, 777, + 102, 776, 1894, 80, 2030, 944, 1172, 1945, 1946, 1695, + 1845, 824, 825, 826, 1844, 775, 800, 870, 871, 86, + 87, 88, 89, 90, 91, 1944, 595, 97, 1505, 1506, + 162, 35, 612, 440, 72, 39, 40, 912, 1760, 914, + 161, 1759, 831, 778, 1761, 1099, 1864, 1100, 1644, 1504, + 1435, 864, 895, 570, 954, 1495, 474, 772, 568, 567, + 896, 1779, 1522, 2021, 102, 103, 1552, 125, 837, 889, + 779, 954, 773, 167, 168, 169, 911, 913, 145, 2019, + 549, 836, 555, 556, 553, 554, 883, 552, 551, 550, + 1338, 884, 499, 1999, 900, 901, 484, 557, 558, 882, + 2192, 881, 921, 488, 1340, 1341, 1342, 860, 71, 135, + 482, 473, 883, 775, 124, 767, 1286, 884, 1820, 1050, + 770, 2255, 1577, 769, 768, 1620, 1618, 1619, 1841, 1256, + 1281, 1622, 142, 1623, 143, 1624, 897, 775, 859, 112, + 113, 134, 133, 160, 950, 890, 1610, 942, 2154, 969, 968, 978, 979, 971, 972, 973, 974, 975, 976, 977, - 970, 1908, 1706, 980, 591, 587, 1480, 1483, 1484, 1485, - 1481, 1062, 1482, 1486, 2049, 1509, 1931, 1932, 2168, 2170, - 588, 1983, 165, 1715, 1643, 1714, 2238, 2171, 2218, 2220, - 165, 2165, 1666, 1480, 1483, 1484, 1485, 1481, 2198, 1482, - 1486, 1364, 2195, 1704, 1652, 1066, 1067, 590, 1289, 589, - 2194, 1705, 566, 1955, 1803, 165, 1416, 829, 828, 2008, - 1055, 1798, 1863, 1703, 929, 1832, 165, 165, 165, 165, - 165, 1417, 1056, 1726, 1547, 1710, 1831, 572, 165, 103, - 1665, 2121, 165, 591, 587, 165, 165, 1661, 1662, 165, - 165, 165, 1954, 1748, 1681, 1731, 1953, 1719, 1583, 588, - 1206, 1205, 1762, 1193, 1047, 1693, 1701, 2043, 1679, 1455, - 1456, 1974, 1448, 1632, 2176, 2141, 1950, 1488, 1722, 1621, - 1783, 1713, 1709, 1648, 584, 585, 590, 1751, 589, 1712, - 1720, 1753, 575, 576, 1718, 578, 2226, 2224, 2223, 2199, - 1782, 2197, 1786, 1787, 1788, 2042, 486, 1979, 1573, 1780, - 1781, 165, 1744, 579, 1299, 82, 1749, 1732, 165, 2041, - 1735, 1757, 1754, 1911, 486, 1733, 1734, 1717, 1736, 1676, - 486, 2258, 2257, 2258, 1673, 1200, 1076, 1069, 2172, 1951, - 486, 1449, 1801, 1765, 574, 80, 1827, 1766, 1551, 85, - 77, 1, 1836, 457, 1432, 1045, 1791, 469, 1821, 2250, - 1265, 1255, 2093, 165, 165, 165, 165, 165, 1800, 2143, - 1986, 1549, 1835, 790, 1806, 128, 1512, 1513, 2209, 165, - 165, 1810, 1811, 1812, 1180, 93, 1834, 753, 92, 793, - 891, 1574, 2085, 1778, 1521, 1113, 1111, 1398, 1112, 1110, - 1826, 1399, 1115, 534, 1114, 1833, 1109, 1337, 483, 1487, - 163, 1102, 1070, 830, 447, 486, 1964, 1333, 1606, 453, - 988, 1386, 1711, 1874, 1758, 609, 602, 1922, 2192, 2164, - 2166, 2117, 1855, 2169, 2162, 2237, 2217, 1520, 1447, 1058, - 2040, 1910, 1680, 1017, 1876, 1418, 1085, 508, 1442, 1356, - 523, 486, 520, 521, 1861, 1867, 1458, 1862, 1723, 1875, - 962, 506, 165, 485, 1873, 500, 1888, 1077, 1889, 1479, - 1477, 1476, 486, 1895, 1630, 1089, 1933, 1929, 486, 486, - 1874, 1083, 1462, 1770, 1842, 1992, 941, 583, 1917, 495, - 765, 166, 1920, 166, 1683, 610, 166, 1415, 757, 2152, - 764, 165, 1647, 2029, 582, 1731, 61, 38, 490, 2232, - 932, 1914, 592, 32, 31, 30, 29, 28, 23, 22, - 21, 20, 487, 487, 487, 1707, 1708, 1060, 19, 25, - 1935, 18, 17, 16, 98, 48, 45, 1926, 43, 105, - 487, 487, 104, 1940, 46, 42, 867, 27, 26, 15, - 14, 13, 1956, 1957, 1972, 12, 11, 1939, 10, 1941, - 165, 1942, 9, 5, 4, 935, 24, 1006, 486, 2, - 0, 1904, 0, 0, 0, 0, 486, 2032, 0, 0, - 0, 165, 0, 0, 0, 1968, 0, 1967, 1969, 1970, - 0, 165, 0, 1985, 1947, 0, 0, 0, 1987, 1925, - 0, 1982, 0, 0, 0, 165, 0, 0, 165, 1981, - 1984, 0, 0, 0, 0, 0, 1989, 2009, 0, 166, - 1990, 0, 0, 1551, 969, 968, 978, 979, 971, 972, - 973, 974, 975, 976, 977, 970, 2004, 2003, 980, 0, - 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, - 166, 0, 166, 166, 0, 487, 2027, 0, 0, 0, - 0, 487, 0, 0, 2012, 2017, 0, 0, 0, 0, - 2006, 2007, 0, 0, 0, 0, 2014, 2015, 0, 2016, - 0, 0, 2018, 0, 2020, 0, 0, 0, 0, 1401, - 1402, 2039, 0, 0, 0, 0, 2044, 0, 0, 0, - 0, 0, 0, 0, 2053, 0, 0, 0, 1731, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2052, 0, 0, 0, 165, 0, 2061, 165, 165, 165, - 486, 486, 0, 2058, 0, 1446, 0, 0, 0, 0, - 0, 0, 0, 2062, 0, 2064, 0, 2079, 2059, 2094, - 486, 486, 486, 0, 0, 0, 1897, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2100, 969, 968, 978, - 979, 971, 972, 973, 974, 975, 976, 977, 970, 0, - 0, 980, 0, 0, 0, 486, 486, 486, 165, 0, - 2098, 1912, 0, 0, 0, 0, 0, 0, 0, 486, - 2099, 486, 2110, 2112, 2113, 0, 166, 486, 0, 2124, - 0, 0, 1920, 2114, 161, 2120, 1920, 0, 2106, 2122, - 2126, 0, 0, 2115, 2129, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2131, 0, 2132, 0, 487, 103, - 486, 2128, 0, 486, 0, 2135, 0, 2130, 0, 0, - 0, 2145, 145, 2138, 0, 487, 487, 2142, 487, 0, - 487, 487, 0, 487, 487, 487, 487, 487, 487, 0, - 0, 0, 0, 0, 610, 610, 610, 0, 487, 2161, - 0, 0, 166, 0, 0, 0, 0, 0, 165, 0, - 1920, 0, 931, 933, 2173, 0, 0, 486, 165, 0, - 0, 0, 0, 2179, 0, 0, 142, 0, 143, 487, - 0, 166, 0, 0, 2183, 0, 0, 160, 0, 0, - 0, 0, 0, 0, 0, 486, 166, 2196, 2189, 0, - 0, 0, 486, 486, 0, 0, 2200, 0, 2202, 2208, - 2145, 2210, 166, 0, 0, 2026, 0, 0, 2222, 166, - 0, 2221, 0, 1731, 0, 0, 486, 2228, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 487, 487, 487, - 2235, 0, 2031, 2231, 0, 0, 146, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 151, 0, 0, 2246, - 0, 0, 0, 0, 166, 499, 0, 0, 0, 1073, - 0, 0, 2054, 2255, 0, 2055, 0, 610, 2057, 964, - 2265, 967, 0, 1103, 0, 0, 0, 981, 982, 983, - 984, 985, 986, 987, 0, 965, 966, 963, 969, 968, - 978, 979, 971, 972, 973, 974, 975, 976, 977, 970, - 0, 0, 980, 0, 0, 0, 0, 0, 0, 2025, - 0, 0, 0, 0, 0, 487, 969, 968, 978, 979, - 971, 972, 973, 974, 975, 976, 977, 970, 0, 0, - 980, 0, 1659, 0, 0, 0, 1660, 0, 0, 0, - 2024, 0, 0, 0, 0, 0, 0, 1667, 1668, 487, - 487, 0, 138, 1674, 0, 0, 1677, 1678, 0, 0, - 166, 0, 0, 0, 1684, 0, 1685, 0, 0, 1688, - 1689, 1690, 1691, 1692, 487, 2119, 499, 0, 0, 0, - 0, 166, 0, 0, 487, 1702, 0, 0, 166, 0, - 166, 0, 0, 0, 0, 0, 0, 0, 166, 166, - 0, 0, 0, 0, 0, 487, 0, 0, 487, 0, - 0, 0, 0, 0, 0, 1868, 0, 0, 0, 487, + 970, 950, 1615, 980, 909, 918, 2236, 1993, 910, 2000, + 773, 1257, 904, 1258, 866, 1994, 898, 899, 915, 774, + 902, 2001, 1614, 1853, 474, 1625, 474, 843, 842, 1612, + 903, 129, 110, 136, 117, 109, 2137, 130, 131, 920, + 908, 863, 146, 2081, 1579, 807, 805, 1472, 816, 815, + 814, 813, 151, 118, 812, 811, 1616, 1175, 810, 817, + 165, 809, 165, 1613, 804, 165, 780, 121, 119, 114, + 115, 116, 120, 1965, 2138, 2268, 2247, 111, 760, 473, + 1554, 473, 760, 916, 1195, 1194, 122, 792, 474, 1495, + 1857, 486, 486, 486, 791, 760, 1287, 1295, 1843, 758, + 1561, 879, 599, 885, 886, 887, 888, 798, 1854, 486, + 486, 1601, 1291, 1697, 1699, 2188, 930, 774, 827, 1973, + 1840, 798, 917, 936, 922, 1878, 862, 949, 946, 947, + 948, 953, 955, 952, 1903, 951, 1902, 798, 808, 806, + 2266, 774, 945, 473, 949, 946, 947, 948, 953, 955, + 952, 1901, 951, 1170, 2193, 1169, 1168, 1830, 138, 945, + 919, 1292, 1645, 1166, 444, 439, 1597, 1852, 798, 1880, + 1851, 992, 993, 2175, 798, 994, 995, 996, 997, 998, + 999, 1000, 1001, 1002, 1003, 2050, 1860, 1860, 165, 2209, + 1943, 1859, 1859, 1721, 1268, 1267, 1269, 1270, 1271, 99, + 1675, 1775, 1769, 73, 1664, 1587, 1052, 927, 928, 2155, + 1698, 1777, 1500, 1075, 132, 880, 486, 1051, 990, 165, + 1005, 165, 165, 874, 486, 872, 126, 1511, 869, 127, + 486, 1882, 893, 1886, 980, 1881, 1756, 1879, 939, 937, + 938, 1672, 1884, 608, 906, 797, 1008, 1771, 1303, 833, + 1450, 1883, 791, 794, 795, 798, 760, 878, 957, 797, + 788, 792, 1369, 960, 1885, 1887, 1080, 970, 1334, 1773, + 980, 1047, 1767, 2184, 960, 797, 1367, 1368, 1366, 787, + 94, 801, 791, 819, 1768, 1928, 1611, 1065, 1288, 1285, + 2264, 802, 1596, 2265, 1101, 2263, 1022, 1025, 1027, 1029, + 1030, 1032, 1034, 1035, 1026, 1028, 797, 1031, 1033, 803, + 1036, 940, 797, 791, 794, 795, 1063, 760, 801, 791, + 1896, 788, 792, 1420, 1808, 95, 1044, 1420, 802, 1682, + 139, 144, 141, 147, 148, 149, 150, 152, 153, 154, + 155, 992, 993, 1589, 1776, 1774, 156, 157, 158, 159, + 969, 968, 978, 979, 971, 972, 973, 974, 975, 976, + 977, 970, 907, 865, 980, 892, 1304, 1593, 961, 1282, + 1594, 1283, 877, 1592, 1284, 165, 807, 894, 805, 1159, + 1455, 1456, 992, 993, 612, 1649, 1650, 1651, 1167, 1948, + 167, 168, 169, 797, 1387, 832, 1589, 1053, 973, 974, + 975, 976, 977, 970, 499, 1068, 980, 486, 2066, 1191, + 1657, 959, 957, 1018, 1357, 1359, 1360, 1200, 2065, 2269, + 1591, 1204, 1971, 1793, 486, 486, 1358, 486, 960, 486, + 486, 71, 486, 486, 486, 486, 486, 486, 1173, 1174, + 167, 168, 169, 1365, 1784, 1057, 1060, 486, 1187, 1275, + 1388, 165, 1240, 1096, 1273, 1772, 1905, 1792, 2250, 1794, + 1671, 1180, 2241, 1558, 958, 959, 957, 1253, 1276, 971, + 972, 973, 974, 975, 976, 977, 970, 598, 486, 980, + 165, 1201, 960, 958, 959, 957, 2251, 1261, 1237, 2270, + 2242, 1293, 1199, 1260, 1259, 165, 1243, 1244, 1263, 1251, + 1785, 960, 1249, 1250, 1906, 2245, 1235, 1236, 1165, 1245, + 1274, 165, 1209, 1242, 1210, 1272, 1212, 1214, 165, 1198, + 1218, 1220, 1222, 1224, 1226, 1177, 1178, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 486, 486, 486, 1190, + 1197, 1197, 1176, 1241, 1307, 603, 958, 959, 957, 1216, + 2244, 1311, 2243, 1313, 1314, 1315, 1316, 2229, 1996, 1262, + 1320, 1299, 2227, 165, 960, 2107, 581, 600, 601, 2063, + 958, 959, 957, 2038, 1335, 1305, 1306, 968, 978, 979, + 971, 972, 973, 974, 975, 976, 977, 970, 960, 1310, + 980, 1296, 1952, 1907, 1171, 1802, 1317, 1318, 1319, 1790, + 1363, 1386, 167, 168, 169, 777, 102, 776, 1238, 1640, + 1389, 1345, 969, 968, 978, 979, 971, 972, 973, 974, + 975, 976, 977, 970, 486, 1605, 980, 1361, 1604, 1444, + 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, + 1380, 1381, 1382, 1383, 1384, 1397, 1309, 1300, 1264, 1390, + 1391, 1330, 1331, 1332, 1403, 1252, 1248, 1247, 486, 486, + 1246, 1980, 2246, 958, 959, 957, 1980, 2215, 581, 165, + 1670, 1898, 2135, 1452, 1980, 2182, 2134, 1364, 1669, 1980, + 2176, 960, 1398, 486, 167, 168, 169, 2090, 1763, 1423, + 165, 80, 1399, 486, 1443, 1408, 1411, 165, 1822, 165, + 1008, 1421, 1805, 958, 959, 957, 1519, 165, 165, 1980, + 581, 1427, 1428, 1717, 486, 1397, 1916, 486, 1927, 1490, + 2207, 960, 167, 168, 169, 1927, 1571, 1750, 486, 1474, + 167, 168, 169, 608, 1569, 1495, 608, 2045, 1451, 1590, + 1400, 1445, 1404, 1405, 2183, 1301, 1410, 1413, 1414, 2084, + 581, 1457, 1469, 167, 168, 169, 1493, 1254, 1980, 2082, + 1589, 581, 1399, 958, 959, 957, 1465, 2048, 581, 1515, + 1514, 581, 1426, 1963, 1962, 1429, 1430, 1959, 1960, 1959, + 1958, 960, 1475, 486, 1475, 1518, 1463, 581, 1496, 1564, + 1565, 1566, 1717, 956, 1568, 1570, 1589, 525, 524, 527, + 528, 529, 530, 1467, 1496, 1545, 526, 486, 531, 1495, + 1839, 1980, 1498, 486, 1200, 1162, 1824, 1200, 35, 1200, + 1551, 1817, 1818, 1352, 1353, 1354, 1355, 1588, 1530, 1531, + 1532, 1502, 1501, 1475, 581, 1961, 1517, 1516, 978, 979, + 971, 972, 973, 974, 975, 976, 977, 970, 1575, 1464, + 980, 1475, 1497, 956, 581, 35, 1503, 486, 35, 1386, + 1499, 1162, 1161, 1927, 1386, 1386, 82, 1523, 1497, 1524, + 1525, 1526, 1527, 1687, 612, 1686, 1495, 612, 1406, 1407, + 1724, 1463, 1541, 1542, 1589, 1535, 1536, 1537, 1538, 1582, + 1557, 1559, 1585, 1546, 1586, 71, 1567, 1572, 1598, 165, + 1556, 1107, 1106, 2068, 574, 1725, 165, 799, 2123, 1599, + 1580, 165, 165, 1581, 1453, 165, 499, 165, 1431, 1584, + 1231, 1463, 1600, 165, 565, 1546, 1343, 1602, 1603, 1290, + 165, 800, 71, 1798, 1463, 71, 1937, 1093, 782, 781, + 71, 1197, 2147, 2089, 2060, 2056, 1164, 1608, 1544, 1995, + 1825, 1540, 1534, 2069, 2070, 2071, 1799, 165, 486, 1533, + 1635, 1636, 1278, 1192, 1188, 1638, 1160, 96, 1509, 1998, + 1232, 1233, 1234, 166, 1639, 2072, 166, 1228, 864, 166, + 1799, 71, 1931, 1932, 487, 2148, 166, 1555, 2258, 2177, + 2254, 1978, 1977, 1976, 166, 1480, 1483, 1484, 1485, 1481, + 1934, 1482, 1486, 1363, 1916, 1931, 1932, 1809, 1629, 1336, + 2049, 1628, 2238, 1741, 1936, 1738, 487, 1737, 1742, 487, + 166, 487, 2073, 2074, 1229, 1230, 1739, 1547, 2216, 1908, + 1706, 1740, 1653, 1654, 1655, 969, 968, 978, 979, 971, + 972, 973, 974, 975, 976, 977, 970, 1062, 1743, 980, + 1484, 1485, 165, 1983, 1715, 1643, 1714, 2169, 2171, 2240, + 165, 1480, 1483, 1484, 1485, 1481, 2172, 1482, 1486, 2197, + 2220, 2222, 1652, 1704, 2200, 2166, 1289, 2196, 566, 1955, + 1364, 1705, 1803, 829, 828, 165, 2008, 1798, 1416, 1863, + 929, 1832, 1831, 1666, 1703, 1055, 165, 165, 165, 165, + 165, 591, 587, 1417, 1726, 2121, 1710, 1056, 165, 572, + 1665, 103, 165, 1954, 1953, 165, 165, 588, 1583, 165, + 165, 165, 1206, 1205, 1748, 1193, 1722, 1661, 1662, 2043, + 1719, 1448, 1762, 1681, 1974, 1047, 1693, 1455, 1456, 1632, + 2178, 1701, 1066, 1067, 590, 2142, 589, 1048, 1679, 1950, + 1783, 1488, 1709, 575, 576, 1713, 1731, 1621, 1718, 1648, + 1751, 82, 578, 1712, 1753, 2228, 1720, 2226, 2225, 2201, + 1782, 2199, 1786, 1787, 1788, 1732, 486, 1765, 1735, 1733, + 1734, 165, 1736, 2042, 1744, 1979, 1573, 1299, 165, 1749, + 579, 1757, 1754, 1766, 486, 2041, 1911, 1717, 1676, 442, + 486, 2260, 2259, 2260, 1673, 1200, 1076, 1069, 1551, 489, + 486, 2173, 1801, 574, 1951, 1449, 80, 569, 85, 77, + 1791, 1, 1836, 457, 591, 587, 1432, 1827, 1045, 469, + 2252, 1780, 1781, 165, 165, 165, 165, 165, 1265, 1255, + 588, 1800, 1835, 761, 1806, 2093, 2144, 1986, 1549, 165, + 165, 1180, 1834, 1810, 1811, 1812, 790, 128, 1512, 1821, + 1513, 2211, 93, 753, 1398, 584, 585, 590, 92, 589, + 1833, 793, 891, 1574, 1399, 2085, 1778, 1521, 1113, 1111, + 1826, 1112, 1110, 1115, 1114, 486, 1109, 1683, 1337, 483, + 1487, 1386, 163, 1102, 1070, 830, 447, 1855, 1964, 1333, + 1606, 453, 988, 1711, 1874, 1758, 609, 602, 1922, 2194, + 2165, 1875, 2167, 2117, 2170, 1876, 2163, 2239, 1707, 1708, + 1060, 486, 1869, 1870, 2219, 1895, 2033, 1867, 1861, 1520, + 1447, 1862, 165, 1058, 1873, 2040, 1910, 1890, 1891, 1889, + 1892, 1893, 486, 1680, 1017, 1418, 1085, 508, 486, 486, + 1442, 1899, 1900, 1917, 1888, 1356, 523, 520, 521, 1458, + 1723, 1874, 1920, 962, 166, 506, 166, 500, 1077, 166, + 1479, 165, 1477, 969, 968, 978, 979, 971, 972, 973, + 974, 975, 976, 977, 970, 1926, 1476, 980, 1630, 1089, + 1933, 1929, 1083, 1462, 1770, 487, 487, 487, 1842, 1992, + 941, 583, 1935, 495, 765, 1939, 1731, 1941, 1904, 1942, + 1415, 2153, 1914, 487, 487, 1647, 1940, 2029, 582, 61, + 38, 490, 1956, 1957, 1972, 2234, 932, 592, 1947, 32, + 165, 31, 30, 29, 1949, 28, 1925, 23, 486, 22, + 1422, 21, 20, 19, 25, 18, 486, 17, 16, 98, + 48, 165, 45, 43, 105, 104, 46, 1967, 1969, 1970, + 1968, 165, 42, 1985, 867, 27, 26, 15, 1987, 534, + 14, 13, 12, 11, 10, 165, 9, 5, 165, 1981, + 4, 935, 1984, 1551, 24, 1006, 1990, 2009, 2, 1989, + 2032, 0, 166, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1982, 0, 0, 0, 0, 0, 2004, 2003, + 0, 0, 0, 0, 0, 0, 2006, 2007, 0, 0, + 487, 0, 0, 166, 580, 166, 166, 0, 487, 485, + 2017, 0, 0, 2010, 487, 0, 0, 969, 968, 978, + 979, 971, 972, 973, 974, 975, 976, 977, 970, 1897, + 0, 980, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 610, 0, 0, 757, 2012, 764, 2044, 0, 0, + 0, 0, 2052, 0, 2053, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1912, 2058, 0, 868, 0, 873, + 0, 0, 875, 0, 165, 0, 2059, 165, 165, 165, + 486, 486, 2061, 0, 0, 0, 0, 0, 0, 1731, + 0, 0, 0, 2039, 0, 0, 0, 2079, 0, 2094, + 486, 486, 486, 0, 0, 0, 0, 0, 0, 0, + 0, 2014, 2015, 0, 2016, 0, 2100, 2018, 0, 2020, 969, 968, 978, 979, 971, 972, 973, 974, 975, 976, - 977, 970, 1746, 1747, 980, 969, 968, 978, 979, 971, - 972, 973, 974, 975, 976, 977, 970, 0, 0, 980, - 757, 969, 968, 978, 979, 971, 972, 973, 974, 975, - 976, 977, 970, 1202, 0, 980, 0, 1208, 1208, 0, - 1208, 0, 1208, 1208, 487, 1217, 1208, 1208, 1208, 1208, - 1208, 0, 0, 0, 0, 0, 1658, 0, 1202, 1202, - 757, 0, 0, 0, 0, 0, 0, 0, 487, 0, - 0, 0, 0, 0, 487, 535, 969, 968, 978, 979, - 971, 972, 973, 974, 975, 976, 977, 970, 0, 0, - 980, 1277, 0, 0, 139, 144, 141, 147, 148, 149, - 150, 152, 153, 154, 155, 0, 0, 0, 0, 0, - 156, 157, 158, 159, 0, 0, 0, 0, 487, 0, - 0, 0, 0, 0, 164, 0, 0, 443, 0, 0, - 481, 0, 0, 0, 0, 0, 0, 443, 0, 0, - 0, 0, 0, 0, 0, 443, 0, 0, 0, 610, - 610, 610, 0, 0, 0, 0, 0, 0, 0, 0, - 166, 0, 596, 596, 0, 0, 0, 166, 0, 0, - 0, 443, 166, 166, 1871, 1872, 166, 0, 166, 0, - 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, - 0, 166, 969, 968, 978, 979, 971, 972, 973, 974, + 977, 970, 0, 0, 980, 486, 486, 486, 165, 0, + 0, 2098, 0, 0, 0, 2062, 0, 2064, 0, 486, + 0, 486, 2110, 2112, 2113, 0, 0, 486, 0, 166, + 2124, 2114, 1920, 0, 2126, 0, 1920, 2120, 2122, 2101, + 2102, 2103, 2104, 2105, 2129, 0, 0, 2108, 2109, 0, + 0, 0, 0, 0, 2132, 0, 2133, 0, 0, 0, + 486, 487, 0, 486, 0, 0, 2136, 0, 0, 2106, + 0, 0, 2099, 2139, 0, 2131, 0, 2143, 487, 487, + 0, 487, 2146, 487, 487, 0, 487, 487, 487, 487, + 487, 487, 2128, 0, 0, 2115, 1079, 0, 2130, 1090, + 2162, 487, 0, 0, 0, 166, 0, 0, 2174, 165, + 1920, 0, 0, 0, 0, 2031, 0, 0, 486, 165, + 0, 0, 2027, 0, 0, 2181, 0, 0, 0, 0, + 0, 0, 487, 0, 166, 2185, 0, 0, 499, 0, + 0, 0, 0, 0, 2191, 2054, 486, 2198, 2055, 166, + 0, 2057, 2202, 0, 486, 486, 0, 0, 0, 0, + 2210, 2204, 0, 0, 0, 166, 0, 0, 0, 0, + 2224, 0, 166, 2146, 2212, 2223, 0, 0, 486, 2230, + 0, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 487, 487, 487, 2237, 2205, 2233, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1731, 0, 0, 0, 0, + 0, 2248, 0, 0, 0, 0, 0, 166, 0, 0, + 0, 0, 0, 0, 0, 2257, 0, 0, 0, 0, + 0, 0, 2267, 969, 968, 978, 979, 971, 972, 973, + 974, 975, 976, 977, 970, 0, 0, 980, 0, 0, + 0, 0, 1108, 0, 0, 0, 0, 0, 2119, 499, + 0, 0, 0, 0, 0, 0, 167, 168, 169, 0, + 0, 0, 0, 1868, 0, 0, 0, 0, 487, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 610, 610, 610, 969, 968, 978, 979, 971, 972, 973, + 974, 975, 976, 977, 970, 0, 0, 980, 931, 933, + 0, 0, 487, 487, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 166, 0, 0, 462, 0, 1239, 0, + 0, 2026, 0, 0, 0, 461, 0, 487, 0, 0, + 0, 0, 0, 0, 166, 0, 459, 487, 0, 0, + 0, 166, 0, 166, 0, 0, 0, 1279, 0, 0, + 0, 166, 166, 0, 0, 0, 0, 0, 487, 0, + 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 487, 0, 0, 456, 0, 0, 1308, 0, + 0, 0, 0, 0, 468, 1312, 0, 0, 0, 0, + 0, 2025, 0, 0, 0, 0, 1323, 1324, 1325, 1326, + 1327, 1328, 1329, 0, 0, 1073, 0, 0, 0, 0, + 0, 0, 0, 610, 0, 0, 0, 0, 0, 1103, + 2024, 0, 0, 0, 0, 0, 0, 487, 0, 0, + 1090, 474, 969, 968, 978, 979, 971, 972, 973, 974, 975, 976, 977, 970, 0, 0, 980, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 166, 487, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1392, 0, 610, - 1923, 0, 0, 0, 0, 0, 0, 0, 0, 502, - 0, 0, 0, 1202, 0, 0, 0, 0, 0, 0, - 0, 1938, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1424, 1425, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1459, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1073, 0, 0, 610, - 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, - 0, 166, 0, 0, 0, 0, 0, 610, 0, 0, - 610, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 757, 0, 0, 0, 0, 166, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 166, 166, 166, - 166, 166, 0, 0, 0, 0, 0, 0, 0, 166, - 0, 0, 0, 166, 0, 0, 166, 166, 0, 0, - 166, 166, 166, 0, 0, 0, 2011, 0, 0, 0, - 2013, 0, 0, 0, 0, 0, 764, 0, 0, 0, - 0, 2022, 2023, 0, 0, 0, 0, 0, 0, 462, - 0, 0, 0, 0, 0, 0, 0, 2037, 461, 0, - 757, 0, 0, 0, 0, 0, 764, 0, 0, 459, - 0, 0, 0, 0, 2046, 2047, 0, 487, 2051, 0, - 0, 0, 166, 0, 0, 0, 0, 0, 0, 166, - 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, - 0, 487, 0, 0, 0, 0, 0, 0, 456, 0, - 757, 487, 0, 0, 0, 0, 0, 468, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 166, 166, 166, 166, 166, 2083, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 166, 166, 0, 0, 0, 443, 0, 443, 0, 0, - 443, 0, 0, 0, 474, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 487, 2111, 0, 0, - 0, 0, 446, 0, 448, 463, 0, 476, 0, 475, - 452, 0, 450, 454, 464, 455, 0, 449, 0, 460, - 0, 1642, 451, 465, 466, 480, 479, 467, 0, 473, - 458, 477, 487, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 487, 0, 0, 0, 0, 0, 487, - 487, 0, 0, 0, 2148, 2149, 2150, 2151, 0, 2155, - 0, 2156, 2157, 2158, 0, 2159, 2160, 0, 0, 537, - 34, 0, 166, 0, 0, 0, 0, 0, 0, 0, + 0, 487, 0, 0, 0, 0, 0, 487, 0, 446, + 0, 448, 463, 0, 476, 0, 475, 452, 0, 450, + 454, 464, 455, 0, 449, 0, 460, 0, 0, 451, + 465, 466, 480, 479, 467, 0, 473, 458, 477, 0, + 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 487, 969, 968, 978, 979, 971, 972, 973, 974, + 975, 976, 977, 970, 0, 103, 980, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, + 0, 969, 968, 978, 979, 971, 972, 973, 974, 975, + 976, 977, 970, 166, 0, 980, 0, 0, 0, 0, + 166, 0, 0, 0, 0, 166, 166, 1466, 0, 166, + 0, 166, 0, 0, 1470, 0, 1473, 166, 0, 1764, + 0, 0, 0, 0, 166, 1492, 0, 0, 0, 0, + 0, 0, 142, 0, 143, 0, 0, 0, 0, 0, + 0, 0, 0, 160, 0, 0, 757, 0, 0, 0, + 0, 166, 487, 0, 0, 0, 0, 0, 0, 1202, + 0, 0, 478, 1208, 1208, 0, 1208, 0, 1208, 1208, + 0, 1217, 1208, 1208, 1208, 1208, 1208, 0, 0, 0, + 471, 0, 0, 0, 1202, 1202, 757, 0, 0, 0, + 0, 0, 0, 0, 0, 472, 0, 0, 0, 0, + 0, 535, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 964, 151, 967, 0, 0, 0, 1277, 0, 981, + 982, 983, 984, 985, 986, 987, 0, 965, 966, 963, + 969, 968, 978, 979, 971, 972, 973, 974, 975, 976, + 977, 970, 0, 0, 980, 0, 166, 0, 0, 0, + 164, 0, 0, 443, 166, 0, 481, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, - 0, 0, 0, 0, 34, 2185, 0, 0, 0, 0, - 0, 0, 0, 0, 443, 0, 443, 1092, 0, 0, - 0, 1048, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 166, 0, 0, 0, 0, 0, 0, 0, 487, - 0, 0, 0, 0, 0, 478, 0, 487, 1202, 573, - 0, 0, 166, 0, 0, 0, 2229, 2230, 0, 0, - 0, 0, 166, 471, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 442, 0, 0, 166, 0, 472, 166, - 0, 0, 0, 489, 0, 0, 0, 0, 0, 0, - 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, - 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, - 0, 0, 0, 0, 0, 0, 0, 761, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1804, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1816, 0, 0, - 0, 1202, 0, 1823, 0, 0, 0, 0, 0, 0, - 0, 610, 0, 1828, 0, 0, 0, 0, 0, 0, - 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 166, 0, 0, 166, 166, - 166, 487, 487, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1203, 0, 0, 0, 0, - 0, 487, 487, 487, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 610, 0, - 1203, 1203, 0, 0, 0, 0, 443, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 487, 487, 487, 166, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 487, 0, 487, 0, 1208, 443, 0, 0, 487, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1298, 0, 0, 0, 0, 610, 0, 0, 1202, 0, - 0, 1924, 1208, 0, 0, 0, 443, 0, 0, 0, - 0, 487, 0, 443, 487, 0, 0, 0, 0, 0, - 0, 0, 1321, 1322, 443, 443, 443, 443, 443, 443, - 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 443, 166, - 0, 0, 0, 0, 0, 0, 0, 0, 487, 166, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 757, 0, 0, 1202, 0, 487, 0, 0, 1816, - 0, 0, 0, 487, 487, 0, 0, 0, 0, 0, + 0, 443, 0, 0, 0, 610, 610, 610, 0, 166, + 0, 0, 0, 0, 0, 0, 0, 0, 596, 596, + 166, 166, 166, 166, 166, 0, 0, 443, 0, 0, + 0, 0, 166, 0, 0, 0, 166, 0, 0, 166, + 166, 0, 0, 166, 166, 166, 1090, 0, 138, 0, + 0, 0, 0, 1617, 0, 0, 0, 0, 1626, 1627, + 1658, 0, 1631, 0, 0, 0, 0, 1401, 1402, 0, + 1634, 0, 0, 0, 0, 0, 0, 1637, 0, 0, + 969, 968, 978, 979, 971, 972, 973, 974, 975, 976, + 977, 970, 0, 1392, 980, 610, 0, 0, 0, 0, + 487, 0, 0, 0, 1641, 166, 0, 0, 0, 1202, + 0, 0, 166, 1446, 0, 0, 0, 0, 487, 0, + 0, 0, 0, 0, 487, 0, 0, 1424, 1425, 0, + 0, 0, 0, 0, 487, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1459, 0, 0, 0, 0, 166, 166, 166, + 166, 166, 1073, 0, 0, 610, 0, 0, 0, 0, + 0, 0, 0, 166, 166, 0, 0, 0, 0, 0, + 0, 0, 0, 610, 0, 0, 610, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 757, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 487, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 139, 144, 141, 147, 148, 149, 150, 152, 153, 154, + 155, 0, 0, 0, 0, 0, 156, 157, 158, 159, + 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, + 0, 0, 764, 0, 0, 0, 166, 0, 161, 0, + 0, 0, 0, 1752, 0, 0, 487, 0, 0, 1814, + 0, 0, 487, 487, 0, 0, 757, 0, 0, 0, + 0, 0, 764, 103, 0, 125, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 166, 145, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 757, 135, 1807, 0, + 0, 0, 124, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 142, 0, 143, 0, 166, 0, 0, 1183, 1184, 134, + 133, 160, 487, 0, 0, 0, 0, 0, 0, 0, + 487, 443, 0, 443, 0, 166, 443, 0, 0, 0, + 1846, 1847, 1848, 1849, 1850, 166, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1090, 1856, 0, 166, + 0, 0, 166, 161, 0, 0, 0, 0, 0, 129, + 1185, 136, 0, 1182, 0, 130, 131, 0, 0, 0, + 146, 0, 0, 0, 0, 0, 0, 1642, 103, 0, + 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, + 1659, 0, 0, 0, 1660, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1667, 1668, 0, 0, 0, + 0, 1674, 0, 0, 1677, 1678, 0, 0, 0, 1909, + 0, 0, 1684, 0, 1685, 0, 0, 1688, 1689, 1690, + 1691, 1692, 0, 0, 0, 142, 0, 143, 0, 443, + 0, 0, 0, 1702, 0, 0, 160, 0, 0, 0, + 0, 0, 0, 0, 0, 596, 0, 0, 166, 0, + 0, 166, 166, 166, 487, 487, 0, 0, 0, 0, + 443, 0, 443, 1092, 0, 0, 138, 0, 0, 0, + 0, 0, 0, 0, 487, 487, 487, 0, 0, 0, + 1746, 1747, 0, 0, 0, 0, 0, 0, 0, 537, + 34, 0, 0, 0, 1202, 146, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 151, 0, 1975, 0, 487, + 487, 487, 166, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 132, 487, 34, 487, 0, 0, 1988, 0, + 0, 487, 0, 0, 126, 0, 0, 127, 1991, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2002, 0, 0, 2005, 0, 0, 0, 0, + 0, 0, 0, 0, 487, 0, 0, 487, 0, 573, + 0, 0, 0, 0, 0, 1804, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1816, 0, 0, 0, 1202, 0, 1823, + 0, 0, 0, 0, 0, 0, 0, 610, 0, 1828, + 0, 138, 0, 166, 0, 0, 443, 0, 0, 0, + 0, 0, 487, 166, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 139, 144, + 141, 147, 148, 149, 150, 152, 153, 154, 155, 0, + 487, 0, 1871, 1872, 156, 157, 158, 159, 487, 487, + 0, 1203, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2075, 0, 0, 2076, 2077, 2078, 0, 0, 0, + 0, 0, 487, 0, 610, 0, 1203, 1203, 0, 0, + 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1923, 0, + 1208, 443, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1298, 0, 0, 1938, + 0, 610, 0, 0, 1202, 0, 0, 1924, 1208, 0, + 0, 0, 443, 0, 0, 0, 0, 0, 0, 443, + 0, 0, 0, 0, 0, 0, 0, 0, 1321, 1322, + 443, 443, 443, 443, 443, 443, 443, 0, 0, 0, + 0, 0, 0, 139, 144, 141, 147, 148, 149, 150, + 152, 153, 154, 155, 0, 0, 0, 0, 0, 156, + 157, 158, 159, 0, 443, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2180, 757, 0, 0, + 1202, 0, 0, 0, 0, 1816, 2186, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2011, 0, 596, 1298, 2013, 0, + 0, 596, 596, 0, 0, 596, 596, 596, 0, 2022, + 2023, 1203, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2037, 0, 0, 0, 0, + 0, 596, 596, 596, 596, 596, 0, 0, 0, 0, + 1440, 0, 2046, 2047, 0, 0, 2051, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 443, 0, 0, 0, 0, 0, 1298, 443, 0, + 443, 0, 0, 0, 0, 0, 0, 1202, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 596, 1298, 0, 0, 0, 596, 596, 487, 0, 596, - 596, 596, 0, 0, 0, 1203, 0, 0, 0, 0, 924, 924, 924, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 596, 596, 596, 596, 596, - 34, 868, 0, 873, 1440, 0, 875, 0, 0, 0, - 0, 0, 0, 989, 991, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, - 0, 1298, 443, 0, 443, 0, 0, 0, 0, 0, - 0, 1202, 443, 443, 1004, 0, 0, 0, 1009, 1010, + 0, 0, 0, 0, 0, 0, 0, 2083, 0, 0, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 989, 991, 1130, 0, 0, 0, 1816, + 2080, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2095, + 2096, 2097, 0, 0, 1004, 2111, 0, 0, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 0, 1019, 1021, 1024, 1024, 1024, 1021, 1024, 1024, 1021, 1024, 1037, 1038, 1039, - 1040, 1041, 1042, 1043, 0, 0, 0, 0, 0, 1049, - 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, - 0, 0, 1361, 1816, 2080, 1370, 1371, 1372, 1373, 1374, - 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, - 1086, 0, 0, 2095, 2096, 2097, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1816, 1816, - 1816, 0, 0, 0, 1423, 0, 0, 0, 0, 0, - 1079, 0, 2125, 1090, 2127, 0, 0, 0, 0, 0, - 1816, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1816, 0, 161, 610, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1814, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 103, 0, 125, 0, 443, 0, 0, 0, 0, 0, - 0, 443, 0, 145, 0, 0, 443, 443, 0, 0, - 443, 0, 1633, 0, 0, 0, 0, 0, 443, 0, - 1816, 0, 0, 0, 0, 443, 0, 0, 0, 0, - 0, 0, 0, 0, 135, 0, 0, 0, 0, 124, - 0, 0, 0, 0, 0, 0, 1202, 0, 2201, 0, - 0, 0, 443, 0, 0, 610, 610, 142, 0, 143, - 0, 0, 0, 0, 1183, 1184, 134, 133, 160, 0, - 0, 0, 0, 0, 0, 0, 1108, 0, 0, 1816, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 596, 596, 0, 0, 0, 0, 129, 1185, 136, 0, - 1182, 0, 130, 131, 0, 0, 0, 146, 0, 0, - 0, 596, 0, 0, 0, 0, 0, 151, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, - 0, 0, 1239, 0, 0, 1440, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, - 443, 1279, 0, 0, 0, 924, 924, 924, 0, 0, - 1203, 443, 443, 443, 443, 443, 0, 0, 0, 0, - 0, 0, 0, 1745, 0, 0, 0, 443, 0, 0, - 443, 443, 1308, 0, 443, 1755, 1298, 0, 0, 1312, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1323, 1324, 1325, 1326, 1327, 1328, 1329, 0, 0, 0, - 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1653, 1654, 1655, - 0, 0, 0, 0, 1090, 0, 0, 1130, 0, 0, - 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, - 0, 0, 0, 1813, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1203, 0, 0, 0, 0, 0, 132, - 0, 0, 0, 1298, 0, 0, 0, 0, 0, 0, - 0, 126, 0, 0, 127, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 443, 443, - 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 443, 443, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1491, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, - 1179, 0, 1118, 0, 0, 0, 0, 0, 0, 0, - 0, 1466, 0, 0, 103, 0, 125, 0, 1470, 0, - 1473, 0, 0, 0, 0, 0, 0, 145, 0, 1492, - 0, 0, 0, 0, 0, 139, 144, 141, 147, 148, - 149, 150, 152, 153, 154, 155, 1131, 443, 0, 0, - 0, 156, 157, 158, 159, 0, 0, 0, 135, 0, - 1203, 0, 0, 124, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 142, 0, 143, 0, 0, 443, 0, 1183, 1184, - 134, 133, 160, 0, 0, 0, 0, 1144, 1147, 1148, - 1149, 1150, 1151, 1152, 0, 1153, 1154, 1155, 1156, 1157, - 1132, 1133, 1134, 1135, 1116, 1117, 1145, 0, 1119, 0, - 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, - 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 0, 0, - 129, 1185, 136, 0, 1182, 443, 130, 131, 0, 0, - 0, 146, 0, 0, 0, 0, 1203, 0, 0, 0, - 0, 151, 0, 0, 0, 0, 443, 1869, 1870, 0, - 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, - 0, 0, 1890, 1891, 0, 1892, 1893, 0, 0, 0, - 443, 0, 0, 443, 0, 0, 1899, 1900, 0, 0, - 0, 0, 0, 0, 0, 1146, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1090, 0, 0, 0, 0, 0, 0, 1617, 0, 0, - 0, 0, 1626, 1627, 0, 0, 1631, 0, 0, 0, - 0, 0, 0, 0, 1634, 0, 0, 0, 0, 0, - 0, 1637, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1203, 0, 0, 0, 138, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1641, 1949, - 0, 0, 0, 0, 0, 0, 0, 1663, 0, 0, - 573, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, - 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, - 0, 0, 0, 132, 0, 0, 0, 1700, 0, 0, - 0, 0, 0, 0, 0, 126, 0, 0, 127, 0, + 1040, 1041, 1042, 1043, 1816, 1816, 1816, 0, 0, 1049, + 0, 0, 0, 34, 0, 0, 0, 0, 2125, 0, + 2127, 0, 0, 0, 0, 0, 1816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, - 0, 1727, 1728, 0, 0, 1086, 1086, 1086, 1086, 1086, - 0, 0, 0, 1440, 0, 0, 0, 0, 2010, 0, - 0, 1491, 0, 0, 1086, 0, 0, 0, 1086, 0, - 0, 0, 0, 0, 0, 35, 36, 37, 72, 39, - 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, - 41, 67, 68, 0, 65, 69, 0, 0, 0, 0, - 0, 0, 0, 66, 0, 0, 0, 1752, 0, 139, - 144, 141, 147, 148, 149, 150, 152, 153, 154, 155, - 0, 0, 0, 0, 0, 156, 157, 158, 159, 0, - 2060, 0, 54, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 71, 443, 0, 0, 0, 0, 0, 0, - 1829, 0, 0, 443, 0, 0, 0, 0, 0, 0, + 1086, 0, 2149, 2150, 2151, 2152, 0, 2156, 0, 2157, + 2158, 2159, 0, 2160, 2161, 0, 0, 0, 0, 1816, + 1118, 0, 610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1807, 0, 0, 0, 0, 0, 1203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 443, 0, 0, 0, 2187, 0, 0, 443, 0, 0, + 0, 0, 443, 443, 1131, 0, 443, 0, 1633, 0, + 0, 0, 0, 0, 443, 0, 0, 1816, 0, 0, + 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2101, 2102, 2103, 2104, 2105, 0, - 0, 0, 2108, 2109, 44, 47, 50, 49, 52, 0, - 64, 0, 0, 70, 1846, 1847, 1848, 1849, 1850, 0, + 0, 0, 0, 1202, 0, 2203, 2231, 2232, 443, 0, + 0, 0, 0, 610, 610, 1144, 1147, 1148, 1149, 1150, + 1151, 1152, 0, 1153, 1154, 1155, 1156, 1157, 1132, 1133, + 1134, 1135, 1116, 1117, 1145, 0, 1119, 1816, 1120, 1121, + 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1136, 1137, + 1138, 1139, 1140, 1141, 1142, 1143, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 596, 596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1090, 1856, 0, 0, 0, 0, 53, 75, 74, 0, - 0, 62, 63, 51, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 161, 0, 0, 0, 596, 0, 0, + 0, 0, 0, 0, 1179, 0, 0, 0, 0, 0, + 0, 0, 0, 443, 0, 0, 0, 0, 103, 0, + 125, 1440, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 145, 0, 1146, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 596, 443, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1203, 443, 443, 443, + 443, 443, 135, 0, 0, 0, 0, 124, 0, 1745, + 0, 0, 0, 443, 0, 0, 443, 443, 0, 0, + 443, 1755, 1298, 0, 0, 142, 0, 143, 0, 0, + 0, 0, 1183, 1184, 134, 133, 160, 0, 0, 0, + 0, 0, 0, 35, 36, 37, 72, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 76, 0, 924, 924, 924, 41, 67, + 68, 0, 65, 69, 0, 0, 0, 0, 0, 0, + 0, 66, 443, 0, 129, 1185, 136, 0, 1182, 1813, + 130, 131, 0, 0, 0, 146, 0, 0, 0, 1203, + 0, 0, 0, 0, 0, 151, 0, 0, 0, 1298, + 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 443, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1921, 0, 34, 0, 0, - 0, 0, 55, 56, 0, 57, 58, 59, 60, 0, + 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 596, 0, 0, 0, 0, + 0, 0, 44, 47, 50, 49, 52, 0, 64, 0, + 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 53, 75, 74, 0, 0, 62, + 63, 51, 0, 443, 0, 0, 1491, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2203, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, + 55, 56, 443, 57, 58, 59, 60, 0, 0, 126, + 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1203, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 73, 443, 0, 0, 443, + 0, 0, 0, 139, 144, 141, 147, 148, 149, 150, + 152, 153, 154, 155, 0, 0, 0, 0, 0, 156, + 157, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1988, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1991, 0, 2028, 0, 0, 0, 0, 0, - 0, 2034, 2035, 2036, 0, 0, 2002, 0, 0, 2005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 443, 0, 0, 443, 443, + 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1663, 0, 0, + 573, 0, 0, 0, 0, 0, 0, 0, 0, 1440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2075, 0, 0, 2076, 2077, - 2078, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1921, 0, 34, 0, 1921, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, + 0, 1727, 1728, 0, 0, 1086, 1086, 1086, 1086, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1491, 0, 0, 1086, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1921, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2177, 0, 0, 0, - 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, + 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, + 1829, 0, 0, 0, 0, 272, 0, 0, 0, 328, + 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, + 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, + 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, + 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2178, - 0, 0, 0, 0, 0, 0, 736, 723, 0, 2184, - 672, 739, 642, 660, 748, 663, 666, 706, 621, 685, - 314, 657, 0, 646, 617, 653, 618, 644, 674, 223, - 678, 641, 725, 688, 738, 272, 0, 623, 647, 328, - 662, 176, 708, 366, 209, 281, 279, 394, 233, 226, - 222, 208, 256, 287, 326, 384, 320, 745, 276, 695, - 0, 375, 299, 0, 0, 0, 676, 728, 683, 719, - 671, 707, 631, 694, 740, 658, 703, 741, 262, 207, - 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, - 0, 2211, 2212, 0, 0, 0, 0, 0, 198, 0, - 205, 700, 735, 655, 702, 219, 260, 225, 218, 391, - 705, 751, 616, 697, 0, 619, 622, 747, 731, 650, - 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, - 716, 669, 0, 0, 0, 0, 0, 0, 0, 0, - 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, - 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, - 0, 614, 245, 624, 300, 0, 721, 730, 670, 423, - 734, 668, 667, 737, 712, 628, 727, 661, 271, 626, - 268, 171, 187, 0, 659, 310, 349, 355, 726, 645, - 654, 210, 652, 353, 324, 408, 194, 235, 346, 329, - 351, 692, 710, 352, 277, 396, 341, 406, 424, 425, + 0, 0, 969, 968, 978, 979, 971, 972, 973, 974, + 975, 976, 977, 970, 0, 0, 980, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 245, 0, 300, 1921, 0, 34, 0, 423, + 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, + 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, + 1086, 210, 0, 353, 324, 408, 194, 235, 346, 329, + 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 926, 418, 306, 395, 403, 295, 286, 182, + 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, + 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, - 269, 278, 714, 750, 323, 354, 200, 410, 374, 635, - 639, 633, 634, 686, 687, 636, 742, 743, 744, 718, - 629, 0, 637, 638, 0, 724, 732, 733, 691, 170, - 184, 274, 746, 343, 238, 436, 417, 413, 615, 632, - 216, 643, 0, 0, 656, 664, 665, 677, 679, 680, - 681, 682, 690, 698, 699, 701, 709, 711, 713, 715, - 720, 729, 749, 172, 173, 185, 193, 203, 215, 228, + 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, + 0, 0, 0, 0, 2028, 0, 0, 0, 0, 0, + 0, 2034, 2035, 2036, 0, 0, 0, 0, 0, 170, + 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 689, 696, 284, 232, 249, 259, - 704, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 736, - 723, 0, 0, 672, 739, 642, 660, 748, 663, 666, - 706, 621, 685, 314, 657, 0, 646, 617, 653, 618, - 644, 674, 223, 678, 641, 725, 688, 738, 272, 0, - 623, 647, 328, 662, 176, 708, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 745, 276, 695, 0, 375, 299, 0, 0, 0, 676, - 728, 683, 719, 671, 707, 631, 694, 740, 658, 703, - 741, 262, 207, 175, 311, 376, 237, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 700, 735, 655, 702, 219, 260, - 225, 218, 391, 705, 751, 616, 697, 0, 619, 622, - 747, 731, 650, 651, 0, 0, 0, 0, 0, 0, - 0, 675, 684, 716, 669, 0, 0, 0, 0, 0, - 0, 1913, 0, 648, 0, 693, 0, 0, 0, 627, - 620, 0, 0, 0, 0, 673, 0, 0, 0, 630, - 0, 649, 717, 0, 614, 245, 624, 300, 0, 721, - 730, 670, 423, 734, 668, 667, 737, 712, 628, 727, - 661, 271, 626, 268, 171, 187, 0, 659, 310, 349, - 355, 726, 645, 654, 210, 652, 353, 324, 408, 194, - 235, 346, 329, 351, 692, 710, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 926, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 640, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 722, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, - 191, 254, 373, 269, 278, 714, 750, 323, 354, 200, - 410, 374, 635, 639, 633, 634, 686, 687, 636, 742, - 743, 744, 718, 629, 0, 637, 638, 0, 724, 732, - 733, 691, 170, 184, 274, 746, 343, 238, 436, 417, - 413, 615, 632, 216, 643, 0, 0, 656, 664, 665, - 677, 679, 680, 681, 682, 690, 698, 699, 701, 709, - 711, 713, 715, 720, 729, 749, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 689, 696, 284, - 232, 249, 259, 704, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 736, 723, 0, 0, 672, 739, 642, 660, - 748, 663, 666, 706, 621, 685, 314, 657, 0, 646, - 617, 653, 618, 644, 674, 223, 678, 641, 725, 688, - 738, 272, 0, 623, 647, 328, 662, 176, 708, 366, - 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, - 326, 384, 320, 745, 276, 695, 0, 375, 299, 0, - 0, 0, 676, 728, 683, 719, 671, 707, 631, 694, - 740, 658, 703, 741, 262, 207, 175, 311, 376, 237, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 700, 735, 655, - 702, 219, 260, 225, 218, 391, 705, 751, 616, 697, - 0, 619, 622, 747, 731, 650, 651, 0, 0, 0, - 0, 0, 0, 0, 675, 684, 716, 669, 0, 0, - 0, 0, 0, 0, 1756, 0, 648, 0, 693, 0, - 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, - 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, - 300, 0, 721, 730, 670, 423, 734, 668, 667, 737, - 712, 628, 727, 661, 271, 626, 268, 171, 187, 0, - 659, 310, 349, 355, 726, 645, 654, 210, 652, 353, - 324, 408, 194, 235, 346, 329, 351, 692, 710, 352, - 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, - 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, - 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, - 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, - 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, - 313, 399, 400, 211, 437, 190, 419, 183, 926, 418, - 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, - 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, - 177, 0, 377, 412, 438, 195, 196, 197, 640, 230, - 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, - 342, 722, 390, 407, 415, 422, 428, 429, 433, 430, - 431, 434, 305, 191, 254, 373, 269, 278, 714, 750, - 323, 354, 200, 410, 374, 635, 639, 633, 634, 686, - 687, 636, 742, 743, 744, 718, 629, 0, 637, 638, - 0, 724, 732, 733, 691, 170, 184, 274, 746, 343, - 238, 436, 417, 413, 615, 632, 216, 643, 0, 0, - 656, 664, 665, 677, 679, 680, 681, 682, 690, 698, - 699, 701, 709, 711, 713, 715, 720, 729, 749, 172, - 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, - 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, - 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, - 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, - 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, - 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, - 689, 696, 284, 232, 249, 259, 704, 416, 379, 189, - 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, - 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 736, 723, 0, 0, 672, - 739, 642, 660, 748, 663, 666, 706, 621, 685, 314, - 657, 0, 646, 617, 653, 618, 644, 674, 223, 678, - 641, 725, 688, 738, 272, 0, 623, 647, 328, 662, - 176, 708, 366, 209, 281, 279, 394, 233, 226, 222, - 208, 256, 287, 326, 384, 320, 745, 276, 695, 0, - 375, 299, 0, 0, 0, 676, 728, 683, 719, 671, - 707, 631, 694, 740, 658, 703, 741, 262, 207, 175, - 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, - 700, 735, 655, 702, 219, 260, 225, 218, 391, 705, - 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, - 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, - 669, 0, 0, 0, 0, 0, 0, 1468, 0, 648, - 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, - 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, - 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, - 668, 667, 737, 712, 628, 727, 661, 271, 626, 268, - 171, 187, 0, 659, 310, 349, 355, 726, 645, 654, - 210, 652, 353, 324, 408, 194, 235, 346, 329, 351, - 692, 710, 352, 277, 396, 341, 406, 424, 425, 217, - 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, - 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, - 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, - 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, - 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, - 183, 926, 418, 306, 395, 403, 295, 286, 182, 401, - 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, - 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, - 197, 640, 230, 234, 240, 242, 0, 248, 255, 273, - 317, 338, 336, 342, 722, 390, 407, 415, 422, 428, - 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, - 278, 714, 750, 323, 354, 200, 410, 374, 635, 639, - 633, 634, 686, 687, 636, 742, 743, 744, 718, 629, - 0, 637, 638, 0, 724, 732, 733, 691, 170, 184, - 274, 746, 343, 238, 436, 417, 413, 615, 632, 216, - 643, 0, 0, 656, 664, 665, 677, 679, 680, 681, - 682, 690, 698, 699, 701, 709, 711, 713, 715, 720, - 729, 749, 172, 173, 185, 193, 203, 215, 228, 236, - 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, - 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, - 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, - 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, - 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, - 427, 0, 282, 689, 696, 284, 232, 249, 259, 704, - 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, - 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, - 201, 365, 385, 386, 387, 389, 296, 220, 736, 723, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 0, + 0, 0, 0, 0, 0, 1921, 0, 34, 0, 1921, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1921, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2179, 0, 0, + 0, 0, 34, 0, 0, 0, 0, 0, 736, 723, 0, 0, 672, 739, 642, 660, 748, 663, 666, 706, 621, 685, 314, 657, 0, 646, 617, 653, 618, 644, - 674, 223, 678, 641, 725, 688, 738, 272, 0, 623, + 674, 223, 678, 641, 725, 688, 738, 272, 34, 623, 647, 328, 662, 176, 708, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 745, 276, 695, 0, 375, 299, 0, 0, 0, 676, 728, 683, 719, 671, 707, 631, 694, 740, 658, 703, 741, - 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, + 168, 169, 0, 2213, 2214, 0, 0, 0, 0, 0, 198, 0, 205, 700, 735, 655, 702, 219, 260, 225, 218, 391, 705, 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, 0, 0, @@ -1882,7 +1715,7 @@ var yyAct = [...]int{ 219, 260, 225, 218, 391, 705, 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, 669, 0, 0, 0, - 0, 0, 0, 0, 0, 648, 0, 693, 0, 0, + 0, 0, 0, 1913, 0, 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, 668, 667, 737, 712, @@ -1929,7 +1762,7 @@ var yyAct = [...]int{ 735, 655, 702, 219, 260, 225, 218, 391, 705, 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, 669, - 0, 0, 0, 0, 0, 0, 0, 0, 648, 0, + 0, 0, 0, 0, 0, 0, 1756, 0, 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, 668, @@ -1942,12 +1775,12 @@ var yyAct = [...]int{ 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, - 625, 418, 306, 395, 403, 295, 286, 182, 401, 293, + 926, 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, 428, 429, - 433, 430, 431, 434, 613, 752, 607, 606, 269, 278, + 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, 714, 750, 323, 354, 200, 410, 374, 635, 639, 633, 634, 686, 687, 636, 742, 743, 744, 718, 629, 0, 637, 638, 0, 724, 732, 733, 691, 170, 184, 274, @@ -1976,7 +1809,7 @@ var yyAct = [...]int{ 0, 205, 700, 735, 655, 702, 219, 260, 225, 218, 391, 705, 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, 0, 0, 675, - 684, 716, 669, 0, 0, 0, 0, 0, 0, 0, + 684, 716, 669, 0, 0, 0, 0, 0, 0, 1468, 0, 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, 721, 730, 670, @@ -1986,16 +1819,16 @@ var yyAct = [...]int{ 329, 351, 692, 710, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, - 275, 432, 186, 361, 202, 179, 383, 1094, 199, 364, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, - 190, 419, 183, 625, 418, 306, 395, 403, 295, 286, + 190, 419, 183, 926, 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, 722, 390, 407, 415, - 422, 428, 429, 433, 430, 431, 434, 613, 752, 607, - 606, 269, 278, 714, 750, 323, 354, 200, 410, 374, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 714, 750, 323, 354, 200, 410, 374, 635, 639, 633, 634, 686, 687, 636, 742, 743, 744, 718, 629, 0, 637, 638, 0, 724, 732, 733, 691, 170, 184, 274, 746, 343, 238, 436, 417, 413, 615, @@ -2018,7 +1851,7 @@ var yyAct = [...]int{ 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 745, 276, 695, 0, 375, 299, 0, 0, 0, 676, 728, 683, 719, 671, 707, 631, 694, 740, 658, - 703, 741, 262, 207, 175, 311, 376, 237, 0, 0, + 703, 741, 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 700, 735, 655, 702, 219, 260, 225, 218, 391, 705, 751, 616, 697, 0, 619, @@ -2034,15 +1867,15 @@ var yyAct = [...]int{ 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, - 604, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, - 400, 211, 437, 190, 419, 183, 625, 418, 306, 395, + 400, 211, 437, 190, 419, 183, 926, 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, - 613, 752, 607, 606, 269, 278, 714, 750, 323, 354, + 305, 191, 254, 373, 269, 278, 714, 750, 323, 354, 200, 410, 374, 635, 639, 633, 634, 686, 687, 636, 742, 743, 744, 718, 629, 0, 637, 638, 0, 724, 732, 733, 691, 170, 184, 274, 746, 343, 238, 436, @@ -2058,65 +1891,346 @@ var yyAct = [...]int{ 284, 232, 249, 259, 704, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 0, 1394, 0, 504, 0, - 0, 0, 223, 0, 503, 0, 0, 0, 272, 0, - 0, 1395, 328, 0, 176, 0, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, - 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, - 0, 262, 207, 175, 311, 376, 237, 71, 0, 0, - 167, 168, 169, 525, 524, 527, 528, 529, 530, 0, - 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, - 225, 218, 391, 0, 0, 0, 501, 518, 0, 546, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, - 516, 594, 0, 0, 0, 562, 0, 517, 0, 0, - 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, - 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, - 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, - 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, - 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, - 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, - 410, 374, 549, 560, 555, 556, 553, 554, 548, 552, - 551, 550, 563, 540, 541, 542, 543, 545, 0, 557, - 558, 544, 170, 184, 274, 0, 343, 238, 436, 417, - 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, - 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 314, 0, 0, 0, 0, 504, 0, 0, - 0, 223, 0, 503, 0, 0, 0, 272, 0, 0, - 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, - 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, - 538, 539, 0, 0, 0, 0, 0, 0, 1507, 0, - 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, - 168, 169, 525, 524, 527, 528, 529, 530, 0, 0, - 198, 526, 205, 531, 532, 533, 1508, 219, 260, 225, + 389, 296, 220, 736, 723, 0, 0, 672, 739, 642, + 660, 748, 663, 666, 706, 621, 685, 314, 657, 0, + 646, 617, 653, 618, 644, 674, 223, 678, 641, 725, + 688, 738, 272, 0, 623, 647, 328, 662, 176, 708, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 745, 276, 695, 0, 375, 299, + 0, 0, 0, 676, 728, 683, 719, 671, 707, 631, + 694, 740, 658, 703, 741, 262, 207, 175, 311, 376, + 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 700, 735, + 655, 702, 219, 260, 225, 218, 391, 705, 751, 616, + 697, 0, 619, 622, 747, 731, 650, 651, 0, 0, + 0, 0, 0, 0, 0, 675, 684, 716, 669, 0, + 0, 0, 0, 0, 0, 0, 0, 648, 0, 693, + 0, 0, 0, 627, 620, 0, 0, 0, 0, 673, + 0, 0, 0, 630, 0, 649, 717, 0, 614, 245, + 624, 300, 0, 721, 730, 670, 423, 734, 668, 667, + 737, 712, 628, 727, 661, 271, 626, 268, 171, 187, + 0, 659, 310, 349, 355, 726, 645, 654, 210, 652, + 353, 324, 408, 194, 235, 346, 329, 351, 692, 710, + 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, + 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, + 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, + 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, + 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, + 212, 313, 399, 400, 211, 437, 190, 419, 183, 926, + 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, + 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, + 0, 177, 0, 377, 412, 438, 195, 196, 197, 640, + 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, + 336, 342, 722, 390, 407, 415, 422, 428, 429, 433, + 430, 431, 434, 305, 191, 254, 373, 269, 278, 714, + 750, 323, 354, 200, 410, 374, 635, 639, 633, 634, + 686, 687, 636, 742, 743, 744, 718, 629, 0, 637, + 638, 0, 724, 732, 733, 691, 170, 184, 274, 746, + 343, 238, 436, 417, 413, 615, 632, 216, 643, 0, + 0, 656, 664, 665, 677, 679, 680, 681, 682, 690, + 698, 699, 701, 709, 711, 713, 715, 720, 729, 749, + 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, + 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, + 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, + 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, + 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, + 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, + 282, 689, 696, 284, 232, 249, 259, 704, 416, 379, + 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, + 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, + 385, 386, 387, 389, 296, 220, 736, 723, 0, 0, + 672, 739, 642, 660, 748, 663, 666, 706, 621, 685, + 314, 657, 0, 646, 617, 653, 618, 644, 674, 223, + 678, 641, 725, 688, 738, 272, 0, 623, 647, 328, + 662, 176, 708, 366, 209, 281, 279, 394, 233, 226, + 222, 208, 256, 287, 326, 384, 320, 745, 276, 695, + 0, 375, 299, 0, 0, 0, 676, 728, 683, 719, + 671, 707, 631, 694, 740, 658, 703, 741, 262, 207, + 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 700, 735, 655, 702, 219, 260, 225, 218, 391, + 705, 751, 616, 697, 0, 619, 622, 747, 731, 650, + 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, + 716, 669, 0, 0, 0, 0, 0, 0, 0, 0, + 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, + 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, + 0, 614, 245, 624, 300, 0, 721, 730, 670, 423, + 734, 668, 667, 737, 712, 628, 727, 661, 271, 626, + 268, 171, 187, 0, 659, 310, 349, 355, 726, 645, + 654, 210, 652, 353, 324, 408, 194, 235, 346, 329, + 351, 692, 710, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 625, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 613, 752, 607, 606, + 269, 278, 714, 750, 323, 354, 200, 410, 374, 635, + 639, 633, 634, 686, 687, 636, 742, 743, 744, 718, + 629, 0, 637, 638, 0, 724, 732, 733, 691, 170, + 184, 274, 746, 343, 238, 436, 417, 413, 615, 632, + 216, 643, 0, 0, 656, 664, 665, 677, 679, 680, + 681, 682, 690, 698, 699, 701, 709, 711, 713, 715, + 720, 729, 749, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 689, 696, 284, 232, 249, 259, + 704, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 736, + 723, 0, 0, 672, 739, 642, 660, 748, 663, 666, + 706, 621, 685, 314, 657, 0, 646, 617, 653, 618, + 644, 674, 223, 678, 641, 725, 688, 738, 272, 0, + 623, 647, 328, 662, 176, 708, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 745, 276, 695, 0, 375, 299, 0, 0, 0, 676, + 728, 683, 719, 671, 707, 631, 694, 740, 658, 703, + 741, 262, 207, 175, 311, 376, 237, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 700, 735, 655, 702, 219, 260, + 225, 218, 391, 705, 751, 616, 697, 0, 619, 622, + 747, 731, 650, 651, 0, 0, 0, 0, 0, 0, + 0, 675, 684, 716, 669, 0, 0, 0, 0, 0, + 0, 0, 0, 648, 0, 693, 0, 0, 0, 627, + 620, 0, 0, 0, 0, 673, 0, 0, 0, 630, + 0, 649, 717, 0, 614, 245, 624, 300, 0, 721, + 730, 670, 423, 734, 668, 667, 737, 712, 628, 727, + 661, 271, 626, 268, 171, 187, 0, 659, 310, 349, + 355, 726, 645, 654, 210, 652, 353, 324, 408, 194, + 235, 346, 329, 351, 692, 710, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 1094, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 625, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 640, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 722, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 613, + 752, 607, 606, 269, 278, 714, 750, 323, 354, 200, + 410, 374, 635, 639, 633, 634, 686, 687, 636, 742, + 743, 744, 718, 629, 0, 637, 638, 0, 724, 732, + 733, 691, 170, 184, 274, 746, 343, 238, 436, 417, + 413, 615, 632, 216, 643, 0, 0, 656, 664, 665, + 677, 679, 680, 681, 682, 690, 698, 699, 701, 709, + 711, 713, 715, 720, 729, 749, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 689, 696, 284, + 232, 249, 259, 704, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 736, 723, 0, 0, 672, 739, 642, 660, + 748, 663, 666, 706, 621, 685, 314, 657, 0, 646, + 617, 653, 618, 644, 674, 223, 678, 641, 725, 688, + 738, 272, 0, 623, 647, 328, 662, 176, 708, 366, + 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, + 326, 384, 320, 745, 276, 695, 0, 375, 299, 0, + 0, 0, 676, 728, 683, 719, 671, 707, 631, 694, + 740, 658, 703, 741, 262, 207, 175, 311, 376, 237, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 700, 735, 655, + 702, 219, 260, 225, 218, 391, 705, 751, 616, 697, + 0, 619, 622, 747, 731, 650, 651, 0, 0, 0, + 0, 0, 0, 0, 675, 684, 716, 669, 0, 0, + 0, 0, 0, 0, 0, 0, 648, 0, 693, 0, + 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, + 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, + 300, 0, 721, 730, 670, 423, 734, 668, 667, 737, + 712, 628, 727, 661, 271, 626, 268, 171, 187, 0, + 659, 310, 349, 355, 726, 645, 654, 210, 652, 353, + 324, 408, 194, 235, 346, 329, 351, 692, 710, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 604, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 625, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 640, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 722, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 613, 752, 607, 606, 269, 278, 714, 750, + 323, 354, 200, 410, 374, 635, 639, 633, 634, 686, + 687, 636, 742, 743, 744, 718, 629, 0, 637, 638, + 0, 724, 732, 733, 691, 170, 184, 274, 746, 343, + 238, 436, 417, 413, 615, 632, 216, 643, 0, 0, + 656, 664, 665, 677, 679, 680, 681, 682, 690, 698, + 699, 701, 709, 711, 713, 715, 720, 729, 749, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 689, 696, 284, 232, 249, 259, 704, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 314, 0, 0, 1394, 0, + 504, 0, 0, 0, 223, 0, 503, 0, 0, 0, + 272, 0, 0, 1395, 328, 0, 176, 0, 366, 209, + 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, + 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, + 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, + 0, 0, 167, 168, 169, 525, 524, 527, 528, 529, + 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, + 219, 260, 225, 218, 391, 0, 0, 0, 501, 518, + 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 515, 516, 594, 0, 0, 0, 562, 0, 517, + 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, + 0, 561, 0, 0, 423, 0, 0, 559, 0, 0, + 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, + 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, + 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, + 354, 200, 410, 374, 549, 560, 555, 556, 553, 554, + 548, 552, 551, 550, 563, 540, 541, 542, 543, 545, + 0, 557, 558, 544, 170, 184, 274, 0, 343, 238, + 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, + 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 314, 0, 0, 0, 0, 504, + 0, 0, 0, 223, 0, 503, 0, 0, 0, 272, + 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, + 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, + 1507, 0, 262, 207, 175, 311, 376, 237, 71, 0, + 0, 167, 168, 169, 525, 524, 527, 528, 529, 530, + 0, 0, 198, 526, 205, 531, 532, 533, 1508, 219, + 260, 225, 218, 391, 0, 0, 0, 501, 518, 0, + 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 515, 516, 0, 0, 0, 0, 562, 0, 517, 0, + 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, + 561, 0, 0, 423, 0, 0, 559, 0, 0, 0, + 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, + 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, + 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, + 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, + 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, + 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, + 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, + 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, + 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, + 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, + 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, + 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, + 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, + 200, 410, 374, 549, 560, 555, 556, 553, 554, 548, + 552, 551, 550, 563, 540, 541, 542, 543, 545, 0, + 557, 558, 544, 170, 184, 274, 0, 343, 238, 436, + 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, + 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, + 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, + 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, + 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, + 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, + 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, + 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, + 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, + 389, 296, 220, 314, 0, 0, 0, 0, 504, 0, + 0, 0, 223, 0, 503, 0, 0, 0, 272, 0, + 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, + 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, + 0, 262, 207, 175, 311, 376, 237, 71, 0, 581, + 167, 168, 169, 525, 524, 527, 528, 529, 530, 0, + 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, + 225, 218, 391, 0, 0, 0, 501, 518, 0, 546, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, + 516, 0, 0, 0, 0, 562, 0, 517, 0, 0, + 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, + 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, + 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 549, 560, 555, 556, 553, 554, 548, 552, + 551, 550, 563, 540, 541, 542, 543, 545, 0, 557, + 558, 544, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 314, 0, 0, 0, 0, 504, 0, 0, + 0, 223, 0, 503, 0, 0, 0, 272, 0, 0, + 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, + 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, + 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, + 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, + 168, 169, 525, 524, 527, 528, 529, 530, 0, 0, + 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, 516, - 0, 0, 0, 0, 562, 0, 517, 0, 0, 510, + 594, 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, 0, @@ -2156,12 +2270,12 @@ var yyAct = [...]int{ 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, - 207, 175, 311, 376, 237, 71, 0, 581, 167, 168, - 169, 525, 524, 527, 528, 529, 530, 0, 0, 198, + 207, 175, 311, 376, 237, 71, 0, 0, 167, 168, + 169, 525, 1412, 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 515, 516, 0, + 0, 0, 0, 0, 0, 0, 0, 515, 516, 594, 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, @@ -2203,7 +2317,7 @@ var yyAct = [...]int{ 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, - 525, 524, 527, 528, 529, 530, 0, 0, 198, 526, + 525, 1409, 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2241,102 +2355,102 @@ var yyAct = [...]int{ 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 0, 0, 0, 504, 0, 0, 0, 223, 0, - 503, 0, 0, 0, 272, 0, 0, 0, 328, 0, - 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, - 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, - 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, - 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, - 311, 376, 237, 71, 0, 0, 167, 168, 169, 525, - 1412, 527, 528, 529, 530, 0, 0, 198, 526, 205, - 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, - 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 515, 516, 594, 0, 0, - 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, - 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 245, 0, 300, 0, 561, 0, 0, 423, 0, - 0, 559, 0, 0, 0, 0, 0, 271, 0, 268, - 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, - 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, - 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, - 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, - 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, - 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, - 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, - 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, - 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, - 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, - 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, - 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, - 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, - 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, - 278, 0, 0, 323, 354, 200, 410, 374, 549, 560, - 555, 556, 553, 554, 548, 552, 551, 550, 563, 540, - 541, 542, 543, 545, 0, 557, 558, 544, 170, 184, - 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 314, 0, 0, 0, 0, 504, 0, 0, + 0, 223, 0, 503, 0, 0, 0, 272, 0, 0, + 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, + 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, + 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, + 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, + 168, 169, 525, 524, 527, 528, 529, 530, 0, 0, + 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, + 218, 391, 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, - 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, - 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, - 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, - 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, - 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, - 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, - 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, - 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, - 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, - 0, 0, 0, 504, 0, 0, 0, 223, 0, 503, - 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, - 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, - 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, - 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, - 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 71, 0, 0, 167, 168, 169, 525, 1409, - 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, - 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, - 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 515, 516, 594, 0, 0, 0, - 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, - 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 245, 0, 300, 0, 561, 0, 0, 423, 0, 0, - 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, - 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, - 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, - 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, - 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, - 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, - 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, - 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, - 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, - 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, - 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, - 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, - 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, - 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, - 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, - 0, 0, 323, 354, 200, 410, 374, 549, 560, 555, - 556, 553, 554, 548, 552, 551, 550, 563, 540, 541, - 542, 543, 545, 0, 557, 558, 544, 170, 184, 274, - 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 515, 516, + 0, 0, 0, 0, 562, 0, 517, 0, 0, 510, + 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, + 0, 423, 0, 0, 559, 0, 0, 0, 0, 0, + 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, + 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, + 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, + 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, + 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, + 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, + 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, + 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, + 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, + 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, + 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, + 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, + 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, + 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, + 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, + 374, 549, 560, 555, 556, 553, 554, 548, 552, 551, + 550, 563, 540, 541, 542, 543, 545, 0, 557, 558, + 544, 170, 184, 274, 0, 343, 238, 436, 417, 413, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, + 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, + 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, + 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, + 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, + 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, + 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, + 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, + 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, + 220, 314, 0, 0, 0, 0, 504, 0, 0, 0, + 223, 0, 503, 0, 0, 0, 272, 0, 0, 0, + 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, + 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, + 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, + 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, + 207, 175, 311, 376, 237, 71, 0, 0, 167, 168, + 169, 525, 524, 527, 528, 529, 530, 0, 0, 198, + 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, + 391, 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, - 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, - 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, - 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, - 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, - 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, - 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, - 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, - 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, - 365, 385, 386, 387, 389, 296, 220, 574, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 515, 516, 0, + 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, + 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, + 423, 0, 0, 559, 0, 0, 0, 0, 0, 271, + 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, + 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, + 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, + 549, 560, 555, 556, 553, 554, 548, 552, 551, 550, + 563, 540, 541, 542, 543, 545, 0, 557, 558, 544, + 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 314, 0, 0, 0, 0, 504, 0, 0, 0, 223, - 0, 503, 0, 0, 0, 272, 0, 0, 0, 328, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, + 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, + 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, @@ -2344,7 +2458,7 @@ var yyAct = [...]int{ 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, 525, 524, 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, - 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, + 0, 0, 0, 0, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, 516, 0, 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, @@ -2353,7 +2467,7 @@ var yyAct = [...]int{ 0, 0, 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, - 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, + 351, 2206, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, @@ -2381,16 +2495,16 @@ var yyAct = [...]int{ 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 0, 0, 0, 504, 0, 0, 0, 223, 0, - 503, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, - 311, 376, 237, 71, 0, 0, 167, 168, 169, 525, + 311, 376, 237, 71, 0, 581, 167, 168, 169, 525, 524, 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, - 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, + 0, 0, 0, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, 516, 0, 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, @@ -2444,7 +2558,7 @@ var yyAct = [...]int{ 245, 0, 300, 0, 561, 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, - 0, 353, 324, 408, 194, 235, 346, 329, 351, 2204, + 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, @@ -2473,23 +2587,23 @@ var yyAct = [...]int{ 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, - 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 223, 798, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, - 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, - 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, + 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, - 237, 71, 0, 581, 167, 168, 169, 525, 524, 527, - 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, - 533, 0, 219, 260, 225, 218, 391, 0, 0, 0, - 0, 518, 0, 546, 0, 0, 0, 0, 0, 0, + 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, + 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 515, 516, 0, 0, 0, 0, 562, - 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, - 0, 300, 0, 561, 0, 0, 423, 0, 0, 559, - 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, - 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, + 0, 300, 0, 0, 0, 797, 423, 0, 0, 0, + 0, 0, 0, 794, 795, 271, 760, 268, 171, 187, + 788, 792, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, @@ -2503,9 +2617,9 @@ var yyAct = [...]int{ 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, - 0, 323, 354, 200, 410, 374, 549, 560, 555, 556, - 553, 554, 548, 552, 551, 550, 563, 540, 541, 542, - 543, 545, 0, 557, 558, 544, 170, 184, 274, 0, + 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2519,21 +2633,21 @@ var yyAct = [...]int{ 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, - 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, + 1072, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, - 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, - 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, + 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, - 71, 0, 0, 167, 168, 169, 525, 524, 527, 528, - 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, - 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, - 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 167, 168, 169, 0, 1074, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 260, 225, 218, 391, 958, 959, 957, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 960, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 515, 516, 0, 0, 0, 0, 562, 0, - 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 300, 0, 561, 0, 0, 423, 0, 0, 559, 0, + 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, @@ -2549,9 +2663,9 @@ var yyAct = [...]int{ 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, - 323, 354, 200, 410, 374, 549, 560, 555, 556, 553, - 554, 548, 552, 551, 550, 563, 540, 541, 542, 543, - 545, 0, 557, 558, 544, 170, 184, 274, 0, 343, + 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, @@ -2564,153 +2678,153 @@ var yyAct = [...]int{ 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, - 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, - 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, - 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, - 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, + 386, 387, 389, 296, 220, 35, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, + 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, + 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, + 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, + 376, 237, 71, 0, 581, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, - 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, - 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, - 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 969, 968, 978, - 979, 971, 972, 973, 974, 975, 976, 977, 970, 0, - 0, 980, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, - 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, - 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, - 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, - 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, - 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, - 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, - 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, - 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, - 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, - 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, - 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, - 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, - 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, - 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, - 0, 0, 0, 223, 798, 0, 0, 0, 0, 272, - 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, - 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, - 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, - 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, + 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, + 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, + 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, + 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, + 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, + 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, + 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, + 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, + 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, + 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, + 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, + 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, + 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, + 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, + 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, + 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, + 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 184, 274, + 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, + 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, + 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, + 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, + 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, + 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, + 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, + 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, + 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, + 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, + 0, 1439, 0, 0, 0, 0, 223, 0, 0, 0, + 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, + 237, 0, 0, 0, 167, 168, 169, 0, 1441, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, + 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, - 0, 0, 797, 423, 0, 0, 0, 0, 0, 0, - 794, 795, 271, 760, 268, 171, 187, 788, 792, 310, - 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, - 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, - 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, - 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, - 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, - 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, - 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, - 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, - 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, - 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, - 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, - 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, - 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, - 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, - 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, - 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, + 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, + 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, + 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, + 353, 324, 408, 194, 235, 346, 329, 351, 0, 1437, + 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, + 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, + 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, + 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, + 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, + 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, + 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, + 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, + 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, + 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, + 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, + 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, + 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, - 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, - 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, - 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, - 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, - 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, - 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, - 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, - 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 0, 0, 1072, 0, 0, - 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, - 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, + 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, + 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, + 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, + 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, + 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, + 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, + 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, + 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, + 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, + 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, + 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, + 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, + 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, + 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, - 167, 168, 169, 0, 1074, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, - 225, 218, 391, 958, 959, 957, 0, 0, 0, 0, + 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 960, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, - 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, - 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, - 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, - 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, - 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, - 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, + 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, + 0, 0, 0, 0, 271, 760, 268, 171, 187, 758, + 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, + 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, + 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, - 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, + 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, - 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 35, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 314, 0, 0, 0, 1439, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, - 0, 581, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, + 0, 0, 167, 168, 169, 0, 1441, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2749,153 +2863,153 @@ var yyAct = [...]int{ 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 0, 0, 1439, 0, - 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, - 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, - 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, - 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, - 0, 167, 168, 169, 0, 1441, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 387, 389, 296, 220, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, + 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, + 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, + 237, 71, 0, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, + 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, - 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, - 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, - 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, - 194, 235, 346, 329, 351, 0, 1437, 352, 277, 396, - 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, - 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, - 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, - 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, - 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, - 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, - 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, - 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, - 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, - 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, - 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, - 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, - 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, - 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, - 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, - 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, - 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, - 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, - 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, - 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, - 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, - 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, - 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, - 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, + 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, + 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, + 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, + 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, + 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, + 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, + 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, + 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, + 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, + 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, + 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, + 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, + 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, + 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, + 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, + 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, + 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, - 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, + 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, + 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, + 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, + 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, + 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, + 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, + 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, + 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, + 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, + 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, + 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, + 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, + 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, + 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, - 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, - 0, 271, 760, 268, 171, 187, 758, 0, 310, 349, - 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, - 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, - 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, - 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, + 0, 0, 0, 167, 168, 169, 0, 0, 1460, 0, + 0, 1461, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, - 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, - 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 314, 0, 0, 0, 1439, 0, 0, 0, - 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, - 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, - 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 1441, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, - 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, + 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, + 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, + 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, + 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, + 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, + 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, + 0, 0, 0, 0, 223, 0, 1105, 0, 0, 0, + 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, + 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, + 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, - 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, - 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, - 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, - 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, - 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, - 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, - 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, - 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, - 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, - 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, - 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, - 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, - 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, - 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, - 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, - 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, - 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, + 0, 0, 167, 168, 169, 0, 1104, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, - 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, - 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, - 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, - 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, - 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, - 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, - 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, - 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 35, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, + 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, + 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, + 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, + 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, + 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, + 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 262, 207, 175, 311, 376, 237, 71, 0, - 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, + 581, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2940,8 +3054,8 @@ var yyAct = [...]int{ 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, - 167, 168, 169, 0, 0, 1460, 0, 0, 1461, 0, + 0, 262, 207, 175, 311, 376, 237, 71, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2981,13 +3095,13 @@ var yyAct = [...]int{ 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, - 0, 223, 0, 1105, 0, 0, 0, 272, 0, 0, + 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 1104, 0, 0, 0, 0, 0, 0, + 168, 169, 0, 1441, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3032,8 +3146,8 @@ var yyAct = [...]int{ 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, - 207, 175, 311, 376, 237, 0, 0, 581, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, + 169, 0, 1074, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3078,7 +3192,7 @@ var yyAct = [...]int{ 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, - 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, + 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3105,7 +3219,7 @@ var yyAct = [...]int{ 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 184, 274, 1344, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, @@ -3118,14 +3232,14 @@ var yyAct = [...]int{ 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 1227, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, - 1441, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3164,13 +3278,13 @@ var yyAct = [...]int{ 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, - 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, + 1225, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 0, 0, 0, 167, 168, 169, 0, 1074, + 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3209,7 +3323,7 @@ var yyAct = [...]int{ 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, - 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, + 365, 385, 386, 387, 389, 296, 220, 314, 0, 1223, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, @@ -3242,7 +3356,7 @@ var yyAct = [...]int{ 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 274, 1344, + 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3255,7 +3369,7 @@ var yyAct = [...]int{ 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, - 385, 386, 387, 389, 296, 220, 314, 0, 1227, 0, + 385, 386, 387, 389, 296, 220, 314, 0, 1221, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, @@ -3301,7 +3415,7 @@ var yyAct = [...]int{ 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 314, 0, 1225, 0, 0, + 386, 387, 389, 296, 220, 314, 0, 1219, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, @@ -3347,7 +3461,7 @@ var yyAct = [...]int{ 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 1223, 0, 0, 0, + 387, 389, 296, 220, 314, 0, 1215, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, @@ -3393,7 +3507,7 @@ var yyAct = [...]int{ 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 1221, 0, 0, 0, 0, + 389, 296, 220, 314, 0, 1213, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, @@ -3439,7 +3553,7 @@ var yyAct = [...]int{ 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 314, 0, 1219, 0, 0, 0, 0, 0, + 296, 220, 314, 0, 1211, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, @@ -3485,13 +3599,13 @@ var yyAct = [...]int{ 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 1215, 0, 0, 0, 0, 0, 0, + 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, - 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, + 207, 175, 311, 376, 237, 1186, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3531,145 +3645,145 @@ var yyAct = [...]int{ 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 1213, 0, 0, 0, 0, 0, 0, 223, - 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, - 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, - 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, - 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, - 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1087, 0, 0, 0, 0, 0, 0, 314, 0, 0, + 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, + 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, + 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, + 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, - 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, - 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, - 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, - 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, - 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, + 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, + 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, + 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, + 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, + 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, + 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, + 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, + 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, + 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, + 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, + 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, + 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, + 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, + 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, + 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, + 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, + 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, - 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 1211, 0, 0, 0, 0, 0, 0, 223, 0, - 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, - 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, - 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, - 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, - 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, - 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, + 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, + 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, + 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, + 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, + 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, + 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, + 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, + 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, + 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, + 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, + 0, 0, 0, 0, 1078, 223, 0, 0, 0, 0, + 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, + 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, + 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, - 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, - 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, - 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, - 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, - 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, - 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, - 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, - 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, - 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, - 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, - 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, - 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, - 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, - 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, - 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, - 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, - 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, + 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, + 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, + 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, + 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, + 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, - 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, - 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, - 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, - 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, - 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, - 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, - 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, - 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, - 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, - 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, - 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, - 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, - 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, - 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 1186, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, + 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, + 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, + 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, + 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, + 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, + 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, + 0, 0, 167, 168, 169, 0, 934, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, - 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, - 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, - 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, - 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, - 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, - 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, - 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, - 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, - 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, - 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, - 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, - 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, - 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, - 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, - 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, - 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 184, 274, - 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, + 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, + 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, + 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, + 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, + 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, - 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, - 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, - 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, - 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, - 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, - 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, - 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, - 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, - 365, 385, 386, 387, 389, 296, 220, 1087, 0, 0, - 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, + 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, @@ -3683,7 +3797,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, + 0, 0, 0, 0, 492, 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, @@ -3711,12 +3825,12 @@ var yyAct = [...]int{ 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, - 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, + 409, 421, 426, 491, 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, - 0, 1078, 223, 0, 0, 0, 0, 0, 272, 0, + 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, @@ -3730,7 +3844,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, - 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, + 441, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, @@ -3768,7 +3882,7 @@ var yyAct = [...]int{ 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 934, 0, 0, 0, 0, 0, 0, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3807,164 +3921,27 @@ var yyAct = [...]int{ 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, - 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, - 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, - 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, - 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, - 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, - 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 492, 0, 245, 0, 300, 0, 0, 0, 0, - 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, - 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, - 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, - 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, - 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, - 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, - 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, - 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, - 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, - 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, - 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, - 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, - 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, - 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, - 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, - 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, - 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, - 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, - 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, - 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, - 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, - 491, 405, 427, 0, 282, 0, 0, 284, 232, 249, - 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, - 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, - 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, - 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, - 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, - 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, - 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, - 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 245, 0, 300, 0, 0, 441, 0, 423, - 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, - 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, - 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, - 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, - 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, - 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, - 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, - 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, - 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, - 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, - 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, - 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, - 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, - 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, - 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, - 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, - 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, - 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, - 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, - 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, - 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, - 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, - 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, - 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, - 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, - 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, - 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, - 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, - 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, - 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, - 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, - 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, - 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, - 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, - 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, - 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, - 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, - 201, 365, 385, 386, 387, 389, 296, 220, + 220, } var yyPact = [...]int{ - 4549, -1000, -346, 1590, -1000, -1000, -1000, -1000, -1000, -1000, + 4207, -1000, -347, 1591, -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, 1549, 1219, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 612, 1261, -1000, 1459, 241, -1000, 27890, 404, - -1000, 27431, 403, 2683, 27890, -1000, 102, -1000, 90, 27890, - 101, 26972, -1000, -1000, -286, 12710, 1419, -6, -8, 27890, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1240, - 1521, 1527, 1546, 1066, 1472, -1000, 10861, 10861, 330, 330, - 330, 9025, -1000, -1000, 16854, 27890, 27890, 189, -1000, 1459, - -1000, -1000, 151, -1000, 247, 1193, -1000, 1188, -1000, 463, - 543, 243, 321, 319, 231, 230, 229, 224, 223, 222, - 221, 220, 250, -1000, 540, 540, -175, -180, 2059, 305, - 305, 305, 361, 1434, 1433, -1000, 502, -1000, 540, 540, - 149, 540, 540, 540, 540, 181, 176, 540, 540, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, - 540, 540, 177, 1459, 161, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1525, 1192, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 577, 1264, -1000, 1461, 255, -1000, 27653, 379, + -1000, 27194, 378, 2210, 27653, -1000, 95, -1000, 76, 27653, + 85, 26735, -1000, -1000, -286, 12932, 1415, -26, -27, 27653, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1278, + 1512, 1524, 1553, 1066, 1583, -1000, 11083, 11083, 312, 312, + 312, 9247, -1000, -1000, 16617, 27653, 27653, 168, -1000, 1461, + -1000, -1000, 145, -1000, 247, 1235, -1000, 1234, -1000, 458, + 488, 243, 318, 317, 240, 237, 234, 233, 230, 229, + 228, 227, 241, -1000, 543, 543, -179, -180, 3158, 300, + 300, 300, 329, 1430, 1429, -1000, 606, -1000, 543, 543, + 143, 543, 543, 543, 543, 199, 198, 543, 543, 543, + 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, + 543, 543, 192, 1461, 183, -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, @@ -3991,26 +3968,26 @@ 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, -1000, -1000, 27890, - 135, 27890, -1000, 469, 27890, 623, 623, 26, 623, 623, - 623, 623, 99, 444, -10, -1000, 96, 166, 94, 154, - 622, 84, 58, -1000, -1000, 157, 622, 78, -1000, 623, - 7133, 7133, 7133, -1000, 1443, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 360, -1000, -1000, -1000, -1000, 27890, 26513, - 226, 605, -1000, -1000, -1000, 8, -1000, -1000, 1122, 556, - -1000, 12710, 2147, 1210, 1210, -1000, -1000, 433, -1000, -1000, - 14087, 14087, 14087, 14087, 14087, 14087, 14087, 14087, 14087, 14087, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 27653, + 70, 27653, -1000, 451, 27653, 624, 624, 16, 624, 624, + 624, 624, 77, 578, -33, -1000, 68, 184, 102, 180, + 612, 91, 57, -1000, -1000, 172, 612, 114, -1000, 624, + 7355, 7355, 7355, -1000, 1439, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 327, -1000, -1000, -1000, -1000, 27653, 26276, + 245, 571, -1000, -1000, -1000, 62, -1000, -1000, 1089, 841, + -1000, 12932, 2589, 1237, 1237, -1000, -1000, 398, -1000, -1000, + 14309, 14309, 14309, 14309, 14309, 14309, 14309, 14309, 14309, 14309, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1210, 466, -1000, 12251, 1210, 1210, - 1210, 1210, 1210, 1210, 1210, 1210, 12710, 1210, 1210, 1210, - 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, - 1210, 1210, 1210, 1210, -1000, -1000, -1000, 27890, -1000, 1210, - 112, 1549, -1000, 1219, -1000, -1000, -1000, 1450, 12710, 12710, - 1549, -1000, 1363, 10861, -1000, -1000, 1393, -1000, -1000, -1000, - -1000, -1000, 710, 1575, -1000, 15464, 461, 1574, 26054, -1000, - 19621, 25595, 1179, 8552, -49, -1000, -1000, -1000, 598, 18703, + -1000, -1000, -1000, -1000, 1237, 448, -1000, 12473, 1237, 1237, + 1237, 1237, 1237, 1237, 1237, 1237, 12932, 1237, 1237, 1237, + 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, + 1237, 1237, 1237, 1237, -1000, -1000, -1000, 27653, -1000, 1237, + 110, 1525, -1000, 1192, -1000, -1000, -1000, 1455, 12932, 12932, + 1525, -1000, 1369, 11083, -1000, -1000, 1460, -1000, -1000, -1000, + -1000, -1000, 689, 1575, -1000, 15227, 441, 1574, 25817, -1000, + 19384, 25358, 1233, 8774, -54, -1000, -1000, -1000, 554, 18466, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1443, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1439, -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, @@ -4023,193 +4000,194 @@ 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, 1092, 27890, -1000, -1000, 4016, 936, -1000, - 1260, -1000, 1088, -1000, 1226, 1269, 400, 936, 395, 394, - 391, -1000, -110, -1000, -1000, -1000, -1000, -1000, 540, 540, - 249, 241, 4144, -1000, -1000, -1000, 25129, 1259, 936, -1000, - 1258, -1000, 1484, 313, 506, 506, 936, -1000, -1000, 27890, - 936, 1482, 1481, 27890, 27890, -1000, 24670, -1000, 24211, 23752, - 870, 27890, 23293, 22834, 22375, 21916, 21457, -1000, 1317, -1000, - 1246, -1000, -1000, -1000, 27890, 27890, 27890, 20, -1000, -1000, - 27890, 936, -1000, -1000, 863, 862, 540, 540, 851, 972, - 963, 961, 540, 540, 850, 957, 931, 148, 840, 837, - 835, 848, 935, 107, 799, 778, 809, 27890, 1257, 27890, - -1000, 153, 534, 244, 591, 1459, 1415, 1176, 358, 399, - 936, 312, 312, -1000, 7606, -1000, -1000, 930, 12710, -1000, - 670, 622, 622, -1000, -1000, -1000, -1000, -1000, -1000, 623, - 27890, 670, -1000, -1000, -1000, 622, 623, 27890, 623, 623, - 623, 623, 622, 622, 622, 623, 27890, 27890, 27890, 27890, - 27890, 27890, 27890, 27890, 27890, 7133, 7133, 7133, 504, 623, - -1000, 1300, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 97, -1000, -1000, -1000, -1000, -1000, 1590, -1000, -1000, -1000, - -115, 1159, 20998, -1000, -290, -292, -293, -294, -1000, -1000, - -1000, -295, -296, -1000, -1000, -1000, 12710, 12710, 12710, 12710, - 844, 520, 14087, 716, 528, 14087, 14087, 14087, 14087, 14087, - 14087, 14087, 14087, 14087, 14087, 14087, 14087, 14087, 14087, 14087, - 634, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 936, - -1000, 1588, 908, 908, 481, 481, 481, 481, 481, 481, - 481, 481, 481, 14546, 9484, 7606, 1066, 1059, 1549, 10861, - 10861, 12710, 12710, 11779, 11320, 10861, 1444, 603, 556, 27890, - -1000, 991, -1000, -1000, 13628, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 27890, 27890, 10861, - 10861, 10861, 10861, 10861, -1000, 1158, -1000, -174, 16395, 12710, - 920, 1527, 1066, 1393, 1495, 1581, 514, 1027, 1157, -1000, - 859, 1527, 18244, 1191, -1000, 1393, -1000, -1000, -1000, 27890, - -1000, -1000, 20539, -1000, -1000, 6660, 27890, 219, 27890, -1000, - 1190, 1378, -1000, -1000, -1000, 1504, 17785, 27890, 1136, 1077, - -1000, -1000, 455, 8079, -49, -1000, 8079, 1140, -1000, -55, - -65, 9943, 480, -1000, -1000, -1000, 2059, 15005, 1100, -1000, - 19, -1000, -1000, -1000, 1226, -1000, 1226, 1226, 1226, 1226, - 20, 20, 20, 20, -1000, -1000, -1000, -1000, -1000, 1256, - 1251, -1000, 1226, 1226, 1226, 1226, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1197, 27653, -1000, -1000, 3794, 896, -1000, + 1263, -1000, 1157, -1000, 1243, 1279, 377, 896, 369, 368, + 366, -1000, -112, -1000, -1000, -1000, -1000, -1000, 543, 543, + 239, 255, 4098, -1000, -1000, -1000, 24892, 1261, 896, -1000, + 1260, -1000, 1476, 292, 472, 472, 896, -1000, -1000, 27653, + 896, 1474, 1473, 27653, 27653, -1000, 24433, -1000, 23974, 23515, + 838, 27653, 23056, 22597, 22138, 21679, 21220, -1000, 1327, -1000, + 1270, -1000, -1000, -1000, 27653, 27653, 27653, 15, -1000, -1000, + 27653, 896, -1000, -1000, 832, 802, 543, 543, 798, 950, + 947, 946, 543, 543, 788, 945, 1047, 165, 783, 782, + 776, 848, 938, 108, 804, 799, 757, 27653, 1259, 27653, + -1000, 134, 594, 246, 548, 1461, 1413, 1225, 323, 375, + 896, 306, 306, -1000, 7828, -1000, -1000, 937, 12932, -1000, + 616, 612, 612, -1000, -1000, -1000, -1000, -1000, -1000, 624, + 27653, 616, -1000, -1000, -1000, 612, 624, 27653, 624, 624, + 624, 624, 612, 612, 612, 624, 27653, 27653, 27653, 27653, + 27653, 27653, 27653, 27653, 27653, 7355, 7355, 7355, 520, 624, + -1000, 1314, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 72, -1000, -1000, -1000, -1000, -1000, 1591, -1000, -1000, -1000, + -115, 1222, 20761, -1000, -290, -291, -292, -294, -1000, -1000, + -1000, -295, -299, -1000, -1000, -1000, 12932, 12932, 12932, 12932, + 694, 516, 14309, 728, 528, 14309, 14309, 14309, 14309, 14309, + 14309, 14309, 14309, 14309, 14309, 14309, 14309, 14309, 14309, 14309, + 684, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 896, + -1000, 1587, 1088, 1088, 469, 469, 469, 469, 469, 469, + 469, 469, 469, 4881, 9706, 7828, 1066, 1149, 1525, 11083, + 11083, 12932, 12932, 12001, 11542, 11083, 1446, 587, 841, 27653, + -1000, 963, -1000, -1000, 13850, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 27653, 27653, 11083, + 11083, 11083, 11083, 11083, -1000, 1214, -1000, -173, 16158, 12932, + 919, 1524, 1066, 1460, 1484, 1585, 500, 1034, 1210, -1000, + 735, 1524, 18007, 1217, -1000, 1460, -1000, -1000, -1000, 27653, + -1000, -1000, 20302, -1000, -1000, 6882, 27653, 226, 27653, -1000, + 1078, 1376, -1000, -1000, -1000, 1508, 17548, 27653, 1172, 1156, + -1000, -1000, 440, 8301, -54, -1000, 8301, 1152, -1000, -51, + -74, 10165, 462, -1000, -1000, -1000, 3158, 14768, 1001, -1000, + -4, -1000, -1000, -1000, 1243, -1000, 1243, 1243, 1243, 1243, + 15, 15, 15, 15, -1000, -1000, -1000, -1000, -1000, 1256, + 1249, -1000, 1243, 1243, 1243, 1243, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1250, 1250, 1250, 1241, 1241, 299, -1000, - 12710, 137, 27890, 1494, 804, 153, 325, 1281, 936, 936, - 936, 325, -1000, 925, 897, -1000, 1156, -1000, -1000, 1541, - -1000, -1000, 587, 663, 648, 599, 27890, 127, 214, -1000, - 292, -1000, 27890, 936, 1479, 506, 936, -1000, 936, -1000, - -1000, -1000, -1000, 454, -1000, -1000, 936, 1154, -1000, 1151, - 680, 645, 673, 635, 1154, -1000, -1000, -135, 1154, -1000, - 1154, -1000, 1154, -1000, 1154, -1000, 1154, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 551, 27890, 127, 634, -1000, - 335, -1000, -1000, 634, 634, -1000, -1000, -1000, -1000, 917, + -1000, -1000, -1000, 1248, 1248, 1248, 1245, 1245, 280, -1000, + 12932, 109, 27653, 1492, 752, 134, 309, 1291, 896, 896, + 896, 309, -1000, 1024, 1016, -1000, 1193, -1000, -1000, 1549, + -1000, -1000, 519, 650, 648, 525, 27653, 116, 223, -1000, + 284, -1000, 27653, 896, 1469, 472, 896, -1000, 896, -1000, + -1000, -1000, -1000, 433, -1000, -1000, 896, 1180, -1000, 1092, + 692, 645, 639, 642, 1180, -1000, -1000, -135, 1180, -1000, + 1180, -1000, 1180, -1000, 1180, -1000, 1180, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 515, 27653, 116, 684, -1000, + 322, -1000, -1000, 684, 684, -1000, -1000, -1000, -1000, 918, 915, -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, -339, 27890, -1000, - 144, 552, 188, 262, 194, 27890, 120, 1508, 186, 171, - 27890, 27890, 312, 1297, 27890, 1499, 27890, -1000, -1000, -1000, - -1000, 556, 27890, -1000, -1000, 623, 623, -1000, -1000, 27890, - 623, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 623, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -338, 27653, -1000, + 148, 546, 202, 236, 216, 27653, 115, 1516, 132, 196, + 27653, 27653, 306, 1313, 27653, 1495, 27653, -1000, -1000, -1000, + -1000, 841, 27653, -1000, -1000, 624, 624, -1000, -1000, 27653, + 624, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 624, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 913, -1000, 27890, 27890, -1000, -1000, - -1000, -1000, -1000, 66, -41, 199, -1000, -1000, -1000, -1000, - 1513, -1000, 556, 520, 582, 656, -1000, -1000, 772, -1000, - -1000, 2481, -1000, -1000, -1000, -1000, 716, 14087, 14087, 14087, - 1116, 2481, 2365, 895, 701, 481, 653, 653, 510, 510, - 510, 510, 510, 919, 919, -1000, -1000, -1000, -1000, 991, - -1000, -1000, -1000, 991, 10861, 10861, 1150, 1210, 442, -1000, - 1240, -1000, -1000, 1527, 1040, 1040, 813, 754, 596, 1572, - 1040, 588, 1567, 1040, 1040, 10861, -1000, -1000, 658, -1000, - 12710, 991, -1000, 1180, 1148, 1142, 1040, 991, 991, 1040, - 1040, 27890, -1000, -282, -1000, -89, 420, 1210, -1000, 20080, - -1000, -1000, 991, 1122, -1000, 1450, -1000, -1000, 1412, -1000, - 1352, 12710, 12710, 12710, -1000, -1000, -1000, 1450, 1519, -1000, - 1379, 1377, 1564, 10861, 19621, 1393, -1000, -1000, -1000, 441, - 1564, 1128, 1210, -1000, 27890, 19621, 19621, 19621, 19621, 19621, - -1000, 1323, 1319, -1000, 1315, 1309, 1322, 27890, -1000, 1048, - 1066, 17785, 219, 1112, 19621, 27890, -1000, -1000, 19621, 27890, - 6187, -1000, 1140, -49, -39, -1000, -1000, -1000, -1000, 556, - -1000, 806, -1000, 274, -1000, 298, -1000, -1000, -1000, -1000, - 387, 14, -1000, -1000, 20, 20, -1000, -1000, 480, 734, - 480, 480, 480, 905, 905, -1000, -1000, -1000, -1000, -1000, - 797, -1000, -1000, -1000, 795, -1000, -1000, 675, 1313, 137, - -1000, -1000, 540, 904, 1426, 27890, -1000, -1000, 1075, 144, - 27890, 616, 1295, -1000, 1281, 1281, 1281, 27890, -1000, -1000, - -1000, -1000, 3740, 27890, 1046, -1000, 117, 27890, 1070, 27890, - -1000, 1044, 1248, -1000, 936, -1000, -1000, 7606, -1000, 27890, - 1210, -1000, -1000, -1000, -1000, 388, 1456, 1445, 127, 117, - 480, 936, -1000, -1000, -1000, -1000, -1000, -342, 1042, 366, - 134, 163, 27890, 27890, 27890, 27890, 27890, 457, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 165, 332, -1000, 27890, 27890, - 398, -1000, -1000, -1000, 622, -1000, -1000, 622, -1000, -1000, - -1000, -1000, -1000, -1000, 1440, -46, -313, -1000, -310, -1000, - -1000, -1000, -1000, 1116, 2481, 2294, -1000, 14087, 14087, -1000, - -1000, 1040, 1040, 10861, 7606, 1549, 1450, -1000, -1000, 377, - 634, 377, 14087, 14087, -1000, 14087, 14087, -1000, -124, 1152, - 535, -1000, 12710, 740, -1000, -1000, 14087, 14087, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 389, 386, 384, - 27890, -1000, -1000, -1000, 811, 901, 1350, 556, 556, -1000, - -1000, 27890, -1000, -1000, -1000, -1000, 1559, 12710, -1000, 1138, - -1000, 5714, 1527, 1293, 27890, 1210, 1590, 15936, 27890, 1139, - -1000, 548, 1378, 1279, 1292, 1351, -1000, -1000, -1000, -1000, - 1316, -1000, 1168, -1000, -1000, -1000, -1000, -1000, 1066, 1564, - 19621, 1134, -1000, 1134, -1000, 436, -1000, -1000, -1000, -66, - -87, -1000, -1000, -1000, 2059, -1000, -1000, -1000, 679, 14087, - 1503, 1579, -1000, 898, 1477, -1000, 1473, 1423, -1000, -1000, - 480, 480, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1037, - -1000, 1035, 1133, 1030, 51, -1000, 1267, 1439, 540, 540, - -1000, 761, -1000, 936, -1000, -1000, 365, -1000, 1497, 27890, - 1291, 1287, 1285, -1000, 1540, 1131, -1000, 27890, -1000, -1000, - 27890, -1000, -1000, 1375, 137, 27890, -1000, -1000, -1000, 214, - 27890, -1000, 908, 117, -1000, -1000, -1000, -1000, -1000, -1000, - 27890, 139, -1000, 1247, 979, -1000, 1273, -1000, -1000, -1000, - -1000, 105, 187, -1000, 27890, 397, 1313, 27890, -1000, -1000, - -1000, 623, 623, -1000, 1437, -1000, 936, -1000, 14087, 2481, - 2481, -1000, -1000, 991, -1000, 1527, -1000, 991, 1226, 1226, - -1000, 1226, 1241, -1000, 1226, 76, 1226, 73, 991, 991, - 2310, 2279, 2175, 1886, 1210, -119, -1000, 556, 12710, 1743, - 1268, 1210, 1210, 1210, 1022, 892, 20, -1000, -1000, -1000, - 1554, 1538, 556, -1000, -1000, -1000, 1489, 1117, 1114, -1000, - -1000, 10402, 1025, 1368, 429, 1022, 1549, 27890, 12710, -1000, - -1000, 12710, 1225, -1000, 12710, -1000, -1000, -1000, 1549, 1549, - 1134, -1000, -1000, 490, -1000, -1000, -1000, -1000, -1000, 2481, - 14087, -69, -1000, -1000, -1000, -1000, -1000, -1000, 20, 889, - 20, 757, -1000, 732, -1000, -1000, -218, -1000, -1000, 1149, - 1299, -1000, -1000, 27890, -1000, -1000, 27890, 27890, 27890, 27890, - 27890, -1000, -1000, 190, -1000, 1019, 1011, -1000, -177, -1000, - -1000, 1222, -1000, -1000, -1000, 1016, -1000, -136, 936, 27890, - 27890, 27890, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 2481, -1000, 1450, -1000, -1000, 205, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 14087, 14087, 14087, 14087, 14087, 1527, - 887, 556, 14087, 14087, 19162, 27890, 27890, 17313, 20, 38, - -1000, 12710, 12710, 1462, -1000, 1210, -1000, 1144, 27890, 1210, - 27890, -1000, 1527, -1000, 556, 556, 27890, 556, 1527, -1000, - 2481, -1000, 480, -1000, 480, 1014, 1008, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1222, -1000, -1000, -1000, 1131, - -1000, 192, 264, -1000, 214, -1000, -183, -184, 1502, 27890, - -1000, -1000, 7606, -1000, -1000, 1221, 1275, -1000, -1000, -1000, - -1000, 1180, 1180, 1180, 1180, 407, 991, -1000, 1180, 1180, - 1001, -1000, 1001, 1001, 420, -277, -1000, 1396, 1382, 556, - 1122, 1578, -1000, 1210, 1590, 419, 1114, -1000, -1000, 998, - -1000, -1000, -1000, -1000, -1000, 1501, 1210, 27890, -1000, -1000, - -1000, 1219, 996, 1121, -1000, 539, 27890, 27890, -1000, -1000, - -1000, -1000, 991, 146, -146, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 38, 268, -1000, 1406, 1382, -1000, 1534, 1400, - 1532, -1000, 27890, 1114, 27890, -1000, 1219, 13169, 1205, 204, - -1000, 7606, 5241, 990, -1000, -1000, 1330, -133, -151, 1386, - 1388, 1388, 1406, -1000, 1531, 1530, -1000, 886, 1529, 877, - 1111, -1000, 204, 1180, 991, 27890, -1000, -56, -1000, -1000, - -1000, -1000, -1000, 1273, -1000, 1321, -1000, 1383, 751, -1000, - -1000, -1000, -1000, 873, 872, -1000, 755, -1000, -1000, -1000, - -1000, 983, 282, -1000, -1000, -136, -137, -1000, 700, -1000, - -1000, -1000, -1000, -1000, 1284, 150, -1000, -147, -1000, -1000, - 1283, -1000, 1571, -1000, -167, -1000, 1573, 467, 467, -1000, - -1000, -1000, -1000, 270, 766, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 899, -1000, 27653, 27653, -1000, -1000, + -1000, -1000, -1000, 79, -53, 191, -1000, -1000, -1000, -1000, + 1519, -1000, 841, 516, 681, 527, -1000, -1000, 665, -1000, + -1000, 1889, -1000, -1000, -1000, -1000, 728, 14309, 14309, 14309, + 599, 1889, 2709, 1085, 825, 469, 641, 641, 505, 505, + 505, 505, 505, 714, 714, -1000, -1000, -1000, -1000, 963, + -1000, -1000, -1000, 963, 11083, 11083, 1177, 1237, 432, -1000, + 1278, -1000, -1000, 1524, 1082, 1082, 974, 817, 609, 1572, + 1082, 568, 1566, 1082, 1082, 11083, -1000, -1000, 591, -1000, + 12932, 963, -1000, 861, 1171, 1169, 1082, 963, 963, 1082, + 1082, 27653, -1000, -279, -1000, -93, 420, 1237, -1000, 19843, + -1000, -1000, 963, 1089, -1000, 1455, -1000, -1000, 1412, -1000, + 1350, 12932, 12932, 12932, -1000, -1000, -1000, 1455, 1523, -1000, + 1380, 1378, 1564, 11083, 19384, 1460, -1000, -1000, -1000, 421, + 1564, 1229, 1237, -1000, 27653, 19384, 19384, 19384, 19384, 19384, + -1000, 1332, 1330, -1000, 1341, 1328, 1363, 27653, -1000, 1129, + 1066, 17548, 226, 1031, 19384, 27653, -1000, -1000, 19384, 27653, + 6409, -1000, 1152, -54, -63, -1000, -1000, -1000, -1000, 841, + -1000, 978, -1000, 2525, -1000, 297, -1000, -1000, -1000, -1000, + 552, -6, -1000, -1000, 15, 15, -1000, -1000, 462, 734, + 462, 462, 462, 889, 889, -1000, -1000, -1000, -1000, -1000, + 746, -1000, -1000, -1000, 712, -1000, -1000, 754, 1281, 109, + -1000, -1000, 543, 885, 1424, 27653, -1000, -1000, 997, 148, + 27653, 592, 1312, -1000, 1291, 1291, 1291, 27653, -1000, -1000, + -1000, -1000, 3013, 27653, 1117, -1000, 111, 27653, 993, 27653, + -1000, 1111, 1247, -1000, 896, -1000, -1000, 7828, -1000, 27653, + 1237, -1000, -1000, -1000, -1000, 371, 1442, 1441, 116, 111, + 462, 896, -1000, -1000, -1000, -1000, -1000, -341, 1105, 332, + 123, 144, 27653, 27653, 27653, 27653, 27653, 390, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 193, 319, -1000, 27653, 27653, + 386, -1000, -1000, -1000, 612, -1000, -1000, 612, -1000, -1000, + -1000, -1000, -1000, -1000, 1437, -55, -313, -1000, -310, -1000, + -1000, -1000, -1000, 599, 1889, 2192, -1000, 14309, 14309, -1000, + -1000, 1082, 1082, 11083, 7828, 1525, 1455, -1000, -1000, 359, + 684, 359, 14309, 14309, -1000, 14309, 14309, -1000, -126, 1230, + 581, -1000, 12932, 934, -1000, -1000, 14309, 14309, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 364, 349, 347, + 27653, -1000, -1000, -1000, 794, 883, 1348, 841, 841, -1000, + -1000, 27653, -1000, -1000, -1000, -1000, 1562, 12932, -1000, 1147, + -1000, 5936, 1524, 1309, 27653, 1237, 1591, 15699, 27653, 1159, + -1000, 545, 1376, 1287, 1305, 1310, -1000, -1000, -1000, -1000, + 1329, -1000, 1251, -1000, -1000, -1000, -1000, -1000, 1066, 1564, + 19384, 1080, -1000, 1080, -1000, 418, -1000, -1000, -1000, -76, + -98, -1000, -1000, -1000, 3158, -1000, -1000, -1000, 669, 14309, + 1506, 1584, -1000, 882, 1465, -1000, 1464, 1419, -1000, -1000, + 462, 462, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1075, + -1000, 1073, 1131, 1069, 65, -1000, 1257, 1435, 543, 543, + -1000, 711, -1000, 896, -1000, -1000, 331, -1000, 1490, 27653, + 1298, 1297, 1296, -1000, 1548, 1107, -1000, 27653, -1000, -1000, + 27653, -1000, -1000, 1377, 109, 27653, -1000, -1000, -1000, 223, + 27653, -1000, 1088, 111, -1000, -1000, -1000, -1000, -1000, -1000, + 27653, 171, -1000, 1246, 851, -1000, 1273, -1000, -1000, -1000, + -1000, 106, 194, -1000, 27653, 385, 1281, 27653, -1000, -1000, + -1000, 624, 624, -1000, 1434, -1000, 896, -1000, 14309, 1889, + 1889, -1000, -1000, 963, -1000, 1524, -1000, 963, 1243, 1243, + -1000, 1243, 1245, -1000, 1243, 53, 1243, 37, 963, 963, + 2440, 2411, 2341, 2132, 1237, -120, -1000, 841, 12932, 1786, + 1622, 1237, 1237, 1237, 1056, 863, 15, -1000, -1000, -1000, + 1560, 1546, 841, -1000, -1000, -1000, 1481, 1021, 1033, -1000, + -1000, 10624, 1063, 1334, 413, 1056, 1525, 27653, 12932, -1000, + -1000, 12932, 1242, -1000, 12932, -1000, -1000, -1000, 1525, 1525, + 1080, -1000, -1000, 479, -1000, -1000, -1000, -1000, -1000, 1889, + 1241, -28, -1000, -1000, -1000, -1000, -1000, -1000, 15, 859, + 15, 707, -1000, 697, -1000, -1000, -217, -1000, -1000, 1253, + 1325, -1000, -1000, 27653, -1000, -1000, 27653, 27653, 27653, 27653, + 27653, -1000, -1000, 220, -1000, 1054, 1045, -1000, -147, -1000, + -1000, 1240, -1000, -1000, -1000, 982, -1000, -136, 896, 27653, + 27653, 27653, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1889, -1000, 1455, -1000, -1000, 207, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 14309, 14309, 14309, 14309, 14309, 1524, + 855, 841, 14309, 14309, 18925, 27653, 27653, 17076, 15, 42, + -1000, 12932, 12932, 1456, -1000, 1237, -1000, 1232, 27653, 1237, + 27653, -1000, 1524, -1000, 841, 841, 27653, 841, 1524, -1000, + 14309, -1000, 462, -1000, 462, 971, 967, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1240, -1000, -1000, -1000, 1107, + -1000, 212, 269, -1000, 223, -1000, -181, -182, 1502, 27653, + -1000, -1000, 7828, -1000, -1000, 1239, 1289, -1000, -1000, -1000, + -1000, 861, 861, 861, 861, 238, 963, -1000, 861, 861, + 1005, -1000, 1005, 1005, 420, -269, -1000, 1410, 1391, 841, + 1089, 1581, -1000, 1237, 1591, 401, 1033, -1000, -1000, 975, + -1000, 1284, -1000, -1000, -1000, -1000, 1497, 1237, 27653, -1000, + -1000, -1000, 1192, 970, 1040, -1000, 533, 27653, 27653, -1000, + -1000, -1000, -1000, 963, 146, -143, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 42, 270, -1000, 1403, 1391, -1000, 1534, + 1406, 1532, -1000, 27653, 1033, 27653, -1000, -1000, 1192, 13391, + 1017, 218, -1000, 7828, 5463, 962, -1000, -1000, 1347, -133, + -148, 1398, 1400, 1400, 1403, -1000, 1531, 1530, -1000, 852, + 1528, 847, 1014, -1000, 218, 861, 963, 27653, -1000, -56, + -1000, -1000, -1000, -1000, -1000, 1273, -1000, 1331, -1000, 1386, + 767, -1000, -1000, -1000, -1000, 842, 840, -1000, 795, -1000, + -1000, -1000, -1000, 957, 278, -1000, -1000, -136, -138, -1000, + 763, -1000, -1000, -1000, -1000, -1000, 1295, 124, -1000, -172, + -1000, -1000, 1293, -1000, 1571, -1000, -167, -1000, 1573, 489, + 489, -1000, -1000, -1000, -1000, 275, 769, -1000, -1000, -1000, + -1000, } var yyPgo = [...]int{ - 0, 1819, 1817, 11, 86, 89, 1816, 1815, 1814, 1813, - 131, 129, 128, 1812, 1808, 1806, 1805, 1801, 1800, 1799, - 1798, 1797, 1796, 1795, 1794, 61, 138, 37, 40, 139, - 1792, 1789, 29, 1788, 1786, 1785, 127, 126, 563, 1784, - 123, 1783, 1782, 1781, 1779, 1778, 1771, 1770, 1769, 1768, - 1767, 1766, 1765, 1764, 1763, 203, 1762, 1760, 4, 1759, - 31, 1758, 1757, 1756, 1754, 1753, 90, 1752, 1749, 1747, - 116, 1740, 1739, 51, 102, 50, 80, 1737, 1736, 74, - 121, 1735, 64, 104, 1734, 1733, 323, 1732, 42, 91, - 98, 1731, 44, 1727, 1726, 53, 1725, 1724, 1721, 75, - 1720, 1719, 3101, 1717, 72, 82, 14, 57, 1715, 1711, - 1710, 1708, 33, 2669, 1706, 1703, 24, 1702, 1700, 133, - 1699, 87, 22, 1698, 20, 16, 23, 1697, 84, 1696, - 30, 56, 36, 1695, 85, 1693, 1692, 1691, 1690, 43, - 1689, 78, 105, 38, 1688, 1687, 9, 15, 1686, 1685, - 1684, 1683, 1681, 1680, 10, 1679, 5, 1678, 27, 1677, - 17, 19, 73, 120, 28, 13, 1676, 119, 1675, 26, - 115, 67, 113, 1674, 1672, 1670, 859, 143, 1669, 1668, - 58, 1667, 93, 101, 1666, 162, 1664, 1663, 63, 1301, - 1653, 8, 118, 1662, 1661, 2495, 59, 76, 25, 1660, - 69, 1659, 1658, 1657, 140, 125, 45, 879, 46, 1656, - 1654, 1652, 1649, 1648, 1646, 1645, 47, 34, 21, 112, - 32, 1644, 1643, 1642, 71, 41, 1641, 111, 106, 81, - 110, 1640, 117, 103, 65, 1639, 39, 1638, 1637, 1635, - 1628, 79, 1627, 1626, 1625, 1623, 108, 94, 68, 48, - 1621, 35, 66, 109, 107, 1620, 18, 122, 7, 1619, - 3, 0, 1612, 6, 130, 164, 99, 1611, 1610, 1, - 1609, 2, 1607, 1605, 83, 1604, 1603, 1601, 1600, 3049, - 932, 114, 1599, 124, + 0, 1868, 1865, 12, 88, 89, 1864, 1861, 1860, 1857, + 129, 128, 127, 1856, 1854, 1853, 1852, 1851, 1850, 1847, + 1846, 1845, 1844, 1842, 1836, 58, 123, 42, 40, 140, + 1835, 1834, 31, 1833, 1832, 1830, 121, 119, 579, 1829, + 120, 1828, 1827, 1825, 1824, 1823, 1822, 1821, 1819, 1817, + 1815, 1813, 1812, 1811, 1809, 202, 1807, 1806, 4, 1805, + 33, 1801, 1800, 1799, 1798, 1797, 91, 1795, 1791, 1790, + 113, 1784, 1783, 53, 112, 50, 74, 1781, 1780, 80, + 122, 1779, 64, 105, 1778, 1774, 246, 1773, 45, 79, + 82, 1772, 46, 1771, 1770, 48, 1769, 1768, 1766, 77, + 1752, 1750, 1527, 1748, 72, 83, 15, 35, 1747, 1745, + 1743, 1740, 36, 44, 1739, 1738, 30, 1737, 1736, 133, + 1735, 85, 24, 1730, 14, 16, 22, 1727, 93, 1726, + 61, 51, 32, 1725, 94, 1724, 1723, 1716, 1715, 25, + 1713, 78, 106, 69, 1710, 1709, 11, 10, 1704, 1697, + 1696, 1694, 1693, 1692, 9, 1690, 5, 1689, 28, 1688, + 17, 20, 76, 87, 29, 8, 1687, 160, 1686, 26, + 118, 67, 116, 1685, 1683, 1682, 857, 147, 1681, 1680, + 34, 1679, 98, 104, 1678, 167, 1676, 1675, 66, 1304, + 1849, 19, 110, 1674, 1673, 2691, 56, 81, 23, 1672, + 73, 1670, 1669, 1668, 139, 115, 63, 833, 47, 1666, + 1664, 1663, 1662, 1661, 1659, 1658, 132, 86, 21, 107, + 27, 1657, 1656, 1655, 65, 41, 1653, 109, 108, 57, + 125, 1652, 134, 103, 75, 1651, 39, 1648, 1643, 1642, + 1641, 43, 1640, 1638, 1637, 1636, 117, 100, 71, 38, + 1628, 37, 68, 99, 114, 1627, 18, 124, 6, 1626, + 3, 0, 1625, 7, 130, 164, 101, 1619, 1618, 1, + 1610, 2, 1609, 1608, 84, 1606, 1603, 1601, 1599, 3319, + 1820, 102, 1598, 126, } -//line sql.y:5227 +//line sql.y:5238 type yySymType struct { union interface{} empty struct{} @@ -4802,7 +4780,7 @@ var yyR2 = [...]int{ 1, 4, 0, 1, 1, 1, 2, 2, 0, 1, 4, 4, 4, 4, 2, 4, 1, 3, 1, 1, 3, 4, 3, 3, 3, 3, 0, 2, 0, 2, - 3, 3, 4, 4, 2, 3, 3, 2, 3, 2, + 3, 3, 6, 4, 2, 3, 3, 2, 3, 2, 3, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 4, 4, 2, 2, 3, @@ -5135,27 +5113,28 @@ var yyChk = [...]int{ 344, -86, 84, 84, -279, -279, -279, -280, 90, -217, -138, 15, 17, 28, -164, 84, -280, -280, 84, 56, 152, -280, -139, -169, -86, -86, 83, -86, -139, -107, - -113, -116, -217, 90, -217, 91, 91, 388, 30, 80, + 83, -116, -217, 90, -217, 91, 91, 388, 30, 80, 81, 82, 30, 77, 78, -102, -102, -102, -102, -160, -190, 203, 85, -280, 84, -223, 351, 354, -161, 83, 85, -260, 351, -262, -261, -190, -190, -190, -158, -217, -261, -113, -113, -113, -113, -113, -143, 90, -113, -113, -160, -280, -160, -160, -198, -217, -147, -152, -177, -86, -122, 29, -126, 56, -3, -190, -124, -190, -143, -160, - -143, -218, -218, 85, 85, -161, 204, 185, -256, 355, - 355, 23, -160, -259, -258, -191, 83, 76, -280, -280, - -280, -280, -68, 130, 351, -280, -280, -280, -280, -280, - -280, -106, -150, 438, -155, 45, -153, -154, 46, -151, - 47, 55, 10, -124, 152, 85, 23, -279, -102, -3, - 85, 84, 120, -160, -102, -280, 349, 72, 352, -147, - 50, 264, -157, -156, 54, 46, -154, 17, 48, 17, - -165, -190, -3, -113, 200, 83, -58, 351, -258, -240, - -191, 90, 91, 85, 61, 350, 353, -148, 52, -146, - 51, -146, -156, 17, 17, 90, 17, 90, -58, -280, - -280, -160, -59, 215, 442, -263, 61, -149, 53, 75, - 103, 90, 90, 90, 85, 178, -260, 351, 75, 103, - -270, -271, 75, 217, 352, -271, 75, 11, 10, 353, - -269, 186, 181, 184, 31, -269, 180, 30, 100, + -143, -113, -218, -218, 85, 85, -161, 204, 185, -256, + 355, 355, 23, -160, -259, -258, -191, 83, 76, -280, + -280, -280, -280, -68, 130, 351, -280, -280, -280, -280, + -280, -280, -106, -150, 438, -155, 45, -153, -154, 46, + -151, 47, 55, 10, -124, 152, 85, 85, 23, -279, + -102, -3, 85, 84, 120, -160, -102, -280, 349, 72, + 352, -147, 50, 264, -157, -156, 54, 46, -154, 17, + 48, 17, -165, -190, -3, -113, 200, 83, -58, 351, + -258, -240, -191, 90, 91, 85, 61, 350, 353, -148, + 52, -146, 51, -146, -156, 17, 17, 90, 17, 90, + -58, -280, -280, -160, -59, 215, 442, -263, 61, -149, + 53, 75, 103, 90, 90, 90, 85, 178, -260, 351, + 75, 103, -270, -271, 75, 217, 352, -271, 75, 11, + 10, 353, -269, 186, 181, 184, 31, -269, 180, 30, + 100, } var yyDef = [...]int{ @@ -5365,27 +5344,28 @@ var yyDef = [...]int{ 0, 805, 0, 0, 0, 0, 0, 630, 211, 894, 50, 0, 0, 0, 54, 0, 917, 0, 0, 0, 0, 71, 834, 921, 922, 622, 0, 627, 834, 59, - 142, 143, 215, 199, 215, 0, 0, 271, 843, 844, + 0, 143, 215, 199, 215, 0, 0, 271, 843, 844, 845, 846, 847, 848, 849, 612, 104, 105, 106, 334, 615, 0, 0, 392, 0, 400, 0, 0, 0, 0, 866, 378, 0, 94, 95, 0, 0, 383, 47, 787, 788, 0, 0, 0, 0, 778, 0, 802, 0, 0, 0, 652, 0, 0, 650, 876, 875, 888, 901, 825, 823, 0, 915, 0, 907, 910, 906, 909, 57, 0, - 58, 188, 189, 203, 206, 0, 0, 0, 416, 413, - 414, 0, 0, 97, 98, 0, 0, 0, 743, 745, - 744, 746, 0, 0, 0, 748, 766, 767, 651, 653, - 654, 611, 894, 0, 887, 0, -2, 896, 0, 0, - 0, 902, 0, 905, 0, 623, 0, 0, 0, 858, - 613, 0, 0, 0, 385, 747, 0, 0, 0, 881, - 879, 879, 889, 890, 0, 0, 897, 0, 0, 0, - 913, 911, 858, 0, 0, 0, 375, 860, 99, 100, - 320, 321, 322, 93, 779, 0, 782, 884, 0, 877, - 880, 878, 891, 0, 0, 898, 0, 900, 89, 417, - 418, 0, 0, 861, 862, 96, 780, 873, 0, 882, - 883, 892, 893, 899, 254, 0, 382, 0, 885, 886, - 255, 256, 0, 859, 0, 257, 0, 0, 0, 781, - 259, 261, 262, 0, 0, 260, 263, 264, 265, + 58, 0, 188, 189, 203, 206, 0, 0, 0, 416, + 413, 414, 0, 0, 97, 98, 0, 0, 0, 743, + 745, 744, 746, 0, 0, 0, 748, 766, 767, 651, + 653, 654, 611, 894, 0, 887, 0, -2, 896, 0, + 0, 0, 902, 0, 905, 0, 623, 142, 0, 0, + 0, 858, 613, 0, 0, 0, 385, 747, 0, 0, + 0, 881, 879, 879, 889, 890, 0, 0, 897, 0, + 0, 0, 913, 911, 858, 0, 0, 0, 375, 860, + 99, 100, 320, 321, 322, 93, 779, 0, 782, 884, + 0, 877, 880, 878, 891, 0, 0, 898, 0, 900, + 89, 417, 418, 0, 0, 861, 862, 96, 780, 873, + 0, 882, 883, 892, 893, 899, 254, 0, 382, 0, + 885, 886, 255, 256, 0, 859, 0, 257, 0, 0, + 0, 781, 259, 261, 262, 0, 0, 260, 263, 264, + 265, } var yyTok1 = [...]int{ @@ -6694,11 +6674,11 @@ yydefault: } yyVAL.union = yyLOCAL case 142: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *ColumnTypeOptions //line sql.y:1059 { - yyDollar[1].columnTypeOptionsUnion().As = yyDollar[4].exprUnion() + yyDollar[1].columnTypeOptionsUnion().As = yyDollar[5].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL @@ -6767,7 +6747,7 @@ yydefault: yyVAL.union = yyLOCAL case 150: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1101 +//line sql.y:1112 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].booleanUnion() @@ -6775,74 +6755,74 @@ yydefault: } case 154: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1112 +//line sql.y:1123 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].literalUnion() } case 155: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1117 +//line sql.y:1128 { yyVAL.columnType = yyDollar[1].columnType } case 156: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1123 +//line sql.y:1134 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 157: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1127 +//line sql.y:1138 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 158: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1131 +//line sql.y:1142 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 159: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1135 +//line sql.y:1146 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 160: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1139 +//line sql.y:1150 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 161: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1143 +//line sql.y:1154 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 162: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1147 +//line sql.y:1158 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 163: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1151 +//line sql.y:1162 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 164: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1155 +//line sql.y:1166 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 165: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1161 +//line sql.y:1172 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6850,7 +6830,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1167 +//line sql.y:1178 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6858,7 +6838,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1173 +//line sql.y:1184 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6866,7 +6846,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1179 +//line sql.y:1190 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6874,7 +6854,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1185 +//line sql.y:1196 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6882,189 +6862,189 @@ yydefault: } case 170: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1193 +//line sql.y:1204 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 171: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1197 +//line sql.y:1208 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 172: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1201 +//line sql.y:1212 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1205 +//line sql.y:1216 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 174: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1209 +//line sql.y:1220 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 175: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1215 +//line sql.y:1226 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 176: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1219 +//line sql.y:1230 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 177: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1223 +//line sql.y:1234 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 178: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1227 +//line sql.y:1238 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 179: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1231 +//line sql.y:1242 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 180: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1235 +//line sql.y:1246 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 181: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1239 +//line sql.y:1250 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 182: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1243 +//line sql.y:1254 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 183: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1247 +//line sql.y:1258 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 184: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1251 +//line sql.y:1262 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 185: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1255 +//line sql.y:1266 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 186: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1259 +//line sql.y:1270 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 187: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1263 +//line sql.y:1274 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 188: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1267 +//line sql.y:1278 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 189: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1272 +//line sql.y:1283 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 190: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1278 +//line sql.y:1289 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 191: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1282 +//line sql.y:1293 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 192: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1286 +//line sql.y:1297 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 193: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1290 +//line sql.y:1301 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 194: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1294 +//line sql.y:1305 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 195: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1298 +//line sql.y:1309 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 196: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1302 +//line sql.y:1313 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 197: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1306 +//line sql.y:1317 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 198: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1312 +//line sql.y:1323 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, encodeSQLString(yyDollar[1].str)) } case 199: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1317 +//line sql.y:1328 { yyVAL.strs = append(yyDollar[1].strs, encodeSQLString(yyDollar[3].str)) } case 200: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Literal -//line sql.y:1322 +//line sql.y:1333 { yyLOCAL = nil } @@ -7072,20 +7052,20 @@ yydefault: case 201: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Literal -//line sql.y:1326 +//line sql.y:1337 { yyLOCAL = NewIntLiteral(yyDollar[2].str) } yyVAL.union = yyLOCAL case 202: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1331 +//line sql.y:1342 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 203: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1335 +//line sql.y:1346 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), @@ -7094,13 +7074,13 @@ yydefault: } case 204: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1343 +//line sql.y:1354 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 205: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1347 +//line sql.y:1358 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), @@ -7108,7 +7088,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1353 +//line sql.y:1364 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), @@ -7118,7 +7098,7 @@ yydefault: case 207: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1361 +//line sql.y:1372 { yyLOCAL = false } @@ -7126,7 +7106,7 @@ yydefault: case 208: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1365 +//line sql.y:1376 { yyLOCAL = true } @@ -7134,7 +7114,7 @@ yydefault: case 209: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1370 +//line sql.y:1381 { yyLOCAL = false } @@ -7142,57 +7122,57 @@ yydefault: case 210: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1374 +//line sql.y:1385 { yyLOCAL = true } yyVAL.union = yyLOCAL case 211: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1379 +//line sql.y:1390 { yyVAL.str = "" } case 212: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1383 +//line sql.y:1394 { yyVAL.str = string(yyDollar[2].colIdent.String()) } case 213: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1387 +//line sql.y:1398 { yyVAL.str = encodeSQLString(yyDollar[2].str) } case 214: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1391 +//line sql.y:1402 { yyVAL.str = string(yyDollar[2].str) } case 215: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1396 +//line sql.y:1407 { yyVAL.str = "" } case 216: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1400 +//line sql.y:1411 { yyVAL.str = string(yyDollar[2].colIdent.String()) } case 217: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1404 +//line sql.y:1415 { yyVAL.str = encodeSQLString(yyDollar[2].str) } case 218: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexDefinition -//line sql.y:1411 +//line sql.y:1422 { yyLOCAL = &IndexDefinition{Info: yyDollar[1].indexInfoUnion(), Columns: yyDollar[3].indexColumnsUnion(), Options: yyDollar[5].indexOptionsUnion()} } @@ -7200,7 +7180,7 @@ yydefault: case 219: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1416 +//line sql.y:1427 { yyLOCAL = nil } @@ -7208,7 +7188,7 @@ yydefault: case 220: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1420 +//line sql.y:1431 { yyLOCAL = yyDollar[1].indexOptionsUnion() } @@ -7216,14 +7196,14 @@ yydefault: case 221: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1426 +//line sql.y:1437 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL case 222: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1430 +//line sql.y:1441 { yySLICE := (*[]*IndexOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].indexOptionUnion()) @@ -7231,7 +7211,7 @@ yydefault: case 223: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1436 +//line sql.y:1447 { yyLOCAL = yyDollar[1].indexOptionUnion() } @@ -7239,7 +7219,7 @@ yydefault: case 224: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1440 +//line sql.y:1451 { // should not be string yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} @@ -7248,7 +7228,7 @@ yydefault: case 225: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1445 +//line sql.y:1456 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[2].str)} } @@ -7256,27 +7236,27 @@ yydefault: case 226: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1449 +//line sql.y:1460 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str) + " " + string(yyDollar[2].str), String: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL case 227: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1455 +//line sql.y:1466 { yyVAL.str = "" } case 228: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1459 +//line sql.y:1470 { yyVAL.str = string(yyDollar[1].str) } case 229: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1465 +//line sql.y:1476 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} } @@ -7284,7 +7264,7 @@ yydefault: case 230: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1469 +//line sql.y:1480 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Spatial: true, Unique: false} } @@ -7292,7 +7272,7 @@ yydefault: case 231: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1473 +//line sql.y:1484 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Fulltext: true, Unique: false} } @@ -7300,7 +7280,7 @@ yydefault: case 232: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1477 +//line sql.y:1488 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent(yyDollar[4].str), Unique: true} } @@ -7308,100 +7288,100 @@ yydefault: case 233: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1481 +//line sql.y:1492 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(yyDollar[2].str), Unique: false} } yyVAL.union = yyLOCAL case 234: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1486 +//line sql.y:1497 { yyVAL.str = "" } case 235: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1490 +//line sql.y:1501 { yyVAL.str = yyDollar[2].str } case 236: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1496 +//line sql.y:1507 { yyVAL.str = string(yyDollar[1].str) } case 237: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1500 +//line sql.y:1511 { yyVAL.str = string(yyDollar[1].str) } case 238: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1504 +//line sql.y:1515 { yyVAL.str = string(yyDollar[1].str) } case 239: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1511 +//line sql.y:1522 { yyVAL.str = string(yyDollar[1].str) } case 240: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1515 +//line sql.y:1526 { yyVAL.str = string(yyDollar[1].str) } case 241: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1520 +//line sql.y:1531 { yyVAL.str = "key" } case 242: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1524 +//line sql.y:1535 { yyVAL.str = yyDollar[1].str } case 243: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1530 +//line sql.y:1541 { yyVAL.str = string(yyDollar[1].str) } case 244: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1534 +//line sql.y:1545 { yyVAL.str = string(yyDollar[1].str) } case 245: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1539 +//line sql.y:1550 { yyVAL.str = "" } case 246: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1543 +//line sql.y:1554 { yyVAL.str = string(yyDollar[1].colIdent.String()) } case 247: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexColumn -//line sql.y:1549 +//line sql.y:1560 { yyLOCAL = []*IndexColumn{yyDollar[1].indexColumnUnion()} } yyVAL.union = yyLOCAL case 248: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1553 +//line sql.y:1564 { yySLICE := (*[]*IndexColumn)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].indexColumnUnion()) @@ -7409,7 +7389,7 @@ yydefault: case 249: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexColumn -//line sql.y:1559 +//line sql.y:1570 { yyLOCAL = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].literalUnion(), Direction: yyDollar[3].orderDirectionUnion()} } @@ -7417,7 +7397,7 @@ yydefault: case 250: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1565 +//line sql.y:1576 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } @@ -7425,7 +7405,7 @@ yydefault: case 251: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1569 +//line sql.y:1580 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } @@ -7433,7 +7413,7 @@ yydefault: case 252: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1575 +//line sql.y:1586 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } @@ -7441,7 +7421,7 @@ yydefault: case 253: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1579 +//line sql.y:1590 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } @@ -7449,7 +7429,7 @@ yydefault: case 254: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1585 +//line sql.y:1596 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion()} } @@ -7457,7 +7437,7 @@ yydefault: case 255: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1589 +//line sql.y:1600 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnDelete: yyDollar[12].ReferenceActionUnion()} } @@ -7465,7 +7445,7 @@ yydefault: case 256: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1593 +//line sql.y:1604 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnUpdate: yyDollar[12].ReferenceActionUnion()} } @@ -7473,7 +7453,7 @@ yydefault: case 257: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1597 +//line sql.y:1608 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnDelete: yyDollar[12].ReferenceActionUnion(), OnUpdate: yyDollar[13].ReferenceActionUnion()} } @@ -7481,7 +7461,7 @@ yydefault: case 258: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1603 +//line sql.y:1614 { yyLOCAL = &CheckConstraintDefinition{Expr: yyDollar[3].exprUnion(), Enforced: yyDollar[5].booleanUnion()} } @@ -7489,7 +7469,7 @@ yydefault: case 259: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1609 +//line sql.y:1620 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } @@ -7497,7 +7477,7 @@ yydefault: case 260: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1615 +//line sql.y:1626 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } @@ -7505,7 +7485,7 @@ yydefault: case 261: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1621 +//line sql.y:1632 { yyLOCAL = Restrict } @@ -7513,7 +7493,7 @@ yydefault: case 262: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1625 +//line sql.y:1636 { yyLOCAL = Cascade } @@ -7521,7 +7501,7 @@ yydefault: case 263: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1629 +//line sql.y:1640 { yyLOCAL = NoAction } @@ -7529,7 +7509,7 @@ yydefault: case 264: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1633 +//line sql.y:1644 { yyLOCAL = SetDefault } @@ -7537,33 +7517,33 @@ yydefault: case 265: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1637 +//line sql.y:1648 { yyLOCAL = SetNull } yyVAL.union = yyLOCAL case 266: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1642 +//line sql.y:1653 { yyVAL.str = "" } case 267: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1646 +//line sql.y:1657 { yyVAL.str = string(yyDollar[1].str) } case 268: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1650 +//line sql.y:1661 { yyVAL.str = string(yyDollar[1].str) } case 269: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1655 +//line sql.y:1666 { yyLOCAL = true } @@ -7571,7 +7551,7 @@ yydefault: case 270: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1659 +//line sql.y:1670 { yyLOCAL = true } @@ -7579,7 +7559,7 @@ yydefault: case 271: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:1663 +//line sql.y:1674 { yyLOCAL = false } @@ -7587,7 +7567,7 @@ yydefault: case 272: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1668 +//line sql.y:1679 { yyLOCAL = nil } @@ -7595,7 +7575,7 @@ yydefault: case 273: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1672 +//line sql.y:1683 { yyLOCAL = yyDollar[1].tableOptionsUnion() } @@ -7603,21 +7583,21 @@ yydefault: case 274: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1678 +//line sql.y:1689 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL case 275: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1682 +//line sql.y:1693 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableOptionUnion()) } case 276: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1686 +//line sql.y:1697 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) @@ -7625,14 +7605,14 @@ yydefault: case 277: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1692 +//line sql.y:1703 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL case 278: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1696 +//line sql.y:1707 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) @@ -7640,7 +7620,7 @@ yydefault: case 279: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1702 +//line sql.y:1713 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7648,7 +7628,7 @@ yydefault: case 280: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1706 +//line sql.y:1717 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7656,7 +7636,7 @@ yydefault: case 281: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1710 +//line sql.y:1721 { yyLOCAL = &TableOption{Name: (string(yyDollar[2].str)), String: yyDollar[4].str} } @@ -7664,7 +7644,7 @@ yydefault: case 282: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1714 +//line sql.y:1725 { yyLOCAL = &TableOption{Name: string(yyDollar[2].str), String: yyDollar[4].str} } @@ -7672,7 +7652,7 @@ yydefault: case 283: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1718 +//line sql.y:1729 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7680,7 +7660,7 @@ yydefault: case 284: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1722 +//line sql.y:1733 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -7688,7 +7668,7 @@ yydefault: case 285: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1726 +//line sql.y:1737 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -7696,7 +7676,7 @@ yydefault: case 286: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1730 +//line sql.y:1741 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -7704,7 +7684,7 @@ yydefault: case 287: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1734 +//line sql.y:1745 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } @@ -7712,7 +7692,7 @@ yydefault: case 288: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1738 +//line sql.y:1749 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } @@ -7720,7 +7700,7 @@ yydefault: case 289: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1742 +//line sql.y:1753 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7728,7 +7708,7 @@ yydefault: case 290: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1746 +//line sql.y:1757 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -7736,7 +7716,7 @@ yydefault: case 291: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1750 +//line sql.y:1761 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: yyDollar[3].colIdent.String()} } @@ -7744,7 +7724,7 @@ yydefault: case 292: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1754 +//line sql.y:1765 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -7752,7 +7732,7 @@ yydefault: case 293: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1758 +//line sql.y:1769 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -7760,7 +7740,7 @@ yydefault: case 294: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1762 +//line sql.y:1773 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7768,7 +7748,7 @@ yydefault: case 295: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1766 +//line sql.y:1777 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7776,7 +7756,7 @@ yydefault: case 296: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1770 +//line sql.y:1781 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7784,7 +7764,7 @@ yydefault: case 297: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1774 +//line sql.y:1785 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7792,7 +7772,7 @@ yydefault: case 298: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1778 +//line sql.y:1789 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -7800,7 +7780,7 @@ yydefault: case 299: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1782 +//line sql.y:1793 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -7808,7 +7788,7 @@ yydefault: case 300: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1786 +//line sql.y:1797 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -7816,7 +7796,7 @@ yydefault: case 301: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1790 +//line sql.y:1801 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7824,7 +7804,7 @@ yydefault: case 302: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1794 +//line sql.y:1805 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -7832,7 +7812,7 @@ yydefault: case 303: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1798 +//line sql.y:1809 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7840,7 +7820,7 @@ yydefault: case 304: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1802 +//line sql.y:1813 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -7848,7 +7828,7 @@ yydefault: case 305: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1806 +//line sql.y:1817 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7856,7 +7836,7 @@ yydefault: case 306: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1810 +//line sql.y:1821 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: (yyDollar[3].colIdent.String() + yyDollar[4].str)} } @@ -7864,57 +7844,57 @@ yydefault: case 307: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1814 +//line sql.y:1825 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Tables: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL case 308: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1819 +//line sql.y:1830 { yyVAL.str = "" } case 309: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1823 +//line sql.y:1834 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 310: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1827 +//line sql.y:1838 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 320: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1846 +//line sql.y:1857 { yyVAL.str = yyDollar[1].colIdent.String() } case 321: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1850 +//line sql.y:1861 { yyVAL.str = encodeSQLString(yyDollar[1].str) } case 322: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1854 +//line sql.y:1865 { yyVAL.str = string(yyDollar[1].str) } case 323: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1859 +//line sql.y:1870 { yyVAL.str = "" } case 325: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:1865 +//line sql.y:1876 { yyLOCAL = nil } @@ -7922,7 +7902,7 @@ yydefault: case 326: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:1869 +//line sql.y:1880 { yyLOCAL = yyDollar[2].colNameUnion() } @@ -7930,7 +7910,7 @@ yydefault: case 327: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:1874 +//line sql.y:1885 { yyLOCAL = nil } @@ -7938,7 +7918,7 @@ yydefault: case 328: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:1878 +//line sql.y:1889 { yyLOCAL = yyDollar[2].colNameUnion() } @@ -7946,7 +7926,7 @@ yydefault: case 329: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1883 +//line sql.y:1894 { yyLOCAL = nil } @@ -7954,14 +7934,14 @@ yydefault: case 330: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1887 +//line sql.y:1898 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL case 331: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1891 +//line sql.y:1902 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &OrderByOption{Cols: yyDollar[5].columnsUnion()}) @@ -7969,14 +7949,14 @@ yydefault: case 332: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1895 +//line sql.y:1906 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL case 333: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1899 +//line sql.y:1910 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionsUnion()...) @@ -7984,7 +7964,7 @@ yydefault: case 334: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1903 +//line sql.y:1914 { yyLOCAL = append(append(yyDollar[1].alterOptionsUnion(), yyDollar[3].alterOptionsUnion()...), &OrderByOption{Cols: yyDollar[7].columnsUnion()}) } @@ -7992,21 +7972,21 @@ yydefault: case 335: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1909 +//line sql.y:1920 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL case 336: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1913 +//line sql.y:1924 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } case 337: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1917 +//line sql.y:1928 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) @@ -8014,7 +7994,7 @@ yydefault: case 338: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1923 +//line sql.y:1934 { yyLOCAL = yyDollar[1].tableOptionsUnion() } @@ -8022,7 +8002,7 @@ yydefault: case 339: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1927 +//line sql.y:1938 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } @@ -8030,7 +8010,7 @@ yydefault: case 340: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1931 +//line sql.y:1942 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } @@ -8038,7 +8018,7 @@ yydefault: case 341: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1935 +//line sql.y:1946 { yyLOCAL = &AddIndexDefinition{IndexDefinition: yyDollar[2].indexDefinitionUnion()} } @@ -8046,7 +8026,7 @@ yydefault: case 342: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1939 +//line sql.y:1950 { yyLOCAL = &AddColumns{Columns: yyDollar[4].columnDefinitionsUnion()} } @@ -8054,7 +8034,7 @@ yydefault: case 343: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1943 +//line sql.y:1954 { yyLOCAL = &AddColumns{Columns: []*ColumnDefinition{yyDollar[3].columnDefinitionUnion()}, First: yyDollar[4].colNameUnion(), After: yyDollar[5].colNameUnion()} } @@ -8062,7 +8042,7 @@ yydefault: case 344: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1947 +//line sql.y:1958 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: true} } @@ -8070,7 +8050,7 @@ yydefault: case 345: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1951 +//line sql.y:1962 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[6].exprUnion()} } @@ -8078,7 +8058,7 @@ yydefault: case 346: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1955 +//line sql.y:1966 { yyLOCAL = &ChangeColumn{OldColumn: yyDollar[3].colNameUnion(), NewColDefinition: yyDollar[4].columnDefinitionUnion(), First: yyDollar[5].colNameUnion(), After: yyDollar[6].colNameUnion()} } @@ -8086,7 +8066,7 @@ yydefault: case 347: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1959 +//line sql.y:1970 { yyLOCAL = &ModifyColumn{NewColDefinition: yyDollar[3].columnDefinitionUnion(), First: yyDollar[4].colNameUnion(), After: yyDollar[5].colNameUnion()} } @@ -8094,7 +8074,7 @@ yydefault: case 348: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1963 +//line sql.y:1974 { yyLOCAL = &AlterCharset{CharacterSet: yyDollar[4].str, Collate: yyDollar[5].str} } @@ -8102,7 +8082,7 @@ yydefault: case 349: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1967 +//line sql.y:1978 { yyLOCAL = &KeyState{Enable: false} } @@ -8110,7 +8090,7 @@ yydefault: case 350: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1971 +//line sql.y:1982 { yyLOCAL = &KeyState{Enable: true} } @@ -8118,7 +8098,7 @@ yydefault: case 351: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1975 +//line sql.y:1986 { yyLOCAL = &TablespaceOperation{Import: false} } @@ -8126,7 +8106,7 @@ yydefault: case 352: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1979 +//line sql.y:1990 { yyLOCAL = &TablespaceOperation{Import: true} } @@ -8134,7 +8114,7 @@ yydefault: case 353: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1983 +//line sql.y:1994 { yyLOCAL = &DropColumn{Name: yyDollar[3].colNameUnion()} } @@ -8142,7 +8122,7 @@ yydefault: case 354: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1987 +//line sql.y:1998 { yyLOCAL = &DropKey{Type: NormalKeyType, Name: yyDollar[3].colIdent} } @@ -8150,7 +8130,7 @@ yydefault: case 355: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1991 +//line sql.y:2002 { yyLOCAL = &DropKey{Type: PrimaryKeyType} } @@ -8158,7 +8138,7 @@ yydefault: case 356: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1995 +//line sql.y:2006 { yyLOCAL = &DropKey{Type: ForeignKeyType, Name: yyDollar[4].colIdent} } @@ -8166,7 +8146,7 @@ yydefault: case 357: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1999 +//line sql.y:2010 { yyLOCAL = &Force{} } @@ -8174,7 +8154,7 @@ yydefault: case 358: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2003 +//line sql.y:2014 { yyLOCAL = &RenameTableName{Table: yyDollar[3].tableName} } @@ -8182,7 +8162,7 @@ yydefault: case 359: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2007 +//line sql.y:2018 { yyLOCAL = &RenameIndex{OldName: yyDollar[3].colIdent, NewName: yyDollar[5].colIdent} } @@ -8190,14 +8170,14 @@ yydefault: case 360: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2013 +//line sql.y:2024 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL case 361: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2017 +//line sql.y:2028 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) @@ -8205,7 +8185,7 @@ yydefault: case 362: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2023 +//line sql.y:2034 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } @@ -8213,7 +8193,7 @@ yydefault: case 363: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2027 +//line sql.y:2038 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } @@ -8221,7 +8201,7 @@ yydefault: case 364: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2031 +//line sql.y:2042 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } @@ -8229,7 +8209,7 @@ yydefault: case 365: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2035 +//line sql.y:2046 { yyLOCAL = &LockOption{Type: DefaultType} } @@ -8237,7 +8217,7 @@ yydefault: case 366: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2039 +//line sql.y:2050 { yyLOCAL = &LockOption{Type: NoneType} } @@ -8245,7 +8225,7 @@ yydefault: case 367: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2043 +//line sql.y:2054 { yyLOCAL = &LockOption{Type: SharedType} } @@ -8253,7 +8233,7 @@ yydefault: case 368: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2047 +//line sql.y:2058 { yyLOCAL = &LockOption{Type: ExclusiveType} } @@ -8261,7 +8241,7 @@ yydefault: case 369: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2051 +//line sql.y:2062 { yyLOCAL = &Validation{With: true} } @@ -8269,7 +8249,7 @@ yydefault: case 370: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2055 +//line sql.y:2066 { yyLOCAL = &Validation{With: false} } @@ -8277,7 +8257,7 @@ yydefault: case 371: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2061 +//line sql.y:2072 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8287,7 +8267,7 @@ yydefault: case 372: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2067 +//line sql.y:2078 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8298,7 +8278,7 @@ yydefault: case 373: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2074 +//line sql.y:2085 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8309,7 +8289,7 @@ yydefault: case 374: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2081 +//line sql.y:2092 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[2].partSpecUnion() @@ -8319,7 +8299,7 @@ yydefault: case 375: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL Statement -//line sql.y:2087 +//line sql.y:2098 { yyLOCAL = &AlterView{ViewName: yyDollar[7].tableName.ToViewName(), Algorithm: yyDollar[3].str, Definer: yyDollar[4].str, Security: yyDollar[5].str, Columns: yyDollar[8].columnsUnion(), Select: yyDollar[10].selStmtUnion(), CheckOption: yyDollar[11].str} } @@ -8327,7 +8307,7 @@ yydefault: case 376: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2091 +//line sql.y:2102 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8338,7 +8318,7 @@ yydefault: case 377: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2098 +//line sql.y:2109 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8349,7 +8329,7 @@ yydefault: case 378: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2105 +//line sql.y:2116 { yyLOCAL = &AlterVschema{ Action: CreateVindexDDLAction, @@ -8365,7 +8345,7 @@ yydefault: case 379: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2117 +//line sql.y:2128 { yyLOCAL = &AlterVschema{ Action: DropVindexDDLAction, @@ -8379,7 +8359,7 @@ yydefault: case 380: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2127 +//line sql.y:2138 { yyLOCAL = &AlterVschema{Action: AddVschemaTableDDLAction, Table: yyDollar[6].tableName} } @@ -8387,7 +8367,7 @@ yydefault: case 381: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2131 +//line sql.y:2142 { yyLOCAL = &AlterVschema{Action: DropVschemaTableDDLAction, Table: yyDollar[6].tableName} } @@ -8395,7 +8375,7 @@ yydefault: case 382: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL Statement -//line sql.y:2135 +//line sql.y:2146 { yyLOCAL = &AlterVschema{ Action: AddColVindexDDLAction, @@ -8412,7 +8392,7 @@ yydefault: case 383: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2148 +//line sql.y:2159 { yyLOCAL = &AlterVschema{ Action: DropColVindexDDLAction, @@ -8426,7 +8406,7 @@ yydefault: case 384: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2158 +//line sql.y:2169 { yyLOCAL = &AlterVschema{Action: AddSequenceDDLAction, Table: yyDollar[6].tableName} } @@ -8434,7 +8414,7 @@ yydefault: case 385: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Statement -//line sql.y:2162 +//line sql.y:2173 { yyLOCAL = &AlterVschema{ Action: AddAutoIncDDLAction, @@ -8449,7 +8429,7 @@ yydefault: case 386: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2173 +//line sql.y:2184 { yyLOCAL = &AlterMigration{ Type: RetryMigrationType, @@ -8460,7 +8440,7 @@ yydefault: case 387: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2180 +//line sql.y:2191 { yyLOCAL = &AlterMigration{ Type: CompleteMigrationType, @@ -8471,7 +8451,7 @@ yydefault: case 388: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2187 +//line sql.y:2198 { yyLOCAL = &AlterMigration{ Type: CancelMigrationType, @@ -8482,7 +8462,7 @@ yydefault: case 389: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2194 +//line sql.y:2205 { yyLOCAL = &AlterMigration{ Type: CancelAllMigrationType, @@ -8492,7 +8472,7 @@ yydefault: case 390: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2202 +//line sql.y:2213 { yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}} } @@ -8500,7 +8480,7 @@ yydefault: case 391: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2206 +//line sql.y:2217 { yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()} } @@ -8508,7 +8488,7 @@ yydefault: case 392: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2210 +//line sql.y:2221 { yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()} } @@ -8516,7 +8496,7 @@ yydefault: case 393: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2214 +//line sql.y:2225 { yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()} } @@ -8524,7 +8504,7 @@ yydefault: case 394: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2218 +//line sql.y:2229 { yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true} } @@ -8532,7 +8512,7 @@ yydefault: case 395: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2222 +//line sql.y:2233 { yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()} } @@ -8540,7 +8520,7 @@ yydefault: case 396: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2226 +//line sql.y:2237 { yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true} } @@ -8548,7 +8528,7 @@ yydefault: case 397: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2230 +//line sql.y:2241 { yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()} } @@ -8556,7 +8536,7 @@ yydefault: case 398: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2234 +//line sql.y:2245 { yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true} } @@ -8564,7 +8544,7 @@ yydefault: case 399: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2238 +//line sql.y:2249 { yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)} } @@ -8572,7 +8552,7 @@ yydefault: case 400: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2242 +//line sql.y:2253 { yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].colIdent}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()} } @@ -8580,7 +8560,7 @@ yydefault: case 401: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2246 +//line sql.y:2257 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()} } @@ -8588,7 +8568,7 @@ yydefault: case 402: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2250 +//line sql.y:2261 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true} } @@ -8596,7 +8576,7 @@ yydefault: case 403: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2254 +//line sql.y:2265 { yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()} } @@ -8604,7 +8584,7 @@ yydefault: case 404: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2258 +//line sql.y:2269 { yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true} } @@ -8612,7 +8592,7 @@ yydefault: case 405: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2262 +//line sql.y:2273 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()} } @@ -8620,7 +8600,7 @@ yydefault: case 406: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2266 +//line sql.y:2277 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true} } @@ -8628,7 +8608,7 @@ yydefault: case 407: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2270 +//line sql.y:2281 { yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()} } @@ -8636,7 +8616,7 @@ yydefault: case 408: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2274 +//line sql.y:2285 { yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true} } @@ -8644,7 +8624,7 @@ yydefault: case 409: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2278 +//line sql.y:2289 { yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()} } @@ -8652,7 +8632,7 @@ yydefault: case 410: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2282 +//line sql.y:2293 { yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true} } @@ -8660,7 +8640,7 @@ yydefault: case 411: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2286 +//line sql.y:2297 { yyLOCAL = &PartitionSpec{Action: UpgradeAction} } @@ -8668,7 +8648,7 @@ yydefault: case 412: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2291 +//line sql.y:2302 { yyLOCAL = false } @@ -8676,7 +8656,7 @@ yydefault: case 413: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2295 +//line sql.y:2306 { yyLOCAL = false } @@ -8684,7 +8664,7 @@ yydefault: case 414: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2299 +//line sql.y:2310 { yyLOCAL = true } @@ -8692,14 +8672,14 @@ yydefault: case 415: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:2306 +//line sql.y:2317 { yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()} } yyVAL.union = yyLOCAL case 416: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2310 +//line sql.y:2321 { yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].partDefUnion()) @@ -8707,7 +8687,7 @@ yydefault: case 417: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2316 +//line sql.y:2327 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].exprUnion()} } @@ -8715,7 +8695,7 @@ yydefault: case 418: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2320 +//line sql.y:2331 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} } @@ -8723,7 +8703,7 @@ yydefault: case 419: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2326 +//line sql.y:2337 { yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()} } @@ -8731,14 +8711,14 @@ yydefault: case 420: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*RenameTablePair -//line sql.y:2332 +//line sql.y:2343 { yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}} } yyVAL.union = yyLOCAL case 421: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2336 +//line sql.y:2347 { yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName}) @@ -8746,7 +8726,7 @@ yydefault: case 422: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2342 +//line sql.y:2353 { yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs), Temp: yyDollar[3].booleanUnion()} } @@ -8754,7 +8734,7 @@ yydefault: case 423: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2346 +//line sql.y:2357 { // Change this to an alter statement if yyDollar[4].colIdent.Lowered() == "primary" { @@ -8767,7 +8747,7 @@ yydefault: case 424: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2355 +//line sql.y:2366 { yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), IfExists: yyDollar[4].booleanUnion()} } @@ -8775,7 +8755,7 @@ yydefault: case 425: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2359 +//line sql.y:2370 { yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs), DBName: yyDollar[5].tableIdent, IfExists: yyDollar[4].booleanUnion()} } @@ -8783,7 +8763,7 @@ yydefault: case 426: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2365 +//line sql.y:2376 { yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName} } @@ -8791,7 +8771,7 @@ yydefault: case 427: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2369 +//line sql.y:2380 { yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName} } @@ -8799,7 +8779,7 @@ yydefault: case 428: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2374 +//line sql.y:2385 { yyLOCAL = &OtherRead{} } @@ -8807,7 +8787,7 @@ yydefault: case 429: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2380 +//line sql.y:2391 { yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}} } @@ -8815,7 +8795,7 @@ yydefault: case 430: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2384 +//line sql.y:2395 { yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}} } @@ -8823,7 +8803,7 @@ yydefault: case 431: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2388 +//line sql.y:2399 { yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } @@ -8831,7 +8811,7 @@ yydefault: case 432: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2392 +//line sql.y:2403 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } @@ -8839,7 +8819,7 @@ yydefault: case 433: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2396 +//line sql.y:2407 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } @@ -8847,7 +8827,7 @@ yydefault: case 434: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2400 +//line sql.y:2411 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } @@ -8855,7 +8835,7 @@ yydefault: case 435: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2404 +//line sql.y:2415 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } @@ -8863,7 +8843,7 @@ yydefault: case 436: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2408 +//line sql.y:2419 { yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}} } @@ -8871,7 +8851,7 @@ yydefault: case 437: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2412 +//line sql.y:2423 { yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } @@ -8879,7 +8859,7 @@ yydefault: case 438: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2416 +//line sql.y:2427 { yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } @@ -8887,7 +8867,7 @@ yydefault: case 439: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2420 +//line sql.y:2431 { yyLOCAL = &Show{&ShowBasic{Command: Privilege}} } @@ -8895,7 +8875,7 @@ yydefault: case 440: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2424 +//line sql.y:2435 { yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}} } @@ -8903,7 +8883,7 @@ yydefault: case 441: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2428 +//line sql.y:2439 { yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}} } @@ -8911,7 +8891,7 @@ yydefault: case 442: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2432 +//line sql.y:2443 { yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}} } @@ -8919,7 +8899,7 @@ yydefault: case 443: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2436 +//line sql.y:2447 { yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}} } @@ -8927,7 +8907,7 @@ yydefault: case 444: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2440 +//line sql.y:2451 { yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}} } @@ -8935,7 +8915,7 @@ yydefault: case 445: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2444 +//line sql.y:2455 { yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } @@ -8943,7 +8923,7 @@ yydefault: case 446: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2448 +//line sql.y:2459 { yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } @@ -8951,7 +8931,7 @@ yydefault: case 447: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2452 +//line sql.y:2463 { yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].tableIdent, Filter: yyDollar[4].showFilterUnion()}} } @@ -8959,7 +8939,7 @@ yydefault: case 448: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2456 +//line sql.y:2467 { yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}} } @@ -8967,7 +8947,7 @@ yydefault: case 449: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2460 +//line sql.y:2471 { yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}} } @@ -8975,7 +8955,7 @@ yydefault: case 450: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2464 +//line sql.y:2475 { yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}} } @@ -8983,7 +8963,7 @@ yydefault: case 451: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2468 +//line sql.y:2479 { yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}} } @@ -8991,7 +8971,7 @@ yydefault: case 452: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2472 +//line sql.y:2483 { yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}} } @@ -8999,7 +8979,7 @@ yydefault: case 453: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2476 +//line sql.y:2487 { yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}} } @@ -9007,7 +8987,7 @@ yydefault: case 454: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2480 +//line sql.y:2491 { yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}} } @@ -9015,7 +8995,7 @@ yydefault: case 455: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2484 +//line sql.y:2495 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } @@ -9023,7 +9003,7 @@ yydefault: case 456: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2488 +//line sql.y:2499 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].colIdent.String()), Scope: ImplicitScope}} } @@ -9031,7 +9011,7 @@ yydefault: case 457: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2492 +//line sql.y:2503 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } @@ -9039,7 +9019,7 @@ yydefault: case 458: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2496 +//line sql.y:2507 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } @@ -9047,7 +9027,7 @@ yydefault: case 459: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2500 +//line sql.y:2511 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } @@ -9055,7 +9035,7 @@ yydefault: case 460: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2504 +//line sql.y:2515 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } @@ -9063,7 +9043,7 @@ yydefault: case 461: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2508 +//line sql.y:2519 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } @@ -9071,7 +9051,7 @@ yydefault: case 462: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2512 +//line sql.y:2523 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[3].str), Scope: ImplicitScope}} } @@ -9079,7 +9059,7 @@ yydefault: case 463: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2516 +//line sql.y:2527 { yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].tableIdent}} } @@ -9087,7 +9067,7 @@ yydefault: case 464: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2520 +//line sql.y:2531 { yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].tableIdent}} } @@ -9095,7 +9075,7 @@ yydefault: case 465: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2524 +//line sql.y:2535 { showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilterUnion()} yyLOCAL = &Show{&ShowLegacy{Scope: VitessMetadataScope, Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt}} @@ -9104,7 +9084,7 @@ yydefault: case 466: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2529 +//line sql.y:2540 { yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].tableIdent}} } @@ -9112,7 +9092,7 @@ yydefault: case 467: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2533 +//line sql.y:2544 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } @@ -9120,7 +9100,7 @@ yydefault: case 468: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2537 +//line sql.y:2548 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } @@ -9128,7 +9108,7 @@ yydefault: case 469: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2541 +//line sql.y:2552 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), OnTable: yyDollar[5].tableName, Scope: ImplicitScope}} } @@ -9136,7 +9116,7 @@ yydefault: case 470: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2545 +//line sql.y:2556 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } @@ -9144,7 +9124,7 @@ yydefault: case 471: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2550 +//line sql.y:2561 { // This should probably be a different type (ShowVitessTopoOpt), but // just getting the thing working for now @@ -9155,7 +9135,7 @@ yydefault: case 472: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2564 +//line sql.y:2575 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].colIdent.String()), Scope: ImplicitScope}} } @@ -9163,7 +9143,7 @@ yydefault: case 473: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2568 +//line sql.y:2579 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } @@ -9171,39 +9151,39 @@ yydefault: case 474: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2572 +//line sql.y:2583 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL case 475: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2578 +//line sql.y:2589 { yyVAL.str = string(yyDollar[1].str) } case 476: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2582 +//line sql.y:2593 { yyVAL.str = string(yyDollar[1].str) } case 477: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2588 +//line sql.y:2599 { yyVAL.str = "" } case 478: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2592 +//line sql.y:2603 { yyVAL.str = "extended " } case 479: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2598 +//line sql.y:2609 { yyLOCAL = false } @@ -9211,45 +9191,45 @@ yydefault: case 480: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2602 +//line sql.y:2613 { yyLOCAL = true } yyVAL.union = yyLOCAL case 481: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2608 +//line sql.y:2619 { yyVAL.str = string(yyDollar[1].str) } case 482: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2612 +//line sql.y:2623 { yyVAL.str = string(yyDollar[1].str) } case 483: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2618 +//line sql.y:2629 { yyVAL.tableIdent = NewTableIdent("") } case 484: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2622 +//line sql.y:2633 { yyVAL.tableIdent = yyDollar[2].tableIdent } case 485: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2626 +//line sql.y:2637 { yyVAL.tableIdent = yyDollar[2].tableIdent } case 486: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2632 +//line sql.y:2643 { yyLOCAL = nil } @@ -9257,7 +9237,7 @@ yydefault: case 487: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2636 +//line sql.y:2647 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } @@ -9265,7 +9245,7 @@ yydefault: case 488: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2640 +//line sql.y:2651 { yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()} } @@ -9273,7 +9253,7 @@ yydefault: case 489: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2646 +//line sql.y:2657 { yyLOCAL = nil } @@ -9281,33 +9261,33 @@ yydefault: case 490: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2650 +//line sql.y:2661 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL case 491: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2656 +//line sql.y:2667 { yyVAL.empty = struct{}{} } case 492: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2660 +//line sql.y:2671 { yyVAL.empty = struct{}{} } case 493: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2664 +//line sql.y:2675 { yyVAL.empty = struct{}{} } case 494: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2670 +//line sql.y:2681 { yyLOCAL = &Use{DBName: yyDollar[2].tableIdent} } @@ -9315,7 +9295,7 @@ yydefault: case 495: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2674 +//line sql.y:2685 { yyLOCAL = &Use{DBName: TableIdent{v: ""}} } @@ -9323,7 +9303,7 @@ yydefault: case 496: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2680 +//line sql.y:2691 { yyLOCAL = &Begin{} } @@ -9331,7 +9311,7 @@ yydefault: case 497: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2684 +//line sql.y:2695 { yyLOCAL = &Begin{} } @@ -9339,7 +9319,7 @@ yydefault: case 498: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2690 +//line sql.y:2701 { yyLOCAL = &Commit{} } @@ -9347,7 +9327,7 @@ yydefault: case 499: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2696 +//line sql.y:2707 { yyLOCAL = &Rollback{} } @@ -9355,39 +9335,39 @@ yydefault: case 500: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2700 +//line sql.y:2711 { yyLOCAL = &SRollback{Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL case 501: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2705 +//line sql.y:2716 { yyVAL.empty = struct{}{} } case 502: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2707 +//line sql.y:2718 { yyVAL.empty = struct{}{} } case 503: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2710 +//line sql.y:2721 { yyVAL.empty = struct{}{} } case 504: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2712 +//line sql.y:2723 { yyVAL.empty = struct{}{} } case 505: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2717 +//line sql.y:2728 { yyLOCAL = &Savepoint{Name: yyDollar[2].colIdent} } @@ -9395,7 +9375,7 @@ yydefault: case 506: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2723 +//line sql.y:2734 { yyLOCAL = &Release{Name: yyDollar[3].colIdent} } @@ -9403,7 +9383,7 @@ yydefault: case 507: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2728 +//line sql.y:2739 { yyLOCAL = EmptyType } @@ -9411,7 +9391,7 @@ yydefault: case 508: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2732 +//line sql.y:2743 { yyLOCAL = JSONType } @@ -9419,7 +9399,7 @@ yydefault: case 509: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2736 +//line sql.y:2747 { yyLOCAL = TreeType } @@ -9427,7 +9407,7 @@ yydefault: case 510: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2740 +//line sql.y:2751 { yyLOCAL = VitessType } @@ -9435,7 +9415,7 @@ yydefault: case 511: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2744 +//line sql.y:2755 { yyLOCAL = TraditionalType } @@ -9443,33 +9423,33 @@ yydefault: case 512: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2748 +//line sql.y:2759 { yyLOCAL = AnalyzeType } yyVAL.union = yyLOCAL case 513: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2754 +//line sql.y:2765 { yyVAL.str = yyDollar[1].str } case 514: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2758 +//line sql.y:2769 { yyVAL.str = yyDollar[1].str } case 515: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2762 +//line sql.y:2773 { yyVAL.str = yyDollar[1].str } case 516: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2768 +//line sql.y:2779 { yyLOCAL = yyDollar[1].selStmtUnion() } @@ -9477,7 +9457,7 @@ yydefault: case 517: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2772 +//line sql.y:2783 { yyLOCAL = yyDollar[1].statementUnion() } @@ -9485,7 +9465,7 @@ yydefault: case 518: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2776 +//line sql.y:2787 { yyLOCAL = yyDollar[1].statementUnion() } @@ -9493,33 +9473,33 @@ yydefault: case 519: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2780 +//line sql.y:2791 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL case 520: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2785 +//line sql.y:2796 { yyVAL.str = "" } case 521: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2789 +//line sql.y:2800 { yyVAL.str = yyDollar[1].colIdent.val } case 522: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2793 +//line sql.y:2804 { yyVAL.str = encodeSQLString(yyDollar[1].str) } case 523: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2799 +//line sql.y:2810 { yyLOCAL = &ExplainTab{Table: yyDollar[2].tableName, Wild: yyDollar[3].str} } @@ -9527,7 +9507,7 @@ yydefault: case 524: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2803 +//line sql.y:2814 { yyLOCAL = &ExplainStmt{Type: yyDollar[2].explainTypeUnion(), Statement: yyDollar[3].statementUnion()} } @@ -9535,7 +9515,7 @@ yydefault: case 525: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2809 +//line sql.y:2820 { yyLOCAL = &OtherAdmin{} } @@ -9543,7 +9523,7 @@ yydefault: case 526: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2813 +//line sql.y:2824 { yyLOCAL = &OtherAdmin{} } @@ -9551,7 +9531,7 @@ yydefault: case 527: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2819 +//line sql.y:2830 { yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()} } @@ -9559,14 +9539,14 @@ yydefault: case 528: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableAndLockTypes -//line sql.y:2825 +//line sql.y:2836 { yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()} } yyVAL.union = yyLOCAL case 529: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2829 +//line sql.y:2840 { yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion()) @@ -9574,7 +9554,7 @@ yydefault: case 530: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *TableAndLockType -//line sql.y:2835 +//line sql.y:2846 { yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()} } @@ -9582,7 +9562,7 @@ yydefault: case 531: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2841 +//line sql.y:2852 { yyLOCAL = Read } @@ -9590,7 +9570,7 @@ yydefault: case 532: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:2845 +//line sql.y:2856 { yyLOCAL = ReadLocal } @@ -9598,7 +9578,7 @@ yydefault: case 533: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2849 +//line sql.y:2860 { yyLOCAL = Write } @@ -9606,7 +9586,7 @@ yydefault: case 534: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:2853 +//line sql.y:2864 { yyLOCAL = LowPriorityWrite } @@ -9614,7 +9594,7 @@ yydefault: case 535: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2859 +//line sql.y:2870 { yyLOCAL = &UnlockTables{} } @@ -9622,7 +9602,7 @@ yydefault: case 536: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2865 +//line sql.y:2876 { yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs), UUID: string(yyDollar[4].str)} } @@ -9630,7 +9610,7 @@ yydefault: case 537: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2871 +//line sql.y:2882 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs} } @@ -9638,7 +9618,7 @@ yydefault: case 538: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2875 +//line sql.y:2886 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()} } @@ -9646,7 +9626,7 @@ yydefault: case 539: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2879 +//line sql.y:2890 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true} } @@ -9654,7 +9634,7 @@ yydefault: case 540: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2883 +//line sql.y:2894 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()} } @@ -9662,7 +9642,7 @@ yydefault: case 541: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2887 +//line sql.y:2898 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true} } @@ -9670,99 +9650,99 @@ yydefault: case 542: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2891 +//line sql.y:2902 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true} } yyVAL.union = yyLOCAL case 543: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2897 +//line sql.y:2908 { yyVAL.strs = []string{yyDollar[1].str} } case 544: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2901 +//line sql.y:2912 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str) } case 545: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2907 +//line sql.y:2918 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 546: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2911 +//line sql.y:2922 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 547: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2915 +//line sql.y:2926 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 548: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2919 +//line sql.y:2930 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 549: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2923 +//line sql.y:2934 { yyVAL.str = string(yyDollar[1].str) } case 550: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2927 +//line sql.y:2938 { yyVAL.str = string(yyDollar[1].str) } case 551: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2931 +//line sql.y:2942 { yyVAL.str = string(yyDollar[1].str) } case 552: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2935 +//line sql.y:2946 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str } case 553: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2939 +//line sql.y:2950 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 554: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2943 +//line sql.y:2954 { yyVAL.str = string(yyDollar[1].str) } case 555: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2947 +//line sql.y:2958 { yyVAL.str = string(yyDollar[1].str) } case 556: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2951 +//line sql.y:2962 { yyVAL.str = string(yyDollar[1].str) } case 557: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2956 +//line sql.y:2967 { yyLOCAL = false } @@ -9770,7 +9750,7 @@ yydefault: case 558: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2960 +//line sql.y:2971 { yyLOCAL = true } @@ -9778,52 +9758,52 @@ yydefault: case 559: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2964 +//line sql.y:2975 { yyLOCAL = true } yyVAL.union = yyLOCAL case 560: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2969 +//line sql.y:2980 { yyVAL.str = "" } case 561: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2973 +//line sql.y:2984 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].colIdent.String() } case 562: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2978 +//line sql.y:2989 { setAllowComments(yylex, true) } case 563: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2982 +//line sql.y:2993 { yyVAL.strs = yyDollar[2].strs setAllowComments(yylex, false) } case 564: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2988 +//line sql.y:2999 { yyVAL.strs = nil } case 565: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2992 +//line sql.y:3003 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str) } case 566: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2998 +//line sql.y:3009 { yyLOCAL = true } @@ -9831,7 +9811,7 @@ yydefault: case 567: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3002 +//line sql.y:3013 { yyLOCAL = false } @@ -9839,33 +9819,33 @@ yydefault: case 568: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3006 +//line sql.y:3017 { yyLOCAL = true } yyVAL.union = yyLOCAL case 569: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3011 +//line sql.y:3022 { yyVAL.str = "" } case 570: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3015 +//line sql.y:3026 { yyVAL.str = SQLNoCacheStr } case 571: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3019 +//line sql.y:3030 { yyVAL.str = SQLCacheStr } case 572: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3024 +//line sql.y:3035 { yyLOCAL = false } @@ -9873,7 +9853,7 @@ yydefault: case 573: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3028 +//line sql.y:3039 { yyLOCAL = true } @@ -9881,7 +9861,7 @@ yydefault: case 574: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3032 +//line sql.y:3043 { yyLOCAL = true } @@ -9889,7 +9869,7 @@ yydefault: case 575: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3037 +//line sql.y:3048 { yyLOCAL = nil } @@ -9897,94 +9877,94 @@ yydefault: case 576: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3041 +//line sql.y:3052 { yyLOCAL = yyDollar[1].selectExprsUnion() } yyVAL.union = yyLOCAL case 577: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3046 +//line sql.y:3057 { yyVAL.strs = nil } case 578: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3050 +//line sql.y:3061 { yyVAL.strs = []string{yyDollar[1].str} } case 579: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3054 +//line sql.y:3065 { // TODO: This is a hack since I couldn't get it to work in a nicer way. I got 'conflicts: 8 shift/reduce' yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str} } case 580: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3058 +//line sql.y:3069 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str} } case 581: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3062 +//line sql.y:3073 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str, yyDollar[4].str} } case 582: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3068 +//line sql.y:3079 { yyVAL.str = SQLNoCacheStr } case 583: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3072 +//line sql.y:3083 { yyVAL.str = SQLCacheStr } case 584: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3076 +//line sql.y:3087 { yyVAL.str = DistinctStr } case 585: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3080 +//line sql.y:3091 { yyVAL.str = DistinctStr } case 586: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3084 +//line sql.y:3095 { yyVAL.str = StraightJoinHint } case 587: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3088 +//line sql.y:3099 { yyVAL.str = SQLCalcFoundRowsStr } case 588: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3092 +//line sql.y:3103 { yyVAL.str = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway } case 589: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3098 +//line sql.y:3109 { yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()} } yyVAL.union = yyLOCAL case 590: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3102 +//line sql.y:3113 { yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion()) @@ -9992,7 +9972,7 @@ yydefault: case 591: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3108 +//line sql.y:3119 { yyLOCAL = &StarExpr{} } @@ -10000,7 +9980,7 @@ yydefault: case 592: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3112 +//line sql.y:3123 { yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].colIdent} } @@ -10008,7 +9988,7 @@ yydefault: case 593: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3116 +//line sql.y:3127 { yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } @@ -10016,39 +9996,39 @@ yydefault: case 594: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3120 +//line sql.y:3131 { yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL case 595: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3125 +//line sql.y:3136 { yyVAL.colIdent = ColIdent{} } case 596: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3129 +//line sql.y:3140 { yyVAL.colIdent = yyDollar[1].colIdent } case 597: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3133 +//line sql.y:3144 { yyVAL.colIdent = yyDollar[2].colIdent } case 599: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3140 +//line sql.y:3151 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } case 600: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3145 +//line sql.y:3156 { yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } @@ -10056,7 +10036,7 @@ yydefault: case 601: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3149 +//line sql.y:3160 { yyLOCAL = yyDollar[2].tableExprsUnion() } @@ -10064,14 +10044,14 @@ yydefault: case 602: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3155 +//line sql.y:3166 { yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()} } yyVAL.union = yyLOCAL case 603: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3159 +//line sql.y:3170 { yySLICE := (*TableExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion()) @@ -10079,7 +10059,7 @@ yydefault: case 606: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3169 +//line sql.y:3180 { yyLOCAL = yyDollar[1].aliasedTableNameUnion() } @@ -10087,7 +10067,7 @@ yydefault: case 607: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3173 +//line sql.y:3184 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].tableIdent} } @@ -10095,7 +10075,7 @@ yydefault: case 608: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3177 +//line sql.y:3188 { yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()} } @@ -10103,7 +10083,7 @@ yydefault: case 609: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:3183 +//line sql.y:3194 { yyLOCAL = &DerivedTable{yyDollar[2].selStmtUnion()} } @@ -10111,7 +10091,7 @@ yydefault: case 610: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3189 +//line sql.y:3200 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHintsUnion()} } @@ -10119,7 +10099,7 @@ yydefault: case 611: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3193 +//line sql.y:3204 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHintsUnion()} } @@ -10127,7 +10107,7 @@ yydefault: case 612: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:3198 +//line sql.y:3209 { yyLOCAL = nil } @@ -10135,7 +10115,7 @@ yydefault: case 613: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:3202 +//line sql.y:3213 { yyLOCAL = yyDollar[2].columnsUnion() } @@ -10143,14 +10123,14 @@ yydefault: case 614: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:3208 +//line sql.y:3219 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL case 615: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3212 +//line sql.y:3223 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) @@ -10158,14 +10138,14 @@ yydefault: case 616: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Partitions -//line sql.y:3218 +//line sql.y:3229 { yyLOCAL = Partitions{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL case 617: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3222 +//line sql.y:3233 { yySLICE := (*Partitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) @@ -10173,7 +10153,7 @@ yydefault: case 618: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3235 +//line sql.y:3246 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } @@ -10181,7 +10161,7 @@ yydefault: case 619: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3239 +//line sql.y:3250 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } @@ -10189,7 +10169,7 @@ yydefault: case 620: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3243 +//line sql.y:3254 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } @@ -10197,87 +10177,87 @@ yydefault: case 621: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3247 +//line sql.y:3258 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()} } yyVAL.union = yyLOCAL case 622: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3253 +//line sql.y:3264 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } case 623: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3255 +//line sql.y:3266 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columnsUnion()} } case 624: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3259 +//line sql.y:3270 { yyVAL.joinCondition = JoinCondition{} } case 625: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3261 +//line sql.y:3272 { yyVAL.joinCondition = yyDollar[1].joinCondition } case 626: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3265 +//line sql.y:3276 { yyVAL.joinCondition = JoinCondition{} } case 627: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3267 +//line sql.y:3278 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } case 628: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3270 +//line sql.y:3281 { yyVAL.empty = struct{}{} } case 629: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3272 +//line sql.y:3283 { yyVAL.empty = struct{}{} } case 630: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3275 +//line sql.y:3286 { yyVAL.tableIdent = NewTableIdent("") } case 631: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3279 +//line sql.y:3290 { yyVAL.tableIdent = yyDollar[1].tableIdent } case 632: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3283 +//line sql.y:3294 { yyVAL.tableIdent = yyDollar[2].tableIdent } case 634: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3290 +//line sql.y:3301 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } case 635: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3296 +//line sql.y:3307 { yyLOCAL = NormalJoinType } @@ -10285,7 +10265,7 @@ yydefault: case 636: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3300 +//line sql.y:3311 { yyLOCAL = NormalJoinType } @@ -10293,7 +10273,7 @@ yydefault: case 637: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3304 +//line sql.y:3315 { yyLOCAL = NormalJoinType } @@ -10301,7 +10281,7 @@ yydefault: case 638: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3310 +//line sql.y:3321 { yyLOCAL = StraightJoinType } @@ -10309,7 +10289,7 @@ yydefault: case 639: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3316 +//line sql.y:3327 { yyLOCAL = LeftJoinType } @@ -10317,7 +10297,7 @@ yydefault: case 640: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3320 +//line sql.y:3331 { yyLOCAL = LeftJoinType } @@ -10325,7 +10305,7 @@ yydefault: case 641: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3324 +//line sql.y:3335 { yyLOCAL = RightJoinType } @@ -10333,7 +10313,7 @@ yydefault: case 642: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3328 +//line sql.y:3339 { yyLOCAL = RightJoinType } @@ -10341,7 +10321,7 @@ yydefault: case 643: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3334 +//line sql.y:3345 { yyLOCAL = NaturalJoinType } @@ -10349,7 +10329,7 @@ yydefault: case 644: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3338 +//line sql.y:3349 { if yyDollar[2].joinTypeUnion() == LeftJoinType { yyLOCAL = NaturalLeftJoinType @@ -10360,38 +10340,38 @@ yydefault: yyVAL.union = yyLOCAL case 645: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3348 +//line sql.y:3359 { yyVAL.tableName = yyDollar[2].tableName } case 646: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3352 +//line sql.y:3363 { yyVAL.tableName = yyDollar[1].tableName } case 647: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3358 +//line sql.y:3369 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } case 648: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3362 +//line sql.y:3373 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } case 649: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3368 +//line sql.y:3379 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } case 650: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3373 +//line sql.y:3384 { yyLOCAL = nil } @@ -10399,7 +10379,7 @@ yydefault: case 651: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3377 +//line sql.y:3388 { yyLOCAL = &IndexHints{Type: UseOp, Indexes: yyDollar[4].columnsUnion()} } @@ -10407,7 +10387,7 @@ yydefault: case 652: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3381 +//line sql.y:3392 { yyLOCAL = &IndexHints{Type: UseOp} } @@ -10415,7 +10395,7 @@ yydefault: case 653: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3385 +//line sql.y:3396 { yyLOCAL = &IndexHints{Type: IgnoreOp, Indexes: yyDollar[4].columnsUnion()} } @@ -10423,7 +10403,7 @@ yydefault: case 654: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3389 +//line sql.y:3400 { yyLOCAL = &IndexHints{Type: ForceOp, Indexes: yyDollar[4].columnsUnion()} } @@ -10431,7 +10411,7 @@ yydefault: case 655: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3394 +//line sql.y:3405 { yyLOCAL = nil } @@ -10439,7 +10419,7 @@ yydefault: case 656: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3398 +//line sql.y:3409 { yyLOCAL = yyDollar[2].exprUnion() } @@ -10447,7 +10427,7 @@ yydefault: case 657: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3404 +//line sql.y:3415 { yyLOCAL = yyDollar[1].exprUnion() } @@ -10455,7 +10435,7 @@ yydefault: case 658: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3408 +//line sql.y:3419 { yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } @@ -10463,7 +10443,7 @@ yydefault: case 659: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3412 +//line sql.y:3423 { yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } @@ -10471,7 +10451,7 @@ yydefault: case 660: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3416 +//line sql.y:3427 { yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } @@ -10479,7 +10459,7 @@ yydefault: case 661: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3420 +//line sql.y:3431 { yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()} } @@ -10487,7 +10467,7 @@ yydefault: case 662: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3424 +//line sql.y:3435 { yyLOCAL = &IsExpr{Operator: yyDollar[3].isExprOperatorUnion(), Expr: yyDollar[1].exprUnion()} } @@ -10495,7 +10475,7 @@ yydefault: case 663: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3428 +//line sql.y:3439 { yyLOCAL = yyDollar[1].exprUnion() } @@ -10503,27 +10483,27 @@ yydefault: case 664: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3432 +//line sql.y:3443 { yyLOCAL = &Default{ColName: yyDollar[2].str} } yyVAL.union = yyLOCAL case 665: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3438 +//line sql.y:3449 { yyVAL.str = "" } case 666: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3442 +//line sql.y:3453 { yyVAL.str = string(yyDollar[2].colIdent.String()) } case 667: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3448 +//line sql.y:3459 { yyLOCAL = BoolVal(true) } @@ -10531,7 +10511,7 @@ yydefault: case 668: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3452 +//line sql.y:3463 { yyLOCAL = BoolVal(false) } @@ -10539,7 +10519,7 @@ yydefault: case 669: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3458 +//line sql.y:3469 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()} } @@ -10547,7 +10527,7 @@ yydefault: case 670: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3462 +//line sql.y:3473 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()} } @@ -10555,7 +10535,7 @@ yydefault: case 671: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3466 +//line sql.y:3477 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()} } @@ -10563,7 +10543,7 @@ yydefault: case 672: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3470 +//line sql.y:3481 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[4].exprUnion()} } @@ -10571,7 +10551,7 @@ yydefault: case 673: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3474 +//line sql.y:3485 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[5].exprUnion()} } @@ -10579,7 +10559,7 @@ yydefault: case 674: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3478 +//line sql.y:3489 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()} } @@ -10587,7 +10567,7 @@ yydefault: case 675: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3482 +//line sql.y:3493 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()} } @@ -10595,7 +10575,7 @@ yydefault: case 676: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3486 +//line sql.y:3497 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: BetweenOp, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()} } @@ -10603,7 +10583,7 @@ yydefault: case 677: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3490 +//line sql.y:3501 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: NotBetweenOp, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()} } @@ -10611,7 +10591,7 @@ yydefault: case 678: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3494 +//line sql.y:3505 { yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()} } @@ -10619,7 +10599,7 @@ yydefault: case 679: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3500 +//line sql.y:3511 { yyLOCAL = IsNullOp } @@ -10627,7 +10607,7 @@ yydefault: case 680: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3504 +//line sql.y:3515 { yyLOCAL = IsNotNullOp } @@ -10635,7 +10615,7 @@ yydefault: case 681: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3508 +//line sql.y:3519 { yyLOCAL = IsTrueOp } @@ -10643,7 +10623,7 @@ yydefault: case 682: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3512 +//line sql.y:3523 { yyLOCAL = IsNotTrueOp } @@ -10651,7 +10631,7 @@ yydefault: case 683: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3516 +//line sql.y:3527 { yyLOCAL = IsFalseOp } @@ -10659,7 +10639,7 @@ yydefault: case 684: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3520 +//line sql.y:3531 { yyLOCAL = IsNotFalseOp } @@ -10667,7 +10647,7 @@ yydefault: case 685: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3526 +//line sql.y:3537 { yyLOCAL = EqualOp } @@ -10675,7 +10655,7 @@ yydefault: case 686: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3530 +//line sql.y:3541 { yyLOCAL = LessThanOp } @@ -10683,7 +10663,7 @@ yydefault: case 687: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3534 +//line sql.y:3545 { yyLOCAL = GreaterThanOp } @@ -10691,7 +10671,7 @@ yydefault: case 688: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3538 +//line sql.y:3549 { yyLOCAL = LessEqualOp } @@ -10699,7 +10679,7 @@ yydefault: case 689: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3542 +//line sql.y:3553 { yyLOCAL = GreaterEqualOp } @@ -10707,7 +10687,7 @@ yydefault: case 690: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3546 +//line sql.y:3557 { yyLOCAL = NotEqualOp } @@ -10715,7 +10695,7 @@ yydefault: case 691: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3550 +//line sql.y:3561 { yyLOCAL = NullSafeEqualOp } @@ -10723,7 +10703,7 @@ yydefault: case 692: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3555 +//line sql.y:3566 { yyLOCAL = nil } @@ -10731,7 +10711,7 @@ yydefault: case 693: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3559 +//line sql.y:3570 { yyLOCAL = yyDollar[2].exprUnion() } @@ -10739,7 +10719,7 @@ yydefault: case 694: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3565 +//line sql.y:3576 { yyLOCAL = yyDollar[1].valTupleUnion() } @@ -10747,7 +10727,7 @@ yydefault: case 695: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3569 +//line sql.y:3580 { yyLOCAL = yyDollar[1].subqueryUnion() } @@ -10755,7 +10735,7 @@ yydefault: case 696: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3573 +//line sql.y:3584 { yyLOCAL = ListArg(yyDollar[1].str[2:]) bindVariable(yylex, yyDollar[1].str[2:]) @@ -10764,7 +10744,7 @@ yydefault: case 697: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Subquery -//line sql.y:3580 +//line sql.y:3591 { yyLOCAL = &Subquery{yyDollar[2].selStmtUnion()} } @@ -10772,14 +10752,14 @@ yydefault: case 698: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:3586 +//line sql.y:3597 { yyLOCAL = Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL case 699: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3590 +//line sql.y:3601 { yySLICE := (*Exprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].exprUnion()) @@ -10787,7 +10767,7 @@ yydefault: case 700: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3596 +//line sql.y:3607 { yyLOCAL = yyDollar[1].exprUnion() } @@ -10795,7 +10775,7 @@ yydefault: case 701: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3600 +//line sql.y:3611 { yyLOCAL = yyDollar[1].boolValUnion() } @@ -10803,7 +10783,7 @@ yydefault: case 702: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3604 +//line sql.y:3615 { yyLOCAL = yyDollar[1].colNameUnion() } @@ -10811,7 +10791,7 @@ yydefault: case 703: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3608 +//line sql.y:3619 { yyLOCAL = yyDollar[1].exprUnion() } @@ -10819,7 +10799,7 @@ yydefault: case 704: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3612 +//line sql.y:3623 { yyLOCAL = yyDollar[1].subqueryUnion() } @@ -10827,7 +10807,7 @@ yydefault: case 705: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3616 +//line sql.y:3627 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()} } @@ -10835,7 +10815,7 @@ yydefault: case 706: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3620 +//line sql.y:3631 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()} } @@ -10843,7 +10823,7 @@ yydefault: case 707: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3624 +//line sql.y:3635 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()} } @@ -10851,7 +10831,7 @@ yydefault: case 708: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3628 +//line sql.y:3639 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()} } @@ -10859,7 +10839,7 @@ yydefault: case 709: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3632 +//line sql.y:3643 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()} } @@ -10867,7 +10847,7 @@ yydefault: case 710: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3636 +//line sql.y:3647 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()} } @@ -10875,7 +10855,7 @@ yydefault: case 711: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3640 +//line sql.y:3651 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()} } @@ -10883,7 +10863,7 @@ yydefault: case 712: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3644 +//line sql.y:3655 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()} } @@ -10891,7 +10871,7 @@ yydefault: case 713: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3648 +//line sql.y:3659 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } @@ -10899,7 +10879,7 @@ yydefault: case 714: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3652 +//line sql.y:3663 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } @@ -10907,7 +10887,7 @@ yydefault: case 715: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3656 +//line sql.y:3667 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()} } @@ -10915,7 +10895,7 @@ yydefault: case 716: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3660 +//line sql.y:3671 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()} } @@ -10923,7 +10903,7 @@ yydefault: case 717: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3664 +//line sql.y:3675 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONExtractOp, Right: yyDollar[3].exprUnion()} } @@ -10931,7 +10911,7 @@ yydefault: case 718: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3668 +//line sql.y:3679 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONUnquoteExtractOp, Right: yyDollar[3].exprUnion()} } @@ -10939,7 +10919,7 @@ yydefault: case 719: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3672 +//line sql.y:3683 { yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Charset: yyDollar[3].str} } @@ -10947,7 +10927,7 @@ yydefault: case 720: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3676 +//line sql.y:3687 { yyLOCAL = &UnaryExpr{Operator: BinaryOp, Expr: yyDollar[2].exprUnion()} } @@ -10955,7 +10935,7 @@ yydefault: case 721: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3680 +//line sql.y:3691 { yyLOCAL = &UnaryExpr{Operator: UBinaryOp, Expr: yyDollar[2].exprUnion()} } @@ -10963,7 +10943,7 @@ yydefault: case 722: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3684 +//line sql.y:3695 { yyLOCAL = &UnaryExpr{Operator: Utf8Op, Expr: yyDollar[2].exprUnion()} } @@ -10971,7 +10951,7 @@ yydefault: case 723: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3688 +//line sql.y:3699 { yyLOCAL = &UnaryExpr{Operator: Utf8mb4Op, Expr: yyDollar[2].exprUnion()} } @@ -10979,7 +10959,7 @@ yydefault: case 724: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3692 +//line sql.y:3703 { yyLOCAL = &UnaryExpr{Operator: Latin1Op, Expr: yyDollar[2].exprUnion()} } @@ -10987,7 +10967,7 @@ yydefault: case 725: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3696 +//line sql.y:3707 { yyLOCAL = yyDollar[2].exprUnion() } @@ -10995,7 +10975,7 @@ yydefault: case 726: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3700 +//line sql.y:3711 { yyLOCAL = handleUnaryMinus(yyDollar[2].exprUnion()) } @@ -11003,7 +10983,7 @@ yydefault: case 727: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3704 +//line sql.y:3715 { yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()} } @@ -11011,7 +10991,7 @@ yydefault: case 728: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3708 +//line sql.y:3719 { yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()} } @@ -11019,7 +10999,7 @@ yydefault: case 729: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3712 +//line sql.y:3723 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -11031,7 +11011,7 @@ yydefault: case 734: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3730 +//line sql.y:3741 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprsUnion()} } @@ -11039,7 +11019,7 @@ yydefault: case 735: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3734 +//line sql.y:3745 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } @@ -11047,7 +11027,7 @@ yydefault: case 736: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3738 +//line sql.y:3749 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } @@ -11055,7 +11035,7 @@ yydefault: case 737: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3742 +//line sql.y:3753 { yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprsUnion()} } @@ -11063,7 +11043,7 @@ yydefault: case 738: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3752 +//line sql.y:3763 { yyLOCAL = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11071,7 +11051,7 @@ yydefault: case 739: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3756 +//line sql.y:3767 { yyLOCAL = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11079,7 +11059,7 @@ yydefault: case 740: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3760 +//line sql.y:3771 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } @@ -11087,7 +11067,7 @@ yydefault: case 741: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3764 +//line sql.y:3775 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } @@ -11095,7 +11075,7 @@ yydefault: case 742: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3768 +//line sql.y:3779 { yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str} } @@ -11103,7 +11083,7 @@ yydefault: case 743: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3772 +//line sql.y:3783 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } @@ -11111,7 +11091,7 @@ yydefault: case 744: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3776 +//line sql.y:3787 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } @@ -11119,7 +11099,7 @@ yydefault: case 745: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3780 +//line sql.y:3791 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } @@ -11127,7 +11107,7 @@ yydefault: case 746: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3784 +//line sql.y:3795 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } @@ -11135,7 +11115,7 @@ yydefault: case 747: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:3788 +//line sql.y:3799 { yyLOCAL = &MatchExpr{Columns: yyDollar[3].selectExprsUnion(), Expr: yyDollar[7].exprUnion(), Option: yyDollar[8].matchExprOptionUnion()} } @@ -11143,7 +11123,7 @@ yydefault: case 748: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3792 +//line sql.y:3803 { yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].selectExprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()} } @@ -11151,7 +11131,7 @@ yydefault: case 749: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3796 +//line sql.y:3807 { yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()} } @@ -11159,7 +11139,7 @@ yydefault: case 750: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3800 +//line sql.y:3811 { yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()} } @@ -11167,7 +11147,7 @@ yydefault: case 751: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3804 +//line sql.y:3815 { yyLOCAL = &FuncExpr{Name: NewColIdent(yyDollar[1].str)} } @@ -11175,7 +11155,7 @@ yydefault: case 752: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3814 +//line sql.y:3825 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_timestamp")} } @@ -11183,7 +11163,7 @@ yydefault: case 753: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3818 +//line sql.y:3829 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_timestamp")} } @@ -11191,7 +11171,7 @@ yydefault: case 754: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3822 +//line sql.y:3833 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_time")} } @@ -11199,7 +11179,7 @@ yydefault: case 755: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3827 +//line sql.y:3838 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_date")} } @@ -11207,7 +11187,7 @@ yydefault: case 756: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3832 +//line sql.y:3843 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtime")} } @@ -11215,7 +11195,7 @@ yydefault: case 757: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3837 +//line sql.y:3848 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtimestamp")} } @@ -11223,7 +11203,7 @@ yydefault: case 758: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3843 +//line sql.y:3854 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_date")} } @@ -11231,7 +11211,7 @@ yydefault: case 759: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3848 +//line sql.y:3859 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_time")} } @@ -11239,7 +11219,7 @@ yydefault: case 760: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3853 +//line sql.y:3864 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].exprUnion()} } @@ -11247,7 +11227,7 @@ yydefault: case 761: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3857 +//line sql.y:3868 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].exprUnion()} } @@ -11255,7 +11235,7 @@ yydefault: case 762: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3861 +//line sql.y:3872 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].exprUnion()} } @@ -11263,7 +11243,7 @@ yydefault: case 763: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3866 +//line sql.y:3877 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].exprUnion()} } @@ -11271,7 +11251,7 @@ yydefault: case 764: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3871 +//line sql.y:3882 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].exprUnion()} } @@ -11279,7 +11259,7 @@ yydefault: case 765: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3876 +//line sql.y:3887 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].exprUnion()} } @@ -11287,7 +11267,7 @@ yydefault: case 766: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3880 +//line sql.y:3891 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } @@ -11295,7 +11275,7 @@ yydefault: case 767: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3884 +//line sql.y:3895 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } @@ -11303,7 +11283,7 @@ yydefault: case 770: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3894 +//line sql.y:3905 { yyLOCAL = yyDollar[2].exprUnion() } @@ -11311,7 +11291,7 @@ yydefault: case 771: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3904 +//line sql.y:3915 { yyLOCAL = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11319,7 +11299,7 @@ yydefault: case 772: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3908 +//line sql.y:3919 { yyLOCAL = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11327,7 +11307,7 @@ yydefault: case 773: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3912 +//line sql.y:3923 { yyLOCAL = &FuncExpr{Name: NewColIdent("schema"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11335,7 +11315,7 @@ yydefault: case 774: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3916 +//line sql.y:3927 { yyLOCAL = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11343,7 +11323,7 @@ yydefault: case 775: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3920 +//line sql.y:3931 { yyLOCAL = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11351,7 +11331,7 @@ yydefault: case 776: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3924 +//line sql.y:3935 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11359,7 +11339,7 @@ yydefault: case 777: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3928 +//line sql.y:3939 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11367,7 +11347,7 @@ yydefault: case 778: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3934 +//line sql.y:3945 { yyLOCAL = NoOption } @@ -11375,7 +11355,7 @@ yydefault: case 779: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3938 +//line sql.y:3949 { yyLOCAL = BooleanModeOpt } @@ -11383,7 +11363,7 @@ yydefault: case 780: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3942 +//line sql.y:3953 { yyLOCAL = NaturalLanguageModeOpt } @@ -11391,7 +11371,7 @@ yydefault: case 781: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3946 +//line sql.y:3957 { yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt } @@ -11399,33 +11379,33 @@ yydefault: case 782: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3950 +//line sql.y:3961 { yyLOCAL = QueryExpansionOpt } yyVAL.union = yyLOCAL case 783: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3956 +//line sql.y:3967 { yyVAL.str = string(yyDollar[1].colIdent.String()) } case 784: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3960 +//line sql.y:3971 { yyVAL.str = string(yyDollar[1].str) } case 785: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3964 +//line sql.y:3975 { yyVAL.str = string(yyDollar[1].str) } case 786: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3970 +//line sql.y:3981 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } @@ -11433,7 +11413,7 @@ yydefault: case 787: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3974 +//line sql.y:3985 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Operator: CharacterSetOp} } @@ -11441,7 +11421,7 @@ yydefault: case 788: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3978 +//line sql.y:3989 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: string(yyDollar[3].colIdent.String())} } @@ -11449,7 +11429,7 @@ yydefault: case 789: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3982 +//line sql.y:3993 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -11457,7 +11437,7 @@ yydefault: case 790: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3986 +//line sql.y:3997 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } @@ -11465,7 +11445,7 @@ yydefault: case 791: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3990 +//line sql.y:4001 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length @@ -11475,7 +11455,7 @@ yydefault: case 792: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3996 +//line sql.y:4007 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -11483,7 +11463,7 @@ yydefault: case 793: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4000 +//line sql.y:4011 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } @@ -11491,7 +11471,7 @@ yydefault: case 794: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4004 +//line sql.y:4015 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -11499,7 +11479,7 @@ yydefault: case 795: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4008 +//line sql.y:4019 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -11507,7 +11487,7 @@ yydefault: case 796: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4012 +//line sql.y:4023 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } @@ -11515,7 +11495,7 @@ yydefault: case 797: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4016 +//line sql.y:4027 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -11523,7 +11503,7 @@ yydefault: case 798: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4020 +//line sql.y:4031 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -11531,7 +11511,7 @@ yydefault: case 799: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4025 +//line sql.y:4036 { yyLOCAL = nil } @@ -11539,34 +11519,34 @@ yydefault: case 800: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4029 +//line sql.y:4040 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL case 801: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4034 +//line sql.y:4045 { yyVAL.str = string("") } case 802: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4038 +//line sql.y:4049 { yyVAL.str = " separator " + encodeSQLString(yyDollar[2].str) } case 803: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*When -//line sql.y:4044 +//line sql.y:4055 { yyLOCAL = []*When{yyDollar[1].whenUnion()} } yyVAL.union = yyLOCAL case 804: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4048 +//line sql.y:4059 { yySLICE := (*[]*When)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].whenUnion()) @@ -11574,7 +11554,7 @@ yydefault: case 805: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *When -//line sql.y:4054 +//line sql.y:4065 { yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()} } @@ -11582,7 +11562,7 @@ yydefault: case 806: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4059 +//line sql.y:4070 { yyLOCAL = nil } @@ -11590,7 +11570,7 @@ yydefault: case 807: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4063 +//line sql.y:4074 { yyLOCAL = yyDollar[2].exprUnion() } @@ -11598,7 +11578,7 @@ yydefault: case 808: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ColName -//line sql.y:4069 +//line sql.y:4080 { yyLOCAL = &ColName{Name: yyDollar[1].colIdent} } @@ -11606,7 +11586,7 @@ yydefault: case 809: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColName -//line sql.y:4073 +//line sql.y:4084 { yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } @@ -11614,7 +11594,7 @@ yydefault: case 810: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColName -//line sql.y:4077 +//line sql.y:4088 { yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } @@ -11622,7 +11602,7 @@ yydefault: case 811: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4083 +//line sql.y:4094 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } @@ -11630,7 +11610,7 @@ yydefault: case 812: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4087 +//line sql.y:4098 { yyLOCAL = NewHexLiteral(yyDollar[1].str) } @@ -11638,7 +11618,7 @@ yydefault: case 813: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4091 +//line sql.y:4102 { yyLOCAL = NewBitLiteral(yyDollar[1].str) } @@ -11646,7 +11626,7 @@ yydefault: case 814: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4095 +//line sql.y:4106 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } @@ -11654,7 +11634,7 @@ yydefault: case 815: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4099 +//line sql.y:4110 { yyLOCAL = NewFloatLiteral(yyDollar[1].str) } @@ -11662,7 +11642,7 @@ yydefault: case 816: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4103 +//line sql.y:4114 { yyLOCAL = NewHexNumLiteral(yyDollar[1].str) } @@ -11670,7 +11650,7 @@ yydefault: case 817: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4107 +//line sql.y:4118 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) @@ -11679,7 +11659,7 @@ yydefault: case 818: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4112 +//line sql.y:4123 { yyLOCAL = &NullVal{} } @@ -11687,7 +11667,7 @@ yydefault: case 819: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4118 +//line sql.y:4129 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -11700,7 +11680,7 @@ yydefault: case 820: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4127 +//line sql.y:4138 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } @@ -11708,7 +11688,7 @@ yydefault: case 821: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4131 +//line sql.y:4142 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) @@ -11717,7 +11697,7 @@ yydefault: case 822: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4137 +//line sql.y:4148 { yyLOCAL = nil } @@ -11725,7 +11705,7 @@ yydefault: case 823: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Exprs -//line sql.y:4141 +//line sql.y:4152 { yyLOCAL = yyDollar[3].exprsUnion() } @@ -11733,7 +11713,7 @@ yydefault: case 824: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4146 +//line sql.y:4157 { yyLOCAL = nil } @@ -11741,7 +11721,7 @@ yydefault: case 825: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4150 +//line sql.y:4161 { yyLOCAL = yyDollar[2].exprUnion() } @@ -11749,7 +11729,7 @@ yydefault: case 826: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4155 +//line sql.y:4166 { yyLOCAL = nil } @@ -11757,7 +11737,7 @@ yydefault: case 827: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4159 +//line sql.y:4170 { yyLOCAL = yyDollar[3].orderByUnion() } @@ -11765,14 +11745,14 @@ yydefault: case 828: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4165 +//line sql.y:4176 { yyLOCAL = OrderBy{yyDollar[1].orderUnion()} } yyVAL.union = yyLOCAL case 829: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4169 +//line sql.y:4180 { yySLICE := (*OrderBy)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].orderUnion()) @@ -11780,7 +11760,7 @@ yydefault: case 830: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Order -//line sql.y:4175 +//line sql.y:4186 { yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()} } @@ -11788,7 +11768,7 @@ yydefault: case 831: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4180 +//line sql.y:4191 { yyLOCAL = AscOrder } @@ -11796,7 +11776,7 @@ yydefault: case 832: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4184 +//line sql.y:4195 { yyLOCAL = AscOrder } @@ -11804,7 +11784,7 @@ yydefault: case 833: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4188 +//line sql.y:4199 { yyLOCAL = DescOrder } @@ -11812,7 +11792,7 @@ yydefault: case 834: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Limit -//line sql.y:4193 +//line sql.y:4204 { yyLOCAL = nil } @@ -11820,7 +11800,7 @@ yydefault: case 835: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Limit -//line sql.y:4197 +//line sql.y:4208 { yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()} } @@ -11828,7 +11808,7 @@ yydefault: case 836: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4201 +//line sql.y:4212 { yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()} } @@ -11836,7 +11816,7 @@ yydefault: case 837: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4205 +//line sql.y:4216 { yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()} } @@ -11844,7 +11824,7 @@ yydefault: case 838: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4210 +//line sql.y:4221 { yyLOCAL = nil } @@ -11852,7 +11832,7 @@ yydefault: case 839: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4214 +//line sql.y:4225 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } @@ -11860,7 +11840,7 @@ yydefault: case 840: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4218 +//line sql.y:4229 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } @@ -11868,7 +11848,7 @@ yydefault: case 841: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4222 +//line sql.y:4233 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } @@ -11876,7 +11856,7 @@ yydefault: case 842: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4226 +//line sql.y:4237 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } @@ -11884,7 +11864,7 @@ yydefault: case 843: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4233 +//line sql.y:4244 { yyLOCAL = &LockOption{Type: DefaultType} } @@ -11892,7 +11872,7 @@ yydefault: case 844: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4237 +//line sql.y:4248 { yyLOCAL = &LockOption{Type: NoneType} } @@ -11900,7 +11880,7 @@ yydefault: case 845: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4241 +//line sql.y:4252 { yyLOCAL = &LockOption{Type: SharedType} } @@ -11908,7 +11888,7 @@ yydefault: case 846: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4245 +//line sql.y:4256 { yyLOCAL = &LockOption{Type: ExclusiveType} } @@ -11916,7 +11896,7 @@ yydefault: case 847: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4251 +//line sql.y:4262 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } @@ -11924,7 +11904,7 @@ yydefault: case 848: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4255 +//line sql.y:4266 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } @@ -11932,129 +11912,129 @@ yydefault: case 849: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4259 +//line sql.y:4270 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL case 850: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4264 +//line sql.y:4275 { yyVAL.str = "" } case 851: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4268 +//line sql.y:4279 { yyVAL.str = string(yyDollar[3].str) } case 852: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4272 +//line sql.y:4283 { yyVAL.str = string(yyDollar[3].str) } case 853: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4276 +//line sql.y:4287 { yyVAL.str = string(yyDollar[3].str) } case 854: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4281 +//line sql.y:4292 { yyVAL.str = "" } case 855: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4285 +//line sql.y:4296 { yyVAL.str = yyDollar[3].str } case 856: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4291 +//line sql.y:4302 { yyVAL.str = string(yyDollar[1].str) } case 857: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4295 +//line sql.y:4306 { yyVAL.str = string(yyDollar[1].str) } case 858: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4300 +//line sql.y:4311 { yyVAL.str = "" } case 859: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4304 +//line sql.y:4315 { yyVAL.str = yyDollar[2].str } case 860: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4309 +//line sql.y:4320 { yyVAL.str = "cascaded" } case 861: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4313 +//line sql.y:4324 { yyVAL.str = string(yyDollar[1].str) } case 862: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4317 +//line sql.y:4328 { yyVAL.str = string(yyDollar[1].str) } case 863: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4322 +//line sql.y:4333 { yyVAL.str = "" } case 864: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4326 +//line sql.y:4337 { yyVAL.str = yyDollar[3].str } case 865: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4332 +//line sql.y:4343 { yyVAL.str = string(yyDollar[1].str) } case 866: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4336 +//line sql.y:4347 { yyVAL.str = string(yyDollar[1].str) } case 867: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4340 +//line sql.y:4351 { yyVAL.str = encodeSQLString(yyDollar[1].str) + "@" + string(yyDollar[2].str) } case 868: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4344 +//line sql.y:4355 { yyVAL.str = string(yyDollar[1].str) } case 869: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Lock -//line sql.y:4349 +//line sql.y:4360 { yyLOCAL = NoLock } @@ -12062,7 +12042,7 @@ yydefault: case 870: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Lock -//line sql.y:4353 +//line sql.y:4364 { yyLOCAL = ForUpdateLock } @@ -12070,7 +12050,7 @@ yydefault: case 871: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:4357 +//line sql.y:4368 { yyLOCAL = ShareModeLock } @@ -12078,7 +12058,7 @@ yydefault: case 872: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4362 +//line sql.y:4373 { yyLOCAL = nil } @@ -12086,7 +12066,7 @@ yydefault: case 873: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4366 +//line sql.y:4377 { yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].str, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str} } @@ -12094,7 +12074,7 @@ yydefault: case 874: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4370 +//line sql.y:4381 { yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: "", FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""} } @@ -12102,177 +12082,177 @@ yydefault: case 875: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4374 +//line sql.y:4385 { yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].str, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL case 876: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4379 +//line sql.y:4390 { yyVAL.str = "" } case 877: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4383 +//line sql.y:4394 { yyVAL.str = " format csv" + yyDollar[3].str } case 878: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4387 +//line sql.y:4398 { yyVAL.str = " format text" + yyDollar[3].str } case 879: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4392 +//line sql.y:4403 { yyVAL.str = "" } case 880: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4396 +//line sql.y:4407 { yyVAL.str = " header" } case 881: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4401 +//line sql.y:4412 { yyVAL.str = "" } case 882: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4405 +//line sql.y:4416 { yyVAL.str = " manifest on" } case 883: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4409 +//line sql.y:4420 { yyVAL.str = " manifest off" } case 884: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4414 +//line sql.y:4425 { yyVAL.str = "" } case 885: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4418 +//line sql.y:4429 { yyVAL.str = " overwrite on" } case 886: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4422 +//line sql.y:4433 { yyVAL.str = " overwrite off" } case 887: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4428 +//line sql.y:4439 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } case 888: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4433 +//line sql.y:4444 { yyVAL.str = "" } case 889: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4437 +//line sql.y:4448 { yyVAL.str = " lines" + yyDollar[2].str } case 890: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4443 +//line sql.y:4454 { yyVAL.str = yyDollar[1].str } case 891: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4447 +//line sql.y:4458 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } case 892: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4453 +//line sql.y:4464 { yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str) } case 893: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4457 +//line sql.y:4468 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } case 894: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4462 +//line sql.y:4473 { yyVAL.str = "" } case 895: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4466 +//line sql.y:4477 { yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str } case 896: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4472 +//line sql.y:4483 { yyVAL.str = yyDollar[1].str } case 897: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4476 +//line sql.y:4487 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } case 898: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4482 +//line sql.y:4493 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } case 899: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4486 +//line sql.y:4497 { yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str) } case 900: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4490 +//line sql.y:4501 { yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str) } case 901: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4495 +//line sql.y:4506 { yyVAL.str = "" } case 902: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4499 +//line sql.y:4510 { yyVAL.str = " optionally" } case 903: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Insert -//line sql.y:4512 +//line sql.y:4523 { yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion()} } @@ -12280,7 +12260,7 @@ yydefault: case 904: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Insert -//line sql.y:4516 +//line sql.y:4527 { yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()} } @@ -12288,7 +12268,7 @@ yydefault: case 905: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *Insert -//line sql.y:4520 +//line sql.y:4531 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion()} } @@ -12296,7 +12276,7 @@ yydefault: case 906: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4524 +//line sql.y:4535 { yyLOCAL = &Insert{Rows: yyDollar[4].valuesUnion()} } @@ -12304,7 +12284,7 @@ yydefault: case 907: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4528 +//line sql.y:4539 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()} } @@ -12312,7 +12292,7 @@ yydefault: case 908: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:4534 +//line sql.y:4545 { yyLOCAL = Columns{yyDollar[1].colIdent} } @@ -12320,21 +12300,21 @@ yydefault: case 909: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:4538 +//line sql.y:4549 { yyLOCAL = Columns{yyDollar[3].colIdent} } yyVAL.union = yyLOCAL case 910: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4542 +//line sql.y:4553 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } case 911: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4546 +//line sql.y:4557 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[5].colIdent) @@ -12342,7 +12322,7 @@ yydefault: case 912: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4551 +//line sql.y:4562 { yyLOCAL = nil } @@ -12350,7 +12330,7 @@ yydefault: case 913: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4555 +//line sql.y:4566 { yyLOCAL = yyDollar[5].updateExprsUnion() } @@ -12358,14 +12338,14 @@ yydefault: case 914: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Values -//line sql.y:4561 +//line sql.y:4572 { yyLOCAL = Values{yyDollar[1].valTupleUnion()} } yyVAL.union = yyLOCAL case 915: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4565 +//line sql.y:4576 { yySLICE := (*Values)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion()) @@ -12373,7 +12353,7 @@ yydefault: case 916: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4571 +//line sql.y:4582 { yyLOCAL = yyDollar[1].valTupleUnion() } @@ -12381,7 +12361,7 @@ yydefault: case 917: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4575 +//line sql.y:4586 { yyLOCAL = ValTuple{} } @@ -12389,7 +12369,7 @@ yydefault: case 918: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4581 +//line sql.y:4592 { yyLOCAL = ValTuple(yyDollar[2].exprsUnion()) } @@ -12397,7 +12377,7 @@ yydefault: case 919: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4587 +//line sql.y:4598 { if len(yyDollar[1].valTupleUnion()) == 1 { yyLOCAL = yyDollar[1].valTupleUnion()[0] @@ -12409,14 +12389,14 @@ yydefault: case 920: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4597 +//line sql.y:4608 { yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()} } yyVAL.union = yyLOCAL case 921: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4601 +//line sql.y:4612 { yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion()) @@ -12424,7 +12404,7 @@ yydefault: case 922: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *UpdateExpr -//line sql.y:4607 +//line sql.y:4618 { yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()} } @@ -12432,14 +12412,14 @@ yydefault: case 923: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SetExprs -//line sql.y:4613 +//line sql.y:4624 { yyLOCAL = SetExprs{yyDollar[1].setExprUnion()} } yyVAL.union = yyLOCAL case 924: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4617 +//line sql.y:4628 { yySLICE := (*SetExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].setExprUnion()) @@ -12447,7 +12427,7 @@ yydefault: case 925: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4623 +//line sql.y:4634 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("on")} } @@ -12455,7 +12435,7 @@ yydefault: case 926: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4627 +//line sql.y:4638 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("off")} } @@ -12463,7 +12443,7 @@ yydefault: case 927: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4631 +//line sql.y:4642 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: yyDollar[3].exprUnion()} } @@ -12471,7 +12451,7 @@ yydefault: case 928: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4635 +//line sql.y:4646 { yyLOCAL = &SetExpr{Name: NewColIdent(string(yyDollar[1].str)), Scope: ImplicitScope, Expr: yyDollar[2].exprUnion()} } @@ -12479,7 +12459,7 @@ yydefault: case 929: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4639 +//line sql.y:4650 { yyDollar[2].setExprUnion().Scope = yyDollar[1].scopeUnion() yyLOCAL = yyDollar[2].setExprUnion() @@ -12487,14 +12467,14 @@ yydefault: yyVAL.union = yyLOCAL case 931: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4647 +//line sql.y:4658 { yyVAL.str = "charset" } case 934: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4657 +//line sql.y:4668 { yyLOCAL = NewStrLiteral(yyDollar[1].colIdent.String()) } @@ -12502,7 +12482,7 @@ yydefault: case 935: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4661 +//line sql.y:4672 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } @@ -12510,7 +12490,7 @@ yydefault: case 936: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4665 +//line sql.y:4676 { yyLOCAL = &Default{} } @@ -12518,7 +12498,7 @@ yydefault: case 939: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4674 +//line sql.y:4685 { yyLOCAL = false } @@ -12526,7 +12506,7 @@ yydefault: case 940: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4676 +//line sql.y:4687 { yyLOCAL = true } @@ -12534,7 +12514,7 @@ yydefault: case 941: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4679 +//line sql.y:4690 { yyLOCAL = false } @@ -12542,7 +12522,7 @@ yydefault: case 942: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4681 +//line sql.y:4692 { yyLOCAL = true } @@ -12550,7 +12530,7 @@ yydefault: case 943: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4684 +//line sql.y:4695 { yyLOCAL = false } @@ -12558,7 +12538,7 @@ yydefault: case 944: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line sql.y:4686 +//line sql.y:4697 { yyLOCAL = true } @@ -12566,7 +12546,7 @@ yydefault: case 945: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Ignore -//line sql.y:4689 +//line sql.y:4700 { yyLOCAL = false } @@ -12574,33 +12554,33 @@ yydefault: case 946: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Ignore -//line sql.y:4691 +//line sql.y:4702 { yyLOCAL = true } yyVAL.union = yyLOCAL case 947: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4694 +//line sql.y:4705 { yyVAL.empty = struct{}{} } case 948: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4696 +//line sql.y:4707 { yyVAL.empty = struct{}{} } case 949: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4698 +//line sql.y:4709 { yyVAL.empty = struct{}{} } case 950: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4702 +//line sql.y:4713 { yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()} } @@ -12608,7 +12588,7 @@ yydefault: case 951: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4707 +//line sql.y:4718 { yyLOCAL = nil } @@ -12616,7 +12596,7 @@ yydefault: case 952: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:4711 +//line sql.y:4722 { yyLOCAL = yyDollar[1].exprsUnion() } @@ -12624,7 +12604,7 @@ yydefault: case 953: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4716 +//line sql.y:4727 { yyLOCAL = nil } @@ -12632,7 +12612,7 @@ yydefault: case 954: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4718 +//line sql.y:4729 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } @@ -12640,62 +12620,62 @@ yydefault: case 955: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:4722 +//line sql.y:4733 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].colIdent.String())} } yyVAL.union = yyLOCAL case 956: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4728 +//line sql.y:4739 { yyVAL.colIdent = yyDollar[1].colIdent } case 957: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4732 +//line sql.y:4743 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } case 959: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4739 +//line sql.y:4750 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } case 960: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4745 +//line sql.y:4756 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].colIdent.String())) } case 961: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4749 +//line sql.y:4760 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } case 962: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4754 +//line sql.y:4765 { yyVAL.tableIdent = NewTableIdent("") } case 963: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4758 +//line sql.y:4769 { yyVAL.tableIdent = yyDollar[1].tableIdent } case 965: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4765 +//line sql.y:4776 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } case 1373: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5197 +//line sql.y:5208 { if incNesting(yylex) { yylex.Error("max nesting level reached") @@ -12704,31 +12684,31 @@ yydefault: } case 1374: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5206 +//line sql.y:5217 { decNesting(yylex) } case 1375: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5211 +//line sql.y:5222 { skipToEnd(yylex) } case 1376: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5216 +//line sql.y:5227 { skipToEnd(yylex) } case 1377: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5220 +//line sql.y:5231 { skipToEnd(yylex) } case 1378: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5224 +//line sql.y:5235 { skipToEnd(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index 3924e8ea999..3527d2e1358 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -345,7 +345,7 @@ func bindVariable(yylex yyLexer, bvar string) { %type asc_desc_opt %type limit_opt %type into_option -%type column_type_options +%type opt_column_attribute_list %type header_opt export_options manifest_opt overwrite_opt format_opt optionally_opt %type fields_opts fields_opt_list fields_opt lines_opts lines_opt lines_opt_list %type lock_opt @@ -1015,7 +1015,7 @@ table_column_list: } column_definition: - sql_id column_type column_type_options + sql_id column_type opt_column_attribute_list { $2.Options = $3 $$ = &ColumnDefinition{Name: $1, Type: $2} @@ -1034,67 +1034,78 @@ generated_always_opt: // So in the state "column_type_options UNIQUE. KEY" there is a shift-reduce conflict. // This has been added to emulate what MySQL does. The previous architecture was such that the order of the column options // was specific (as stated in the MySQL guide) and did not accept arbitrary order options. For example NOT NULL DEFAULT 1 and not DEFAULT 1 NOT NULL -column_type_options: +opt_column_attribute_list: { $$ = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil, As: nil} } -| column_type_options NULL +| opt_column_attribute_list NULL { val := true $1.Null = &val $$ = $1 } -| column_type_options NOT NULL +| opt_column_attribute_list NOT NULL { val := false $1.Null = &val $$ = $1 } -| column_type_options DEFAULT value_expression +| opt_column_attribute_list DEFAULT value_expression { $1.Default = $3 $$ = $1 } -| column_type_options generated_always_opt AS value_expression +| opt_column_attribute_list generated_always_opt AS '(' value_expression ')' { - $1.As = $4 + $1.As = $5 $$ = $1 } -| column_type_options ON UPDATE function_call_nonkeyword +| opt_column_attribute_list ON UPDATE function_call_nonkeyword { $1.OnUpdate = $4 $$ = $1 } -| column_type_options AUTO_INCREMENT +| opt_column_attribute_list AUTO_INCREMENT { $1.Autoincrement = true $$ = $1 } -| column_type_options COMMENT_KEYWORD STRING +| opt_column_attribute_list COMMENT_KEYWORD STRING { $1.Comment = NewStrLiteral($3) $$ = $1 } -| column_type_options PRIMARY KEY +| opt_column_attribute_list PRIMARY KEY { $1.KeyOpt = colKeyPrimary $$ = $1 } -| column_type_options KEY +| opt_column_attribute_list KEY { $1.KeyOpt = colKey $$ = $1 } -| column_type_options UNIQUE KEY +| opt_column_attribute_list UNIQUE KEY { $1.KeyOpt = colKeyUniqueKey $$ = $1 } -| column_type_options UNIQUE +| opt_column_attribute_list UNIQUE { $1.KeyOpt = colKeyUnique $$ = $1 } +// +//column_type_options: +// { +// $$ = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil, As: nil} +// } +//| opt_column_attribute_list NULL +// { +// val := true +// $1.Null = &val +// $$ = $1 +// } column_type: numeric_type unsigned_opt zero_fill_opt From 773930a734ab1d5d612cca40a3d6f5ec8e679ea5 Mon Sep 17 00:00:00 2001 From: Florent Poinsard Date: Thu, 13 May 2021 15:53:12 +0200 Subject: [PATCH 38/63] Initial addition of generated column attribute list Signed-off-by: Florent Poinsard --- go/vt/sqlparser/ast.go | 4 + go/vt/sqlparser/ast_equals.go | 1 + go/vt/sqlparser/cached_size.go | 2 +- go/vt/sqlparser/constants.go | 7 + go/vt/sqlparser/sql.go | 10316 ++++++++++++++++--------------- go/vt/sqlparser/sql.y | 84 +- 6 files changed, 5261 insertions(+), 5153 deletions(-) diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index 4942e7a3cc7..14b0a06b84e 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -1501,6 +1501,9 @@ type ColumnType struct { EnumValues []string } +// ColumnStorage is an enum that defines the type of storage. +type ColumnStorage int + // ColumnTypeOptions are generic field options for a column type type ColumnTypeOptions struct { /* We need Null to be *bool to distinguish 3 cases - @@ -1516,6 +1519,7 @@ type ColumnTypeOptions struct { OnUpdate Expr As Expr Comment *Literal + Storage ColumnStorage // Key specification KeyOpt ColumnKeyOption diff --git a/go/vt/sqlparser/ast_equals.go b/go/vt/sqlparser/ast_equals.go index 30158be59f6..4d2fbe19c48 100644 --- a/go/vt/sqlparser/ast_equals.go +++ b/go/vt/sqlparser/ast_equals.go @@ -3767,6 +3767,7 @@ func EqualsRefOfColumnTypeOptions(a, b *ColumnTypeOptions) bool { EqualsExpr(a.OnUpdate, b.OnUpdate) && EqualsExpr(a.As, b.As) && EqualsRefOfLiteral(a.Comment, b.Comment) && + a.Storage == b.Storage && a.KeyOpt == b.KeyOpt } diff --git a/go/vt/sqlparser/cached_size.go b/go/vt/sqlparser/cached_size.go index 4a7a4d3da4a..b467f4cd4bb 100644 --- a/go/vt/sqlparser/cached_size.go +++ b/go/vt/sqlparser/cached_size.go @@ -516,7 +516,7 @@ func (cached *ColumnTypeOptions) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(80) + size += int64(88) } // field Null *bool size += int64(1) diff --git a/go/vt/sqlparser/constants.go b/go/vt/sqlparser/constants.go index 9978de0c4b2..e9f1538b812 100644 --- a/go/vt/sqlparser/constants.go +++ b/go/vt/sqlparser/constants.go @@ -523,3 +523,10 @@ const ( CancelMigrationType CancelAllMigrationType ) + +// ColumnStorage constants +const ( + UndefinedStorage ColumnStorage = iota + VirtualStorage + StoredStorage +) diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index b43fff35883..ebab8386954 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -147,361 +147,363 @@ const IMPORT = 57444 const ENABLE = 57445 const DISABLE = 57446 const TABLESPACE = 57447 -const OR = 57448 -const XOR = 57449 -const AND = 57450 -const NOT = 57451 -const BETWEEN = 57452 -const CASE = 57453 -const WHEN = 57454 -const THEN = 57455 -const ELSE = 57456 -const END = 57457 -const LE = 57458 -const GE = 57459 -const NE = 57460 -const NULL_SAFE_EQUAL = 57461 -const IS = 57462 -const LIKE = 57463 -const REGEXP = 57464 -const IN = 57465 -const SHIFT_LEFT = 57466 -const SHIFT_RIGHT = 57467 -const DIV = 57468 -const MOD = 57469 -const UNARY = 57470 -const COLLATE = 57471 -const BINARY = 57472 -const UNDERSCORE_BINARY = 57473 -const UNDERSCORE_UTF8MB4 = 57474 -const UNDERSCORE_UTF8 = 57475 -const UNDERSCORE_LATIN1 = 57476 -const INTERVAL = 57477 -const JSON_EXTRACT_OP = 57478 -const JSON_UNQUOTE_EXTRACT_OP = 57479 -const CREATE = 57480 -const ALTER = 57481 -const DROP = 57482 -const RENAME = 57483 -const ANALYZE = 57484 -const ADD = 57485 -const FLUSH = 57486 -const CHANGE = 57487 -const MODIFY = 57488 -const REVERT = 57489 -const SCHEMA = 57490 -const TABLE = 57491 -const INDEX = 57492 -const VIEW = 57493 -const TO = 57494 -const IGNORE = 57495 -const IF = 57496 -const UNIQUE = 57497 -const PRIMARY = 57498 -const COLUMN = 57499 -const SPATIAL = 57500 -const FULLTEXT = 57501 -const KEY_BLOCK_SIZE = 57502 -const CHECK = 57503 -const INDEXES = 57504 -const ACTION = 57505 -const CASCADE = 57506 -const CONSTRAINT = 57507 -const FOREIGN = 57508 -const NO = 57509 -const REFERENCES = 57510 -const RESTRICT = 57511 -const SHOW = 57512 -const DESCRIBE = 57513 -const EXPLAIN = 57514 -const DATE = 57515 -const ESCAPE = 57516 -const REPAIR = 57517 -const OPTIMIZE = 57518 -const TRUNCATE = 57519 -const COALESCE = 57520 -const EXCHANGE = 57521 -const REBUILD = 57522 -const PARTITIONING = 57523 -const REMOVE = 57524 -const MAXVALUE = 57525 -const PARTITION = 57526 -const REORGANIZE = 57527 -const LESS = 57528 -const THAN = 57529 -const PROCEDURE = 57530 -const TRIGGER = 57531 -const VINDEX = 57532 -const VINDEXES = 57533 -const DIRECTORY = 57534 -const NAME = 57535 -const UPGRADE = 57536 -const STATUS = 57537 -const VARIABLES = 57538 -const WARNINGS = 57539 -const CASCADED = 57540 -const DEFINER = 57541 -const OPTION = 57542 -const SQL = 57543 -const UNDEFINED = 57544 -const SEQUENCE = 57545 -const MERGE = 57546 -const TEMPORARY = 57547 -const TEMPTABLE = 57548 -const INVOKER = 57549 -const SECURITY = 57550 -const FIRST = 57551 -const AFTER = 57552 -const LAST = 57553 -const VITESS_MIGRATION = 57554 -const CANCEL = 57555 -const RETRY = 57556 -const COMPLETE = 57557 -const BEGIN = 57558 -const START = 57559 -const TRANSACTION = 57560 -const COMMIT = 57561 -const ROLLBACK = 57562 -const SAVEPOINT = 57563 -const RELEASE = 57564 -const WORK = 57565 -const BIT = 57566 -const TINYINT = 57567 -const SMALLINT = 57568 -const MEDIUMINT = 57569 -const INT = 57570 -const INTEGER = 57571 -const BIGINT = 57572 -const INTNUM = 57573 -const REAL = 57574 -const DOUBLE = 57575 -const FLOAT_TYPE = 57576 -const DECIMAL = 57577 -const NUMERIC = 57578 -const TIME = 57579 -const TIMESTAMP = 57580 -const DATETIME = 57581 -const YEAR = 57582 -const CHAR = 57583 -const VARCHAR = 57584 -const BOOL = 57585 -const CHARACTER = 57586 -const VARBINARY = 57587 -const NCHAR = 57588 -const TEXT = 57589 -const TINYTEXT = 57590 -const MEDIUMTEXT = 57591 -const LONGTEXT = 57592 -const BLOB = 57593 -const TINYBLOB = 57594 -const MEDIUMBLOB = 57595 -const LONGBLOB = 57596 -const JSON = 57597 -const ENUM = 57598 -const GEOMETRY = 57599 -const POINT = 57600 -const LINESTRING = 57601 -const POLYGON = 57602 -const GEOMETRYCOLLECTION = 57603 -const MULTIPOINT = 57604 -const MULTILINESTRING = 57605 -const MULTIPOLYGON = 57606 -const NULLX = 57607 -const AUTO_INCREMENT = 57608 -const APPROXNUM = 57609 -const SIGNED = 57610 -const UNSIGNED = 57611 -const ZEROFILL = 57612 -const CODE = 57613 -const COLLATION = 57614 -const COLUMNS = 57615 -const DATABASES = 57616 -const ENGINES = 57617 -const EVENT = 57618 -const EXTENDED = 57619 -const FIELDS = 57620 -const FULL = 57621 -const FUNCTION = 57622 -const GTID_EXECUTED = 57623 -const KEYSPACES = 57624 -const OPEN = 57625 -const PLUGINS = 57626 -const PRIVILEGES = 57627 -const PROCESSLIST = 57628 -const SCHEMAS = 57629 -const TABLES = 57630 -const TRIGGERS = 57631 -const USER = 57632 -const VGTID_EXECUTED = 57633 -const VITESS_KEYSPACES = 57634 -const VITESS_METADATA = 57635 -const VITESS_MIGRATIONS = 57636 -const VITESS_SHARDS = 57637 -const VITESS_TABLETS = 57638 -const VSCHEMA = 57639 -const NAMES = 57640 -const CHARSET = 57641 -const GLOBAL = 57642 -const SESSION = 57643 -const ISOLATION = 57644 -const LEVEL = 57645 -const READ = 57646 -const WRITE = 57647 -const ONLY = 57648 -const REPEATABLE = 57649 -const COMMITTED = 57650 -const UNCOMMITTED = 57651 -const SERIALIZABLE = 57652 -const CURRENT_TIMESTAMP = 57653 -const DATABASE = 57654 -const CURRENT_DATE = 57655 -const CURRENT_TIME = 57656 -const LOCALTIME = 57657 -const LOCALTIMESTAMP = 57658 -const CURRENT_USER = 57659 -const UTC_DATE = 57660 -const UTC_TIME = 57661 -const UTC_TIMESTAMP = 57662 -const REPLACE = 57663 -const CONVERT = 57664 -const CAST = 57665 -const SUBSTR = 57666 -const SUBSTRING = 57667 -const GROUP_CONCAT = 57668 -const SEPARATOR = 57669 -const TIMESTAMPADD = 57670 -const TIMESTAMPDIFF = 57671 -const MATCH = 57672 -const AGAINST = 57673 -const BOOLEAN = 57674 -const LANGUAGE = 57675 -const WITH = 57676 -const QUERY = 57677 -const EXPANSION = 57678 -const WITHOUT = 57679 -const VALIDATION = 57680 -const UNUSED = 57681 -const ARRAY = 57682 -const CUME_DIST = 57683 -const DESCRIPTION = 57684 -const DENSE_RANK = 57685 -const EMPTY = 57686 -const EXCEPT = 57687 -const FIRST_VALUE = 57688 -const GROUPING = 57689 -const GROUPS = 57690 -const JSON_TABLE = 57691 -const LAG = 57692 -const LAST_VALUE = 57693 -const LATERAL = 57694 -const LEAD = 57695 -const MEMBER = 57696 -const NTH_VALUE = 57697 -const NTILE = 57698 -const OF = 57699 -const OVER = 57700 -const PERCENT_RANK = 57701 -const RANK = 57702 -const RECURSIVE = 57703 -const ROW_NUMBER = 57704 -const SYSTEM = 57705 -const WINDOW = 57706 -const ACTIVE = 57707 -const ADMIN = 57708 -const BUCKETS = 57709 -const CLONE = 57710 -const COMPONENT = 57711 -const DEFINITION = 57712 -const ENFORCED = 57713 -const EXCLUDE = 57714 -const FOLLOWING = 57715 -const GEOMCOLLECTION = 57716 -const GET_MASTER_PUBLIC_KEY = 57717 -const HISTOGRAM = 57718 -const HISTORY = 57719 -const INACTIVE = 57720 -const INVISIBLE = 57721 -const LOCKED = 57722 -const MASTER_COMPRESSION_ALGORITHMS = 57723 -const MASTER_PUBLIC_KEY_PATH = 57724 -const MASTER_TLS_CIPHERSUITES = 57725 -const MASTER_ZSTD_COMPRESSION_LEVEL = 57726 -const NESTED = 57727 -const NETWORK_NAMESPACE = 57728 -const NOWAIT = 57729 -const NULLS = 57730 -const OJ = 57731 -const OLD = 57732 -const OPTIONAL = 57733 -const ORDINALITY = 57734 -const ORGANIZATION = 57735 -const OTHERS = 57736 -const PATH = 57737 -const PERSIST = 57738 -const PERSIST_ONLY = 57739 -const PRECEDING = 57740 -const PRIVILEGE_CHECKS_USER = 57741 -const PROCESS = 57742 -const RANDOM = 57743 -const REFERENCE = 57744 -const REQUIRE_ROW_FORMAT = 57745 -const RESOURCE = 57746 -const RESPECT = 57747 -const RESTART = 57748 -const RETAIN = 57749 -const REUSE = 57750 -const ROLE = 57751 -const SECONDARY = 57752 -const SECONDARY_ENGINE = 57753 -const SECONDARY_LOAD = 57754 -const SECONDARY_UNLOAD = 57755 -const SKIP = 57756 -const SRID = 57757 -const THREAD_PRIORITY = 57758 -const TIES = 57759 -const UNBOUNDED = 57760 -const VCPU = 57761 -const VISIBLE = 57762 -const FORMAT = 57763 -const TREE = 57764 -const VITESS = 57765 -const TRADITIONAL = 57766 -const LOCAL = 57767 -const LOW_PRIORITY = 57768 -const NO_WRITE_TO_BINLOG = 57769 -const LOGS = 57770 -const ERROR = 57771 -const GENERAL = 57772 -const HOSTS = 57773 -const OPTIMIZER_COSTS = 57774 -const USER_RESOURCES = 57775 -const SLOW = 57776 -const CHANNEL = 57777 -const RELAY = 57778 -const EXPORT = 57779 -const AVG_ROW_LENGTH = 57780 -const CONNECTION = 57781 -const CHECKSUM = 57782 -const DELAY_KEY_WRITE = 57783 -const ENCRYPTION = 57784 -const ENGINE = 57785 -const INSERT_METHOD = 57786 -const MAX_ROWS = 57787 -const MIN_ROWS = 57788 -const PACK_KEYS = 57789 -const PASSWORD = 57790 -const FIXED = 57791 -const DYNAMIC = 57792 -const COMPRESSED = 57793 -const REDUNDANT = 57794 -const COMPACT = 57795 -const ROW_FORMAT = 57796 -const STATS_AUTO_RECALC = 57797 -const STATS_PERSISTENT = 57798 -const STATS_SAMPLE_PAGES = 57799 -const STORAGE = 57800 -const MEMORY = 57801 -const DISK = 57802 +const VIRTUAL = 57448 +const STORED = 57449 +const OR = 57450 +const XOR = 57451 +const AND = 57452 +const NOT = 57453 +const BETWEEN = 57454 +const CASE = 57455 +const WHEN = 57456 +const THEN = 57457 +const ELSE = 57458 +const END = 57459 +const LE = 57460 +const GE = 57461 +const NE = 57462 +const NULL_SAFE_EQUAL = 57463 +const IS = 57464 +const LIKE = 57465 +const REGEXP = 57466 +const IN = 57467 +const SHIFT_LEFT = 57468 +const SHIFT_RIGHT = 57469 +const DIV = 57470 +const MOD = 57471 +const UNARY = 57472 +const COLLATE = 57473 +const BINARY = 57474 +const UNDERSCORE_BINARY = 57475 +const UNDERSCORE_UTF8MB4 = 57476 +const UNDERSCORE_UTF8 = 57477 +const UNDERSCORE_LATIN1 = 57478 +const INTERVAL = 57479 +const JSON_EXTRACT_OP = 57480 +const JSON_UNQUOTE_EXTRACT_OP = 57481 +const CREATE = 57482 +const ALTER = 57483 +const DROP = 57484 +const RENAME = 57485 +const ANALYZE = 57486 +const ADD = 57487 +const FLUSH = 57488 +const CHANGE = 57489 +const MODIFY = 57490 +const REVERT = 57491 +const SCHEMA = 57492 +const TABLE = 57493 +const INDEX = 57494 +const VIEW = 57495 +const TO = 57496 +const IGNORE = 57497 +const IF = 57498 +const UNIQUE = 57499 +const PRIMARY = 57500 +const COLUMN = 57501 +const SPATIAL = 57502 +const FULLTEXT = 57503 +const KEY_BLOCK_SIZE = 57504 +const CHECK = 57505 +const INDEXES = 57506 +const ACTION = 57507 +const CASCADE = 57508 +const CONSTRAINT = 57509 +const FOREIGN = 57510 +const NO = 57511 +const REFERENCES = 57512 +const RESTRICT = 57513 +const SHOW = 57514 +const DESCRIBE = 57515 +const EXPLAIN = 57516 +const DATE = 57517 +const ESCAPE = 57518 +const REPAIR = 57519 +const OPTIMIZE = 57520 +const TRUNCATE = 57521 +const COALESCE = 57522 +const EXCHANGE = 57523 +const REBUILD = 57524 +const PARTITIONING = 57525 +const REMOVE = 57526 +const MAXVALUE = 57527 +const PARTITION = 57528 +const REORGANIZE = 57529 +const LESS = 57530 +const THAN = 57531 +const PROCEDURE = 57532 +const TRIGGER = 57533 +const VINDEX = 57534 +const VINDEXES = 57535 +const DIRECTORY = 57536 +const NAME = 57537 +const UPGRADE = 57538 +const STATUS = 57539 +const VARIABLES = 57540 +const WARNINGS = 57541 +const CASCADED = 57542 +const DEFINER = 57543 +const OPTION = 57544 +const SQL = 57545 +const UNDEFINED = 57546 +const SEQUENCE = 57547 +const MERGE = 57548 +const TEMPORARY = 57549 +const TEMPTABLE = 57550 +const INVOKER = 57551 +const SECURITY = 57552 +const FIRST = 57553 +const AFTER = 57554 +const LAST = 57555 +const VITESS_MIGRATION = 57556 +const CANCEL = 57557 +const RETRY = 57558 +const COMPLETE = 57559 +const BEGIN = 57560 +const START = 57561 +const TRANSACTION = 57562 +const COMMIT = 57563 +const ROLLBACK = 57564 +const SAVEPOINT = 57565 +const RELEASE = 57566 +const WORK = 57567 +const BIT = 57568 +const TINYINT = 57569 +const SMALLINT = 57570 +const MEDIUMINT = 57571 +const INT = 57572 +const INTEGER = 57573 +const BIGINT = 57574 +const INTNUM = 57575 +const REAL = 57576 +const DOUBLE = 57577 +const FLOAT_TYPE = 57578 +const DECIMAL = 57579 +const NUMERIC = 57580 +const TIME = 57581 +const TIMESTAMP = 57582 +const DATETIME = 57583 +const YEAR = 57584 +const CHAR = 57585 +const VARCHAR = 57586 +const BOOL = 57587 +const CHARACTER = 57588 +const VARBINARY = 57589 +const NCHAR = 57590 +const TEXT = 57591 +const TINYTEXT = 57592 +const MEDIUMTEXT = 57593 +const LONGTEXT = 57594 +const BLOB = 57595 +const TINYBLOB = 57596 +const MEDIUMBLOB = 57597 +const LONGBLOB = 57598 +const JSON = 57599 +const ENUM = 57600 +const GEOMETRY = 57601 +const POINT = 57602 +const LINESTRING = 57603 +const POLYGON = 57604 +const GEOMETRYCOLLECTION = 57605 +const MULTIPOINT = 57606 +const MULTILINESTRING = 57607 +const MULTIPOLYGON = 57608 +const NULLX = 57609 +const AUTO_INCREMENT = 57610 +const APPROXNUM = 57611 +const SIGNED = 57612 +const UNSIGNED = 57613 +const ZEROFILL = 57614 +const CODE = 57615 +const COLLATION = 57616 +const COLUMNS = 57617 +const DATABASES = 57618 +const ENGINES = 57619 +const EVENT = 57620 +const EXTENDED = 57621 +const FIELDS = 57622 +const FULL = 57623 +const FUNCTION = 57624 +const GTID_EXECUTED = 57625 +const KEYSPACES = 57626 +const OPEN = 57627 +const PLUGINS = 57628 +const PRIVILEGES = 57629 +const PROCESSLIST = 57630 +const SCHEMAS = 57631 +const TABLES = 57632 +const TRIGGERS = 57633 +const USER = 57634 +const VGTID_EXECUTED = 57635 +const VITESS_KEYSPACES = 57636 +const VITESS_METADATA = 57637 +const VITESS_MIGRATIONS = 57638 +const VITESS_SHARDS = 57639 +const VITESS_TABLETS = 57640 +const VSCHEMA = 57641 +const NAMES = 57642 +const CHARSET = 57643 +const GLOBAL = 57644 +const SESSION = 57645 +const ISOLATION = 57646 +const LEVEL = 57647 +const READ = 57648 +const WRITE = 57649 +const ONLY = 57650 +const REPEATABLE = 57651 +const COMMITTED = 57652 +const UNCOMMITTED = 57653 +const SERIALIZABLE = 57654 +const CURRENT_TIMESTAMP = 57655 +const DATABASE = 57656 +const CURRENT_DATE = 57657 +const CURRENT_TIME = 57658 +const LOCALTIME = 57659 +const LOCALTIMESTAMP = 57660 +const CURRENT_USER = 57661 +const UTC_DATE = 57662 +const UTC_TIME = 57663 +const UTC_TIMESTAMP = 57664 +const REPLACE = 57665 +const CONVERT = 57666 +const CAST = 57667 +const SUBSTR = 57668 +const SUBSTRING = 57669 +const GROUP_CONCAT = 57670 +const SEPARATOR = 57671 +const TIMESTAMPADD = 57672 +const TIMESTAMPDIFF = 57673 +const MATCH = 57674 +const AGAINST = 57675 +const BOOLEAN = 57676 +const LANGUAGE = 57677 +const WITH = 57678 +const QUERY = 57679 +const EXPANSION = 57680 +const WITHOUT = 57681 +const VALIDATION = 57682 +const UNUSED = 57683 +const ARRAY = 57684 +const CUME_DIST = 57685 +const DESCRIPTION = 57686 +const DENSE_RANK = 57687 +const EMPTY = 57688 +const EXCEPT = 57689 +const FIRST_VALUE = 57690 +const GROUPING = 57691 +const GROUPS = 57692 +const JSON_TABLE = 57693 +const LAG = 57694 +const LAST_VALUE = 57695 +const LATERAL = 57696 +const LEAD = 57697 +const MEMBER = 57698 +const NTH_VALUE = 57699 +const NTILE = 57700 +const OF = 57701 +const OVER = 57702 +const PERCENT_RANK = 57703 +const RANK = 57704 +const RECURSIVE = 57705 +const ROW_NUMBER = 57706 +const SYSTEM = 57707 +const WINDOW = 57708 +const ACTIVE = 57709 +const ADMIN = 57710 +const BUCKETS = 57711 +const CLONE = 57712 +const COMPONENT = 57713 +const DEFINITION = 57714 +const ENFORCED = 57715 +const EXCLUDE = 57716 +const FOLLOWING = 57717 +const GEOMCOLLECTION = 57718 +const GET_MASTER_PUBLIC_KEY = 57719 +const HISTOGRAM = 57720 +const HISTORY = 57721 +const INACTIVE = 57722 +const INVISIBLE = 57723 +const LOCKED = 57724 +const MASTER_COMPRESSION_ALGORITHMS = 57725 +const MASTER_PUBLIC_KEY_PATH = 57726 +const MASTER_TLS_CIPHERSUITES = 57727 +const MASTER_ZSTD_COMPRESSION_LEVEL = 57728 +const NESTED = 57729 +const NETWORK_NAMESPACE = 57730 +const NOWAIT = 57731 +const NULLS = 57732 +const OJ = 57733 +const OLD = 57734 +const OPTIONAL = 57735 +const ORDINALITY = 57736 +const ORGANIZATION = 57737 +const OTHERS = 57738 +const PATH = 57739 +const PERSIST = 57740 +const PERSIST_ONLY = 57741 +const PRECEDING = 57742 +const PRIVILEGE_CHECKS_USER = 57743 +const PROCESS = 57744 +const RANDOM = 57745 +const REFERENCE = 57746 +const REQUIRE_ROW_FORMAT = 57747 +const RESOURCE = 57748 +const RESPECT = 57749 +const RESTART = 57750 +const RETAIN = 57751 +const REUSE = 57752 +const ROLE = 57753 +const SECONDARY = 57754 +const SECONDARY_ENGINE = 57755 +const SECONDARY_LOAD = 57756 +const SECONDARY_UNLOAD = 57757 +const SKIP = 57758 +const SRID = 57759 +const THREAD_PRIORITY = 57760 +const TIES = 57761 +const UNBOUNDED = 57762 +const VCPU = 57763 +const VISIBLE = 57764 +const FORMAT = 57765 +const TREE = 57766 +const VITESS = 57767 +const TRADITIONAL = 57768 +const LOCAL = 57769 +const LOW_PRIORITY = 57770 +const NO_WRITE_TO_BINLOG = 57771 +const LOGS = 57772 +const ERROR = 57773 +const GENERAL = 57774 +const HOSTS = 57775 +const OPTIMIZER_COSTS = 57776 +const USER_RESOURCES = 57777 +const SLOW = 57778 +const CHANNEL = 57779 +const RELAY = 57780 +const EXPORT = 57781 +const AVG_ROW_LENGTH = 57782 +const CONNECTION = 57783 +const CHECKSUM = 57784 +const DELAY_KEY_WRITE = 57785 +const ENCRYPTION = 57786 +const ENGINE = 57787 +const INSERT_METHOD = 57788 +const MAX_ROWS = 57789 +const MIN_ROWS = 57790 +const PACK_KEYS = 57791 +const PASSWORD = 57792 +const FIXED = 57793 +const DYNAMIC = 57794 +const COMPRESSED = 57795 +const REDUNDANT = 57796 +const COMPACT = 57797 +const ROW_FORMAT = 57798 +const STATS_AUTO_RECALC = 57799 +const STATS_PERSISTENT = 57800 +const STATS_SAMPLE_PAGES = 57801 +const STORAGE = 57802 +const MEMORY = 57803 +const DISK = 57804 var yyToknames = [...]string{ "$end", @@ -612,6 +614,8 @@ var yyToknames = [...]string{ "ENABLE", "DISABLE", "TABLESPACE", + "VIRTUAL", + "STORED", "OR", "XOR", "AND", @@ -997,867 +1001,706 @@ var yyExca = [...]int{ -2, 0, -1, 45, 1, 112, - 478, 112, + 480, 112, -2, 118, -1, 46, - 145, 118, - 261, 118, - 316, 118, - -2, 329, + 147, 118, + 263, 118, + 318, 118, + -2, 333, -1, 53, - 34, 477, - 167, 477, - 179, 477, - 212, 491, - 213, 491, - -2, 479, + 34, 481, + 169, 481, + 181, 481, + 214, 495, + 215, 495, + -2, 483, -1, 58, - 169, 501, - -2, 499, + 171, 505, + -2, 503, -1, 84, - 58, 569, - -2, 577, + 58, 573, + -2, 581, -1, 97, - 166, 939, + 168, 943, -2, 91, -1, 99, 1, 113, - 478, 113, + 480, 113, -2, 118, -1, 109, - 172, 234, - 173, 234, - -2, 323, + 174, 238, + 175, 238, + -2, 327, -1, 128, - 145, 118, - 261, 118, - 316, 118, - -2, 338, + 147, 118, + 263, 118, + 318, 118, + -2, 342, -1, 564, - 152, 960, - -2, 956, + 154, 964, + -2, 960, -1, 565, - 152, 961, - -2, 957, + 154, 965, + -2, 961, -1, 584, - 58, 570, - -2, 582, + 58, 574, + -2, 586, -1, 585, - 58, 571, - -2, 583, + 58, 575, + -2, 587, -1, 606, - 120, 1307, + 122, 1311, -2, 84, -1, 607, - 120, 1188, + 122, 1192, -2, 85, -1, 613, - 120, 1239, - -2, 933, + 122, 1243, + -2, 937, -1, 752, - 120, 1125, - -2, 930, + 122, 1129, + -2, 934, -1, 788, - 178, 38, - 183, 38, - -2, 245, + 180, 38, + 185, 38, + -2, 249, -1, 865, - 1, 376, - 478, 376, + 1, 380, + 480, 380, -2, 118, -1, 1106, - 1, 272, - 478, 272, + 1, 276, + 480, 276, -2, 118, + -1, 1109, + 23, 137, + -2, 139, -1, 1182, - 172, 234, - 173, 234, - -2, 323, + 174, 238, + 175, 238, + -2, 327, -1, 1191, - 178, 39, - 183, 39, - -2, 246, + 180, 39, + 185, 39, + -2, 250, -1, 1399, - 152, 965, - -2, 959, + 154, 969, + -2, 963, -1, 1492, 76, 66, 84, 66, -2, 70, -1, 1513, - 1, 273, - 478, 273, + 1, 277, + 480, 277, -2, 118, - -1, 1520, - 23, 136, - -2, 135, - -1, 1938, - 5, 826, - 18, 826, - 20, 826, - 32, 826, - 85, 826, - -2, 609, - -1, 2167, - 48, 901, - -2, 895, + -1, 1940, + 5, 830, + 18, 830, + 20, 830, + 32, 830, + 85, 830, + -2, 613, + -1, 2168, + 48, 905, + -2, 899, } const yyPrivate = 57344 -const yyLast = 28131 +const yyLast = 28495 var yyAct = [...]int{ - 564, 2262, 2253, 2091, 2208, 2195, 2145, 1997, 1729, 2168, - 2116, 2221, 83, 3, 1918, 1696, 536, 1815, 1578, 925, - 2088, 1510, 1919, 1436, 1007, 1061, 1730, 1543, 1054, 1915, - 522, 1795, 1819, 1858, 876, 1716, 505, 1548, 1563, 818, - 1797, 755, 1796, 137, 502, 1489, 1930, 1877, 1088, 165, - 1393, 1576, 165, 1656, 470, 165, 1297, 783, 123, 81, - 486, 507, 165, 1385, 1609, 1789, 611, 1098, 1562, 577, - 165, 1550, 1091, 905, 1064, 1189, 1471, 1478, 1059, 1081, - 586, 1438, 1082, 1084, 1046, 1362, 1528, 1207, 33, 571, - 498, 943, 486, 509, 1419, 486, 165, 486, 1294, 789, - 762, 786, 1494, 1196, 1560, 1280, 1454, 1539, 784, 785, - 1071, 608, 1396, 79, 759, 923, 1097, 763, 1095, 100, - 140, 101, 861, 1181, 106, 796, 1020, 8, 7, 6, - 1158, 78, 1163, 1023, 1302, 1838, 1837, 1607, 1266, 493, - 107, 1865, 1866, 167, 168, 169, 1351, 2118, 1433, 1434, - 1350, 1349, 756, 1348, 1347, 1346, 496, 1339, 497, 2235, - 1529, 593, 597, 1694, 771, 820, 102, 766, 572, 2164, - 108, 2067, 823, 2141, 2140, 822, 821, 1966, 834, 835, - 2256, 838, 839, 840, 841, 1555, 2261, 844, 845, 846, + 564, 2266, 2257, 1998, 2092, 2212, 2169, 1731, 1817, 2146, + 1698, 2117, 83, 3, 1920, 1580, 536, 2196, 2089, 522, + 2225, 1436, 1921, 1061, 577, 1732, 1510, 1054, 1007, 1917, + 1545, 925, 1163, 1860, 1821, 1550, 505, 1797, 1565, 818, + 1718, 1932, 1798, 1385, 507, 1799, 755, 502, 137, 165, + 1489, 1393, 165, 1879, 470, 165, 1658, 81, 876, 1297, + 486, 1578, 165, 123, 1189, 611, 1564, 1098, 1088, 905, + 165, 1552, 1791, 783, 1091, 1611, 1471, 1478, 586, 1064, + 1059, 1438, 1084, 1419, 1046, 571, 509, 1207, 1362, 1081, + 33, 943, 486, 1294, 498, 486, 165, 486, 759, 789, + 1082, 762, 1562, 1280, 1454, 784, 785, 763, 1097, 1541, + 796, 1095, 786, 1071, 1494, 79, 1302, 923, 140, 100, + 101, 1531, 861, 608, 1196, 1530, 1020, 8, 7, 6, + 1158, 1840, 1839, 1023, 78, 1609, 1266, 1867, 493, 1181, + 106, 107, 1868, 167, 168, 169, 1433, 1434, 1351, 2119, + 1350, 1349, 1348, 1347, 1346, 496, 1339, 497, 2239, 1696, + 2165, 1967, 766, 2068, 102, 820, 593, 597, 756, 2142, + 572, 771, 2141, 2087, 822, 445, 2088, 823, 834, 835, + 944, 838, 839, 840, 841, 821, 108, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, - 857, 858, 84, 494, 2086, 2218, 1553, 2087, 944, 2190, - 605, 1646, 799, 2249, 445, 2092, 1595, 2217, 2189, 777, - 102, 776, 1894, 80, 2030, 944, 1172, 1945, 1946, 1695, - 1845, 824, 825, 826, 1844, 775, 800, 870, 871, 86, - 87, 88, 89, 90, 91, 1944, 595, 97, 1505, 1506, - 162, 35, 612, 440, 72, 39, 40, 912, 1760, 914, - 161, 1759, 831, 778, 1761, 1099, 1864, 1100, 1644, 1504, - 1435, 864, 895, 570, 954, 1495, 474, 772, 568, 567, - 896, 1779, 1522, 2021, 102, 103, 1552, 125, 837, 889, - 779, 954, 773, 167, 168, 169, 911, 913, 145, 2019, - 549, 836, 555, 556, 553, 554, 883, 552, 551, 550, - 1338, 884, 499, 1999, 900, 901, 484, 557, 558, 882, - 2192, 881, 921, 488, 1340, 1341, 1342, 860, 71, 135, - 482, 473, 883, 775, 124, 767, 1286, 884, 1820, 1050, - 770, 2255, 1577, 769, 768, 1620, 1618, 1619, 1841, 1256, - 1281, 1622, 142, 1623, 143, 1624, 897, 775, 859, 112, - 113, 134, 133, 160, 950, 890, 1610, 942, 2154, 969, - 968, 978, 979, 971, 972, 973, 974, 975, 976, 977, - 970, 950, 1615, 980, 909, 918, 2236, 1993, 910, 2000, - 773, 1257, 904, 1258, 866, 1994, 898, 899, 915, 774, - 902, 2001, 1614, 1853, 474, 1625, 474, 843, 842, 1612, - 903, 129, 110, 136, 117, 109, 2137, 130, 131, 920, - 908, 863, 146, 2081, 1579, 807, 805, 1472, 816, 815, - 814, 813, 151, 118, 812, 811, 1616, 1175, 810, 817, - 165, 809, 165, 1613, 804, 165, 780, 121, 119, 114, - 115, 116, 120, 1965, 2138, 2268, 2247, 111, 760, 473, - 1554, 473, 760, 916, 1195, 1194, 122, 792, 474, 1495, - 1857, 486, 486, 486, 791, 760, 1287, 1295, 1843, 758, - 1561, 879, 599, 885, 886, 887, 888, 798, 1854, 486, - 486, 1601, 1291, 1697, 1699, 2188, 930, 774, 827, 1973, - 1840, 798, 917, 936, 922, 1878, 862, 949, 946, 947, - 948, 953, 955, 952, 1903, 951, 1902, 798, 808, 806, - 2266, 774, 945, 473, 949, 946, 947, 948, 953, 955, - 952, 1901, 951, 1170, 2193, 1169, 1168, 1830, 138, 945, - 919, 1292, 1645, 1166, 444, 439, 1597, 1852, 798, 1880, - 1851, 992, 993, 2175, 798, 994, 995, 996, 997, 998, - 999, 1000, 1001, 1002, 1003, 2050, 1860, 1860, 165, 2209, - 1943, 1859, 1859, 1721, 1268, 1267, 1269, 1270, 1271, 99, - 1675, 1775, 1769, 73, 1664, 1587, 1052, 927, 928, 2155, - 1698, 1777, 1500, 1075, 132, 880, 486, 1051, 990, 165, - 1005, 165, 165, 874, 486, 872, 126, 1511, 869, 127, - 486, 1882, 893, 1886, 980, 1881, 1756, 1879, 939, 937, - 938, 1672, 1884, 608, 906, 797, 1008, 1771, 1303, 833, - 1450, 1883, 791, 794, 795, 798, 760, 878, 957, 797, - 788, 792, 1369, 960, 1885, 1887, 1080, 970, 1334, 1773, - 980, 1047, 1767, 2184, 960, 797, 1367, 1368, 1366, 787, - 94, 801, 791, 819, 1768, 1928, 1611, 1065, 1288, 1285, - 2264, 802, 1596, 2265, 1101, 2263, 1022, 1025, 1027, 1029, - 1030, 1032, 1034, 1035, 1026, 1028, 797, 1031, 1033, 803, - 1036, 940, 797, 791, 794, 795, 1063, 760, 801, 791, - 1896, 788, 792, 1420, 1808, 95, 1044, 1420, 802, 1682, + 857, 858, 494, 605, 2265, 2222, 1648, 2260, 80, 2191, + 1396, 2253, 944, 612, 2093, 84, 1597, 2221, 102, 777, + 776, 800, 2190, 799, 778, 2155, 969, 968, 978, 979, + 971, 972, 973, 974, 975, 976, 977, 970, 1896, 2031, + 980, 1172, 824, 825, 826, 1847, 954, 831, 1557, 1846, + 772, 1697, 86, 87, 88, 89, 90, 91, 161, 1099, + 97, 1100, 836, 162, 895, 912, 440, 914, 1435, 1555, + 1495, 1946, 549, 1866, 555, 556, 553, 554, 954, 552, + 551, 550, 102, 103, 1646, 125, 570, 1504, 35, 557, + 558, 72, 39, 40, 837, 1762, 145, 775, 1761, 870, + 871, 1763, 1947, 1948, 911, 913, 775, 779, 767, 1505, + 1506, 474, 921, 770, 568, 567, 769, 768, 896, 167, + 168, 169, 889, 1340, 1341, 1342, 1781, 135, 883, 1524, + 900, 901, 124, 884, 860, 883, 950, 2193, 2022, 942, + 884, 882, 2020, 881, 2000, 484, 864, 1338, 482, 488, + 142, 1554, 143, 1256, 773, 1286, 1050, 112, 113, 134, + 133, 160, 1822, 773, 1579, 71, 473, 1994, 950, 1622, + 1620, 1621, 1843, 1617, 1624, 1995, 1625, 1612, 1626, 918, + 2259, 1281, 898, 899, 904, 2240, 866, 1855, 1627, 843, + 842, 2002, 909, 1614, 897, 1257, 910, 1258, 890, 2138, + 1616, 2082, 1581, 1472, 807, 805, 915, 816, 780, 920, + 474, 129, 110, 136, 117, 109, 902, 130, 131, 815, + 2001, 814, 146, 474, 813, 812, 903, 1618, 908, 811, + 810, 809, 151, 118, 775, 859, 1175, 1966, 804, 817, + 165, 1615, 165, 2139, 1495, 165, 2156, 121, 119, 114, + 115, 116, 120, 1859, 760, 2272, 2270, 111, 760, 792, + 2251, 774, 758, 916, 760, 473, 122, 1195, 1194, 1974, + 774, 486, 486, 486, 791, 1295, 1563, 599, 473, 949, + 946, 947, 948, 953, 955, 952, 798, 951, 1856, 486, + 486, 1603, 893, 1291, 945, 1845, 474, 1287, 863, 808, + 806, 2189, 930, 936, 917, 879, 827, 885, 886, 887, + 888, 949, 946, 947, 948, 953, 955, 952, 833, 951, + 1842, 1905, 1699, 1701, 798, 1556, 945, 798, 922, 2176, + 1904, 1903, 1170, 1169, 1168, 1880, 919, 2051, 138, 1647, + 1832, 1292, 1166, 1862, 444, 439, 1776, 1771, 1861, 992, + 993, 473, 1862, 2194, 1945, 1723, 2213, 1861, 994, 995, + 996, 997, 998, 999, 1000, 1001, 1002, 1003, 165, 1854, + 99, 1285, 1853, 1666, 1268, 1267, 1269, 1270, 1271, 1882, + 1599, 1589, 1500, 862, 798, 1075, 1052, 1005, 874, 927, + 928, 990, 1772, 1677, 132, 1051, 486, 880, 774, 165, + 1674, 165, 165, 869, 486, 798, 126, 1511, 2268, 127, + 486, 2269, 872, 2267, 1774, 980, 798, 1769, 939, 937, + 938, 1700, 73, 1758, 1450, 878, 797, 892, 1008, 906, + 1334, 1770, 801, 791, 970, 608, 960, 980, 957, 894, + 1303, 1884, 802, 1888, 2185, 1883, 819, 1881, 1930, 1613, + 1047, 1080, 1886, 1282, 960, 1283, 959, 957, 1284, 1288, + 803, 1885, 94, 1101, 797, 1065, 832, 797, 167, 168, + 169, 1898, 1387, 960, 1887, 1889, 1022, 1025, 1027, 1029, + 1030, 1032, 1034, 1035, 1026, 1028, 940, 1031, 1033, 1420, + 1036, 1777, 1775, 969, 968, 978, 979, 971, 972, 973, + 974, 975, 976, 977, 970, 1044, 1810, 980, 1598, 95, 139, 144, 141, 147, 148, 149, 150, 152, 153, 154, - 155, 992, 993, 1589, 1776, 1774, 156, 157, 158, 159, - 969, 968, 978, 979, 971, 972, 973, 974, 975, 976, - 977, 970, 907, 865, 980, 892, 1304, 1593, 961, 1282, - 1594, 1283, 877, 1592, 1284, 165, 807, 894, 805, 1159, - 1455, 1456, 992, 993, 612, 1649, 1650, 1651, 1167, 1948, - 167, 168, 169, 797, 1387, 832, 1589, 1053, 973, 974, - 975, 976, 977, 970, 499, 1068, 980, 486, 2066, 1191, - 1657, 959, 957, 1018, 1357, 1359, 1360, 1200, 2065, 2269, - 1591, 1204, 1971, 1793, 486, 486, 1358, 486, 960, 486, - 486, 71, 486, 486, 486, 486, 486, 486, 1173, 1174, - 167, 168, 169, 1365, 1784, 1057, 1060, 486, 1187, 1275, - 1388, 165, 1240, 1096, 1273, 1772, 1905, 1792, 2250, 1794, - 1671, 1180, 2241, 1558, 958, 959, 957, 1253, 1276, 971, - 972, 973, 974, 975, 976, 977, 970, 598, 486, 980, - 165, 1201, 960, 958, 959, 957, 2251, 1261, 1237, 2270, - 2242, 1293, 1199, 1260, 1259, 165, 1243, 1244, 1263, 1251, - 1785, 960, 1249, 1250, 1906, 2245, 1235, 1236, 1165, 1245, - 1274, 165, 1209, 1242, 1210, 1272, 1212, 1214, 165, 1198, - 1218, 1220, 1222, 1224, 1226, 1177, 1178, 165, 165, 165, + 155, 1420, 1596, 1684, 797, 612, 156, 157, 158, 159, + 1388, 791, 794, 795, 865, 760, 992, 993, 1591, 788, + 792, 1594, 877, 992, 993, 797, 167, 168, 169, 907, + 1786, 801, 791, 1659, 1870, 165, 797, 807, 787, 1159, + 1304, 802, 1595, 791, 794, 795, 805, 760, 1167, 1591, + 2254, 788, 792, 1950, 969, 968, 978, 979, 971, 972, + 973, 974, 975, 976, 977, 970, 1068, 486, 980, 1191, + 1053, 2206, 2207, 1593, 1063, 598, 2067, 1200, 2255, 71, + 2066, 1204, 1773, 1972, 486, 486, 1795, 486, 1787, 486, + 486, 1365, 486, 486, 486, 486, 486, 486, 1173, 1174, + 973, 974, 975, 976, 977, 970, 1794, 486, 980, 2273, + 1560, 165, 1240, 1187, 1369, 971, 972, 973, 974, 975, + 976, 977, 970, 2249, 1201, 980, 1180, 1253, 1367, 1368, + 1366, 1651, 1652, 1653, 958, 959, 957, 1673, 486, 2245, + 165, 1199, 1900, 958, 959, 957, 1357, 1359, 1360, 1235, + 1236, 1293, 960, 1237, 1276, 165, 1243, 1244, 1275, 581, + 1358, 960, 1249, 1250, 1261, 600, 601, 2246, 1165, 1260, + 1096, 165, 1209, 1273, 1210, 1263, 1212, 1214, 165, 2274, + 1218, 1220, 1222, 1224, 1226, 1197, 1197, 165, 165, 165, 165, 165, 165, 165, 165, 165, 486, 486, 486, 1190, - 1197, 1197, 1176, 1241, 1307, 603, 958, 959, 957, 1216, - 2244, 1311, 2243, 1313, 1314, 1315, 1316, 2229, 1996, 1262, - 1320, 1299, 2227, 165, 960, 2107, 581, 600, 601, 2063, - 958, 959, 957, 2038, 1335, 1305, 1306, 968, 978, 979, - 971, 972, 973, 974, 975, 976, 977, 970, 960, 1310, - 980, 1296, 1952, 1907, 1171, 1802, 1317, 1318, 1319, 1790, - 1363, 1386, 167, 168, 169, 777, 102, 776, 1238, 1640, - 1389, 1345, 969, 968, 978, 979, 971, 972, 973, 974, - 975, 976, 977, 970, 486, 1605, 980, 1361, 1604, 1444, - 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, - 1380, 1381, 1382, 1383, 1384, 1397, 1309, 1300, 1264, 1390, - 1391, 1330, 1331, 1332, 1403, 1252, 1248, 1247, 486, 486, - 1246, 1980, 2246, 958, 959, 957, 1980, 2215, 581, 165, - 1670, 1898, 2135, 1452, 1980, 2182, 2134, 1364, 1669, 1980, - 2176, 960, 1398, 486, 167, 168, 169, 2090, 1763, 1423, - 165, 80, 1399, 486, 1443, 1408, 1411, 165, 1822, 165, - 1008, 1421, 1805, 958, 959, 957, 1519, 165, 165, 1980, - 581, 1427, 1428, 1717, 486, 1397, 1916, 486, 1927, 1490, - 2207, 960, 167, 168, 169, 1927, 1571, 1750, 486, 1474, - 167, 168, 169, 608, 1569, 1495, 608, 2045, 1451, 1590, - 1400, 1445, 1404, 1405, 2183, 1301, 1410, 1413, 1414, 2084, - 581, 1457, 1469, 167, 168, 169, 1493, 1254, 1980, 2082, - 1589, 581, 1399, 958, 959, 957, 1465, 2048, 581, 1515, - 1514, 581, 1426, 1963, 1962, 1429, 1430, 1959, 1960, 1959, - 1958, 960, 1475, 486, 1475, 1518, 1463, 581, 1496, 1564, - 1565, 1566, 1717, 956, 1568, 1570, 1589, 525, 524, 527, - 528, 529, 530, 1467, 1496, 1545, 526, 486, 531, 1495, - 1839, 1980, 1498, 486, 1200, 1162, 1824, 1200, 35, 1200, - 1551, 1817, 1818, 1352, 1353, 1354, 1355, 1588, 1530, 1531, - 1532, 1502, 1501, 1475, 581, 1961, 1517, 1516, 978, 979, - 971, 972, 973, 974, 975, 976, 977, 970, 1575, 1464, - 980, 1475, 1497, 956, 581, 35, 1503, 486, 35, 1386, - 1499, 1162, 1161, 1927, 1386, 1386, 82, 1523, 1497, 1524, - 1525, 1526, 1527, 1687, 612, 1686, 1495, 612, 1406, 1407, - 1724, 1463, 1541, 1542, 1589, 1535, 1536, 1537, 1538, 1582, - 1557, 1559, 1585, 1546, 1586, 71, 1567, 1572, 1598, 165, - 1556, 1107, 1106, 2068, 574, 1725, 165, 799, 2123, 1599, - 1580, 165, 165, 1581, 1453, 165, 499, 165, 1431, 1584, - 1231, 1463, 1600, 165, 565, 1546, 1343, 1602, 1603, 1290, - 165, 800, 71, 1798, 1463, 71, 1937, 1093, 782, 781, - 71, 1197, 2147, 2089, 2060, 2056, 1164, 1608, 1544, 1995, - 1825, 1540, 1534, 2069, 2070, 2071, 1799, 165, 486, 1533, - 1635, 1636, 1278, 1192, 1188, 1638, 1160, 96, 1509, 1998, - 1232, 1233, 1234, 166, 1639, 2072, 166, 1228, 864, 166, - 1799, 71, 1931, 1932, 487, 2148, 166, 1555, 2258, 2177, - 2254, 1978, 1977, 1976, 166, 1480, 1483, 1484, 1485, 1481, - 1934, 1482, 1486, 1363, 1916, 1931, 1932, 1809, 1629, 1336, - 2049, 1628, 2238, 1741, 1936, 1738, 487, 1737, 1742, 487, - 166, 487, 2073, 2074, 1229, 1230, 1739, 1547, 2216, 1908, - 1706, 1740, 1653, 1654, 1655, 969, 968, 978, 979, 971, - 972, 973, 974, 975, 976, 977, 970, 1062, 1743, 980, - 1484, 1485, 165, 1983, 1715, 1643, 1714, 2169, 2171, 2240, - 165, 1480, 1483, 1484, 1485, 1481, 2172, 1482, 1486, 2197, - 2220, 2222, 1652, 1704, 2200, 2166, 1289, 2196, 566, 1955, - 1364, 1705, 1803, 829, 828, 165, 2008, 1798, 1416, 1863, - 929, 1832, 1831, 1666, 1703, 1055, 165, 165, 165, 165, - 165, 591, 587, 1417, 1726, 2121, 1710, 1056, 165, 572, - 1665, 103, 165, 1954, 1953, 165, 165, 588, 1583, 165, - 165, 165, 1206, 1205, 1748, 1193, 1722, 1661, 1662, 2043, - 1719, 1448, 1762, 1681, 1974, 1047, 1693, 1455, 1456, 1632, - 2178, 1701, 1066, 1067, 590, 2142, 589, 1048, 1679, 1950, - 1783, 1488, 1709, 575, 576, 1713, 1731, 1621, 1718, 1648, - 1751, 82, 578, 1712, 1753, 2228, 1720, 2226, 2225, 2201, - 1782, 2199, 1786, 1787, 1788, 1732, 486, 1765, 1735, 1733, - 1734, 165, 1736, 2042, 1744, 1979, 1573, 1299, 165, 1749, - 579, 1757, 1754, 1766, 486, 2041, 1911, 1717, 1676, 442, - 486, 2260, 2259, 2260, 1673, 1200, 1076, 1069, 1551, 489, - 486, 2173, 1801, 574, 1951, 1449, 80, 569, 85, 77, - 1791, 1, 1836, 457, 591, 587, 1432, 1827, 1045, 469, - 2252, 1780, 1781, 165, 165, 165, 165, 165, 1265, 1255, - 588, 1800, 1835, 761, 1806, 2093, 2144, 1986, 1549, 165, - 165, 1180, 1834, 1810, 1811, 1812, 790, 128, 1512, 1821, - 1513, 2211, 93, 753, 1398, 584, 585, 590, 92, 589, - 1833, 793, 891, 1574, 1399, 2085, 1778, 1521, 1113, 1111, - 1826, 1112, 1110, 1115, 1114, 486, 1109, 1683, 1337, 483, - 1487, 1386, 163, 1102, 1070, 830, 447, 1855, 1964, 1333, - 1606, 453, 988, 1711, 1874, 1758, 609, 602, 1922, 2194, - 2165, 1875, 2167, 2117, 2170, 1876, 2163, 2239, 1707, 1708, - 1060, 486, 1869, 1870, 2219, 1895, 2033, 1867, 1861, 1520, - 1447, 1862, 165, 1058, 1873, 2040, 1910, 1890, 1891, 1889, - 1892, 1893, 486, 1680, 1017, 1418, 1085, 508, 486, 486, - 1442, 1899, 1900, 1917, 1888, 1356, 523, 520, 521, 1458, - 1723, 1874, 1920, 962, 166, 506, 166, 500, 1077, 166, - 1479, 165, 1477, 969, 968, 978, 979, 971, 972, 973, - 974, 975, 976, 977, 970, 1926, 1476, 980, 1630, 1089, - 1933, 1929, 1083, 1462, 1770, 487, 487, 487, 1842, 1992, - 941, 583, 1935, 495, 765, 1939, 1731, 1941, 1904, 1942, - 1415, 2153, 1914, 487, 487, 1647, 1940, 2029, 582, 61, - 38, 490, 1956, 1957, 1972, 2234, 932, 592, 1947, 32, - 165, 31, 30, 29, 1949, 28, 1925, 23, 486, 22, - 1422, 21, 20, 19, 25, 18, 486, 17, 16, 98, - 48, 165, 45, 43, 105, 104, 46, 1967, 1969, 1970, - 1968, 165, 42, 1985, 867, 27, 26, 15, 1987, 534, - 14, 13, 12, 11, 10, 165, 9, 5, 165, 1981, - 4, 935, 1984, 1551, 24, 1006, 1990, 2009, 2, 1989, - 2032, 0, 166, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1982, 0, 0, 0, 0, 0, 2004, 2003, - 0, 0, 0, 0, 0, 0, 2006, 2007, 0, 0, - 487, 0, 0, 166, 580, 166, 166, 0, 487, 485, - 2017, 0, 0, 2010, 487, 0, 0, 969, 968, 978, - 979, 971, 972, 973, 974, 975, 976, 977, 970, 1897, - 0, 980, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 610, 0, 0, 757, 2012, 764, 2044, 0, 0, - 0, 0, 2052, 0, 2053, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1912, 2058, 0, 868, 0, 873, - 0, 0, 875, 0, 165, 0, 2059, 165, 165, 165, - 486, 486, 2061, 0, 0, 0, 0, 0, 0, 1731, - 0, 0, 0, 2039, 0, 0, 0, 2079, 0, 2094, - 486, 486, 486, 0, 0, 0, 0, 0, 0, 0, - 0, 2014, 2015, 0, 2016, 0, 2100, 2018, 0, 2020, - 969, 968, 978, 979, 971, 972, 973, 974, 975, 976, - 977, 970, 0, 0, 980, 486, 486, 486, 165, 0, - 0, 2098, 0, 0, 0, 2062, 0, 2064, 0, 486, - 0, 486, 2110, 2112, 2113, 0, 0, 486, 0, 166, - 2124, 2114, 1920, 0, 2126, 0, 1920, 2120, 2122, 2101, - 2102, 2103, 2104, 2105, 2129, 0, 0, 2108, 2109, 0, - 0, 0, 0, 0, 2132, 0, 2133, 0, 0, 0, - 486, 487, 0, 486, 0, 0, 2136, 0, 0, 2106, - 0, 0, 2099, 2139, 0, 2131, 0, 2143, 487, 487, - 0, 487, 2146, 487, 487, 0, 487, 487, 487, 487, - 487, 487, 2128, 0, 0, 2115, 1079, 0, 2130, 1090, - 2162, 487, 0, 0, 0, 166, 0, 0, 2174, 165, - 1920, 0, 0, 0, 0, 2031, 0, 0, 486, 165, - 0, 0, 2027, 0, 0, 2181, 0, 0, 0, 0, - 0, 0, 487, 0, 166, 2185, 0, 0, 499, 0, - 0, 0, 0, 0, 2191, 2054, 486, 2198, 2055, 166, - 0, 2057, 2202, 0, 486, 486, 0, 0, 0, 0, - 2210, 2204, 0, 0, 0, 166, 0, 0, 0, 0, - 2224, 0, 166, 2146, 2212, 2223, 0, 0, 486, 2230, - 0, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 487, 487, 487, 2237, 2205, 2233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1731, 0, 0, 0, 0, - 0, 2248, 0, 0, 0, 0, 0, 166, 0, 0, - 0, 0, 0, 0, 0, 2257, 0, 0, 0, 0, - 0, 0, 2267, 969, 968, 978, 979, 971, 972, 973, - 974, 975, 976, 977, 970, 0, 0, 980, 0, 0, - 0, 0, 1108, 0, 0, 0, 0, 0, 2119, 499, - 0, 0, 0, 0, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 1868, 0, 0, 0, 0, 487, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 610, 610, 610, 969, 968, 978, 979, 971, 972, 973, - 974, 975, 976, 977, 970, 0, 0, 980, 931, 933, - 0, 0, 487, 487, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 166, 0, 0, 462, 0, 1239, 0, - 0, 2026, 0, 0, 0, 461, 0, 487, 0, 0, - 0, 0, 0, 0, 166, 0, 459, 487, 0, 0, - 0, 166, 0, 166, 0, 0, 0, 1279, 0, 0, - 0, 166, 166, 0, 0, 0, 0, 0, 487, 0, - 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 487, 0, 0, 456, 0, 0, 1308, 0, - 0, 0, 0, 0, 468, 1312, 0, 0, 0, 0, - 0, 2025, 0, 0, 0, 0, 1323, 1324, 1325, 1326, - 1327, 1328, 1329, 0, 0, 1073, 0, 0, 0, 0, - 0, 0, 0, 610, 0, 0, 0, 0, 0, 1103, - 2024, 0, 0, 0, 0, 0, 0, 487, 0, 0, - 1090, 474, 969, 968, 978, 979, 971, 972, 973, 974, - 975, 976, 977, 970, 0, 0, 980, 0, 0, 0, - 0, 487, 0, 0, 0, 0, 0, 487, 0, 446, - 0, 448, 463, 0, 476, 0, 475, 452, 0, 450, - 454, 464, 455, 0, 449, 0, 460, 0, 0, 451, - 465, 466, 480, 479, 467, 0, 473, 458, 477, 0, + 1198, 1177, 1178, 1176, 1259, 1997, 1251, 969, 968, 978, + 979, 971, 972, 973, 974, 975, 976, 977, 970, 1274, + 1299, 980, 1245, 165, 2132, 958, 959, 957, 1307, 1238, + 2248, 1305, 1306, 1242, 1272, 1311, 1262, 1313, 1314, 1315, + 1316, 1907, 1241, 960, 1320, 1310, 1296, 167, 168, 169, + 1216, 1765, 1317, 1318, 1319, 167, 168, 169, 1335, 1573, + 1363, 1386, 603, 2247, 102, 777, 776, 1171, 2233, 2231, + 1389, 2108, 969, 968, 978, 979, 971, 972, 973, 974, + 975, 976, 977, 970, 486, 2064, 980, 2039, 1309, 1908, + 1361, 1345, 1953, 1370, 1371, 1372, 1373, 1374, 1375, 1376, + 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1909, 1390, + 1391, 1804, 1403, 1330, 1331, 1332, 1792, 1397, 486, 486, + 167, 168, 169, 1642, 1455, 1456, 1607, 1606, 1672, 165, + 1364, 167, 168, 169, 1444, 1571, 1671, 1300, 1408, 1411, + 2034, 1264, 1929, 486, 1421, 1398, 581, 1252, 1452, 1248, + 165, 1399, 1423, 486, 1247, 1246, 1445, 165, 1443, 165, + 1981, 2250, 1008, 958, 959, 957, 1457, 165, 165, 1981, + 2219, 2136, 1427, 1428, 486, 1981, 2183, 486, 2135, 1490, + 2091, 960, 167, 168, 169, 1824, 1254, 1397, 486, 969, + 968, 978, 979, 971, 972, 973, 974, 975, 976, 977, + 970, 1807, 1400, 980, 1519, 608, 1981, 2177, 608, 80, + 958, 959, 957, 1451, 1496, 1469, 1981, 581, 2085, 581, + 1464, 1399, 1981, 2083, 1465, 1591, 581, 1525, 960, 1526, + 1527, 1528, 1529, 2046, 1515, 1514, 1493, 1796, 2049, 581, + 958, 959, 957, 486, 1719, 1537, 1538, 1539, 1540, 1566, + 1567, 1568, 1964, 1963, 1570, 1572, 1960, 1961, 960, 1960, + 1959, 1518, 2184, 958, 959, 957, 1467, 486, 1547, 1463, + 581, 1495, 1841, 486, 1200, 1162, 1826, 1200, 1497, 1200, + 1553, 960, 956, 1502, 1498, 1501, 1499, 1590, 82, 581, + 1819, 1820, 1463, 1517, 1516, 612, 1475, 581, 612, 1981, + 1404, 1405, 2211, 35, 1410, 1413, 1414, 525, 524, 527, + 528, 529, 530, 1577, 35, 1475, 526, 486, 531, 1386, + 1962, 1496, 956, 581, 1386, 1386, 1475, 1532, 1533, 1534, + 1426, 1162, 1161, 1429, 1430, 1107, 1106, 1548, 1584, 1726, + 1503, 1587, 1918, 1588, 1543, 1544, 2069, 1752, 1559, 1561, + 1558, 1929, 2033, 2124, 1569, 1495, 1463, 1592, 2028, 165, + 1719, 1689, 1602, 1600, 1727, 35, 165, 1604, 1605, 1548, + 1582, 165, 165, 565, 1583, 165, 800, 165, 799, 1601, + 71, 1474, 1688, 165, 1463, 1497, 1197, 1231, 1591, 1574, + 165, 71, 1801, 1495, 1453, 1431, 2070, 2071, 2072, 1343, + 1586, 969, 968, 978, 979, 971, 972, 973, 974, 975, + 976, 977, 970, 574, 1591, 980, 1290, 165, 486, 1093, + 782, 781, 166, 71, 2148, 166, 595, 1610, 166, 2090, + 864, 1929, 2057, 487, 1475, 166, 1164, 1232, 1233, 1234, + 1939, 1546, 71, 166, 1637, 1638, 2073, 1996, 1956, 1640, + 1480, 1483, 1484, 1485, 1481, 1827, 1482, 1486, 1641, 1542, + 1933, 1934, 1536, 1363, 1535, 487, 1630, 1278, 487, 166, + 487, 969, 968, 978, 979, 971, 972, 973, 974, 975, + 976, 977, 970, 1192, 1188, 980, 1160, 96, 1999, 1800, + 71, 2149, 499, 2074, 2075, 1655, 1656, 1657, 978, 979, + 971, 972, 973, 974, 975, 976, 977, 970, 1668, 1557, + 980, 2262, 165, 2258, 1228, 1645, 1933, 1934, 1979, 1978, + 165, 968, 978, 979, 971, 972, 973, 974, 975, 976, + 977, 970, 1938, 1364, 980, 1654, 1801, 1977, 534, 1936, + 1480, 1483, 1484, 1485, 1481, 165, 1482, 1486, 1918, 1811, + 1743, 1631, 1336, 1705, 1740, 1744, 165, 165, 165, 165, + 165, 1229, 1230, 1739, 1728, 1712, 1667, 2242, 165, 1741, + 2220, 572, 165, 1910, 1742, 165, 165, 591, 587, 165, + 165, 165, 1683, 1745, 1750, 1484, 1485, 1708, 1062, 2050, + 1984, 1724, 1764, 588, 1047, 1721, 1695, 1717, 485, 1733, + 1716, 1703, 2244, 2198, 2170, 2172, 2224, 1706, 2201, 2167, + 2226, 2197, 1785, 2173, 1711, 1707, 1289, 566, 1066, 1067, + 590, 1779, 589, 1720, 1722, 1753, 1522, 1805, 829, 1755, + 610, 828, 1416, 757, 2009, 764, 1800, 1784, 486, 1788, + 1789, 1790, 1767, 165, 1746, 1734, 1299, 1417, 1737, 1751, + 165, 1759, 1055, 929, 1756, 1865, 486, 1735, 1736, 1834, + 1738, 1833, 486, 103, 1056, 2122, 1955, 1200, 1954, 1768, + 1553, 1585, 486, 1206, 1803, 1205, 1193, 2044, 591, 587, + 1455, 1456, 1975, 1448, 1838, 1663, 1664, 1634, 2179, 1793, + 2143, 1778, 1488, 1623, 588, 165, 165, 165, 165, 165, + 1650, 1829, 1715, 1802, 1823, 578, 1681, 575, 576, 1837, + 1714, 165, 165, 1812, 1813, 1814, 1836, 1808, 1180, 584, + 585, 590, 2232, 589, 2230, 2229, 2202, 2200, 2043, 1398, + 1980, 1828, 1782, 1783, 1660, 1399, 1575, 579, 82, 2042, + 1913, 1719, 1835, 2264, 2263, 2264, 1678, 486, 1675, 1076, + 1069, 2174, 1952, 1386, 969, 968, 978, 979, 971, 972, + 973, 974, 975, 976, 977, 970, 1449, 574, 980, 80, + 85, 1877, 77, 1, 2205, 457, 1878, 1432, 1876, 1857, + 1045, 469, 2256, 486, 1265, 1897, 1863, 1871, 1872, 1864, + 1255, 2094, 1869, 2145, 165, 1987, 1890, 1875, 1551, 790, + 128, 1512, 1892, 1893, 486, 1894, 1895, 1891, 1513, 2215, + 486, 486, 93, 166, 1919, 166, 1901, 1902, 166, 753, + 92, 793, 891, 1576, 1922, 2086, 1780, 1523, 1113, 1916, + 1111, 1112, 1110, 165, 1115, 1876, 1114, 1109, 1337, 2027, + 483, 1487, 163, 1102, 487, 487, 487, 1070, 830, 447, + 1965, 1733, 1928, 1333, 1608, 453, 988, 1713, 1760, 1937, + 609, 602, 487, 487, 1924, 2195, 2166, 2168, 2118, 2171, + 1906, 2164, 1941, 2243, 1943, 2223, 1944, 2178, 1520, 1447, + 1058, 2041, 1912, 1942, 1682, 1017, 1973, 1418, 1085, 1957, + 1958, 508, 165, 1442, 1356, 1949, 523, 520, 1927, 1951, + 486, 521, 1458, 1725, 962, 506, 1422, 500, 486, 1077, + 1479, 1477, 1476, 165, 1632, 1089, 1986, 1935, 1931, 1083, + 1970, 1971, 1969, 165, 1968, 1462, 1521, 1988, 961, 1844, + 1993, 941, 583, 495, 765, 1415, 2154, 165, 1649, 2030, + 165, 166, 1985, 582, 61, 1553, 1982, 1983, 38, 2010, + 1991, 1990, 969, 968, 978, 979, 971, 972, 973, 974, + 975, 976, 977, 970, 499, 490, 980, 2238, 932, 487, + 592, 2004, 166, 1018, 166, 166, 2005, 487, 32, 31, + 30, 29, 2013, 487, 28, 2026, 23, 22, 21, 20, + 580, 19, 25, 2015, 2016, 2018, 2017, 18, 2011, 2019, + 17, 2021, 2007, 2008, 16, 1057, 1060, 98, 48, 610, + 610, 610, 969, 968, 978, 979, 971, 972, 973, 974, + 975, 976, 977, 970, 45, 43, 980, 931, 933, 2045, + 105, 104, 2053, 46, 42, 2054, 867, 27, 26, 15, + 14, 13, 12, 11, 10, 2059, 9, 5, 4, 935, + 24, 1006, 2061, 2, 1733, 165, 0, 0, 165, 165, + 165, 486, 486, 2060, 0, 0, 0, 0, 0, 2080, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2095, 486, 486, 486, 2062, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2101, 969, 968, + 978, 979, 971, 972, 973, 974, 975, 976, 977, 970, + 0, 0, 980, 0, 2040, 0, 486, 486, 486, 165, + 0, 2099, 0, 0, 2111, 2113, 2114, 0, 166, 0, + 486, 0, 486, 0, 1073, 2107, 0, 0, 486, 0, + 2115, 2125, 610, 1922, 0, 2127, 2130, 1922, 1103, 2123, + 0, 0, 2121, 2102, 2103, 2104, 2105, 2106, 2129, 0, + 487, 2109, 2110, 0, 2131, 2063, 0, 2065, 0, 0, + 2133, 486, 2134, 0, 486, 2137, 0, 487, 487, 2144, + 487, 2140, 487, 487, 0, 487, 487, 487, 487, 487, + 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 487, 0, 0, 0, 166, 2147, 2163, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2175, + 165, 1922, 2100, 0, 0, 0, 0, 0, 0, 486, + 165, 487, 0, 166, 0, 0, 2182, 2186, 0, 0, + 0, 0, 0, 0, 0, 2116, 0, 0, 166, 0, + 0, 0, 0, 0, 0, 2199, 2192, 486, 0, 0, + 0, 0, 2203, 0, 166, 486, 486, 0, 0, 0, + 0, 166, 2208, 0, 2214, 0, 0, 0, 0, 0, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 487, + 487, 487, 486, 2228, 2234, 2227, 2147, 2216, 0, 1733, + 2237, 0, 0, 2241, 0, 1301, 0, 0, 2209, 0, + 2025, 0, 0, 0, 0, 0, 166, 0, 0, 0, + 0, 0, 0, 0, 0, 757, 2252, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1202, 2261, + 0, 0, 1208, 1208, 0, 1208, 2271, 1208, 1208, 0, + 1217, 1208, 1208, 1208, 1208, 1208, 0, 0, 0, 0, + 0, 0, 0, 1202, 1202, 757, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, + 0, 0, 0, 1352, 1353, 1354, 1355, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1277, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 487, 487, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 166, 969, 968, 978, 979, 971, 972, 973, + 974, 975, 976, 977, 970, 0, 487, 980, 1406, 1407, + 0, 0, 0, 166, 0, 0, 487, 0, 0, 161, + 166, 0, 166, 0, 610, 610, 610, 0, 0, 0, + 166, 166, 0, 0, 0, 0, 0, 487, 0, 0, + 487, 0, 0, 0, 103, 0, 499, 0, 0, 0, + 964, 487, 967, 0, 0, 0, 0, 145, 981, 982, + 983, 984, 985, 986, 987, 0, 965, 966, 963, 969, + 968, 978, 979, 971, 972, 973, 974, 975, 976, 977, + 970, 0, 0, 980, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1509, 0, + 0, 0, 0, 0, 0, 0, 487, 0, 0, 0, + 0, 142, 1392, 143, 610, 0, 0, 0, 0, 0, + 0, 0, 160, 0, 0, 0, 0, 0, 1202, 0, + 487, 0, 0, 0, 0, 0, 487, 535, 0, 167, + 168, 169, 0, 0, 0, 0, 1424, 1425, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1549, 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 487, 969, 968, 978, 979, 971, 972, 973, 974, - 975, 976, 977, 970, 0, 103, 980, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, - 0, 969, 968, 978, 979, 971, 972, 973, 974, 975, - 976, 977, 970, 166, 0, 980, 0, 0, 0, 0, - 166, 0, 0, 0, 0, 166, 166, 1466, 0, 166, - 0, 166, 0, 0, 1470, 0, 1473, 166, 0, 1764, - 0, 0, 0, 0, 166, 1492, 0, 0, 0, 0, - 0, 0, 142, 0, 143, 0, 0, 0, 0, 0, - 0, 0, 0, 160, 0, 0, 757, 0, 0, 0, - 0, 166, 487, 0, 0, 0, 0, 0, 0, 1202, - 0, 0, 478, 1208, 1208, 0, 1208, 0, 1208, 1208, - 0, 1217, 1208, 1208, 1208, 1208, 1208, 0, 0, 0, - 471, 0, 0, 0, 1202, 1202, 757, 0, 0, 0, - 0, 0, 0, 0, 0, 472, 0, 0, 0, 0, - 0, 535, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 964, 151, 967, 0, 0, 0, 1277, 0, 981, - 982, 983, 984, 985, 986, 987, 0, 965, 966, 963, - 969, 968, 978, 979, 971, 972, 973, 974, 975, 976, - 977, 970, 0, 0, 980, 0, 166, 0, 0, 0, - 164, 0, 0, 443, 166, 0, 481, 0, 0, 0, - 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, - 0, 443, 0, 0, 0, 610, 610, 610, 0, 166, - 0, 0, 0, 0, 0, 0, 0, 0, 596, 596, - 166, 166, 166, 166, 166, 0, 0, 443, 0, 0, - 0, 0, 166, 0, 0, 0, 166, 0, 0, 166, - 166, 0, 0, 166, 166, 166, 1090, 0, 138, 0, - 0, 0, 0, 1617, 0, 0, 0, 0, 1626, 1627, - 1658, 0, 1631, 0, 0, 0, 0, 1401, 1402, 0, - 1634, 0, 0, 0, 0, 0, 0, 1637, 0, 0, - 969, 968, 978, 979, 971, 972, 973, 974, 975, 976, - 977, 970, 0, 1392, 980, 610, 0, 0, 0, 0, - 487, 0, 0, 0, 1641, 166, 0, 0, 0, 1202, - 0, 0, 166, 1446, 0, 0, 0, 0, 487, 0, - 0, 0, 0, 0, 487, 0, 0, 1424, 1425, 0, - 0, 0, 0, 0, 487, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1459, 0, 0, 0, 0, 166, 166, 166, - 166, 166, 1073, 0, 0, 610, 0, 0, 0, 0, - 0, 0, 0, 166, 166, 0, 0, 0, 0, 0, - 0, 0, 0, 610, 0, 0, 610, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 757, 0, 0, + 0, 1459, 0, 0, 0, 0, 0, 0, 0, 0, + 487, 1073, 0, 146, 610, 103, 164, 0, 0, 443, + 0, 0, 481, 151, 0, 0, 0, 0, 145, 443, + 0, 462, 610, 0, 0, 610, 0, 443, 0, 0, + 461, 0, 0, 0, 0, 0, 757, 0, 0, 0, + 0, 459, 166, 0, 596, 596, 0, 0, 0, 166, + 0, 0, 0, 443, 166, 166, 0, 0, 166, 1766, + 166, 0, 0, 0, 0, 0, 166, 0, 0, 0, + 0, 0, 142, 166, 143, 0, 0, 0, 0, 0, + 456, 0, 0, 160, 0, 0, 0, 0, 0, 468, + 0, 764, 0, 0, 0, 0, 0, 0, 0, 0, + 166, 487, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 757, 0, 0, 0, 138, + 0, 764, 0, 0, 0, 0, 0, 0, 0, 0, + 35, 36, 37, 72, 39, 40, 474, 0, 0, 0, + 0, 0, 0, 0, 146, 0, 0, 0, 0, 0, + 76, 0, 0, 0, 151, 41, 67, 68, 0, 65, + 69, 0, 0, 0, 446, 757, 448, 463, 66, 476, + 0, 475, 452, 0, 450, 454, 464, 455, 0, 449, + 0, 460, 0, 0, 451, 465, 466, 480, 479, 467, + 0, 473, 458, 477, 0, 166, 0, 54, 0, 0, + 0, 0, 0, 166, 0, 0, 0, 71, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, + 0, 0, 0, 0, 0, 0, 0, 1685, 0, 166, + 166, 166, 166, 166, 0, 0, 0, 0, 0, 0, + 0, 166, 0, 0, 0, 166, 0, 0, 166, 166, + 138, 0, 166, 166, 166, 0, 1644, 0, 1709, 1710, + 1060, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 44, 47, 50, 49, 52, 0, 64, 0, 0, + 70, 139, 144, 141, 147, 148, 149, 150, 152, 153, + 154, 155, 0, 1401, 1402, 0, 0, 156, 157, 158, + 159, 0, 0, 53, 75, 74, 0, 478, 62, 63, + 51, 487, 0, 0, 0, 0, 166, 0, 0, 0, + 0, 0, 0, 166, 0, 471, 0, 0, 0, 487, + 0, 0, 0, 0, 0, 487, 0, 0, 0, 1446, + 472, 0, 0, 0, 0, 487, 0, 0, 0, 55, + 56, 0, 57, 58, 59, 60, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 166, 166, + 166, 166, 166, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 166, 166, 0, 443, 0, 443, + 0, 0, 443, 1202, 0, 0, 0, 0, 0, 0, + 0, 1048, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 487, 0, 139, 144, 141, 147, 148, 149, 150, 152, + 153, 154, 155, 0, 0, 0, 0, 0, 156, 157, + 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 442, 73, 0, 487, 0, 0, 0, + 0, 0, 0, 489, 0, 0, 0, 166, 0, 0, + 0, 569, 0, 0, 0, 0, 1806, 487, 0, 0, + 0, 0, 0, 487, 487, 0, 0, 0, 0, 0, + 0, 1899, 0, 0, 1818, 0, 0, 761, 1202, 0, + 1825, 0, 0, 0, 0, 0, 166, 0, 610, 0, + 1830, 0, 0, 0, 0, 443, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1914, 0, 0, 0, + 0, 596, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 443, 0, 443, 1092, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, + 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, + 0, 487, 0, 537, 34, 610, 166, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 166, 0, 0, 166, 0, 0, 0, 0, 34, 0, + 0, 1208, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 610, 0, 0, 1202, 0, 0, 1926, 1208, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 573, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1661, 0, 0, 0, + 1662, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1669, 1670, 0, 0, 0, 0, 1676, 0, 0, + 1679, 1680, 443, 0, 0, 0, 0, 2032, 1686, 0, + 1687, 0, 0, 1690, 1691, 1692, 1693, 1694, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 166, 1704, + 499, 166, 166, 166, 487, 487, 0, 2055, 757, 0, + 2056, 1202, 0, 2058, 0, 0, 1818, 1203, 0, 0, + 0, 0, 0, 0, 487, 487, 487, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1203, 1203, 0, 0, 1748, 1749, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 487, + 487, 487, 166, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 487, 0, 487, 0, 443, 0, 0, + 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1298, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, + 0, 868, 0, 873, 487, 443, 875, 487, 1202, 2120, + 499, 0, 0, 0, 1321, 1322, 443, 443, 443, 443, + 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 443, 0, 0, 166, 0, 0, 0, 0, 0, 1818, + 2081, 0, 487, 166, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2096, + 2097, 2098, 0, 0, 0, 0, 0, 0, 0, 0, + 487, 0, 0, 0, 0, 0, 0, 0, 487, 487, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1873, 1874, 596, 1298, 1818, 1818, 1818, 596, 596, 0, + 0, 596, 596, 596, 0, 487, 0, 1203, 2126, 0, + 2128, 0, 0, 0, 0, 0, 1818, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 596, 596, 596, + 596, 596, 0, 0, 0, 0, 1440, 0, 0, 0, + 1079, 0, 0, 1090, 0, 0, 0, 0, 0, 1818, + 0, 0, 610, 0, 0, 0, 1925, 443, 0, 0, + 0, 0, 0, 1298, 443, 0, 443, 0, 0, 0, + 0, 0, 0, 0, 443, 443, 0, 1940, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 924, 924, 924, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1818, 0, 0, + 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 989, 991, 0, + 0, 0, 0, 1202, 0, 2204, 0, 0, 0, 0, + 0, 0, 0, 610, 610, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1004, 0, + 0, 0, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, + 1818, 1019, 1021, 1024, 1024, 1024, 1021, 1024, 1024, 1021, + 1024, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 0, 0, + 0, 0, 0, 1049, 0, 0, 1108, 34, 0, 0, + 0, 0, 2012, 0, 0, 0, 2014, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2023, 2024, 0, + 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, + 0, 0, 0, 2038, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2047, 2048, 0, 0, 2052, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, + 0, 0, 1239, 443, 0, 0, 0, 0, 443, 443, + 0, 0, 443, 0, 1635, 0, 0, 0, 0, 0, + 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, + 0, 1279, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2084, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, + 0, 0, 1308, 0, 0, 0, 0, 0, 0, 1312, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1323, 1324, 1325, 1326, 1327, 1328, 1329, 0, 0, 0, + 0, 0, 2112, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 596, 596, 1090, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 596, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, + 0, 0, 0, 0, 0, 0, 0, 1440, 0, 2150, + 2151, 2152, 2153, 0, 2157, 0, 2158, 2159, 2160, 0, + 2161, 2162, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 596, 443, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1203, 443, 443, 443, 443, 443, 0, 0, + 0, 0, 0, 0, 0, 1747, 0, 0, 0, 443, + 0, 2188, 443, 443, 0, 0, 443, 1757, 1298, 0, + 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1816, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1466, 0, 0, 0, 103, 0, 125, 1470, 0, + 1473, 0, 0, 0, 0, 0, 0, 0, 145, 1492, + 0, 0, 0, 0, 0, 0, 2235, 2236, 161, 924, + 924, 924, 0, 0, 0, 0, 0, 0, 0, 1179, + 443, 0, 0, 0, 0, 0, 0, 1815, 0, 135, + 0, 0, 0, 103, 124, 125, 0, 1203, 0, 0, + 0, 0, 0, 0, 0, 0, 145, 1298, 0, 0, + 0, 0, 142, 0, 143, 0, 0, 0, 0, 1183, + 1184, 134, 133, 160, 0, 0, 0, 0, 0, 0, + 0, 0, 443, 443, 443, 443, 443, 135, 0, 0, + 0, 0, 124, 0, 0, 0, 0, 0, 443, 443, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 142, 0, 143, 0, 0, 0, 0, 1183, 1184, 134, + 133, 160, 0, 129, 1185, 136, 0, 1182, 0, 130, + 131, 0, 0, 596, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 151, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 129, 1185, 136, 0, 1182, 0, 130, 131, 0, + 0, 443, 146, 0, 0, 0, 0, 0, 0, 0, + 1491, 0, 151, 0, 1203, 0, 0, 0, 0, 0, + 1090, 0, 0, 0, 0, 0, 0, 1619, 0, 0, + 0, 0, 1628, 1629, 0, 0, 1633, 0, 0, 0, + 443, 0, 0, 0, 1636, 0, 0, 0, 0, 0, + 0, 1639, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 138, 0, 0, 0, 0, 0, 0, 0, 1643, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1203, 0, 0, 0, 0, 0, 0, 0, 138, 0, + 443, 0, 0, 0, 0, 0, 132, 0, 0, 0, + 443, 0, 0, 0, 0, 0, 0, 0, 126, 0, + 0, 127, 0, 0, 443, 0, 0, 443, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 132, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 126, 0, 0, 127, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1203, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1754, 0, 0, + 0, 0, 139, 144, 141, 147, 148, 149, 150, 152, + 153, 154, 155, 1130, 0, 0, 0, 0, 156, 157, + 158, 159, 443, 0, 0, 443, 443, 443, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 144, 141, 147, 148, 149, 150, 152, 153, 154, - 155, 0, 0, 0, 0, 0, 156, 157, 158, 159, - 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, - 0, 0, 764, 0, 0, 0, 166, 0, 161, 0, - 0, 0, 0, 1752, 0, 0, 487, 0, 0, 1814, - 0, 0, 487, 487, 0, 0, 757, 0, 0, 0, - 0, 0, 764, 103, 0, 125, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 166, 145, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 757, 135, 1807, 0, - 0, 0, 124, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 142, 0, 143, 0, 166, 0, 0, 1183, 1184, 134, - 133, 160, 487, 0, 0, 0, 0, 0, 0, 0, - 487, 443, 0, 443, 0, 166, 443, 0, 0, 0, - 1846, 1847, 1848, 1849, 1850, 166, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1090, 1856, 0, 166, - 0, 0, 166, 161, 0, 0, 0, 0, 0, 129, - 1185, 136, 0, 1182, 0, 130, 131, 0, 0, 0, - 146, 0, 0, 0, 0, 0, 0, 1642, 103, 0, - 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, - 1659, 0, 0, 0, 1660, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1667, 1668, 0, 0, 0, - 0, 1674, 0, 0, 1677, 1678, 0, 0, 0, 1909, - 0, 0, 1684, 0, 1685, 0, 0, 1688, 1689, 1690, - 1691, 1692, 0, 0, 0, 142, 0, 143, 0, 443, - 0, 0, 0, 1702, 0, 0, 160, 0, 0, 0, - 0, 0, 0, 0, 0, 596, 0, 0, 166, 0, - 0, 166, 166, 166, 487, 487, 0, 0, 0, 0, - 443, 0, 443, 1092, 0, 0, 138, 0, 0, 0, - 0, 0, 0, 0, 487, 487, 487, 0, 0, 0, - 1746, 1747, 0, 0, 0, 0, 0, 0, 0, 537, - 34, 0, 0, 0, 1202, 146, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 151, 0, 1975, 0, 487, - 487, 487, 166, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 132, 487, 34, 487, 0, 0, 1988, 0, - 0, 487, 0, 0, 126, 0, 0, 127, 1991, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2002, 0, 0, 2005, 0, 0, 0, 0, - 0, 0, 0, 0, 487, 0, 0, 487, 0, 573, - 0, 0, 0, 0, 0, 1804, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1816, 0, 0, 0, 1202, 0, 1823, - 0, 0, 0, 0, 0, 0, 0, 610, 0, 1828, - 0, 138, 0, 166, 0, 0, 443, 0, 0, 0, - 0, 0, 487, 166, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 139, 144, - 141, 147, 148, 149, 150, 152, 153, 154, 155, 0, - 487, 0, 1871, 1872, 156, 157, 158, 159, 487, 487, - 0, 1203, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2075, 0, 0, 2076, 2077, 2078, 0, 0, 0, - 0, 0, 487, 0, 610, 0, 1203, 1203, 0, 0, - 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, + 155, 0, 0, 0, 1809, 0, 156, 157, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1923, 0, - 1208, 443, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1298, 0, 0, 1938, - 0, 610, 0, 0, 1202, 0, 0, 1924, 1208, 0, - 0, 0, 443, 0, 0, 0, 0, 0, 0, 443, - 0, 0, 0, 0, 0, 0, 0, 0, 1321, 1322, - 443, 443, 443, 443, 443, 443, 443, 0, 0, 0, - 0, 0, 0, 139, 144, 141, 147, 148, 149, 150, - 152, 153, 154, 155, 0, 0, 0, 0, 0, 156, - 157, 158, 159, 0, 443, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2180, 757, 0, 0, - 1202, 0, 0, 0, 0, 1816, 2186, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2011, 0, 596, 1298, 2013, 0, - 0, 596, 596, 0, 0, 596, 596, 596, 0, 2022, - 2023, 1203, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2037, 0, 0, 0, 0, - 0, 596, 596, 596, 596, 596, 0, 0, 0, 0, - 1440, 0, 2046, 2047, 0, 0, 2051, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 443, 0, 0, 0, 0, 0, 1298, 443, 0, - 443, 0, 0, 0, 0, 0, 0, 1202, 443, 443, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 924, 924, 924, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2083, 0, 0, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 989, 991, 1130, 0, 0, 0, 1816, - 2080, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2095, - 2096, 2097, 0, 0, 1004, 2111, 0, 0, 1009, 1010, - 1011, 1012, 1013, 1014, 1015, 1016, 0, 1019, 1021, 1024, - 1024, 1024, 1021, 1024, 1024, 1021, 1024, 1037, 1038, 1039, - 1040, 1041, 1042, 1043, 1816, 1816, 1816, 0, 0, 1049, - 0, 0, 0, 34, 0, 0, 0, 0, 2125, 0, - 2127, 0, 0, 0, 0, 0, 1816, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1086, 0, 2149, 2150, 2151, 2152, 0, 2156, 0, 2157, - 2158, 2159, 0, 2160, 2161, 0, 0, 0, 0, 1816, - 1118, 0, 610, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 443, 0, 0, 0, 2187, 0, 0, 443, 0, 0, - 0, 0, 443, 443, 1131, 0, 443, 0, 1633, 0, - 0, 0, 0, 0, 443, 0, 0, 1816, 0, 0, - 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1202, 0, 2203, 2231, 2232, 443, 0, - 0, 0, 0, 610, 610, 1144, 1147, 1148, 1149, 1150, + 0, 1665, 0, 0, 573, 0, 1440, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1848, 1849, 1850, 1851, + 1852, 1702, 0, 0, 0, 0, 0, 0, 0, 0, + 1118, 0, 1090, 1858, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1086, 0, + 0, 0, 0, 0, 0, 1729, 1730, 0, 0, 1086, + 1086, 1086, 1086, 1086, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1131, 1491, 0, 0, 1086, 0, + 0, 0, 1086, 0, 0, 0, 0, 443, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1911, 0, 0, 0, 0, + 0, 0, 1203, 0, 0, 1144, 1147, 1148, 1149, 1150, 1151, 1152, 0, 1153, 1154, 1155, 1156, 1157, 1132, 1133, - 1134, 1135, 1116, 1117, 1145, 0, 1119, 1816, 1120, 1121, + 1134, 1135, 1116, 1117, 1145, 0, 1119, 0, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 596, 596, 0, 0, + 0, 0, 0, 0, 0, 0, 1831, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 161, 0, 0, 0, 596, 0, 0, - 0, 0, 0, 0, 1179, 0, 0, 0, 0, 0, - 0, 0, 0, 443, 0, 0, 0, 0, 103, 0, - 125, 1440, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 145, 0, 1146, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 596, 443, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1203, 443, 443, 443, - 443, 443, 135, 0, 0, 0, 0, 124, 0, 1745, - 0, 0, 0, 443, 0, 0, 443, 443, 0, 0, - 443, 1755, 1298, 0, 0, 142, 0, 143, 0, 0, - 0, 0, 1183, 1184, 134, 133, 160, 0, 0, 0, - 0, 0, 0, 35, 36, 37, 72, 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 76, 0, 924, 924, 924, 41, 67, - 68, 0, 65, 69, 0, 0, 0, 0, 0, 0, - 0, 66, 443, 0, 129, 1185, 136, 0, 1182, 1813, - 130, 131, 0, 0, 0, 146, 0, 0, 0, 1203, - 0, 0, 0, 0, 0, 151, 0, 0, 0, 1298, - 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 443, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1146, 1989, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1992, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2003, 0, + 0, 2006, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 596, 0, 0, 0, 0, - 0, 0, 44, 47, 50, 49, 52, 0, 64, 0, - 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 75, 74, 0, 0, 62, - 63, 51, 0, 443, 0, 0, 1491, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, - 55, 56, 443, 57, 58, 59, 60, 0, 0, 126, - 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1923, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1203, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 73, 443, 0, 0, 443, - 0, 0, 0, 139, 144, 141, 147, 148, 149, 150, - 152, 153, 154, 155, 0, 0, 0, 0, 0, 156, - 157, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2076, 0, 0, 2077, + 2078, 2079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 443, 0, 0, 443, 443, - 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1663, 0, 0, - 573, 0, 0, 0, 0, 0, 0, 0, 0, 1440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2029, 0, 0, 0, 0, 0, 0, 2035, 2036, 2037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, - 0, 1727, 1728, 0, 0, 1086, 1086, 1086, 1086, 1086, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1491, 0, 0, 1086, 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1203, 0, 0, 0, 0, + 0, 2181, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, - 1829, 0, 0, 0, 0, 272, 0, 0, 0, 328, - 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, - 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, - 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, - 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 969, 968, 978, 979, 971, 972, 973, 974, - 975, 976, 977, 970, 0, 0, 980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 245, 0, 300, 1921, 0, 34, 0, 423, - 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, - 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, - 1086, 210, 0, 353, 324, 408, 194, 235, 346, 329, - 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, - 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, - 0, 0, 0, 0, 2028, 0, 0, 0, 0, 0, - 0, 2034, 2035, 2036, 0, 0, 0, 0, 0, 170, - 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, - 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 0, - 0, 0, 0, 0, 0, 1921, 0, 34, 0, 1921, + 1923, 0, 34, 0, 1923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1921, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2179, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 736, 723, + 0, 0, 2180, 0, 0, 0, 0, 34, 0, 0, + 0, 0, 0, 736, 723, 0, 0, 672, 739, 642, + 660, 748, 663, 666, 706, 621, 685, 314, 657, 0, + 646, 617, 653, 618, 644, 674, 223, 678, 641, 725, + 688, 738, 272, 34, 623, 647, 328, 662, 176, 708, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 745, 276, 695, 0, 375, 299, + 0, 0, 0, 676, 728, 683, 719, 671, 707, 631, + 694, 740, 658, 703, 741, 262, 207, 175, 311, 376, + 237, 0, 0, 0, 167, 168, 169, 0, 2217, 2218, + 0, 0, 0, 0, 0, 198, 0, 205, 700, 735, + 655, 702, 219, 260, 225, 218, 391, 0, 0, 705, + 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, + 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, + 669, 0, 0, 0, 0, 0, 0, 0, 0, 648, + 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, + 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, + 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, + 668, 667, 737, 712, 628, 727, 661, 271, 626, 268, + 171, 187, 0, 659, 310, 349, 355, 726, 645, 654, + 210, 652, 353, 324, 408, 194, 235, 346, 329, 351, + 692, 710, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 926, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 640, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 722, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 714, 750, 323, 354, 200, 410, 374, 635, 639, + 633, 634, 686, 687, 636, 742, 743, 744, 718, 629, + 0, 637, 638, 0, 724, 732, 733, 691, 170, 184, + 274, 746, 343, 238, 436, 417, 413, 615, 632, 216, + 643, 0, 0, 656, 664, 665, 677, 679, 680, 681, + 682, 690, 698, 699, 701, 709, 711, 713, 715, 720, + 729, 749, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 689, 696, 284, 232, 249, 259, 704, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 736, 723, 0, 0, 672, 739, 642, 660, 748, 663, 666, 706, 621, 685, 314, 657, 0, 646, 617, 653, 618, 644, - 674, 223, 678, 641, 725, 688, 738, 272, 34, 623, + 674, 223, 678, 641, 725, 688, 738, 272, 0, 623, 647, 328, 662, 176, 708, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 745, 276, 695, 0, 375, 299, 0, 0, 0, 676, 728, 683, 719, 671, 707, 631, 694, 740, 658, 703, 741, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 2213, 2214, 0, 0, 0, 0, 0, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 700, 735, 655, 702, 219, 260, 225, - 218, 391, 705, 751, 616, 697, 0, 619, 622, 747, - 731, 650, 651, 0, 0, 0, 0, 0, 0, 0, - 675, 684, 716, 669, 0, 0, 0, 0, 0, 0, - 0, 0, 648, 0, 693, 0, 0, 0, 627, 620, - 0, 0, 0, 0, 673, 0, 0, 0, 630, 0, - 649, 717, 0, 614, 245, 624, 300, 0, 721, 730, - 670, 423, 734, 668, 667, 737, 712, 628, 727, 661, - 271, 626, 268, 171, 187, 0, 659, 310, 349, 355, - 726, 645, 654, 210, 652, 353, 324, 408, 194, 235, - 346, 329, 351, 692, 710, 352, 277, 396, 341, 406, - 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, - 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, - 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, - 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, - 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, - 437, 190, 419, 183, 926, 418, 306, 395, 403, 295, - 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, - 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, - 438, 195, 196, 197, 640, 230, 234, 240, 242, 0, - 248, 255, 273, 317, 338, 336, 342, 722, 390, 407, - 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, - 254, 373, 269, 278, 714, 750, 323, 354, 200, 410, - 374, 635, 639, 633, 634, 686, 687, 636, 742, 743, - 744, 718, 629, 0, 637, 638, 0, 724, 732, 733, - 691, 170, 184, 274, 746, 343, 238, 436, 417, 413, - 615, 632, 216, 643, 0, 0, 656, 664, 665, 677, - 679, 680, 681, 682, 690, 698, 699, 701, 709, 711, - 713, 715, 720, 729, 749, 172, 173, 185, 193, 203, - 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, - 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, - 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, - 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, - 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, - 426, 247, 405, 427, 0, 282, 689, 696, 284, 232, - 249, 259, 704, 416, 379, 189, 350, 239, 178, 206, - 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, - 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 736, 723, 0, 0, 672, 739, 642, 660, 748, - 663, 666, 706, 621, 685, 314, 657, 0, 646, 617, - 653, 618, 644, 674, 223, 678, 641, 725, 688, 738, - 272, 0, 623, 647, 328, 662, 176, 708, 366, 209, - 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, - 384, 320, 745, 276, 695, 0, 375, 299, 0, 0, - 0, 676, 728, 683, 719, 671, 707, 631, 694, 740, - 658, 703, 741, 262, 207, 175, 311, 376, 237, 0, - 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, - 0, 0, 0, 198, 0, 205, 700, 735, 655, 702, - 219, 260, 225, 218, 391, 705, 751, 616, 697, 0, - 619, 622, 747, 731, 650, 651, 0, 0, 0, 0, - 0, 0, 0, 675, 684, 716, 669, 0, 0, 0, - 0, 0, 0, 1913, 0, 648, 0, 693, 0, 0, - 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, - 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, - 0, 721, 730, 670, 423, 734, 668, 667, 737, 712, - 628, 727, 661, 271, 626, 268, 171, 187, 0, 659, - 310, 349, 355, 726, 645, 654, 210, 652, 353, 324, - 408, 194, 235, 346, 329, 351, 692, 710, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 926, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 640, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 722, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 305, 191, 254, 373, 269, 278, 714, 750, 323, - 354, 200, 410, 374, 635, 639, 633, 634, 686, 687, - 636, 742, 743, 744, 718, 629, 0, 637, 638, 0, - 724, 732, 733, 691, 170, 184, 274, 746, 343, 238, - 436, 417, 413, 615, 632, 216, 643, 0, 0, 656, - 664, 665, 677, 679, 680, 681, 682, 690, 698, 699, - 701, 709, 711, 713, 715, 720, 729, 749, 172, 173, - 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, - 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, - 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, - 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, - 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, - 398, 409, 421, 426, 247, 405, 427, 0, 282, 689, - 696, 284, 232, 249, 259, 704, 416, 379, 189, 350, - 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, - 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 736, 723, 0, 0, 672, 739, - 642, 660, 748, 663, 666, 706, 621, 685, 314, 657, - 0, 646, 617, 653, 618, 644, 674, 223, 678, 641, - 725, 688, 738, 272, 0, 623, 647, 328, 662, 176, - 708, 366, 209, 281, 279, 394, 233, 226, 222, 208, - 256, 287, 326, 384, 320, 745, 276, 695, 0, 375, - 299, 0, 0, 0, 676, 728, 683, 719, 671, 707, - 631, 694, 740, 658, 703, 741, 262, 207, 175, 311, - 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 700, - 735, 655, 702, 219, 260, 225, 218, 391, 705, 751, - 616, 697, 0, 619, 622, 747, 731, 650, 651, 0, - 0, 0, 0, 0, 0, 0, 675, 684, 716, 669, - 0, 0, 0, 0, 0, 0, 1756, 0, 648, 0, - 693, 0, 0, 0, 627, 620, 0, 0, 0, 0, - 673, 0, 0, 0, 630, 0, 649, 717, 0, 614, - 245, 624, 300, 0, 721, 730, 670, 423, 734, 668, - 667, 737, 712, 628, 727, 661, 271, 626, 268, 171, - 187, 0, 659, 310, 349, 355, 726, 645, 654, 210, - 652, 353, 324, 408, 194, 235, 346, 329, 351, 692, - 710, 352, 277, 396, 341, 406, 424, 425, 217, 304, - 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, - 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, - 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, - 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, - 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, - 926, 418, 306, 395, 403, 295, 286, 182, 401, 293, - 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, - 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, - 640, 230, 234, 240, 242, 0, 248, 255, 273, 317, - 338, 336, 342, 722, 390, 407, 415, 422, 428, 429, - 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, - 714, 750, 323, 354, 200, 410, 374, 635, 639, 633, - 634, 686, 687, 636, 742, 743, 744, 718, 629, 0, - 637, 638, 0, 724, 732, 733, 691, 170, 184, 274, - 746, 343, 238, 436, 417, 413, 615, 632, 216, 643, - 0, 0, 656, 664, 665, 677, 679, 680, 681, 682, - 690, 698, 699, 701, 709, 711, 713, 715, 720, 729, - 749, 172, 173, 185, 193, 203, 215, 228, 236, 246, - 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, - 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, - 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, - 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, - 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, - 0, 282, 689, 696, 284, 232, 249, 259, 704, 416, - 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, - 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, - 365, 385, 386, 387, 389, 296, 220, 736, 723, 0, - 0, 672, 739, 642, 660, 748, 663, 666, 706, 621, - 685, 314, 657, 0, 646, 617, 653, 618, 644, 674, - 223, 678, 641, 725, 688, 738, 272, 0, 623, 647, - 328, 662, 176, 708, 366, 209, 281, 279, 394, 233, - 226, 222, 208, 256, 287, 326, 384, 320, 745, 276, - 695, 0, 375, 299, 0, 0, 0, 676, 728, 683, - 719, 671, 707, 631, 694, 740, 658, 703, 741, 262, - 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 700, 735, 655, 702, 219, 260, 225, 218, - 391, 705, 751, 616, 697, 0, 619, 622, 747, 731, - 650, 651, 0, 0, 0, 0, 0, 0, 0, 675, - 684, 716, 669, 0, 0, 0, 0, 0, 0, 1468, - 0, 648, 0, 693, 0, 0, 0, 627, 620, 0, - 0, 0, 0, 673, 0, 0, 0, 630, 0, 649, - 717, 0, 614, 245, 624, 300, 0, 721, 730, 670, - 423, 734, 668, 667, 737, 712, 628, 727, 661, 271, - 626, 268, 171, 187, 0, 659, 310, 349, 355, 726, - 645, 654, 210, 652, 353, 324, 408, 194, 235, 346, - 329, 351, 692, 710, 352, 277, 396, 341, 406, 424, - 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, - 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, - 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, - 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, - 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, - 190, 419, 183, 926, 418, 306, 395, 403, 295, 286, - 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, - 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, - 195, 196, 197, 640, 230, 234, 240, 242, 0, 248, - 255, 273, 317, 338, 336, 342, 722, 390, 407, 415, - 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, - 373, 269, 278, 714, 750, 323, 354, 200, 410, 374, - 635, 639, 633, 634, 686, 687, 636, 742, 743, 744, - 718, 629, 0, 637, 638, 0, 724, 732, 733, 691, - 170, 184, 274, 746, 343, 238, 436, 417, 413, 615, - 632, 216, 643, 0, 0, 656, 664, 665, 677, 679, - 680, 681, 682, 690, 698, 699, 701, 709, 711, 713, - 715, 720, 729, 749, 172, 173, 185, 193, 203, 215, - 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, - 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, - 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, - 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, - 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, - 247, 405, 427, 0, 282, 689, 696, 284, 232, 249, - 259, 704, 416, 379, 189, 350, 239, 178, 206, 192, - 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, - 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 736, 723, 0, 0, 672, 739, 642, 660, 748, 663, - 666, 706, 621, 685, 314, 657, 0, 646, 617, 653, - 618, 644, 674, 223, 678, 641, 725, 688, 738, 272, - 0, 623, 647, 328, 662, 176, 708, 366, 209, 281, - 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, - 320, 745, 276, 695, 0, 375, 299, 0, 0, 0, - 676, 728, 683, 719, 671, 707, 631, 694, 740, 658, - 703, 741, 262, 207, 175, 311, 376, 237, 71, 0, - 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 700, 735, 655, 702, 219, - 260, 225, 218, 391, 705, 751, 616, 697, 0, 619, + 218, 391, 0, 0, 705, 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, 669, 0, 0, 0, 0, - 0, 0, 0, 0, 648, 0, 693, 0, 0, 0, + 0, 0, 1915, 0, 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, 668, 667, 737, 712, 628, @@ -1901,290 +1744,480 @@ var yyAct = [...]int{ 694, 740, 658, 703, 741, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 700, 735, - 655, 702, 219, 260, 225, 218, 391, 705, 751, 616, - 697, 0, 619, 622, 747, 731, 650, 651, 0, 0, - 0, 0, 0, 0, 0, 675, 684, 716, 669, 0, - 0, 0, 0, 0, 0, 0, 0, 648, 0, 693, - 0, 0, 0, 627, 620, 0, 0, 0, 0, 673, - 0, 0, 0, 630, 0, 649, 717, 0, 614, 245, - 624, 300, 0, 721, 730, 670, 423, 734, 668, 667, - 737, 712, 628, 727, 661, 271, 626, 268, 171, 187, - 0, 659, 310, 349, 355, 726, 645, 654, 210, 652, - 353, 324, 408, 194, 235, 346, 329, 351, 692, 710, - 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, - 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, - 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, - 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, - 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, - 212, 313, 399, 400, 211, 437, 190, 419, 183, 926, - 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, - 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, - 0, 177, 0, 377, 412, 438, 195, 196, 197, 640, - 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, - 336, 342, 722, 390, 407, 415, 422, 428, 429, 433, - 430, 431, 434, 305, 191, 254, 373, 269, 278, 714, - 750, 323, 354, 200, 410, 374, 635, 639, 633, 634, - 686, 687, 636, 742, 743, 744, 718, 629, 0, 637, - 638, 0, 724, 732, 733, 691, 170, 184, 274, 746, - 343, 238, 436, 417, 413, 615, 632, 216, 643, 0, - 0, 656, 664, 665, 677, 679, 680, 681, 682, 690, - 698, 699, 701, 709, 711, 713, 715, 720, 729, 749, - 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, - 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, - 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, - 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, - 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, - 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, - 282, 689, 696, 284, 232, 249, 259, 704, 416, 379, - 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, - 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, - 385, 386, 387, 389, 296, 220, 736, 723, 0, 0, - 672, 739, 642, 660, 748, 663, 666, 706, 621, 685, - 314, 657, 0, 646, 617, 653, 618, 644, 674, 223, - 678, 641, 725, 688, 738, 272, 0, 623, 647, 328, - 662, 176, 708, 366, 209, 281, 279, 394, 233, 226, - 222, 208, 256, 287, 326, 384, 320, 745, 276, 695, - 0, 375, 299, 0, 0, 0, 676, 728, 683, 719, - 671, 707, 631, 694, 740, 658, 703, 741, 262, 207, - 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 700, 735, 655, 702, 219, 260, 225, 218, 391, - 705, 751, 616, 697, 0, 619, 622, 747, 731, 650, - 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, - 716, 669, 0, 0, 0, 0, 0, 0, 0, 0, - 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, - 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, - 0, 614, 245, 624, 300, 0, 721, 730, 670, 423, - 734, 668, 667, 737, 712, 628, 727, 661, 271, 626, - 268, 171, 187, 0, 659, 310, 349, 355, 726, 645, - 654, 210, 652, 353, 324, 408, 194, 235, 346, 329, - 351, 692, 710, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 625, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 613, 752, 607, 606, - 269, 278, 714, 750, 323, 354, 200, 410, 374, 635, - 639, 633, 634, 686, 687, 636, 742, 743, 744, 718, - 629, 0, 637, 638, 0, 724, 732, 733, 691, 170, - 184, 274, 746, 343, 238, 436, 417, 413, 615, 632, - 216, 643, 0, 0, 656, 664, 665, 677, 679, 680, - 681, 682, 690, 698, 699, 701, 709, 711, 713, 715, - 720, 729, 749, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 689, 696, 284, 232, 249, 259, - 704, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 736, - 723, 0, 0, 672, 739, 642, 660, 748, 663, 666, - 706, 621, 685, 314, 657, 0, 646, 617, 653, 618, - 644, 674, 223, 678, 641, 725, 688, 738, 272, 0, - 623, 647, 328, 662, 176, 708, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 745, 276, 695, 0, 375, 299, 0, 0, 0, 676, - 728, 683, 719, 671, 707, 631, 694, 740, 658, 703, - 741, 262, 207, 175, 311, 376, 237, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 700, 735, 655, 702, 219, 260, - 225, 218, 391, 705, 751, 616, 697, 0, 619, 622, - 747, 731, 650, 651, 0, 0, 0, 0, 0, 0, - 0, 675, 684, 716, 669, 0, 0, 0, 0, 0, - 0, 0, 0, 648, 0, 693, 0, 0, 0, 627, - 620, 0, 0, 0, 0, 673, 0, 0, 0, 630, - 0, 649, 717, 0, 614, 245, 624, 300, 0, 721, - 730, 670, 423, 734, 668, 667, 737, 712, 628, 727, - 661, 271, 626, 268, 171, 187, 0, 659, 310, 349, - 355, 726, 645, 654, 210, 652, 353, 324, 408, 194, - 235, 346, 329, 351, 692, 710, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 1094, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 625, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 640, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 722, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 613, - 752, 607, 606, 269, 278, 714, 750, 323, 354, 200, - 410, 374, 635, 639, 633, 634, 686, 687, 636, 742, - 743, 744, 718, 629, 0, 637, 638, 0, 724, 732, - 733, 691, 170, 184, 274, 746, 343, 238, 436, 417, - 413, 615, 632, 216, 643, 0, 0, 656, 664, 665, - 677, 679, 680, 681, 682, 690, 698, 699, 701, 709, - 711, 713, 715, 720, 729, 749, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 689, 696, 284, - 232, 249, 259, 704, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 736, 723, 0, 0, 672, 739, 642, 660, - 748, 663, 666, 706, 621, 685, 314, 657, 0, 646, - 617, 653, 618, 644, 674, 223, 678, 641, 725, 688, - 738, 272, 0, 623, 647, 328, 662, 176, 708, 366, - 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, - 326, 384, 320, 745, 276, 695, 0, 375, 299, 0, - 0, 0, 676, 728, 683, 719, 671, 707, 631, 694, - 740, 658, 703, 741, 262, 207, 175, 311, 376, 237, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 700, 735, 655, - 702, 219, 260, 225, 218, 391, 705, 751, 616, 697, - 0, 619, 622, 747, 731, 650, 651, 0, 0, 0, - 0, 0, 0, 0, 675, 684, 716, 669, 0, 0, - 0, 0, 0, 0, 0, 0, 648, 0, 693, 0, - 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, - 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, - 300, 0, 721, 730, 670, 423, 734, 668, 667, 737, - 712, 628, 727, 661, 271, 626, 268, 171, 187, 0, - 659, 310, 349, 355, 726, 645, 654, 210, 652, 353, - 324, 408, 194, 235, 346, 329, 351, 692, 710, 352, - 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, - 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, - 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, - 179, 383, 604, 199, 364, 0, 0, 0, 181, 402, - 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, - 313, 399, 400, 211, 437, 190, 419, 183, 625, 418, - 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, - 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, - 177, 0, 377, 412, 438, 195, 196, 197, 640, 230, - 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, - 342, 722, 390, 407, 415, 422, 428, 429, 433, 430, - 431, 434, 613, 752, 607, 606, 269, 278, 714, 750, - 323, 354, 200, 410, 374, 635, 639, 633, 634, 686, - 687, 636, 742, 743, 744, 718, 629, 0, 637, 638, - 0, 724, 732, 733, 691, 170, 184, 274, 746, 343, - 238, 436, 417, 413, 615, 632, 216, 643, 0, 0, - 656, 664, 665, 677, 679, 680, 681, 682, 690, 698, - 699, 701, 709, 711, 713, 715, 720, 729, 749, 172, - 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, - 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, - 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, - 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, - 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, - 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, - 689, 696, 284, 232, 249, 259, 704, 416, 379, 189, - 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, - 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 314, 0, 0, 1394, 0, - 504, 0, 0, 0, 223, 0, 503, 0, 0, 0, - 272, 0, 0, 1395, 328, 0, 176, 0, 366, 209, - 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, - 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, - 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, - 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, - 0, 0, 167, 168, 169, 525, 524, 527, 528, 529, - 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, - 219, 260, 225, 218, 391, 0, 0, 0, 501, 518, - 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 515, 516, 594, 0, 0, 0, 562, 0, 517, - 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, - 0, 561, 0, 0, 423, 0, 0, 559, 0, 0, - 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, - 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, - 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, - 354, 200, 410, 374, 549, 560, 555, 556, 553, 554, - 548, 552, 551, 550, 563, 540, 541, 542, 543, 545, - 0, 557, 558, 544, 170, 184, 274, 0, 343, 238, - 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, - 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, - 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, - 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, - 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, - 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, - 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, - 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, - 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 0, 0, 0, 504, - 0, 0, 0, 223, 0, 503, 0, 0, 0, 272, - 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, - 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, - 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, - 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, - 1507, 0, 262, 207, 175, 311, 376, 237, 71, 0, - 0, 167, 168, 169, 525, 524, 527, 528, 529, 530, - 0, 0, 198, 526, 205, 531, 532, 533, 1508, 219, - 260, 225, 218, 391, 0, 0, 0, 501, 518, 0, - 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 515, 516, 0, 0, 0, 0, 562, 0, 517, 0, - 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, - 561, 0, 0, 423, 0, 0, 559, 0, 0, 0, - 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, - 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, - 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, + 655, 702, 219, 260, 225, 218, 391, 0, 0, 705, + 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, + 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, + 669, 0, 0, 0, 0, 0, 0, 1758, 0, 648, + 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, + 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, + 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, + 668, 667, 737, 712, 628, 727, 661, 271, 626, 268, + 171, 187, 0, 659, 310, 349, 355, 726, 645, 654, + 210, 652, 353, 324, 408, 194, 235, 346, 329, 351, + 692, 710, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 926, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 640, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 722, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 714, 750, 323, 354, 200, 410, 374, 635, 639, + 633, 634, 686, 687, 636, 742, 743, 744, 718, 629, + 0, 637, 638, 0, 724, 732, 733, 691, 170, 184, + 274, 746, 343, 238, 436, 417, 413, 615, 632, 216, + 643, 0, 0, 656, 664, 665, 677, 679, 680, 681, + 682, 690, 698, 699, 701, 709, 711, 713, 715, 720, + 729, 749, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 689, 696, 284, 232, 249, 259, 704, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 736, 723, + 0, 0, 672, 739, 642, 660, 748, 663, 666, 706, + 621, 685, 314, 657, 0, 646, 617, 653, 618, 644, + 674, 223, 678, 641, 725, 688, 738, 272, 0, 623, + 647, 328, 662, 176, 708, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 745, + 276, 695, 0, 375, 299, 0, 0, 0, 676, 728, + 683, 719, 671, 707, 631, 694, 740, 658, 703, 741, + 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 700, 735, 655, 702, 219, 260, 225, + 218, 391, 0, 0, 705, 751, 616, 697, 0, 619, + 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, + 0, 0, 675, 684, 716, 669, 0, 0, 0, 0, + 0, 0, 1468, 0, 648, 0, 693, 0, 0, 0, + 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, + 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, + 721, 730, 670, 423, 734, 668, 667, 737, 712, 628, + 727, 661, 271, 626, 268, 171, 187, 0, 659, 310, + 349, 355, 726, 645, 654, 210, 652, 353, 324, 408, + 194, 235, 346, 329, 351, 692, 710, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, - 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, + 400, 211, 437, 190, 419, 183, 926, 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, - 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, - 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, + 377, 412, 438, 195, 196, 197, 640, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, - 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, - 200, 410, 374, 549, 560, 555, 556, 553, 554, 548, - 552, 551, 550, 563, 540, 541, 542, 543, 545, 0, - 557, 558, 544, 170, 184, 274, 0, 343, 238, 436, - 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, + 305, 191, 254, 373, 269, 278, 714, 750, 323, 354, + 200, 410, 374, 635, 639, 633, 634, 686, 687, 636, + 742, 743, 744, 718, 629, 0, 637, 638, 0, 724, + 732, 733, 691, 170, 184, 274, 746, 343, 238, 436, + 417, 413, 615, 632, 216, 643, 0, 0, 656, 664, + 665, 677, 679, 680, 681, 682, 690, 698, 699, 701, + 709, 711, 713, 715, 720, 729, 749, 172, 173, 185, + 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, + 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, + 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, + 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, + 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, + 409, 421, 426, 247, 405, 427, 0, 282, 689, 696, + 284, 232, 249, 259, 704, 416, 379, 189, 350, 239, + 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, + 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, + 389, 296, 220, 736, 723, 0, 0, 672, 739, 642, + 660, 748, 663, 666, 706, 621, 685, 314, 657, 0, + 646, 617, 653, 618, 644, 674, 223, 678, 641, 725, + 688, 738, 272, 0, 623, 647, 328, 662, 176, 708, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 745, 276, 695, 0, 375, 299, + 0, 0, 0, 676, 728, 683, 719, 671, 707, 631, + 694, 740, 658, 703, 741, 262, 207, 175, 311, 376, + 237, 71, 0, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 700, 735, + 655, 702, 219, 260, 225, 218, 391, 0, 0, 705, + 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, + 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, + 669, 0, 0, 0, 0, 0, 0, 0, 0, 648, + 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, + 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, + 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, + 668, 667, 737, 712, 628, 727, 661, 271, 626, 268, + 171, 187, 0, 659, 310, 349, 355, 726, 645, 654, + 210, 652, 353, 324, 408, 194, 235, 346, 329, 351, + 692, 710, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 926, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 640, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 722, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 714, 750, 323, 354, 200, 410, 374, 635, 639, + 633, 634, 686, 687, 636, 742, 743, 744, 718, 629, + 0, 637, 638, 0, 724, 732, 733, 691, 170, 184, + 274, 746, 343, 238, 436, 417, 413, 615, 632, 216, + 643, 0, 0, 656, 664, 665, 677, 679, 680, 681, + 682, 690, 698, 699, 701, 709, 711, 713, 715, 720, + 729, 749, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 689, 696, 284, 232, 249, 259, 704, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 736, 723, + 0, 0, 672, 739, 642, 660, 748, 663, 666, 706, + 621, 685, 314, 657, 0, 646, 617, 653, 618, 644, + 674, 223, 678, 641, 725, 688, 738, 272, 0, 623, + 647, 328, 662, 176, 708, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 745, + 276, 695, 0, 375, 299, 0, 0, 0, 676, 728, + 683, 719, 671, 707, 631, 694, 740, 658, 703, 741, + 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 700, 735, 655, 702, 219, 260, 225, + 218, 391, 0, 0, 705, 751, 616, 697, 0, 619, + 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, + 0, 0, 675, 684, 716, 669, 0, 0, 0, 0, + 0, 0, 0, 0, 648, 0, 693, 0, 0, 0, + 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, + 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, + 721, 730, 670, 423, 734, 668, 667, 737, 712, 628, + 727, 661, 271, 626, 268, 171, 187, 0, 659, 310, + 349, 355, 726, 645, 654, 210, 652, 353, 324, 408, + 194, 235, 346, 329, 351, 692, 710, 352, 277, 396, + 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, + 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, + 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, + 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, + 400, 211, 437, 190, 419, 183, 926, 418, 306, 395, + 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, + 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, + 377, 412, 438, 195, 196, 197, 640, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 722, + 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, + 305, 191, 254, 373, 269, 278, 714, 750, 323, 354, + 200, 410, 374, 635, 639, 633, 634, 686, 687, 636, + 742, 743, 744, 718, 629, 0, 637, 638, 0, 724, + 732, 733, 691, 170, 184, 274, 746, 343, 238, 436, + 417, 413, 615, 632, 216, 643, 0, 0, 656, 664, + 665, 677, 679, 680, 681, 682, 690, 698, 699, 701, + 709, 711, 713, 715, 720, 729, 749, 172, 173, 185, + 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, + 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, + 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, + 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, + 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, + 409, 421, 426, 247, 405, 427, 0, 282, 689, 696, + 284, 232, 249, 259, 704, 416, 379, 189, 350, 239, + 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, + 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, + 389, 296, 220, 736, 723, 0, 0, 672, 739, 642, + 660, 748, 663, 666, 706, 621, 685, 314, 657, 0, + 646, 617, 653, 618, 644, 674, 223, 678, 641, 725, + 688, 738, 272, 0, 623, 647, 328, 662, 176, 708, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 745, 276, 695, 0, 375, 299, + 0, 0, 0, 676, 728, 683, 719, 671, 707, 631, + 694, 740, 658, 703, 741, 262, 207, 175, 311, 376, + 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 700, 735, + 655, 702, 219, 260, 225, 218, 391, 0, 0, 705, + 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, + 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, + 669, 0, 0, 0, 0, 0, 0, 0, 0, 648, + 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, + 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, + 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, + 668, 667, 737, 712, 628, 727, 661, 271, 626, 268, + 171, 187, 0, 659, 310, 349, 355, 726, 645, 654, + 210, 652, 353, 324, 408, 194, 235, 346, 329, 351, + 692, 710, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 625, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 640, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 722, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 613, 752, 607, 606, 269, + 278, 714, 750, 323, 354, 200, 410, 374, 635, 639, + 633, 634, 686, 687, 636, 742, 743, 744, 718, 629, + 0, 637, 638, 0, 724, 732, 733, 691, 170, 184, + 274, 746, 343, 238, 436, 417, 413, 615, 632, 216, + 643, 0, 0, 656, 664, 665, 677, 679, 680, 681, + 682, 690, 698, 699, 701, 709, 711, 713, 715, 720, + 729, 749, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 689, 696, 284, 232, 249, 259, 704, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 736, 723, + 0, 0, 672, 739, 642, 660, 748, 663, 666, 706, + 621, 685, 314, 657, 0, 646, 617, 653, 618, 644, + 674, 223, 678, 641, 725, 688, 738, 272, 0, 623, + 647, 328, 662, 176, 708, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 745, + 276, 695, 0, 375, 299, 0, 0, 0, 676, 728, + 683, 719, 671, 707, 631, 694, 740, 658, 703, 741, + 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 700, 735, 655, 702, 219, 260, 225, + 218, 391, 0, 0, 705, 751, 616, 697, 0, 619, + 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, + 0, 0, 675, 684, 716, 669, 0, 0, 0, 0, + 0, 0, 0, 0, 648, 0, 693, 0, 0, 0, + 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, + 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, + 721, 730, 670, 423, 734, 668, 667, 737, 712, 628, + 727, 661, 271, 626, 268, 171, 187, 0, 659, 310, + 349, 355, 726, 645, 654, 210, 652, 353, 324, 408, + 194, 235, 346, 329, 351, 692, 710, 352, 277, 396, + 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, + 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, + 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, + 1094, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, + 400, 211, 437, 190, 419, 183, 625, 418, 306, 395, + 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, + 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, + 377, 412, 438, 195, 196, 197, 640, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 722, + 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, + 613, 752, 607, 606, 269, 278, 714, 750, 323, 354, + 200, 410, 374, 635, 639, 633, 634, 686, 687, 636, + 742, 743, 744, 718, 629, 0, 637, 638, 0, 724, + 732, 733, 691, 170, 184, 274, 746, 343, 238, 436, + 417, 413, 615, 632, 216, 643, 0, 0, 656, 664, + 665, 677, 679, 680, 681, 682, 690, 698, 699, 701, + 709, 711, 713, 715, 720, 729, 749, 172, 173, 185, + 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, + 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, + 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, + 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, + 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, + 409, 421, 426, 247, 405, 427, 0, 282, 689, 696, + 284, 232, 249, 259, 704, 416, 379, 189, 350, 239, + 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, + 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, + 389, 296, 220, 736, 723, 0, 0, 672, 739, 642, + 660, 748, 663, 666, 706, 621, 685, 314, 657, 0, + 646, 617, 653, 618, 644, 674, 223, 678, 641, 725, + 688, 738, 272, 0, 623, 647, 328, 662, 176, 708, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 745, 276, 695, 0, 375, 299, + 0, 0, 0, 676, 728, 683, 719, 671, 707, 631, + 694, 740, 658, 703, 741, 262, 207, 175, 311, 376, + 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 700, 735, + 655, 702, 219, 260, 225, 218, 391, 0, 0, 705, + 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, + 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, + 669, 0, 0, 0, 0, 0, 0, 0, 0, 648, + 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, + 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, + 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, + 668, 667, 737, 712, 628, 727, 661, 271, 626, 268, + 171, 187, 0, 659, 310, 349, 355, 726, 645, 654, + 210, 652, 353, 324, 408, 194, 235, 346, 329, 351, + 692, 710, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 604, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 625, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 640, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 722, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 613, 752, 607, 606, 269, + 278, 714, 750, 323, 354, 200, 410, 374, 635, 639, + 633, 634, 686, 687, 636, 742, 743, 744, 718, 629, + 0, 637, 638, 0, 724, 732, 733, 691, 170, 184, + 274, 746, 343, 238, 436, 417, 413, 615, 632, 216, + 643, 0, 0, 656, 664, 665, 677, 679, 680, 681, + 682, 690, 698, 699, 701, 709, 711, 713, 715, 720, + 729, 749, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 689, 696, 284, 232, 249, 259, 704, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, + 0, 1394, 0, 504, 0, 0, 0, 223, 0, 503, + 0, 0, 0, 272, 0, 0, 1395, 328, 0, 176, + 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, + 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, + 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, + 376, 237, 71, 0, 0, 167, 168, 169, 525, 524, + 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, + 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, + 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 515, 516, 594, 0, + 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, + 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 245, 0, 300, 0, 561, 0, 0, 423, + 0, 0, 559, 0, 0, 0, 0, 0, 271, 0, + 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, + 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, + 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 0, 0, 323, 354, 200, 410, 374, 549, + 560, 555, 556, 553, 554, 548, 552, 551, 550, 563, + 540, 541, 542, 543, 545, 0, 557, 558, 544, 170, + 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, + 0, 0, 0, 0, 504, 0, 0, 0, 223, 0, + 503, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, + 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, + 0, 0, 0, 0, 0, 1507, 0, 262, 207, 175, + 311, 376, 237, 71, 0, 0, 167, 168, 169, 525, + 524, 527, 528, 529, 530, 0, 0, 198, 526, 205, + 531, 532, 533, 1508, 219, 260, 225, 218, 391, 0, + 0, 0, 0, 0, 501, 518, 0, 546, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 515, 516, 0, + 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, + 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, + 423, 0, 0, 559, 0, 0, 0, 0, 0, 271, + 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, + 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, + 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, + 549, 560, 555, 556, 553, 554, 548, 552, 551, 550, + 563, 540, 541, 542, 543, 545, 0, 557, 558, 544, + 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, + 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 314, 0, 0, 0, 0, 504, 0, 0, 0, 223, + 0, 503, 0, 0, 0, 272, 0, 0, 0, 328, + 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, + 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, + 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, + 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, + 175, 311, 376, 237, 71, 0, 581, 167, 168, 169, + 525, 524, 527, 528, 529, 530, 0, 0, 198, 526, + 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, + 0, 0, 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, - 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, - 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, - 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, - 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, - 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, - 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, - 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, - 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 0, 0, 0, 504, 0, - 0, 0, 223, 0, 503, 0, 0, 0, 272, 0, - 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, - 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, - 0, 262, 207, 175, 311, 376, 237, 71, 0, 581, - 167, 168, 169, 525, 524, 527, 528, 529, 530, 0, - 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, - 225, 218, 391, 0, 0, 0, 501, 518, 0, 546, + 0, 0, 0, 0, 0, 0, 0, 0, 515, 516, + 0, 0, 0, 0, 562, 0, 517, 0, 0, 510, + 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, + 0, 423, 0, 0, 559, 0, 0, 0, 0, 0, + 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, + 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, + 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, + 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, + 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, + 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, + 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, + 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, + 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, + 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, + 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, + 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, + 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, + 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, + 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, + 374, 549, 560, 555, 556, 553, 554, 548, 552, 551, + 550, 563, 540, 541, 542, 543, 545, 0, 557, 558, + 544, 170, 184, 274, 0, 343, 238, 436, 417, 413, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, + 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, + 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, + 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, + 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, + 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, + 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, + 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, + 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, + 220, 314, 0, 0, 0, 0, 504, 0, 0, 0, + 223, 0, 503, 0, 0, 0, 272, 0, 0, 0, + 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, + 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, + 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, + 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, + 207, 175, 311, 376, 237, 71, 0, 0, 167, 168, + 169, 525, 524, 527, 528, 529, 530, 0, 0, 198, + 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, + 391, 0, 0, 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, - 516, 0, 0, 0, 0, 562, 0, 517, 0, 0, + 516, 594, 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, @@ -2225,64 +2258,204 @@ var yyAct = [...]int{ 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, - 168, 169, 525, 524, 527, 528, 529, 530, 0, 0, + 168, 169, 525, 1412, 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, - 218, 391, 0, 0, 0, 501, 518, 0, 546, 0, + 218, 391, 0, 0, 0, 0, 0, 501, 518, 0, + 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 515, 516, - 594, 0, 0, 0, 562, 0, 517, 0, 0, 510, - 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, - 0, 423, 0, 0, 559, 0, 0, 0, 0, 0, - 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, - 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, - 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, - 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, - 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, - 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, - 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, - 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, - 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, - 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, - 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, - 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, - 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, - 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, - 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, - 374, 549, 560, 555, 556, 553, 554, 548, 552, 551, - 550, 563, 540, 541, 542, 543, 545, 0, 557, 558, - 544, 170, 184, 274, 0, 343, 238, 436, 417, 413, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 515, 516, 594, 0, 0, 0, 562, 0, 517, 0, + 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, + 561, 0, 0, 423, 0, 0, 559, 0, 0, 0, + 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, + 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, + 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, + 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, + 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, + 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, + 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, + 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, + 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, + 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, + 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, + 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, + 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, + 200, 410, 374, 549, 560, 555, 556, 553, 554, 548, + 552, 551, 550, 563, 540, 541, 542, 543, 545, 0, + 557, 558, 544, 170, 184, 274, 0, 343, 238, 436, + 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, - 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, - 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, - 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, - 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, - 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, - 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, - 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, - 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 0, 0, 0, 504, 0, 0, 0, - 223, 0, 503, 0, 0, 0, 272, 0, 0, 0, - 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, - 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, - 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, - 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, - 207, 175, 311, 376, 237, 71, 0, 0, 167, 168, - 169, 525, 1412, 527, 528, 529, 530, 0, 0, 198, - 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, - 391, 0, 0, 0, 501, 518, 0, 546, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, + 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, + 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, + 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, + 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, + 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, + 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, + 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, + 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, + 389, 296, 220, 314, 0, 0, 0, 0, 504, 0, + 0, 0, 223, 0, 503, 0, 0, 0, 272, 0, + 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, + 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, + 0, 262, 207, 175, 311, 376, 237, 71, 0, 0, + 167, 168, 169, 525, 1409, 527, 528, 529, 530, 0, + 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, + 225, 218, 391, 0, 0, 0, 0, 0, 501, 518, + 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 515, 516, 594, 0, 0, 0, 562, 0, 517, + 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, + 0, 561, 0, 0, 423, 0, 0, 559, 0, 0, + 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, + 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, + 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, + 354, 200, 410, 374, 549, 560, 555, 556, 553, 554, + 548, 552, 551, 550, 563, 540, 541, 542, 543, 545, + 0, 557, 558, 544, 170, 184, 274, 0, 343, 238, + 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, + 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 574, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, + 0, 0, 504, 0, 0, 0, 223, 0, 503, 0, + 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, + 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, + 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, + 237, 71, 0, 0, 167, 168, 169, 525, 524, 527, + 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, + 533, 0, 219, 260, 225, 218, 391, 0, 0, 0, + 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 515, 516, 0, 0, 0, + 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, + 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 245, 0, 300, 0, 561, 0, 0, 423, 0, + 0, 559, 0, 0, 0, 0, 0, 271, 0, 268, + 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, + 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, + 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 0, 0, 323, 354, 200, 410, 374, 549, 560, + 555, 556, 553, 554, 548, 552, 551, 550, 563, 540, + 541, 542, 543, 545, 0, 557, 558, 544, 170, 184, + 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, + 0, 0, 0, 504, 0, 0, 0, 223, 0, 503, + 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, + 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, + 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, + 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, + 376, 237, 71, 0, 0, 167, 168, 169, 525, 524, + 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, + 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, + 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 515, 516, 0, 0, + 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, + 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 245, 0, 300, 0, 561, 0, 0, 423, + 0, 0, 559, 0, 0, 0, 0, 0, 271, 0, + 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, + 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, + 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 0, 0, 323, 354, 200, 410, 374, 549, + 560, 555, 556, 553, 554, 548, 552, 551, 550, 563, + 540, 541, 542, 543, 545, 0, 557, 558, 544, 170, + 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, + 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, + 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, + 311, 376, 237, 71, 0, 0, 167, 168, 169, 525, + 524, 527, 528, 529, 530, 0, 0, 198, 526, 205, + 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, + 0, 0, 0, 0, 0, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 515, 516, 594, + 0, 0, 0, 0, 0, 0, 0, 515, 516, 0, 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, - 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, + 329, 351, 2210, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, @@ -2310,63 +2483,16 @@ var yyAct = [...]int{ 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 0, 0, 0, 504, 0, 0, 0, 223, - 0, 503, 0, 0, 0, 272, 0, 0, 0, 328, + 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, + 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, - 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, - 525, 1409, 527, 528, 529, 530, 0, 0, 198, 526, + 175, 311, 376, 237, 71, 0, 581, 167, 168, 169, + 525, 524, 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, - 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 515, 516, 594, 0, - 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, - 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 245, 0, 300, 0, 561, 0, 0, 423, - 0, 0, 559, 0, 0, 0, 0, 0, 271, 0, - 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, - 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, - 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, - 269, 278, 0, 0, 323, 354, 200, 410, 374, 549, - 560, 555, 556, 553, 554, 548, 552, 551, 550, 563, - 540, 541, 542, 543, 545, 0, 557, 558, 544, 170, - 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, - 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 574, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 314, 0, 0, 0, 0, 504, 0, 0, - 0, 223, 0, 503, 0, 0, 0, 272, 0, 0, - 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, - 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, - 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, - 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, - 168, 169, 525, 524, 527, 528, 529, 530, 0, 0, - 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, - 218, 391, 0, 0, 0, 501, 518, 0, 546, 0, + 0, 0, 0, 0, 0, 0, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, 516, 0, 0, 0, 0, 562, 0, 517, 0, 0, 510, @@ -2403,8 +2529,8 @@ var yyAct = [...]int{ 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 0, 0, 0, 504, 0, 0, 0, - 223, 0, 503, 0, 0, 0, 272, 0, 0, 0, + 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, + 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, @@ -2412,236 +2538,145 @@ var yyAct = [...]int{ 207, 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, 525, 524, 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, - 391, 0, 0, 0, 501, 518, 0, 546, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 515, 516, 0, - 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, - 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, - 423, 0, 0, 559, 0, 0, 0, 0, 0, 271, - 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, - 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, - 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, - 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, - 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, - 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, - 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, - 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, - 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, - 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, - 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, - 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, - 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, - 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, - 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, - 549, 560, 555, 556, 553, 554, 548, 552, 551, 550, - 563, 540, 541, 542, 543, 545, 0, 557, 558, 544, - 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, - 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, - 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, - 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, - 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, - 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, - 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, - 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, - 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, - 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, - 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, - 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, - 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, - 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, - 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, - 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, - 525, 524, 527, 528, 529, 530, 0, 0, 198, 526, - 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, - 0, 0, 0, 0, 518, 0, 546, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 515, 516, 0, 0, - 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, - 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 245, 0, 300, 0, 561, 0, 0, 423, - 0, 0, 559, 0, 0, 0, 0, 0, 271, 0, - 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, - 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, - 351, 2206, 0, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, - 269, 278, 0, 0, 323, 354, 200, 410, 374, 549, - 560, 555, 556, 553, 554, 548, 552, 551, 550, 563, - 540, 541, 542, 543, 545, 0, 557, 558, 544, 170, - 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, - 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, - 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, - 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, - 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, - 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, - 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, - 311, 376, 237, 71, 0, 581, 167, 168, 169, 525, - 524, 527, 528, 529, 530, 0, 0, 198, 526, 205, - 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, - 0, 0, 0, 518, 0, 546, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 515, 516, 0, 0, 0, - 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, - 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 245, 0, 300, 0, 561, 0, 0, 423, 0, - 0, 559, 0, 0, 0, 0, 0, 271, 0, 268, - 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, - 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, - 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, - 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, - 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, - 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, - 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, - 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, - 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, - 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, - 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, - 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, - 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, - 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, - 278, 0, 0, 323, 354, 200, 410, 374, 549, 560, - 555, 556, 553, 554, 548, 552, 551, 550, 563, 540, - 541, 542, 543, 545, 0, 557, 558, 544, 170, 184, - 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, + 391, 0, 0, 0, 0, 0, 0, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, + 516, 0, 0, 0, 0, 562, 0, 517, 0, 0, + 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, + 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, + 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 549, 560, 555, 556, 553, 554, 548, 552, + 551, 550, 563, 540, 541, 542, 543, 545, 0, 557, + 558, 544, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, - 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, - 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, - 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, - 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, - 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, - 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, - 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, - 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, - 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, - 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, - 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, - 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, - 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, - 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, - 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 71, 0, 0, 167, 168, 169, 525, 524, - 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, - 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, - 0, 0, 518, 0, 546, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, + 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, + 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, + 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 515, 516, 0, 0, 0, 0, - 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, - 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 245, 0, 300, 0, 561, 0, 0, 423, 0, 0, - 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, - 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, - 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, - 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, - 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, - 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, - 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, - 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, - 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, - 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, - 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, - 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, - 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, - 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, - 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, - 0, 0, 323, 354, 200, 410, 374, 549, 560, 555, - 556, 553, 554, 548, 552, 551, 550, 563, 540, 541, - 542, 543, 545, 0, 557, 558, 544, 170, 184, 274, - 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, + 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, + 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 969, 968, 978, 979, + 971, 972, 973, 974, 975, 976, 977, 970, 0, 0, + 980, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, + 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, + 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, + 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, + 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, + 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, + 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, + 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, + 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, + 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, + 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, + 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, + 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, + 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, + 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, + 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, - 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, - 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, - 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, - 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, - 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, - 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, - 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, - 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, - 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, - 0, 0, 0, 0, 0, 0, 223, 798, 0, 0, - 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, - 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, - 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, + 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, + 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, - 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, - 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, - 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, + 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, + 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, + 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, + 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, + 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, + 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, + 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, + 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, + 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, + 0, 0, 223, 798, 0, 0, 0, 0, 272, 0, + 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, + 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, - 0, 300, 0, 0, 0, 797, 423, 0, 0, 0, - 0, 0, 0, 794, 795, 271, 760, 268, 171, 187, - 788, 792, 310, 349, 355, 0, 0, 0, 210, 0, - 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, - 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, - 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, - 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, - 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, - 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, - 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, - 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, - 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, - 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, - 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, - 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, - 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, - 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, - 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, + 0, 0, 0, 797, 423, 0, 0, 0, 0, 0, + 0, 794, 795, 271, 760, 268, 171, 187, 788, 792, + 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, + 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, + 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, + 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, - 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, - 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, - 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, - 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, - 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, - 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, - 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, - 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, - 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, - 1072, 0, 0, 0, 0, 223, 0, 0, 0, 0, - 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, - 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, - 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, + 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 314, 0, 0, 0, 1072, 0, + 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, + 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, - 0, 0, 0, 167, 168, 169, 0, 1074, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 260, 225, 218, 391, 958, 959, 957, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, + 0, 167, 168, 169, 0, 1074, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, + 260, 225, 218, 391, 0, 0, 958, 959, 957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2694,190 +2729,191 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, - 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, - 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, - 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, - 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, - 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, - 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, - 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, - 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, - 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, - 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, - 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, - 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, - 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, - 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, - 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, - 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, + 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, + 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, + 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, + 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, + 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 184, 274, - 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, + 0, 0, 0, 1439, 0, 0, 0, 0, 223, 0, + 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, + 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, + 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, + 1441, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, - 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, - 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, - 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, - 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, - 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, - 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, - 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, - 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, - 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, - 0, 1439, 0, 0, 0, 0, 223, 0, 0, 0, - 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, - 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, - 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, - 237, 0, 0, 0, 167, 168, 169, 0, 1441, 0, - 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, - 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, + 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, + 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, + 329, 351, 0, 1437, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, + 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, + 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, + 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, + 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, + 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, + 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, - 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, - 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, - 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, - 353, 324, 408, 194, 235, 346, 329, 351, 0, 1437, - 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, - 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, - 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, - 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, - 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, - 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, - 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, - 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, - 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, - 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, - 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, - 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, - 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, - 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, + 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, + 271, 760, 268, 171, 187, 758, 0, 310, 349, 355, + 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, + 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, + 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, + 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, + 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, + 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, + 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, + 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, + 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, + 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, + 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, + 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, + 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, + 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, + 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, - 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, - 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, - 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, - 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, - 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, - 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, - 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, - 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, - 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, - 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, - 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, - 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, - 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, + 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, + 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, + 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, + 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, + 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, + 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, + 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, + 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, + 220, 314, 0, 0, 0, 1439, 0, 0, 0, 0, + 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, + 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, + 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, + 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, + 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, + 169, 0, 1441, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, + 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, - 0, 0, 0, 0, 271, 760, 268, 171, 187, 758, - 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, - 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, - 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, - 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, - 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, - 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, - 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, - 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, - 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, - 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, - 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, - 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, - 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, - 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, - 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, + 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, - 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, + 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, - 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, - 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, - 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, - 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, - 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, - 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, - 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, - 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 314, 0, 0, 0, 1439, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 35, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, - 0, 0, 167, 168, 169, 0, 1441, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, - 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, - 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, - 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, - 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, - 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, - 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, - 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, - 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, - 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, - 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, - 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, - 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, - 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, - 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 35, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, - 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, - 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, - 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, - 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, - 237, 71, 0, 0, 167, 168, 169, 0, 0, 0, - 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, - 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, @@ -2924,186 +2960,187 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, - 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, - 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, - 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, - 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, - 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, - 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, - 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, - 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, - 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, - 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, - 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, - 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, - 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, - 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, - 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, - 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, - 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, + 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, + 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, + 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, + 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, + 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, + 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, + 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, + 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, + 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, + 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, + 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, + 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, + 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, + 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, + 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, + 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, + 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 184, 274, + 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, + 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, + 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, + 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, + 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, + 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, + 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, + 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, + 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, + 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, + 0, 0, 0, 0, 0, 0, 223, 0, 1105, 0, + 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, + 237, 0, 0, 0, 167, 168, 169, 0, 1104, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, + 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, - 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, - 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, - 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, - 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, - 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, - 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, - 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, - 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, - 0, 0, 0, 0, 223, 0, 1105, 0, 0, 0, - 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, - 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, - 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, - 0, 0, 167, 168, 169, 0, 1104, 0, 0, 0, - 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, - 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, + 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, + 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, + 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, + 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, + 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, - 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, - 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, - 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, - 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, - 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, - 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, + 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, + 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, + 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, + 376, 237, 0, 0, 581, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, - 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, - 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, - 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, - 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, - 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, - 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, - 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, - 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, - 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, - 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, - 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, - 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, - 581, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, + 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, + 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, + 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, + 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, - 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, - 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, - 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, - 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, - 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, - 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, - 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, - 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, - 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, - 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, - 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, - 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, - 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, - 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, - 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, - 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, - 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, - 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, + 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, + 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, + 311, 376, 237, 71, 0, 0, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, - 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, - 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, - 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, - 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, - 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, - 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, - 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, - 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, - 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, - 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 262, 207, 175, 311, 376, 237, 71, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, - 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, + 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, + 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, + 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, - 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, - 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, - 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, - 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, - 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, - 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, - 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, - 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, - 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, - 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, - 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, + 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, + 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, + 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, + 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, + 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, + 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, + 0, 1441, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 1441, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, - 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3146,193 +3183,194 @@ var yyAct = [...]int{ 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, - 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, - 169, 0, 1074, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, - 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, - 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, - 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, - 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, - 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, - 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, - 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, - 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, - 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, - 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, - 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, - 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, - 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, - 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, - 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, - 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, - 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, + 169, 0, 1074, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, + 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, - 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, - 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, - 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, - 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, - 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, - 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, - 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, - 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, - 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, - 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, - 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, - 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, - 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, - 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, + 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, + 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, + 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, + 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, - 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, - 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, - 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, - 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, - 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, + 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, + 218, 391, 0, 0, 0, 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, - 184, 274, 1344, 343, 238, 436, 417, 413, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, - 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 1227, 0, 0, 0, 0, 0, 0, 223, 0, - 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, - 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, - 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, - 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, - 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, - 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, + 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, + 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, + 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, + 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, + 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, + 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, + 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, + 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, + 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, + 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, + 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, + 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, + 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, + 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, + 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 274, 1344, 343, 238, 436, + 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, + 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, + 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, + 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, + 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, + 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, + 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, + 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, + 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, + 389, 296, 220, 314, 0, 1227, 0, 0, 0, 0, + 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, + 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, - 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, - 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, - 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, - 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, - 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, - 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, - 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, - 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, - 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, - 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, - 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, - 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, - 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, - 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, - 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, - 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, + 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, + 225, 218, 391, 0, 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, 184, - 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, - 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, - 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, - 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, - 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, - 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, - 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, - 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, - 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, - 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, - 1225, 0, 0, 0, 0, 0, 0, 223, 0, 0, - 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, - 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, - 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, - 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, + 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, + 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, + 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, + 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, + 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, + 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 314, 0, 1225, 0, 0, 0, + 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, + 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, + 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, + 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, - 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, - 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, - 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, - 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, - 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, - 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, - 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, - 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, - 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, - 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, - 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, - 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, - 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, - 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, - 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, - 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 184, 274, - 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, - 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, - 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, - 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, - 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, - 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, - 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, - 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, - 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, - 365, 385, 386, 387, 389, 296, 220, 314, 0, 1223, - 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, - 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, - 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, - 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, + 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, + 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, + 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, + 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, + 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, + 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, - 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, - 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, - 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, + 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 314, 0, 1223, 0, 0, + 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, + 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, + 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, + 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3383,186 +3421,187 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, - 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, - 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, - 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, - 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, - 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, - 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, - 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, - 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, - 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, - 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, - 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, - 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, - 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, - 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, - 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, - 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, - 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, + 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, + 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, + 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, + 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, + 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, + 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, + 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, + 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, + 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, + 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, + 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, + 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, + 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, + 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, + 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, + 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, + 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, - 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, - 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, - 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, - 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, - 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, - 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, - 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, - 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 314, 0, 1219, 0, 0, - 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, - 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, - 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, - 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 184, 274, + 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, - 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, - 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, - 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, + 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, + 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, + 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, + 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, + 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, + 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, + 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, + 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, + 365, 385, 386, 387, 389, 296, 220, 314, 0, 1219, + 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, + 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, + 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, + 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, - 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, - 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, - 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, - 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, - 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, - 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, - 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, - 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, - 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, - 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, - 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, - 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, - 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, - 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 1215, 0, 0, 0, - 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, - 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, - 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, - 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, - 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, + 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, + 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, + 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, + 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, + 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, + 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, + 1215, 0, 0, 0, 0, 0, 0, 223, 0, 0, + 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, + 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, + 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, - 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, - 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, - 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, - 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, - 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, - 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, - 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, - 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, - 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, - 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, - 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, - 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, - 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, - 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, - 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, - 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, - 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, - 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, - 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, - 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, - 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, - 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, - 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, - 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, - 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, - 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 1213, 0, 0, 0, 0, - 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, - 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, - 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, + 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, + 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, + 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, + 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, + 0, 1213, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, + 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, + 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, - 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, - 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, - 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, - 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, - 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, - 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, + 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, + 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, + 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, - 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, - 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 314, 0, 1211, 0, 0, 0, 0, 0, - 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, - 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, - 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, + 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, + 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 314, 0, 1211, 0, 0, 0, 0, 0, 0, 223, + 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, + 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, + 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, + 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, + 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, - 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3613,6 +3652,53 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, + 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 1087, 0, 0, 0, 0, 0, 0, 314, + 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, + 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, + 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, @@ -3645,154 +3731,108 @@ var yyAct = [...]int{ 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 1087, 0, 0, 0, 0, 0, 0, 314, 0, 0, - 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, - 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, - 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, - 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, - 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, - 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, - 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, - 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, - 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, - 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, - 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, - 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, - 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, - 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, - 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, - 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, - 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, - 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, - 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, - 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, - 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, - 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, - 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, - 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, - 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, - 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, - 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, - 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, - 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, - 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, - 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, - 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, - 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, - 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, - 0, 0, 0, 0, 1078, 223, 0, 0, 0, 0, - 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, - 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, - 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, + 314, 0, 0, 0, 0, 0, 0, 0, 1078, 223, + 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, + 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, + 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, + 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, + 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, - 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, - 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, - 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, - 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, - 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, - 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, - 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, - 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, - 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, - 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, - 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, - 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, - 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, - 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, - 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, - 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, - 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, + 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, + 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, + 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, + 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, + 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, + 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, + 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, + 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, + 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, + 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, + 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, + 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, + 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, + 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, + 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, + 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, + 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, - 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, - 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, - 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, - 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, - 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, - 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, - 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, - 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, - 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, - 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, - 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, - 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, + 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, - 0, 0, 167, 168, 169, 0, 934, 0, 0, 0, - 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, - 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, + 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, + 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, + 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, + 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, + 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, + 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, + 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, + 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, + 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, + 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, + 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, + 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, + 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, + 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, + 169, 0, 934, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, + 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, - 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, - 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, - 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, - 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, - 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, + 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, - 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, - 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, - 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, - 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, - 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, - 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, - 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, - 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, - 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, - 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, - 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, - 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, - 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, + 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, + 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, + 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, - 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, + 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, + 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3843,105 +3883,105 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, - 441, 0, 423, 0, 0, 0, 0, 0, 0, 0, - 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, - 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, - 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, - 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, - 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, + 0, 0, 441, 0, 423, 0, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, + 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, + 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, + 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, - 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, + 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, - 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, - 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, - 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, - 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, + 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, + 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, + 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, - 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, + 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, + 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, - 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, - 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, - 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, - 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, - 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, - 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, - 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, - 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, - 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, - 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, - 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, - 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, - 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, - 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, - 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, - 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, - 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, + 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, + 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, + 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, + 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, + 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, + 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, - 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, - 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, - 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, - 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, - 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, - 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, - 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, - 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, } var yyPact = [...]int{ - 4207, -1000, -347, 1591, -1000, -1000, -1000, -1000, -1000, -1000, + 2654, -1000, -346, 1684, -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, 1525, 1192, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 577, 1264, -1000, 1461, 255, -1000, 27653, 379, - -1000, 27194, 378, 2210, 27653, -1000, 95, -1000, 76, 27653, - 85, 26735, -1000, -1000, -286, 12932, 1415, -26, -27, 27653, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1278, - 1512, 1524, 1553, 1066, 1583, -1000, 11083, 11083, 312, 312, - 312, 9247, -1000, -1000, 16617, 27653, 27653, 168, -1000, 1461, - -1000, -1000, 145, -1000, 247, 1235, -1000, 1234, -1000, 458, - 488, 243, 318, 317, 240, 237, 234, 233, 230, 229, - 228, 227, 241, -1000, 543, 543, -179, -180, 3158, 300, - 300, 300, 329, 1430, 1429, -1000, 606, -1000, 543, 543, - 143, 543, 543, 543, 543, 199, 198, 543, 543, 543, - 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, - 543, 543, 192, 1461, 183, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1642, 1279, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 579, 1324, -1000, 1553, 253, -1000, 28015, 377, + -1000, 27554, 376, 2403, 28015, -1000, 111, -1000, 103, 28015, + 109, 27093, -1000, -1000, -289, 12769, 1494, 8, 7, 28015, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1327, + 1606, 1607, 1640, 1124, 1577, -1000, 10912, 10912, 305, 305, + 305, 9068, -1000, -1000, 16931, 28015, 28015, 139, -1000, 1553, + -1000, -1000, 160, -1000, 207, 1257, -1000, 1256, -1000, 555, + 457, 235, 297, 296, 228, 227, 226, 222, 221, 218, + 216, 204, 239, -1000, 524, 524, -172, -183, 2364, 298, + 298, 298, 335, 1517, 1514, -1000, 495, -1000, 524, 524, + 147, 524, 524, 524, 524, 179, 178, 524, 524, 524, + 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, + 524, 524, 267, 1553, 173, -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, @@ -3968,26 +4008,26 @@ 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, -1000, -1000, 27653, - 70, 27653, -1000, 451, 27653, 624, 624, 16, 624, 624, - 624, 624, 77, 578, -33, -1000, 68, 184, 102, 180, - 612, 91, 57, -1000, -1000, 172, 612, 114, -1000, 624, - 7355, 7355, 7355, -1000, 1439, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 327, -1000, -1000, -1000, -1000, 27653, 26276, - 245, 571, -1000, -1000, -1000, 62, -1000, -1000, 1089, 841, - -1000, 12932, 2589, 1237, 1237, -1000, -1000, 398, -1000, -1000, - 14309, 14309, 14309, 14309, 14309, 14309, 14309, 14309, 14309, 14309, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 28015, + 130, 28015, -1000, 434, 28015, 612, 612, 36, 612, 612, + 612, 612, 108, 458, -43, -1000, 104, 168, 116, 170, + 617, 97, 57, -1000, -1000, 164, 617, 102, -1000, 612, + 7168, 7168, 7168, -1000, 1542, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 331, -1000, -1000, -1000, -1000, 28015, 26632, + 282, 564, -1000, -1000, -1000, 32, -1000, -1000, 1118, 752, + -1000, 12769, 2286, 1260, 1260, -1000, -1000, 394, -1000, -1000, + 14152, 14152, 14152, 14152, 14152, 14152, 14152, 14152, 14152, 14152, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1237, 448, -1000, 12473, 1237, 1237, - 1237, 1237, 1237, 1237, 1237, 1237, 12932, 1237, 1237, 1237, - 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, - 1237, 1237, 1237, 1237, -1000, -1000, -1000, 27653, -1000, 1237, - 110, 1525, -1000, 1192, -1000, -1000, -1000, 1455, 12932, 12932, - 1525, -1000, 1369, 11083, -1000, -1000, 1460, -1000, -1000, -1000, - -1000, -1000, 689, 1575, -1000, 15227, 441, 1574, 25817, -1000, - 19384, 25358, 1233, 8774, -54, -1000, -1000, -1000, 554, 18466, + -1000, -1000, -1000, -1000, 1260, 433, -1000, 12308, 1260, 1260, + 1260, 1260, 1260, 1260, 1260, 1260, 12769, 1260, 1260, 1260, + 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, + 1260, 1260, 1260, 1260, -1000, -1000, -1000, 28015, -1000, 1260, + 125, 1642, -1000, 1279, -1000, -1000, -1000, 1552, 12769, 12769, + 1642, -1000, 1450, 10912, -1000, -1000, 1476, -1000, -1000, -1000, + -1000, -1000, 690, 1658, -1000, 15535, 431, 1657, 26171, -1000, + 19710, 25710, 1255, 8593, -62, -1000, -1000, -1000, 541, 18788, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1439, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1542, -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, @@ -4000,194 +4040,194 @@ 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, 1197, 27653, -1000, -1000, 3794, 896, -1000, - 1263, -1000, 1157, -1000, 1243, 1279, 377, 896, 369, 368, - 366, -1000, -112, -1000, -1000, -1000, -1000, -1000, 543, 543, - 239, 255, 4098, -1000, -1000, -1000, 24892, 1261, 896, -1000, - 1260, -1000, 1476, 292, 472, 472, 896, -1000, -1000, 27653, - 896, 1474, 1473, 27653, 27653, -1000, 24433, -1000, 23974, 23515, - 838, 27653, 23056, 22597, 22138, 21679, 21220, -1000, 1327, -1000, - 1270, -1000, -1000, -1000, 27653, 27653, 27653, 15, -1000, -1000, - 27653, 896, -1000, -1000, 832, 802, 543, 543, 798, 950, - 947, 946, 543, 543, 788, 945, 1047, 165, 783, 782, - 776, 848, 938, 108, 804, 799, 757, 27653, 1259, 27653, - -1000, 134, 594, 246, 548, 1461, 1413, 1225, 323, 375, - 896, 306, 306, -1000, 7828, -1000, -1000, 937, 12932, -1000, - 616, 612, 612, -1000, -1000, -1000, -1000, -1000, -1000, 624, - 27653, 616, -1000, -1000, -1000, 612, 624, 27653, 624, 624, - 624, 624, 612, 612, 612, 624, 27653, 27653, 27653, 27653, - 27653, 27653, 27653, 27653, 27653, 7355, 7355, 7355, 520, 624, - -1000, 1314, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 72, -1000, -1000, -1000, -1000, -1000, 1591, -1000, -1000, -1000, - -115, 1222, 20761, -1000, -290, -291, -292, -294, -1000, -1000, - -1000, -295, -299, -1000, -1000, -1000, 12932, 12932, 12932, 12932, - 694, 516, 14309, 728, 528, 14309, 14309, 14309, 14309, 14309, - 14309, 14309, 14309, 14309, 14309, 14309, 14309, 14309, 14309, 14309, - 684, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 896, - -1000, 1587, 1088, 1088, 469, 469, 469, 469, 469, 469, - 469, 469, 469, 4881, 9706, 7828, 1066, 1149, 1525, 11083, - 11083, 12932, 12932, 12001, 11542, 11083, 1446, 587, 841, 27653, - -1000, 963, -1000, -1000, 13850, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 27653, 27653, 11083, - 11083, 11083, 11083, 11083, -1000, 1214, -1000, -173, 16158, 12932, - 919, 1524, 1066, 1460, 1484, 1585, 500, 1034, 1210, -1000, - 735, 1524, 18007, 1217, -1000, 1460, -1000, -1000, -1000, 27653, - -1000, -1000, 20302, -1000, -1000, 6882, 27653, 226, 27653, -1000, - 1078, 1376, -1000, -1000, -1000, 1508, 17548, 27653, 1172, 1156, - -1000, -1000, 440, 8301, -54, -1000, 8301, 1152, -1000, -51, - -74, 10165, 462, -1000, -1000, -1000, 3158, 14768, 1001, -1000, - -4, -1000, -1000, -1000, 1243, -1000, 1243, 1243, 1243, 1243, - 15, 15, 15, 15, -1000, -1000, -1000, -1000, -1000, 1256, - 1249, -1000, 1243, 1243, 1243, 1243, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1171, 28015, -1000, -1000, 4422, 954, -1000, + 1323, -1000, 1167, -1000, 1273, 1271, 374, 954, 365, 364, + 363, -1000, -99, -1000, -1000, -1000, -1000, -1000, 524, 524, + 236, 253, 4033, -1000, -1000, -1000, 25242, 1321, 954, -1000, + 1320, -1000, 1567, 293, 498, 498, 954, -1000, -1000, 28015, + 954, 1566, 1564, 28015, 28015, -1000, 24781, -1000, 24320, 23859, + 879, 28015, 23398, 22937, 22476, 22015, 21554, -1000, 1404, -1000, + 1277, -1000, -1000, -1000, 28015, 28015, 28015, 48, -1000, -1000, + 28015, 954, -1000, -1000, 871, 862, 524, 524, 851, 985, + 984, 979, 524, 524, 835, 977, 1016, 167, 833, 798, + 793, 865, 971, 106, 863, 848, 783, 28015, 1304, 28015, + -1000, 163, 496, 265, 537, 1553, 1493, 1252, 322, 373, + 954, 302, 302, -1000, 7643, -1000, -1000, 967, 12769, -1000, + 628, 617, 617, -1000, -1000, -1000, -1000, -1000, -1000, 612, + 28015, 628, -1000, -1000, -1000, 617, 612, 28015, 612, 612, + 612, 612, 617, 617, 617, 612, 28015, 28015, 28015, 28015, + 28015, 28015, 28015, 28015, 28015, 7168, 7168, 7168, 500, 612, + -1000, 1397, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 107, -1000, -1000, -1000, -1000, -1000, 1684, -1000, -1000, -1000, + -118, 1235, 21093, -1000, -293, -294, -295, -296, -1000, -1000, + -1000, -297, -299, -1000, -1000, -1000, 12769, 12769, 12769, 12769, + 766, 507, 14152, 716, 718, 14152, 14152, 14152, 14152, 14152, + 14152, 14152, 14152, 14152, 14152, 14152, 14152, 14152, 14152, 14152, + 582, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 954, + -1000, 1681, 1138, 1138, 468, 468, 468, 468, 468, 468, + 468, 468, 468, 14613, 9529, 7643, 1124, 1158, 1642, 10912, + 10912, 12769, 12769, 11834, 11373, 10912, 1530, 571, 752, 28015, + -1000, 981, -1000, -1000, 13691, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 28015, 28015, 10912, + 10912, 10912, 10912, 10912, -1000, 1231, -1000, -177, 16470, 12769, + 964, 1607, 1124, 1476, 1576, 1676, 492, 1049, 1230, -1000, + 1019, 1607, 18327, 1128, -1000, 1476, -1000, -1000, -1000, 28015, + -1000, -1000, 20632, -1000, -1000, 6693, 28015, 200, 28015, -1000, + 1270, 1395, -1000, -1000, -1000, 1589, 17866, 28015, 1229, 1122, + -1000, -1000, 428, 8118, -62, -1000, 8118, 1176, -1000, -35, + -15, 9990, 460, -1000, -1000, -1000, 2364, 15074, 1039, 1507, + 41, -1000, -1000, -1000, 1273, -1000, 1273, 1273, 1273, 1273, + 48, 48, 48, 48, -1000, -1000, -1000, -1000, -1000, 1301, + 1299, -1000, 1273, 1273, 1273, 1273, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1248, 1248, 1248, 1245, 1245, 280, -1000, - 12932, 109, 27653, 1492, 752, 134, 309, 1291, 896, 896, - 896, 309, -1000, 1024, 1016, -1000, 1193, -1000, -1000, 1549, - -1000, -1000, 519, 650, 648, 525, 27653, 116, 223, -1000, - 284, -1000, 27653, 896, 1469, 472, 896, -1000, 896, -1000, - -1000, -1000, -1000, 433, -1000, -1000, 896, 1180, -1000, 1092, - 692, 645, 639, 642, 1180, -1000, -1000, -135, 1180, -1000, - 1180, -1000, 1180, -1000, 1180, -1000, 1180, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 515, 27653, 116, 684, -1000, - 322, -1000, -1000, 684, 684, -1000, -1000, -1000, -1000, 918, - 915, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1296, 1296, 1296, 1278, 1278, 284, -1000, + 12769, 172, 28015, 1575, 739, 163, 303, 1353, 954, 954, + 954, 303, -1000, 965, 889, -1000, 1225, -1000, -1000, 1639, + -1000, -1000, 587, 658, 649, 576, 28015, 136, 199, -1000, + 274, -1000, 28015, 954, 1562, 498, 954, -1000, 954, -1000, + -1000, -1000, -1000, 427, -1000, -1000, 954, 1224, -1000, 1250, + 685, 633, 654, 614, 1224, -1000, -1000, -137, 1224, -1000, + 1224, -1000, 1224, -1000, 1224, -1000, 1224, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 549, 28015, 136, 582, -1000, + 320, -1000, -1000, 582, 582, -1000, -1000, -1000, -1000, 957, + 956, -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, -338, 27653, -1000, - 148, 546, 202, 236, 216, 27653, 115, 1516, 132, 196, - 27653, 27653, 306, 1313, 27653, 1495, 27653, -1000, -1000, -1000, - -1000, 841, 27653, -1000, -1000, 624, 624, -1000, -1000, 27653, - 624, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 624, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -342, 28015, -1000, + 157, 527, 184, 232, 205, 28015, 137, 1592, 153, 177, + 28015, 28015, 302, 1396, 28015, 1583, 28015, -1000, -1000, -1000, + -1000, 752, 28015, -1000, -1000, 612, 612, -1000, -1000, 28015, + 612, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 612, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 899, -1000, 27653, 27653, -1000, -1000, - -1000, -1000, -1000, 79, -53, 191, -1000, -1000, -1000, -1000, - 1519, -1000, 841, 516, 681, 527, -1000, -1000, 665, -1000, - -1000, 1889, -1000, -1000, -1000, -1000, 728, 14309, 14309, 14309, - 599, 1889, 2709, 1085, 825, 469, 641, 641, 505, 505, - 505, 505, 505, 714, 714, -1000, -1000, -1000, -1000, 963, - -1000, -1000, -1000, 963, 11083, 11083, 1177, 1237, 432, -1000, - 1278, -1000, -1000, 1524, 1082, 1082, 974, 817, 609, 1572, - 1082, 568, 1566, 1082, 1082, 11083, -1000, -1000, 591, -1000, - 12932, 963, -1000, 861, 1171, 1169, 1082, 963, 963, 1082, - 1082, 27653, -1000, -279, -1000, -93, 420, 1237, -1000, 19843, - -1000, -1000, 963, 1089, -1000, 1455, -1000, -1000, 1412, -1000, - 1350, 12932, 12932, 12932, -1000, -1000, -1000, 1455, 1523, -1000, - 1380, 1378, 1564, 11083, 19384, 1460, -1000, -1000, -1000, 421, - 1564, 1229, 1237, -1000, 27653, 19384, 19384, 19384, 19384, 19384, - -1000, 1332, 1330, -1000, 1341, 1328, 1363, 27653, -1000, 1129, - 1066, 17548, 226, 1031, 19384, 27653, -1000, -1000, 19384, 27653, - 6409, -1000, 1152, -54, -63, -1000, -1000, -1000, -1000, 841, - -1000, 978, -1000, 2525, -1000, 297, -1000, -1000, -1000, -1000, - 552, -6, -1000, -1000, 15, 15, -1000, -1000, 462, 734, - 462, 462, 462, 889, 889, -1000, -1000, -1000, -1000, -1000, - 746, -1000, -1000, -1000, 712, -1000, -1000, 754, 1281, 109, - -1000, -1000, 543, 885, 1424, 27653, -1000, -1000, 997, 148, - 27653, 592, 1312, -1000, 1291, 1291, 1291, 27653, -1000, -1000, - -1000, -1000, 3013, 27653, 1117, -1000, 111, 27653, 993, 27653, - -1000, 1111, 1247, -1000, 896, -1000, -1000, 7828, -1000, 27653, - 1237, -1000, -1000, -1000, -1000, 371, 1442, 1441, 116, 111, - 462, 896, -1000, -1000, -1000, -1000, -1000, -341, 1105, 332, - 123, 144, 27653, 27653, 27653, 27653, 27653, 390, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 193, 319, -1000, 27653, 27653, - 386, -1000, -1000, -1000, 612, -1000, -1000, 612, -1000, -1000, - -1000, -1000, -1000, -1000, 1437, -55, -313, -1000, -310, -1000, - -1000, -1000, -1000, 599, 1889, 2192, -1000, 14309, 14309, -1000, - -1000, 1082, 1082, 11083, 7828, 1525, 1455, -1000, -1000, 359, - 684, 359, 14309, 14309, -1000, 14309, 14309, -1000, -126, 1230, - 581, -1000, 12932, 934, -1000, -1000, 14309, 14309, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 364, 349, 347, - 27653, -1000, -1000, -1000, 794, 883, 1348, 841, 841, -1000, - -1000, 27653, -1000, -1000, -1000, -1000, 1562, 12932, -1000, 1147, - -1000, 5936, 1524, 1309, 27653, 1237, 1591, 15699, 27653, 1159, - -1000, 545, 1376, 1287, 1305, 1310, -1000, -1000, -1000, -1000, - 1329, -1000, 1251, -1000, -1000, -1000, -1000, -1000, 1066, 1564, - 19384, 1080, -1000, 1080, -1000, 418, -1000, -1000, -1000, -76, - -98, -1000, -1000, -1000, 3158, -1000, -1000, -1000, 669, 14309, - 1506, 1584, -1000, 882, 1465, -1000, 1464, 1419, -1000, -1000, - 462, 462, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1075, - -1000, 1073, 1131, 1069, 65, -1000, 1257, 1435, 543, 543, - -1000, 711, -1000, 896, -1000, -1000, 331, -1000, 1490, 27653, - 1298, 1297, 1296, -1000, 1548, 1107, -1000, 27653, -1000, -1000, - 27653, -1000, -1000, 1377, 109, 27653, -1000, -1000, -1000, 223, - 27653, -1000, 1088, 111, -1000, -1000, -1000, -1000, -1000, -1000, - 27653, 171, -1000, 1246, 851, -1000, 1273, -1000, -1000, -1000, - -1000, 106, 194, -1000, 27653, 385, 1281, 27653, -1000, -1000, - -1000, 624, 624, -1000, 1434, -1000, 896, -1000, 14309, 1889, - 1889, -1000, -1000, 963, -1000, 1524, -1000, 963, 1243, 1243, - -1000, 1243, 1245, -1000, 1243, 53, 1243, 37, 963, 963, - 2440, 2411, 2341, 2132, 1237, -120, -1000, 841, 12932, 1786, - 1622, 1237, 1237, 1237, 1056, 863, 15, -1000, -1000, -1000, - 1560, 1546, 841, -1000, -1000, -1000, 1481, 1021, 1033, -1000, - -1000, 10624, 1063, 1334, 413, 1056, 1525, 27653, 12932, -1000, - -1000, 12932, 1242, -1000, 12932, -1000, -1000, -1000, 1525, 1525, - 1080, -1000, -1000, 479, -1000, -1000, -1000, -1000, -1000, 1889, - 1241, -28, -1000, -1000, -1000, -1000, -1000, -1000, 15, 859, - 15, 707, -1000, 697, -1000, -1000, -217, -1000, -1000, 1253, - 1325, -1000, -1000, 27653, -1000, -1000, 27653, 27653, 27653, 27653, - 27653, -1000, -1000, 220, -1000, 1054, 1045, -1000, -147, -1000, - -1000, 1240, -1000, -1000, -1000, 982, -1000, -136, 896, 27653, - 27653, 27653, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1889, -1000, 1455, -1000, -1000, 207, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 14309, 14309, 14309, 14309, 14309, 1524, - 855, 841, 14309, 14309, 18925, 27653, 27653, 17076, 15, 42, - -1000, 12932, 12932, 1456, -1000, 1237, -1000, 1232, 27653, 1237, - 27653, -1000, 1524, -1000, 841, 841, 27653, 841, 1524, -1000, - 14309, -1000, 462, -1000, 462, 971, 967, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1240, -1000, -1000, -1000, 1107, - -1000, 212, 269, -1000, 223, -1000, -181, -182, 1502, 27653, - -1000, -1000, 7828, -1000, -1000, 1239, 1289, -1000, -1000, -1000, - -1000, 861, 861, 861, 861, 238, 963, -1000, 861, 861, - 1005, -1000, 1005, 1005, 420, -269, -1000, 1410, 1391, 841, - 1089, 1581, -1000, 1237, 1591, 401, 1033, -1000, -1000, 975, - -1000, 1284, -1000, -1000, -1000, -1000, 1497, 1237, 27653, -1000, - -1000, -1000, 1192, 970, 1040, -1000, 533, 27653, 27653, -1000, - -1000, -1000, -1000, 963, 146, -143, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 42, 270, -1000, 1403, 1391, -1000, 1534, - 1406, 1532, -1000, 27653, 1033, 27653, -1000, -1000, 1192, 13391, - 1017, 218, -1000, 7828, 5463, 962, -1000, -1000, 1347, -133, - -148, 1398, 1400, 1400, 1403, -1000, 1531, 1530, -1000, 852, - 1528, 847, 1014, -1000, 218, 861, 963, 27653, -1000, -56, - -1000, -1000, -1000, -1000, -1000, 1273, -1000, 1331, -1000, 1386, - 767, -1000, -1000, -1000, -1000, 842, 840, -1000, 795, -1000, - -1000, -1000, -1000, 957, 278, -1000, -1000, -136, -138, -1000, - 763, -1000, -1000, -1000, -1000, -1000, 1295, 124, -1000, -172, - -1000, -1000, 1293, -1000, 1571, -1000, -167, -1000, 1573, 489, - 489, -1000, -1000, -1000, -1000, 275, 769, -1000, -1000, -1000, - -1000, + -1000, -1000, -1000, -1000, 953, -1000, 28015, 28015, -1000, -1000, + -1000, -1000, -1000, 64, -39, 186, -1000, -1000, -1000, -1000, + 1600, -1000, 752, 507, 544, 525, -1000, -1000, 751, -1000, + -1000, 1799, -1000, -1000, -1000, -1000, 716, 14152, 14152, 14152, + 560, 1799, 1541, 1283, 1307, 468, 681, 681, 490, 490, + 490, 490, 490, 698, 698, -1000, -1000, -1000, -1000, 981, + -1000, -1000, -1000, 981, 10912, 10912, 1220, 1260, 419, -1000, + 1327, -1000, -1000, 1607, 1105, 1105, 972, 834, 588, 1656, + 1105, 581, 1654, 1105, 1105, 10912, -1000, -1000, 603, -1000, + 12769, 981, -1000, 794, 1218, 1197, 1105, 981, 981, 1105, + 1105, 28015, -1000, -285, -1000, -73, 449, 1260, -1000, 20171, + -1000, -1000, 981, 1118, -1000, 1552, -1000, -1000, 1486, -1000, + 1447, 12769, 12769, 12769, -1000, -1000, -1000, 1552, 1610, -1000, + 1464, 1461, 1648, 10912, 19710, 1476, -1000, -1000, -1000, 401, + 1648, 1228, 1260, -1000, 28015, 19710, 19710, 19710, 19710, 19710, + -1000, 1418, 1409, -1000, 1424, 1405, 1438, 28015, -1000, 1132, + 1124, 17866, 200, 1191, 19710, 28015, -1000, -1000, 19710, 28015, + 6218, -1000, 1176, -62, -28, -1000, -1000, -1000, -1000, 752, + -1000, 881, -1000, 2505, -1000, 278, -1000, -1000, -1000, -1000, + 517, 1588, 1501, 37, -1000, -1000, 48, 48, -1000, -1000, + 460, 660, 460, 460, 460, 946, 946, -1000, -1000, -1000, + -1000, -1000, 735, -1000, -1000, -1000, 715, -1000, -1000, 1072, + 1377, 172, -1000, -1000, 524, 941, 1509, 28015, -1000, -1000, + 1036, 157, 28015, 592, 1394, -1000, 1353, 1353, 1353, 28015, + -1000, -1000, -1000, -1000, 3985, 28015, 1126, -1000, 133, 28015, + 1020, 28015, -1000, 1111, 1292, -1000, 954, -1000, -1000, 7643, + -1000, 28015, 1260, -1000, -1000, -1000, -1000, 372, 1551, 1549, + 136, 133, 460, 954, -1000, -1000, -1000, -1000, -1000, -347, + 1107, 350, 145, 159, 28015, 28015, 28015, 28015, 28015, 410, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 175, 317, -1000, + 28015, 28015, 369, -1000, -1000, -1000, 617, -1000, -1000, 617, + -1000, -1000, -1000, -1000, -1000, -1000, 1543, -50, -319, -1000, + -312, -1000, -1000, -1000, -1000, 560, 1799, 641, -1000, 14152, + 14152, -1000, -1000, 1105, 1105, 10912, 7643, 1642, 1552, -1000, + -1000, 387, 582, 387, 14152, 14152, -1000, 14152, 14152, -1000, + -112, 1192, 550, -1000, 12769, 743, -1000, -1000, 14152, 14152, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 362, + 361, 352, 28015, -1000, -1000, -1000, 919, 938, 1432, 752, + 752, -1000, -1000, 28015, -1000, -1000, -1000, -1000, 1646, 12769, + -1000, 1162, -1000, 5743, 1607, 1393, 28015, 1260, 1684, 16009, + 28015, 1267, -1000, 526, 1395, 1361, 1384, 1305, -1000, -1000, + -1000, -1000, 1387, -1000, 1295, -1000, -1000, -1000, -1000, -1000, + 1124, 1648, 19710, 1151, -1000, 1151, -1000, 400, -1000, -1000, + -1000, -52, -25, -1000, -1000, -1000, 2364, -1000, -1000, -1000, + 673, 14152, 1662, -1000, 922, 1559, -1000, 1557, 1285, -1000, + -1000, -1000, 460, 460, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 1095, -1000, 1092, 1156, 1088, 47, -1000, 1233, 1524, + 524, 524, -1000, 712, -1000, 954, -1000, -1000, 299, -1000, + 1578, 28015, 1382, 1364, 1363, -1000, 1633, 1135, -1000, 28015, + -1000, -1000, 28015, -1000, -1000, 1454, 172, 28015, -1000, -1000, + -1000, 199, 28015, -1000, 1138, 133, -1000, -1000, -1000, -1000, + -1000, -1000, 28015, 149, -1000, 1284, 838, -1000, 1332, -1000, + -1000, -1000, -1000, 135, 182, -1000, 28015, 360, 1377, 28015, + -1000, -1000, -1000, 612, 612, -1000, 1522, -1000, 954, -1000, + 14152, 1799, 1799, -1000, -1000, 981, -1000, 1607, -1000, 981, + 1273, 1273, -1000, 1273, 1278, -1000, 1273, 94, 1273, 90, + 981, 981, 2210, 1885, 1739, 1258, 1260, -107, -1000, 752, + 12769, 1188, 976, 1260, 1260, 1260, 1061, 917, 48, -1000, + -1000, -1000, 1644, 1631, 752, -1000, -1000, -1000, 1569, 1187, + 1069, -1000, -1000, 10451, 1074, 1453, 383, 1061, 1642, 28015, + 12769, -1000, -1000, 12769, 1269, -1000, 12769, -1000, -1000, -1000, + 1642, 1642, 1151, -1000, -1000, 484, -1000, -1000, -1000, -1000, + -1000, 1799, -58, -1000, -1000, -1000, 14152, -1000, -1000, 48, + 915, 48, 709, -1000, 705, -1000, -1000, -227, -1000, -1000, + 1236, 1336, -1000, -1000, 28015, -1000, -1000, 28015, 28015, 28015, + 28015, 28015, -1000, -1000, 196, -1000, 1058, 1054, -1000, -180, + -1000, -1000, 1266, -1000, -1000, -1000, 1015, -1000, -139, 954, + 28015, 28015, 28015, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 1799, -1000, 1552, -1000, -1000, 233, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 14152, 14152, 14152, 14152, 14152, + 1607, 901, 752, 14152, 14152, 19249, 28015, 28015, 17392, 48, + 43, -1000, 12769, 12769, 1556, -1000, 1260, -1000, 1217, 28015, + 1260, 28015, -1000, 1607, -1000, 752, 752, 28015, 752, 1607, + -1000, -1000, 859, 460, -1000, 460, 1013, 1006, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1266, -1000, -1000, -1000, + 1135, -1000, 193, 256, -1000, 199, -1000, -185, -188, 1587, + 28015, -1000, -1000, 7643, -1000, -1000, 1261, 1335, -1000, -1000, + -1000, -1000, 794, 794, 794, 794, 93, 981, -1000, 794, + 794, 1052, -1000, 1052, 1052, 449, -280, -1000, 1484, 1478, + 752, 1118, 1661, -1000, 1260, 1684, 375, 1069, -1000, -1000, + 1042, -1000, -1000, -1000, -1000, -1000, -1000, 1585, 1260, 28015, + -1000, -1000, -1000, 1279, 1011, 1098, -1000, 522, 28015, 28015, + -1000, -1000, -1000, -1000, 981, 150, -145, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 43, 287, -1000, 1477, 1478, -1000, + 1630, 1480, 1629, -1000, 28015, 1069, 28015, -1000, 682, 1279, + 13230, 1139, 203, -1000, 7643, 5268, 1005, -1000, -1000, 1429, + -135, -150, 1474, 1479, 1479, 1477, -1000, 1628, 1627, -1000, + 899, 1625, 898, 978, -1000, -1000, -1000, -1000, 203, 794, + 981, 28015, -1000, -59, -1000, -1000, -1000, -1000, -1000, 1332, + -1000, 1426, -1000, 1469, 784, -1000, -1000, -1000, -1000, 893, + 860, -1000, 753, -1000, -1000, -1000, -1000, 996, 280, -1000, + -1000, -139, -142, -1000, 695, -1000, -1000, -1000, -1000, -1000, + 1358, 161, -1000, -147, -1000, -1000, 1356, -1000, 1653, -1000, + -151, -1000, 1655, 425, 425, -1000, -1000, -1000, -1000, 273, + 799, -1000, -1000, -1000, -1000, } var yyPgo = [...]int{ - 0, 1868, 1865, 12, 88, 89, 1864, 1861, 1860, 1857, - 129, 128, 127, 1856, 1854, 1853, 1852, 1851, 1850, 1847, - 1846, 1845, 1844, 1842, 1836, 58, 123, 42, 40, 140, - 1835, 1834, 31, 1833, 1832, 1830, 121, 119, 579, 1829, - 120, 1828, 1827, 1825, 1824, 1823, 1822, 1821, 1819, 1817, - 1815, 1813, 1812, 1811, 1809, 202, 1807, 1806, 4, 1805, - 33, 1801, 1800, 1799, 1798, 1797, 91, 1795, 1791, 1790, - 113, 1784, 1783, 53, 112, 50, 74, 1781, 1780, 80, - 122, 1779, 64, 105, 1778, 1774, 246, 1773, 45, 79, - 82, 1772, 46, 1771, 1770, 48, 1769, 1768, 1766, 77, - 1752, 1750, 1527, 1748, 72, 83, 15, 35, 1747, 1745, - 1743, 1740, 36, 44, 1739, 1738, 30, 1737, 1736, 133, - 1735, 85, 24, 1730, 14, 16, 22, 1727, 93, 1726, - 61, 51, 32, 1725, 94, 1724, 1723, 1716, 1715, 25, - 1713, 78, 106, 69, 1710, 1709, 11, 10, 1704, 1697, - 1696, 1694, 1693, 1692, 9, 1690, 5, 1689, 28, 1688, - 17, 20, 76, 87, 29, 8, 1687, 160, 1686, 26, - 118, 67, 116, 1685, 1683, 1682, 857, 147, 1681, 1680, - 34, 1679, 98, 104, 1678, 167, 1676, 1675, 66, 1304, - 1849, 19, 110, 1674, 1673, 2691, 56, 81, 23, 1672, - 73, 1670, 1669, 1668, 139, 115, 63, 833, 47, 1666, - 1664, 1663, 1662, 1661, 1659, 1658, 132, 86, 21, 107, - 27, 1657, 1656, 1655, 65, 41, 1653, 109, 108, 57, - 125, 1652, 134, 103, 75, 1651, 39, 1648, 1643, 1642, - 1641, 43, 1640, 1638, 1637, 1636, 117, 100, 71, 38, - 1628, 37, 68, 99, 114, 1627, 18, 124, 6, 1626, - 3, 0, 1625, 7, 130, 164, 101, 1619, 1618, 1, - 1610, 2, 1609, 1608, 84, 1606, 1603, 1601, 1599, 3319, - 1820, 102, 1598, 126, + 0, 1973, 1971, 12, 90, 85, 1970, 1969, 1968, 1967, + 129, 128, 127, 1966, 1964, 1963, 1962, 1961, 1960, 1959, + 1958, 1957, 1956, 1954, 1953, 63, 139, 42, 45, 141, + 1951, 1950, 37, 1945, 1944, 1928, 120, 119, 570, 1927, + 118, 1924, 1920, 1917, 1912, 1911, 1909, 1908, 1907, 1906, + 1904, 1901, 1900, 1899, 1898, 215, 1890, 1888, 5, 1887, + 33, 1885, 1868, 1864, 1863, 1859, 91, 1858, 1856, 1855, + 115, 1854, 1853, 56, 210, 51, 79, 1852, 1851, 78, + 122, 1850, 75, 103, 1849, 1846, 1346, 1845, 50, 89, + 100, 1839, 41, 1838, 1837, 68, 1835, 1834, 1832, 77, + 1831, 1830, 2941, 1829, 74, 82, 10, 40, 1827, 1825, + 1824, 1823, 36, 47, 1822, 1821, 19, 1817, 1816, 133, + 1814, 88, 28, 1813, 14, 16, 22, 1811, 86, 1808, + 44, 61, 34, 1807, 83, 1805, 1804, 1802, 1801, 23, + 1800, 80, 104, 24, 1799, 1798, 1797, 20, 11, 1795, + 1793, 1791, 1789, 1788, 1787, 6, 1786, 17, 1785, 27, + 1784, 8, 18, 76, 87, 29, 7, 1781, 121, 1780, + 25, 111, 67, 108, 1778, 1777, 1776, 795, 149, 1775, + 1774, 58, 1773, 93, 102, 1770, 162, 1769, 1768, 65, + 1293, 1458, 31, 113, 1767, 1763, 2487, 59, 81, 21, + 1762, 69, 1761, 1760, 1758, 138, 117, 43, 890, 53, + 1757, 1756, 1754, 1752, 1751, 1750, 1748, 32, 125, 26, + 109, 30, 1747, 1746, 1745, 72, 46, 1743, 106, 105, + 73, 110, 1742, 116, 124, 64, 1741, 39, 1740, 1739, + 1732, 1729, 48, 1728, 1721, 1720, 1719, 107, 101, 71, + 38, 1718, 35, 66, 99, 98, 1715, 15, 140, 9, + 1713, 4, 0, 1711, 3, 130, 171, 112, 1710, 1704, + 1, 1702, 2, 1701, 1700, 84, 1697, 1695, 1694, 1693, + 1692, 3123, 1826, 114, 1690, 126, } -//line sql.y:5238 +//line sql.y:5252 type yySymType struct { union interface{} empty struct{} @@ -4289,6 +4329,11 @@ func (st *yySymType) columnDefinitionsUnion() []*ColumnDefinition { return v } +func (st *yySymType) columnStorageUnion() ColumnStorage { + v, _ := st.union.(ColumnStorage) + return v +} + func (st *yySymType) columnTypeOptionsUnion() *ColumnTypeOptions { v, _ := st.union.(*ColumnTypeOptions) return v @@ -4625,127 +4670,103 @@ func (st *yySymType) whensUnion() []*When { } var yyR1 = [...]int{ - 0, 277, 278, 278, 1, 1, 1, 1, 1, 1, + 0, 279, 280, 280, 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, 261, 261, 261, 264, 264, + 1, 1, 1, 1, 1, 262, 262, 262, 265, 265, 21, 50, 3, 3, 3, 3, 2, 2, 8, 9, 4, 5, 5, 10, 10, 62, 62, 11, 12, 12, - 12, 12, 281, 281, 97, 97, 95, 95, 96, 96, - 162, 162, 13, 14, 14, 172, 172, 171, 171, 171, - 173, 173, 173, 173, 207, 207, 15, 15, 15, 15, - 15, 71, 71, 263, 263, 262, 260, 260, 259, 259, - 258, 23, 24, 33, 33, 33, 33, 34, 35, 265, - 265, 237, 39, 39, 38, 38, 38, 38, 40, 40, - 37, 37, 36, 36, 239, 239, 226, 226, 238, 238, - 238, 238, 238, 238, 238, 225, 85, 85, 145, 145, + 12, 12, 283, 283, 97, 97, 95, 95, 96, 96, + 163, 163, 13, 14, 14, 173, 173, 172, 172, 172, + 174, 174, 174, 174, 208, 208, 15, 15, 15, 15, + 15, 71, 71, 264, 264, 263, 261, 261, 260, 260, + 259, 23, 24, 33, 33, 33, 33, 34, 35, 266, + 266, 238, 39, 39, 38, 38, 38, 38, 40, 40, + 37, 37, 36, 36, 240, 240, 227, 227, 239, 239, + 239, 239, 239, 239, 239, 226, 226, 85, 85, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 209, 209, 209, 209, 212, 212, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, - 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, - 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, - 215, 215, 215, 215, 215, 215, 215, 215, 224, 224, - 216, 216, 219, 219, 220, 220, 220, 221, 221, 222, - 222, 217, 217, 217, 217, 218, 218, 218, 227, 251, - 251, 250, 250, 248, 248, 248, 248, 236, 236, 245, - 245, 245, 245, 245, 235, 235, 231, 231, 231, 232, - 232, 233, 233, 230, 230, 234, 234, 247, 247, 246, - 228, 228, 229, 229, 253, 253, 253, 253, 254, 270, - 271, 269, 269, 269, 269, 269, 60, 60, 60, 184, - 184, 184, 243, 243, 242, 242, 242, 244, 244, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 179, 179, - 179, 268, 268, 268, 268, 268, 268, 267, 267, 267, - 240, 240, 240, 266, 266, 131, 131, 132, 132, 30, - 30, 30, 30, 30, 30, 29, 29, 29, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 278, 278, 146, 146, 210, 210, 210, 210, 213, 213, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 212, + 212, 212, 212, 212, 214, 214, 214, 214, 214, 215, + 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 216, 216, 216, 216, 216, 216, + 216, 216, 225, 225, 217, 217, 220, 220, 221, 221, + 221, 222, 222, 223, 223, 218, 218, 218, 218, 219, + 219, 219, 228, 252, 252, 251, 251, 249, 249, 249, + 249, 237, 237, 246, 246, 246, 246, 246, 236, 236, + 232, 232, 232, 233, 233, 234, 234, 231, 231, 235, + 235, 248, 248, 247, 229, 229, 230, 230, 254, 254, + 254, 254, 255, 271, 272, 270, 270, 270, 270, 270, + 60, 60, 60, 185, 185, 185, 244, 244, 243, 243, + 243, 245, 245, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 180, 180, 180, 269, 269, 269, 269, 269, + 269, 268, 268, 268, 241, 241, 241, 267, 267, 131, + 131, 132, 132, 30, 30, 30, 30, 30, 30, 29, + 29, 29, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 31, 31, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 25, 25, 25, 25, 31, 31, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 223, 223, 223, 255, 255, 256, 256, 17, - 22, 22, 18, 18, 18, 18, 19, 19, 41, 42, + 16, 16, 16, 16, 258, 258, 258, 258, 258, 258, + 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, + 258, 258, 258, 258, 258, 258, 224, 224, 224, 256, + 256, 257, 257, 17, 22, 22, 18, 18, 18, 18, + 19, 19, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 272, 272, 178, 178, 186, - 186, 177, 177, 200, 200, 200, 180, 180, 180, 181, - 181, 276, 276, 276, 43, 43, 45, 45, 46, 47, - 47, 202, 202, 203, 203, 48, 49, 61, 61, 61, - 61, 61, 61, 63, 63, 63, 7, 7, 7, 7, - 57, 57, 57, 6, 6, 44, 44, 51, 273, 273, - 274, 275, 275, 275, 275, 52, 54, 20, 20, 20, - 20, 20, 20, 78, 78, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 72, 72, 72, - 67, 67, 282, 55, 56, 56, 70, 70, 70, 64, - 64, 64, 69, 69, 69, 75, 75, 77, 77, 77, - 77, 77, 79, 79, 79, 79, 79, 79, 79, 74, - 74, 76, 76, 76, 76, 193, 193, 193, 192, 192, - 87, 87, 88, 88, 89, 89, 90, 90, 90, 129, - 105, 105, 161, 161, 160, 160, 163, 163, 91, 91, - 91, 91, 92, 92, 93, 93, 94, 94, 201, 201, - 198, 198, 198, 197, 197, 98, 98, 98, 100, 99, - 99, 99, 99, 101, 101, 103, 103, 102, 102, 104, - 106, 106, 106, 106, 106, 107, 107, 86, 86, 86, - 86, 86, 86, 86, 86, 175, 175, 109, 109, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 120, - 120, 120, 120, 120, 120, 110, 110, 110, 110, 110, - 110, 110, 73, 73, 121, 121, 121, 128, 122, 122, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 273, + 273, 179, 179, 187, 187, 178, 178, 201, 201, 201, + 181, 181, 181, 182, 182, 277, 277, 277, 43, 43, + 45, 45, 46, 47, 47, 203, 203, 204, 204, 48, + 49, 61, 61, 61, 61, 61, 61, 63, 63, 63, + 7, 7, 7, 7, 57, 57, 57, 6, 6, 44, + 44, 51, 274, 274, 275, 276, 276, 276, 276, 52, + 54, 20, 20, 20, 20, 20, 20, 78, 78, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 72, 72, 72, 67, 67, 284, 55, 56, 56, + 70, 70, 70, 64, 64, 64, 69, 69, 69, 75, + 75, 77, 77, 77, 77, 77, 79, 79, 79, 79, + 79, 79, 79, 74, 74, 76, 76, 76, 76, 194, + 194, 194, 193, 193, 87, 87, 88, 88, 89, 89, + 90, 90, 90, 129, 105, 105, 162, 162, 161, 161, + 164, 164, 91, 91, 91, 91, 92, 92, 93, 93, + 94, 94, 202, 202, 199, 199, 199, 198, 198, 98, + 98, 98, 100, 99, 99, 99, 99, 101, 101, 103, + 103, 102, 102, 104, 106, 106, 106, 106, 106, 107, + 107, 86, 86, 86, 86, 86, 86, 86, 86, 176, + 176, 109, 109, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 120, 120, 120, 120, 120, 120, 110, + 110, 110, 110, 110, 110, 110, 73, 73, 121, 121, + 121, 128, 122, 122, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 117, 117, 117, 117, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 116, 116, 116, 116, 116, 116, 283, 283, - 119, 118, 118, 118, 118, 118, 118, 118, 68, 68, - 68, 68, 68, 206, 206, 206, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 135, - 135, 65, 65, 133, 133, 134, 136, 136, 130, 130, - 130, 112, 112, 112, 112, 112, 112, 112, 112, 114, - 114, 114, 137, 137, 138, 138, 139, 139, 140, 140, - 141, 142, 142, 142, 143, 143, 143, 143, 32, 32, - 32, 32, 32, 27, 27, 27, 27, 28, 28, 28, - 80, 80, 80, 80, 82, 82, 81, 81, 58, 58, - 59, 59, 59, 83, 83, 84, 84, 84, 84, 158, - 158, 158, 144, 144, 144, 144, 150, 150, 150, 146, - 146, 148, 148, 148, 149, 149, 149, 147, 155, 155, - 157, 157, 156, 156, 152, 152, 153, 153, 154, 154, - 154, 151, 151, 111, 111, 111, 111, 111, 159, 159, - 159, 159, 164, 164, 124, 124, 126, 126, 125, 127, - 165, 165, 169, 166, 166, 170, 170, 170, 170, 170, - 167, 167, 168, 168, 194, 194, 194, 174, 174, 185, - 185, 182, 182, 183, 183, 176, 176, 187, 187, 187, - 53, 123, 123, 252, 252, 249, 190, 190, 191, 191, - 195, 195, 199, 199, 196, 196, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 113, 113, 113, 113, 113, 113, 113, 113, 117, 117, + 117, 117, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 285, 285, 119, 118, 118, 118, 118, 118, + 118, 118, 68, 68, 68, 68, 68, 207, 207, 207, + 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, + 209, 209, 209, 135, 135, 65, 65, 133, 133, 134, + 136, 136, 130, 130, 130, 112, 112, 112, 112, 112, + 112, 112, 112, 114, 114, 114, 137, 137, 138, 138, + 139, 139, 140, 140, 141, 142, 142, 142, 143, 143, + 143, 143, 32, 32, 32, 32, 32, 27, 27, 27, + 27, 28, 28, 28, 80, 80, 80, 80, 82, 82, + 81, 81, 58, 58, 59, 59, 59, 83, 83, 84, + 84, 84, 84, 159, 159, 159, 144, 144, 144, 144, + 151, 151, 151, 147, 147, 149, 149, 149, 150, 150, + 150, 148, 156, 156, 158, 158, 157, 157, 153, 153, + 154, 154, 155, 155, 155, 152, 152, 111, 111, 111, + 111, 111, 160, 160, 160, 160, 165, 165, 124, 124, + 126, 126, 125, 127, 166, 166, 170, 167, 167, 171, + 171, 171, 171, 171, 168, 168, 169, 169, 195, 195, + 195, 175, 175, 186, 186, 183, 183, 184, 184, 177, + 177, 188, 188, 188, 53, 123, 123, 253, 253, 250, + 191, 191, 192, 192, 196, 196, 200, 200, 197, 197, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, @@ -4759,10 +4780,35 @@ var yyR1 = [...]int{ 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 279, 280, 204, 205, 205, 205, + 189, 189, 189, 189, 189, 189, 189, 189, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 281, 282, 205, + 206, 206, 206, } var yyR2 = [...]int{ @@ -4779,90 +4825,90 @@ var yyR2 = [...]int{ 3, 6, 4, 7, 8, 8, 8, 6, 3, 1, 1, 4, 0, 1, 1, 1, 2, 2, 0, 1, 4, 4, 4, 4, 2, 4, 1, 3, 1, 1, - 3, 4, 3, 3, 3, 3, 0, 2, 0, 2, - 3, 3, 6, 4, 2, 3, 3, 2, 3, 2, - 3, 1, 1, 1, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, - 1, 2, 2, 2, 2, 4, 4, 2, 2, 3, - 3, 3, 3, 1, 1, 1, 1, 1, 6, 6, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 0, 3, 0, 5, 0, 3, 5, 0, 1, 0, - 1, 0, 2, 2, 2, 0, 2, 2, 5, 0, - 1, 1, 2, 1, 3, 2, 3, 0, 1, 3, - 3, 3, 4, 2, 0, 2, 1, 1, 1, 1, - 1, 0, 1, 1, 1, 0, 1, 1, 3, 3, - 3, 1, 3, 1, 11, 12, 12, 13, 5, 3, - 3, 1, 1, 2, 2, 2, 0, 1, 1, 0, - 1, 2, 0, 1, 1, 3, 2, 1, 2, 3, - 3, 4, 4, 3, 3, 3, 3, 4, 4, 3, + 3, 4, 3, 3, 3, 3, 8, 0, 2, 0, + 2, 3, 3, 4, 2, 3, 3, 2, 3, 2, + 1, 1, 0, 2, 3, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 1, 2, 2, 2, 2, 4, + 4, 2, 2, 3, 3, 3, 3, 1, 1, 1, + 1, 1, 6, 6, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 0, 3, 0, 5, 0, 3, + 5, 0, 1, 0, 1, 0, 2, 2, 2, 0, + 2, 2, 5, 0, 1, 1, 2, 1, 3, 2, + 3, 0, 1, 3, 3, 3, 4, 2, 0, 2, + 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, + 1, 1, 3, 3, 3, 1, 3, 1, 11, 12, + 12, 13, 5, 3, 3, 1, 1, 2, 2, 2, + 0, 1, 1, 0, 1, 2, 0, 1, 1, 3, + 2, 1, 2, 3, 3, 4, 4, 3, 3, 3, + 3, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 4, 5, 0, 2, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 1, 0, 2, 0, 2, 0, - 1, 5, 1, 3, 7, 1, 3, 3, 1, 2, - 2, 2, 5, 5, 5, 6, 6, 5, 5, 2, - 2, 2, 2, 3, 3, 3, 4, 1, 3, 5, - 1, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 2, 2, 4, 4, 2, 11, 3, 6, 8, 6, - 6, 6, 13, 8, 6, 10, 5, 5, 5, 5, - 5, 3, 7, 4, 4, 4, 4, 3, 3, 3, - 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 2, 0, 2, 2, 1, 3, 8, 8, 3, - 3, 5, 7, 7, 6, 5, 3, 2, 3, 3, - 3, 7, 3, 3, 3, 3, 4, 7, 5, 2, - 4, 4, 4, 4, 4, 5, 5, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, - 2, 4, 5, 4, 4, 4, 4, 3, 3, 5, - 2, 3, 3, 3, 3, 1, 1, 0, 1, 0, - 1, 1, 1, 0, 2, 2, 0, 2, 2, 0, - 2, 0, 1, 1, 2, 1, 1, 2, 1, 1, - 5, 0, 1, 0, 1, 2, 3, 0, 3, 3, - 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 3, 3, 2, 2, 3, 1, 3, - 2, 1, 2, 1, 2, 2, 4, 3, 3, 6, - 4, 7, 6, 1, 3, 2, 2, 2, 2, 1, - 1, 1, 3, 2, 1, 1, 1, 0, 1, 1, - 0, 3, 0, 2, 0, 2, 1, 2, 2, 0, - 1, 1, 0, 1, 1, 0, 1, 0, 1, 2, - 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 1, 2, 3, 5, 0, 1, 2, 1, 1, - 0, 2, 1, 3, 1, 1, 1, 3, 3, 3, - 3, 7, 0, 3, 1, 3, 1, 3, 4, 4, - 4, 3, 2, 4, 0, 1, 0, 2, 0, 1, - 0, 1, 2, 1, 1, 1, 2, 2, 1, 2, - 3, 2, 3, 2, 2, 2, 1, 1, 3, 3, - 0, 5, 4, 5, 5, 0, 2, 1, 3, 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, + 4, 5, 0, 2, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, + 2, 0, 2, 0, 1, 5, 1, 3, 7, 1, + 3, 3, 1, 2, 2, 2, 5, 5, 5, 6, + 6, 5, 5, 2, 2, 2, 2, 3, 3, 3, + 4, 1, 3, 5, 1, 3, 3, 3, 3, 3, + 3, 3, 3, 2, 2, 2, 4, 4, 2, 11, + 3, 6, 8, 6, 6, 6, 13, 8, 6, 10, + 5, 5, 5, 5, 5, 3, 7, 4, 4, 4, + 4, 3, 3, 3, 7, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 2, 0, 2, 2, 1, + 3, 8, 8, 3, 3, 5, 7, 7, 6, 5, + 3, 2, 3, 3, 3, 7, 3, 3, 3, 3, + 4, 7, 5, 2, 4, 4, 4, 4, 4, 5, + 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 2, 4, 2, 4, 5, 4, 4, 4, + 4, 3, 3, 5, 2, 3, 3, 3, 3, 1, + 1, 0, 1, 0, 1, 1, 1, 0, 2, 2, + 0, 2, 2, 0, 2, 0, 1, 1, 2, 1, + 1, 2, 1, 1, 5, 0, 1, 0, 1, 2, + 3, 0, 3, 3, 3, 3, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 1, 1, 3, 3, 2, + 2, 3, 1, 3, 2, 1, 2, 1, 2, 2, + 4, 3, 3, 6, 4, 7, 6, 1, 3, 2, + 2, 2, 2, 1, 1, 1, 3, 2, 1, 1, + 1, 0, 1, 1, 0, 3, 0, 2, 0, 2, + 1, 2, 2, 0, 1, 1, 0, 1, 1, 0, + 1, 0, 1, 2, 3, 4, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 1, 2, 3, 5, 0, + 1, 2, 1, 1, 0, 2, 1, 3, 1, 1, + 1, 3, 3, 3, 3, 7, 0, 3, 1, 3, + 1, 3, 4, 4, 4, 3, 2, 4, 0, 1, + 0, 2, 0, 1, 0, 1, 2, 1, 1, 1, + 2, 2, 1, 2, 3, 2, 3, 2, 2, 2, + 1, 1, 3, 3, 0, 5, 4, 5, 5, 0, + 2, 1, 3, 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, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, - 1, 1, 1, 1, 4, 5, 5, 6, 4, 4, - 6, 6, 6, 8, 8, 8, 8, 9, 8, 5, - 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 8, 8, 0, 2, - 3, 4, 4, 4, 4, 4, 4, 4, 0, 3, - 4, 7, 3, 1, 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, 1, - 2, 2, 0, 3, 0, 2, 0, 3, 1, 3, - 2, 0, 1, 1, 0, 2, 4, 4, 0, 2, - 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, - 0, 3, 3, 3, 0, 3, 1, 1, 0, 4, - 0, 1, 1, 0, 3, 1, 3, 2, 1, 0, - 2, 4, 0, 9, 3, 5, 0, 3, 3, 0, - 1, 0, 2, 2, 0, 2, 2, 2, 0, 2, - 1, 2, 3, 3, 0, 2, 1, 2, 3, 4, - 3, 0, 1, 2, 1, 5, 4, 4, 1, 3, - 3, 5, 0, 5, 1, 3, 1, 2, 3, 1, - 1, 3, 3, 1, 3, 3, 3, 3, 3, 2, - 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 0, 2, 0, 3, 0, 1, 0, 1, 1, - 5, 0, 1, 0, 1, 2, 1, 1, 1, 1, - 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 1, 1, 1, 1, 4, 5, + 5, 6, 4, 4, 6, 6, 6, 8, 8, 8, + 8, 9, 8, 5, 4, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 8, 8, 0, 2, 3, 4, 4, 4, 4, 4, + 4, 4, 0, 3, 4, 7, 3, 1, 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, 1, 2, 2, 0, 3, 0, 2, + 0, 3, 1, 3, 2, 0, 1, 1, 0, 2, + 4, 4, 0, 2, 2, 1, 1, 3, 3, 3, + 3, 3, 3, 3, 0, 3, 3, 3, 0, 3, + 1, 1, 0, 4, 0, 1, 1, 0, 3, 1, + 3, 2, 1, 0, 2, 4, 0, 9, 3, 5, + 0, 3, 3, 0, 1, 0, 2, 2, 0, 2, + 2, 2, 0, 2, 1, 2, 3, 3, 0, 2, + 1, 2, 3, 4, 3, 0, 1, 2, 1, 5, + 4, 4, 1, 3, 3, 5, 0, 5, 1, 3, + 1, 2, 3, 1, 1, 3, 3, 1, 3, 3, + 3, 3, 3, 2, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 0, 1, 0, 2, 0, 3, 0, + 1, 0, 1, 1, 5, 0, 1, 0, 1, 2, + 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 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, @@ -4903,485 +4949,486 @@ 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, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 0, 1, 1, } var yyChk = [...]int{ - -1000, -277, -1, -3, -8, -9, -10, -11, -12, -13, + -1000, -279, -1, -3, -8, -9, -10, -11, -12, -13, -14, -15, -16, -17, -18, -19, -41, -42, -43, -45, -46, -47, -48, -49, -6, -44, -20, -21, -50, -51, - -52, -53, -54, -4, -279, 6, 7, 8, -62, 10, - 11, 31, -23, -33, 155, -34, -24, 156, -35, 158, - 157, 194, 159, 187, 73, 233, 234, 236, 237, 238, - 239, -63, 192, 193, 161, 35, 44, 32, 33, 36, - 164, 83, 9, 338, 189, 188, 26, -278, 478, -70, - 5, -139, 16, -3, -55, -282, -55, -55, -55, -55, - -55, -55, -237, -239, 83, 128, 83, -55, -39, -38, - -37, -36, -40, 30, -30, -31, -257, -29, -26, 160, - 157, 202, 104, 105, 194, 195, 196, 159, 178, 193, - 197, 192, 211, -25, 79, 32, 351, 354, -244, 156, - 162, 163, 339, 107, 106, 74, 158, -241, 283, 455, - -40, 457, 97, 99, 456, 43, 167, 458, 459, 460, - 461, 177, 462, 463, 464, 465, 471, 472, 473, 474, - 108, 5, -55, -199, -195, -261, -189, 86, 87, 88, - 348, 180, 382, 383, 227, 79, 40, 283, 455, 233, - 247, 241, 268, 260, 349, 384, 230, 181, 215, 452, - 258, 316, 457, 385, 195, 288, 289, 290, 97, 236, - 325, 470, 232, 386, 468, 99, 456, 78, 50, 43, - 190, 256, 252, 458, 216, 387, 359, 209, 107, 104, - 477, 250, 49, 28, 467, 106, 48, 459, 388, 460, - 292, 273, 446, 47, 293, 196, 389, 82, 353, 454, - 294, 251, 295, 226, 466, 161, 390, 438, 297, 447, - 391, 274, 278, 392, 317, 298, 51, 393, 394, 448, - 105, 395, 77, 461, 245, 246, 396, 224, 179, 319, - 272, 177, 34, 299, 350, 228, 57, 203, 320, 45, - 276, 44, 442, 397, 445, 271, 267, 52, 398, 399, - 400, 401, 462, 270, 244, 266, 476, 221, 463, 61, - 163, 280, 279, 281, 210, 315, 263, 402, 403, 404, - 184, 80, 405, 253, 19, 406, 407, 300, 217, 408, - 55, 409, 410, 323, 193, 411, 53, 464, 38, 198, - 465, 412, 413, 414, 415, 416, 302, 417, 301, 275, - 277, 205, 303, 352, 418, 249, 197, 469, 419, 185, - 453, 199, 202, 192, 324, 186, 420, 421, 422, 423, - 424, 231, 425, 426, 237, 471, 42, 427, 428, 429, - 430, 225, 220, 318, 327, 60, 81, 285, 431, 451, - 243, 218, 432, 234, 54, 472, 473, 474, 212, 475, - 305, 108, 222, 223, 46, 264, 204, 433, 434, 254, - 255, 269, 242, 265, 235, 439, 206, 306, 194, 435, - 326, 219, 286, 356, 211, 307, 450, 355, 262, 259, - 213, 436, 308, 168, 207, 208, 437, 440, 309, 310, - 312, 313, 229, 311, 314, 214, 354, 257, 287, 166, - -55, 166, -102, -195, 166, -167, 289, -186, 291, 304, - 299, 309, 297, -178, 300, 302, 205, -276, 317, 166, - 306, 155, 146, 292, 301, 310, 311, 314, 214, -272, - -261, 460, 475, 316, 261, 296, 294, 318, 442, 313, - 312, -195, 235, -202, 240, -190, -261, -189, 238, -102, - -61, 438, 159, -204, -204, -72, 442, 444, -122, -86, - -108, 112, -113, 30, 24, -112, -109, -130, -127, -128, - 146, 147, 149, 148, 150, 135, 136, 143, 113, 151, + -52, -53, -54, -4, -281, 6, 7, 8, -62, 10, + 11, 31, -23, -33, 157, -34, -24, 158, -35, 160, + 159, 196, 161, 189, 73, 235, 236, 238, 239, 240, + 241, -63, 194, 195, 163, 35, 44, 32, 33, 36, + 166, 83, 9, 340, 191, 190, 26, -280, 480, -70, + 5, -139, 16, -3, -55, -284, -55, -55, -55, -55, + -55, -55, -238, -240, 83, 130, 83, -55, -39, -38, + -37, -36, -40, 30, -30, -31, -258, -29, -26, 162, + 159, 204, 104, 105, 196, 197, 198, 161, 180, 195, + 199, 194, 213, -25, 79, 32, 353, 356, -245, 158, + 164, 165, 341, 107, 106, 74, 160, -242, 285, 457, + -40, 459, 97, 99, 458, 43, 169, 460, 461, 462, + 463, 179, 464, 465, 466, 467, 473, 474, 475, 476, + 108, 5, -55, -200, -196, -262, -190, 86, 87, 88, + 350, 182, 384, 385, 229, 79, 40, 285, 457, 235, + 249, 243, 270, 262, 351, 386, 232, 183, 217, 454, + 260, 318, 459, 387, 197, 290, 291, 292, 97, 238, + 327, 472, 234, 388, 470, 99, 458, 78, 50, 43, + 192, 258, 254, 460, 218, 389, 361, 211, 107, 104, + 479, 252, 49, 28, 469, 106, 48, 461, 390, 462, + 294, 275, 448, 47, 295, 198, 391, 82, 355, 456, + 296, 253, 297, 228, 468, 163, 392, 440, 299, 449, + 393, 276, 280, 394, 319, 300, 51, 395, 396, 450, + 105, 397, 77, 463, 247, 248, 398, 226, 181, 321, + 274, 179, 34, 301, 352, 230, 57, 205, 322, 45, + 278, 44, 444, 399, 447, 273, 269, 52, 400, 401, + 402, 403, 464, 272, 246, 268, 478, 223, 465, 61, + 165, 282, 281, 283, 212, 317, 265, 404, 405, 406, + 186, 80, 407, 255, 19, 408, 409, 302, 219, 410, + 55, 411, 412, 325, 195, 413, 53, 466, 38, 200, + 467, 414, 415, 416, 417, 418, 304, 419, 303, 277, + 279, 207, 305, 354, 420, 251, 199, 471, 421, 187, + 455, 201, 204, 194, 326, 188, 422, 423, 424, 425, + 426, 233, 427, 428, 239, 473, 42, 429, 430, 431, + 432, 227, 222, 320, 329, 60, 81, 287, 433, 453, + 245, 220, 434, 236, 54, 474, 475, 476, 214, 477, + 307, 108, 224, 225, 46, 266, 206, 435, 436, 256, + 257, 271, 244, 267, 237, 441, 208, 308, 196, 437, + 328, 221, 288, 358, 213, 309, 452, 357, 264, 261, + 215, 438, 310, 170, 209, 210, 439, 442, 311, 312, + 314, 315, 231, 313, 316, 216, 356, 259, 289, 168, + -55, 168, -102, -196, 168, -168, 291, -187, 293, 306, + 301, 311, 299, -179, 302, 304, 207, -277, 319, 168, + 308, 157, 148, 294, 303, 312, 313, 316, 216, -273, + -262, 462, 477, 318, 263, 298, 296, 320, 444, 315, + 314, -196, 237, -203, 242, -191, -262, -190, 240, -102, + -61, 440, 161, -205, -205, -72, 444, 446, -122, -86, + -108, 114, -113, 30, 24, -112, -109, -130, -127, -128, + 148, 149, 151, 150, 152, 137, 138, 145, 115, 153, -117, -115, -116, -118, 90, 89, 98, 91, 92, 93, - 94, 100, 101, 102, -190, -195, -125, -279, 67, 68, - 339, 340, 341, 342, 347, 343, 115, 56, 334, 328, - 337, 336, 335, 332, 333, 330, 331, 345, 346, 171, - 329, 165, 141, 338, -261, -189, 43, 305, 305, -102, - -55, -5, -4, -279, 6, 21, 22, -143, 18, 17, - -280, 85, -64, -77, 62, 63, -79, 22, 37, 66, - 64, 21, -56, -76, 137, -86, -195, -76, -176, 170, - -176, -176, -166, -207, 235, -170, 318, 317, -191, -168, - -190, -188, -167, 315, 160, 357, 111, 23, 25, 114, - 146, 17, 115, 36, 162, 261, 178, 145, 174, 339, - 155, 71, 358, 330, 331, 328, 334, 341, 342, 329, - 291, 30, 11, 360, 26, 188, 22, 37, 139, 157, - 118, 119, 191, 24, 189, 102, 363, 20, 74, 183, - 12, 176, 39, 14, 364, 365, 15, 171, 170, 130, - 167, 69, 9, 151, 27, 127, 65, 366, 29, 367, - 368, 369, 370, 67, 128, 18, 332, 333, 32, 443, - 371, 347, 200, 141, 72, 58, 444, 112, 372, 373, - 100, 374, 103, 75, 449, 109, 16, 70, 41, 375, - 201, 376, 173, 377, 321, 378, 129, 158, 338, 68, - 379, 165, 304, 6, 344, 31, 187, 175, 66, 380, - 166, 117, 345, 346, 169, 101, 5, 172, 33, 10, - 73, 76, 335, 336, 337, 56, 351, 116, 13, 381, - 322, 110, 316, -238, 128, -225, -229, -190, 182, -254, - 178, -102, -247, -246, -190, -71, -185, 167, 176, 175, - 172, -265, 109, 222, 329, 165, -36, -37, -167, 145, - 199, 84, 84, -229, -228, -227, -266, 201, 182, -253, - -245, 174, 183, -235, 175, 176, -230, 167, 29, -266, - -230, 173, 183, 201, 201, 108, 201, 108, 201, 201, - 201, 201, 201, 201, 201, 201, 201, 198, -236, 120, - -236, 355, 355, -241, -266, -266, -266, 169, 34, 34, - -187, -230, 169, 23, -236, -236, -167, 145, -236, -236, - -236, -236, 209, 209, -236, -236, -236, -236, -236, -236, - -236, -236, -236, -236, -236, -236, -236, -236, -236, 166, - -265, -80, 314, 229, 79, -38, 211, -22, -102, -185, - 167, 168, -265, -102, 152, -102, -180, 128, 13, -180, - -177, 305, 303, 290, 295, -180, -180, -180, -180, 212, - 288, -231, 167, 34, 179, 305, 212, 288, 212, 213, - 212, 213, 298, 308, 212, -200, 12, 130, 329, 293, - 297, 205, 166, 206, 168, 307, -261, 445, 213, -200, - 305, 208, -180, -205, -279, -191, 261, -205, -205, 31, - 169, -190, -57, -190, 90, -7, -3, -11, -10, -12, - 120, -78, 305, -66, 146, 460, 446, 447, 448, 445, - 302, 453, 451, 449, 212, 450, 84, 111, 109, 110, - 127, -86, -110, 130, 112, 128, 129, 114, 132, 131, - 142, 135, 136, 137, 138, 139, 140, 141, 133, 134, - 145, 120, 121, 122, 123, 124, 125, 126, -175, -279, - -128, -279, 153, 154, -113, -113, -113, -113, -113, -113, - -113, -113, -113, -113, -279, 152, -2, -122, -4, -279, - -279, -279, -279, -279, -279, -279, -279, -135, -86, -279, - -283, -279, -283, -119, -279, -283, -119, -283, -119, -283, - -283, -119, -283, -119, -283, -283, -119, -279, -279, -279, - -279, -279, -279, -279, -204, -273, -274, -105, -102, -279, - 229, -139, -3, -55, -158, 20, 32, -86, -140, -141, + 94, 100, 101, 102, -191, -196, -125, -281, 67, 68, + 341, 342, 343, 344, 349, 345, 117, 56, 336, 330, + 339, 338, 337, 334, 335, 332, 333, 347, 348, 173, + 331, 167, 143, 340, -262, -190, 43, 307, 307, -102, + -55, -5, -4, -281, 6, 21, 22, -143, 18, 17, + -282, 85, -64, -77, 62, 63, -79, 22, 37, 66, + 64, 21, -56, -76, 139, -86, -196, -76, -177, 172, + -177, -177, -167, -208, 237, -171, 320, 319, -192, -169, + -191, -189, -168, 317, 162, 359, 113, 23, 25, 116, + 148, 17, 117, 36, 164, 263, 180, 147, 176, 341, + 157, 71, 360, 332, 333, 330, 336, 343, 344, 331, + 293, 30, 11, 362, 26, 190, 22, 37, 141, 159, + 120, 121, 193, 24, 191, 102, 365, 20, 74, 185, + 12, 178, 39, 14, 366, 367, 15, 173, 172, 132, + 169, 69, 9, 153, 27, 129, 65, 368, 29, 369, + 370, 371, 372, 67, 130, 18, 334, 335, 32, 445, + 373, 349, 202, 143, 72, 58, 446, 114, 374, 375, + 100, 376, 103, 75, 451, 111, 16, 70, 41, 377, + 203, 378, 175, 379, 323, 380, 131, 160, 340, 68, + 381, 167, 306, 6, 346, 31, 189, 177, 66, 382, + 168, 119, 347, 348, 171, 101, 5, 174, 33, 10, + 73, 76, 337, 338, 339, 56, 353, 118, 13, 383, + 324, 112, 318, -239, 130, -226, -230, -191, 184, -255, + 180, -102, -248, -247, -191, -71, -186, 169, 178, 177, + 174, -266, 111, 224, 331, 167, -36, -37, -168, 147, + 201, 84, 84, -230, -229, -228, -267, 203, 184, -254, + -246, 176, 185, -236, 177, 178, -231, 169, 29, -267, + -231, 175, 185, 203, 203, 108, 203, 108, 203, 203, + 203, 203, 203, 203, 203, 203, 203, 200, -237, 122, + -237, 357, 357, -242, -267, -267, -267, 171, 34, 34, + -188, -231, 171, 23, -237, -237, -168, 147, -237, -237, + -237, -237, 211, 211, -237, -237, -237, -237, -237, -237, + -237, -237, -237, -237, -237, -237, -237, -237, -237, 168, + -266, -80, 316, 231, 79, -38, 213, -22, -102, -186, + 169, 170, -266, -102, 154, -102, -181, 130, 13, -181, + -178, 307, 305, 292, 297, -181, -181, -181, -181, 214, + 290, -232, 169, 34, 181, 307, 214, 290, 214, 215, + 214, 215, 300, 310, 214, -201, 12, 132, 331, 295, + 299, 207, 168, 208, 170, 309, -262, 447, 215, -201, + 307, 210, -181, -206, -281, -192, 263, -206, -206, 31, + 171, -191, -57, -191, 90, -7, -3, -11, -10, -12, + 122, -78, 307, -66, 148, 462, 448, 449, 450, 447, + 304, 455, 453, 451, 214, 452, 84, 113, 111, 112, + 129, -86, -110, 132, 114, 130, 131, 116, 134, 133, + 144, 137, 138, 139, 140, 141, 142, 143, 135, 136, + 147, 122, 123, 124, 125, 126, 127, 128, -176, -281, + -128, -281, 155, 156, -113, -113, -113, -113, -113, -113, + -113, -113, -113, -113, -281, 154, -2, -122, -4, -281, + -281, -281, -281, -281, -281, -281, -281, -135, -86, -281, + -285, -281, -285, -119, -281, -285, -119, -285, -119, -285, + -285, -119, -285, -119, -285, -285, -119, -281, -281, -281, + -281, -281, -281, -281, -205, -274, -275, -105, -102, -281, + 231, -139, -3, -55, -159, 20, 32, -86, -140, -141, -86, -139, 58, -74, -76, -79, 62, 63, 96, 12, - -193, -192, 23, -190, 90, 152, 12, -103, 27, -102, - -88, -89, -90, -91, -105, -129, -279, 12, -95, -96, - -102, -104, -195, 84, 235, -170, -207, -172, -171, 319, - 321, 120, -194, -190, 90, 30, 85, 84, -102, -209, - -212, -214, -213, -215, -210, -211, 258, 259, 146, 262, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 31, 190, 254, 255, 256, 257, 274, 275, 276, 277, - 278, 279, 280, 281, 241, 260, 349, 242, 243, 244, - 245, 246, 247, 249, 250, 251, 252, 253, -264, -261, - 83, 85, 84, -216, 83, -80, 166, -261, 167, 167, - 167, -55, 338, -236, -236, 198, -29, -26, -257, 16, - -25, -26, 160, 104, 105, 157, 83, -225, 83, -234, - -264, -261, 83, 29, 173, 172, -233, -230, -233, -234, - -261, -130, -190, -195, -261, 29, 29, -163, -190, -163, - -163, 21, -163, 21, -163, 21, 91, -190, -163, 21, - -163, 21, -163, 21, -163, 21, -163, 21, 30, 77, - 78, 30, 80, 81, 82, -130, -130, -225, -167, -102, - -261, 91, 91, -236, -236, 91, 90, 90, 90, -236, - -236, 91, 90, -261, 90, -267, 184, 226, 228, 91, - 91, 91, 91, 30, 90, -268, 30, 467, 466, 468, - 469, 470, 91, 30, 91, 30, 91, -190, 83, -102, - -83, 216, 155, 157, 160, 75, 90, 230, 120, 43, - 84, 169, 166, -261, -182, 171, -182, -196, -195, -188, - 90, -86, -232, 12, 130, -200, -200, -180, -102, -232, - -200, -180, -102, -180, -180, -180, -180, -200, -200, -200, - -180, -195, -195, -102, -102, -102, -102, -102, -102, -102, - -205, -205, -205, -181, 128, -180, 75, -203, 238, 272, - 439, 440, 441, 84, 351, -95, 445, 445, 445, 445, - 445, 445, -86, -86, -86, -86, -120, 100, 112, 101, - 102, -113, -121, -125, -128, 95, 130, 128, 129, 114, + -194, -193, 23, -191, 90, 154, 12, -103, 27, -102, + -88, -89, -90, -91, -105, -129, -281, 12, -95, -96, + -102, -104, -196, 84, 237, -171, -208, -173, -172, 321, + 323, 122, -195, -191, 90, 30, 85, 84, -102, -210, + -213, -215, -214, -216, -211, -212, 260, 261, 148, 264, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 31, 192, 256, 257, 258, 259, 276, 277, 278, 279, + 280, 281, 282, 283, 243, 262, 351, 244, 245, 246, + 247, 248, 249, 251, 252, 253, 254, 255, -265, -262, + 83, 85, 84, -217, 83, -80, 168, -262, 169, 169, + 169, -55, 340, -237, -237, 200, -29, -26, -258, 16, + -25, -26, 162, 104, 105, 159, 83, -226, 83, -235, + -265, -262, 83, 29, 175, 174, -234, -231, -234, -235, + -262, -130, -191, -196, -262, 29, 29, -164, -191, -164, + -164, 21, -164, 21, -164, 21, 91, -191, -164, 21, + -164, 21, -164, 21, -164, 21, -164, 21, 30, 77, + 78, 30, 80, 81, 82, -130, -130, -226, -168, -102, + -262, 91, 91, -237, -237, 91, 90, 90, 90, -237, + -237, 91, 90, -262, 90, -268, 186, 228, 230, 91, + 91, 91, 91, 30, 90, -269, 30, 469, 468, 470, + 471, 472, 91, 30, 91, 30, 91, -191, 83, -102, + -83, 218, 157, 159, 162, 75, 90, 232, 122, 43, + 84, 171, 168, -262, -183, 173, -183, -197, -196, -189, + 90, -86, -233, 12, 132, -201, -201, -181, -102, -233, + -201, -181, -102, -181, -181, -181, -181, -201, -201, -201, + -181, -196, -196, -102, -102, -102, -102, -102, -102, -102, + -206, -206, -206, -182, 130, -181, 75, -204, 240, 274, + 441, 442, 443, 84, 353, -95, 447, 447, 447, 447, + 447, 447, -86, -86, -86, -86, -120, 100, 114, 101, + 102, -113, -121, -125, -128, 95, 132, 130, 131, 116, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, - -113, -113, -113, -113, -113, -206, -261, 90, 146, -261, - -112, -112, -190, -75, 22, 37, -74, -191, -196, -188, - -70, -280, -280, -139, -74, -74, -86, -86, -130, 90, + -113, -113, -113, -113, -113, -207, -262, 90, 148, -262, + -112, -112, -191, -75, 22, 37, -74, -192, -197, -189, + -70, -282, -282, -139, -74, -74, -86, -86, -130, 90, -74, -130, 90, -74, -74, -69, 22, 37, -133, -134, - 116, -130, -280, -113, -190, -190, -74, -75, -75, -74, - -74, 84, -275, 321, 322, 443, -198, 201, -197, 23, - -195, 90, -123, -122, 90, -143, -280, -144, 27, 10, - 130, 84, 19, 84, -142, 25, 26, -143, -114, -190, - 91, 94, -87, 84, 12, -79, -102, -192, 137, -196, - -102, -162, 201, -102, 31, 84, -98, -100, -99, -101, - 65, 69, 71, 66, 67, 68, 72, -201, 23, -88, - -3, -279, -102, -95, -281, 84, 12, 76, -281, 84, - 152, -170, -172, 84, 320, 322, 323, 75, 103, -86, - -218, 145, -243, -242, -241, -225, -227, -228, -229, 85, - -145, -221, 286, -216, -216, -216, -216, -216, -217, -167, - -217, -217, -217, 83, 83, -216, -216, -216, -216, -219, - 83, -219, -219, -220, 83, -220, -254, -86, -251, -250, - -248, -249, 177, 97, 351, 76, -246, -142, 91, -83, - -183, 171, -252, -249, -261, -261, -261, -183, -261, 90, - -261, 90, 84, 17, -226, -225, -131, 226, -256, 201, - -253, -247, -234, 29, -233, -234, -234, 152, -261, 84, - 27, 108, 108, 108, 108, 351, 157, 31, -225, -131, - -206, 169, -206, -206, 90, 90, -179, 475, -95, -82, - 218, 120, 207, 207, 166, 166, 220, -102, 231, 232, - 230, 21, 219, 221, 223, 209, -102, -102, -182, 75, - -97, -102, 24, -195, -102, -180, -180, -102, -180, -180, - 90, -102, -190, -66, 321, 351, 20, -67, 20, 100, - 101, 102, -121, -113, -113, -113, -73, 191, 111, -280, - -280, -74, -74, -279, 152, -5, -143, -280, -280, 84, - 76, 23, 12, 12, -280, 12, 12, -280, -280, -74, - -136, -134, 118, -86, -280, -280, 84, 84, -280, -280, - -280, -280, -280, -274, 442, 322, -106, 73, 170, 74, - -279, -197, -280, -158, 41, 49, 60, -86, -86, -141, - -158, -174, 20, 12, 56, 56, -107, 13, -76, -88, - -79, 152, -107, -111, 31, 56, -3, -279, -279, -165, - -169, -130, -89, -90, -90, -89, -90, 65, 65, 65, - 70, 65, 70, 65, -99, -195, -280, -280, -3, -162, - 76, -88, -102, -88, -104, -195, 137, -171, -173, 324, - 321, 327, -261, 90, 84, -241, -229, 100, 112, 30, - -85, 75, 283, 97, 173, 29, 172, 39, -222, 287, - -217, -217, -218, -261, 90, 146, -218, -218, -218, -224, - 90, -224, 91, 91, 85, -32, -27, -28, 32, 79, - -248, -236, 90, 38, -190, 85, -82, -102, 112, 75, - -252, -252, -252, -195, 16, -160, -190, 84, 85, -132, - 227, -130, 85, -190, 85, 83, -234, -191, -190, -279, - 166, 30, 30, -131, -132, -218, -261, 477, 476, 85, - 168, 225, -84, 334, 90, 86, -102, -102, -102, -102, - -102, 160, 157, 210, 169, -95, -102, 84, -60, 186, - 181, -200, -200, 32, 321, 454, 452, -73, 111, -113, - -113, -280, -280, -75, -191, -139, -158, -208, 146, 258, - 190, 256, 252, 272, 263, 285, 254, 286, -206, -208, - -113, -113, -113, -113, 348, -139, 119, -86, 117, -113, - -113, 167, 167, 167, -163, 42, 90, 90, 61, -102, - -137, 14, -86, 137, -143, -164, 75, -165, -124, -126, - -125, -279, -159, -280, -190, -163, -107, 84, 120, -93, - -92, 75, 76, -94, 75, -92, 65, 65, -280, -107, - -88, -107, -107, 152, 321, 325, 326, -241, 100, -113, - 23, 10, 90, 29, 29, 40, -218, -218, 85, 84, - 85, 84, 85, 84, -184, 388, 112, -28, -27, -236, - -236, 91, -261, 168, 24, -102, 75, 75, 75, 17, - 84, -225, -130, 56, -251, -160, -255, -256, -102, -112, - -132, -102, -81, 216, 224, 83, 87, -263, 76, 207, - 283, 207, -102, -60, -32, -102, -180, -180, 32, -261, - -113, -280, -143, -280, -216, -216, -216, -220, -216, 246, - -216, 246, -280, -280, 20, 20, 20, 20, -279, -65, - 344, -86, 84, 84, -279, -279, -279, -280, 90, -217, - -138, 15, 17, 28, -164, 84, -280, -280, 84, 56, - 152, -280, -139, -169, -86, -86, 83, -86, -139, -107, - 83, -116, -217, 90, -217, 91, 91, 388, 30, 80, - 81, 82, 30, 77, 78, -102, -102, -102, -102, -160, - -190, 203, 85, -280, 84, -223, 351, 354, -161, 83, - 85, -260, 351, -262, -261, -190, -190, -190, -158, -217, - -261, -113, -113, -113, -113, -113, -143, 90, -113, -113, - -160, -280, -160, -160, -198, -217, -147, -152, -177, -86, - -122, 29, -126, 56, -3, -190, -124, -190, -143, -160, - -143, -113, -218, -218, 85, 85, -161, 204, 185, -256, - 355, 355, 23, -160, -259, -258, -191, 83, 76, -280, - -280, -280, -280, -68, 130, 351, -280, -280, -280, -280, - -280, -280, -106, -150, 438, -155, 45, -153, -154, 46, - -151, 47, 55, 10, -124, 152, 85, 85, 23, -279, - -102, -3, 85, 84, 120, -160, -102, -280, 349, 72, - 352, -147, 50, 264, -157, -156, 54, 46, -154, 17, - 48, 17, -165, -190, -3, -113, 200, 83, -58, 351, - -258, -240, -191, 90, 91, 85, 61, 350, 353, -148, - 52, -146, 51, -146, -156, 17, 17, 90, 17, 90, - -58, -280, -280, -160, -59, 215, 442, -263, 61, -149, - 53, 75, 103, 90, 90, 90, 85, 178, -260, 351, - 75, 103, -270, -271, 75, 217, 352, -271, 75, 11, - 10, 353, -269, 186, 181, 184, 31, -269, 180, 30, - 100, + 118, -130, -282, -113, -191, -191, -74, -75, -75, -74, + -74, 84, -276, 323, 324, 445, -199, 203, -198, 23, + -196, 90, -123, -122, 90, -143, -282, -144, 27, 10, + 132, 84, 19, 84, -142, 25, 26, -143, -114, -191, + 91, 94, -87, 84, 12, -79, -102, -193, 139, -197, + -102, -163, 203, -102, 31, 84, -98, -100, -99, -101, + 65, 69, 71, 66, 67, 68, 72, -202, 23, -88, + -3, -281, -102, -95, -283, 84, 12, 76, -283, 84, + 154, -171, -173, 84, 322, 324, 325, 75, 103, -86, + -219, 147, -244, -243, -242, -226, -228, -229, -230, 85, + -145, -85, 39, -222, 288, -217, -217, -217, -217, -217, + -218, -168, -218, -218, -218, 83, 83, -217, -217, -217, + -217, -220, 83, -220, -220, -221, 83, -221, -255, -86, + -252, -251, -249, -250, 179, 97, 353, 76, -247, -142, + 91, -83, -184, 173, -253, -250, -262, -262, -262, -184, + -262, 90, -262, 90, 84, 17, -227, -226, -131, 228, + -257, 203, -254, -248, -235, 29, -234, -235, -235, 154, + -262, 84, 27, 108, 108, 108, 108, 353, 159, 31, + -226, -131, -207, 171, -207, -207, 90, 90, -180, 477, + -95, -82, 220, 122, 209, 209, 168, 168, 222, -102, + 233, 234, 232, 21, 221, 223, 225, 211, -102, -102, + -183, 75, -97, -102, 24, -196, -102, -181, -181, -102, + -181, -181, 90, -102, -191, -66, 323, 353, 20, -67, + 20, 100, 101, 102, -121, -113, -113, -113, -73, 193, + 113, -282, -282, -74, -74, -281, 154, -5, -143, -282, + -282, 84, 76, 23, 12, 12, -282, 12, 12, -282, + -282, -74, -136, -134, 120, -86, -282, -282, 84, 84, + -282, -282, -282, -282, -282, -275, 444, 324, -106, 73, + 172, 74, -281, -198, -282, -159, 41, 49, 60, -86, + -86, -141, -159, -175, 20, 12, 56, 56, -107, 13, + -76, -88, -79, 154, -107, -111, 31, 56, -3, -281, + -281, -166, -170, -130, -89, -90, -90, -89, -90, 65, + 65, 65, 70, 65, 70, 65, -99, -196, -282, -282, + -3, -163, 76, -88, -102, -88, -104, -196, 139, -172, + -174, 326, 323, 329, -262, 90, 84, -242, -230, 100, + 114, 30, 75, 285, 97, 175, 29, 174, 23, 40, + -223, 289, -218, -218, -219, -262, 90, 148, -219, -219, + -219, -225, 90, -225, 91, 91, 85, -32, -27, -28, + 32, 79, -249, -237, 90, 38, -191, 85, -82, -102, + 114, 75, -253, -253, -253, -196, 16, -161, -191, 84, + 85, -132, 229, -130, 85, -191, 85, 83, -235, -192, + -191, -281, 168, 30, 30, -131, -132, -219, -262, 479, + 478, 85, 170, 227, -84, 336, 90, 86, -102, -102, + -102, -102, -102, 162, 159, 212, 171, -95, -102, 84, + -60, 188, 183, -201, -201, 32, 323, 456, 454, -73, + 113, -113, -113, -282, -282, -75, -192, -139, -159, -209, + 148, 260, 192, 258, 254, 274, 265, 287, 256, 288, + -207, -209, -113, -113, -113, -113, 350, -139, 121, -86, + 119, -113, -113, 169, 169, 169, -164, 42, 90, 90, + 61, -102, -137, 14, -86, 139, -143, -165, 75, -166, + -124, -126, -125, -281, -160, -282, -191, -164, -107, 84, + 122, -93, -92, 75, 76, -94, 75, -92, 65, 65, + -282, -107, -88, -107, -107, 154, 323, 327, 328, -242, + 100, -113, 10, 90, 29, 29, 83, -219, -219, 85, + 84, 85, 84, 85, 84, -185, 390, 114, -28, -27, + -237, -237, 91, -262, 170, 24, -102, 75, 75, 75, + 17, 84, -226, -130, 56, -252, -161, -256, -257, -102, + -112, -132, -102, -81, 218, 226, 83, 87, -264, 76, + 209, 285, 209, -102, -60, -32, -102, -181, -181, 32, + -262, -113, -282, -143, -282, -217, -217, -217, -221, -217, + 248, -217, 248, -282, -282, 20, 20, 20, 20, -281, + -65, 346, -86, 84, 84, -281, -281, -281, -282, 90, + -218, -138, 15, 17, 28, -165, 84, -282, -282, 84, + 56, 154, -282, -139, -170, -86, -86, 83, -86, -139, + -107, -116, -113, -218, 90, -218, 91, 91, 390, 30, + 80, 81, 82, 30, 77, 78, -102, -102, -102, -102, + -161, -191, 205, 85, -282, 84, -224, 353, 356, -162, + 83, 85, -261, 353, -263, -262, -191, -191, -191, -159, + -218, -262, -113, -113, -113, -113, -113, -143, 90, -113, + -113, -161, -282, -161, -161, -199, -218, -148, -153, -178, + -86, -122, 29, -126, 56, -3, -191, -124, -191, -143, + -161, -143, 85, -219, -219, 85, 85, -162, 206, 187, + -257, 357, 357, 23, -161, -260, -259, -192, 83, 76, + -282, -282, -282, -282, -68, 132, 353, -282, -282, -282, + -282, -282, -282, -106, -151, 440, -156, 45, -154, -155, + 46, -152, 47, 55, 10, -124, 154, 85, -146, 23, + -281, -102, -3, 85, 84, 122, -161, -102, -282, 351, + 72, 354, -148, 50, 266, -158, -157, 54, 46, -155, + 17, 48, 17, -166, -191, -278, 109, 110, -3, -113, + 202, 83, -58, 353, -259, -241, -192, 90, 91, 85, + 61, 352, 355, -149, 52, -147, 51, -147, -157, 17, + 17, 90, 17, 90, -58, -282, -282, -161, -59, 217, + 444, -264, 61, -150, 53, 75, 103, 90, 90, 90, + 85, 180, -261, 353, 75, 103, -271, -272, 75, 219, + 354, -272, 75, 11, 10, 355, -270, 188, 183, 186, + 31, -270, 182, 30, 100, } var yyDef = [...]int{ 34, -2, 2, 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, 32, 33, 826, 0, 562, 562, 562, 562, 562, - 562, 562, 0, 0, 562, -2, -2, 562, 962, 0, - 562, 0, 0, -2, 495, 496, 0, 498, -2, 0, - 0, 507, 1375, 1375, 557, 0, 0, 0, 0, 0, - 562, 1373, 55, 56, 513, 514, 515, 1, 3, 0, - 566, 834, 0, 0, -2, 564, 0, 0, 945, 945, - 945, 0, 86, 87, 0, 0, 0, -2, 90, -2, - 114, 115, 0, 119, 371, 332, 374, 330, 360, -2, - 323, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 335, 227, 227, 0, 0, -2, 323, - 323, 323, 0, 0, 0, 357, 947, 277, 227, 227, - 0, 227, 227, 227, 227, 0, 0, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 850, 118, 963, 960, 961, 35, 36, 37, - 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, - 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, - 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, - 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, - 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, - 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, - 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, - 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, - 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, - 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, - 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, - 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, - 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, - 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, - 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, - 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, - 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, - 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, - 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, - 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, - 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, - 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, - 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, - 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, - 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, - 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, - 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 0, - 939, 0, 427, 647, 0, 486, 486, 0, 486, 486, - 486, 486, 0, 0, 0, 439, 0, 0, 0, 0, - 483, 0, 0, 458, 460, 0, 483, 0, 470, 486, - 1376, 1376, 1376, 930, 0, 480, 478, 492, 493, 475, - 476, 494, 497, 0, 502, 505, 956, 957, 0, 520, - 0, 1181, 512, 525, 526, 0, 558, 559, 40, 698, - 657, 0, 663, 665, 0, 700, 701, 702, 703, 704, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 730, 731, 732, 733, 811, 812, 813, 814, 815, 816, - 817, 818, 667, 668, 808, 0, 919, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 799, 0, 768, 768, - 768, 768, 768, 768, 768, 768, 768, 0, 0, 0, - 0, 0, 0, 0, -2, -2, 1375, 0, 535, 0, - 0, 826, 51, 0, 562, 567, 568, 869, 0, 0, - 826, 1374, 0, 0, -2, -2, 578, 584, 585, 586, - 587, 588, 563, 0, 591, 595, 0, 0, 0, 946, - 0, 0, 72, 0, 1338, 923, -2, -2, 0, 0, - 958, 959, 932, -2, 966, 967, 968, 969, 970, 971, - 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, - 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, - 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, - 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, - 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, - 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, - 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, - 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, - 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, - 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, - 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, - 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, - 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, - 1102, 1103, -2, 0, 0, 128, 129, 0, 38, 253, - 0, 124, 0, 247, 200, 850, 0, 0, 0, 0, - 0, 562, 0, 940, 109, 110, 116, 117, 227, 227, - 0, 118, 118, 339, 340, 341, 0, 0, -2, 251, - 0, 324, 0, 0, 241, 241, 245, 243, 244, 0, - 0, 0, 0, 0, 0, 351, 0, 352, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 411, 0, 228, - 0, 369, 370, 278, 0, 0, 0, 0, 349, 350, - 0, 0, 948, 949, 0, 0, 227, 227, 0, 0, - 0, 0, 227, 227, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 108, 863, 0, 0, 0, -2, 0, 419, 0, 0, - 0, 941, 941, 426, 0, 428, 429, 0, 0, 430, - 0, 483, 483, 481, 482, 432, 433, 434, 435, 486, - 0, 0, 236, 237, 238, 483, 486, 0, 486, 486, - 486, 486, 483, 483, 483, 486, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1376, 1376, 1376, 489, 486, - 467, 468, 471, 472, 1377, 1378, 977, 473, 474, 931, - 503, 506, 523, 521, 522, 524, 516, 517, 518, 519, - 0, 537, 538, 543, 0, 0, 0, 0, 549, 550, - 551, 0, 0, 554, 555, 556, 0, 0, 0, 0, - 0, 661, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 685, 686, 687, 688, 689, 690, 691, 664, 0, - 678, 0, 0, 0, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 0, 575, 0, 0, 0, 826, 0, - 0, 0, 0, 0, 0, 0, 572, 0, 800, 0, - 751, 0, 752, 760, 0, 753, 761, 754, 762, 755, - 756, 763, 757, 764, 758, 759, 765, 0, 0, 0, - 575, 575, 0, 0, 41, 527, 528, 0, 630, 951, - 0, 834, 0, 577, 872, 0, 0, 835, 827, 828, - 831, 834, 0, 600, 589, 579, 582, 583, 565, 0, - 592, 596, 0, 598, 599, 0, 0, 70, 0, 646, - 0, 602, 604, 605, 606, 628, 0, 0, 0, 0, - 66, 68, 647, 0, 1338, 929, 0, 74, 75, 0, - 0, 0, 215, 934, 935, 936, -2, 234, 0, 138, - 207, 151, 152, 153, 200, 155, 200, 200, 200, 200, - 211, 211, 211, 211, 183, 184, 185, 186, 187, 0, - 0, 170, 200, 200, 200, 200, 190, 191, 192, 193, - 194, 195, 196, 197, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 202, 202, 202, 204, 204, 0, 39, - 0, 219, 0, 831, 0, 863, 943, 953, 0, 0, - 0, 943, 92, 0, 0, 372, 333, 361, 373, 0, - 336, 337, -2, 0, 0, 323, 0, 325, 0, 235, - 0, -2, 0, 245, 0, 241, 245, 242, 245, 233, - 246, 353, 808, 0, 354, 355, 0, 391, 616, 0, - 0, 0, 0, 0, 397, 398, 399, 0, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 362, 363, - 364, 365, 366, 367, 368, 0, 0, 325, 0, 358, - 0, 279, 280, 0, 0, 283, 284, 285, 286, 0, - 0, 289, 290, 291, 292, 293, 317, 318, 319, 294, - 295, 296, 297, 298, 299, 300, 311, 312, 313, 314, - 315, 316, 301, 302, 303, 304, 305, 308, 0, 102, - 854, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 941, 0, 0, 0, 0, 648, 964, 965, - 487, 488, 0, 239, 240, 486, 486, 436, 459, 0, - 486, 440, 461, 441, 443, 442, 444, 463, 464, 486, - 447, 484, 485, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 465, 0, 466, 0, 0, 504, 508, - 509, 510, 511, 0, 0, 540, 545, 546, 547, 548, - 560, 553, 699, 658, 659, 660, 662, 679, 0, 681, - 683, 669, 670, 694, 695, 696, 0, 0, 0, 0, - 692, 674, 0, 705, 706, 707, 708, 709, 710, 711, - 712, 713, 714, 715, 716, 719, 783, 784, 785, 0, - 717, 718, 729, 0, 0, 0, 576, 809, 0, -2, - 0, 697, 918, 834, 0, 0, 0, 0, 702, 811, - 0, 702, 811, 0, 0, 0, 573, 574, 806, 803, - 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 530, 531, 533, 0, 650, 0, 631, 0, - 633, 634, 0, 952, 536, 869, 52, 42, 0, 870, - 0, 0, 0, 0, 830, 832, 833, 869, 0, 819, - 0, 0, 655, 0, 0, 580, 48, 597, 593, 0, - 655, 0, 0, 645, 0, 0, 0, 0, 0, 0, - 635, 0, 0, 638, 0, 0, 0, 0, 629, 0, + 31, 32, 33, 830, 0, 566, 566, 566, 566, 566, + 566, 566, 0, 0, 566, -2, -2, 566, 966, 0, + 566, 0, 0, -2, 499, 500, 0, 502, -2, 0, + 0, 511, 1379, 1379, 561, 0, 0, 0, 0, 0, + 566, 1377, 55, 56, 517, 518, 519, 1, 3, 0, + 570, 838, 0, 0, -2, 568, 0, 0, 949, 949, + 949, 0, 86, 87, 0, 0, 0, -2, 90, -2, + 114, 115, 0, 119, 375, 336, 378, 334, 364, -2, + 327, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 339, 231, 231, 0, 0, -2, 327, + 327, 327, 0, 0, 0, 361, 951, 281, 231, 231, + 0, 231, 231, 231, 231, 0, 0, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 854, 118, 967, 964, 965, 35, 36, 37, + 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, + 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, + 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, + 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, + 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, + 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, + 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, + 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, + 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, + 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, + 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, + 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, + 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, + 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, + 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, + 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, + 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, + 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, + 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, + 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, + 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, + 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, + 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, + 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, + 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, + 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, + 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 0, + 943, 0, 431, 651, 0, 490, 490, 0, 490, 490, + 490, 490, 0, 0, 0, 443, 0, 0, 0, 0, + 487, 0, 0, 462, 464, 0, 487, 0, 474, 490, + 1380, 1380, 1380, 934, 0, 484, 482, 496, 497, 479, + 480, 498, 501, 0, 506, 509, 960, 961, 0, 524, + 0, 1185, 516, 529, 530, 0, 562, 563, 40, 702, + 661, 0, 667, 669, 0, 704, 705, 706, 707, 708, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 734, 735, 736, 737, 815, 816, 817, 818, 819, 820, + 821, 822, 671, 672, 812, 0, 923, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 803, 0, 772, 772, + 772, 772, 772, 772, 772, 772, 772, 0, 0, 0, + 0, 0, 0, 0, -2, -2, 1379, 0, 539, 0, + 0, 830, 51, 0, 566, 571, 572, 873, 0, 0, + 830, 1378, 0, 0, -2, -2, 582, 588, 589, 590, + 591, 592, 567, 0, 595, 599, 0, 0, 0, 950, + 0, 0, 72, 0, 1342, 927, -2, -2, 0, 0, + 962, 963, 936, -2, 970, 971, 972, 973, 974, 975, + 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, + 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, + 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, + 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, + 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, + 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, + 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, + 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, + 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, + 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, + 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, + 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, + 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, + 1106, 1107, -2, 0, 0, 128, 129, 0, 38, 257, + 0, 124, 0, 251, 204, 854, 0, 0, 0, 0, + 0, 566, 0, 944, 109, 110, 116, 117, 231, 231, + 0, 118, 118, 343, 344, 345, 0, 0, -2, 255, + 0, 328, 0, 0, 245, 245, 249, 247, 248, 0, + 0, 0, 0, 0, 0, 355, 0, 356, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 415, 0, 232, + 0, 373, 374, 282, 0, 0, 0, 0, 353, 354, + 0, 0, 952, 953, 0, 0, 231, 231, 0, 0, + 0, 0, 231, 231, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 108, 867, 0, 0, 0, -2, 0, 423, 0, 0, + 0, 945, 945, 430, 0, 432, 433, 0, 0, 434, + 0, 487, 487, 485, 486, 436, 437, 438, 439, 490, + 0, 0, 240, 241, 242, 487, 490, 0, 490, 490, + 490, 490, 487, 487, 487, 490, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1380, 1380, 1380, 493, 490, + 471, 472, 475, 476, 1381, 1382, 981, 477, 478, 935, + 507, 510, 527, 525, 526, 528, 520, 521, 522, 523, + 0, 541, 542, 547, 0, 0, 0, 0, 553, 554, + 555, 0, 0, 558, 559, 560, 0, 0, 0, 0, + 0, 665, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 689, 690, 691, 692, 693, 694, 695, 668, 0, + 682, 0, 0, 0, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 0, 579, 0, 0, 0, 830, 0, + 0, 0, 0, 0, 0, 0, 576, 0, 804, 0, + 755, 0, 756, 764, 0, 757, 765, 758, 766, 759, + 760, 767, 761, 768, 762, 763, 769, 0, 0, 0, + 579, 579, 0, 0, 41, 531, 532, 0, 634, 955, + 0, 838, 0, 581, 876, 0, 0, 839, 831, 832, + 835, 838, 0, 604, 593, 583, 586, 587, 569, 0, + 596, 600, 0, 602, 603, 0, 0, 70, 0, 650, + 0, 606, 608, 609, 610, 632, 0, 0, 0, 0, + 66, 68, 651, 0, 1342, 933, 0, 74, 75, 0, + 0, 0, 219, 938, 939, 940, -2, 238, 0, -2, + 211, 155, 156, 157, 204, 159, 204, 204, 204, 204, + 215, 215, 215, 215, 187, 188, 189, 190, 191, 0, + 0, 174, 204, 204, 204, 204, 194, 195, 196, 197, + 198, 199, 200, 201, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 206, 206, 206, 208, 208, 0, 39, + 0, 223, 0, 835, 0, 867, 947, 957, 0, 0, + 0, 947, 92, 0, 0, 376, 337, 365, 377, 0, + 340, 341, -2, 0, 0, 327, 0, 329, 0, 239, + 0, -2, 0, 249, 0, 245, 249, 246, 249, 237, + 250, 357, 812, 0, 358, 359, 0, 395, 620, 0, + 0, 0, 0, 0, 401, 402, 403, 0, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 366, 367, + 368, 369, 370, 371, 372, 0, 0, 329, 0, 362, + 0, 283, 284, 0, 0, 287, 288, 289, 290, 0, + 0, 293, 294, 295, 296, 297, 321, 322, 323, 298, + 299, 300, 301, 302, 303, 304, 315, 316, 317, 318, + 319, 320, 305, 306, 307, 308, 309, 312, 0, 102, + 858, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 945, 0, 0, 0, 0, 652, 968, 969, + 491, 492, 0, 243, 244, 490, 490, 440, 463, 0, + 490, 444, 465, 445, 447, 446, 448, 467, 468, 490, + 451, 488, 489, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 469, 0, 470, 0, 0, 508, 512, + 513, 514, 515, 0, 0, 544, 549, 550, 551, 552, + 564, 557, 703, 662, 663, 664, 666, 683, 0, 685, + 687, 673, 674, 698, 699, 700, 0, 0, 0, 0, + 696, 678, 0, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 723, 787, 788, 789, 0, + 721, 722, 733, 0, 0, 0, 580, 813, 0, -2, + 0, 701, 922, 838, 0, 0, 0, 0, 706, 815, + 0, 706, 815, 0, 0, 0, 577, 578, 810, 807, + 0, 0, 773, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 534, 535, 537, 0, 654, 0, 635, 0, + 637, 638, 0, 956, 540, 873, 52, 42, 0, 874, + 0, 0, 0, 0, 834, 836, 837, 873, 0, 823, + 0, 0, 659, 0, 0, 584, 48, 601, 597, 0, + 659, 0, 0, 649, 0, 0, 0, 0, 0, 0, + 639, 0, 0, 642, 0, 0, 0, 0, 633, 0, 0, 0, -2, 0, 0, 0, 62, 63, 0, 0, - 0, 924, 73, 0, 0, 78, 79, 925, 926, 927, - 928, 0, 111, -2, 274, 130, 132, 133, 134, 125, - -2, 209, 208, 154, 211, 211, 177, 178, 215, 0, - 215, 215, 215, 0, 0, 171, 172, 173, 174, 165, - 0, 166, 167, 168, 0, 169, 252, 0, 838, 220, - 221, 223, 227, 0, 0, 0, 248, 249, 0, 854, - 0, 0, 0, 954, 953, 953, 953, 0, 120, 121, - 122, 123, 118, 0, 0, 126, 327, 0, 0, 0, - 250, 0, 0, 229, 245, 230, 231, 0, 356, 0, - 0, 393, 394, 395, 396, 0, 0, 0, 325, 327, - 215, 0, 281, 282, 287, 288, 306, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 386, 387, - 388, 389, 851, 852, 853, 0, 0, 420, 0, 0, - 266, 64, 942, 425, 483, 446, 462, 483, 438, 445, - 490, 469, 500, 544, 0, 0, 0, 552, 0, 680, - 682, 684, 671, 692, 675, 0, 672, 0, 0, 666, - 734, 0, 0, 575, 0, 826, 869, 738, 739, 0, - 0, 0, 0, 0, 776, 0, 0, 777, 0, 826, - 0, 804, 0, 0, 750, 770, 0, 0, 771, 772, - 773, 774, 775, 529, 532, 534, 610, 0, 0, 0, - 0, 632, 950, 44, 0, 0, 0, 836, 837, 829, - 43, 0, 937, 938, 820, 821, 822, 0, 590, 601, - 581, 0, 834, 912, 0, 0, 904, 0, 0, 655, - 920, 0, 603, 624, 626, 0, 621, 636, 637, 639, - 0, 641, 0, 643, 644, 607, 608, 609, 0, 655, - 0, 655, 67, 655, 69, 0, 649, 76, 77, 0, - 0, 83, 216, 217, 118, 276, 131, 139, 0, 0, - 0, 0, 144, 0, 0, 147, 149, 0, 150, 210, - 215, 215, 179, 212, 213, 214, 180, 181, 182, 0, - 198, 0, 0, 0, 269, 88, 842, 841, 227, 227, - 222, 0, 225, 0, 955, 201, 0, 101, 0, 0, - 0, 0, 0, 107, 0, 331, 614, 0, 342, 343, - 0, 326, 390, 0, 219, 0, 232, 809, 617, 0, - 0, 344, 0, 327, 347, 348, 359, 309, 310, 307, - 0, 0, 864, 865, 0, 868, 93, 379, 381, 380, - 384, 0, 0, 377, 0, 266, 838, 0, 424, 267, - 268, 486, 486, 539, 0, 542, 0, 673, 0, 693, - 676, 735, 736, 0, 810, 834, 46, 0, 200, 200, - 789, 200, 204, 792, 200, 794, 200, 797, 0, 0, - 0, 0, 0, 0, 0, 801, 749, 807, 0, 0, - 0, 0, 0, 0, 0, 0, 211, 874, 871, 45, - 824, 0, 656, 594, 49, 53, 0, 912, 903, 914, - 916, 0, 0, 0, 908, 0, 826, 0, 0, 618, - 625, 0, 0, 619, 0, 620, 640, 642, -2, 826, - 655, 60, 61, 0, 80, 81, 82, 275, 140, 141, - 0, 0, 145, 146, 148, 137, 175, 176, 211, 0, - 211, 0, 205, 0, 258, 270, 0, 839, 840, 0, - 0, 224, 226, 0, 944, 103, 0, 0, 0, 0, - 0, 127, 328, 0, 218, 0, 0, 415, 412, 345, - 346, 612, 855, 856, 857, 0, 867, 96, 0, 0, - 0, 0, 421, 422, 423, 65, 431, 437, 541, 561, - 677, 737, 869, 740, 786, 211, 790, 791, 793, 795, - 796, 798, 742, 741, 0, 0, 0, 0, 0, 834, - 0, 805, 0, 0, 0, 0, 0, 630, 211, 894, - 50, 0, 0, 0, 54, 0, 917, 0, 0, 0, - 0, 71, 834, 921, 922, 622, 0, 627, 834, 59, - 0, 143, 215, 199, 215, 0, 0, 271, 843, 844, - 845, 846, 847, 848, 849, 612, 104, 105, 106, 334, - 615, 0, 0, 392, 0, 400, 0, 0, 0, 0, - 866, 378, 0, 94, 95, 0, 0, 383, 47, 787, - 788, 0, 0, 0, 0, 778, 0, 802, 0, 0, - 0, 652, 0, 0, 650, 876, 875, 888, 901, 825, - 823, 0, 915, 0, 907, 910, 906, 909, 57, 0, - 58, 0, 188, 189, 203, 206, 0, 0, 0, 416, - 413, 414, 0, 0, 97, 98, 0, 0, 0, 743, - 745, 744, 746, 0, 0, 0, 748, 766, 767, 651, - 653, 654, 611, 894, 0, 887, 0, -2, 896, 0, - 0, 0, 902, 0, 905, 0, 623, 142, 0, 0, - 0, 858, 613, 0, 0, 0, 385, 747, 0, 0, - 0, 881, 879, 879, 889, 890, 0, 0, 897, 0, - 0, 0, 913, 911, 858, 0, 0, 0, 375, 860, - 99, 100, 320, 321, 322, 93, 779, 0, 782, 884, - 0, 877, 880, 878, 891, 0, 0, 898, 0, 900, - 89, 417, 418, 0, 0, 861, 862, 96, 780, 873, - 0, 882, 883, 892, 893, 899, 254, 0, 382, 0, - 885, 886, 255, 256, 0, 859, 0, 257, 0, 0, - 0, 781, 259, 261, 262, 0, 0, 260, 263, 264, - 265, + 0, 928, 73, 0, 0, 78, 79, 929, 930, 931, + 932, 0, 111, -2, 278, 130, 132, 133, 134, 125, + 135, 0, 0, 213, 212, 158, 215, 215, 181, 182, + 219, 0, 219, 219, 219, 0, 0, 175, 176, 177, + 178, 169, 0, 170, 171, 172, 0, 173, 256, 0, + 842, 224, 225, 227, 231, 0, 0, 0, 252, 253, + 0, 858, 0, 0, 0, 958, 957, 957, 957, 0, + 120, 121, 122, 123, 118, 0, 0, 126, 331, 0, + 0, 0, 254, 0, 0, 233, 249, 234, 235, 0, + 360, 0, 0, 397, 398, 399, 400, 0, 0, 0, + 329, 331, 219, 0, 285, 286, 291, 292, 310, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 390, 391, 392, 393, 855, 856, 857, 0, 0, 424, + 0, 0, 270, 64, 946, 429, 487, 450, 466, 487, + 442, 449, 494, 473, 504, 548, 0, 0, 0, 556, + 0, 684, 686, 688, 675, 696, 679, 0, 676, 0, + 0, 670, 738, 0, 0, 579, 0, 830, 873, 742, + 743, 0, 0, 0, 0, 0, 780, 0, 0, 781, + 0, 830, 0, 808, 0, 0, 754, 774, 0, 0, + 775, 776, 777, 778, 779, 533, 536, 538, 614, 0, + 0, 0, 0, 636, 954, 44, 0, 0, 0, 840, + 841, 833, 43, 0, 941, 942, 824, 825, 826, 0, + 594, 605, 585, 0, 838, 916, 0, 0, 908, 0, + 0, 659, 924, 0, 607, 628, 630, 0, 625, 640, + 641, 643, 0, 645, 0, 647, 648, 611, 612, 613, + 0, 659, 0, 659, 67, 659, 69, 0, 653, 76, + 77, 0, 0, 83, 220, 221, 118, 280, 131, 140, + 0, 0, 0, 144, 0, 0, 147, 149, 0, 138, + 154, 214, 219, 219, 183, 216, 217, 218, 184, 185, + 186, 0, 202, 0, 0, 0, 273, 88, 846, 845, + 231, 231, 226, 0, 229, 0, 959, 205, 0, 101, + 0, 0, 0, 0, 0, 107, 0, 335, 618, 0, + 346, 347, 0, 330, 394, 0, 223, 0, 236, 813, + 621, 0, 0, 348, 0, 331, 351, 352, 363, 313, + 314, 311, 0, 0, 868, 869, 0, 872, 93, 383, + 385, 384, 388, 0, 0, 381, 0, 270, 842, 0, + 428, 271, 272, 490, 490, 543, 0, 546, 0, 677, + 0, 697, 680, 739, 740, 0, 814, 838, 46, 0, + 204, 204, 793, 204, 208, 796, 204, 798, 204, 801, + 0, 0, 0, 0, 0, 0, 0, 805, 753, 811, + 0, 0, 0, 0, 0, 0, 0, 0, 215, 878, + 875, 45, 828, 0, 660, 598, 49, 53, 0, 916, + 907, 918, 920, 0, 0, 0, 912, 0, 830, 0, + 0, 622, 629, 0, 0, 623, 0, 624, 644, 646, + -2, 830, 659, 60, 61, 0, 80, 81, 82, 279, + 141, 142, 0, 145, 146, 148, 0, 179, 180, 215, + 0, 215, 0, 209, 0, 262, 274, 0, 843, 844, + 0, 0, 228, 230, 0, 948, 103, 0, 0, 0, + 0, 0, 127, 332, 0, 222, 0, 0, 419, 416, + 349, 350, 616, 859, 860, 861, 0, 871, 96, 0, + 0, 0, 0, 425, 426, 427, 65, 435, 441, 545, + 565, 681, 741, 873, 744, 790, 215, 794, 795, 797, + 799, 800, 802, 746, 745, 0, 0, 0, 0, 0, + 838, 0, 809, 0, 0, 0, 0, 0, 634, 215, + 898, 50, 0, 0, 0, 54, 0, 921, 0, 0, + 0, 0, 71, 838, 925, 926, 626, 0, 631, 838, + 59, 143, 0, 219, 203, 219, 0, 0, 275, 847, + 848, 849, 850, 851, 852, 853, 616, 104, 105, 106, + 338, 619, 0, 0, 396, 0, 404, 0, 0, 0, + 0, 870, 382, 0, 94, 95, 0, 0, 387, 47, + 791, 792, 0, 0, 0, 0, 782, 0, 806, 0, + 0, 0, 656, 0, 0, 654, 880, 879, 892, 905, + 829, 827, 0, 919, 0, 911, 914, 910, 913, 57, + 0, 58, 152, 192, 193, 207, 210, 0, 0, 0, + 420, 417, 418, 0, 0, 97, 98, 0, 0, 0, + 747, 749, 748, 750, 0, 0, 0, 752, 770, 771, + 655, 657, 658, 615, 898, 0, 891, 0, -2, 900, + 0, 0, 0, 906, 0, 909, 0, 627, 136, 0, + 0, 0, 862, 617, 0, 0, 0, 389, 751, 0, + 0, 0, 885, 883, 883, 893, 894, 0, 0, 901, + 0, 0, 0, 917, 915, 153, 150, 151, 862, 0, + 0, 0, 379, 864, 99, 100, 324, 325, 326, 93, + 783, 0, 786, 888, 0, 881, 884, 882, 895, 0, + 0, 902, 0, 904, 89, 421, 422, 0, 0, 865, + 866, 96, 784, 877, 0, 886, 887, 896, 897, 903, + 258, 0, 386, 0, 889, 890, 259, 260, 0, 863, + 0, 261, 0, 0, 0, 785, 263, 265, 266, 0, + 0, 264, 267, 268, 269, } 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, 113, 3, 3, 3, 140, 132, 3, - 83, 85, 137, 135, 84, 136, 152, 138, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 478, - 121, 120, 122, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 115, 3, 3, 3, 142, 134, 3, + 83, 85, 139, 137, 84, 138, 154, 140, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 480, + 123, 122, 124, 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, 142, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 144, 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, 131, 3, 143, + 3, 3, 3, 3, 133, 3, 145, } var yyTok2 = [...]int{ @@ -5395,10 +5442,10 @@ var yyTok2 = [...]int{ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 114, 115, - 116, 117, 118, 119, 123, 124, 125, 126, 127, 128, - 129, 130, 133, 134, 139, 141, 144, 145, 146, 147, - 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 116, 117, 118, 119, 120, 121, 125, 126, 127, 128, + 129, 130, 131, 132, 135, 136, 141, 143, 146, 147, + 148, 149, 150, 151, 152, 153, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, @@ -5454,7 +5501,8 @@ var yyTok3 = [...]int{ 57785, 460, 57786, 461, 57787, 462, 57788, 463, 57789, 464, 57790, 465, 57791, 466, 57792, 467, 57793, 468, 57794, 469, 57795, 470, 57796, 471, 57797, 472, 57798, 473, 57799, 474, - 57800, 475, 57801, 476, 57802, 477, 0, + 57800, 475, 57801, 476, 57802, 477, 57803, 478, 57804, 479, + 0, } var yyErrorMessages = [...]struct { @@ -5804,68 +5852,68 @@ yydefault: case 1: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:425 +//line sql.y:429 { setParseTree(yylex, yyDollar[1].statementUnion()) } case 2: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:430 +//line sql.y:434 { } case 3: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:431 +//line sql.y:435 { } case 4: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:435 +//line sql.y:439 { yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL case 34: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:468 +//line sql.y:472 { setParseTree(yylex, nil) } case 35: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:474 +//line sql.y:478 { yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), NoAt) } case 36: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:478 +//line sql.y:482 { yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), SingleAt) } case 37: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:482 +//line sql.y:486 { yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), DoubleAt) } case 38: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:487 +//line sql.y:491 { yyVAL.colIdent = NewColIdentWithAt("", NoAt) } case 39: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:491 +//line sql.y:495 { yyVAL.colIdent = yyDollar[1].colIdent } case 40: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:497 +//line sql.y:501 { yyLOCAL = &OtherAdmin{} } @@ -5873,7 +5921,7 @@ yydefault: case 41: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:503 +//line sql.y:507 { yyLOCAL = &Load{} } @@ -5881,7 +5929,7 @@ yydefault: case 42: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:509 +//line sql.y:513 { sel := yyDollar[1].selStmtUnion().(*Select) sel.OrderBy = yyDollar[2].orderByUnion() @@ -5894,7 +5942,7 @@ yydefault: case 43: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:518 +//line sql.y:522 { yyLOCAL = &Union{FirstStatement: &ParenSelect{Select: yyDollar[2].selStmtUnion()}, OrderBy: yyDollar[4].orderByUnion(), Limit: yyDollar[5].limitUnion(), Lock: yyDollar[6].lockUnion()} } @@ -5902,7 +5950,7 @@ yydefault: case 44: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:522 +//line sql.y:526 { yyLOCAL = Unionize(yyDollar[1].selStmtUnion(), yyDollar[3].selStmtUnion(), yyDollar[2].booleanUnion(), yyDollar[4].orderByUnion(), yyDollar[5].limitUnion(), yyDollar[6].lockUnion()) } @@ -5910,7 +5958,7 @@ yydefault: case 45: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:526 +//line sql.y:530 { yyLOCAL = NewSelect(Comments(yyDollar[2].strs), SelectExprs{&Nextval{Expr: yyDollar[5].exprUnion()}}, []string{yyDollar[3].str} /*options*/, TableExprs{&AliasedTableExpr{Expr: yyDollar[7].tableName}}, nil /*where*/, nil /*groupBy*/, nil /*having*/) } @@ -5918,7 +5966,7 @@ yydefault: case 46: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:549 +//line sql.y:553 { sel := yyDollar[1].selStmtUnion().(*Select) sel.OrderBy = yyDollar[2].orderByUnion() @@ -5930,7 +5978,7 @@ yydefault: case 47: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:557 +//line sql.y:561 { yyLOCAL = Unionize(yyDollar[1].selStmtUnion(), yyDollar[3].selStmtUnion(), yyDollar[2].booleanUnion(), yyDollar[4].orderByUnion(), yyDollar[5].limitUnion(), yyDollar[6].lockUnion()) } @@ -5938,7 +5986,7 @@ yydefault: case 48: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:563 +//line sql.y:567 { yyLOCAL = &Stream{Comments: Comments(yyDollar[2].strs), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName} } @@ -5946,7 +5994,7 @@ yydefault: case 49: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:569 +//line sql.y:573 { yyLOCAL = &VStream{Comments: Comments(yyDollar[2].strs), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName, Where: NewWhere(WhereClause, yyDollar[6].exprUnion()), Limit: yyDollar[7].limitUnion()} } @@ -5954,7 +6002,7 @@ yydefault: case 50: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:577 +//line sql.y:581 { yyLOCAL = NewSelect(Comments(yyDollar[2].strs), yyDollar[4].selectExprsUnion() /*SelectExprs*/, yyDollar[3].strs /*options*/, yyDollar[5].tableExprsUnion() /*from*/, NewWhere(WhereClause, yyDollar[6].exprUnion()), GroupBy(yyDollar[7].exprsUnion()), NewWhere(HavingClause, yyDollar[8].exprUnion())) } @@ -5962,7 +6010,7 @@ yydefault: case 51: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:583 +//line sql.y:587 { yyLOCAL = yyDollar[1].selStmtUnion() } @@ -5970,7 +6018,7 @@ yydefault: case 52: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:587 +//line sql.y:591 { yyLOCAL = &ParenSelect{Select: yyDollar[2].selStmtUnion()} } @@ -5978,7 +6026,7 @@ yydefault: case 53: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:594 +//line sql.y:598 { // insert_data returns a *Insert pre-filled with Columns & Values ins := yyDollar[6].insUnion() @@ -5994,7 +6042,7 @@ yydefault: case 54: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:606 +//line sql.y:610 { cols := make(Columns, 0, len(yyDollar[7].updateExprsUnion())) vals := make(ValTuple, 0, len(yyDollar[8].updateExprsUnion())) @@ -6008,7 +6056,7 @@ yydefault: case 55: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL InsertAction -//line sql.y:618 +//line sql.y:622 { yyLOCAL = InsertAct } @@ -6016,7 +6064,7 @@ yydefault: case 56: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL InsertAction -//line sql.y:622 +//line sql.y:626 { yyLOCAL = ReplaceAct } @@ -6024,7 +6072,7 @@ yydefault: case 57: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Statement -//line sql.y:628 +//line sql.y:632 { yyLOCAL = &Update{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), TableExprs: yyDollar[4].tableExprsUnion(), Exprs: yyDollar[6].updateExprsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion()), OrderBy: yyDollar[8].orderByUnion(), Limit: yyDollar[9].limitUnion()} } @@ -6032,7 +6080,7 @@ yydefault: case 58: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Statement -//line sql.y:634 +//line sql.y:638 { yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), TableExprs: TableExprs{&AliasedTableExpr{Expr: yyDollar[5].tableName}}, Partitions: yyDollar[6].partitionsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion()), OrderBy: yyDollar[8].orderByUnion(), Limit: yyDollar[9].limitUnion()} } @@ -6040,7 +6088,7 @@ yydefault: case 59: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:638 +//line sql.y:642 { yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Targets: yyDollar[5].tableNamesUnion(), TableExprs: yyDollar[7].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion())} } @@ -6048,7 +6096,7 @@ yydefault: case 60: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:642 +//line sql.y:646 { yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Targets: yyDollar[4].tableNamesUnion(), TableExprs: yyDollar[6].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion())} } @@ -6056,32 +6104,32 @@ yydefault: case 61: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:646 +//line sql.y:650 { yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Targets: yyDollar[4].tableNamesUnion(), TableExprs: yyDollar[6].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion())} } yyVAL.union = yyLOCAL case 62: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:651 +//line sql.y:655 { } case 63: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:652 +//line sql.y:656 { } case 64: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableNames -//line sql.y:656 +//line sql.y:660 { yyLOCAL = TableNames{yyDollar[1].tableName.ToViewName()} } yyVAL.union = yyLOCAL case 65: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:660 +//line sql.y:664 { yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableName.ToViewName()) @@ -6089,14 +6137,14 @@ yydefault: case 66: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableNames -//line sql.y:666 +//line sql.y:670 { yyLOCAL = TableNames{yyDollar[1].tableName} } yyVAL.union = yyLOCAL case 67: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:670 +//line sql.y:674 { yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableName) @@ -6104,14 +6152,14 @@ yydefault: case 68: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableNames -//line sql.y:676 +//line sql.y:680 { yyLOCAL = TableNames{yyDollar[1].tableName} } yyVAL.union = yyLOCAL case 69: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:680 +//line sql.y:684 { yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableName) @@ -6119,7 +6167,7 @@ yydefault: case 70: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Partitions -//line sql.y:685 +//line sql.y:689 { yyLOCAL = nil } @@ -6127,7 +6175,7 @@ yydefault: case 71: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Partitions -//line sql.y:689 +//line sql.y:693 { yyLOCAL = yyDollar[3].partitionsUnion() } @@ -6135,7 +6183,7 @@ yydefault: case 72: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:695 +//line sql.y:699 { yyLOCAL = &Set{Comments: Comments(yyDollar[2].strs), Exprs: yyDollar[3].setExprsUnion()} } @@ -6143,7 +6191,7 @@ yydefault: case 73: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:701 +//line sql.y:705 { yyLOCAL = &SetTransaction{Comments: Comments(yyDollar[2].strs), Scope: yyDollar[3].scopeUnion(), Characteristics: yyDollar[5].characteristicsUnion()} } @@ -6151,7 +6199,7 @@ yydefault: case 74: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:705 +//line sql.y:709 { yyLOCAL = &SetTransaction{Comments: Comments(yyDollar[2].strs), Characteristics: yyDollar[4].characteristicsUnion(), Scope: ImplicitScope} } @@ -6159,14 +6207,14 @@ yydefault: case 75: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []Characteristic -//line sql.y:711 +//line sql.y:715 { yyLOCAL = []Characteristic{yyDollar[1].characteristicUnion()} } yyVAL.union = yyLOCAL case 76: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:715 +//line sql.y:719 { yySLICE := (*[]Characteristic)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].characteristicUnion()) @@ -6174,7 +6222,7 @@ yydefault: case 77: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Characteristic -//line sql.y:721 +//line sql.y:725 { yyLOCAL = yyDollar[3].isolationLevelUnion() } @@ -6182,7 +6230,7 @@ yydefault: case 78: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Characteristic -//line sql.y:725 +//line sql.y:729 { yyLOCAL = ReadWrite } @@ -6190,7 +6238,7 @@ yydefault: case 79: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Characteristic -//line sql.y:729 +//line sql.y:733 { yyLOCAL = ReadOnly } @@ -6198,7 +6246,7 @@ yydefault: case 80: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsolationLevel -//line sql.y:735 +//line sql.y:739 { yyLOCAL = RepeatableRead } @@ -6206,7 +6254,7 @@ yydefault: case 81: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsolationLevel -//line sql.y:739 +//line sql.y:743 { yyLOCAL = ReadCommitted } @@ -6214,7 +6262,7 @@ yydefault: case 82: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsolationLevel -//line sql.y:743 +//line sql.y:747 { yyLOCAL = ReadUncommitted } @@ -6222,7 +6270,7 @@ yydefault: case 83: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsolationLevel -//line sql.y:747 +//line sql.y:751 { yyLOCAL = Serializable } @@ -6230,7 +6278,7 @@ yydefault: case 84: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Scope -//line sql.y:753 +//line sql.y:757 { yyLOCAL = SessionScope } @@ -6238,7 +6286,7 @@ yydefault: case 85: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Scope -//line sql.y:757 +//line sql.y:761 { yyLOCAL = GlobalScope } @@ -6246,7 +6294,7 @@ yydefault: case 86: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:763 +//line sql.y:767 { yyDollar[1].createTableUnion().TableSpec = yyDollar[2].tableSpecUnion() yyDollar[1].createTableUnion().FullyParsed = true @@ -6256,7 +6304,7 @@ yydefault: case 87: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:769 +//line sql.y:773 { // Create table [name] like [name] yyDollar[1].createTableUnion().OptLike = yyDollar[2].optLikeUnion() @@ -6267,7 +6315,7 @@ yydefault: case 88: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:776 +//line sql.y:780 { indexDef := yyDollar[1].alterTableUnion().AlterOptions[0].(*AddIndexDefinition).IndexDefinition indexDef.Columns = yyDollar[3].indexColumnsUnion() @@ -6280,7 +6328,7 @@ yydefault: case 89: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Statement -//line sql.y:785 +//line sql.y:789 { yyLOCAL = &CreateView{ViewName: yyDollar[8].tableName.ToViewName(), IsReplace: yyDollar[3].booleanUnion(), Algorithm: yyDollar[4].str, Definer: yyDollar[5].str, Security: yyDollar[6].str, Columns: yyDollar[9].columnsUnion(), Select: yyDollar[11].selStmtUnion(), CheckOption: yyDollar[12].str} } @@ -6288,7 +6336,7 @@ yydefault: case 90: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:789 +//line sql.y:793 { yyDollar[1].createDatabaseUnion().FullyParsed = true yyDollar[1].createDatabaseUnion().CreateOptions = yyDollar[2].collateAndCharsetsUnion() @@ -6298,7 +6346,7 @@ yydefault: case 91: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:796 +//line sql.y:800 { yyLOCAL = false } @@ -6306,33 +6354,33 @@ yydefault: case 92: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:800 +//line sql.y:804 { yyLOCAL = true } yyVAL.union = yyLOCAL case 93: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:805 +//line sql.y:809 { yyVAL.colIdent = NewColIdent("") } case 94: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:809 +//line sql.y:813 { yyVAL.colIdent = yyDollar[2].colIdent } case 95: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:815 +//line sql.y:819 { yyVAL.colIdent = yyDollar[1].colIdent } case 96: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:820 +//line sql.y:824 { var v []VindexParam yyLOCAL = v @@ -6341,7 +6389,7 @@ yydefault: case 97: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:825 +//line sql.y:829 { yyLOCAL = yyDollar[2].vindexParamsUnion() } @@ -6349,7 +6397,7 @@ yydefault: case 98: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:831 +//line sql.y:835 { yyLOCAL = make([]VindexParam, 0, 4) yyLOCAL = append(yyLOCAL, yyDollar[1].vindexParam) @@ -6357,21 +6405,21 @@ yydefault: yyVAL.union = yyLOCAL case 99: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:836 +//line sql.y:840 { yySLICE := (*[]VindexParam)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].vindexParam) } case 100: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:842 +//line sql.y:846 { yyVAL.vindexParam = VindexParam{Key: yyDollar[1].colIdent, Val: yyDollar[3].str} } case 101: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *CreateTable -//line sql.y:848 +//line sql.y:852 { yyLOCAL = &CreateTable{Comments: Comments(yyDollar[2].strs), Table: yyDollar[6].tableName, IfNotExists: yyDollar[5].booleanUnion(), Temp: yyDollar[3].booleanUnion()} setDDL(yylex, yyLOCAL) @@ -6380,7 +6428,7 @@ yydefault: case 102: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:855 +//line sql.y:859 { yyLOCAL = &AlterTable{Comments: Comments(yyDollar[2].strs), Table: yyDollar[4].tableName} setDDL(yylex, yyLOCAL) @@ -6389,7 +6437,7 @@ yydefault: case 103: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:862 +//line sql.y:866 { yyLOCAL = &AlterTable{Table: yyDollar[7].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[4].colIdent, Type: string(yyDollar[3].str)}, Options: yyDollar[5].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) @@ -6398,7 +6446,7 @@ yydefault: case 104: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:867 +//line sql.y:871 { yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Fulltext: true}, Options: yyDollar[6].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) @@ -6407,7 +6455,7 @@ yydefault: case 105: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:872 +//line sql.y:876 { yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Spatial: true}, Options: yyDollar[6].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) @@ -6416,7 +6464,7 @@ yydefault: case 106: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:877 +//line sql.y:881 { yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Unique: true}, Options: yyDollar[6].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) @@ -6425,7 +6473,7 @@ yydefault: case 107: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *CreateDatabase -//line sql.y:884 +//line sql.y:888 { yyLOCAL = &CreateDatabase{Comments: Comments(yyDollar[4].strs), DBName: yyDollar[6].tableIdent, IfNotExists: yyDollar[5].booleanUnion()} setDDL(yylex, yyLOCAL) @@ -6434,7 +6482,7 @@ yydefault: case 108: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AlterDatabase -//line sql.y:891 +//line sql.y:895 { yyLOCAL = &AlterDatabase{} setDDL(yylex, yyLOCAL) @@ -6443,7 +6491,7 @@ yydefault: case 111: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableSpec -//line sql.y:902 +//line sql.y:906 { yyLOCAL = yyDollar[2].tableSpecUnion() yyLOCAL.Options = yyDollar[4].tableOptionsUnion() @@ -6452,7 +6500,7 @@ yydefault: case 112: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []CollateAndCharset -//line sql.y:908 +//line sql.y:912 { yyLOCAL = nil } @@ -6460,7 +6508,7 @@ yydefault: case 113: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []CollateAndCharset -//line sql.y:912 +//line sql.y:916 { yyLOCAL = yyDollar[1].collateAndCharsetsUnion() } @@ -6468,7 +6516,7 @@ yydefault: case 114: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []CollateAndCharset -//line sql.y:918 +//line sql.y:922 { yyLOCAL = []CollateAndCharset{yyDollar[1].collateAndCharset} } @@ -6476,21 +6524,21 @@ yydefault: case 115: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []CollateAndCharset -//line sql.y:922 +//line sql.y:926 { yyLOCAL = []CollateAndCharset{yyDollar[1].collateAndCharset} } yyVAL.union = yyLOCAL case 116: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:926 +//line sql.y:930 { yySLICE := (*[]CollateAndCharset)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].collateAndCharset) } case 117: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:930 +//line sql.y:934 { yySLICE := (*[]CollateAndCharset)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].collateAndCharset) @@ -6498,7 +6546,7 @@ yydefault: case 118: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:935 +//line sql.y:939 { yyLOCAL = false } @@ -6506,39 +6554,39 @@ yydefault: case 119: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:939 +//line sql.y:943 { yyLOCAL = true } yyVAL.union = yyLOCAL case 120: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:945 +//line sql.y:949 { yyVAL.collateAndCharset = CollateAndCharset{Type: CharacterSetType, Value: (yyDollar[4].colIdent.String()), IsDefault: yyDollar[1].booleanUnion()} } case 121: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:949 +//line sql.y:953 { yyVAL.collateAndCharset = CollateAndCharset{Type: CharacterSetType, Value: (encodeSQLString(yyDollar[4].str)), IsDefault: yyDollar[1].booleanUnion()} } case 122: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:955 +//line sql.y:959 { yyVAL.collateAndCharset = CollateAndCharset{Type: CollateType, Value: (yyDollar[4].colIdent.String()), IsDefault: yyDollar[1].booleanUnion()} } case 123: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:959 +//line sql.y:963 { yyVAL.collateAndCharset = CollateAndCharset{Type: CollateType, Value: (encodeSQLString(yyDollar[4].str)), IsDefault: yyDollar[1].booleanUnion()} } case 124: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *OptLike -//line sql.y:966 +//line sql.y:970 { yyLOCAL = &OptLike{LikeTable: yyDollar[2].tableName} } @@ -6546,7 +6594,7 @@ yydefault: case 125: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *OptLike -//line sql.y:970 +//line sql.y:974 { yyLOCAL = &OptLike{LikeTable: yyDollar[3].tableName} } @@ -6554,14 +6602,14 @@ yydefault: case 126: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*ColumnDefinition -//line sql.y:976 +//line sql.y:980 { yyLOCAL = []*ColumnDefinition{yyDollar[1].columnDefinitionUnion()} } yyVAL.union = yyLOCAL case 127: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:980 +//line sql.y:984 { yySLICE := (*[]*ColumnDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].columnDefinitionUnion()) @@ -6569,7 +6617,7 @@ yydefault: case 128: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *TableSpec -//line sql.y:986 +//line sql.y:990 { yyLOCAL = &TableSpec{} yyLOCAL.AddColumn(yyDollar[1].columnDefinitionUnion()) @@ -6578,7 +6626,7 @@ yydefault: case 129: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *TableSpec -//line sql.y:991 +//line sql.y:995 { yyLOCAL = &TableSpec{} yyLOCAL.AddConstraint(yyDollar[1].constraintDefinitionUnion()) @@ -6586,106 +6634,107 @@ yydefault: yyVAL.union = yyLOCAL case 130: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:996 +//line sql.y:1000 { yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion()) } case 131: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1000 +//line sql.y:1004 { yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion()) yyVAL.tableSpecUnion().AddConstraint(yyDollar[4].constraintDefinitionUnion()) } case 132: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1005 +//line sql.y:1009 { yyVAL.tableSpecUnion().AddIndex(yyDollar[3].indexDefinitionUnion()) } case 133: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1009 +//line sql.y:1013 { yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion()) } case 134: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1013 +//line sql.y:1017 { yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion()) } case 135: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnDefinition -//line sql.y:1019 +//line sql.y:1023 { yyDollar[2].columnType.Options = yyDollar[3].columnTypeOptionsUnion() yyLOCAL = &ColumnDefinition{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType} } yyVAL.union = yyLOCAL case 136: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL *ColumnDefinition +//line sql.y:1028 + { + yyDollar[2].columnType.Options = yyDollar[8].columnTypeOptionsUnion() + yyDollar[2].columnType.Options.As = yyDollar[6].exprUnion() + yyLOCAL = &ColumnDefinition{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType} + } + yyVAL.union = yyLOCAL + case 137: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1025 +//line sql.y:1035 { yyVAL.str = "" } - case 137: + case 138: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1029 +//line sql.y:1039 { yyVAL.str = "" } - case 138: + case 139: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1038 +//line sql.y:1048 { yyLOCAL = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil, As: nil} } yyVAL.union = yyLOCAL - case 139: + case 140: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1042 +//line sql.y:1052 { val := true yyDollar[1].columnTypeOptionsUnion().Null = &val yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 140: + case 141: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1048 +//line sql.y:1058 { val := false yyDollar[1].columnTypeOptionsUnion().Null = &val yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 141: + case 142: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1054 +//line sql.y:1064 { yyDollar[1].columnTypeOptionsUnion().Default = yyDollar[3].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 142: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL *ColumnTypeOptions -//line sql.y:1059 - { - yyDollar[1].columnTypeOptionsUnion().As = yyDollar[5].exprUnion() - yyLOCAL = yyDollar[1].columnTypeOptionsUnion() - } - yyVAL.union = yyLOCAL case 143: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1064 +//line sql.y:1069 { yyDollar[1].columnTypeOptionsUnion().OnUpdate = yyDollar[4].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6694,7 +6743,7 @@ yydefault: case 144: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1069 +//line sql.y:1074 { yyDollar[1].columnTypeOptionsUnion().Autoincrement = true yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6703,7 +6752,7 @@ yydefault: case 145: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1074 +//line sql.y:1079 { yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6712,7 +6761,7 @@ yydefault: case 146: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1079 +//line sql.y:1084 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKeyPrimary yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6721,7 +6770,7 @@ yydefault: case 147: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1084 +//line sql.y:1089 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKey yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6730,7 +6779,7 @@ yydefault: case 148: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1089 +//line sql.y:1094 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKeyUniqueKey yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6739,1535 +6788,1568 @@ yydefault: case 149: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1094 +//line sql.y:1099 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKeyUnique yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL case 150: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ColumnStorage +//line sql.y:1106 + { + yyLOCAL = VirtualStorage + } + yyVAL.union = yyLOCAL + case 151: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ColumnStorage +//line sql.y:1110 + { + yyLOCAL = StoredStorage + } + yyVAL.union = yyLOCAL + case 152: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1115 + { + yyLOCAL = &ColumnTypeOptions{} + } + yyVAL.union = yyLOCAL + case 153: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1119 + { + yyDollar[1].columnTypeOptionsUnion().Storage = yyDollar[2].columnStorageUnion() + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + } + yyVAL.union = yyLOCAL + case 154: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1112 +//line sql.y:1126 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].booleanUnion() yyVAL.columnType.Zerofill = yyDollar[3].booleanUnion() } - case 154: + case 158: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1123 +//line sql.y:1137 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].literalUnion() } - case 155: + case 159: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1128 +//line sql.y:1142 { yyVAL.columnType = yyDollar[1].columnType } - case 156: + case 160: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1134 +//line sql.y:1148 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 157: + case 161: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1138 +//line sql.y:1152 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 158: + case 162: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1142 +//line sql.y:1156 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 159: + case 163: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1146 +//line sql.y:1160 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 160: + case 164: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1150 +//line sql.y:1164 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 161: + case 165: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1154 +//line sql.y:1168 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 162: + case 166: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1158 +//line sql.y:1172 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 163: + case 167: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1162 +//line sql.y:1176 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 164: + case 168: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1166 +//line sql.y:1180 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 165: + case 169: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1172 +//line sql.y:1186 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 166: + case 170: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1178 +//line sql.y:1192 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 167: + case 171: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1184 +//line sql.y:1198 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 168: + case 172: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1190 +//line sql.y:1204 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 169: + case 173: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1196 +//line sql.y:1210 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 170: + case 174: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1204 +//line sql.y:1218 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 171: + case 175: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1208 +//line sql.y:1222 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 172: + case 176: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1212 +//line sql.y:1226 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 173: + case 177: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1216 +//line sql.y:1230 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 174: + case 178: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1220 +//line sql.y:1234 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 175: + case 179: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1226 +//line sql.y:1240 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } - case 176: + case 180: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1230 +//line sql.y:1244 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } - case 177: + case 181: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1234 +//line sql.y:1248 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 178: + case 182: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1238 +//line sql.y:1252 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 179: + case 183: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1242 +//line sql.y:1256 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 180: + case 184: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1246 +//line sql.y:1260 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 181: + case 185: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1250 +//line sql.y:1264 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 182: + case 186: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1254 +//line sql.y:1268 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 183: + case 187: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1258 +//line sql.y:1272 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 184: + case 188: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1262 +//line sql.y:1276 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 185: + case 189: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1266 +//line sql.y:1280 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 186: + case 190: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1270 +//line sql.y:1284 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 187: + case 191: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1274 +//line sql.y:1288 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 188: + case 192: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1278 +//line sql.y:1292 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } - case 189: + case 193: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1283 +//line sql.y:1297 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } - case 190: + case 194: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1289 +//line sql.y:1303 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 191: + case 195: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1293 +//line sql.y:1307 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 192: + case 196: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1297 +//line sql.y:1311 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 193: + case 197: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1301 +//line sql.y:1315 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 194: + case 198: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1305 +//line sql.y:1319 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 195: + case 199: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1309 +//line sql.y:1323 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 196: + case 200: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1313 +//line sql.y:1327 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 197: + case 201: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1317 +//line sql.y:1331 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 198: + case 202: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1323 +//line sql.y:1337 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, encodeSQLString(yyDollar[1].str)) } - case 199: + case 203: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1328 +//line sql.y:1342 { yyVAL.strs = append(yyDollar[1].strs, encodeSQLString(yyDollar[3].str)) } - case 200: + case 204: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Literal -//line sql.y:1333 +//line sql.y:1347 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 201: + case 205: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Literal -//line sql.y:1337 +//line sql.y:1351 { yyLOCAL = NewIntLiteral(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 202: + case 206: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1342 +//line sql.y:1356 { yyVAL.LengthScaleOption = LengthScaleOption{} } - case 203: + case 207: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1346 +//line sql.y:1360 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), Scale: NewIntLiteral(yyDollar[4].str), } } - case 204: + case 208: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1354 +//line sql.y:1368 { yyVAL.LengthScaleOption = LengthScaleOption{} } - case 205: + case 209: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1358 +//line sql.y:1372 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), } } - case 206: + case 210: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1364 +//line sql.y:1378 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), Scale: NewIntLiteral(yyDollar[4].str), } } - case 207: + case 211: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1372 +//line sql.y:1386 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 208: + case 212: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1376 +//line sql.y:1390 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 209: + case 213: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1381 +//line sql.y:1395 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 210: + case 214: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1385 +//line sql.y:1399 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 211: + case 215: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1390 +//line sql.y:1404 { yyVAL.str = "" } - case 212: + case 216: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1394 +//line sql.y:1408 { yyVAL.str = string(yyDollar[2].colIdent.String()) } - case 213: + case 217: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1398 +//line sql.y:1412 { yyVAL.str = encodeSQLString(yyDollar[2].str) } - case 214: + case 218: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1402 +//line sql.y:1416 { yyVAL.str = string(yyDollar[2].str) } - case 215: + case 219: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1407 +//line sql.y:1421 { yyVAL.str = "" } - case 216: + case 220: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1411 +//line sql.y:1425 { yyVAL.str = string(yyDollar[2].colIdent.String()) } - case 217: + case 221: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1415 +//line sql.y:1429 { yyVAL.str = encodeSQLString(yyDollar[2].str) } - case 218: + case 222: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexDefinition -//line sql.y:1422 +//line sql.y:1436 { yyLOCAL = &IndexDefinition{Info: yyDollar[1].indexInfoUnion(), Columns: yyDollar[3].indexColumnsUnion(), Options: yyDollar[5].indexOptionsUnion()} } yyVAL.union = yyLOCAL - case 219: + case 223: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1427 +//line sql.y:1441 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 220: + case 224: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1431 +//line sql.y:1445 { yyLOCAL = yyDollar[1].indexOptionsUnion() } yyVAL.union = yyLOCAL - case 221: + case 225: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1437 +//line sql.y:1451 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL - case 222: + case 226: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1441 +//line sql.y:1455 { yySLICE := (*[]*IndexOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].indexOptionUnion()) } - case 223: + case 227: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1447 +//line sql.y:1461 { yyLOCAL = yyDollar[1].indexOptionUnion() } yyVAL.union = yyLOCAL - case 224: + case 228: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1451 +//line sql.y:1465 { // should not be string yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 225: + case 229: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1456 +//line sql.y:1470 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 226: + case 230: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1460 +//line sql.y:1474 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str) + " " + string(yyDollar[2].str), String: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 227: + case 231: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1466 +//line sql.y:1480 { yyVAL.str = "" } - case 228: + case 232: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1470 +//line sql.y:1484 { yyVAL.str = string(yyDollar[1].str) } - case 229: + case 233: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1476 +//line sql.y:1490 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} } yyVAL.union = yyLOCAL - case 230: + case 234: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1480 +//line sql.y:1494 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Spatial: true, Unique: false} } yyVAL.union = yyLOCAL - case 231: + case 235: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1484 +//line sql.y:1498 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Fulltext: true, Unique: false} } yyVAL.union = yyLOCAL - case 232: + case 236: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1488 +//line sql.y:1502 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent(yyDollar[4].str), Unique: true} } yyVAL.union = yyLOCAL - case 233: + case 237: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1492 +//line sql.y:1506 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(yyDollar[2].str), Unique: false} } yyVAL.union = yyLOCAL - case 234: + case 238: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1497 +//line sql.y:1511 { yyVAL.str = "" } - case 235: + case 239: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1501 +//line sql.y:1515 { yyVAL.str = yyDollar[2].str } - case 236: + case 240: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1507 +//line sql.y:1521 { yyVAL.str = string(yyDollar[1].str) } - case 237: + case 241: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1511 +//line sql.y:1525 { yyVAL.str = string(yyDollar[1].str) } - case 238: + case 242: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1515 +//line sql.y:1529 { yyVAL.str = string(yyDollar[1].str) } - case 239: + case 243: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1522 +//line sql.y:1536 { yyVAL.str = string(yyDollar[1].str) } - case 240: + case 244: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1526 +//line sql.y:1540 { yyVAL.str = string(yyDollar[1].str) } - case 241: + case 245: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1531 +//line sql.y:1545 { yyVAL.str = "key" } - case 242: + case 246: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1535 +//line sql.y:1549 { yyVAL.str = yyDollar[1].str } - case 243: + case 247: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1541 +//line sql.y:1555 { yyVAL.str = string(yyDollar[1].str) } - case 244: + case 248: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1545 +//line sql.y:1559 { yyVAL.str = string(yyDollar[1].str) } - case 245: + case 249: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1550 +//line sql.y:1564 { yyVAL.str = "" } - case 246: + case 250: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1554 +//line sql.y:1568 { yyVAL.str = string(yyDollar[1].colIdent.String()) } - case 247: + case 251: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexColumn -//line sql.y:1560 +//line sql.y:1574 { yyLOCAL = []*IndexColumn{yyDollar[1].indexColumnUnion()} } yyVAL.union = yyLOCAL - case 248: + case 252: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1564 +//line sql.y:1578 { yySLICE := (*[]*IndexColumn)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].indexColumnUnion()) } - case 249: + case 253: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexColumn -//line sql.y:1570 +//line sql.y:1584 { yyLOCAL = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].literalUnion(), Direction: yyDollar[3].orderDirectionUnion()} } yyVAL.union = yyLOCAL - case 250: + case 254: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1576 +//line sql.y:1590 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 251: + case 255: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1580 +//line sql.y:1594 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 252: + case 256: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1586 +//line sql.y:1600 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 253: + case 257: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1590 +//line sql.y:1604 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 254: + case 258: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1596 +//line sql.y:1610 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion()} } yyVAL.union = yyLOCAL - case 255: + case 259: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1600 +//line sql.y:1614 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnDelete: yyDollar[12].ReferenceActionUnion()} } yyVAL.union = yyLOCAL - case 256: + case 260: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1604 +//line sql.y:1618 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnUpdate: yyDollar[12].ReferenceActionUnion()} } yyVAL.union = yyLOCAL - case 257: + case 261: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1608 +//line sql.y:1622 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnDelete: yyDollar[12].ReferenceActionUnion(), OnUpdate: yyDollar[13].ReferenceActionUnion()} } yyVAL.union = yyLOCAL - case 258: + case 262: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1614 +//line sql.y:1628 { yyLOCAL = &CheckConstraintDefinition{Expr: yyDollar[3].exprUnion(), Enforced: yyDollar[5].booleanUnion()} } yyVAL.union = yyLOCAL - case 259: + case 263: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1620 +//line sql.y:1634 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } yyVAL.union = yyLOCAL - case 260: + case 264: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1626 +//line sql.y:1640 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } yyVAL.union = yyLOCAL - case 261: + case 265: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1632 +//line sql.y:1646 { yyLOCAL = Restrict } yyVAL.union = yyLOCAL - case 262: + case 266: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1636 +//line sql.y:1650 { yyLOCAL = Cascade } yyVAL.union = yyLOCAL - case 263: + case 267: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1640 +//line sql.y:1654 { yyLOCAL = NoAction } yyVAL.union = yyLOCAL - case 264: + case 268: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1644 +//line sql.y:1658 { yyLOCAL = SetDefault } yyVAL.union = yyLOCAL - case 265: + case 269: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1648 +//line sql.y:1662 { yyLOCAL = SetNull } yyVAL.union = yyLOCAL - case 266: + case 270: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1653 +//line sql.y:1667 { yyVAL.str = "" } - case 267: + case 271: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1657 +//line sql.y:1671 { yyVAL.str = string(yyDollar[1].str) } - case 268: + case 272: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1661 +//line sql.y:1675 { yyVAL.str = string(yyDollar[1].str) } - case 269: + case 273: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1666 +//line sql.y:1680 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 270: + case 274: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1670 +//line sql.y:1684 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 271: + case 275: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:1674 +//line sql.y:1688 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 272: + case 276: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1679 +//line sql.y:1693 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 273: + case 277: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1683 +//line sql.y:1697 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 274: + case 278: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1689 +//line sql.y:1703 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 275: + case 279: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1693 +//line sql.y:1707 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableOptionUnion()) } - case 276: + case 280: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1697 +//line sql.y:1711 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) } - case 277: + case 281: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1703 +//line sql.y:1717 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 278: + case 282: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1707 +//line sql.y:1721 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) } - case 279: + case 283: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1713 +//line sql.y:1727 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 280: + case 284: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1717 +//line sql.y:1731 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 281: + case 285: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1721 +//line sql.y:1735 { yyLOCAL = &TableOption{Name: (string(yyDollar[2].str)), String: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 282: + case 286: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1725 +//line sql.y:1739 { yyLOCAL = &TableOption{Name: string(yyDollar[2].str), String: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 283: + case 287: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1729 +//line sql.y:1743 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 284: + case 288: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1733 +//line sql.y:1747 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 285: + case 289: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1737 +//line sql.y:1751 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 286: + case 290: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1741 +//line sql.y:1755 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 287: + case 291: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1745 +//line sql.y:1759 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 288: + case 292: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1749 +//line sql.y:1763 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 289: + case 293: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1753 +//line sql.y:1767 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 290: + case 294: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1757 +//line sql.y:1771 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 291: + case 295: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1761 +//line sql.y:1775 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 292: + case 296: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1765 +//line sql.y:1779 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 293: + case 297: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1769 +//line sql.y:1783 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 294: + case 298: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1773 +//line sql.y:1787 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 295: + case 299: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1777 +//line sql.y:1791 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 296: + case 300: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1781 +//line sql.y:1795 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 297: + case 301: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1785 +//line sql.y:1799 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 298: + case 302: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1789 +//line sql.y:1803 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 299: + case 303: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1793 +//line sql.y:1807 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 300: + case 304: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1797 +//line sql.y:1811 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 301: + case 305: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1801 +//line sql.y:1815 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 302: + case 306: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1805 +//line sql.y:1819 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 303: + case 307: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1809 +//line sql.y:1823 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 304: + case 308: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1813 +//line sql.y:1827 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 305: + case 309: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1817 +//line sql.y:1831 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 306: + case 310: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1821 +//line sql.y:1835 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: (yyDollar[3].colIdent.String() + yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 307: + case 311: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1825 +//line sql.y:1839 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Tables: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 308: + case 312: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1830 +//line sql.y:1844 { yyVAL.str = "" } - case 309: + case 313: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1834 +//line sql.y:1848 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 310: + case 314: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1838 +//line sql.y:1852 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 320: + case 324: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1857 +//line sql.y:1871 { yyVAL.str = yyDollar[1].colIdent.String() } - case 321: + case 325: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1861 +//line sql.y:1875 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 322: + case 326: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1865 +//line sql.y:1879 { yyVAL.str = string(yyDollar[1].str) } - case 323: + case 327: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1870 +//line sql.y:1884 { yyVAL.str = "" } - case 325: + case 329: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:1876 +//line sql.y:1890 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 326: + case 330: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:1880 +//line sql.y:1894 { yyLOCAL = yyDollar[2].colNameUnion() } yyVAL.union = yyLOCAL - case 327: + case 331: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:1885 +//line sql.y:1899 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 328: + case 332: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:1889 +//line sql.y:1903 { yyLOCAL = yyDollar[2].colNameUnion() } yyVAL.union = yyLOCAL - case 329: + case 333: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1894 +//line sql.y:1908 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 330: + case 334: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1898 +//line sql.y:1912 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL - case 331: + case 335: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1902 +//line sql.y:1916 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &OrderByOption{Cols: yyDollar[5].columnsUnion()}) } - case 332: + case 336: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1906 +//line sql.y:1920 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL - case 333: + case 337: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1910 +//line sql.y:1924 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionsUnion()...) } - case 334: + case 338: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1914 +//line sql.y:1928 { yyLOCAL = append(append(yyDollar[1].alterOptionsUnion(), yyDollar[3].alterOptionsUnion()...), &OrderByOption{Cols: yyDollar[7].columnsUnion()}) } yyVAL.union = yyLOCAL - case 335: + case 339: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1920 +//line sql.y:1934 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 336: + case 340: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1924 +//line sql.y:1938 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 337: + case 341: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1928 +//line sql.y:1942 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 338: + case 342: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1934 +//line sql.y:1948 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 339: + case 343: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1938 +//line sql.y:1952 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } yyVAL.union = yyLOCAL - case 340: + case 344: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1942 +//line sql.y:1956 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } yyVAL.union = yyLOCAL - case 341: + case 345: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1946 +//line sql.y:1960 { yyLOCAL = &AddIndexDefinition{IndexDefinition: yyDollar[2].indexDefinitionUnion()} } yyVAL.union = yyLOCAL - case 342: + case 346: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1950 +//line sql.y:1964 { yyLOCAL = &AddColumns{Columns: yyDollar[4].columnDefinitionsUnion()} } yyVAL.union = yyLOCAL - case 343: + case 347: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1954 +//line sql.y:1968 { yyLOCAL = &AddColumns{Columns: []*ColumnDefinition{yyDollar[3].columnDefinitionUnion()}, First: yyDollar[4].colNameUnion(), After: yyDollar[5].colNameUnion()} } yyVAL.union = yyLOCAL - case 344: + case 348: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1958 +//line sql.y:1972 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: true} } yyVAL.union = yyLOCAL - case 345: + case 349: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1962 +//line sql.y:1976 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 346: + case 350: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1966 +//line sql.y:1980 { yyLOCAL = &ChangeColumn{OldColumn: yyDollar[3].colNameUnion(), NewColDefinition: yyDollar[4].columnDefinitionUnion(), First: yyDollar[5].colNameUnion(), After: yyDollar[6].colNameUnion()} } yyVAL.union = yyLOCAL - case 347: + case 351: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1970 +//line sql.y:1984 { yyLOCAL = &ModifyColumn{NewColDefinition: yyDollar[3].columnDefinitionUnion(), First: yyDollar[4].colNameUnion(), After: yyDollar[5].colNameUnion()} } yyVAL.union = yyLOCAL - case 348: + case 352: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1974 +//line sql.y:1988 { yyLOCAL = &AlterCharset{CharacterSet: yyDollar[4].str, Collate: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 349: + case 353: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1978 +//line sql.y:1992 { yyLOCAL = &KeyState{Enable: false} } yyVAL.union = yyLOCAL - case 350: + case 354: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1982 +//line sql.y:1996 { yyLOCAL = &KeyState{Enable: true} } yyVAL.union = yyLOCAL - case 351: + case 355: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1986 +//line sql.y:2000 { yyLOCAL = &TablespaceOperation{Import: false} } yyVAL.union = yyLOCAL - case 352: + case 356: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1990 +//line sql.y:2004 { yyLOCAL = &TablespaceOperation{Import: true} } yyVAL.union = yyLOCAL - case 353: + case 357: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1994 +//line sql.y:2008 { yyLOCAL = &DropColumn{Name: yyDollar[3].colNameUnion()} } yyVAL.union = yyLOCAL - case 354: + case 358: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1998 +//line sql.y:2012 { yyLOCAL = &DropKey{Type: NormalKeyType, Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 355: + case 359: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2002 +//line sql.y:2016 { yyLOCAL = &DropKey{Type: PrimaryKeyType} } yyVAL.union = yyLOCAL - case 356: + case 360: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2006 +//line sql.y:2020 { yyLOCAL = &DropKey{Type: ForeignKeyType, Name: yyDollar[4].colIdent} } yyVAL.union = yyLOCAL - case 357: + case 361: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2010 +//line sql.y:2024 { yyLOCAL = &Force{} } yyVAL.union = yyLOCAL - case 358: + case 362: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2014 +//line sql.y:2028 { yyLOCAL = &RenameTableName{Table: yyDollar[3].tableName} } yyVAL.union = yyLOCAL - case 359: + case 363: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2018 +//line sql.y:2032 { yyLOCAL = &RenameIndex{OldName: yyDollar[3].colIdent, NewName: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 360: + case 364: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2024 +//line sql.y:2038 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 361: + case 365: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2028 +//line sql.y:2042 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 362: + case 366: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2034 +//line sql.y:2048 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 363: + case 367: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2038 +//line sql.y:2052 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 364: + case 368: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2042 +//line sql.y:2056 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 365: + case 369: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2046 +//line sql.y:2060 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.union = yyLOCAL - case 366: + case 370: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2050 +//line sql.y:2064 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.union = yyLOCAL - case 367: + case 371: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2054 +//line sql.y:2068 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.union = yyLOCAL - case 368: + case 372: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2058 +//line sql.y:2072 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.union = yyLOCAL - case 369: + case 373: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2062 +//line sql.y:2076 { yyLOCAL = &Validation{With: true} } yyVAL.union = yyLOCAL - case 370: + case 374: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2066 +//line sql.y:2080 { yyLOCAL = &Validation{With: false} } yyVAL.union = yyLOCAL - case 371: + case 375: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2072 +//line sql.y:2086 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 372: + case 376: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2078 +//line sql.y:2092 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8275,10 +8357,10 @@ yydefault: yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 373: + case 377: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2085 +//line sql.y:2099 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8286,28 +8368,28 @@ yydefault: yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 374: + case 378: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2092 +//line sql.y:2106 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[2].partSpecUnion() yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 375: + case 379: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL Statement -//line sql.y:2098 +//line sql.y:2112 { yyLOCAL = &AlterView{ViewName: yyDollar[7].tableName.ToViewName(), Algorithm: yyDollar[3].str, Definer: yyDollar[4].str, Security: yyDollar[5].str, Columns: yyDollar[8].columnsUnion(), Select: yyDollar[10].selStmtUnion(), CheckOption: yyDollar[11].str} } yyVAL.union = yyLOCAL - case 376: + case 380: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2102 +//line sql.y:2116 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8315,10 +8397,10 @@ yydefault: yyLOCAL = yyDollar[1].alterDatabaseUnion() } yyVAL.union = yyLOCAL - case 377: + case 381: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2109 +//line sql.y:2123 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8326,10 +8408,10 @@ yydefault: yyLOCAL = yyDollar[1].alterDatabaseUnion() } yyVAL.union = yyLOCAL - case 378: + case 382: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2116 +//line sql.y:2130 { yyLOCAL = &AlterVschema{ Action: CreateVindexDDLAction, @@ -8342,10 +8424,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 379: + case 383: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2128 +//line sql.y:2142 { yyLOCAL = &AlterVschema{ Action: DropVindexDDLAction, @@ -8356,26 +8438,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 380: + case 384: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2138 +//line sql.y:2152 { yyLOCAL = &AlterVschema{Action: AddVschemaTableDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 381: + case 385: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2142 +//line sql.y:2156 { yyLOCAL = &AlterVschema{Action: DropVschemaTableDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 382: + case 386: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL Statement -//line sql.y:2146 +//line sql.y:2160 { yyLOCAL = &AlterVschema{ Action: AddColVindexDDLAction, @@ -8389,10 +8471,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 383: + case 387: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2159 +//line sql.y:2173 { yyLOCAL = &AlterVschema{ Action: DropColVindexDDLAction, @@ -8403,18 +8485,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 384: + case 388: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2169 +//line sql.y:2183 { yyLOCAL = &AlterVschema{Action: AddSequenceDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 385: + case 389: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Statement -//line sql.y:2173 +//line sql.y:2187 { yyLOCAL = &AlterVschema{ Action: AddAutoIncDDLAction, @@ -8426,10 +8508,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 386: + case 390: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2184 +//line sql.y:2198 { yyLOCAL = &AlterMigration{ Type: RetryMigrationType, @@ -8437,10 +8519,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 387: + case 391: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2191 +//line sql.y:2205 { yyLOCAL = &AlterMigration{ Type: CompleteMigrationType, @@ -8448,10 +8530,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 388: + case 392: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2198 +//line sql.y:2212 { yyLOCAL = &AlterMigration{ Type: CancelMigrationType, @@ -8459,282 +8541,282 @@ yydefault: } } yyVAL.union = yyLOCAL - case 389: + case 393: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2205 +//line sql.y:2219 { yyLOCAL = &AlterMigration{ Type: CancelAllMigrationType, } } yyVAL.union = yyLOCAL - case 390: + case 394: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2213 +//line sql.y:2227 { yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}} } yyVAL.union = yyLOCAL - case 391: + case 395: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2217 +//line sql.y:2231 { yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 392: + case 396: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2221 +//line sql.y:2235 { yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()} } yyVAL.union = yyLOCAL - case 393: + case 397: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2225 +//line sql.y:2239 { yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 394: + case 398: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2229 +//line sql.y:2243 { yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true} } yyVAL.union = yyLOCAL - case 395: + case 399: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2233 +//line sql.y:2247 { yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 396: + case 400: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2237 +//line sql.y:2251 { yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true} } yyVAL.union = yyLOCAL - case 397: + case 401: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2241 +//line sql.y:2255 { yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 398: + case 402: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2245 +//line sql.y:2259 { yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true} } yyVAL.union = yyLOCAL - case 399: + case 403: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2249 +//line sql.y:2263 { yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 400: + case 404: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2253 +//line sql.y:2267 { yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].colIdent}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()} } yyVAL.union = yyLOCAL - case 401: + case 405: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2257 +//line sql.y:2271 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 402: + case 406: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2261 +//line sql.y:2275 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true} } yyVAL.union = yyLOCAL - case 403: + case 407: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2265 +//line sql.y:2279 { yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 404: + case 408: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2269 +//line sql.y:2283 { yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true} } yyVAL.union = yyLOCAL - case 405: + case 409: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2273 +//line sql.y:2287 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 406: + case 410: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2277 +//line sql.y:2291 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true} } yyVAL.union = yyLOCAL - case 407: + case 411: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2281 +//line sql.y:2295 { yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 408: + case 412: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2285 +//line sql.y:2299 { yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true} } yyVAL.union = yyLOCAL - case 409: + case 413: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2289 +//line sql.y:2303 { yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 410: + case 414: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2293 +//line sql.y:2307 { yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true} } yyVAL.union = yyLOCAL - case 411: + case 415: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2297 +//line sql.y:2311 { yyLOCAL = &PartitionSpec{Action: UpgradeAction} } yyVAL.union = yyLOCAL - case 412: + case 416: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2302 +//line sql.y:2316 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 413: + case 417: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2306 +//line sql.y:2320 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 414: + case 418: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2310 +//line sql.y:2324 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 415: + case 419: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:2317 +//line sql.y:2331 { yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()} } yyVAL.union = yyLOCAL - case 416: + case 420: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2321 +//line sql.y:2335 { yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].partDefUnion()) } - case 417: + case 421: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2327 +//line sql.y:2341 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 418: + case 422: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2331 +//line sql.y:2345 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} } yyVAL.union = yyLOCAL - case 419: + case 423: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2337 +//line sql.y:2351 { yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()} } yyVAL.union = yyLOCAL - case 420: + case 424: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*RenameTablePair -//line sql.y:2343 +//line sql.y:2357 { yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}} } yyVAL.union = yyLOCAL - case 421: + case 425: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2347 +//line sql.y:2361 { yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName}) } - case 422: + case 426: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2353 +//line sql.y:2367 { yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs), Temp: yyDollar[3].booleanUnion()} } yyVAL.union = yyLOCAL - case 423: + case 427: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2357 +//line sql.y:2371 { // Change this to an alter statement if yyDollar[4].colIdent.Lowered() == "primary" { @@ -8744,387 +8826,387 @@ yydefault: } } yyVAL.union = yyLOCAL - case 424: + case 428: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2366 +//line sql.y:2380 { yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), IfExists: yyDollar[4].booleanUnion()} } yyVAL.union = yyLOCAL - case 425: + case 429: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2370 +//line sql.y:2384 { yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs), DBName: yyDollar[5].tableIdent, IfExists: yyDollar[4].booleanUnion()} } yyVAL.union = yyLOCAL - case 426: + case 430: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2376 +//line sql.y:2390 { yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName} } yyVAL.union = yyLOCAL - case 427: + case 431: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2380 +//line sql.y:2394 { yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName} } yyVAL.union = yyLOCAL - case 428: + case 432: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2385 +//line sql.y:2399 { yyLOCAL = &OtherRead{} } yyVAL.union = yyLOCAL - case 429: + case 433: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2391 +//line sql.y:2405 { yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 430: + case 434: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2395 +//line sql.y:2409 { yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 431: + case 435: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2399 +//line sql.y:2413 { yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 432: + case 436: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2403 +//line sql.y:2417 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 433: + case 437: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2407 +//line sql.y:2421 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 434: + case 438: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2411 +//line sql.y:2425 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 435: + case 439: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2415 +//line sql.y:2429 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 436: + case 440: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2419 +//line sql.y:2433 { yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 437: + case 441: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2423 +//line sql.y:2437 { yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 438: + case 442: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2427 +//line sql.y:2441 { yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 439: + case 443: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2431 +//line sql.y:2445 { yyLOCAL = &Show{&ShowBasic{Command: Privilege}} } yyVAL.union = yyLOCAL - case 440: + case 444: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2435 +//line sql.y:2449 { yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 441: + case 445: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2439 +//line sql.y:2453 { yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 442: + case 446: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2443 +//line sql.y:2457 { yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 443: + case 447: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2447 +//line sql.y:2461 { yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 444: + case 448: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2451 +//line sql.y:2465 { yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 445: + case 449: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2455 +//line sql.y:2469 { yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 446: + case 450: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2459 +//line sql.y:2473 { yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 447: + case 451: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2463 +//line sql.y:2477 { yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].tableIdent, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 448: + case 452: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2467 +//line sql.y:2481 { yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 449: + case 453: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2471 +//line sql.y:2485 { yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 450: + case 454: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2475 +//line sql.y:2489 { yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 451: + case 455: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2479 +//line sql.y:2493 { yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 452: + case 456: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2483 +//line sql.y:2497 { yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 453: + case 457: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2487 +//line sql.y:2501 { yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 454: + case 458: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2491 +//line sql.y:2505 { yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 455: + case 459: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2495 +//line sql.y:2509 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 456: + case 460: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2499 +//line sql.y:2513 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].colIdent.String()), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 457: + case 461: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2503 +//line sql.y:2517 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 458: + case 462: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2507 +//line sql.y:2521 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 459: + case 463: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2511 +//line sql.y:2525 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 460: + case 464: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2515 +//line sql.y:2529 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 461: + case 465: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2519 +//line sql.y:2533 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 462: + case 466: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2523 +//line sql.y:2537 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 463: + case 467: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2527 +//line sql.y:2541 { yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].tableIdent}} } yyVAL.union = yyLOCAL - case 464: + case 468: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2531 +//line sql.y:2545 { yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].tableIdent}} } yyVAL.union = yyLOCAL - case 465: + case 469: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2535 +//line sql.y:2549 { showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilterUnion()} yyLOCAL = &Show{&ShowLegacy{Scope: VitessMetadataScope, Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt}} } yyVAL.union = yyLOCAL - case 466: + case 470: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2540 +//line sql.y:2554 { yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL - case 467: + case 471: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2544 +//line sql.y:2558 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 468: + case 472: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2548 +//line sql.y:2562 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 469: + case 473: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2552 +//line sql.y:2566 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), OnTable: yyDollar[5].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 470: + case 474: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2556 +//line sql.y:2570 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 471: + case 475: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2561 +//line sql.y:2575 { // This should probably be a different type (ShowVitessTopoOpt), but // just getting the thing working for now @@ -9132,1204 +9214,1204 @@ yydefault: yyLOCAL = &Show{&ShowLegacy{Type: yyDollar[2].str, ShowTablesOpt: showTablesOpt}} } yyVAL.union = yyLOCAL - case 472: + case 476: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2575 +//line sql.y:2589 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].colIdent.String()), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 473: + case 477: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2579 +//line sql.y:2593 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 474: + case 478: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2583 +//line sql.y:2597 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 475: + case 479: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2589 +//line sql.y:2603 { yyVAL.str = string(yyDollar[1].str) } - case 476: + case 480: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2593 +//line sql.y:2607 { yyVAL.str = string(yyDollar[1].str) } - case 477: + case 481: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2599 +//line sql.y:2613 { yyVAL.str = "" } - case 478: + case 482: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2603 +//line sql.y:2617 { yyVAL.str = "extended " } - case 479: + case 483: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2609 +//line sql.y:2623 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 480: + case 484: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2613 +//line sql.y:2627 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 481: + case 485: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2619 +//line sql.y:2633 { yyVAL.str = string(yyDollar[1].str) } - case 482: + case 486: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2623 +//line sql.y:2637 { yyVAL.str = string(yyDollar[1].str) } - case 483: + case 487: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2629 +//line sql.y:2643 { yyVAL.tableIdent = NewTableIdent("") } - case 484: + case 488: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2633 +//line sql.y:2647 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 485: + case 489: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2637 +//line sql.y:2651 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 486: + case 490: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2643 +//line sql.y:2657 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 487: + case 491: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2647 +//line sql.y:2661 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 488: + case 492: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2651 +//line sql.y:2665 { yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 489: + case 493: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2657 +//line sql.y:2671 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 490: + case 494: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2661 +//line sql.y:2675 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 491: + case 495: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2667 +//line sql.y:2681 { yyVAL.empty = struct{}{} } - case 492: + case 496: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2671 +//line sql.y:2685 { yyVAL.empty = struct{}{} } - case 493: + case 497: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2675 +//line sql.y:2689 { yyVAL.empty = struct{}{} } - case 494: + case 498: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2681 +//line sql.y:2695 { yyLOCAL = &Use{DBName: yyDollar[2].tableIdent} } yyVAL.union = yyLOCAL - case 495: + case 499: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2685 +//line sql.y:2699 { yyLOCAL = &Use{DBName: TableIdent{v: ""}} } yyVAL.union = yyLOCAL - case 496: + case 500: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2691 +//line sql.y:2705 { yyLOCAL = &Begin{} } yyVAL.union = yyLOCAL - case 497: + case 501: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2695 +//line sql.y:2709 { yyLOCAL = &Begin{} } yyVAL.union = yyLOCAL - case 498: + case 502: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2701 +//line sql.y:2715 { yyLOCAL = &Commit{} } yyVAL.union = yyLOCAL - case 499: + case 503: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2707 +//line sql.y:2721 { yyLOCAL = &Rollback{} } yyVAL.union = yyLOCAL - case 500: + case 504: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2711 +//line sql.y:2725 { yyLOCAL = &SRollback{Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 501: + case 505: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2716 +//line sql.y:2730 { yyVAL.empty = struct{}{} } - case 502: + case 506: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2718 +//line sql.y:2732 { yyVAL.empty = struct{}{} } - case 503: + case 507: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2721 +//line sql.y:2735 { yyVAL.empty = struct{}{} } - case 504: + case 508: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2723 +//line sql.y:2737 { yyVAL.empty = struct{}{} } - case 505: + case 509: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2728 +//line sql.y:2742 { yyLOCAL = &Savepoint{Name: yyDollar[2].colIdent} } yyVAL.union = yyLOCAL - case 506: + case 510: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2734 +//line sql.y:2748 { yyLOCAL = &Release{Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 507: + case 511: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2739 +//line sql.y:2753 { yyLOCAL = EmptyType } yyVAL.union = yyLOCAL - case 508: + case 512: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2743 +//line sql.y:2757 { yyLOCAL = JSONType } yyVAL.union = yyLOCAL - case 509: + case 513: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2747 +//line sql.y:2761 { yyLOCAL = TreeType } yyVAL.union = yyLOCAL - case 510: + case 514: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2751 +//line sql.y:2765 { yyLOCAL = VitessType } yyVAL.union = yyLOCAL - case 511: + case 515: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2755 +//line sql.y:2769 { yyLOCAL = TraditionalType } yyVAL.union = yyLOCAL - case 512: + case 516: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2759 +//line sql.y:2773 { yyLOCAL = AnalyzeType } yyVAL.union = yyLOCAL - case 513: + case 517: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2765 +//line sql.y:2779 { yyVAL.str = yyDollar[1].str } - case 514: + case 518: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2769 +//line sql.y:2783 { yyVAL.str = yyDollar[1].str } - case 515: + case 519: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2773 +//line sql.y:2787 { yyVAL.str = yyDollar[1].str } - case 516: + case 520: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2779 +//line sql.y:2793 { yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 517: + case 521: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2783 +//line sql.y:2797 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 518: + case 522: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2787 +//line sql.y:2801 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 519: + case 523: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2791 +//line sql.y:2805 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 520: + case 524: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2796 +//line sql.y:2810 { yyVAL.str = "" } - case 521: + case 525: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2800 +//line sql.y:2814 { yyVAL.str = yyDollar[1].colIdent.val } - case 522: + case 526: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2804 +//line sql.y:2818 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 523: + case 527: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2810 +//line sql.y:2824 { yyLOCAL = &ExplainTab{Table: yyDollar[2].tableName, Wild: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 524: + case 528: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2814 +//line sql.y:2828 { yyLOCAL = &ExplainStmt{Type: yyDollar[2].explainTypeUnion(), Statement: yyDollar[3].statementUnion()} } yyVAL.union = yyLOCAL - case 525: + case 529: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2820 +//line sql.y:2834 { yyLOCAL = &OtherAdmin{} } yyVAL.union = yyLOCAL - case 526: + case 530: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2824 +//line sql.y:2838 { yyLOCAL = &OtherAdmin{} } yyVAL.union = yyLOCAL - case 527: + case 531: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2830 +//line sql.y:2844 { yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()} } yyVAL.union = yyLOCAL - case 528: + case 532: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableAndLockTypes -//line sql.y:2836 +//line sql.y:2850 { yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()} } yyVAL.union = yyLOCAL - case 529: + case 533: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2840 +//line sql.y:2854 { yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion()) } - case 530: + case 534: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *TableAndLockType -//line sql.y:2846 +//line sql.y:2860 { yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()} } yyVAL.union = yyLOCAL - case 531: + case 535: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2852 +//line sql.y:2866 { yyLOCAL = Read } yyVAL.union = yyLOCAL - case 532: + case 536: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:2856 +//line sql.y:2870 { yyLOCAL = ReadLocal } yyVAL.union = yyLOCAL - case 533: + case 537: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2860 +//line sql.y:2874 { yyLOCAL = Write } yyVAL.union = yyLOCAL - case 534: + case 538: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:2864 +//line sql.y:2878 { yyLOCAL = LowPriorityWrite } yyVAL.union = yyLOCAL - case 535: + case 539: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2870 +//line sql.y:2884 { yyLOCAL = &UnlockTables{} } yyVAL.union = yyLOCAL - case 536: + case 540: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2876 +//line sql.y:2890 { yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs), UUID: string(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 537: + case 541: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2882 +//line sql.y:2896 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs} } yyVAL.union = yyLOCAL - case 538: + case 542: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2886 +//line sql.y:2900 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()} } yyVAL.union = yyLOCAL - case 539: + case 543: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2890 +//line sql.y:2904 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true} } yyVAL.union = yyLOCAL - case 540: + case 544: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2894 +//line sql.y:2908 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 541: + case 545: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2898 +//line sql.y:2912 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true} } yyVAL.union = yyLOCAL - case 542: + case 546: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2902 +//line sql.y:2916 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true} } yyVAL.union = yyLOCAL - case 543: + case 547: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2908 +//line sql.y:2922 { yyVAL.strs = []string{yyDollar[1].str} } - case 544: + case 548: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2912 +//line sql.y:2926 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str) } - case 545: + case 549: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2918 +//line sql.y:2932 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 546: + case 550: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2922 +//line sql.y:2936 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 547: + case 551: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2926 +//line sql.y:2940 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 548: + case 552: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2930 +//line sql.y:2944 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 549: + case 553: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2934 +//line sql.y:2948 { yyVAL.str = string(yyDollar[1].str) } - case 550: + case 554: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2938 +//line sql.y:2952 { yyVAL.str = string(yyDollar[1].str) } - case 551: + case 555: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2942 +//line sql.y:2956 { yyVAL.str = string(yyDollar[1].str) } - case 552: + case 556: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2946 +//line sql.y:2960 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str } - case 553: + case 557: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2950 +//line sql.y:2964 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 554: + case 558: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2954 +//line sql.y:2968 { yyVAL.str = string(yyDollar[1].str) } - case 555: + case 559: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2958 +//line sql.y:2972 { yyVAL.str = string(yyDollar[1].str) } - case 556: + case 560: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2962 +//line sql.y:2976 { yyVAL.str = string(yyDollar[1].str) } - case 557: + case 561: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2967 +//line sql.y:2981 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 558: + case 562: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2971 +//line sql.y:2985 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 559: + case 563: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2975 +//line sql.y:2989 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 560: + case 564: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2980 +//line sql.y:2994 { yyVAL.str = "" } - case 561: + case 565: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2984 +//line sql.y:2998 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].colIdent.String() } - case 562: + case 566: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2989 +//line sql.y:3003 { setAllowComments(yylex, true) } - case 563: + case 567: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2993 +//line sql.y:3007 { yyVAL.strs = yyDollar[2].strs setAllowComments(yylex, false) } - case 564: + case 568: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2999 +//line sql.y:3013 { yyVAL.strs = nil } - case 565: + case 569: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3003 +//line sql.y:3017 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str) } - case 566: + case 570: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3009 +//line sql.y:3023 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 567: + case 571: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3013 +//line sql.y:3027 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 568: + case 572: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3017 +//line sql.y:3031 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 569: + case 573: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3022 +//line sql.y:3036 { yyVAL.str = "" } - case 570: + case 574: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3026 +//line sql.y:3040 { yyVAL.str = SQLNoCacheStr } - case 571: + case 575: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3030 +//line sql.y:3044 { yyVAL.str = SQLCacheStr } - case 572: + case 576: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3035 +//line sql.y:3049 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 573: + case 577: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3039 +//line sql.y:3053 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 574: + case 578: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3043 +//line sql.y:3057 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 575: + case 579: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3048 +//line sql.y:3062 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 576: + case 580: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3052 +//line sql.y:3066 { yyLOCAL = yyDollar[1].selectExprsUnion() } yyVAL.union = yyLOCAL - case 577: + case 581: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3057 +//line sql.y:3071 { yyVAL.strs = nil } - case 578: + case 582: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3061 +//line sql.y:3075 { yyVAL.strs = []string{yyDollar[1].str} } - case 579: + case 583: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3065 +//line sql.y:3079 { // TODO: This is a hack since I couldn't get it to work in a nicer way. I got 'conflicts: 8 shift/reduce' yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str} } - case 580: + case 584: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3069 +//line sql.y:3083 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str} } - case 581: + case 585: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3073 +//line sql.y:3087 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str, yyDollar[4].str} } - case 582: + case 586: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3079 +//line sql.y:3093 { yyVAL.str = SQLNoCacheStr } - case 583: + case 587: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3083 +//line sql.y:3097 { yyVAL.str = SQLCacheStr } - case 584: + case 588: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3087 +//line sql.y:3101 { yyVAL.str = DistinctStr } - case 585: + case 589: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3091 +//line sql.y:3105 { yyVAL.str = DistinctStr } - case 586: + case 590: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3095 +//line sql.y:3109 { yyVAL.str = StraightJoinHint } - case 587: + case 591: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3099 +//line sql.y:3113 { yyVAL.str = SQLCalcFoundRowsStr } - case 588: + case 592: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3103 +//line sql.y:3117 { yyVAL.str = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway } - case 589: + case 593: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3109 +//line sql.y:3123 { yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()} } yyVAL.union = yyLOCAL - case 590: + case 594: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3113 +//line sql.y:3127 { yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion()) } - case 591: + case 595: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3119 +//line sql.y:3133 { yyLOCAL = &StarExpr{} } yyVAL.union = yyLOCAL - case 592: + case 596: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3123 +//line sql.y:3137 { yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].colIdent} } yyVAL.union = yyLOCAL - case 593: + case 597: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3127 +//line sql.y:3141 { yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } yyVAL.union = yyLOCAL - case 594: + case 598: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3131 +//line sql.y:3145 { yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL - case 595: + case 599: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3136 +//line sql.y:3150 { yyVAL.colIdent = ColIdent{} } - case 596: + case 600: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3140 +//line sql.y:3154 { yyVAL.colIdent = yyDollar[1].colIdent } - case 597: + case 601: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3144 +//line sql.y:3158 { yyVAL.colIdent = yyDollar[2].colIdent } - case 599: + case 603: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3151 +//line sql.y:3165 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 600: + case 604: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3156 +//line sql.y:3170 { yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } yyVAL.union = yyLOCAL - case 601: + case 605: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3160 +//line sql.y:3174 { yyLOCAL = yyDollar[2].tableExprsUnion() } yyVAL.union = yyLOCAL - case 602: + case 606: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3166 +//line sql.y:3180 { yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()} } yyVAL.union = yyLOCAL - case 603: + case 607: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3170 +//line sql.y:3184 { yySLICE := (*TableExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion()) } - case 606: + case 610: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3180 +//line sql.y:3194 { yyLOCAL = yyDollar[1].aliasedTableNameUnion() } yyVAL.union = yyLOCAL - case 607: + case 611: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3184 +//line sql.y:3198 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].tableIdent} } yyVAL.union = yyLOCAL - case 608: + case 612: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3188 +//line sql.y:3202 { yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()} } yyVAL.union = yyLOCAL - case 609: + case 613: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:3194 +//line sql.y:3208 { yyLOCAL = &DerivedTable{yyDollar[2].selStmtUnion()} } yyVAL.union = yyLOCAL - case 610: + case 614: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3200 +//line sql.y:3214 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHintsUnion()} } yyVAL.union = yyLOCAL - case 611: + case 615: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3204 +//line sql.y:3218 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHintsUnion()} } yyVAL.union = yyLOCAL - case 612: + case 616: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:3209 +//line sql.y:3223 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 613: + case 617: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:3213 +//line sql.y:3227 { yyLOCAL = yyDollar[2].columnsUnion() } yyVAL.union = yyLOCAL - case 614: + case 618: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:3219 +//line sql.y:3233 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 615: + case 619: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3223 +//line sql.y:3237 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 616: + case 620: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Partitions -//line sql.y:3229 +//line sql.y:3243 { yyLOCAL = Partitions{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 617: + case 621: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3233 +//line sql.y:3247 { yySLICE := (*Partitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 618: + case 622: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3246 +//line sql.y:3260 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 619: + case 623: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3250 +//line sql.y:3264 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 620: + case 624: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3254 +//line sql.y:3268 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 621: + case 625: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3258 +//line sql.y:3272 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()} } yyVAL.union = yyLOCAL - case 622: + case 626: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3264 +//line sql.y:3278 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } - case 623: + case 627: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3266 +//line sql.y:3280 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columnsUnion()} } - case 624: + case 628: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3270 +//line sql.y:3284 { yyVAL.joinCondition = JoinCondition{} } - case 625: + case 629: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3272 +//line sql.y:3286 { yyVAL.joinCondition = yyDollar[1].joinCondition } - case 626: + case 630: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3276 +//line sql.y:3290 { yyVAL.joinCondition = JoinCondition{} } - case 627: + case 631: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3278 +//line sql.y:3292 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } - case 628: + case 632: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3281 +//line sql.y:3295 { yyVAL.empty = struct{}{} } - case 629: + case 633: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3283 +//line sql.y:3297 { yyVAL.empty = struct{}{} } - case 630: + case 634: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3286 +//line sql.y:3300 { yyVAL.tableIdent = NewTableIdent("") } - case 631: + case 635: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3290 +//line sql.y:3304 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 632: + case 636: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3294 +//line sql.y:3308 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 634: + case 638: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3301 +//line sql.y:3315 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 635: + case 639: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3307 +//line sql.y:3321 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 636: + case 640: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3311 +//line sql.y:3325 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 637: + case 641: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3315 +//line sql.y:3329 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 638: + case 642: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3321 +//line sql.y:3335 { yyLOCAL = StraightJoinType } yyVAL.union = yyLOCAL - case 639: + case 643: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3327 +//line sql.y:3341 { yyLOCAL = LeftJoinType } yyVAL.union = yyLOCAL - case 640: + case 644: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3331 +//line sql.y:3345 { yyLOCAL = LeftJoinType } yyVAL.union = yyLOCAL - case 641: + case 645: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3335 +//line sql.y:3349 { yyLOCAL = RightJoinType } yyVAL.union = yyLOCAL - case 642: + case 646: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3339 +//line sql.y:3353 { yyLOCAL = RightJoinType } yyVAL.union = yyLOCAL - case 643: + case 647: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3345 +//line sql.y:3359 { yyLOCAL = NaturalJoinType } yyVAL.union = yyLOCAL - case 644: + case 648: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3349 +//line sql.y:3363 { if yyDollar[2].joinTypeUnion() == LeftJoinType { yyLOCAL = NaturalLeftJoinType @@ -10338,668 +10420,668 @@ yydefault: } } yyVAL.union = yyLOCAL - case 645: + case 649: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3359 +//line sql.y:3373 { yyVAL.tableName = yyDollar[2].tableName } - case 646: + case 650: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3363 +//line sql.y:3377 { yyVAL.tableName = yyDollar[1].tableName } - case 647: + case 651: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3369 +//line sql.y:3383 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 648: + case 652: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3373 +//line sql.y:3387 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } - case 649: + case 653: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3379 +//line sql.y:3393 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 650: + case 654: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3384 +//line sql.y:3398 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 651: + case 655: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3388 +//line sql.y:3402 { yyLOCAL = &IndexHints{Type: UseOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 652: + case 656: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3392 +//line sql.y:3406 { yyLOCAL = &IndexHints{Type: UseOp} } yyVAL.union = yyLOCAL - case 653: + case 657: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3396 +//line sql.y:3410 { yyLOCAL = &IndexHints{Type: IgnoreOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 654: + case 658: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3400 +//line sql.y:3414 { yyLOCAL = &IndexHints{Type: ForceOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 655: + case 659: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3405 +//line sql.y:3419 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 656: + case 660: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3409 +//line sql.y:3423 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 657: + case 661: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3415 +//line sql.y:3429 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 658: + case 662: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3419 +//line sql.y:3433 { yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 659: + case 663: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3423 +//line sql.y:3437 { yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 660: + case 664: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3427 +//line sql.y:3441 { yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 661: + case 665: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3431 +//line sql.y:3445 { yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 662: + case 666: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3435 +//line sql.y:3449 { yyLOCAL = &IsExpr{Operator: yyDollar[3].isExprOperatorUnion(), Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 663: + case 667: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3439 +//line sql.y:3453 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 664: + case 668: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3443 +//line sql.y:3457 { yyLOCAL = &Default{ColName: yyDollar[2].str} } yyVAL.union = yyLOCAL - case 665: + case 669: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3449 +//line sql.y:3463 { yyVAL.str = "" } - case 666: + case 670: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3453 +//line sql.y:3467 { yyVAL.str = string(yyDollar[2].colIdent.String()) } - case 667: + case 671: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3459 +//line sql.y:3473 { yyLOCAL = BoolVal(true) } yyVAL.union = yyLOCAL - case 668: + case 672: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3463 +//line sql.y:3477 { yyLOCAL = BoolVal(false) } yyVAL.union = yyLOCAL - case 669: + case 673: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3469 +//line sql.y:3483 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 670: + case 674: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3473 +//line sql.y:3487 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()} } yyVAL.union = yyLOCAL - case 671: + case 675: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3477 +//line sql.y:3491 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()} } yyVAL.union = yyLOCAL - case 672: + case 676: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3481 +//line sql.y:3495 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 673: + case 677: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3485 +//line sql.y:3499 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 674: + case 678: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3489 +//line sql.y:3503 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 675: + case 679: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3493 +//line sql.y:3507 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 676: + case 680: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3497 +//line sql.y:3511 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: BetweenOp, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 677: + case 681: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3501 +//line sql.y:3515 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: NotBetweenOp, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 678: + case 682: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3505 +//line sql.y:3519 { yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()} } yyVAL.union = yyLOCAL - case 679: + case 683: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3511 +//line sql.y:3525 { yyLOCAL = IsNullOp } yyVAL.union = yyLOCAL - case 680: + case 684: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3515 +//line sql.y:3529 { yyLOCAL = IsNotNullOp } yyVAL.union = yyLOCAL - case 681: + case 685: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3519 +//line sql.y:3533 { yyLOCAL = IsTrueOp } yyVAL.union = yyLOCAL - case 682: + case 686: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3523 +//line sql.y:3537 { yyLOCAL = IsNotTrueOp } yyVAL.union = yyLOCAL - case 683: + case 687: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3527 +//line sql.y:3541 { yyLOCAL = IsFalseOp } yyVAL.union = yyLOCAL - case 684: + case 688: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3531 +//line sql.y:3545 { yyLOCAL = IsNotFalseOp } yyVAL.union = yyLOCAL - case 685: + case 689: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3537 +//line sql.y:3551 { yyLOCAL = EqualOp } yyVAL.union = yyLOCAL - case 686: + case 690: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3541 +//line sql.y:3555 { yyLOCAL = LessThanOp } yyVAL.union = yyLOCAL - case 687: + case 691: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3545 +//line sql.y:3559 { yyLOCAL = GreaterThanOp } yyVAL.union = yyLOCAL - case 688: + case 692: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3549 +//line sql.y:3563 { yyLOCAL = LessEqualOp } yyVAL.union = yyLOCAL - case 689: + case 693: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3553 +//line sql.y:3567 { yyLOCAL = GreaterEqualOp } yyVAL.union = yyLOCAL - case 690: + case 694: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3557 +//line sql.y:3571 { yyLOCAL = NotEqualOp } yyVAL.union = yyLOCAL - case 691: + case 695: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3561 +//line sql.y:3575 { yyLOCAL = NullSafeEqualOp } yyVAL.union = yyLOCAL - case 692: + case 696: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3566 +//line sql.y:3580 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 693: + case 697: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3570 +//line sql.y:3584 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 694: + case 698: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3576 +//line sql.y:3590 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 695: + case 699: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3580 +//line sql.y:3594 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 696: + case 700: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3584 +//line sql.y:3598 { yyLOCAL = ListArg(yyDollar[1].str[2:]) bindVariable(yylex, yyDollar[1].str[2:]) } yyVAL.union = yyLOCAL - case 697: + case 701: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Subquery -//line sql.y:3591 +//line sql.y:3605 { yyLOCAL = &Subquery{yyDollar[2].selStmtUnion()} } yyVAL.union = yyLOCAL - case 698: + case 702: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:3597 +//line sql.y:3611 { yyLOCAL = Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 699: + case 703: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3601 +//line sql.y:3615 { yySLICE := (*Exprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].exprUnion()) } - case 700: + case 704: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3607 +//line sql.y:3621 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 701: + case 705: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3611 +//line sql.y:3625 { yyLOCAL = yyDollar[1].boolValUnion() } yyVAL.union = yyLOCAL - case 702: + case 706: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3615 +//line sql.y:3629 { yyLOCAL = yyDollar[1].colNameUnion() } yyVAL.union = yyLOCAL - case 703: + case 707: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3619 +//line sql.y:3633 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 704: + case 708: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3623 +//line sql.y:3637 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 705: + case 709: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3627 +//line sql.y:3641 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 706: + case 710: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3631 +//line sql.y:3645 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 707: + case 711: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3635 +//line sql.y:3649 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 708: + case 712: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3639 +//line sql.y:3653 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 709: + case 713: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3643 +//line sql.y:3657 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 710: + case 714: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3647 +//line sql.y:3661 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 711: + case 715: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3651 +//line sql.y:3665 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 712: + case 716: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3655 +//line sql.y:3669 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 713: + case 717: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3659 +//line sql.y:3673 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 714: + case 718: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3663 +//line sql.y:3677 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 715: + case 719: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3667 +//line sql.y:3681 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 716: + case 720: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3671 +//line sql.y:3685 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 717: + case 721: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3675 +//line sql.y:3689 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONExtractOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 718: + case 722: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3679 +//line sql.y:3693 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONUnquoteExtractOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 719: + case 723: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3683 +//line sql.y:3697 { yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Charset: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 720: + case 724: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3687 +//line sql.y:3701 { yyLOCAL = &UnaryExpr{Operator: BinaryOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 721: + case 725: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3691 +//line sql.y:3705 { yyLOCAL = &UnaryExpr{Operator: UBinaryOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 722: + case 726: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3695 +//line sql.y:3709 { yyLOCAL = &UnaryExpr{Operator: Utf8Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 723: + case 727: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3699 +//line sql.y:3713 { yyLOCAL = &UnaryExpr{Operator: Utf8mb4Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 724: + case 728: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3703 +//line sql.y:3717 { yyLOCAL = &UnaryExpr{Operator: Latin1Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 725: + case 729: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3707 +//line sql.y:3721 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 726: + case 730: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3711 +//line sql.y:3725 { yyLOCAL = handleUnaryMinus(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 727: + case 731: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3715 +//line sql.y:3729 { yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 728: + case 732: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3719 +//line sql.y:3733 { yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 729: + case 733: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3723 +//line sql.y:3737 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -11008,666 +11090,666 @@ yydefault: yyLOCAL = &IntervalExpr{Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 734: + case 738: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3741 +//line sql.y:3755 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 735: + case 739: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3745 +//line sql.y:3759 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 736: + case 740: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3749 +//line sql.y:3763 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 737: + case 741: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3753 +//line sql.y:3767 { yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 738: + case 742: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3763 +//line sql.y:3777 { yyLOCAL = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 739: + case 743: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3767 +//line sql.y:3781 { yyLOCAL = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 740: + case 744: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3771 +//line sql.y:3785 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 741: + case 745: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3775 +//line sql.y:3789 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 742: + case 746: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3779 +//line sql.y:3793 { yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 743: + case 747: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3783 +//line sql.y:3797 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 744: + case 748: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3787 +//line sql.y:3801 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 745: + case 749: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3791 +//line sql.y:3805 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 746: + case 750: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3795 +//line sql.y:3809 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 747: + case 751: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:3799 +//line sql.y:3813 { yyLOCAL = &MatchExpr{Columns: yyDollar[3].selectExprsUnion(), Expr: yyDollar[7].exprUnion(), Option: yyDollar[8].matchExprOptionUnion()} } yyVAL.union = yyLOCAL - case 748: + case 752: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3803 +//line sql.y:3817 { yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].selectExprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()} } yyVAL.union = yyLOCAL - case 749: + case 753: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3807 +//line sql.y:3821 { yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 750: + case 754: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3811 +//line sql.y:3825 { yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()} } yyVAL.union = yyLOCAL - case 751: + case 755: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3815 +//line sql.y:3829 { yyLOCAL = &FuncExpr{Name: NewColIdent(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 752: + case 756: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3825 +//line sql.y:3839 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_timestamp")} } yyVAL.union = yyLOCAL - case 753: + case 757: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3829 +//line sql.y:3843 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_timestamp")} } yyVAL.union = yyLOCAL - case 754: + case 758: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3833 +//line sql.y:3847 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_time")} } yyVAL.union = yyLOCAL - case 755: + case 759: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3838 +//line sql.y:3852 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_date")} } yyVAL.union = yyLOCAL - case 756: + case 760: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3843 +//line sql.y:3857 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtime")} } yyVAL.union = yyLOCAL - case 757: + case 761: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3848 +//line sql.y:3862 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtimestamp")} } yyVAL.union = yyLOCAL - case 758: + case 762: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3854 +//line sql.y:3868 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_date")} } yyVAL.union = yyLOCAL - case 759: + case 763: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3859 +//line sql.y:3873 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_time")} } yyVAL.union = yyLOCAL - case 760: + case 764: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3864 +//line sql.y:3878 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 761: + case 765: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3868 +//line sql.y:3882 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 762: + case 766: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3872 +//line sql.y:3886 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 763: + case 767: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3877 +//line sql.y:3891 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 764: + case 768: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3882 +//line sql.y:3896 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 765: + case 769: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3887 +//line sql.y:3901 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 766: + case 770: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3891 +//line sql.y:3905 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 767: + case 771: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3895 +//line sql.y:3909 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 770: + case 774: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3905 +//line sql.y:3919 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 771: + case 775: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3915 +//line sql.y:3929 { yyLOCAL = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 772: + case 776: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3919 +//line sql.y:3933 { yyLOCAL = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 773: + case 777: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3923 +//line sql.y:3937 { yyLOCAL = &FuncExpr{Name: NewColIdent("schema"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 774: + case 778: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3927 +//line sql.y:3941 { yyLOCAL = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 775: + case 779: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3931 +//line sql.y:3945 { yyLOCAL = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 776: + case 780: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3935 +//line sql.y:3949 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 777: + case 781: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3939 +//line sql.y:3953 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 778: + case 782: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3945 +//line sql.y:3959 { yyLOCAL = NoOption } yyVAL.union = yyLOCAL - case 779: + case 783: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3949 +//line sql.y:3963 { yyLOCAL = BooleanModeOpt } yyVAL.union = yyLOCAL - case 780: + case 784: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3953 +//line sql.y:3967 { yyLOCAL = NaturalLanguageModeOpt } yyVAL.union = yyLOCAL - case 781: + case 785: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3957 +//line sql.y:3971 { yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt } yyVAL.union = yyLOCAL - case 782: + case 786: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3961 +//line sql.y:3975 { yyLOCAL = QueryExpansionOpt } yyVAL.union = yyLOCAL - case 783: + case 787: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3967 +//line sql.y:3981 { yyVAL.str = string(yyDollar[1].colIdent.String()) } - case 784: + case 788: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3971 +//line sql.y:3985 { yyVAL.str = string(yyDollar[1].str) } - case 785: + case 789: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3975 +//line sql.y:3989 { yyVAL.str = string(yyDollar[1].str) } - case 786: + case 790: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3981 +//line sql.y:3995 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 787: + case 791: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3985 +//line sql.y:3999 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Operator: CharacterSetOp} } yyVAL.union = yyLOCAL - case 788: + case 792: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3989 +//line sql.y:4003 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: string(yyDollar[3].colIdent.String())} } yyVAL.union = yyLOCAL - case 789: + case 793: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3993 +//line sql.y:4007 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 790: + case 794: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3997 +//line sql.y:4011 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 791: + case 795: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4001 +//line sql.y:4015 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length yyLOCAL.Scale = yyDollar[2].LengthScaleOption.Scale } yyVAL.union = yyLOCAL - case 792: + case 796: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4007 +//line sql.y:4021 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 793: + case 797: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4011 +//line sql.y:4025 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 794: + case 798: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4015 +//line sql.y:4029 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 795: + case 799: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4019 +//line sql.y:4033 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 796: + case 800: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4023 +//line sql.y:4037 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 797: + case 801: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4027 +//line sql.y:4041 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 798: + case 802: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4031 +//line sql.y:4045 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 799: + case 803: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4036 +//line sql.y:4050 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 800: + case 804: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4040 +//line sql.y:4054 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 801: + case 805: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4045 +//line sql.y:4059 { yyVAL.str = string("") } - case 802: + case 806: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4049 +//line sql.y:4063 { yyVAL.str = " separator " + encodeSQLString(yyDollar[2].str) } - case 803: + case 807: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*When -//line sql.y:4055 +//line sql.y:4069 { yyLOCAL = []*When{yyDollar[1].whenUnion()} } yyVAL.union = yyLOCAL - case 804: + case 808: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4059 +//line sql.y:4073 { yySLICE := (*[]*When)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].whenUnion()) } - case 805: + case 809: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *When -//line sql.y:4065 +//line sql.y:4079 { yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 806: + case 810: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4070 +//line sql.y:4084 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 807: + case 811: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4074 +//line sql.y:4088 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 808: + case 812: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ColName -//line sql.y:4080 +//line sql.y:4094 { yyLOCAL = &ColName{Name: yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 809: + case 813: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColName -//line sql.y:4084 +//line sql.y:4098 { yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 810: + case 814: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColName -//line sql.y:4088 +//line sql.y:4102 { yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 811: + case 815: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4094 +//line sql.y:4108 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 812: + case 816: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4098 +//line sql.y:4112 { yyLOCAL = NewHexLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 813: + case 817: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4102 +//line sql.y:4116 { yyLOCAL = NewBitLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 814: + case 818: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4106 +//line sql.y:4120 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 815: + case 819: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4110 +//line sql.y:4124 { yyLOCAL = NewFloatLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 816: + case 820: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4114 +//line sql.y:4128 { yyLOCAL = NewHexNumLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 817: + case 821: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4118 +//line sql.y:4132 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 818: + case 822: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4123 +//line sql.y:4137 { yyLOCAL = &NullVal{} } yyVAL.union = yyLOCAL - case 819: + case 823: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4129 +//line sql.y:4143 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -11677,707 +11759,707 @@ yydefault: yyLOCAL = NewIntLiteral("1") } yyVAL.union = yyLOCAL - case 820: + case 824: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4138 +//line sql.y:4152 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 821: + case 825: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4142 +//line sql.y:4156 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 822: + case 826: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4148 +//line sql.y:4162 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 823: + case 827: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Exprs -//line sql.y:4152 +//line sql.y:4166 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 824: + case 828: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4157 +//line sql.y:4171 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 825: + case 829: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4161 +//line sql.y:4175 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 826: + case 830: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4166 +//line sql.y:4180 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 827: + case 831: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4170 +//line sql.y:4184 { yyLOCAL = yyDollar[3].orderByUnion() } yyVAL.union = yyLOCAL - case 828: + case 832: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4176 +//line sql.y:4190 { yyLOCAL = OrderBy{yyDollar[1].orderUnion()} } yyVAL.union = yyLOCAL - case 829: + case 833: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4180 +//line sql.y:4194 { yySLICE := (*OrderBy)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].orderUnion()) } - case 830: + case 834: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Order -//line sql.y:4186 +//line sql.y:4200 { yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()} } yyVAL.union = yyLOCAL - case 831: + case 835: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4191 +//line sql.y:4205 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 832: + case 836: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4195 +//line sql.y:4209 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 833: + case 837: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4199 +//line sql.y:4213 { yyLOCAL = DescOrder } yyVAL.union = yyLOCAL - case 834: + case 838: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Limit -//line sql.y:4204 +//line sql.y:4218 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 835: + case 839: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Limit -//line sql.y:4208 +//line sql.y:4222 { yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 836: + case 840: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4212 +//line sql.y:4226 { yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 837: + case 841: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4216 +//line sql.y:4230 { yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 838: + case 842: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4221 +//line sql.y:4235 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 839: + case 843: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4225 +//line sql.y:4239 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 840: + case 844: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4229 +//line sql.y:4243 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 841: + case 845: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4233 +//line sql.y:4247 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 842: + case 846: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4237 +//line sql.y:4251 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 843: + case 847: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4244 +//line sql.y:4258 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.union = yyLOCAL - case 844: + case 848: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4248 +//line sql.y:4262 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.union = yyLOCAL - case 845: + case 849: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4252 +//line sql.y:4266 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.union = yyLOCAL - case 846: + case 850: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4256 +//line sql.y:4270 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.union = yyLOCAL - case 847: + case 851: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4262 +//line sql.y:4276 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 848: + case 852: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4266 +//line sql.y:4280 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 849: + case 853: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4270 +//line sql.y:4284 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 850: + case 854: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4275 +//line sql.y:4289 { yyVAL.str = "" } - case 851: + case 855: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4279 +//line sql.y:4293 { yyVAL.str = string(yyDollar[3].str) } - case 852: + case 856: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4283 +//line sql.y:4297 { yyVAL.str = string(yyDollar[3].str) } - case 853: + case 857: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4287 +//line sql.y:4301 { yyVAL.str = string(yyDollar[3].str) } - case 854: + case 858: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4292 +//line sql.y:4306 { yyVAL.str = "" } - case 855: + case 859: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4296 +//line sql.y:4310 { yyVAL.str = yyDollar[3].str } - case 856: + case 860: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4302 +//line sql.y:4316 { yyVAL.str = string(yyDollar[1].str) } - case 857: + case 861: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4306 +//line sql.y:4320 { yyVAL.str = string(yyDollar[1].str) } - case 858: + case 862: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4311 +//line sql.y:4325 { yyVAL.str = "" } - case 859: + case 863: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4315 +//line sql.y:4329 { yyVAL.str = yyDollar[2].str } - case 860: + case 864: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4320 +//line sql.y:4334 { yyVAL.str = "cascaded" } - case 861: + case 865: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4324 +//line sql.y:4338 { yyVAL.str = string(yyDollar[1].str) } - case 862: + case 866: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4328 +//line sql.y:4342 { yyVAL.str = string(yyDollar[1].str) } - case 863: + case 867: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4333 +//line sql.y:4347 { yyVAL.str = "" } - case 864: + case 868: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4337 +//line sql.y:4351 { yyVAL.str = yyDollar[3].str } - case 865: + case 869: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4343 +//line sql.y:4357 { yyVAL.str = string(yyDollar[1].str) } - case 866: + case 870: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4347 +//line sql.y:4361 { yyVAL.str = string(yyDollar[1].str) } - case 867: + case 871: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4351 +//line sql.y:4365 { yyVAL.str = encodeSQLString(yyDollar[1].str) + "@" + string(yyDollar[2].str) } - case 868: + case 872: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4355 +//line sql.y:4369 { yyVAL.str = string(yyDollar[1].str) } - case 869: + case 873: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Lock -//line sql.y:4360 +//line sql.y:4374 { yyLOCAL = NoLock } yyVAL.union = yyLOCAL - case 870: + case 874: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Lock -//line sql.y:4364 +//line sql.y:4378 { yyLOCAL = ForUpdateLock } yyVAL.union = yyLOCAL - case 871: + case 875: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:4368 +//line sql.y:4382 { yyLOCAL = ShareModeLock } yyVAL.union = yyLOCAL - case 872: + case 876: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4373 +//line sql.y:4387 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 873: + case 877: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4377 +//line sql.y:4391 { yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].str, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str} } yyVAL.union = yyLOCAL - case 874: + case 878: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4381 +//line sql.y:4395 { yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: "", FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 875: + case 879: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4385 +//line sql.y:4399 { yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].str, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 876: + case 880: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4390 +//line sql.y:4404 { yyVAL.str = "" } - case 877: + case 881: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4394 +//line sql.y:4408 { yyVAL.str = " format csv" + yyDollar[3].str } - case 878: + case 882: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4398 +//line sql.y:4412 { yyVAL.str = " format text" + yyDollar[3].str } - case 879: + case 883: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4403 +//line sql.y:4417 { yyVAL.str = "" } - case 880: + case 884: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4407 +//line sql.y:4421 { yyVAL.str = " header" } - case 881: + case 885: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4412 +//line sql.y:4426 { yyVAL.str = "" } - case 882: + case 886: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4416 +//line sql.y:4430 { yyVAL.str = " manifest on" } - case 883: + case 887: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4420 +//line sql.y:4434 { yyVAL.str = " manifest off" } - case 884: + case 888: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4425 +//line sql.y:4439 { yyVAL.str = "" } - case 885: + case 889: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4429 +//line sql.y:4443 { yyVAL.str = " overwrite on" } - case 886: + case 890: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4433 +//line sql.y:4447 { yyVAL.str = " overwrite off" } - case 887: + case 891: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4439 +//line sql.y:4453 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 888: + case 892: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4444 +//line sql.y:4458 { yyVAL.str = "" } - case 889: + case 893: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4448 +//line sql.y:4462 { yyVAL.str = " lines" + yyDollar[2].str } - case 890: + case 894: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4454 +//line sql.y:4468 { yyVAL.str = yyDollar[1].str } - case 891: + case 895: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4458 +//line sql.y:4472 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 892: + case 896: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4464 +//line sql.y:4478 { yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str) } - case 893: + case 897: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4468 +//line sql.y:4482 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 894: + case 898: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4473 +//line sql.y:4487 { yyVAL.str = "" } - case 895: + case 899: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4477 +//line sql.y:4491 { yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str } - case 896: + case 900: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4483 +//line sql.y:4497 { yyVAL.str = yyDollar[1].str } - case 897: + case 901: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4487 +//line sql.y:4501 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 898: + case 902: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4493 +//line sql.y:4507 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 899: + case 903: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4497 +//line sql.y:4511 { yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str) } - case 900: + case 904: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4501 +//line sql.y:4515 { yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str) } - case 901: + case 905: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4506 +//line sql.y:4520 { yyVAL.str = "" } - case 902: + case 906: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4510 +//line sql.y:4524 { yyVAL.str = " optionally" } - case 903: + case 907: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Insert -//line sql.y:4523 +//line sql.y:4537 { yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion()} } yyVAL.union = yyLOCAL - case 904: + case 908: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Insert -//line sql.y:4527 +//line sql.y:4541 { yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()} } yyVAL.union = yyLOCAL - case 905: + case 909: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *Insert -//line sql.y:4531 +//line sql.y:4545 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion()} } yyVAL.union = yyLOCAL - case 906: + case 910: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4535 +//line sql.y:4549 { yyLOCAL = &Insert{Rows: yyDollar[4].valuesUnion()} } yyVAL.union = yyLOCAL - case 907: + case 911: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4539 +//line sql.y:4553 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()} } yyVAL.union = yyLOCAL - case 908: + case 912: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:4545 +//line sql.y:4559 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 909: + case 913: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:4549 +//line sql.y:4563 { yyLOCAL = Columns{yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 910: + case 914: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4553 +//line sql.y:4567 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 911: + case 915: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4557 +//line sql.y:4571 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[5].colIdent) } - case 912: + case 916: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4562 +//line sql.y:4576 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 913: + case 917: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4566 +//line sql.y:4580 { yyLOCAL = yyDollar[5].updateExprsUnion() } yyVAL.union = yyLOCAL - case 914: + case 918: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Values -//line sql.y:4572 +//line sql.y:4586 { yyLOCAL = Values{yyDollar[1].valTupleUnion()} } yyVAL.union = yyLOCAL - case 915: + case 919: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4576 +//line sql.y:4590 { yySLICE := (*Values)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion()) } - case 916: + case 920: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4582 +//line sql.y:4596 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 917: + case 921: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4586 +//line sql.y:4600 { yyLOCAL = ValTuple{} } yyVAL.union = yyLOCAL - case 918: + case 922: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4592 +//line sql.y:4606 { yyLOCAL = ValTuple(yyDollar[2].exprsUnion()) } yyVAL.union = yyLOCAL - case 919: + case 923: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4598 +//line sql.y:4612 { if len(yyDollar[1].valTupleUnion()) == 1 { yyLOCAL = yyDollar[1].valTupleUnion()[0] @@ -12386,329 +12468,329 @@ yydefault: } } yyVAL.union = yyLOCAL - case 920: + case 924: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4608 +//line sql.y:4622 { yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()} } yyVAL.union = yyLOCAL - case 921: + case 925: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4612 +//line sql.y:4626 { yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion()) } - case 922: + case 926: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *UpdateExpr -//line sql.y:4618 +//line sql.y:4632 { yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 923: + case 927: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SetExprs -//line sql.y:4624 +//line sql.y:4638 { yyLOCAL = SetExprs{yyDollar[1].setExprUnion()} } yyVAL.union = yyLOCAL - case 924: + case 928: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4628 +//line sql.y:4642 { yySLICE := (*SetExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].setExprUnion()) } - case 925: + case 929: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4634 +//line sql.y:4648 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("on")} } yyVAL.union = yyLOCAL - case 926: + case 930: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4638 +//line sql.y:4652 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("off")} } yyVAL.union = yyLOCAL - case 927: + case 931: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4642 +//line sql.y:4656 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 928: + case 932: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4646 +//line sql.y:4660 { yyLOCAL = &SetExpr{Name: NewColIdent(string(yyDollar[1].str)), Scope: ImplicitScope, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 929: + case 933: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4650 +//line sql.y:4664 { yyDollar[2].setExprUnion().Scope = yyDollar[1].scopeUnion() yyLOCAL = yyDollar[2].setExprUnion() } yyVAL.union = yyLOCAL - case 931: + case 935: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4658 +//line sql.y:4672 { yyVAL.str = "charset" } - case 934: + case 938: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4668 +//line sql.y:4682 { yyLOCAL = NewStrLiteral(yyDollar[1].colIdent.String()) } yyVAL.union = yyLOCAL - case 935: + case 939: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4672 +//line sql.y:4686 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 936: + case 940: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4676 +//line sql.y:4690 { yyLOCAL = &Default{} } yyVAL.union = yyLOCAL - case 939: + case 943: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4685 +//line sql.y:4699 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 940: + case 944: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4687 +//line sql.y:4701 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 941: + case 945: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4690 +//line sql.y:4704 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 942: + case 946: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4692 +//line sql.y:4706 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 943: + case 947: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4695 +//line sql.y:4709 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 944: + case 948: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line sql.y:4697 +//line sql.y:4711 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 945: + case 949: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Ignore -//line sql.y:4700 +//line sql.y:4714 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 946: + case 950: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Ignore -//line sql.y:4702 +//line sql.y:4716 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 947: + case 951: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4705 +//line sql.y:4719 { yyVAL.empty = struct{}{} } - case 948: + case 952: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4707 +//line sql.y:4721 { yyVAL.empty = struct{}{} } - case 949: + case 953: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4709 +//line sql.y:4723 { yyVAL.empty = struct{}{} } - case 950: + case 954: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4713 +//line sql.y:4727 { yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()} } yyVAL.union = yyLOCAL - case 951: + case 955: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4718 +//line sql.y:4732 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 952: + case 956: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:4722 +//line sql.y:4736 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 953: + case 957: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4727 +//line sql.y:4741 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 954: + case 958: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4729 +//line sql.y:4743 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL - case 955: + case 959: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:4733 +//line sql.y:4747 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].colIdent.String())} } yyVAL.union = yyLOCAL - case 956: + case 960: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4739 +//line sql.y:4753 { yyVAL.colIdent = yyDollar[1].colIdent } - case 957: + case 961: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4743 +//line sql.y:4757 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 959: + case 963: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4750 +//line sql.y:4764 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 960: + case 964: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4756 +//line sql.y:4770 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].colIdent.String())) } - case 961: + case 965: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4760 +//line sql.y:4774 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 962: + case 966: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4765 +//line sql.y:4779 { yyVAL.tableIdent = NewTableIdent("") } - case 963: + case 967: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4769 +//line sql.y:4783 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 965: + case 969: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4776 +//line sql.y:4790 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 1373: + case 1377: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5208 +//line sql.y:5222 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 1374: + case 1378: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5217 +//line sql.y:5231 { decNesting(yylex) } - case 1375: + case 1379: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5222 +//line sql.y:5236 { skipToEnd(yylex) } - case 1376: + case 1380: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5227 +//line sql.y:5241 { skipToEnd(yylex) } - case 1377: + case 1381: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5231 +//line sql.y:5245 { skipToEnd(yylex) } - case 1378: + case 1382: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5235 +//line sql.y:5249 { skipToEnd(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index 3527d2e1358..cac019afb16 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -154,6 +154,8 @@ func bindVariable(yylex yyLexer, bvar string) { explainType ExplainType lockType LockType + columnStorage ColumnStorage + boolean bool boolVal BoolVal ignore Ignore @@ -175,6 +177,7 @@ func bindVariable(yylex yyLexer, bvar string) { %token ID AT_ID AT_AT_ID HEX STRING INTEGRAL FLOAT HEXNUM VALUE_ARG LIST_ARG COMMENT COMMENT_KEYWORD BIT_LITERAL COMPRESSION %token NULL TRUE FALSE OFF %token DISCARD IMPORT ENABLE DISABLE TABLESPACE +%token VIRTUAL STORED // Precedence dictated by mysql. But the vitess grammar is simplified. // Some of these operators don't conflict in our situation. Nevertheless, @@ -345,7 +348,7 @@ func bindVariable(yylex yyLexer, bvar string) { %type asc_desc_opt %type limit_opt %type into_option -%type opt_column_attribute_list +%type column_attribute_list_opt generated_column_attribute_list_opt %type header_opt export_options manifest_opt overwrite_opt format_opt optionally_opt %type fields_opts fields_opt_list fields_opt lines_opts lines_opt lines_opt_list %type lock_opt @@ -414,6 +417,7 @@ func bindVariable(yylex yyLexer, bvar string) { %type lock_table %type lock_type %type session_or_local_opt +%type column_storage %start any_command @@ -1015,97 +1019,107 @@ table_column_list: } column_definition: - sql_id column_type opt_column_attribute_list + sql_id column_type column_attribute_list_opt { $2.Options = $3 $$ = &ColumnDefinition{Name: $1, Type: $2} } +| sql_id column_type generated_always_opt AS '(' value_expression ')' generated_column_attribute_list_opt + { + $2.Options = $8 + $2.Options.As = $6 + $$ = &ColumnDefinition{Name: $1, Type: $2} + } generated_always_opt: - { - $$ = "" - } + { + $$ = "" + } | GENERATED ALWAYS - { - $$ = "" - } + { + $$ = "" + } // There is a shift reduce conflict that arises here because UNIQUE and KEY are column_type_option and so is UNIQUE KEY. // So in the state "column_type_options UNIQUE. KEY" there is a shift-reduce conflict. // This has been added to emulate what MySQL does. The previous architecture was such that the order of the column options // was specific (as stated in the MySQL guide) and did not accept arbitrary order options. For example NOT NULL DEFAULT 1 and not DEFAULT 1 NOT NULL -opt_column_attribute_list: +column_attribute_list_opt: { $$ = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil, As: nil} } -| opt_column_attribute_list NULL +| column_attribute_list_opt NULL { val := true $1.Null = &val $$ = $1 } -| opt_column_attribute_list NOT NULL +| column_attribute_list_opt NOT NULL { val := false $1.Null = &val $$ = $1 } -| opt_column_attribute_list DEFAULT value_expression +| column_attribute_list_opt DEFAULT value_expression { $1.Default = $3 $$ = $1 } -| opt_column_attribute_list generated_always_opt AS '(' value_expression ')' - { - $1.As = $5 - $$ = $1 - } -| opt_column_attribute_list ON UPDATE function_call_nonkeyword +| column_attribute_list_opt ON UPDATE function_call_nonkeyword { $1.OnUpdate = $4 $$ = $1 } -| opt_column_attribute_list AUTO_INCREMENT +| column_attribute_list_opt AUTO_INCREMENT { $1.Autoincrement = true $$ = $1 } -| opt_column_attribute_list COMMENT_KEYWORD STRING +| column_attribute_list_opt COMMENT_KEYWORD STRING { $1.Comment = NewStrLiteral($3) $$ = $1 } -| opt_column_attribute_list PRIMARY KEY +| column_attribute_list_opt PRIMARY KEY { $1.KeyOpt = colKeyPrimary $$ = $1 } -| opt_column_attribute_list KEY +| column_attribute_list_opt KEY { $1.KeyOpt = colKey $$ = $1 } -| opt_column_attribute_list UNIQUE KEY +| column_attribute_list_opt UNIQUE KEY { $1.KeyOpt = colKeyUniqueKey $$ = $1 } -| opt_column_attribute_list UNIQUE +| column_attribute_list_opt UNIQUE { $1.KeyOpt = colKeyUnique $$ = $1 } -// -//column_type_options: -// { -// $$ = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil, As: nil} -// } -//| opt_column_attribute_list NULL -// { -// val := true -// $1.Null = &val -// $$ = $1 -// } + +column_storage: + VIRTUAL +{ + $$ = VirtualStorage +} +| STORED +{ + $$ = StoredStorage +} + +generated_column_attribute_list_opt: + { + $$ = &ColumnTypeOptions{} + } +| generated_column_attribute_list_opt column_storage + { + $1.Storage = $2 + $$ = $1 + } column_type: numeric_type unsigned_opt zero_fill_opt From 2ed59d1c5df0c191f55e679363374bed0ca37a93 Mon Sep 17 00:00:00 2001 From: Florent Poinsard Date: Thu, 13 May 2021 16:14:47 +0200 Subject: [PATCH 39/63] Printing option storage format Signed-off-by: Florent Poinsard --- go/vt/sqlparser/ast_format.go | 6 ++++++ go/vt/sqlparser/ast_format_fast.go | 8 ++++++++ go/vt/sqlparser/constants.go | 3 +-- go/vt/sqlparser/keywords.go | 20 ++++++++++++++++++-- go/vt/sqlparser/parse_test.go | 12 +++++++++++- 5 files changed, 44 insertions(+), 5 deletions(-) diff --git a/go/vt/sqlparser/ast_format.go b/go/vt/sqlparser/ast_format.go index ed40a465a3c..03afcd51b78 100644 --- a/go/vt/sqlparser/ast_format.go +++ b/go/vt/sqlparser/ast_format.go @@ -471,6 +471,12 @@ func (ct *ColumnType) Format(buf *TrackedBuffer) { } if ct.Options.As != nil { buf.astPrintf(ct, " %s (%v)", keywordStrings[AS], ct.Options.As) + + if ct.Options.Storage == VirtualStorage { + buf.astPrintf(ct, " %s", keywordStrings[VIRTUAL]) + } else if ct.Options.Storage == StoredStorage { + buf.astPrintf(ct, " %s", keywordStrings[STORED]) + } } if ct.Options.Autoincrement { buf.astPrintf(ct, " %s", keywordStrings[AUTO_INCREMENT]) diff --git a/go/vt/sqlparser/ast_format_fast.go b/go/vt/sqlparser/ast_format_fast.go index 7d4d8bd624e..144b238fb46 100644 --- a/go/vt/sqlparser/ast_format_fast.go +++ b/go/vt/sqlparser/ast_format_fast.go @@ -684,6 +684,14 @@ func (ct *ColumnType) formatFast(buf *TrackedBuffer) { buf.WriteString(" (") ct.Options.As.formatFast(buf) buf.WriteByte(')') + + if ct.Options.Storage == VirtualStorage { + buf.WriteByte(' ') + buf.WriteString(keywordStrings[VIRTUAL]) + } else if ct.Options.Storage == StoredStorage { + buf.WriteByte(' ') + buf.WriteString(keywordStrings[STORED]) + } } if ct.Options.Autoincrement { buf.WriteByte(' ') diff --git a/go/vt/sqlparser/constants.go b/go/vt/sqlparser/constants.go index e9f1538b812..9df3faf7a90 100644 --- a/go/vt/sqlparser/constants.go +++ b/go/vt/sqlparser/constants.go @@ -526,7 +526,6 @@ const ( // ColumnStorage constants const ( - UndefinedStorage ColumnStorage = iota - VirtualStorage + VirtualStorage ColumnStorage = iota StoredStorage ) diff --git a/go/vt/sqlparser/keywords.go b/go/vt/sqlparser/keywords.go index 4daf28d2980..1ee41941c22 100644 --- a/go/vt/sqlparser/keywords.go +++ b/go/vt/sqlparser/keywords.go @@ -1,3 +1,19 @@ +/* +Copyright 2021 The Vitess Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + package sqlparser import ( @@ -426,7 +442,7 @@ var keywords = []keyword{ {"stats_sample_pages", STATS_SAMPLE_PAGES}, {"status", STATUS}, {"storage", STORAGE}, - {"stored", UNUSED}, + {"stored", STORED}, {"straight_join", STRAIGHT_JOIN}, {"stream", STREAM}, {"system", UNUSED}, @@ -481,7 +497,7 @@ var keywords = []keyword{ {"varcharacter", UNUSED}, {"varying", UNUSED}, {"vgtid_executed", VGTID_EXECUTED}, - {"virtual", UNUSED}, + {"virtual", VIRTUAL}, {"vindex", VINDEX}, {"vindexes", VINDEXES}, {"view", VIEW}, diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index b21940e9787..68b87d9eca9 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -2959,6 +2959,16 @@ func TestCreateTable(t *testing.T) { first_name varchar(10), last_name varchar(10), full_name varchar(255) as (concat(first_name, ' ', last_name)) +)`, output: `create table t1 ( + first_name varchar(10), + last_name varchar(10), + full_name varchar(255) as (concat(first_name, ' ', last_name)) virtual +)`, + }, { + input: `create table t1 (id int, gnrtd int as (id+2) virtual)`, + output: `create table t1 ( + id int, + gnrtd int as (id + 2) virtual )`, }, { input: `create table t1 (first_name varchar(10), last_name varchar(10), @@ -2966,7 +2976,7 @@ func TestCreateTable(t *testing.T) { output: `create table t1 ( first_name varchar(10), last_name varchar(10), - full_name varchar(255) as (concat(first_name, ' ', last_name)) + full_name varchar(255) as (concat(first_name, ' ', last_name)) virtual )`, }, } From ffcd06ff7917573c0544202c87c3ca2e27e558d4 Mon Sep 17 00:00:00 2001 From: Harshit Gangal Date: Thu, 13 May 2021 19:58:25 +0530 Subject: [PATCH 40/63] on beginExecute failure check for retryRequest than not trying if transaction id is non-zero Signed-off-by: Harshit Gangal --- .../endtoend/tabletgateway/buffer/buffer_test.go | 15 +++++++++++---- go/vt/vtgate/scatter_conn.go | 5 ----- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/go/test/endtoend/tabletgateway/buffer/buffer_test.go b/go/test/endtoend/tabletgateway/buffer/buffer_test.go index 46a8b8d7f53..694a3f400c0 100644 --- a/go/test/endtoend/tabletgateway/buffer/buffer_test.go +++ b/go/test/endtoend/tabletgateway/buffer/buffer_test.go @@ -88,6 +88,7 @@ type threadParams struct { i int // commitErrors int executeFunction func(c *threadParams, conn *mysql.Conn) error // Implement the method for read/update. + typ string reservedConn bool } @@ -109,7 +110,7 @@ func (c *threadParams) threadRun() { err = c.executeFunction(c, conn) if err != nil { c.errors++ - log.Errorf("error executing function %v: %v", c.executeFunction, err) + log.Errorf("error executing function %s: %v", c.typ, err) } c.rpcs++ // If notifications are requested, check if we already executed the @@ -158,30 +159,34 @@ func updateExecute(c *threadParams, conn *mysql.Conn) error { time.Sleep(time.Duration(rand.Int31n(1000)) * time.Millisecond) if err == nil { - log.Infof("update attempt #%d affected %v rows", attempt, result.RowsAffected) + log.Errorf("update attempt #%d affected %v rows", attempt, result.RowsAffected) _, err = conn.ExecuteFetch("commit", 1000, true) if err != nil { + log.Errorf("UPDATE #%d failed during COMMIT, err: %v", attempt, err) _, errRollback := conn.ExecuteFetch("rollback", 1000, true) if errRollback != nil { log.Errorf("Error in rollback #%d: %v", attempt, errRollback) } c.commitErrors++ if c.commitErrors > 1 { + log.Errorf("More Commit Errors: %d", c.commitErrors) return err } - log.Errorf("UPDATE %d failed during COMMIT. This is okay once because we do not support buffering it. err: %v", attempt, err) + log.Error("This is okay once because we do not support buffering it.") } } if err != nil { + log.Errorf("UPDATE #%d failed with err: %v", attempt, err) _, errRollback := conn.ExecuteFetch("rollback", 1000, true) if errRollback != nil { log.Errorf("Error in rollback #%d: %v", attempt, errRollback) } c.commitErrors++ if c.commitErrors > 1 { + log.Errorf("More Rollback Errors: %d", c.commitErrors) return err } - log.Errorf("UPDATE %d failed during ROLLBACK with err: %v.This is okay once because we do not support buffering it.", attempt, err) + log.Error("This is okay once because we do not support buffering it.") } return nil } @@ -271,6 +276,7 @@ func testBufferBase(t *testing.T, isExternalParent bool, useReservedConn bool) { //Start both threads. readThreadInstance := &threadParams{ + typ: "read", executeFunction: readExecute, waitForNotification: make(chan bool), reservedConn: useReservedConn, @@ -279,6 +285,7 @@ func testBufferBase(t *testing.T, isExternalParent bool, useReservedConn bool) { go readThreadInstance.threadRun() updateThreadInstance := &threadParams{ i: 1, + typ: "write", executeFunction: updateExecute, waitForNotification: make(chan bool), reservedConn: useReservedConn, diff --git a/go/vt/vtgate/scatter_conn.go b/go/vt/vtgate/scatter_conn.go index dd7bea88965..c6e3f766ddf 100644 --- a/go/vt/vtgate/scatter_conn.go +++ b/go/vt/vtgate/scatter_conn.go @@ -249,11 +249,6 @@ func (stc *ScatterConn) ExecuteMultiShard( case begin: innerqr, transactionID, alias, err = qs.BeginExecute(ctx, rs.Target, session.Savepoints, queries[i].Sql, queries[i].BindVariables, reservedID, opts) if err != nil { - if transactionID != 0 { - // if we had an open transaction, we can't repair anything and have to exit here. - // we still keep the transaction open - an error doesn't immediately close the transaction - break - } retryRequest(func() { // we seem to have lost our connection. it was a reserved connection, let's try to recreate it info.actionNeeded = reserveBegin From b82be4f61d7d11a295fb1a9878a53120890858b7 Mon Sep 17 00:00:00 2001 From: Florent Poinsard Date: Thu, 13 May 2021 17:04:49 +0200 Subject: [PATCH 41/63] Refactored sql.y with new keys rule and added support for null, unique, comment Signed-off-by: Florent Poinsard --- go/vt/sqlparser/ast_format.go | 9 +- go/vt/sqlparser/ast_format_fast.go | 13 +- go/vt/sqlparser/parse_test.go | 44 + go/vt/sqlparser/sql.go | 7795 ++++++++++++++-------------- go/vt/sqlparser/sql.y | 61 +- 5 files changed, 4027 insertions(+), 3895 deletions(-) diff --git a/go/vt/sqlparser/ast_format.go b/go/vt/sqlparser/ast_format.go index 03afcd51b78..b6e3a549d02 100644 --- a/go/vt/sqlparser/ast_format.go +++ b/go/vt/sqlparser/ast_format.go @@ -456,7 +456,7 @@ func (ct *ColumnType) Format(buf *TrackedBuffer) { if ct.Collate != "" { buf.astPrintf(ct, " %s %s", keywordStrings[COLLATE], ct.Collate) } - if ct.Options.Null != nil { + if ct.Options.Null != nil && ct.Options.As == nil { if *ct.Options.Null { buf.astPrintf(ct, " %s", keywordStrings[NULL]) } else { @@ -477,6 +477,13 @@ func (ct *ColumnType) Format(buf *TrackedBuffer) { } else if ct.Options.Storage == StoredStorage { buf.astPrintf(ct, " %s", keywordStrings[STORED]) } + if ct.Options.Null != nil { + if *ct.Options.Null { + buf.astPrintf(ct, " %s", keywordStrings[NULL]) + } else { + buf.astPrintf(ct, " %s %s", keywordStrings[NOT], keywordStrings[NULL]) + } + } } if ct.Options.Autoincrement { buf.astPrintf(ct, " %s", keywordStrings[AUTO_INCREMENT]) diff --git a/go/vt/sqlparser/ast_format_fast.go b/go/vt/sqlparser/ast_format_fast.go index 144b238fb46..b8040f83cc0 100644 --- a/go/vt/sqlparser/ast_format_fast.go +++ b/go/vt/sqlparser/ast_format_fast.go @@ -653,7 +653,7 @@ func (ct *ColumnType) formatFast(buf *TrackedBuffer) { buf.WriteByte(' ') buf.WriteString(ct.Collate) } - if ct.Options.Null != nil { + if ct.Options.Null != nil && ct.Options.As == nil { if *ct.Options.Null { buf.WriteByte(' ') buf.WriteString(keywordStrings[NULL]) @@ -692,6 +692,17 @@ func (ct *ColumnType) formatFast(buf *TrackedBuffer) { buf.WriteByte(' ') buf.WriteString(keywordStrings[STORED]) } + if ct.Options.Null != nil { + if *ct.Options.Null { + buf.WriteByte(' ') + buf.WriteString(keywordStrings[NULL]) + } else { + buf.WriteByte(' ') + buf.WriteString(keywordStrings[NOT]) + buf.WriteByte(' ') + buf.WriteString(keywordStrings[NULL]) + } + } } if ct.Options.Autoincrement { buf.WriteByte(' ') diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index 68b87d9eca9..c074fc38f1d 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -2977,6 +2977,50 @@ func TestCreateTable(t *testing.T) { first_name varchar(10), last_name varchar(10), full_name varchar(255) as (concat(first_name, ' ', last_name)) virtual +)`, + }, { + input: `create table t1 (first_name varchar(10), last_name varchar(10), + full_name varchar(255) generated always as (concat(first_name, ' ', last_name)) not null )`, + output: `create table t1 ( + first_name varchar(10), + last_name varchar(10), + full_name varchar(255) as (concat(first_name, ' ', last_name)) virtual not null +)`, + }, { + input: `create table t1 (first_name varchar(10), full_name varchar(255) as (concat(first_name, ' ', last_name)) null)`, + output: `create table t1 ( + first_name varchar(10), + full_name varchar(255) as (concat(first_name, ' ', last_name)) virtual null +)`, + }, { + input: `create table t1 (first_name varchar(10), full_name varchar(255) as (concat(first_name, ' ', last_name)) unique)`, + output: `create table t1 ( + first_name varchar(10), + full_name varchar(255) as (concat(first_name, ' ', last_name)) virtual unique +)`, + }, { + input: `create table t1 (first_name varchar(10), full_name varchar(255) as (concat(first_name, ' ', last_name)) unique key)`, + output: `create table t1 ( + first_name varchar(10), + full_name varchar(255) as (concat(first_name, ' ', last_name)) virtual unique key +)`, + }, { + input: `create table t1 (first_name varchar(10), full_name varchar(255) as (concat(first_name, ' ', last_name)) key)`, + output: `create table t1 ( + first_name varchar(10), + full_name varchar(255) as (concat(first_name, ' ', last_name)) virtual key +)`, + }, { + input: `create table t1 (first_name varchar(10), full_name varchar(255) as (concat(first_name, ' ', last_name)) primary key)`, + output: `create table t1 ( + first_name varchar(10), + full_name varchar(255) as (concat(first_name, ' ', last_name)) virtual primary key +)`, + }, { + input: `create table t1 (first_name varchar(10), full_name varchar(255) as (concat(first_name, ' ', last_name)) comment 'hello world')`, + output: `create table t1 ( + first_name varchar(10), + full_name varchar(255) as (concat(first_name, ' ', last_name)) virtual comment 'hello world' )`, }, } diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index ebab8386954..6b462f82584 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -1007,700 +1007,604 @@ var yyExca = [...]int{ 147, 118, 263, 118, 318, 118, - -2, 333, + -2, 338, -1, 53, - 34, 481, - 169, 481, - 181, 481, - 214, 495, - 215, 495, - -2, 483, + 34, 486, + 169, 486, + 181, 486, + 214, 500, + 215, 500, + -2, 488, -1, 58, - 171, 505, - -2, 503, + 171, 510, + -2, 508, -1, 84, - 58, 573, - -2, 581, + 58, 578, + -2, 586, -1, 97, - 168, 943, + 168, 948, -2, 91, -1, 99, 1, 113, 480, 113, -2, 118, -1, 109, - 174, 238, - 175, 238, - -2, 327, + 174, 243, + 175, 243, + -2, 332, -1, 128, 147, 118, 263, 118, 318, 118, - -2, 342, + -2, 347, -1, 564, - 154, 964, - -2, 960, + 154, 969, + -2, 965, -1, 565, - 154, 965, - -2, 961, + 154, 970, + -2, 966, -1, 584, - 58, 574, - -2, 586, + 58, 579, + -2, 591, -1, 585, - 58, 575, - -2, 587, + 58, 580, + -2, 592, -1, 606, - 122, 1311, + 122, 1316, -2, 84, -1, 607, - 122, 1192, + 122, 1197, -2, 85, -1, 613, - 122, 1243, - -2, 937, + 122, 1248, + -2, 942, -1, 752, - 122, 1129, - -2, 934, + 122, 1134, + -2, 939, -1, 788, 180, 38, 185, 38, - -2, 249, + -2, 254, -1, 865, - 1, 380, - 480, 380, + 1, 385, + 480, 385, -2, 118, -1, 1106, - 1, 276, - 480, 276, + 1, 281, + 480, 281, -2, 118, -1, 1109, 23, 137, -2, 139, -1, 1182, - 174, 238, - 175, 238, - -2, 327, + 174, 243, + 175, 243, + -2, 332, -1, 1191, 180, 39, 185, 39, - -2, 250, + -2, 255, -1, 1399, - 154, 969, - -2, 963, + 154, 974, + -2, 968, -1, 1492, 76, 66, 84, 66, -2, 70, -1, 1513, - 1, 277, - 480, 277, + 1, 282, + 480, 282, -2, 118, - -1, 1940, - 5, 830, - 18, 830, - 20, 830, - 32, 830, - 85, 830, - -2, 613, - -1, 2168, - 48, 905, - -2, 899, + -1, 1941, + 5, 835, + 18, 835, + 20, 835, + 32, 835, + 85, 835, + -2, 618, + -1, 2169, + 48, 910, + -2, 904, } const yyPrivate = 57344 -const yyLast = 28495 +const yyLast = 28482 var yyAct = [...]int{ - 564, 2266, 2257, 1998, 2092, 2212, 2169, 1731, 1817, 2146, - 1698, 2117, 83, 3, 1920, 1580, 536, 2196, 2089, 522, - 2225, 1436, 1921, 1061, 577, 1732, 1510, 1054, 1007, 1917, - 1545, 925, 1163, 1860, 1821, 1550, 505, 1797, 1565, 818, - 1718, 1932, 1798, 1385, 507, 1799, 755, 502, 137, 165, - 1489, 1393, 165, 1879, 470, 165, 1658, 81, 876, 1297, - 486, 1578, 165, 123, 1189, 611, 1564, 1098, 1088, 905, - 165, 1552, 1791, 783, 1091, 1611, 1471, 1478, 586, 1064, - 1059, 1438, 1084, 1419, 1046, 571, 509, 1207, 1362, 1081, - 33, 943, 486, 1294, 498, 486, 165, 486, 759, 789, - 1082, 762, 1562, 1280, 1454, 784, 785, 763, 1097, 1541, - 796, 1095, 786, 1071, 1494, 79, 1302, 923, 140, 100, - 101, 1531, 861, 608, 1196, 1530, 1020, 8, 7, 6, - 1158, 1840, 1839, 1023, 78, 1609, 1266, 1867, 493, 1181, - 106, 107, 1868, 167, 168, 169, 1433, 1434, 1351, 2119, - 1350, 1349, 1348, 1347, 1346, 496, 1339, 497, 2239, 1696, - 2165, 1967, 766, 2068, 102, 820, 593, 597, 756, 2142, - 572, 771, 2141, 2087, 822, 445, 2088, 823, 834, 835, - 944, 838, 839, 840, 841, 821, 108, 844, 845, 846, - 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, - 857, 858, 494, 605, 2265, 2222, 1648, 2260, 80, 2191, - 1396, 2253, 944, 612, 2093, 84, 1597, 2221, 102, 777, - 776, 800, 2190, 799, 778, 2155, 969, 968, 978, 979, - 971, 972, 973, 974, 975, 976, 977, 970, 1896, 2031, - 980, 1172, 824, 825, 826, 1847, 954, 831, 1557, 1846, - 772, 1697, 86, 87, 88, 89, 90, 91, 161, 1099, - 97, 1100, 836, 162, 895, 912, 440, 914, 1435, 1555, - 1495, 1946, 549, 1866, 555, 556, 553, 554, 954, 552, - 551, 550, 102, 103, 1646, 125, 570, 1504, 35, 557, - 558, 72, 39, 40, 837, 1762, 145, 775, 1761, 870, - 871, 1763, 1947, 1948, 911, 913, 775, 779, 767, 1505, - 1506, 474, 921, 770, 568, 567, 769, 768, 896, 167, - 168, 169, 889, 1340, 1341, 1342, 1781, 135, 883, 1524, - 900, 901, 124, 884, 860, 883, 950, 2193, 2022, 942, - 884, 882, 2020, 881, 2000, 484, 864, 1338, 482, 488, - 142, 1554, 143, 1256, 773, 1286, 1050, 112, 113, 134, - 133, 160, 1822, 773, 1579, 71, 473, 1994, 950, 1622, - 1620, 1621, 1843, 1617, 1624, 1995, 1625, 1612, 1626, 918, - 2259, 1281, 898, 899, 904, 2240, 866, 1855, 1627, 843, - 842, 2002, 909, 1614, 897, 1257, 910, 1258, 890, 2138, - 1616, 2082, 1581, 1472, 807, 805, 915, 816, 780, 920, - 474, 129, 110, 136, 117, 109, 902, 130, 131, 815, - 2001, 814, 146, 474, 813, 812, 903, 1618, 908, 811, - 810, 809, 151, 118, 775, 859, 1175, 1966, 804, 817, - 165, 1615, 165, 2139, 1495, 165, 2156, 121, 119, 114, - 115, 116, 120, 1859, 760, 2272, 2270, 111, 760, 792, - 2251, 774, 758, 916, 760, 473, 122, 1195, 1194, 1974, - 774, 486, 486, 486, 791, 1295, 1563, 599, 473, 949, - 946, 947, 948, 953, 955, 952, 798, 951, 1856, 486, - 486, 1603, 893, 1291, 945, 1845, 474, 1287, 863, 808, - 806, 2189, 930, 936, 917, 879, 827, 885, 886, 887, - 888, 949, 946, 947, 948, 953, 955, 952, 833, 951, - 1842, 1905, 1699, 1701, 798, 1556, 945, 798, 922, 2176, - 1904, 1903, 1170, 1169, 1168, 1880, 919, 2051, 138, 1647, - 1832, 1292, 1166, 1862, 444, 439, 1776, 1771, 1861, 992, - 993, 473, 1862, 2194, 1945, 1723, 2213, 1861, 994, 995, - 996, 997, 998, 999, 1000, 1001, 1002, 1003, 165, 1854, - 99, 1285, 1853, 1666, 1268, 1267, 1269, 1270, 1271, 1882, - 1599, 1589, 1500, 862, 798, 1075, 1052, 1005, 874, 927, - 928, 990, 1772, 1677, 132, 1051, 486, 880, 774, 165, - 1674, 165, 165, 869, 486, 798, 126, 1511, 2268, 127, - 486, 2269, 872, 2267, 1774, 980, 798, 1769, 939, 937, - 938, 1700, 73, 1758, 1450, 878, 797, 892, 1008, 906, - 1334, 1770, 801, 791, 970, 608, 960, 980, 957, 894, - 1303, 1884, 802, 1888, 2185, 1883, 819, 1881, 1930, 1613, - 1047, 1080, 1886, 1282, 960, 1283, 959, 957, 1284, 1288, - 803, 1885, 94, 1101, 797, 1065, 832, 797, 167, 168, - 169, 1898, 1387, 960, 1887, 1889, 1022, 1025, 1027, 1029, - 1030, 1032, 1034, 1035, 1026, 1028, 940, 1031, 1033, 1420, - 1036, 1777, 1775, 969, 968, 978, 979, 971, 972, 973, - 974, 975, 976, 977, 970, 1044, 1810, 980, 1598, 95, - 139, 144, 141, 147, 148, 149, 150, 152, 153, 154, - 155, 1420, 1596, 1684, 797, 612, 156, 157, 158, 159, - 1388, 791, 794, 795, 865, 760, 992, 993, 1591, 788, - 792, 1594, 877, 992, 993, 797, 167, 168, 169, 907, - 1786, 801, 791, 1659, 1870, 165, 797, 807, 787, 1159, - 1304, 802, 1595, 791, 794, 795, 805, 760, 1167, 1591, - 2254, 788, 792, 1950, 969, 968, 978, 979, 971, 972, - 973, 974, 975, 976, 977, 970, 1068, 486, 980, 1191, - 1053, 2206, 2207, 1593, 1063, 598, 2067, 1200, 2255, 71, - 2066, 1204, 1773, 1972, 486, 486, 1795, 486, 1787, 486, - 486, 1365, 486, 486, 486, 486, 486, 486, 1173, 1174, - 973, 974, 975, 976, 977, 970, 1794, 486, 980, 2273, - 1560, 165, 1240, 1187, 1369, 971, 972, 973, 974, 975, - 976, 977, 970, 2249, 1201, 980, 1180, 1253, 1367, 1368, - 1366, 1651, 1652, 1653, 958, 959, 957, 1673, 486, 2245, - 165, 1199, 1900, 958, 959, 957, 1357, 1359, 1360, 1235, - 1236, 1293, 960, 1237, 1276, 165, 1243, 1244, 1275, 581, - 1358, 960, 1249, 1250, 1261, 600, 601, 2246, 1165, 1260, - 1096, 165, 1209, 1273, 1210, 1263, 1212, 1214, 165, 2274, - 1218, 1220, 1222, 1224, 1226, 1197, 1197, 165, 165, 165, + 564, 2264, 2093, 1999, 2217, 2273, 1731, 2147, 1818, 1775, + 2170, 2118, 2090, 536, 83, 3, 2197, 1698, 2230, 1921, + 1922, 1007, 577, 522, 1918, 1545, 1580, 1054, 1798, 1732, + 1436, 1163, 1530, 1861, 925, 1822, 1565, 505, 1550, 755, + 1718, 1799, 1489, 1061, 1933, 1800, 1880, 1578, 1658, 165, + 137, 1393, 165, 1088, 470, 165, 611, 905, 1189, 1297, + 486, 123, 165, 1510, 1611, 1792, 1564, 1207, 876, 1385, + 165, 1552, 1091, 783, 1471, 1098, 1081, 81, 1478, 586, + 1059, 1438, 1064, 818, 1419, 1046, 33, 498, 1084, 571, + 509, 1082, 486, 943, 1196, 486, 165, 486, 789, 1362, + 1294, 1562, 759, 507, 1280, 762, 784, 1454, 1541, 763, + 796, 785, 1494, 1097, 79, 1095, 1071, 923, 786, 1302, + 100, 861, 106, 8, 493, 1020, 608, 7, 6, 78, + 1158, 1841, 1840, 1609, 1266, 1868, 1869, 2120, 1023, 1351, + 1181, 107, 1350, 167, 168, 169, 1349, 944, 1433, 1434, + 1348, 140, 101, 1347, 1531, 1346, 496, 1339, 497, 2246, + 1696, 2166, 766, 1968, 771, 2069, 572, 2143, 756, 593, + 597, 2142, 2088, 822, 821, 2089, 2272, 2227, 2267, 823, + 80, 2192, 537, 34, 2260, 1557, 2094, 108, 494, 1648, + 1396, 1597, 944, 2226, 1897, 2191, 2032, 102, 1172, 1948, + 1949, 1697, 167, 168, 169, 1947, 1555, 605, 445, 820, + 1848, 1867, 1762, 954, 1847, 1761, 1646, 34, 1763, 1504, + 777, 800, 834, 835, 921, 838, 839, 840, 841, 799, + 474, 844, 845, 846, 847, 848, 849, 850, 851, 852, + 853, 854, 855, 856, 857, 858, 612, 831, 824, 825, + 826, 102, 776, 1495, 1505, 1506, 895, 778, 954, 1099, + 84, 1100, 573, 568, 462, 567, 167, 168, 169, 1782, + 1435, 2001, 1524, 461, 549, 883, 555, 556, 553, 554, + 884, 552, 551, 550, 459, 473, 837, 779, 1554, 900, + 901, 557, 558, 896, 889, 836, 2194, 86, 87, 88, + 89, 90, 91, 950, 864, 97, 942, 883, 162, 2023, + 772, 440, 884, 35, 2021, 102, 72, 39, 40, 484, + 882, 920, 881, 456, 1340, 1341, 1342, 860, 1338, 488, + 482, 570, 468, 1286, 2156, 969, 968, 978, 979, 971, + 972, 973, 974, 975, 976, 977, 970, 2002, 950, 980, + 1622, 1620, 1621, 1256, 1844, 1823, 1050, 1579, 1612, 775, + 2266, 870, 871, 1995, 1281, 918, 775, 904, 767, 897, + 890, 1996, 1617, 770, 866, 902, 769, 768, 1624, 474, + 1625, 1627, 1626, 1856, 2083, 903, 2247, 898, 899, 843, + 71, 2003, 775, 859, 842, 1257, 1614, 1258, 912, 2139, + 914, 1581, 474, 474, 1472, 807, 798, 446, 816, 448, + 463, 815, 476, 805, 475, 452, 773, 450, 454, 464, + 455, 814, 449, 773, 460, 1881, 1618, 451, 465, 466, + 480, 479, 467, 780, 473, 458, 477, 911, 913, 1967, + 165, 1616, 165, 474, 813, 165, 949, 946, 947, 948, + 953, 955, 952, 812, 951, 811, 863, 473, 473, 810, + 1846, 945, 1556, 916, 809, 804, 1175, 817, 2277, 1883, + 2140, 486, 486, 486, 2190, 1287, 760, 2279, 1495, 760, + 2258, 792, 1615, 758, 760, 791, 798, 1860, 1295, 486, + 486, 949, 946, 947, 948, 953, 955, 952, 473, 951, + 808, 893, 1563, 595, 917, 936, 945, 1857, 806, 1195, + 1194, 599, 2195, 1778, 1771, 879, 1603, 885, 886, 887, + 888, 833, 1647, 774, 919, 909, 1291, 798, 2218, 910, + 774, 1885, 930, 1889, 827, 1884, 1975, 1882, 922, 915, + 1843, 862, 1887, 798, 1906, 1905, 797, 1699, 1701, 1904, + 1170, 1886, 801, 791, 1169, 2157, 774, 1168, 1833, 1772, + 478, 908, 802, 1292, 1888, 1890, 1166, 444, 165, 499, + 439, 2177, 1268, 1267, 1269, 1270, 1271, 1863, 471, 2052, + 803, 1774, 1862, 1946, 1769, 880, 1863, 99, 1052, 927, + 928, 1862, 1599, 472, 1855, 990, 486, 1854, 1770, 165, + 1723, 165, 165, 869, 486, 872, 1677, 798, 992, 993, + 486, 1511, 1666, 1589, 939, 1051, 1500, 1674, 937, 938, + 2275, 1758, 1075, 2276, 1008, 2274, 797, 1005, 1285, 874, + 798, 1450, 980, 791, 794, 795, 892, 760, 608, 1334, + 960, 788, 792, 1080, 906, 1303, 1700, 73, 894, 970, + 2186, 819, 980, 924, 924, 924, 1047, 1931, 1777, 1776, + 787, 1613, 94, 878, 1288, 1101, 1065, 797, 957, 832, + 958, 959, 957, 34, 940, 1022, 1025, 1027, 1029, 1030, + 1032, 1034, 1035, 797, 960, 1420, 989, 991, 960, 1026, + 1028, 1044, 1031, 1033, 1899, 1036, 1811, 969, 968, 978, + 979, 971, 972, 973, 974, 975, 976, 977, 970, 95, + 1282, 980, 1283, 2239, 1420, 1284, 1684, 1004, 1596, 1594, + 1598, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 807, + 1019, 1021, 1024, 1024, 1024, 1021, 1024, 1024, 1021, 1024, + 1037, 1038, 1039, 1040, 1041, 1042, 1043, 797, 805, 992, + 993, 865, 1049, 801, 791, 165, 34, 1659, 612, 1159, + 992, 993, 1951, 802, 907, 1304, 1455, 1456, 1167, 1773, + 797, 167, 168, 169, 1063, 1387, 1591, 791, 794, 795, + 877, 760, 1591, 1086, 71, 788, 792, 486, 1778, 1191, + 973, 974, 975, 976, 977, 970, 1365, 1200, 980, 1068, + 1595, 1204, 2068, 1275, 486, 486, 1593, 486, 2261, 486, + 486, 2067, 486, 486, 486, 486, 486, 486, 971, 972, + 973, 974, 975, 976, 977, 970, 1187, 486, 980, 959, + 957, 165, 1240, 1388, 1369, 1053, 2262, 167, 168, 169, + 1273, 1787, 1998, 1973, 1180, 1796, 960, 1253, 1367, 1368, + 1366, 2252, 958, 959, 957, 1199, 2209, 1673, 486, 2207, + 165, 1795, 1173, 1174, 1274, 2280, 1237, 1096, 2211, 2212, + 960, 1293, 1209, 2208, 1210, 165, 1212, 1214, 1560, 2253, + 1218, 1220, 1222, 1224, 1226, 598, 1276, 1165, 1263, 1261, + 1198, 165, 1651, 1652, 1653, 1260, 1259, 1251, 165, 1788, + 1245, 1272, 1242, 1201, 1178, 1197, 1197, 165, 165, 165, 165, 165, 165, 165, 165, 165, 486, 486, 486, 1190, - 1198, 1177, 1178, 1176, 1259, 1997, 1251, 969, 968, 978, - 979, 971, 972, 973, 974, 975, 976, 977, 970, 1274, - 1299, 980, 1245, 165, 2132, 958, 959, 957, 1307, 1238, - 2248, 1305, 1306, 1242, 1272, 1311, 1262, 1313, 1314, 1315, - 1316, 1907, 1241, 960, 1320, 1310, 1296, 167, 168, 169, - 1216, 1765, 1317, 1318, 1319, 167, 168, 169, 1335, 1573, - 1363, 1386, 603, 2247, 102, 777, 776, 1171, 2233, 2231, - 1389, 2108, 969, 968, 978, 979, 971, 972, 973, 974, - 975, 976, 977, 970, 486, 2064, 980, 2039, 1309, 1908, - 1361, 1345, 1953, 1370, 1371, 1372, 1373, 1374, 1375, 1376, - 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1909, 1390, - 1391, 1804, 1403, 1330, 1331, 1332, 1792, 1397, 486, 486, - 167, 168, 169, 1642, 1455, 1456, 1607, 1606, 1672, 165, - 1364, 167, 168, 169, 1444, 1571, 1671, 1300, 1408, 1411, - 2034, 1264, 1929, 486, 1421, 1398, 581, 1252, 1452, 1248, - 165, 1399, 1423, 486, 1247, 1246, 1445, 165, 1443, 165, - 1981, 2250, 1008, 958, 959, 957, 1457, 165, 165, 1981, - 2219, 2136, 1427, 1428, 486, 1981, 2183, 486, 2135, 1490, - 2091, 960, 167, 168, 169, 1824, 1254, 1397, 486, 969, + 1243, 1244, 1177, 1176, 1908, 581, 1249, 1250, 1235, 1236, + 1241, 1299, 1452, 1777, 1776, 2281, 958, 959, 957, 1305, + 1306, 2137, 1216, 165, 1901, 958, 959, 957, 1672, 1262, + 1357, 1359, 1360, 1310, 960, 2256, 1671, 2255, 1307, 603, + 1317, 1318, 1319, 960, 1358, 1311, 1797, 1313, 1314, 1315, + 1316, 2136, 1909, 1296, 1320, 600, 601, 1363, 2254, 2240, + 2238, 1386, 1238, 958, 959, 957, 777, 2236, 1335, 2109, + 1389, 2065, 958, 959, 957, 2040, 1345, 1451, 167, 168, + 169, 960, 1765, 2092, 486, 961, 167, 168, 169, 1954, + 960, 1309, 167, 168, 169, 1910, 1573, 102, 776, 167, + 168, 169, 1805, 1571, 958, 959, 957, 1793, 1642, 1607, + 1390, 1391, 1171, 1330, 1331, 1332, 1606, 1444, 486, 486, + 1397, 499, 960, 167, 168, 169, 1300, 1254, 1264, 165, + 1018, 1252, 1403, 1248, 1364, 525, 524, 527, 528, 529, + 530, 1247, 1399, 486, 526, 1398, 531, 1246, 1982, 2257, + 165, 1443, 80, 486, 1445, 1982, 2224, 165, 1008, 165, + 1982, 2184, 1057, 1060, 1457, 1982, 2178, 165, 165, 1982, + 581, 1719, 1427, 1428, 486, 2086, 581, 486, 924, 924, + 924, 1490, 1982, 2084, 1591, 581, 2050, 581, 486, 1719, + 1397, 1965, 1964, 1961, 1962, 1961, 1960, 1408, 1411, 1463, + 581, 1400, 1825, 1421, 1495, 1842, 1162, 1827, 608, 1820, + 1821, 608, 1399, 1475, 581, 1469, 35, 956, 581, 1496, + 2070, 1493, 1162, 1161, 82, 1465, 1525, 1515, 1526, 1527, + 1528, 1529, 581, 1496, 1532, 1533, 1534, 1514, 1107, 1106, + 1808, 1726, 1475, 486, 1537, 1538, 1539, 1540, 1919, 1566, + 1567, 1568, 35, 1519, 1570, 1572, 1752, 1930, 1592, 1474, + 1930, 1518, 1464, 1547, 1495, 1930, 1727, 486, 2047, 1467, + 2071, 2072, 2073, 486, 1200, 2185, 956, 1200, 1553, 1200, + 1404, 1405, 1498, 1497, 1410, 1413, 1414, 1590, 1502, 1501, + 35, 1499, 1463, 71, 1517, 1982, 1963, 1497, 1475, 1516, + 1503, 1689, 2125, 1688, 574, 1495, 1577, 1463, 1591, 1574, + 1426, 1231, 1475, 1429, 1430, 1591, 1453, 486, 1431, 1386, + 1343, 1290, 1093, 782, 1386, 1386, 781, 2216, 612, 71, + 71, 612, 1584, 1802, 1463, 1587, 2149, 1588, 2091, 2058, + 1164, 1548, 1546, 1543, 1544, 1801, 1997, 581, 1957, 1491, + 1561, 1559, 1558, 1569, 1828, 1542, 1600, 1536, 1535, 165, + 1278, 1232, 1233, 1234, 2000, 1601, 165, 71, 1192, 1582, + 1586, 165, 165, 1548, 565, 165, 800, 165, 1583, 1188, + 1160, 71, 96, 165, 799, 2074, 1197, 864, 1602, 2269, + 165, 2150, 1802, 1604, 1605, 969, 968, 978, 979, 971, + 972, 973, 974, 975, 976, 977, 970, 1934, 1935, 980, + 1228, 1557, 1610, 2265, 1980, 1979, 1978, 165, 486, 1937, + 1919, 1812, 1631, 166, 1336, 1743, 166, 1940, 1939, 166, + 1744, 1740, 2075, 2076, 487, 1745, 166, 1484, 1485, 1480, + 1483, 1484, 1485, 1481, 166, 1482, 1486, 1741, 1739, 1934, + 1935, 2249, 1742, 2225, 1637, 1638, 1911, 1229, 1230, 1640, + 1363, 1708, 1301, 1062, 2051, 1985, 487, 1717, 1641, 487, + 166, 487, 964, 1630, 967, 1716, 2133, 2251, 2171, 2173, + 981, 982, 983, 984, 985, 986, 987, 2174, 965, 966, + 963, 969, 968, 978, 979, 971, 972, 973, 974, 975, + 976, 977, 970, 2229, 2231, 980, 1668, 1480, 1483, 1484, + 1485, 1481, 165, 1482, 1486, 2199, 2202, 1645, 2168, 1289, + 165, 566, 1780, 2198, 969, 968, 978, 979, 971, 972, + 973, 974, 975, 976, 977, 970, 1706, 1364, 980, 534, + 1352, 1353, 1354, 1355, 1707, 165, 1654, 1522, 1806, 1416, + 829, 828, 2010, 1705, 1801, 1866, 165, 165, 165, 165, + 165, 591, 587, 929, 1417, 1712, 1728, 572, 165, 1835, + 1667, 1834, 165, 1055, 103, 165, 165, 588, 2123, 165, + 165, 165, 2045, 1683, 1956, 1056, 1750, 1721, 1955, 1585, + 1206, 1724, 1764, 1205, 1193, 1406, 1407, 1695, 1448, 485, + 1047, 1703, 1066, 1067, 590, 1976, 589, 1455, 1456, 1634, + 2180, 2144, 1786, 1779, 1711, 1488, 1715, 1753, 575, 576, + 1623, 1755, 1650, 578, 1714, 1722, 1720, 2237, 2235, 2234, + 2203, 610, 1734, 499, 757, 1737, 764, 1299, 486, 1783, + 1784, 2201, 2044, 165, 1767, 1746, 1981, 1751, 1735, 1736, + 165, 1738, 1756, 1575, 579, 82, 486, 2043, 1733, 1759, + 1665, 1914, 486, 573, 1719, 1663, 1664, 1200, 1553, 1768, + 2271, 2270, 486, 1678, 1785, 1675, 1789, 1790, 1791, 1076, + 1069, 2271, 1794, 2175, 1839, 1509, 1681, 1953, 1449, 574, + 80, 85, 77, 1, 2206, 165, 165, 165, 165, 165, + 1702, 457, 1432, 1803, 1830, 1045, 1809, 591, 587, 469, + 2263, 165, 165, 1813, 1814, 1815, 1180, 1837, 1804, 1265, + 1255, 2095, 2146, 588, 1988, 1829, 1399, 1086, 1836, 1398, + 1551, 790, 128, 1512, 1729, 1730, 1513, 2220, 1086, 1086, + 1086, 1086, 1086, 93, 1549, 753, 1838, 486, 584, 585, + 590, 92, 589, 1386, 1491, 793, 891, 1086, 1576, 2087, + 1781, 1086, 1523, 1824, 1858, 1113, 1111, 1112, 1110, 1115, + 1114, 1109, 1337, 483, 1864, 1487, 1879, 1865, 163, 1102, + 1070, 1877, 830, 486, 1870, 447, 1966, 1333, 1608, 453, + 988, 1878, 1713, 1760, 165, 609, 602, 1876, 1925, 2196, + 1892, 2167, 2169, 2119, 486, 1898, 2172, 2165, 2250, 2228, + 486, 486, 2179, 1920, 166, 1520, 166, 1447, 1058, 166, + 2042, 1923, 1891, 1913, 1682, 1017, 1418, 1917, 1085, 508, + 1442, 1356, 523, 165, 520, 521, 1458, 1725, 1877, 962, + 506, 500, 1077, 1479, 1477, 487, 487, 487, 1476, 1632, + 1907, 1089, 1929, 1936, 1932, 1832, 1083, 1462, 1521, 1845, + 1994, 941, 1938, 487, 487, 583, 495, 765, 1415, 2155, + 1649, 2031, 1942, 582, 1944, 1943, 1945, 61, 1928, 38, + 490, 2245, 932, 592, 32, 31, 30, 1974, 29, 28, + 23, 22, 21, 165, 20, 19, 25, 1950, 18, 17, + 16, 486, 98, 48, 45, 43, 105, 104, 46, 486, + 1733, 42, 867, 27, 165, 26, 15, 1987, 14, 13, + 12, 11, 1970, 10, 165, 1969, 9, 1958, 1959, 5, + 4, 935, 24, 1006, 2, 0, 0, 0, 165, 1989, + 1983, 165, 166, 0, 1553, 0, 1986, 0, 0, 0, + 2011, 0, 1992, 1991, 968, 978, 979, 971, 972, 973, + 974, 975, 976, 977, 970, 1971, 1972, 980, 2006, 1048, + 487, 0, 2005, 166, 0, 166, 166, 0, 487, 0, + 0, 2014, 0, 0, 487, 0, 0, 0, 0, 0, + 1924, 2019, 34, 2016, 2017, 0, 2018, 0, 0, 2020, + 0, 2022, 0, 0, 1685, 0, 0, 1984, 0, 0, + 610, 610, 610, 2008, 2009, 1086, 0, 0, 0, 0, + 0, 442, 2041, 0, 0, 2046, 0, 0, 931, 933, + 0, 489, 0, 0, 0, 1709, 1710, 1060, 0, 569, + 2055, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2035, 0, 0, 2054, 0, 0, 165, 2062, 0, 165, + 165, 165, 486, 486, 2061, 761, 2060, 0, 0, 0, + 2081, 0, 0, 2064, 0, 2066, 0, 0, 0, 0, + 0, 2096, 486, 486, 486, 978, 979, 971, 972, 973, + 974, 975, 976, 977, 970, 0, 0, 980, 2102, 969, 968, 978, 979, 971, 972, 973, 974, 975, 976, 977, - 970, 1807, 1400, 980, 1519, 608, 1981, 2177, 608, 80, - 958, 959, 957, 1451, 1496, 1469, 1981, 581, 2085, 581, - 1464, 1399, 1981, 2083, 1465, 1591, 581, 1525, 960, 1526, - 1527, 1528, 1529, 2046, 1515, 1514, 1493, 1796, 2049, 581, - 958, 959, 957, 486, 1719, 1537, 1538, 1539, 1540, 1566, - 1567, 1568, 1964, 1963, 1570, 1572, 1960, 1961, 960, 1960, - 1959, 1518, 2184, 958, 959, 957, 1467, 486, 1547, 1463, - 581, 1495, 1841, 486, 1200, 1162, 1826, 1200, 1497, 1200, - 1553, 960, 956, 1502, 1498, 1501, 1499, 1590, 82, 581, - 1819, 1820, 1463, 1517, 1516, 612, 1475, 581, 612, 1981, - 1404, 1405, 2211, 35, 1410, 1413, 1414, 525, 524, 527, - 528, 529, 530, 1577, 35, 1475, 526, 486, 531, 1386, - 1962, 1496, 956, 581, 1386, 1386, 1475, 1532, 1533, 1534, - 1426, 1162, 1161, 1429, 1430, 1107, 1106, 1548, 1584, 1726, - 1503, 1587, 1918, 1588, 1543, 1544, 2069, 1752, 1559, 1561, - 1558, 1929, 2033, 2124, 1569, 1495, 1463, 1592, 2028, 165, - 1719, 1689, 1602, 1600, 1727, 35, 165, 1604, 1605, 1548, - 1582, 165, 165, 565, 1583, 165, 800, 165, 799, 1601, - 71, 1474, 1688, 165, 1463, 1497, 1197, 1231, 1591, 1574, - 165, 71, 1801, 1495, 1453, 1431, 2070, 2071, 2072, 1343, - 1586, 969, 968, 978, 979, 971, 972, 973, 974, 975, - 976, 977, 970, 574, 1591, 980, 1290, 165, 486, 1093, - 782, 781, 166, 71, 2148, 166, 595, 1610, 166, 2090, - 864, 1929, 2057, 487, 1475, 166, 1164, 1232, 1233, 1234, - 1939, 1546, 71, 166, 1637, 1638, 2073, 1996, 1956, 1640, - 1480, 1483, 1484, 1485, 1481, 1827, 1482, 1486, 1641, 1542, - 1933, 1934, 1536, 1363, 1535, 487, 1630, 1278, 487, 166, - 487, 969, 968, 978, 979, 971, 972, 973, 974, 975, - 976, 977, 970, 1192, 1188, 980, 1160, 96, 1999, 1800, - 71, 2149, 499, 2074, 2075, 1655, 1656, 1657, 978, 979, - 971, 972, 973, 974, 975, 976, 977, 970, 1668, 1557, - 980, 2262, 165, 2258, 1228, 1645, 1933, 1934, 1979, 1978, - 165, 968, 978, 979, 971, 972, 973, 974, 975, 976, - 977, 970, 1938, 1364, 980, 1654, 1801, 1977, 534, 1936, - 1480, 1483, 1484, 1485, 1481, 165, 1482, 1486, 1918, 1811, - 1743, 1631, 1336, 1705, 1740, 1744, 165, 165, 165, 165, - 165, 1229, 1230, 1739, 1728, 1712, 1667, 2242, 165, 1741, - 2220, 572, 165, 1910, 1742, 165, 165, 591, 587, 165, - 165, 165, 1683, 1745, 1750, 1484, 1485, 1708, 1062, 2050, - 1984, 1724, 1764, 588, 1047, 1721, 1695, 1717, 485, 1733, - 1716, 1703, 2244, 2198, 2170, 2172, 2224, 1706, 2201, 2167, - 2226, 2197, 1785, 2173, 1711, 1707, 1289, 566, 1066, 1067, - 590, 1779, 589, 1720, 1722, 1753, 1522, 1805, 829, 1755, - 610, 828, 1416, 757, 2009, 764, 1800, 1784, 486, 1788, - 1789, 1790, 1767, 165, 1746, 1734, 1299, 1417, 1737, 1751, - 165, 1759, 1055, 929, 1756, 1865, 486, 1735, 1736, 1834, - 1738, 1833, 486, 103, 1056, 2122, 1955, 1200, 1954, 1768, - 1553, 1585, 486, 1206, 1803, 1205, 1193, 2044, 591, 587, - 1455, 1456, 1975, 1448, 1838, 1663, 1664, 1634, 2179, 1793, - 2143, 1778, 1488, 1623, 588, 165, 165, 165, 165, 165, - 1650, 1829, 1715, 1802, 1823, 578, 1681, 575, 576, 1837, - 1714, 165, 165, 1812, 1813, 1814, 1836, 1808, 1180, 584, - 585, 590, 2232, 589, 2230, 2229, 2202, 2200, 2043, 1398, - 1980, 1828, 1782, 1783, 1660, 1399, 1575, 579, 82, 2042, - 1913, 1719, 1835, 2264, 2263, 2264, 1678, 486, 1675, 1076, - 1069, 2174, 1952, 1386, 969, 968, 978, 979, 971, 972, - 973, 974, 975, 976, 977, 970, 1449, 574, 980, 80, - 85, 1877, 77, 1, 2205, 457, 1878, 1432, 1876, 1857, - 1045, 469, 2256, 486, 1265, 1897, 1863, 1871, 1872, 1864, - 1255, 2094, 1869, 2145, 165, 1987, 1890, 1875, 1551, 790, - 128, 1512, 1892, 1893, 486, 1894, 1895, 1891, 1513, 2215, - 486, 486, 93, 166, 1919, 166, 1901, 1902, 166, 753, - 92, 793, 891, 1576, 1922, 2086, 1780, 1523, 1113, 1916, - 1111, 1112, 1110, 165, 1115, 1876, 1114, 1109, 1337, 2027, - 483, 1487, 163, 1102, 487, 487, 487, 1070, 830, 447, - 1965, 1733, 1928, 1333, 1608, 453, 988, 1713, 1760, 1937, - 609, 602, 487, 487, 1924, 2195, 2166, 2168, 2118, 2171, - 1906, 2164, 1941, 2243, 1943, 2223, 1944, 2178, 1520, 1447, - 1058, 2041, 1912, 1942, 1682, 1017, 1973, 1418, 1085, 1957, - 1958, 508, 165, 1442, 1356, 1949, 523, 520, 1927, 1951, - 486, 521, 1458, 1725, 962, 506, 1422, 500, 486, 1077, - 1479, 1477, 1476, 165, 1632, 1089, 1986, 1935, 1931, 1083, - 1970, 1971, 1969, 165, 1968, 1462, 1521, 1988, 961, 1844, - 1993, 941, 583, 495, 765, 1415, 2154, 165, 1649, 2030, - 165, 166, 1985, 582, 61, 1553, 1982, 1983, 38, 2010, - 1991, 1990, 969, 968, 978, 979, 971, 972, 973, 974, - 975, 976, 977, 970, 499, 490, 980, 2238, 932, 487, - 592, 2004, 166, 1018, 166, 166, 2005, 487, 32, 31, - 30, 29, 2013, 487, 28, 2026, 23, 22, 21, 20, - 580, 19, 25, 2015, 2016, 2018, 2017, 18, 2011, 2019, - 17, 2021, 2007, 2008, 16, 1057, 1060, 98, 48, 610, - 610, 610, 969, 968, 978, 979, 971, 972, 973, 974, - 975, 976, 977, 970, 45, 43, 980, 931, 933, 2045, - 105, 104, 2053, 46, 42, 2054, 867, 27, 26, 15, - 14, 13, 12, 11, 10, 2059, 9, 5, 4, 935, - 24, 1006, 2061, 2, 1733, 165, 0, 0, 165, 165, - 165, 486, 486, 2060, 0, 0, 0, 0, 0, 2080, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2095, 486, 486, 486, 2062, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2101, 969, 968, - 978, 979, 971, 972, 973, 974, 975, 976, 977, 970, - 0, 0, 980, 0, 2040, 0, 486, 486, 486, 165, - 0, 2099, 0, 0, 2111, 2113, 2114, 0, 166, 0, - 486, 0, 486, 0, 1073, 2107, 0, 0, 486, 0, - 2115, 2125, 610, 1922, 0, 2127, 2130, 1922, 1103, 2123, - 0, 0, 2121, 2102, 2103, 2104, 2105, 2106, 2129, 0, - 487, 2109, 2110, 0, 2131, 2063, 0, 2065, 0, 0, - 2133, 486, 2134, 0, 486, 2137, 0, 487, 487, 2144, - 487, 2140, 487, 487, 0, 487, 487, 487, 487, 487, - 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 487, 0, 0, 0, 166, 2147, 2163, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2175, - 165, 1922, 2100, 0, 0, 0, 0, 0, 0, 486, - 165, 487, 0, 166, 0, 0, 2182, 2186, 0, 0, - 0, 0, 0, 0, 0, 2116, 0, 0, 166, 0, - 0, 0, 0, 0, 0, 2199, 2192, 486, 0, 0, - 0, 0, 2203, 0, 166, 486, 486, 0, 0, 0, - 0, 166, 2208, 0, 2214, 0, 0, 0, 0, 0, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 487, - 487, 487, 486, 2228, 2234, 2227, 2147, 2216, 0, 1733, - 2237, 0, 0, 2241, 0, 1301, 0, 0, 2209, 0, - 2025, 0, 0, 0, 0, 0, 166, 0, 0, 0, - 0, 0, 0, 0, 0, 757, 2252, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1202, 2261, - 0, 0, 1208, 1208, 0, 1208, 2271, 1208, 1208, 0, - 1217, 1208, 1208, 1208, 1208, 1208, 0, 0, 0, 0, - 0, 0, 0, 1202, 1202, 757, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, - 0, 0, 0, 1352, 1353, 1354, 1355, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1277, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 487, 487, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 166, 969, 968, 978, 979, 971, 972, 973, - 974, 975, 976, 977, 970, 0, 487, 980, 1406, 1407, - 0, 0, 0, 166, 0, 0, 487, 0, 0, 161, - 166, 0, 166, 0, 610, 610, 610, 0, 0, 0, - 166, 166, 0, 0, 0, 0, 0, 487, 0, 0, - 487, 0, 0, 0, 103, 0, 499, 0, 0, 0, - 964, 487, 967, 0, 0, 0, 0, 145, 981, 982, - 983, 984, 985, 986, 987, 0, 965, 966, 963, 969, - 968, 978, 979, 971, 972, 973, 974, 975, 976, 977, - 970, 0, 0, 980, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1509, 0, - 0, 0, 0, 0, 0, 0, 487, 0, 0, 0, - 0, 142, 1392, 143, 610, 0, 0, 0, 0, 0, - 0, 0, 160, 0, 0, 0, 0, 0, 1202, 0, - 487, 0, 0, 0, 0, 0, 487, 535, 0, 167, - 168, 169, 0, 0, 0, 0, 1424, 1425, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1549, 0, 0, - 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1459, 0, 0, 0, 0, 0, 0, 0, 0, - 487, 1073, 0, 146, 610, 103, 164, 0, 0, 443, - 0, 0, 481, 151, 0, 0, 0, 0, 145, 443, - 0, 462, 610, 0, 0, 610, 0, 443, 0, 0, - 461, 0, 0, 0, 0, 0, 757, 0, 0, 0, - 0, 459, 166, 0, 596, 596, 0, 0, 0, 166, - 0, 0, 0, 443, 166, 166, 0, 0, 166, 1766, - 166, 0, 0, 0, 0, 0, 166, 0, 0, 0, - 0, 0, 142, 166, 143, 0, 0, 0, 0, 0, - 456, 0, 0, 160, 0, 0, 0, 0, 0, 468, - 0, 764, 0, 0, 0, 0, 0, 0, 0, 0, - 166, 487, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 757, 0, 0, 0, 138, - 0, 764, 0, 0, 0, 0, 0, 0, 0, 0, - 35, 36, 37, 72, 39, 40, 474, 0, 0, 0, - 0, 0, 0, 0, 146, 0, 0, 0, 0, 0, - 76, 0, 0, 0, 151, 41, 67, 68, 0, 65, - 69, 0, 0, 0, 446, 757, 448, 463, 66, 476, - 0, 475, 452, 0, 450, 454, 464, 455, 0, 449, - 0, 460, 0, 0, 451, 465, 466, 480, 479, 467, - 0, 473, 458, 477, 0, 166, 0, 54, 0, 0, - 0, 0, 0, 166, 0, 0, 0, 71, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, - 0, 0, 0, 0, 0, 0, 0, 1685, 0, 166, + 970, 0, 0, 980, 1733, 0, 0, 486, 486, 486, + 165, 0, 2100, 0, 0, 2112, 2114, 2115, 0, 166, + 2101, 486, 0, 486, 2108, 1073, 0, 0, 0, 486, + 0, 1923, 0, 610, 2126, 1923, 2122, 2131, 2124, 1103, + 2116, 2128, 0, 2117, 0, 0, 0, 2130, 0, 0, + 2030, 487, 0, 2132, 0, 0, 0, 2036, 2037, 2038, + 2138, 0, 486, 0, 0, 486, 0, 0, 487, 487, + 2145, 487, 0, 487, 487, 0, 487, 487, 487, 487, + 487, 487, 0, 2141, 0, 0, 0, 0, 0, 0, + 0, 487, 502, 0, 0, 166, 0, 0, 2134, 2148, + 2135, 0, 0, 0, 2164, 0, 0, 0, 0, 1923, + 0, 165, 0, 0, 0, 2176, 0, 0, 0, 0, + 486, 165, 487, 0, 166, 0, 0, 0, 2187, 2183, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, + 1422, 0, 0, 0, 0, 0, 0, 2193, 486, 0, + 2200, 0, 2204, 0, 0, 166, 486, 486, 1900, 2210, + 0, 0, 166, 2219, 0, 2213, 0, 0, 0, 0, + 0, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 487, 487, 487, 2233, 2232, 0, 0, 486, 2241, 0, + 2148, 2221, 0, 1915, 0, 2244, 0, 0, 2248, 0, + 1924, 0, 34, 0, 1924, 0, 0, 166, 0, 0, + 0, 0, 0, 0, 0, 0, 757, 0, 0, 0, + 0, 2259, 0, 0, 580, 0, 0, 0, 0, 1202, + 0, 0, 0, 1208, 1208, 2268, 1208, 0, 1208, 1208, + 0, 1217, 1208, 1208, 1208, 1208, 1208, 2278, 0, 1733, + 0, 0, 0, 0, 1202, 1202, 757, 0, 0, 0, + 0, 0, 0, 2029, 0, 2034, 0, 0, 487, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1924, 0, + 0, 0, 0, 0, 0, 0, 0, 1277, 0, 0, + 0, 0, 2181, 0, 0, 0, 0, 34, 0, 868, + 0, 873, 487, 487, 875, 0, 0, 0, 0, 0, + 0, 0, 0, 166, 969, 968, 978, 979, 971, 972, + 973, 974, 975, 976, 977, 970, 0, 487, 980, 0, + 0, 0, 0, 34, 166, 0, 0, 487, 0, 0, + 0, 166, 0, 166, 0, 610, 610, 610, 0, 0, + 0, 166, 166, 0, 0, 0, 0, 0, 487, 0, + 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 487, 0, 0, 2033, 969, 968, 978, 979, + 971, 972, 973, 974, 975, 976, 977, 970, 0, 0, + 980, 0, 1871, 0, 0, 0, 0, 0, 499, 0, + 0, 0, 0, 0, 0, 2056, 0, 0, 2057, 0, + 0, 2059, 969, 968, 978, 979, 971, 972, 973, 974, + 975, 976, 977, 970, 0, 0, 980, 487, 0, 0, + 0, 0, 0, 1392, 0, 610, 969, 968, 978, 979, + 971, 972, 973, 974, 975, 976, 977, 970, 0, 1202, + 980, 487, 0, 0, 0, 161, 0, 487, 1079, 0, + 0, 1090, 2028, 0, 0, 0, 0, 1424, 1425, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1459, 145, 0, 0, 0, 0, 0, 0, + 0, 487, 1073, 0, 0, 610, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2121, 499, 2027, + 0, 0, 0, 610, 0, 0, 610, 0, 0, 0, + 0, 0, 0, 0, 1766, 0, 0, 757, 0, 0, + 0, 0, 0, 166, 0, 0, 0, 142, 0, 143, + 166, 0, 0, 0, 0, 166, 166, 2026, 160, 166, + 0, 166, 0, 0, 0, 0, 0, 166, 0, 0, + 0, 0, 0, 0, 166, 969, 968, 978, 979, 971, + 972, 973, 974, 975, 976, 977, 970, 0, 0, 980, + 0, 0, 764, 0, 0, 0, 0, 0, 535, 0, + 0, 166, 487, 994, 995, 996, 997, 998, 999, 1000, + 1001, 1002, 1003, 0, 1108, 0, 757, 0, 0, 146, + 0, 0, 764, 0, 0, 0, 0, 0, 0, 151, + 0, 0, 969, 968, 978, 979, 971, 972, 973, 974, + 975, 976, 977, 970, 0, 0, 980, 164, 0, 0, + 443, 0, 0, 481, 0, 0, 0, 0, 0, 0, + 443, 0, 0, 0, 0, 0, 757, 0, 443, 0, + 969, 968, 978, 979, 971, 972, 973, 974, 975, 976, + 977, 970, 0, 0, 980, 596, 596, 1660, 0, 0, + 1239, 0, 0, 0, 443, 0, 166, 0, 0, 0, + 0, 0, 0, 0, 166, 0, 0, 969, 968, 978, + 979, 971, 972, 973, 974, 975, 976, 977, 970, 1279, + 0, 980, 0, 0, 0, 0, 0, 0, 0, 166, + 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, + 166, 166, 166, 166, 166, 0, 0, 0, 0, 0, + 1308, 0, 166, 0, 0, 0, 166, 1312, 0, 166, + 166, 0, 0, 166, 166, 166, 161, 1644, 1323, 1324, + 1325, 1326, 1327, 1328, 1329, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1090, 0, 145, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 487, 0, 0, 0, 0, 166, 0, 0, + 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, + 487, 0, 0, 0, 0, 0, 487, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 487, 0, 142, 0, + 143, 0, 0, 0, 0, 0, 0, 0, 0, 160, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 166, 166, 166, 166, 0, 0, 0, 0, 0, 0, - 0, 166, 0, 0, 0, 166, 0, 0, 166, 166, - 138, 0, 166, 166, 166, 0, 1644, 0, 1709, 1710, - 1060, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 44, 47, 50, 49, 52, 0, 64, 0, 0, - 70, 139, 144, 141, 147, 148, 149, 150, 152, 153, - 154, 155, 0, 1401, 1402, 0, 0, 156, 157, 158, - 159, 0, 0, 53, 75, 74, 0, 478, 62, 63, - 51, 487, 0, 0, 0, 0, 166, 0, 0, 0, - 0, 0, 0, 166, 0, 471, 0, 0, 0, 487, - 0, 0, 0, 0, 0, 487, 0, 0, 0, 1446, - 472, 0, 0, 0, 0, 487, 0, 0, 0, 55, - 56, 0, 57, 58, 59, 60, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 166, 166, - 166, 166, 166, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 166, 166, 0, 443, 0, 443, - 0, 0, 443, 1202, 0, 0, 0, 0, 0, 0, - 0, 1048, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 487, 0, 139, 144, 141, 147, 148, 149, 150, 152, - 153, 154, 155, 0, 0, 0, 0, 0, 156, 157, - 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 442, 73, 0, 487, 0, 0, 0, - 0, 0, 0, 489, 0, 0, 0, 166, 0, 0, - 0, 569, 0, 0, 0, 0, 1806, 487, 0, 0, - 0, 0, 0, 487, 487, 0, 0, 0, 0, 0, - 0, 1899, 0, 0, 1818, 0, 0, 761, 1202, 0, - 1825, 0, 0, 0, 0, 0, 166, 0, 610, 0, - 1830, 0, 0, 0, 0, 443, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1914, 0, 0, 0, - 0, 596, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 443, 0, 443, 1092, + 0, 0, 0, 0, 0, 166, 166, 0, 0, 0, + 0, 0, 0, 0, 1202, 0, 0, 139, 144, 141, + 147, 148, 149, 150, 152, 153, 154, 155, 0, 0, + 0, 0, 0, 156, 157, 158, 159, 0, 0, 1466, + 146, 487, 0, 0, 0, 0, 1470, 0, 1473, 0, + 151, 0, 0, 0, 0, 0, 0, 1492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, - 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, - 0, 487, 0, 537, 34, 610, 166, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 166, 0, 0, 166, 0, 0, 0, 0, 34, 0, - 0, 1208, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 610, 0, 0, 1202, 0, 0, 1926, 1208, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 573, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1661, 0, 0, 0, - 1662, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1669, 1670, 0, 0, 0, 0, 1676, 0, 0, - 1679, 1680, 443, 0, 0, 0, 0, 2032, 1686, 0, - 1687, 0, 0, 1690, 1691, 1692, 1693, 1694, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 166, 1704, - 499, 166, 166, 166, 487, 487, 0, 2055, 757, 0, - 2056, 1202, 0, 2058, 0, 0, 1818, 1203, 0, 0, - 0, 0, 0, 0, 487, 487, 487, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1203, 1203, 0, 0, 1748, 1749, 443, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 487, - 487, 487, 166, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 487, 0, 487, 0, 443, 0, 0, - 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1298, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, + 0, 0, 0, 0, 0, 0, 0, 1807, 487, 0, + 0, 0, 0, 0, 487, 487, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1819, 0, 0, 0, 1202, + 0, 1826, 0, 0, 0, 0, 0, 166, 0, 610, + 0, 1831, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, - 0, 868, 0, 873, 487, 443, 875, 487, 1202, 2120, - 499, 0, 0, 0, 1321, 1322, 443, 443, 443, 443, - 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 443, 0, 0, 166, 0, 0, 0, 0, 0, 1818, - 2081, 0, 487, 166, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2096, - 2097, 2098, 0, 0, 0, 0, 0, 0, 0, 0, - 487, 0, 0, 0, 0, 0, 0, 0, 487, 487, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1873, 1874, 596, 1298, 1818, 1818, 1818, 596, 596, 0, - 0, 596, 596, 596, 0, 487, 0, 1203, 2126, 0, - 2128, 0, 0, 0, 0, 0, 1818, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 596, 596, 596, - 596, 596, 0, 0, 0, 0, 1440, 0, 0, 0, - 1079, 0, 0, 1090, 0, 0, 0, 0, 0, 1818, - 0, 0, 610, 0, 0, 0, 1925, 443, 0, 0, - 0, 0, 0, 1298, 443, 0, 443, 0, 0, 0, - 0, 0, 0, 0, 443, 443, 0, 1940, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 924, 924, 924, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1818, 0, 0, - 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 989, 991, 0, - 0, 0, 0, 1202, 0, 2204, 0, 0, 0, 0, - 0, 0, 0, 610, 610, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1004, 0, - 0, 0, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, - 1818, 1019, 1021, 1024, 1024, 1024, 1021, 1024, 1024, 1021, - 1024, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 0, 0, - 0, 0, 0, 1049, 0, 0, 1108, 34, 0, 0, - 0, 0, 2012, 0, 0, 0, 2014, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2023, 2024, 0, - 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, - 0, 0, 0, 2038, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2047, 2048, 0, 0, 2052, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, - 0, 0, 1239, 443, 0, 0, 0, 0, 443, 443, - 0, 0, 443, 0, 1635, 0, 0, 0, 0, 0, - 443, 0, 0, 0, 0, 0, 0, 443, 0, 0, - 0, 1279, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2084, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, - 0, 0, 1308, 0, 0, 0, 0, 0, 0, 1312, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1323, 1324, 1325, 1326, 1327, 1328, 1329, 0, 0, 0, - 0, 0, 2112, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 596, 596, 1090, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 596, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, - 0, 0, 0, 0, 0, 0, 0, 1440, 0, 2150, - 2151, 2152, 2153, 0, 2157, 0, 2158, 2159, 2160, 0, - 2161, 2162, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 596, 443, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1203, 443, 443, 443, 443, 443, 0, 0, - 0, 0, 0, 0, 0, 1747, 0, 0, 0, 443, - 0, 2188, 443, 443, 0, 0, 443, 1757, 1298, 0, - 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1816, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1466, 0, 0, 0, 103, 0, 125, 1470, 0, - 1473, 0, 0, 0, 0, 0, 0, 0, 145, 1492, - 0, 0, 0, 0, 0, 0, 2235, 2236, 161, 924, - 924, 924, 0, 0, 0, 0, 0, 0, 0, 1179, - 443, 0, 0, 0, 0, 0, 0, 1815, 0, 135, - 0, 0, 0, 103, 124, 125, 0, 1203, 0, 0, - 0, 0, 0, 0, 0, 0, 145, 1298, 0, 0, - 0, 0, 142, 0, 143, 0, 0, 0, 0, 1183, - 1184, 134, 133, 160, 0, 0, 0, 0, 0, 0, - 0, 0, 443, 443, 443, 443, 443, 135, 0, 0, - 0, 0, 124, 0, 0, 0, 0, 0, 443, 443, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 142, 0, 143, 0, 0, 0, 0, 1183, 1184, 134, - 133, 160, 0, 129, 1185, 136, 0, 1182, 0, 130, - 131, 0, 0, 596, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 151, 0, 0, 0, 0, 0, + 443, 0, 0, 443, 0, 0, 138, 0, 0, 0, + 0, 0, 0, 0, 0, 1361, 0, 0, 1370, 1371, + 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, + 1382, 1383, 1384, 0, 0, 0, 0, 166, 0, 0, + 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, + 0, 0, 0, 487, 0, 0, 610, 0, 166, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, + 0, 0, 0, 0, 0, 0, 0, 1423, 0, 0, + 0, 0, 166, 0, 0, 166, 0, 0, 0, 0, + 0, 0, 1208, 0, 0, 0, 0, 0, 1090, 0, + 0, 0, 0, 0, 0, 1619, 0, 1401, 1402, 0, + 1628, 1629, 0, 610, 1633, 0, 1202, 0, 0, 1927, + 1208, 0, 1636, 0, 0, 0, 443, 0, 0, 1639, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 596, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1446, 0, 0, 1643, 443, 0, 443, + 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 139, 144, + 141, 147, 148, 149, 150, 152, 153, 154, 155, 0, + 0, 0, 0, 0, 156, 157, 158, 159, 0, 0, + 166, 0, 0, 166, 166, 166, 487, 487, 0, 0, + 757, 0, 0, 1202, 0, 0, 0, 0, 1819, 0, + 0, 0, 0, 0, 0, 0, 487, 487, 487, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 487, 487, 487, 166, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 487, 0, 487, 0, 0, + 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 129, 1185, 136, 0, 1182, 0, 130, 131, 0, - 0, 443, 146, 0, 0, 0, 0, 0, 0, 0, - 1491, 0, 151, 0, 1203, 0, 0, 0, 0, 0, - 1090, 0, 0, 0, 0, 0, 0, 1619, 0, 0, - 0, 0, 1628, 1629, 0, 0, 1633, 0, 0, 0, - 443, 0, 0, 0, 1636, 0, 0, 0, 0, 0, - 0, 1639, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 443, 0, 1754, 487, 0, 0, 487, + 1202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 138, 0, 0, 0, 0, 0, 0, 0, 1643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1203, 0, + 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, + 0, 1819, 2082, 0, 487, 166, 0, 0, 0, 0, + 0, 0, 1810, 1203, 1203, 0, 0, 0, 0, 443, + 0, 2097, 2098, 2099, 0, 0, 0, 0, 0, 0, + 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, + 487, 487, 0, 0, 0, 0, 0, 0, 443, 0, + 1655, 1656, 1657, 0, 0, 0, 1819, 1819, 1819, 0, + 0, 0, 0, 1298, 1849, 1850, 1851, 1852, 1853, 0, + 2127, 487, 2129, 0, 0, 0, 0, 0, 1819, 443, + 1090, 1859, 0, 0, 0, 0, 443, 0, 0, 0, + 0, 0, 0, 0, 0, 1321, 1322, 443, 443, 443, + 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, + 0, 1819, 0, 0, 610, 0, 0, 0, 0, 0, + 1661, 0, 0, 0, 1662, 0, 0, 0, 0, 0, + 0, 443, 0, 0, 0, 1669, 1670, 0, 0, 0, + 0, 1676, 0, 0, 1679, 1680, 0, 0, 0, 0, + 0, 0, 1686, 0, 1687, 0, 0, 1690, 1691, 1692, + 1693, 1694, 0, 1912, 0, 0, 0, 0, 0, 1819, + 0, 0, 0, 1704, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 596, 1298, 1202, 0, 2205, 596, 596, + 0, 0, 596, 596, 596, 610, 610, 0, 1203, 0, + 0, 0, 0, 35, 36, 37, 72, 39, 40, 0, + 1748, 1749, 0, 0, 0, 0, 0, 0, 596, 596, + 596, 596, 596, 76, 0, 0, 1819, 1440, 41, 67, + 68, 0, 65, 69, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 0, 0, 0, 0, 0, 443, 0, + 0, 0, 1977, 0, 1298, 443, 0, 443, 0, 0, + 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, + 54, 0, 0, 1990, 0, 0, 0, 0, 0, 0, + 71, 0, 0, 1993, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2004, 0, 0, + 2007, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1872, 1873, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1893, 1894, 0, + 1895, 1896, 0, 0, 44, 47, 50, 49, 52, 0, + 64, 1902, 1903, 70, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1874, 1875, 53, 75, 74, 0, + 0, 62, 63, 51, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1817, 2077, 0, 0, 2078, 2079, + 2080, 0, 0, 0, 0, 0, 0, 0, 103, 0, + 125, 0, 55, 56, 0, 57, 58, 59, 60, 0, + 0, 145, 0, 0, 1952, 0, 0, 0, 0, 0, + 1926, 0, 0, 0, 0, 0, 0, 443, 0, 0, + 0, 0, 0, 0, 443, 0, 0, 0, 0, 443, + 443, 1941, 135, 443, 0, 1635, 0, 124, 0, 0, + 0, 443, 0, 0, 0, 0, 0, 0, 443, 0, + 0, 0, 0, 0, 0, 142, 0, 143, 0, 0, + 0, 0, 1183, 1184, 134, 133, 160, 0, 0, 0, + 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, + 0, 0, 0, 0, 2012, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 129, 1185, 136, 0, + 1182, 0, 130, 131, 0, 0, 0, 146, 0, 0, + 0, 0, 0, 596, 596, 0, 0, 151, 0, 0, + 2182, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2188, 0, 0, 0, 596, 0, 0, 2013, 0, 0, + 0, 2015, 0, 0, 0, 0, 0, 0, 0, 0, + 443, 0, 2024, 2025, 0, 0, 0, 0, 1440, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2039, 0, + 2063, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 596, 443, 0, 2048, 2049, 0, 0, 2053, + 0, 0, 0, 1203, 443, 443, 443, 443, 443, 0, + 0, 0, 0, 0, 0, 0, 1747, 0, 0, 0, + 443, 0, 0, 443, 443, 0, 0, 443, 1757, 1298, + 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2103, + 2104, 2105, 2106, 2107, 0, 0, 0, 2110, 2111, 2085, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, + 0, 443, 0, 0, 0, 0, 0, 0, 1816, 0, + 0, 126, 0, 0, 127, 0, 0, 2113, 1203, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1298, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 443, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, + 443, 0, 0, 0, 0, 161, 0, 0, 0, 0, + 0, 0, 0, 0, 2151, 2152, 2153, 2154, 0, 2158, + 0, 2159, 2160, 2161, 0, 2162, 2163, 0, 0, 0, + 103, 0, 125, 0, 596, 0, 0, 0, 0, 0, + 0, 0, 0, 145, 2214, 139, 144, 141, 147, 148, + 149, 150, 152, 153, 154, 155, 0, 0, 0, 0, + 0, 156, 157, 158, 159, 0, 2189, 0, 0, 0, + 0, 0, 0, 0, 135, 0, 0, 0, 0, 124, + 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1203, 0, 142, 0, 143, + 0, 0, 0, 0, 112, 113, 134, 133, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1203, 0, 0, 0, 0, 0, 0, 0, 138, 0, - 443, 0, 0, 0, 0, 0, 132, 0, 0, 0, - 443, 0, 0, 0, 0, 0, 0, 0, 126, 0, - 0, 127, 0, 0, 443, 0, 0, 443, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 132, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 126, 0, 0, 127, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1203, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1754, 0, 0, - 0, 0, 139, 144, 141, 147, 148, 149, 150, 152, - 153, 154, 155, 1130, 0, 0, 0, 0, 156, 157, - 158, 159, 443, 0, 0, 443, 443, 443, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 139, 144, 141, 147, 148, 149, 150, 152, 153, 154, - 155, 0, 0, 0, 1809, 0, 156, 157, 158, 159, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1665, 0, 0, 573, 0, 1440, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1848, 1849, 1850, 1851, - 1852, 1702, 0, 0, 0, 0, 0, 0, 0, 0, - 1118, 0, 1090, 1858, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1086, 0, - 0, 0, 0, 0, 0, 1729, 1730, 0, 0, 1086, - 1086, 1086, 1086, 1086, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1131, 1491, 0, 0, 1086, 0, - 0, 0, 1086, 0, 0, 0, 0, 443, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1911, 0, 0, 0, 0, - 0, 0, 1203, 0, 0, 1144, 1147, 1148, 1149, 1150, - 1151, 1152, 0, 1153, 1154, 1155, 1156, 1157, 1132, 1133, - 1134, 1135, 1116, 1117, 1145, 0, 1119, 0, 1120, 1121, - 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1136, 1137, - 1138, 1139, 1140, 1141, 1142, 1143, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1831, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1976, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1146, 1989, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1992, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2003, 0, - 0, 2006, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1923, 0, 34, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1086, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2076, 0, 0, 2077, - 2078, 2079, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2029, 0, 0, 0, 0, 0, 0, 2035, 2036, 2037, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2181, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2187, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 443, 0, 0, 0, 2242, 2243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1130, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 129, 110, + 136, 117, 109, 0, 130, 131, 0, 0, 0, 146, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, + 118, 443, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1203, 0, 121, 119, 114, 115, 116, 120, + 0, 0, 443, 0, 111, 0, 0, 0, 0, 0, + 0, 0, 443, 122, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 443, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1203, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1923, 0, 34, 0, 1923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 132, 0, 0, 443, 0, 0, 443, 443, 443, + 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, + 1144, 1147, 1148, 1149, 1150, 1151, 1152, 0, 1153, 1154, + 1155, 1156, 1157, 1132, 1133, 1134, 1135, 1116, 1117, 1145, + 0, 1119, 0, 1120, 1121, 1122, 1123, 1124, 1125, 1126, + 1127, 1128, 1129, 1136, 1137, 1138, 1139, 1140, 1141, 1142, + 1143, 0, 0, 0, 0, 0, 0, 0, 1440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 139, 144, 141, + 147, 148, 149, 150, 152, 153, 154, 155, 1146, 0, + 0, 0, 0, 156, 157, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2180, 0, 0, 0, 0, 34, 0, 0, - 0, 0, 0, 736, 723, 0, 0, 672, 739, 642, - 660, 748, 663, 666, 706, 621, 685, 314, 657, 0, - 646, 617, 653, 618, 644, 674, 223, 678, 641, 725, - 688, 738, 272, 34, 623, 647, 328, 662, 176, 708, - 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, - 287, 326, 384, 320, 745, 276, 695, 0, 375, 299, - 0, 0, 0, 676, 728, 683, 719, 671, 707, 631, - 694, 740, 658, 703, 741, 262, 207, 175, 311, 376, - 237, 0, 0, 0, 167, 168, 169, 0, 2217, 2218, - 0, 0, 0, 0, 0, 198, 0, 205, 700, 735, - 655, 702, 219, 260, 225, 218, 391, 0, 0, 705, - 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, - 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, - 669, 0, 0, 0, 0, 0, 0, 0, 0, 648, - 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, - 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, - 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, - 668, 667, 737, 712, 628, 727, 661, 271, 626, 268, - 171, 187, 0, 659, 310, 349, 355, 726, 645, 654, - 210, 652, 353, 324, 408, 194, 235, 346, 329, 351, - 692, 710, 352, 277, 396, 341, 406, 424, 425, 217, - 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, - 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, - 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, - 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, - 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, - 183, 926, 418, 306, 395, 403, 295, 286, 182, 401, - 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, - 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, - 197, 640, 230, 234, 240, 242, 0, 248, 255, 273, - 317, 338, 336, 342, 722, 390, 407, 415, 422, 428, - 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, - 278, 714, 750, 323, 354, 200, 410, 374, 635, 639, - 633, 634, 686, 687, 636, 742, 743, 744, 718, 629, - 0, 637, 638, 0, 724, 732, 733, 691, 170, 184, - 274, 746, 343, 238, 436, 417, 413, 615, 632, 216, - 643, 0, 0, 656, 664, 665, 677, 679, 680, 681, - 682, 690, 698, 699, 701, 709, 711, 713, 715, 720, - 729, 749, 172, 173, 185, 193, 203, 215, 228, 236, - 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, - 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, - 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, - 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, - 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, - 427, 0, 282, 689, 696, 284, 232, 249, 259, 704, - 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, - 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, - 201, 365, 385, 386, 387, 389, 296, 220, 736, 723, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, + 0, 0, 0, 0, 0, 0, 0, 0, 736, 723, 0, 0, 672, 739, 642, 660, 748, 663, 666, 706, - 621, 685, 314, 657, 0, 646, 617, 653, 618, 644, + 621, 685, 314, 657, 1203, 646, 617, 653, 618, 644, 674, 223, 678, 641, 725, 688, 738, 272, 0, 623, 647, 328, 662, 176, 708, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 745, 276, 695, 0, 375, 299, 0, 0, 0, 676, 728, 683, 719, 671, 707, 631, 694, 740, 658, 703, 741, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 168, 169, 0, 2222, 2223, 0, 0, 0, 0, 0, 198, 0, 205, 700, 735, 655, 702, 219, 260, 225, 218, 391, 0, 0, 705, 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, 669, 0, 0, 0, 0, - 0, 0, 1915, 0, 648, 0, 693, 0, 0, 0, + 0, 0, 0, 0, 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, 668, 667, 737, 712, 628, @@ -1747,7 +1651,7 @@ var yyAct = [...]int{ 655, 702, 219, 260, 225, 218, 391, 0, 0, 705, 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, - 669, 0, 0, 0, 0, 0, 0, 1758, 0, 648, + 669, 0, 0, 0, 0, 0, 0, 1916, 0, 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, @@ -1795,7 +1699,7 @@ var yyAct = [...]int{ 218, 391, 0, 0, 705, 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, 669, 0, 0, 0, 0, - 0, 0, 1468, 0, 648, 0, 693, 0, 0, 0, + 0, 0, 1758, 0, 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, 668, 667, 737, 712, 628, @@ -1837,12 +1741,12 @@ var yyAct = [...]int{ 287, 326, 384, 320, 745, 276, 695, 0, 375, 299, 0, 0, 0, 676, 728, 683, 719, 671, 707, 631, 694, 740, 658, 703, 741, 262, 207, 175, 311, 376, - 237, 71, 0, 0, 167, 168, 169, 0, 0, 0, + 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 700, 735, 655, 702, 219, 260, 225, 218, 391, 0, 0, 705, 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, - 669, 0, 0, 0, 0, 0, 0, 0, 0, 648, + 669, 0, 0, 0, 0, 0, 0, 1468, 0, 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, @@ -1884,7 +1788,7 @@ var yyAct = [...]int{ 233, 226, 222, 208, 256, 287, 326, 384, 320, 745, 276, 695, 0, 375, 299, 0, 0, 0, 676, 728, 683, 719, 671, 707, 631, 694, 740, 658, 703, 741, - 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, + 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 700, 735, 655, 702, 219, 260, 225, 218, 391, 0, 0, 705, 751, 616, 697, 0, 619, @@ -1950,12 +1854,12 @@ var yyAct = [...]int{ 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, - 183, 625, 418, 306, 395, 403, 295, 286, 182, 401, + 183, 926, 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, 428, - 429, 433, 430, 431, 434, 613, 752, 607, 606, 269, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, 714, 750, 323, 354, 200, 410, 374, 635, 639, 633, 634, 686, 687, 636, 742, 743, 744, 718, 629, 0, 637, 638, 0, 724, 732, 733, 691, 170, 184, @@ -1995,7 +1899,7 @@ var yyAct = [...]int{ 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, - 1094, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, 625, 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, @@ -2042,7 +1946,7 @@ var yyAct = [...]int{ 692, 710, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, - 186, 361, 202, 179, 383, 604, 199, 364, 0, 0, + 186, 361, 202, 179, 383, 1094, 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, 625, 418, 306, 395, 403, 295, 286, 182, 401, @@ -2066,272 +1970,89 @@ var yyAct = [...]int{ 427, 0, 282, 689, 696, 284, 232, 249, 259, 704, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, - 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, - 0, 1394, 0, 504, 0, 0, 0, 223, 0, 503, - 0, 0, 0, 272, 0, 0, 1395, 328, 0, 176, - 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, - 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, - 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, - 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 71, 0, 0, 167, 168, 169, 525, 524, - 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, - 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, - 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, + 201, 365, 385, 386, 387, 389, 296, 220, 736, 723, + 0, 0, 672, 739, 642, 660, 748, 663, 666, 706, + 621, 685, 314, 657, 0, 646, 617, 653, 618, 644, + 674, 223, 678, 641, 725, 688, 738, 272, 0, 623, + 647, 328, 662, 176, 708, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 745, + 276, 695, 0, 375, 299, 0, 0, 0, 676, 728, + 683, 719, 671, 707, 631, 694, 740, 658, 703, 741, + 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 700, 735, 655, 702, 219, 260, 225, + 218, 391, 0, 0, 705, 751, 616, 697, 0, 619, + 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, + 0, 0, 675, 684, 716, 669, 0, 0, 0, 0, + 0, 0, 0, 0, 648, 0, 693, 0, 0, 0, + 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, + 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, + 721, 730, 670, 423, 734, 668, 667, 737, 712, 628, + 727, 661, 271, 626, 268, 171, 187, 0, 659, 310, + 349, 355, 726, 645, 654, 210, 652, 353, 324, 408, + 194, 235, 346, 329, 351, 692, 710, 352, 277, 396, + 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, + 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, + 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, + 604, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, + 400, 211, 437, 190, 419, 183, 625, 418, 306, 395, + 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, + 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, + 377, 412, 438, 195, 196, 197, 640, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 722, + 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, + 613, 752, 607, 606, 269, 278, 714, 750, 323, 354, + 200, 410, 374, 635, 639, 633, 634, 686, 687, 636, + 742, 743, 744, 718, 629, 0, 637, 638, 0, 724, + 732, 733, 691, 170, 184, 274, 746, 343, 238, 436, + 417, 413, 615, 632, 216, 643, 0, 0, 656, 664, + 665, 677, 679, 680, 681, 682, 690, 698, 699, 701, + 709, 711, 713, 715, 720, 729, 749, 172, 173, 185, + 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, + 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, + 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, + 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, + 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, + 409, 421, 426, 247, 405, 427, 0, 282, 689, 696, + 284, 232, 249, 259, 704, 416, 379, 189, 350, 239, + 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, + 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, + 389, 296, 220, 314, 0, 0, 1394, 0, 504, 0, + 0, 0, 223, 0, 503, 0, 0, 0, 272, 0, + 0, 1395, 328, 0, 176, 0, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, + 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, + 0, 262, 207, 175, 311, 376, 237, 71, 0, 0, + 167, 168, 169, 525, 524, 527, 528, 529, 530, 0, + 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, + 225, 218, 391, 0, 0, 0, 0, 0, 501, 518, + 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 515, 516, 594, 0, - 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, - 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 245, 0, 300, 0, 561, 0, 0, 423, - 0, 0, 559, 0, 0, 0, 0, 0, 271, 0, - 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, - 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, - 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, - 269, 278, 0, 0, 323, 354, 200, 410, 374, 549, - 560, 555, 556, 553, 554, 548, 552, 551, 550, 563, - 540, 541, 542, 543, 545, 0, 557, 558, 544, 170, - 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, - 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 0, 0, 0, 504, 0, 0, 0, 223, 0, - 503, 0, 0, 0, 272, 0, 0, 0, 328, 0, - 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, - 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, - 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, - 0, 0, 0, 0, 0, 1507, 0, 262, 207, 175, - 311, 376, 237, 71, 0, 0, 167, 168, 169, 525, - 524, 527, 528, 529, 530, 0, 0, 198, 526, 205, - 531, 532, 533, 1508, 219, 260, 225, 218, 391, 0, - 0, 0, 0, 0, 501, 518, 0, 546, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 515, 516, 0, - 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, - 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, - 423, 0, 0, 559, 0, 0, 0, 0, 0, 271, - 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, - 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, - 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, - 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, - 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, - 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, - 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, - 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, - 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, - 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, - 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, - 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, - 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, - 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, - 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, - 549, 560, 555, 556, 553, 554, 548, 552, 551, 550, - 563, 540, 541, 542, 543, 545, 0, 557, 558, 544, - 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, - 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, - 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, - 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, - 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, - 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, - 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, - 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, - 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, - 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 0, 0, 0, 504, 0, 0, 0, 223, - 0, 503, 0, 0, 0, 272, 0, 0, 0, 328, - 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, - 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, - 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, - 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, - 175, 311, 376, 237, 71, 0, 581, 167, 168, 169, - 525, 524, 527, 528, 529, 530, 0, 0, 198, 526, - 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, - 0, 0, 0, 0, 0, 501, 518, 0, 546, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 515, 516, - 0, 0, 0, 0, 562, 0, 517, 0, 0, 510, - 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, - 0, 423, 0, 0, 559, 0, 0, 0, 0, 0, - 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, - 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, - 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, - 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, - 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, - 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, - 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, - 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, - 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, - 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, - 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, - 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, - 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, - 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, - 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, - 374, 549, 560, 555, 556, 553, 554, 548, 552, 551, - 550, 563, 540, 541, 542, 543, 545, 0, 557, 558, - 544, 170, 184, 274, 0, 343, 238, 436, 417, 413, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, - 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, - 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, - 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, - 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, - 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, - 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, - 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, - 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 0, 0, 0, 504, 0, 0, 0, - 223, 0, 503, 0, 0, 0, 272, 0, 0, 0, - 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, - 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, - 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, - 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, - 207, 175, 311, 376, 237, 71, 0, 0, 167, 168, - 169, 525, 524, 527, 528, 529, 530, 0, 0, 198, - 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, - 391, 0, 0, 0, 0, 0, 501, 518, 0, 546, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, - 516, 594, 0, 0, 0, 562, 0, 517, 0, 0, - 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, - 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, - 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, - 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, - 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, - 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, - 410, 374, 549, 560, 555, 556, 553, 554, 548, 552, - 551, 550, 563, 540, 541, 542, 543, 545, 0, 557, - 558, 544, 170, 184, 274, 0, 343, 238, 436, 417, - 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, - 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 314, 0, 0, 0, 0, 504, 0, 0, - 0, 223, 0, 503, 0, 0, 0, 272, 0, 0, - 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, - 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, - 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, - 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, - 168, 169, 525, 1412, 527, 528, 529, 530, 0, 0, - 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, - 218, 391, 0, 0, 0, 0, 0, 501, 518, 0, - 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 515, 516, 594, 0, 0, 0, 562, 0, 517, 0, - 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, - 561, 0, 0, 423, 0, 0, 559, 0, 0, 0, - 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, - 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, - 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, - 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, - 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, - 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, - 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, - 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, - 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, - 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, - 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, - 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, - 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, - 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, - 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, - 200, 410, 374, 549, 560, 555, 556, 553, 554, 548, - 552, 551, 550, 563, 540, 541, 542, 543, 545, 0, - 557, 558, 544, 170, 184, 274, 0, 343, 238, 436, - 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, - 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, - 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, - 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, - 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, - 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, - 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, - 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, - 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 0, 0, 0, 504, 0, - 0, 0, 223, 0, 503, 0, 0, 0, 272, 0, - 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, - 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, - 0, 262, 207, 175, 311, 376, 237, 71, 0, 0, - 167, 168, 169, 525, 1409, 527, 528, 529, 530, 0, - 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, - 225, 218, 391, 0, 0, 0, 0, 0, 501, 518, - 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 515, 516, 594, 0, 0, 0, 562, 0, 517, - 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, - 0, 561, 0, 0, 423, 0, 0, 559, 0, 0, - 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, - 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, - 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, - 354, 200, 410, 374, 549, 560, 555, 556, 553, 554, - 548, 552, 551, 550, 563, 540, 541, 542, 543, 545, - 0, 557, 558, 544, 170, 184, 274, 0, 343, 238, - 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, + 0, 515, 516, 594, 0, 0, 0, 562, 0, 517, + 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, + 0, 561, 0, 0, 423, 0, 0, 559, 0, 0, + 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, + 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, + 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, + 354, 200, 410, 374, 549, 560, 555, 556, 553, 554, + 548, 552, 551, 550, 563, 540, 541, 542, 543, 545, + 0, 557, 558, 544, 170, 184, 274, 0, 343, 238, + 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, @@ -2343,20 +2064,157 @@ var yyAct = [...]int{ 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 574, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, + 387, 389, 296, 220, 314, 0, 0, 0, 0, 504, + 0, 0, 0, 223, 0, 503, 0, 0, 0, 272, + 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, + 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, + 1507, 0, 262, 207, 175, 311, 376, 237, 71, 0, + 0, 167, 168, 169, 525, 524, 527, 528, 529, 530, + 0, 0, 198, 526, 205, 531, 532, 533, 1508, 219, + 260, 225, 218, 391, 0, 0, 0, 0, 0, 501, + 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 515, 516, 0, 0, 0, 0, 562, 0, + 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, + 300, 0, 561, 0, 0, 423, 0, 0, 559, 0, + 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, + 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, + 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, + 323, 354, 200, 410, 374, 549, 560, 555, 556, 553, + 554, 548, 552, 551, 550, 563, 540, 541, 542, 543, + 545, 0, 557, 558, 544, 170, 184, 274, 0, 343, + 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, + 504, 0, 0, 0, 223, 0, 503, 0, 0, 0, + 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, + 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, + 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, + 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, + 0, 581, 167, 168, 169, 525, 524, 527, 528, 529, + 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, + 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, + 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 515, 516, 0, 0, 0, 0, 562, + 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, + 0, 300, 0, 561, 0, 0, 423, 0, 0, 559, + 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, + 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, + 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, + 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, + 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, + 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, + 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, + 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, + 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, + 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, + 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, + 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, + 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, + 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, + 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, + 0, 323, 354, 200, 410, 374, 549, 560, 555, 556, + 553, 554, 548, 552, 551, 550, 563, 540, 541, 542, + 543, 545, 0, 557, 558, 544, 170, 184, 274, 0, + 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, + 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, + 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, + 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, + 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, + 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, + 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, + 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, + 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, + 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, + 0, 504, 0, 0, 0, 223, 0, 503, 0, 0, + 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, + 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, + 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, + 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, + 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, + 71, 0, 0, 167, 168, 169, 525, 524, 527, 528, + 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, + 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, + 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 515, 516, 594, 0, 0, 0, + 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, + 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 245, 0, 300, 0, 561, 0, 0, 423, 0, 0, + 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, + 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, + 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, + 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, + 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, + 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, + 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, + 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, + 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, + 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, + 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, + 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, + 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, + 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, + 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, + 0, 0, 323, 354, 200, 410, 374, 549, 560, 555, + 556, 553, 554, 548, 552, 551, 550, 563, 540, 541, + 542, 543, 545, 0, 557, 558, 544, 170, 184, 274, + 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, + 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, + 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, + 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, + 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, + 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, + 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, + 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, + 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, + 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 504, 0, 0, 0, 223, 0, 503, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, - 237, 71, 0, 0, 167, 168, 169, 525, 524, 527, + 237, 71, 0, 0, 167, 168, 169, 525, 1412, 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 515, 516, 0, 0, 0, + 0, 0, 0, 0, 0, 515, 516, 594, 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, 423, 0, @@ -2397,12 +2255,12 @@ var yyAct = [...]int{ 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 71, 0, 0, 167, 168, 169, 525, 524, + 376, 237, 71, 0, 0, 167, 168, 169, 525, 1409, 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 515, 516, 0, 0, + 0, 0, 0, 0, 0, 0, 515, 516, 594, 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, 423, @@ -2436,161 +2294,24 @@ var yyAct = [...]int{ 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, - 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, - 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, - 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, - 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, - 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, - 311, 376, 237, 71, 0, 0, 167, 168, 169, 525, - 524, 527, 528, 529, 530, 0, 0, 198, 526, 205, - 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, - 0, 0, 0, 0, 0, 518, 0, 546, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 515, 516, 0, - 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, - 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, - 423, 0, 0, 559, 0, 0, 0, 0, 0, 271, - 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, - 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, - 329, 351, 2210, 0, 352, 277, 396, 341, 406, 424, - 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, - 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, - 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, - 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, - 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, - 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, - 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, - 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, - 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, - 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, - 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, - 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, - 549, 560, 555, 556, 553, 554, 548, 552, 551, 550, - 563, 540, 541, 542, 543, 545, 0, 557, 558, 544, - 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, - 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, - 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, - 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, - 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, - 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, - 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, - 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, - 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, - 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, - 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, - 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, - 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, - 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, - 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, - 175, 311, 376, 237, 71, 0, 581, 167, 168, 169, - 525, 524, 527, 528, 529, 530, 0, 0, 198, 526, - 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, - 0, 0, 0, 0, 0, 0, 518, 0, 546, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 515, 516, - 0, 0, 0, 0, 562, 0, 517, 0, 0, 510, - 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, - 0, 423, 0, 0, 559, 0, 0, 0, 0, 0, - 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, - 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, - 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, - 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, - 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, - 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, - 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, - 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, - 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, - 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, - 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, - 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, - 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, - 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, - 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, - 374, 549, 560, 555, 556, 553, 554, 548, 552, 551, - 550, 563, 540, 541, 542, 543, 545, 0, 557, 558, - 544, 170, 184, 274, 0, 343, 238, 436, 417, 413, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, - 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, - 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, - 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, - 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, - 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, - 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, - 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, - 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, - 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, - 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, - 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, - 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, - 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, - 207, 175, 311, 376, 237, 71, 0, 0, 167, 168, - 169, 525, 524, 527, 528, 529, 530, 0, 0, 198, - 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, - 391, 0, 0, 0, 0, 0, 0, 518, 0, 546, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, - 516, 0, 0, 0, 0, 562, 0, 517, 0, 0, - 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, - 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, - 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, - 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, - 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, - 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, - 410, 374, 549, 560, 555, 556, 553, 554, 548, 552, - 551, 550, 563, 540, 541, 542, 543, 545, 0, 557, - 558, 544, 170, 184, 274, 0, 343, 238, 436, 417, - 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, - 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, - 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, + 0, 0, 314, 0, 0, 0, 0, 504, 0, 0, + 0, 223, 0, 503, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, + 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, + 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, + 168, 169, 525, 524, 527, 528, 529, 530, 0, 0, + 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, + 218, 391, 0, 0, 0, 0, 0, 501, 518, 0, + 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, - 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 969, 968, 978, 979, - 971, 972, 973, 974, 975, 976, 977, 970, 0, 0, - 980, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 515, 516, 0, 0, 0, 0, 562, 0, 517, 0, + 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, - 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, + 561, 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, @@ -2606,9 +2327,9 @@ var yyAct = [...]int{ 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, - 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, + 200, 410, 374, 549, 560, 555, 556, 553, 554, 548, + 552, 551, 550, 563, 540, 541, 542, 543, 545, 0, + 557, 558, 544, 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, @@ -2621,23 +2342,23 @@ var yyAct = [...]int{ 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, - 0, 0, 223, 798, 0, 0, 0, 0, 272, 0, + 389, 296, 220, 314, 0, 0, 0, 0, 504, 0, + 0, 0, 223, 0, 503, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, - 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, + 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, + 0, 262, 207, 175, 311, 376, 237, 71, 0, 0, + 167, 168, 169, 525, 524, 527, 528, 529, 530, 0, + 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, + 225, 218, 391, 0, 0, 0, 0, 0, 501, 518, + 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 515, 516, 0, 0, 0, 0, 562, 0, 517, + 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, - 0, 0, 0, 797, 423, 0, 0, 0, 0, 0, - 0, 794, 795, 271, 760, 268, 171, 187, 788, 792, + 0, 561, 0, 0, 423, 0, 0, 559, 0, 0, + 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, @@ -2652,9 +2373,9 @@ var yyAct = [...]int{ 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, - 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, + 354, 200, 410, 374, 549, 560, 555, 556, 553, 554, + 548, 552, 551, 550, 563, 540, 541, 542, 543, 545, + 0, 557, 558, 544, 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, @@ -2667,25 +2388,25 @@ var yyAct = [...]int{ 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 0, 0, 1072, 0, + 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, - 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, - 0, 167, 168, 169, 0, 1074, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 260, 225, 218, 391, 0, 0, 958, 959, 957, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 960, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, + 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 71, 0, + 0, 167, 168, 169, 525, 524, 527, 528, 529, 530, + 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, + 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, + 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 515, 516, 0, 0, 0, 0, 562, 0, + 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, + 300, 0, 561, 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, - 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, + 324, 408, 194, 235, 346, 329, 351, 2215, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, @@ -2698,9 +2419,9 @@ var yyAct = [...]int{ 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, - 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, + 323, 354, 200, 410, 374, 549, 560, 555, 556, 553, + 554, 548, 552, 551, 550, 563, 540, 541, 542, 543, + 545, 0, 557, 558, 544, 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, @@ -2713,65 +2434,202 @@ var yyAct = [...]int{ 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 35, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, - 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, - 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, - 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, - 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, - 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 71, 0, 581, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, + 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, + 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, + 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, + 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, + 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, + 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, + 0, 581, 167, 168, 169, 525, 524, 527, 528, 529, + 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, + 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, + 0, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 515, 516, 0, 0, 0, 0, 562, + 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, + 0, 300, 0, 561, 0, 0, 423, 0, 0, 559, + 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, + 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, + 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, + 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, + 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, + 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, + 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, + 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, + 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, + 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, + 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, + 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, + 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, + 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, + 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, + 0, 323, 354, 200, 410, 374, 549, 560, 555, 556, + 553, 554, 548, 552, 551, 550, 563, 540, 541, 542, + 543, 545, 0, 557, 558, 544, 170, 184, 274, 0, + 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, + 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, + 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, + 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, + 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, + 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, + 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, + 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, + 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, + 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, + 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, + 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, + 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, + 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, + 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, + 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, + 71, 0, 0, 167, 168, 169, 525, 524, 527, 528, + 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, + 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, + 0, 0, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 515, 516, 0, 0, 0, 0, + 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, + 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 245, 0, 300, 0, 561, 0, 0, 423, 0, 0, + 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, + 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, + 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, + 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, + 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, + 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, + 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, + 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, + 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, + 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, + 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, + 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, + 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, + 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, + 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, + 0, 0, 323, 354, 200, 410, 374, 549, 560, 555, + 556, 553, 554, 548, 552, 551, 550, 563, 540, 541, + 542, 543, 545, 0, 557, 558, 544, 170, 184, 274, + 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, - 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, - 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, - 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, - 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, - 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, + 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, + 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, + 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, + 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, + 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, + 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, + 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, + 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, + 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, + 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, + 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, - 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 0, 0, 1439, 0, 0, 0, 0, 223, 0, - 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, - 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, - 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, + 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, + 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, + 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 969, 968, 978, 979, 971, 972, 973, 974, 975, + 976, 977, 970, 0, 0, 980, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, + 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, + 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, + 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, + 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, + 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, + 0, 0, 0, 0, 0, 0, 0, 223, 798, 0, + 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, + 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, + 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 245, 0, 300, 0, 0, 0, 797, 423, + 0, 0, 0, 0, 0, 0, 794, 795, 271, 760, + 268, 171, 187, 788, 792, 310, 349, 355, 0, 0, + 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, + 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, + 0, 0, 0, 1072, 0, 0, 0, 0, 223, 0, + 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, - 1441, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 1074, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 958, 959, 957, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2779,7 +2637,7 @@ var yyAct = [...]int{ 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, - 329, 351, 0, 1437, 352, 277, 396, 341, 406, 424, + 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, @@ -2807,117 +2665,117 @@ var yyAct = [...]int{ 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, - 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, - 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, - 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, - 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, - 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, + 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, + 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, + 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 262, 207, 175, 311, 376, 237, 71, 0, 581, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, + 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, - 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, - 271, 760, 268, 171, 187, 758, 0, 310, 349, 355, - 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, - 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, - 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, - 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, - 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, - 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, - 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, - 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, - 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, - 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, - 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, - 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, - 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, - 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, - 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, + 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, + 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, + 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, + 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, - 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, - 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, - 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, - 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, - 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, - 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, - 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, - 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 0, 0, 1439, 0, 0, 0, 0, - 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, - 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, - 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, - 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, - 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, - 169, 0, 1441, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, - 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, + 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, + 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 314, 0, 0, 0, 1439, 0, + 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, + 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, + 0, 167, 168, 169, 0, 1441, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, + 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, - 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, - 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, - 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, - 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, - 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, - 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, - 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, - 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 35, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, + 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, + 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, + 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, + 324, 408, 194, 235, 346, 329, 351, 0, 1437, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, + 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, + 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, - 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, - 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, + 0, 0, 0, 0, 0, 271, 760, 268, 171, 187, + 758, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, @@ -2947,14 +2805,14 @@ var yyAct = [...]int{ 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, - 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, + 1439, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, - 0, 0, 0, 167, 168, 169, 0, 0, 1460, 0, - 0, 1461, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 0, 0, 167, 168, 169, 0, 1441, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2992,153 +2850,16 @@ var yyAct = [...]int{ 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, - 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, - 0, 0, 0, 0, 0, 0, 223, 0, 1105, 0, - 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, - 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, - 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, - 237, 0, 0, 0, 167, 168, 169, 0, 1104, 0, - 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, - 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 365, 385, 386, 387, 389, 296, 220, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, - 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, - 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, - 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, - 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, - 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, - 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, - 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, - 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, - 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, - 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, - 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, - 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, - 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, - 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, - 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, - 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, - 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, - 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, - 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, - 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, - 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, - 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, - 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, - 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, - 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, - 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, - 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, - 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, - 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, - 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, - 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 0, 0, 581, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, - 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, - 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, - 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, - 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, - 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, - 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, - 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, - 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, - 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, - 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, - 311, 376, 237, 71, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, - 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, - 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, - 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, - 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, - 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, - 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, - 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, - 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, - 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, - 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, - 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, - 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, - 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, - 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, - 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, - 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, - 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, - 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, - 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, - 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, - 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, - 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, - 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, - 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, - 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, - 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, - 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, - 0, 1441, 0, 0, 0, 0, 0, 0, 198, 0, + 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3184,7 +2905,7 @@ var yyAct = [...]int{ 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, - 169, 0, 1074, 0, 0, 0, 0, 0, 0, 198, + 169, 0, 0, 1460, 0, 0, 1461, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3224,13 +2945,13 @@ var yyAct = [...]int{ 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, - 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, + 0, 223, 0, 1105, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 168, 169, 0, 1104, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3256,7 +2977,7 @@ var yyAct = [...]int{ 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 184, 274, 1344, 343, 238, 436, + 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, @@ -3269,13 +2990,13 @@ var yyAct = [...]int{ 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 1227, 0, 0, 0, 0, + 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, + 0, 262, 207, 175, 311, 376, 237, 0, 0, 581, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, @@ -3315,13 +3036,13 @@ var yyAct = [...]int{ 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 1225, 0, 0, 0, + 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, @@ -3361,14 +3082,14 @@ var yyAct = [...]int{ 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 314, 0, 1223, 0, 0, + 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, - 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 167, 168, 169, 0, 1441, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3407,14 +3128,14 @@ var yyAct = [...]int{ 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, - 385, 386, 387, 389, 296, 220, 314, 0, 1221, 0, + 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 167, 168, 169, 0, 1074, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3453,7 +3174,7 @@ var yyAct = [...]int{ 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, - 365, 385, 386, 387, 389, 296, 220, 314, 0, 1219, + 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, @@ -3487,7 +3208,7 @@ var yyAct = [...]int{ 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, - 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, + 274, 1344, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, @@ -3500,7 +3221,7 @@ var yyAct = [...]int{ 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, - 1215, 0, 0, 0, 0, 0, 0, 223, 0, 0, + 1227, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, @@ -3546,7 +3267,7 @@ var yyAct = [...]int{ 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 1213, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 1225, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, @@ -3592,7 +3313,7 @@ var yyAct = [...]int{ 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 1211, 0, 0, 0, 0, 0, 0, 223, + 314, 0, 1223, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, @@ -3638,13 +3359,13 @@ var yyAct = [...]int{ 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, + 220, 314, 0, 1221, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, - 207, 175, 311, 376, 237, 1186, 0, 0, 167, 168, + 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3684,223 +3405,84 @@ var yyAct = [...]int{ 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 1087, 0, 0, 0, 0, 0, 0, 314, - 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, - 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, - 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, - 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, - 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, - 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, - 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, + 296, 220, 314, 0, 1219, 0, 0, 0, 0, 0, + 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, + 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, + 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, + 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, - 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, - 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, - 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, - 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, - 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, - 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, - 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, - 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, - 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, - 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, - 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, - 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, - 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, - 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, - 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, - 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, + 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, + 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, + 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, + 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, + 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, + 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, + 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, + 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, + 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, + 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, + 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, + 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, + 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, + 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, + 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, + 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, + 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, + 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, + 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, + 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, + 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, + 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, + 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, + 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, + 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, + 389, 296, 220, 314, 0, 1215, 0, 0, 0, 0, + 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, + 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, - 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, - 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, - 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, - 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, - 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, - 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, - 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, - 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, - 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 0, 0, 0, 0, 0, 0, 1078, 223, - 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, - 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, - 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, - 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, - 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, + 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, + 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, - 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, - 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, - 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, - 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, - 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, - 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, - 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, - 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, - 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, - 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, - 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, - 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, - 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, - 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, - 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, - 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, - 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, - 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, - 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, - 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, - 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, - 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, - 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, - 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, - 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, - 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, - 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, - 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, - 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, - 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, - 169, 0, 934, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, - 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, - 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, - 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, - 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, - 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, - 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, - 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, - 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, - 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, - 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, - 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, - 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, - 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 492, 0, 245, 0, 300, 0, - 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, - 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, - 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, - 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, - 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, - 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, - 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, - 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, - 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, - 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, - 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, - 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, - 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, - 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, - 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, - 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, - 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, - 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, - 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, - 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, - 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, - 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, - 409, 421, 426, 491, 405, 427, 0, 282, 0, 0, - 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, - 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, - 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, - 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, - 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, - 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, - 0, 0, 441, 0, 423, 0, 0, 0, 0, 0, - 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, - 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, - 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, - 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, + 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, + 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, + 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, + 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, @@ -3915,7 +3497,7 @@ var yyAct = [...]int{ 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, + 387, 389, 296, 220, 314, 0, 1213, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, @@ -3948,40 +3530,457 @@ var yyAct = [...]int{ 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, - 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, + 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 314, 0, 1211, 0, 0, + 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, + 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, + 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, + 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, + 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, + 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, + 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, + 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, + 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, + 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, + 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, + 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, + 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, + 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, + 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, + 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, + 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, + 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, + 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, + 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, + 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, + 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, + 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, + 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, + 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, + 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, + 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, + 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, + 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, + 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, + 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, + 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, + 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, + 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, + 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, + 1186, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, + 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, + 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, + 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, + 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, + 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, + 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, + 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, + 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, + 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, + 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, + 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, + 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, + 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, + 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, + 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, + 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 184, 274, + 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, + 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, + 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, + 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, + 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, + 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, + 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, + 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, + 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, + 365, 385, 386, 387, 389, 296, 220, 1087, 0, 0, + 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, + 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, + 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, + 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, + 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, + 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, + 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, + 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, + 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, + 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, + 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, + 0, 0, 0, 1078, 223, 0, 0, 0, 0, 0, + 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, + 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, + 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, + 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, + 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, + 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, + 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, + 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, + 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, + 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, + 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, + 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, + 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, + 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, + 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, + 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, + 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, + 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, + 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, + 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, + 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, + 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, + 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, + 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, + 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, + 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, + 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, + 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, + 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, + 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, + 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, + 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, + 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, + 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, + 0, 0, 0, 167, 168, 169, 0, 934, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, + 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, + 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, + 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, + 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, + 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, + 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, + 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, + 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, + 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, + 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, + 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, + 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, + 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, + 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, + 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, + 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 184, 274, + 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, + 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, + 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, + 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, + 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, + 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, + 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, + 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, + 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, + 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, + 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, + 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, + 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, + 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 492, + 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, + 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, + 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, + 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, + 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, + 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 491, 405, + 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, + 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, + 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, + 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, + 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 245, 0, 300, 0, 0, 441, 0, 423, + 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, + 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, + 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, + 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, + 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, + 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, + 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, + 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, + 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, + 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, + 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1179, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 103, 0, 125, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, + 0, 0, 0, 0, 124, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 142, 0, 143, 0, 0, 0, 0, 1183, + 1184, 134, 133, 160, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 129, 1185, 136, 0, 1182, 0, 130, + 131, 0, 0, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 151, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 132, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, + 0, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, - 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, - 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, - 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, - 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, - 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, - 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, - 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, - 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 139, 144, 141, 147, 148, 149, 150, 152, + 153, 154, 155, 0, 0, 0, 0, 0, 156, 157, + 158, 159, } var yyPact = [...]int{ - 2654, -1000, -346, 1684, -1000, -1000, -1000, -1000, -1000, -1000, + 3647, -1000, -351, 1605, -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, 1642, 1279, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 579, 1324, -1000, 1553, 253, -1000, 28015, 377, - -1000, 27554, 376, 2403, 28015, -1000, 111, -1000, 103, 28015, - 109, 27093, -1000, -1000, -289, 12769, 1494, 8, 7, 28015, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1327, - 1606, 1607, 1640, 1124, 1577, -1000, 10912, 10912, 305, 305, - 305, 9068, -1000, -1000, 16931, 28015, 28015, 139, -1000, 1553, - -1000, -1000, 160, -1000, 207, 1257, -1000, 1256, -1000, 555, - 457, 235, 297, 296, 228, 227, 226, 222, 221, 218, - 216, 204, 239, -1000, 524, 524, -172, -183, 2364, 298, - 298, 298, 335, 1517, 1514, -1000, 495, -1000, 524, 524, - 147, 524, 524, 524, 524, 179, 178, 524, 524, 524, - 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, - 524, 524, 267, 1553, 173, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1559, 1204, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 579, 1219, -1000, 1464, 4260, -1000, 27530, 402, + -1000, 27069, 399, 116, 27530, -1000, 93, -1000, 77, 27530, + 89, 26608, -1000, -1000, -288, 12284, 1398, -42, -44, 27530, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1218, + 1517, 1525, 1557, 1067, 1606, -1000, 10427, 10427, 339, 339, + 339, 8583, -1000, -1000, 16446, 27530, 27530, 199, -1000, 1464, + -1000, -1000, 140, -1000, 232, 1162, -1000, 1159, -1000, 457, + 377, 262, 305, 297, 261, 256, 252, 250, 241, 218, + 208, 205, 267, -1000, 529, 529, -183, -184, 2791, 309, + 309, 309, 363, 1437, 1436, -1000, 498, -1000, 529, 529, + 139, 529, 529, 529, 529, 183, 178, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 225, 1464, 161, -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, @@ -4008,26 +4007,26 @@ 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, -1000, -1000, 28015, - 130, 28015, -1000, 434, 28015, 612, 612, 36, 612, 612, - 612, 612, 108, 458, -43, -1000, 104, 168, 116, 170, - 617, 97, 57, -1000, -1000, 164, 617, 102, -1000, 612, - 7168, 7168, 7168, -1000, 1542, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 331, -1000, -1000, -1000, -1000, 28015, 26632, - 282, 564, -1000, -1000, -1000, 32, -1000, -1000, 1118, 752, - -1000, 12769, 2286, 1260, 1260, -1000, -1000, 394, -1000, -1000, - 14152, 14152, 14152, 14152, 14152, 14152, 14152, 14152, 14152, 14152, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 27530, + 192, 27530, -1000, 475, 27530, 650, 650, 15, 650, 650, + 650, 650, 80, 467, -51, -1000, 79, 173, 75, 153, + 632, 230, 57, -1000, -1000, 150, 632, 14, -1000, 650, + 6683, 6683, 6683, -1000, 1452, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 361, -1000, -1000, -1000, -1000, 27530, 26147, + 307, 552, -1000, -1000, -1000, -1, -1000, -1000, 1112, 559, + -1000, 12284, 1278, 1167, 1167, -1000, -1000, 453, -1000, -1000, + 13667, 13667, 13667, 13667, 13667, 13667, 13667, 13667, 13667, 13667, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1260, 433, -1000, 12308, 1260, 1260, - 1260, 1260, 1260, 1260, 1260, 1260, 12769, 1260, 1260, 1260, - 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, - 1260, 1260, 1260, 1260, -1000, -1000, -1000, 28015, -1000, 1260, - 125, 1642, -1000, 1279, -1000, -1000, -1000, 1552, 12769, 12769, - 1642, -1000, 1450, 10912, -1000, -1000, 1476, -1000, -1000, -1000, - -1000, -1000, 690, 1658, -1000, 15535, 431, 1657, 26171, -1000, - 19710, 25710, 1255, 8593, -62, -1000, -1000, -1000, 541, 18788, + -1000, -1000, -1000, -1000, 1167, 473, -1000, 11823, 1167, 1167, + 1167, 1167, 1167, 1167, 1167, 1167, 12284, 1167, 1167, 1167, + 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, + 1167, 1167, 1167, 1167, -1000, -1000, -1000, 27530, -1000, 1167, + 125, 1559, -1000, 1204, -1000, -1000, -1000, 1473, 12284, 12284, + 1559, -1000, 1325, 10427, -1000, -1000, 1460, -1000, -1000, -1000, + -1000, -1000, 703, 1588, -1000, 15050, 468, 1587, 25686, -1000, + 19225, 25225, 1158, 8108, -62, -1000, -1000, -1000, 543, 18303, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1542, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1452, -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, @@ -4040,194 +4039,195 @@ 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, 1171, 28015, -1000, -1000, 4422, 954, -1000, - 1323, -1000, 1167, -1000, 1273, 1271, 374, 954, 365, 364, - 363, -1000, -99, -1000, -1000, -1000, -1000, -1000, 524, 524, - 236, 253, 4033, -1000, -1000, -1000, 25242, 1321, 954, -1000, - 1320, -1000, 1567, 293, 498, 498, 954, -1000, -1000, 28015, - 954, 1566, 1564, 28015, 28015, -1000, 24781, -1000, 24320, 23859, - 879, 28015, 23398, 22937, 22476, 22015, 21554, -1000, 1404, -1000, - 1277, -1000, -1000, -1000, 28015, 28015, 28015, 48, -1000, -1000, - 28015, 954, -1000, -1000, 871, 862, 524, 524, 851, 985, - 984, 979, 524, 524, 835, 977, 1016, 167, 833, 798, - 793, 865, 971, 106, 863, 848, 783, 28015, 1304, 28015, - -1000, 163, 496, 265, 537, 1553, 1493, 1252, 322, 373, - 954, 302, 302, -1000, 7643, -1000, -1000, 967, 12769, -1000, - 628, 617, 617, -1000, -1000, -1000, -1000, -1000, -1000, 612, - 28015, 628, -1000, -1000, -1000, 617, 612, 28015, 612, 612, - 612, 612, 617, 617, 617, 612, 28015, 28015, 28015, 28015, - 28015, 28015, 28015, 28015, 28015, 7168, 7168, 7168, 500, 612, - -1000, 1397, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 107, -1000, -1000, -1000, -1000, -1000, 1684, -1000, -1000, -1000, - -118, 1235, 21093, -1000, -293, -294, -295, -296, -1000, -1000, - -1000, -297, -299, -1000, -1000, -1000, 12769, 12769, 12769, 12769, - 766, 507, 14152, 716, 718, 14152, 14152, 14152, 14152, 14152, - 14152, 14152, 14152, 14152, 14152, 14152, 14152, 14152, 14152, 14152, - 582, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 954, - -1000, 1681, 1138, 1138, 468, 468, 468, 468, 468, 468, - 468, 468, 468, 14613, 9529, 7643, 1124, 1158, 1642, 10912, - 10912, 12769, 12769, 11834, 11373, 10912, 1530, 571, 752, 28015, - -1000, 981, -1000, -1000, 13691, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 28015, 28015, 10912, - 10912, 10912, 10912, 10912, -1000, 1231, -1000, -177, 16470, 12769, - 964, 1607, 1124, 1476, 1576, 1676, 492, 1049, 1230, -1000, - 1019, 1607, 18327, 1128, -1000, 1476, -1000, -1000, -1000, 28015, - -1000, -1000, 20632, -1000, -1000, 6693, 28015, 200, 28015, -1000, - 1270, 1395, -1000, -1000, -1000, 1589, 17866, 28015, 1229, 1122, - -1000, -1000, 428, 8118, -62, -1000, 8118, 1176, -1000, -35, - -15, 9990, 460, -1000, -1000, -1000, 2364, 15074, 1039, 1507, - 41, -1000, -1000, -1000, 1273, -1000, 1273, 1273, 1273, 1273, - 48, 48, 48, 48, -1000, -1000, -1000, -1000, -1000, 1301, - 1299, -1000, 1273, 1273, 1273, 1273, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1074, 27530, -1000, -1000, 4377, 920, -1000, + 1217, -1000, 1058, -1000, 1177, 1228, 398, 920, 388, 385, + 381, -1000, -142, -1000, -1000, -1000, -1000, -1000, 529, 529, + 266, 4260, 28005, -1000, -1000, -1000, 24757, 1216, 920, -1000, + 1205, -1000, 1485, 335, 514, 514, 920, -1000, -1000, 27530, + 920, 1484, 1481, 27530, 27530, -1000, 24296, -1000, 23835, 23374, + 851, 27530, 22913, 22452, 21991, 21530, 21069, -1000, 1300, -1000, + 1201, -1000, -1000, -1000, 27530, 27530, 27530, -33, -1000, -1000, + 27530, 920, -1000, -1000, 839, 811, 529, 529, 809, 977, + 971, 963, 529, 529, 806, 961, 957, 167, 805, 804, + 798, 858, 958, 104, 810, 773, 795, 27530, 1197, 27530, + -1000, 146, 553, 243, 542, 1464, 1396, 1157, 355, 395, + 920, 315, 315, -1000, 7158, -1000, -1000, 956, 12284, -1000, + 633, 632, 632, -1000, -1000, -1000, -1000, -1000, -1000, 650, + 27530, 633, -1000, -1000, -1000, 632, 650, 27530, 650, 650, + 650, 650, 632, 632, 632, 650, 27530, 27530, 27530, 27530, + 27530, 27530, 27530, 27530, 27530, 6683, 6683, 6683, 509, 650, + -1000, 1269, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 88, -1000, -1000, -1000, -1000, -1000, 1605, -1000, -1000, -1000, + -117, 1156, 20608, -1000, -292, -294, -297, -301, -1000, -1000, + -1000, -305, -308, -1000, -1000, -1000, 12284, 12284, 12284, 12284, + 850, 511, 13667, 701, 718, 13667, 13667, 13667, 13667, 13667, + 13667, 13667, 13667, 13667, 13667, 13667, 13667, 13667, 13667, 13667, + 685, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 920, + -1000, 1603, 966, 966, 485, 485, 485, 485, 485, 485, + 485, 485, 485, 14128, 9044, 7158, 1067, 1053, 1559, 10427, + 10427, 12284, 12284, 11349, 10888, 10427, 1447, 567, 559, 27530, + -1000, 840, -1000, -1000, 13206, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 27530, 27530, 10427, + 10427, 10427, 10427, 10427, -1000, 1154, -1000, -175, 15985, 12284, + 947, 1525, 1067, 1460, 1491, 1598, 499, 913, 1152, -1000, + 741, 1525, 17842, 1170, -1000, 1460, -1000, -1000, -1000, 27530, + -1000, -1000, 20147, -1000, -1000, 6208, 27530, 201, 27530, -1000, + 1148, 1362, -1000, -1000, -1000, 1512, 17381, 27530, 1141, 1127, + -1000, -1000, 462, 7633, -62, -1000, 7633, 1136, -1000, -103, + -70, 9505, 464, -1000, -1000, -1000, 2791, 14589, 1088, 1428, + -16, -1000, -1000, -1000, 1177, -1000, 1177, 1177, 1177, 1177, + -33, -33, -33, -33, -1000, -1000, -1000, -1000, -1000, 1195, + 1194, -1000, 1177, 1177, 1177, 1177, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1296, 1296, 1296, 1278, 1278, 284, -1000, - 12769, 172, 28015, 1575, 739, 163, 303, 1353, 954, 954, - 954, 303, -1000, 965, 889, -1000, 1225, -1000, -1000, 1639, - -1000, -1000, 587, 658, 649, 576, 28015, 136, 199, -1000, - 274, -1000, 28015, 954, 1562, 498, 954, -1000, 954, -1000, - -1000, -1000, -1000, 427, -1000, -1000, 954, 1224, -1000, 1250, - 685, 633, 654, 614, 1224, -1000, -1000, -137, 1224, -1000, - 1224, -1000, 1224, -1000, 1224, -1000, 1224, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 549, 28015, 136, 582, -1000, - 320, -1000, -1000, 582, 582, -1000, -1000, -1000, -1000, 957, - 956, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1192, 1192, 1192, 1179, 1179, 304, -1000, + 12284, 109, 27530, 1502, 787, 146, 329, 1255, 920, 920, + 920, 329, -1000, 933, 926, -1000, 1145, -1000, -1000, 1556, + -1000, -1000, 601, 640, 621, 578, 27530, 129, 198, -1000, + 296, -1000, 27530, 920, 1480, 514, 920, -1000, 920, -1000, + -1000, -1000, -1000, 459, -1000, -1000, 920, 1144, -1000, 1151, + 698, 611, 692, 610, 1144, -1000, -1000, -162, 1144, -1000, + 1144, -1000, 1144, -1000, 1144, -1000, 1144, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 561, 27530, 129, 685, -1000, + 345, -1000, -1000, 685, 685, -1000, -1000, -1000, -1000, 946, + 939, -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, -342, 28015, -1000, - 157, 527, 184, 232, 205, 28015, 137, 1592, 153, 177, - 28015, 28015, 302, 1396, 28015, 1583, 28015, -1000, -1000, -1000, - -1000, 752, 28015, -1000, -1000, 612, 612, -1000, -1000, 28015, - 612, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 612, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -344, 27530, -1000, + 138, 539, 187, 273, 204, 27530, 118, 1519, 157, 170, + 27530, 27530, 315, 1267, 27530, 1505, 27530, -1000, -1000, -1000, + -1000, 559, 27530, -1000, -1000, 650, 650, -1000, -1000, 27530, + 650, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 650, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 953, -1000, 28015, 28015, -1000, -1000, - -1000, -1000, -1000, 64, -39, 186, -1000, -1000, -1000, -1000, - 1600, -1000, 752, 507, 544, 525, -1000, -1000, 751, -1000, - -1000, 1799, -1000, -1000, -1000, -1000, 716, 14152, 14152, 14152, - 560, 1799, 1541, 1283, 1307, 468, 681, 681, 490, 490, - 490, 490, 490, 698, 698, -1000, -1000, -1000, -1000, 981, - -1000, -1000, -1000, 981, 10912, 10912, 1220, 1260, 419, -1000, - 1327, -1000, -1000, 1607, 1105, 1105, 972, 834, 588, 1656, - 1105, 581, 1654, 1105, 1105, 10912, -1000, -1000, 603, -1000, - 12769, 981, -1000, 794, 1218, 1197, 1105, 981, 981, 1105, - 1105, 28015, -1000, -285, -1000, -73, 449, 1260, -1000, 20171, - -1000, -1000, 981, 1118, -1000, 1552, -1000, -1000, 1486, -1000, - 1447, 12769, 12769, 12769, -1000, -1000, -1000, 1552, 1610, -1000, - 1464, 1461, 1648, 10912, 19710, 1476, -1000, -1000, -1000, 401, - 1648, 1228, 1260, -1000, 28015, 19710, 19710, 19710, 19710, 19710, - -1000, 1418, 1409, -1000, 1424, 1405, 1438, 28015, -1000, 1132, - 1124, 17866, 200, 1191, 19710, 28015, -1000, -1000, 19710, 28015, - 6218, -1000, 1176, -62, -28, -1000, -1000, -1000, -1000, 752, - -1000, 881, -1000, 2505, -1000, 278, -1000, -1000, -1000, -1000, - 517, 1588, 1501, 37, -1000, -1000, 48, 48, -1000, -1000, - 460, 660, 460, 460, 460, 946, 946, -1000, -1000, -1000, - -1000, -1000, 735, -1000, -1000, -1000, 715, -1000, -1000, 1072, - 1377, 172, -1000, -1000, 524, 941, 1509, 28015, -1000, -1000, - 1036, 157, 28015, 592, 1394, -1000, 1353, 1353, 1353, 28015, - -1000, -1000, -1000, -1000, 3985, 28015, 1126, -1000, 133, 28015, - 1020, 28015, -1000, 1111, 1292, -1000, 954, -1000, -1000, 7643, - -1000, 28015, 1260, -1000, -1000, -1000, -1000, 372, 1551, 1549, - 136, 133, 460, 954, -1000, -1000, -1000, -1000, -1000, -347, - 1107, 350, 145, 159, 28015, 28015, 28015, 28015, 28015, 410, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 175, 317, -1000, - 28015, 28015, 369, -1000, -1000, -1000, 617, -1000, -1000, 617, - -1000, -1000, -1000, -1000, -1000, -1000, 1543, -50, -319, -1000, - -312, -1000, -1000, -1000, -1000, 560, 1799, 641, -1000, 14152, - 14152, -1000, -1000, 1105, 1105, 10912, 7643, 1642, 1552, -1000, - -1000, 387, 582, 387, 14152, 14152, -1000, 14152, 14152, -1000, - -112, 1192, 550, -1000, 12769, 743, -1000, -1000, 14152, 14152, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 362, - 361, 352, 28015, -1000, -1000, -1000, 919, 938, 1432, 752, - 752, -1000, -1000, 28015, -1000, -1000, -1000, -1000, 1646, 12769, - -1000, 1162, -1000, 5743, 1607, 1393, 28015, 1260, 1684, 16009, - 28015, 1267, -1000, 526, 1395, 1361, 1384, 1305, -1000, -1000, - -1000, -1000, 1387, -1000, 1295, -1000, -1000, -1000, -1000, -1000, - 1124, 1648, 19710, 1151, -1000, 1151, -1000, 400, -1000, -1000, - -1000, -52, -25, -1000, -1000, -1000, 2364, -1000, -1000, -1000, - 673, 14152, 1662, -1000, 922, 1559, -1000, 1557, 1285, -1000, - -1000, -1000, 460, 460, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1095, -1000, 1092, 1156, 1088, 47, -1000, 1233, 1524, - 524, 524, -1000, 712, -1000, 954, -1000, -1000, 299, -1000, - 1578, 28015, 1382, 1364, 1363, -1000, 1633, 1135, -1000, 28015, - -1000, -1000, 28015, -1000, -1000, 1454, 172, 28015, -1000, -1000, - -1000, 199, 28015, -1000, 1138, 133, -1000, -1000, -1000, -1000, - -1000, -1000, 28015, 149, -1000, 1284, 838, -1000, 1332, -1000, - -1000, -1000, -1000, 135, 182, -1000, 28015, 360, 1377, 28015, - -1000, -1000, -1000, 612, 612, -1000, 1522, -1000, 954, -1000, - 14152, 1799, 1799, -1000, -1000, 981, -1000, 1607, -1000, 981, - 1273, 1273, -1000, 1273, 1278, -1000, 1273, 94, 1273, 90, - 981, 981, 2210, 1885, 1739, 1258, 1260, -107, -1000, 752, - 12769, 1188, 976, 1260, 1260, 1260, 1061, 917, 48, -1000, - -1000, -1000, 1644, 1631, 752, -1000, -1000, -1000, 1569, 1187, - 1069, -1000, -1000, 10451, 1074, 1453, 383, 1061, 1642, 28015, - 12769, -1000, -1000, 12769, 1269, -1000, 12769, -1000, -1000, -1000, - 1642, 1642, 1151, -1000, -1000, 484, -1000, -1000, -1000, -1000, - -1000, 1799, -58, -1000, -1000, -1000, 14152, -1000, -1000, 48, - 915, 48, 709, -1000, 705, -1000, -1000, -227, -1000, -1000, - 1236, 1336, -1000, -1000, 28015, -1000, -1000, 28015, 28015, 28015, - 28015, 28015, -1000, -1000, 196, -1000, 1058, 1054, -1000, -180, - -1000, -1000, 1266, -1000, -1000, -1000, 1015, -1000, -139, 954, - 28015, 28015, 28015, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1799, -1000, 1552, -1000, -1000, 233, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 14152, 14152, 14152, 14152, 14152, - 1607, 901, 752, 14152, 14152, 19249, 28015, 28015, 17392, 48, - 43, -1000, 12769, 12769, 1556, -1000, 1260, -1000, 1217, 28015, - 1260, 28015, -1000, 1607, -1000, 752, 752, 28015, 752, 1607, - -1000, -1000, 859, 460, -1000, 460, 1013, 1006, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 1266, -1000, -1000, -1000, - 1135, -1000, 193, 256, -1000, 199, -1000, -185, -188, 1587, - 28015, -1000, -1000, 7643, -1000, -1000, 1261, 1335, -1000, -1000, - -1000, -1000, 794, 794, 794, 794, 93, 981, -1000, 794, - 794, 1052, -1000, 1052, 1052, 449, -280, -1000, 1484, 1478, - 752, 1118, 1661, -1000, 1260, 1684, 375, 1069, -1000, -1000, - 1042, -1000, -1000, -1000, -1000, -1000, -1000, 1585, 1260, 28015, - -1000, -1000, -1000, 1279, 1011, 1098, -1000, 522, 28015, 28015, - -1000, -1000, -1000, -1000, 981, 150, -145, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 43, 287, -1000, 1477, 1478, -1000, - 1630, 1480, 1629, -1000, 28015, 1069, 28015, -1000, 682, 1279, - 13230, 1139, 203, -1000, 7643, 5268, 1005, -1000, -1000, 1429, - -135, -150, 1474, 1479, 1479, 1477, -1000, 1628, 1627, -1000, - 899, 1625, 898, 978, -1000, -1000, -1000, -1000, 203, 794, - 981, 28015, -1000, -59, -1000, -1000, -1000, -1000, -1000, 1332, - -1000, 1426, -1000, 1469, 784, -1000, -1000, -1000, -1000, 893, - 860, -1000, 753, -1000, -1000, -1000, -1000, 996, 280, -1000, - -1000, -139, -142, -1000, 695, -1000, -1000, -1000, -1000, -1000, - 1358, 161, -1000, -147, -1000, -1000, 1356, -1000, 1653, -1000, - -151, -1000, 1655, 425, 425, -1000, -1000, -1000, -1000, 273, - 799, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 938, -1000, 27530, 27530, -1000, -1000, + -1000, -1000, -1000, 44, -107, 169, -1000, -1000, -1000, -1000, + 1522, -1000, 559, 511, 717, 555, -1000, -1000, 792, -1000, + -1000, 2333, -1000, -1000, -1000, -1000, 701, 13667, 13667, 13667, + 564, 2333, 2604, 1870, 1740, 485, 651, 651, 505, 505, + 505, 505, 505, 681, 681, -1000, -1000, -1000, -1000, 840, + -1000, -1000, -1000, 840, 10427, 10427, 1143, 1167, 458, -1000, + 1218, -1000, -1000, 1525, 1035, 1035, 872, 834, 605, 1583, + 1035, 594, 1581, 1035, 1035, 10427, -1000, -1000, 596, -1000, + 12284, 840, -1000, 1182, 1139, 1137, 1035, 840, 840, 1035, + 1035, 27530, -1000, -284, -1000, -123, 474, 1167, -1000, 19686, + -1000, -1000, 840, 1112, -1000, 1473, -1000, -1000, 1415, -1000, + 1321, 12284, 12284, 12284, -1000, -1000, -1000, 1473, 1524, -1000, + 1339, 1331, 1571, 10427, 19225, 1460, -1000, -1000, -1000, 446, + 1571, 1130, 1167, -1000, 27530, 19225, 19225, 19225, 19225, 19225, + -1000, 1303, 1286, -1000, 1302, 1280, 1290, 27530, -1000, 1049, + 1067, 17381, 201, 1100, 19225, 27530, -1000, -1000, 19225, 27530, + 5733, -1000, 1136, -62, -111, -1000, -1000, -1000, -1000, 559, + -1000, 912, -1000, 2480, -1000, 299, -1000, -1000, -1000, -1000, + 484, 1510, 1402, -20, -1000, -1000, -33, -33, -1000, -1000, + 464, 751, 464, 464, 464, 937, 937, -1000, -1000, -1000, + -1000, -1000, 770, -1000, -1000, -1000, 754, -1000, -1000, 881, + 1233, 109, -1000, -1000, 529, 932, 1430, 27530, -1000, -1000, + 1075, 138, 27530, 582, 1266, -1000, 1255, 1255, 1255, 27530, + -1000, -1000, -1000, -1000, 3848, 27530, 1045, -1000, 126, 27530, + 1037, 27530, -1000, 1042, 1191, -1000, 920, -1000, -1000, 7158, + -1000, 27530, 1167, -1000, -1000, -1000, -1000, 390, 1461, 1459, + 129, 126, 464, 920, -1000, -1000, -1000, -1000, -1000, -347, + 1040, 370, 127, 124, 27530, 27530, 27530, 27530, 27530, 435, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 171, 336, -1000, + 27530, 27530, 403, -1000, -1000, -1000, 632, -1000, -1000, 632, + -1000, -1000, -1000, -1000, -1000, -1000, 1443, -112, -321, -1000, + -318, -1000, -1000, -1000, -1000, 564, 2333, 2309, -1000, 13667, + 13667, -1000, -1000, 1035, 1035, 10427, 7158, 1559, 1473, -1000, + -1000, 277, 685, 277, 13667, 13667, -1000, 13667, 13667, -1000, + -156, 1128, 573, -1000, 12284, 825, -1000, -1000, 13667, 13667, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 380, + 376, 375, 27530, -1000, -1000, -1000, 882, 925, 1315, 559, + 559, -1000, -1000, 27530, -1000, -1000, -1000, -1000, 1567, 12284, + -1000, 1134, -1000, 5258, 1525, 1265, 27530, 1167, 1605, 15524, + 27530, 1096, -1000, 535, 1362, 1252, 1264, 1294, -1000, -1000, + -1000, -1000, 1283, -1000, 1282, -1000, -1000, -1000, -1000, -1000, + 1067, 1571, 19225, 1078, -1000, 1078, -1000, 429, -1000, -1000, + -1000, -118, -128, -1000, -1000, -1000, 2791, -1000, -1000, -1000, + 662, 13667, 1597, -1000, 919, -1000, 1479, 1475, -1000, 1185, + -1000, -1000, -1000, 464, 464, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 1031, -1000, 1029, 1132, 1027, 49, -1000, 1174, + 1442, 529, 529, -1000, 752, -1000, 920, -1000, -1000, 366, + -1000, 1501, 27530, 1261, 1260, 1259, -1000, 1549, 1131, -1000, + 27530, -1000, -1000, 27530, -1000, -1000, 1329, 109, 27530, -1000, + -1000, -1000, 198, 27530, -1000, 966, 126, -1000, -1000, -1000, + -1000, -1000, -1000, 27530, 145, -1000, 1183, 755, -1000, 1208, + -1000, -1000, -1000, -1000, 62, 182, -1000, 27530, 394, 1233, + 27530, -1000, -1000, -1000, 650, 650, -1000, 1440, -1000, 920, + -1000, 13667, 2333, 2333, -1000, -1000, 840, -1000, 1525, -1000, + 840, 1177, 1177, -1000, 1177, 1179, -1000, 1177, 66, 1177, + 61, 840, 840, 2567, 2529, 2472, 2273, 1167, -150, -1000, + 559, 12284, 2211, 1886, 1167, 1167, 1167, 1020, 905, -33, + -1000, -1000, -1000, 1562, 1545, 559, -1000, -1000, -1000, 1474, + 1093, 1104, -1000, -1000, 9966, 1022, 1328, 425, 1020, 1559, + 27530, 12284, -1000, -1000, 12284, 1176, -1000, 12284, -1000, -1000, + -1000, 1559, 1559, 1078, -1000, -1000, 482, -1000, -1000, -1000, + -1000, -1000, 2333, -56, -1000, -1000, -1000, 13667, -1000, -1000, + -33, 901, -33, 720, -1000, 711, -1000, -1000, -225, -1000, + -1000, 1110, 1275, -1000, -1000, 27530, -1000, -1000, 27530, 27530, + 27530, 27530, 27530, -1000, -1000, 179, -1000, 1018, 1011, -1000, + -181, -1000, -1000, 1175, -1000, -1000, -1000, 918, -1000, -167, + 920, 27530, 27530, 27530, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 2333, -1000, 1473, -1000, -1000, 180, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 13667, 13667, 13667, 13667, + 13667, 1525, 899, 559, 13667, 13667, 18764, 27530, 27530, 16907, + -33, -17, -1000, 12284, 12284, 1469, -1000, 1167, -1000, 1166, + 27530, 1167, 27530, -1000, 1525, -1000, 559, 559, 27530, 559, + 1525, -1000, -1000, 1311, 464, -1000, 464, 886, 856, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1175, -1000, -1000, + -1000, 1131, -1000, 193, 283, -1000, 198, -1000, -186, -190, + 1508, 27530, -1000, -1000, 7158, -1000, -1000, 1173, 1235, -1000, + -1000, -1000, -1000, 1182, 1182, 1182, 1182, 202, 840, -1000, + 1182, 1182, 1005, -1000, 1005, 1005, 474, -279, -1000, 1393, + 1352, 559, 1112, 1593, -1000, 1167, 1605, 417, 1104, -1000, + -1000, 1001, -1000, -1000, -1000, -1000, -1000, -1000, 1507, 1167, + 27530, -1000, -1000, -1000, 1204, 996, 1111, -1000, 528, 27530, + 27530, -1000, -1000, -1000, -1000, 840, 123, -173, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -17, 246, -1000, 1389, 1352, + -1000, 1544, 1388, 1533, -1000, 27530, 1104, 27530, -1000, 759, + 1204, 12745, 1164, 175, -1000, 7158, 4783, 991, -1000, -1000, + 1312, -159, -178, 1371, 1373, 1373, 1389, -1000, 1532, 1531, + -1000, 897, 1530, 890, 1101, -1000, -1000, -1000, 613, 889, + -1000, -1000, -1000, 175, 1182, 840, 27530, -1000, -58, -1000, + -1000, -1000, -1000, -1000, 1208, -1000, 1310, -1000, 1344, 776, + -1000, -1000, -1000, -1000, 888, 867, -1000, 865, -1000, -1000, + -1000, -1000, -1000, -1000, 984, 300, -1000, -1000, -167, -169, + -1000, 733, -1000, -1000, -1000, -1000, -1000, 1258, 141, -1000, + -176, -1000, -1000, 1234, -1000, 1580, -1000, -179, -1000, 1591, + 437, 437, -1000, -1000, -1000, -1000, 295, 835, -1000, -1000, + -1000, -1000, } var yyPgo = [...]int{ - 0, 1973, 1971, 12, 90, 85, 1970, 1969, 1968, 1967, - 129, 128, 127, 1966, 1964, 1963, 1962, 1961, 1960, 1959, - 1958, 1957, 1956, 1954, 1953, 63, 139, 42, 45, 141, - 1951, 1950, 37, 1945, 1944, 1928, 120, 119, 570, 1927, - 118, 1924, 1920, 1917, 1912, 1911, 1909, 1908, 1907, 1906, - 1904, 1901, 1900, 1899, 1898, 215, 1890, 1888, 5, 1887, - 33, 1885, 1868, 1864, 1863, 1859, 91, 1858, 1856, 1855, - 115, 1854, 1853, 56, 210, 51, 79, 1852, 1851, 78, - 122, 1850, 75, 103, 1849, 1846, 1346, 1845, 50, 89, - 100, 1839, 41, 1838, 1837, 68, 1835, 1834, 1832, 77, - 1831, 1830, 2941, 1829, 74, 82, 10, 40, 1827, 1825, - 1824, 1823, 36, 47, 1822, 1821, 19, 1817, 1816, 133, - 1814, 88, 28, 1813, 14, 16, 22, 1811, 86, 1808, - 44, 61, 34, 1807, 83, 1805, 1804, 1802, 1801, 23, - 1800, 80, 104, 24, 1799, 1798, 1797, 20, 11, 1795, - 1793, 1791, 1789, 1788, 1787, 6, 1786, 17, 1785, 27, - 1784, 8, 18, 76, 87, 29, 7, 1781, 121, 1780, - 25, 111, 67, 108, 1778, 1777, 1776, 795, 149, 1775, - 1774, 58, 1773, 93, 102, 1770, 162, 1769, 1768, 65, - 1293, 1458, 31, 113, 1767, 1763, 2487, 59, 81, 21, - 1762, 69, 1761, 1760, 1758, 138, 117, 43, 890, 53, - 1757, 1756, 1754, 1752, 1751, 1750, 1748, 32, 125, 26, - 109, 30, 1747, 1746, 1745, 72, 46, 1743, 106, 105, - 73, 110, 1742, 116, 124, 64, 1741, 39, 1740, 1739, - 1732, 1729, 48, 1728, 1721, 1720, 1719, 107, 101, 71, - 38, 1718, 35, 66, 99, 98, 1715, 15, 140, 9, - 1713, 4, 0, 1711, 3, 130, 171, 112, 1710, 1704, - 1, 1702, 2, 1701, 1700, 84, 1697, 1695, 1694, 1693, - 1692, 3123, 1826, 114, 1690, 126, + 0, 1854, 1853, 14, 86, 89, 1852, 1851, 1850, 1849, + 128, 127, 123, 1846, 1843, 1841, 1840, 1839, 1838, 1836, + 1835, 1833, 1832, 1831, 1828, 61, 140, 41, 45, 141, + 1827, 1826, 28, 1825, 1824, 1823, 152, 120, 587, 1822, + 151, 1820, 1819, 1818, 1816, 1815, 1814, 1812, 1811, 1810, + 1809, 1808, 1806, 1805, 1804, 260, 1803, 1802, 4, 1801, + 33, 1800, 1799, 1797, 1793, 1791, 93, 1790, 1789, 1788, + 114, 1787, 1786, 48, 190, 51, 82, 1785, 1781, 79, + 121, 1780, 64, 104, 1779, 1778, 503, 1777, 42, 76, + 91, 1776, 44, 1774, 1773, 53, 1771, 1769, 1768, 78, + 1764, 1763, 1889, 1762, 72, 88, 17, 40, 1761, 1760, + 1759, 1757, 37, 2122, 1756, 1755, 23, 1754, 1752, 138, + 1751, 99, 21, 1750, 19, 13, 20, 1749, 90, 1748, + 103, 47, 35, 1746, 84, 1745, 1744, 1743, 1740, 43, + 1738, 80, 107, 22, 1737, 1735, 1732, 18, 11, 1729, + 1728, 1727, 1726, 1723, 1722, 10, 1721, 16, 1719, 27, + 1718, 8, 12, 74, 67, 24, 6, 1716, 154, 1715, + 29, 115, 75, 113, 1713, 1712, 1710, 885, 137, 1709, + 1708, 68, 1707, 100, 101, 1706, 162, 1705, 1702, 56, + 1294, 1459, 34, 116, 1700, 1699, 2628, 59, 81, 30, + 1698, 57, 1695, 1693, 1692, 124, 117, 69, 867, 46, + 1691, 1690, 1689, 1688, 1687, 1686, 1685, 31, 32, 63, + 108, 25, 1682, 1680, 1679, 65, 39, 1678, 111, 106, + 73, 110, 1676, 119, 94, 58, 1675, 83, 1671, 1665, + 1663, 1657, 50, 1656, 1653, 1652, 1651, 109, 105, 71, + 36, 1650, 38, 66, 98, 102, 1644, 26, 122, 7, + 1642, 2, 0, 1641, 3, 130, 164, 118, 1640, 1639, + 5, 1630, 1, 1629, 1625, 85, 1622, 1621, 1614, 9, + 1613, 1612, 182, 2170, 112, 1611, 125, } -//line sql.y:5252 +//line sql.y:5278 type yySymType struct { union interface{} empty struct{} @@ -4670,13 +4670,13 @@ func (st *yySymType) whensUnion() []*When { } var yyR1 = [...]int{ - 0, 279, 280, 280, 1, 1, 1, 1, 1, 1, + 0, 280, 281, 281, 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, 262, 262, 262, 265, 265, 21, 50, 3, 3, 3, 3, 2, 2, 8, 9, 4, 5, 5, 10, 10, 62, 62, 11, 12, 12, - 12, 12, 283, 283, 97, 97, 95, 95, 96, 96, + 12, 12, 284, 284, 97, 97, 95, 95, 96, 96, 163, 163, 13, 14, 14, 173, 173, 172, 172, 172, 174, 174, 174, 174, 208, 208, 15, 15, 15, 15, 15, 71, 71, 264, 264, 263, 261, 261, 260, 260, @@ -4684,89 +4684,90 @@ var yyR1 = [...]int{ 266, 238, 39, 39, 38, 38, 38, 38, 40, 40, 37, 37, 36, 36, 240, 240, 227, 227, 239, 239, 239, 239, 239, 239, 239, 226, 226, 85, 85, 145, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 278, 278, 146, 146, 210, 210, 210, 210, 213, 213, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 212, - 212, 212, 212, 212, 214, 214, 214, 214, 214, 215, - 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 216, 216, 216, 216, 216, 216, - 216, 216, 225, 225, 217, 217, 220, 220, 221, 221, - 221, 222, 222, 223, 223, 218, 218, 218, 218, 219, - 219, 219, 228, 252, 252, 251, 251, 249, 249, 249, - 249, 237, 237, 246, 246, 246, 246, 246, 236, 236, - 232, 232, 232, 233, 233, 234, 234, 231, 231, 235, - 235, 248, 248, 247, 229, 229, 230, 230, 254, 254, - 254, 254, 255, 271, 272, 270, 270, 270, 270, 270, - 60, 60, 60, 185, 185, 185, 244, 244, 243, 243, - 243, 245, 245, 242, 242, 242, 242, 242, 242, 242, + 145, 145, 145, 145, 145, 145, 145, 278, 278, 146, + 146, 146, 146, 146, 146, 279, 279, 279, 279, 210, + 210, 210, 210, 213, 213, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 212, 212, 212, 212, 212, 214, + 214, 214, 214, 214, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, 215, 216, + 216, 216, 216, 216, 216, 216, 216, 225, 225, 217, + 217, 220, 220, 221, 221, 221, 222, 222, 223, 223, + 218, 218, 218, 218, 219, 219, 219, 228, 252, 252, + 251, 251, 249, 249, 249, 249, 237, 237, 246, 246, + 246, 246, 246, 236, 236, 232, 232, 232, 233, 233, + 234, 234, 231, 231, 235, 235, 248, 248, 247, 229, + 229, 230, 230, 254, 254, 254, 254, 255, 271, 272, + 270, 270, 270, 270, 270, 60, 60, 60, 185, 185, + 185, 244, 244, 243, 243, 243, 245, 245, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 180, 180, 180, 269, 269, 269, 269, 269, - 269, 268, 268, 268, 241, 241, 241, 267, 267, 131, - 131, 132, 132, 30, 30, 30, 30, 30, 30, 29, - 29, 29, 25, 25, 25, 25, 25, 25, 25, 25, + 242, 242, 242, 242, 242, 242, 242, 180, 180, 180, + 269, 269, 269, 269, 269, 269, 268, 268, 268, 241, + 241, 241, 267, 267, 131, 131, 132, 132, 30, 30, + 30, 30, 30, 30, 29, 29, 29, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 31, 31, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 16, 16, 16, 16, 16, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 31, + 31, 26, 26, 26, 26, 26, 26, 26, 26, 26, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 258, 258, 258, 258, 258, 258, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 258, + 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 258, 258, 258, 224, 224, 224, 256, - 256, 257, 257, 17, 22, 22, 18, 18, 18, 18, - 19, 19, 41, 42, 42, 42, 42, 42, 42, 42, + 258, 224, 224, 224, 256, 256, 257, 257, 17, 22, + 22, 18, 18, 18, 18, 19, 19, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 273, - 273, 179, 179, 187, 187, 178, 178, 201, 201, 201, - 181, 181, 181, 182, 182, 277, 277, 277, 43, 43, - 45, 45, 46, 47, 47, 203, 203, 204, 204, 48, - 49, 61, 61, 61, 61, 61, 61, 63, 63, 63, - 7, 7, 7, 7, 57, 57, 57, 6, 6, 44, - 44, 51, 274, 274, 275, 276, 276, 276, 276, 52, - 54, 20, 20, 20, 20, 20, 20, 78, 78, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 72, 72, 72, 67, 67, 284, 55, 56, 56, - 70, 70, 70, 64, 64, 64, 69, 69, 69, 75, - 75, 77, 77, 77, 77, 77, 79, 79, 79, 79, - 79, 79, 79, 74, 74, 76, 76, 76, 76, 194, - 194, 194, 193, 193, 87, 87, 88, 88, 89, 89, - 90, 90, 90, 129, 105, 105, 162, 162, 161, 161, - 164, 164, 91, 91, 91, 91, 92, 92, 93, 93, - 94, 94, 202, 202, 199, 199, 199, 198, 198, 98, - 98, 98, 100, 99, 99, 99, 99, 101, 101, 103, - 103, 102, 102, 104, 106, 106, 106, 106, 106, 107, - 107, 86, 86, 86, 86, 86, 86, 86, 86, 176, - 176, 109, 109, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 120, 120, 120, 120, 120, 120, 110, - 110, 110, 110, 110, 110, 110, 73, 73, 121, 121, - 121, 128, 122, 122, 113, 113, 113, 113, 113, 113, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 273, 273, 179, 179, 187, 187, + 178, 178, 201, 201, 201, 181, 181, 181, 182, 182, + 277, 277, 277, 43, 43, 45, 45, 46, 47, 47, + 203, 203, 204, 204, 48, 49, 61, 61, 61, 61, + 61, 61, 63, 63, 63, 7, 7, 7, 7, 57, + 57, 57, 6, 6, 44, 44, 51, 274, 274, 275, + 276, 276, 276, 276, 52, 54, 20, 20, 20, 20, + 20, 20, 78, 78, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 72, 72, 72, 67, + 67, 285, 55, 56, 56, 70, 70, 70, 64, 64, + 64, 69, 69, 69, 75, 75, 77, 77, 77, 77, + 77, 79, 79, 79, 79, 79, 79, 79, 74, 74, + 76, 76, 76, 76, 194, 194, 194, 193, 193, 87, + 87, 88, 88, 89, 89, 90, 90, 90, 129, 105, + 105, 162, 162, 161, 161, 164, 164, 91, 91, 91, + 91, 92, 92, 93, 93, 94, 94, 202, 202, 199, + 199, 199, 198, 198, 98, 98, 98, 100, 99, 99, + 99, 99, 101, 101, 103, 103, 102, 102, 104, 106, + 106, 106, 106, 106, 107, 107, 86, 86, 86, 86, + 86, 86, 86, 86, 176, 176, 109, 109, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 120, 120, + 120, 120, 120, 120, 110, 110, 110, 110, 110, 110, + 110, 73, 73, 121, 121, 121, 128, 122, 122, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 117, 117, - 117, 117, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 116, 116, 116, 116, - 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 285, 285, 119, 118, 118, 118, 118, 118, - 118, 118, 68, 68, 68, 68, 68, 207, 207, 207, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 135, 135, 65, 65, 133, 133, 134, - 136, 136, 130, 130, 130, 112, 112, 112, 112, 112, - 112, 112, 112, 114, 114, 114, 137, 137, 138, 138, - 139, 139, 140, 140, 141, 142, 142, 142, 143, 143, - 143, 143, 32, 32, 32, 32, 32, 27, 27, 27, - 27, 28, 28, 28, 80, 80, 80, 80, 82, 82, - 81, 81, 58, 58, 59, 59, 59, 83, 83, 84, - 84, 84, 84, 159, 159, 159, 144, 144, 144, 144, - 151, 151, 151, 147, 147, 149, 149, 149, 150, 150, - 150, 148, 156, 156, 158, 158, 157, 157, 153, 153, - 154, 154, 155, 155, 155, 152, 152, 111, 111, 111, - 111, 111, 160, 160, 160, 160, 165, 165, 124, 124, - 126, 126, 125, 127, 166, 166, 170, 167, 167, 171, - 171, 171, 171, 171, 168, 168, 169, 169, 195, 195, - 195, 175, 175, 186, 186, 183, 183, 184, 184, 177, - 177, 188, 188, 188, 53, 123, 123, 253, 253, 250, - 191, 191, 192, 192, 196, 196, 200, 200, 197, 197, + 113, 113, 113, 117, 117, 117, 117, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 286, 286, 119, + 118, 118, 118, 118, 118, 118, 118, 68, 68, 68, + 68, 68, 207, 207, 207, 209, 209, 209, 209, 209, + 209, 209, 209, 209, 209, 209, 209, 209, 135, 135, + 65, 65, 133, 133, 134, 136, 136, 130, 130, 130, + 112, 112, 112, 112, 112, 112, 112, 112, 114, 114, + 114, 137, 137, 138, 138, 139, 139, 140, 140, 141, + 142, 142, 142, 143, 143, 143, 143, 32, 32, 32, + 32, 32, 27, 27, 27, 27, 28, 28, 28, 80, + 80, 80, 80, 82, 82, 81, 81, 58, 58, 59, + 59, 59, 83, 83, 84, 84, 84, 84, 159, 159, + 159, 144, 144, 144, 144, 151, 151, 151, 147, 147, + 149, 149, 149, 150, 150, 150, 148, 156, 156, 158, + 158, 157, 157, 153, 153, 154, 154, 155, 155, 155, + 152, 152, 111, 111, 111, 111, 111, 160, 160, 160, + 160, 165, 165, 124, 124, 126, 126, 125, 127, 166, + 166, 170, 167, 167, 171, 171, 171, 171, 171, 168, + 168, 169, 169, 195, 195, 195, 175, 175, 186, 186, + 183, 183, 184, 184, 177, 177, 188, 188, 188, 53, + 123, 123, 253, 253, 250, 191, 191, 192, 192, 196, + 196, 200, 200, 197, 197, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, @@ -4780,7 +4781,7 @@ var yyR1 = [...]int{ 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 190, 190, + 189, 189, 189, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, @@ -4807,8 +4808,7 @@ var yyR1 = [...]int{ 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 281, 282, 205, - 206, 206, 206, + 190, 190, 282, 283, 205, 206, 206, 206, } var yyR2 = [...]int{ @@ -4826,89 +4826,90 @@ var yyR2 = [...]int{ 1, 4, 0, 1, 1, 1, 2, 2, 0, 1, 4, 4, 4, 4, 2, 4, 1, 3, 1, 1, 3, 4, 3, 3, 3, 3, 8, 0, 2, 0, - 2, 3, 3, 4, 2, 3, 3, 2, 3, 2, - 1, 1, 0, 2, 3, 1, 1, 1, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 2, 2, 2, 1, 2, 2, 2, 2, 4, - 4, 2, 2, 3, 3, 3, 3, 1, 1, 1, - 1, 1, 6, 6, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 0, 3, 0, 5, 0, 3, - 5, 0, 1, 0, 1, 0, 2, 2, 2, 0, - 2, 2, 5, 0, 1, 1, 2, 1, 3, 2, - 3, 0, 1, 3, 3, 3, 4, 2, 0, 2, - 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, - 1, 1, 3, 3, 3, 1, 3, 1, 11, 12, - 12, 13, 5, 3, 3, 1, 1, 2, 2, 2, - 0, 1, 1, 0, 1, 2, 0, 1, 1, 3, - 2, 1, 2, 3, 3, 4, 4, 3, 3, 3, - 3, 4, 4, 3, 3, 3, 3, 3, 3, 3, + 2, 3, 3, 4, 2, 3, 2, 1, 1, 0, + 2, 2, 3, 3, 2, 2, 1, 2, 1, 3, + 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, + 2, 2, 2, 2, 4, 4, 2, 2, 3, 3, + 3, 3, 1, 1, 1, 1, 1, 6, 6, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, + 3, 0, 5, 0, 3, 5, 0, 1, 0, 1, + 0, 2, 2, 2, 0, 2, 2, 5, 0, 1, + 1, 2, 1, 3, 2, 3, 0, 1, 3, 3, + 3, 4, 2, 0, 2, 1, 1, 1, 1, 1, + 0, 1, 1, 1, 0, 1, 1, 3, 3, 3, + 1, 3, 1, 11, 12, 12, 13, 5, 3, 3, + 1, 1, 2, 2, 2, 0, 1, 1, 0, 1, + 2, 0, 1, 1, 3, 2, 1, 2, 3, 3, + 4, 4, 3, 3, 3, 3, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 4, 5, 0, 2, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, - 2, 0, 2, 0, 1, 5, 1, 3, 7, 1, - 3, 3, 1, 2, 2, 2, 5, 5, 5, 6, - 6, 5, 5, 2, 2, 2, 2, 3, 3, 3, - 4, 1, 3, 5, 1, 3, 3, 3, 3, 3, - 3, 3, 3, 2, 2, 2, 4, 4, 2, 11, - 3, 6, 8, 6, 6, 6, 13, 8, 6, 10, - 5, 5, 5, 5, 5, 3, 7, 4, 4, 4, - 4, 3, 3, 3, 7, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 2, 0, 2, 2, 1, - 3, 8, 8, 3, 3, 5, 7, 7, 6, 5, - 3, 2, 3, 3, 3, 7, 3, 3, 3, 3, - 4, 7, 5, 2, 4, 4, 4, 4, 4, 5, - 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 2, 4, 2, 4, 5, 4, 4, 4, - 4, 3, 3, 5, 2, 3, 3, 3, 3, 1, - 1, 0, 1, 0, 1, 1, 1, 0, 2, 2, - 0, 2, 2, 0, 2, 0, 1, 1, 2, 1, - 1, 2, 1, 1, 5, 0, 1, 0, 1, 2, - 3, 0, 3, 3, 3, 3, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 1, 1, 3, 3, 2, - 2, 3, 1, 3, 2, 1, 2, 1, 2, 2, - 4, 3, 3, 6, 4, 7, 6, 1, 3, 2, - 2, 2, 2, 1, 1, 1, 3, 2, 1, 1, - 1, 0, 1, 1, 0, 3, 0, 2, 0, 2, - 1, 2, 2, 0, 1, 1, 0, 1, 1, 0, - 1, 0, 1, 2, 3, 4, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 1, 2, 3, 5, 0, - 1, 2, 1, 1, 0, 2, 1, 3, 1, 1, - 1, 3, 3, 3, 3, 7, 0, 3, 1, 3, - 1, 3, 4, 4, 4, 3, 2, 4, 0, 1, - 0, 2, 0, 1, 0, 1, 2, 1, 1, 1, - 2, 2, 1, 2, 3, 2, 3, 2, 2, 2, - 1, 1, 3, 3, 0, 5, 4, 5, 5, 0, - 2, 1, 3, 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, 4, 5, 0, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 1, 0, 2, 0, 2, 0, 1, + 5, 1, 3, 7, 1, 3, 3, 1, 2, 2, + 2, 5, 5, 5, 6, 6, 5, 5, 2, 2, + 2, 2, 3, 3, 3, 4, 1, 3, 5, 1, + 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, + 2, 4, 4, 2, 11, 3, 6, 8, 6, 6, + 6, 13, 8, 6, 10, 5, 5, 5, 5, 5, + 3, 7, 4, 4, 4, 4, 3, 3, 3, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 3, 1, 1, 1, 1, 4, 5, - 5, 6, 4, 4, 6, 6, 6, 8, 8, 8, - 8, 9, 8, 5, 4, 2, 2, 2, 2, 2, + 2, 0, 2, 2, 1, 3, 8, 8, 3, 3, + 5, 7, 7, 6, 5, 3, 2, 3, 3, 3, + 7, 3, 3, 3, 3, 4, 7, 5, 2, 4, + 4, 4, 4, 4, 5, 5, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 2, 4, 2, + 4, 5, 4, 4, 4, 4, 3, 3, 5, 2, + 3, 3, 3, 3, 1, 1, 0, 1, 0, 1, + 1, 1, 0, 2, 2, 0, 2, 2, 0, 2, + 0, 1, 1, 2, 1, 1, 2, 1, 1, 5, + 0, 1, 0, 1, 2, 3, 0, 3, 3, 3, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 3, 3, 2, 2, 3, 1, 3, 2, + 1, 2, 1, 2, 2, 4, 3, 3, 6, 4, + 7, 6, 1, 3, 2, 2, 2, 2, 1, 1, + 1, 3, 2, 1, 1, 1, 0, 1, 1, 0, + 3, 0, 2, 0, 2, 1, 2, 2, 0, 1, + 1, 0, 1, 1, 0, 1, 0, 1, 2, 3, + 4, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 1, 2, 3, 5, 0, 1, 2, 1, 1, 0, + 2, 1, 3, 1, 1, 1, 3, 3, 3, 3, + 7, 0, 3, 1, 3, 1, 3, 4, 4, 4, + 3, 2, 4, 0, 1, 0, 2, 0, 1, 0, + 1, 2, 1, 1, 1, 2, 2, 1, 2, 3, + 2, 3, 2, 2, 2, 1, 1, 3, 3, 0, + 5, 4, 5, 5, 0, 2, 1, 3, 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, 3, 3, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 3, 1, + 1, 1, 1, 4, 5, 5, 6, 4, 4, 6, + 6, 6, 8, 8, 8, 8, 9, 8, 5, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 8, 8, 0, 2, 3, 4, 4, 4, 4, 4, - 4, 4, 0, 3, 4, 7, 3, 1, 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, 1, 2, 2, 0, 3, 0, 2, - 0, 3, 1, 3, 2, 0, 1, 1, 0, 2, - 4, 4, 0, 2, 2, 1, 1, 3, 3, 3, - 3, 3, 3, 3, 0, 3, 3, 3, 0, 3, - 1, 1, 0, 4, 0, 1, 1, 0, 3, 1, - 3, 2, 1, 0, 2, 4, 0, 9, 3, 5, - 0, 3, 3, 0, 1, 0, 2, 2, 0, 2, - 2, 2, 0, 2, 1, 2, 3, 3, 0, 2, - 1, 2, 3, 4, 3, 0, 1, 2, 1, 5, - 4, 4, 1, 3, 3, 5, 0, 5, 1, 3, - 1, 2, 3, 1, 1, 3, 3, 1, 3, 3, - 3, 3, 3, 2, 1, 2, 1, 1, 1, 1, - 1, 1, 1, 0, 1, 0, 2, 0, 3, 0, - 1, 0, 1, 1, 5, 0, 1, 0, 1, 2, - 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, + 2, 2, 2, 2, 2, 8, 8, 0, 2, 3, + 4, 4, 4, 4, 4, 4, 4, 0, 3, 4, + 7, 3, 1, 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, 1, 2, + 2, 0, 3, 0, 2, 0, 3, 1, 3, 2, + 0, 1, 1, 0, 2, 4, 4, 0, 2, 2, + 1, 1, 3, 3, 3, 3, 3, 3, 3, 0, + 3, 3, 3, 0, 3, 1, 1, 0, 4, 0, + 1, 1, 0, 3, 1, 3, 2, 1, 0, 2, + 4, 0, 9, 3, 5, 0, 3, 3, 0, 1, + 0, 2, 2, 0, 2, 2, 2, 0, 2, 1, + 2, 3, 3, 0, 2, 1, 2, 3, 4, 3, + 0, 1, 2, 1, 5, 4, 4, 1, 3, 3, + 5, 0, 5, 1, 3, 1, 2, 3, 1, 1, + 3, 3, 1, 3, 3, 3, 3, 3, 2, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 0, 1, + 0, 2, 0, 3, 0, 1, 0, 1, 1, 5, + 0, 1, 0, 1, 2, 1, 1, 1, 1, 1, + 1, 0, 1, 1, 1, 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, @@ -4949,20 +4950,19 @@ 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, 0, - 0, 1, 1, + 1, 1, 1, 1, 0, 0, 1, 1, } var yyChk = [...]int{ - -1000, -279, -1, -3, -8, -9, -10, -11, -12, -13, + -1000, -280, -1, -3, -8, -9, -10, -11, -12, -13, -14, -15, -16, -17, -18, -19, -41, -42, -43, -45, -46, -47, -48, -49, -6, -44, -20, -21, -50, -51, - -52, -53, -54, -4, -281, 6, 7, 8, -62, 10, + -52, -53, -54, -4, -282, 6, 7, 8, -62, 10, 11, 31, -23, -33, 157, -34, -24, 158, -35, 160, 159, 196, 161, 189, 73, 235, 236, 238, 239, 240, 241, -63, 194, 195, 163, 35, 44, 32, 33, 36, - 166, 83, 9, 340, 191, 190, 26, -280, 480, -70, - 5, -139, 16, -3, -55, -284, -55, -55, -55, -55, + 166, 83, 9, 340, 191, 190, 26, -281, 480, -70, + 5, -139, 16, -3, -55, -285, -55, -55, -55, -55, -55, -55, -238, -240, 83, 130, 83, -55, -39, -38, -37, -36, -40, 30, -30, -31, -258, -29, -26, 162, 159, 204, 104, 105, 196, 197, 198, 161, 180, 195, @@ -5007,12 +5007,12 @@ var yyChk = [...]int{ -108, 114, -113, 30, 24, -112, -109, -130, -127, -128, 148, 149, 151, 150, 152, 137, 138, 145, 115, 153, -117, -115, -116, -118, 90, 89, 98, 91, 92, 93, - 94, 100, 101, 102, -191, -196, -125, -281, 67, 68, + 94, 100, 101, 102, -191, -196, -125, -282, 67, 68, 341, 342, 343, 344, 349, 345, 117, 56, 336, 330, 339, 338, 337, 334, 335, 332, 333, 347, 348, 173, 331, 167, 143, 340, -262, -190, 43, 307, 307, -102, - -55, -5, -4, -281, 6, 21, 22, -143, 18, 17, - -282, 85, -64, -77, 62, 63, -79, 22, 37, 66, + -55, -5, -4, -282, 6, 21, 22, -143, 18, 17, + -283, 85, -64, -77, 62, 63, -79, 22, 37, 66, 64, 21, -56, -76, 139, -86, -196, -76, -177, 172, -177, -177, -167, -208, 237, -171, 320, 319, -192, -169, -191, -189, -168, 317, 162, 359, 113, 23, 25, 116, @@ -5046,23 +5046,23 @@ var yyChk = [...]int{ 290, -232, 169, 34, 181, 307, 214, 290, 214, 215, 214, 215, 300, 310, 214, -201, 12, 132, 331, 295, 299, 207, 168, 208, 170, 309, -262, 447, 215, -201, - 307, 210, -181, -206, -281, -192, 263, -206, -206, 31, + 307, 210, -181, -206, -282, -192, 263, -206, -206, 31, 171, -191, -57, -191, 90, -7, -3, -11, -10, -12, 122, -78, 307, -66, 148, 462, 448, 449, 450, 447, 304, 455, 453, 451, 214, 452, 84, 113, 111, 112, 129, -86, -110, 132, 114, 130, 131, 116, 134, 133, 144, 137, 138, 139, 140, 141, 142, 143, 135, 136, - 147, 122, 123, 124, 125, 126, 127, 128, -176, -281, - -128, -281, 155, 156, -113, -113, -113, -113, -113, -113, - -113, -113, -113, -113, -281, 154, -2, -122, -4, -281, - -281, -281, -281, -281, -281, -281, -281, -135, -86, -281, - -285, -281, -285, -119, -281, -285, -119, -285, -119, -285, - -285, -119, -285, -119, -285, -285, -119, -281, -281, -281, - -281, -281, -281, -281, -205, -274, -275, -105, -102, -281, + 147, 122, 123, 124, 125, 126, 127, 128, -176, -282, + -128, -282, 155, 156, -113, -113, -113, -113, -113, -113, + -113, -113, -113, -113, -282, 154, -2, -122, -4, -282, + -282, -282, -282, -282, -282, -282, -282, -135, -86, -282, + -286, -282, -286, -119, -282, -286, -119, -286, -119, -286, + -286, -119, -286, -119, -286, -286, -119, -282, -282, -282, + -282, -282, -282, -282, -205, -274, -275, -105, -102, -282, 231, -139, -3, -55, -159, 20, 32, -86, -140, -141, -86, -139, 58, -74, -76, -79, 62, 63, 96, 12, -194, -193, 23, -191, 90, 154, 12, -103, 27, -102, - -88, -89, -90, -91, -105, -129, -281, 12, -95, -96, + -88, -89, -90, -91, -105, -129, -282, 12, -95, -96, -102, -104, -196, 84, 237, -171, -208, -173, -172, 321, 323, 122, -195, -191, 90, 30, 85, 84, -102, -210, -213, -215, -214, -216, -211, -212, 260, 261, 148, 264, @@ -5094,16 +5094,16 @@ var yyChk = [...]int{ -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -207, -262, 90, 148, -262, -112, -112, -191, -75, 22, 37, -74, -192, -197, -189, - -70, -282, -282, -139, -74, -74, -86, -86, -130, 90, + -70, -283, -283, -139, -74, -74, -86, -86, -130, 90, -74, -130, 90, -74, -74, -69, 22, 37, -133, -134, - 118, -130, -282, -113, -191, -191, -74, -75, -75, -74, + 118, -130, -283, -113, -191, -191, -74, -75, -75, -74, -74, 84, -276, 323, 324, 445, -199, 203, -198, 23, - -196, 90, -123, -122, 90, -143, -282, -144, 27, 10, + -196, 90, -123, -122, 90, -143, -283, -144, 27, 10, 132, 84, 19, 84, -142, 25, 26, -143, -114, -191, 91, 94, -87, 84, 12, -79, -102, -193, 139, -197, -102, -163, 203, -102, 31, 84, -98, -100, -99, -101, 65, 69, 71, 66, 67, 68, 72, -202, 23, -88, - -3, -281, -102, -95, -283, 84, 12, 76, -283, 84, + -3, -282, -102, -95, -284, 84, 12, 76, -284, 84, 154, -171, -173, 84, 322, 324, 325, 75, 103, -86, -219, 147, -244, -243, -242, -226, -228, -229, -230, 85, -145, -85, 39, -222, 288, -217, -217, -217, -217, -217, @@ -5120,299 +5120,301 @@ var yyChk = [...]int{ -183, 75, -97, -102, 24, -196, -102, -181, -181, -102, -181, -181, 90, -102, -191, -66, 323, 353, 20, -67, 20, 100, 101, 102, -121, -113, -113, -113, -73, 193, - 113, -282, -282, -74, -74, -281, 154, -5, -143, -282, - -282, 84, 76, 23, 12, 12, -282, 12, 12, -282, - -282, -74, -136, -134, 120, -86, -282, -282, 84, 84, - -282, -282, -282, -282, -282, -275, 444, 324, -106, 73, - 172, 74, -281, -198, -282, -159, 41, 49, 60, -86, + 113, -283, -283, -74, -74, -282, 154, -5, -143, -283, + -283, 84, 76, 23, 12, 12, -283, 12, 12, -283, + -283, -74, -136, -134, 120, -86, -283, -283, 84, 84, + -283, -283, -283, -283, -283, -275, 444, 324, -106, 73, + 172, 74, -282, -198, -283, -159, 41, 49, 60, -86, -86, -141, -159, -175, 20, 12, 56, 56, -107, 13, - -76, -88, -79, 154, -107, -111, 31, 56, -3, -281, - -281, -166, -170, -130, -89, -90, -90, -89, -90, 65, - 65, 65, 70, 65, 70, 65, -99, -196, -282, -282, + -76, -88, -79, 154, -107, -111, 31, 56, -3, -282, + -282, -166, -170, -130, -89, -90, -90, -89, -90, 65, + 65, 65, 70, 65, 70, 65, -99, -196, -283, -283, -3, -163, 76, -88, -102, -88, -104, -196, 139, -172, -174, 326, 323, 329, -262, 90, 84, -242, -230, 100, - 114, 30, 75, 285, 97, 175, 29, 174, 23, 40, - -223, 289, -218, -218, -219, -262, 90, 148, -219, -219, - -219, -225, 90, -225, 91, 91, 85, -32, -27, -28, - 32, 79, -249, -237, 90, 38, -191, 85, -82, -102, - 114, 75, -253, -253, -253, -196, 16, -161, -191, 84, - 85, -132, 229, -130, 85, -191, 85, 83, -235, -192, - -191, -281, 168, 30, 30, -131, -132, -219, -262, 479, - 478, 85, 170, 227, -84, 336, 90, 86, -102, -102, - -102, -102, -102, 162, 159, 212, 171, -95, -102, 84, - -60, 188, 183, -201, -201, 32, 323, 456, 454, -73, - 113, -113, -113, -282, -282, -75, -192, -139, -159, -209, - 148, 260, 192, 258, 254, 274, 265, 287, 256, 288, - -207, -209, -113, -113, -113, -113, 350, -139, 121, -86, - 119, -113, -113, 169, 169, 169, -164, 42, 90, 90, - 61, -102, -137, 14, -86, 139, -143, -165, 75, -166, - -124, -126, -125, -281, -160, -282, -191, -164, -107, 84, - 122, -93, -92, 75, 76, -94, 75, -92, 65, 65, - -282, -107, -88, -107, -107, 154, 323, 327, 328, -242, - 100, -113, 10, 90, 29, 29, 83, -219, -219, 85, - 84, 85, 84, 85, 84, -185, 390, 114, -28, -27, - -237, -237, 91, -262, 170, 24, -102, 75, 75, 75, - 17, 84, -226, -130, 56, -252, -161, -256, -257, -102, - -112, -132, -102, -81, 218, 226, 83, 87, -264, 76, - 209, 285, 209, -102, -60, -32, -102, -181, -181, 32, - -262, -113, -282, -143, -282, -217, -217, -217, -221, -217, - 248, -217, 248, -282, -282, 20, 20, 20, 20, -281, - -65, 346, -86, 84, 84, -281, -281, -281, -282, 90, - -218, -138, 15, 17, 28, -165, 84, -282, -282, 84, - 56, 154, -282, -139, -170, -86, -86, 83, -86, -139, - -107, -116, -113, -218, 90, -218, 91, 91, 390, 30, - 80, 81, 82, 30, 77, 78, -102, -102, -102, -102, - -161, -191, 205, 85, -282, 84, -224, 353, 356, -162, - 83, 85, -261, 353, -263, -262, -191, -191, -191, -159, - -218, -262, -113, -113, -113, -113, -113, -143, 90, -113, - -113, -161, -282, -161, -161, -199, -218, -148, -153, -178, - -86, -122, 29, -126, 56, -3, -191, -124, -191, -143, - -161, -143, 85, -219, -219, 85, 85, -162, 206, 187, - -257, 357, 357, 23, -161, -260, -259, -192, 83, 76, - -282, -282, -282, -282, -68, 132, 353, -282, -282, -282, - -282, -282, -282, -106, -151, 440, -156, 45, -154, -155, - 46, -152, 47, 55, 10, -124, 154, 85, -146, 23, - -281, -102, -3, 85, 84, 122, -161, -102, -282, 351, - 72, 354, -148, 50, 266, -158, -157, 54, 46, -155, - 17, 48, 17, -166, -191, -278, 109, 110, -3, -113, - 202, 83, -58, 353, -259, -241, -192, 90, 91, 85, - 61, 352, 355, -149, 52, -147, 51, -147, -157, 17, - 17, 90, 17, 90, -58, -282, -282, -161, -59, 217, - 444, -264, 61, -150, 53, 75, 103, 90, 90, 90, - 85, 180, -261, 353, 75, 103, -271, -272, 75, 219, - 354, -272, 75, 11, 10, 355, -270, 188, 183, 186, - 31, -270, 182, 30, 100, + 114, 30, 75, 285, 97, -279, 175, 174, 29, 23, + 40, -223, 289, -218, -218, -219, -262, 90, 148, -219, + -219, -219, -225, 90, -225, 91, 91, 85, -32, -27, + -28, 32, 79, -249, -237, 90, 38, -191, 85, -82, + -102, 114, 75, -253, -253, -253, -196, 16, -161, -191, + 84, 85, -132, 229, -130, 85, -191, 85, 83, -235, + -192, -191, -282, 168, 30, 30, -131, -132, -219, -262, + 479, 478, 85, 170, 227, -84, 336, 90, 86, -102, + -102, -102, -102, -102, 162, 159, 212, 171, -95, -102, + 84, -60, 188, 183, -201, -201, 32, 323, 456, 454, + -73, 113, -113, -113, -283, -283, -75, -192, -139, -159, + -209, 148, 260, 192, 258, 254, 274, 265, 287, 256, + 288, -207, -209, -113, -113, -113, -113, 350, -139, 121, + -86, 119, -113, -113, 169, 169, 169, -164, 42, 90, + 90, 61, -102, -137, 14, -86, 139, -143, -165, 75, + -166, -124, -126, -125, -282, -160, -283, -191, -164, -107, + 84, 122, -93, -92, 75, 76, -94, 75, -92, 65, + 65, -283, -107, -88, -107, -107, 154, 323, 327, 328, + -242, 100, -113, 10, 90, 29, 29, 83, -219, -219, + 85, 84, 85, 84, 85, 84, -185, 390, 114, -28, + -27, -237, -237, 91, -262, 170, 24, -102, 75, 75, + 75, 17, 84, -226, -130, 56, -252, -161, -256, -257, + -102, -112, -132, -102, -81, 218, 226, 83, 87, -264, + 76, 209, 285, 209, -102, -60, -32, -102, -181, -181, + 32, -262, -113, -283, -143, -283, -217, -217, -217, -221, + -217, 248, -217, 248, -283, -283, 20, 20, 20, 20, + -282, -65, 346, -86, 84, 84, -282, -282, -282, -283, + 90, -218, -138, 15, 17, 28, -165, 84, -283, -283, + 84, 56, 154, -283, -139, -170, -86, -86, 83, -86, + -139, -107, -116, -113, -218, 90, -218, 91, 91, 390, + 30, 80, 81, 82, 30, 77, 78, -102, -102, -102, + -102, -161, -191, 205, 85, -283, 84, -224, 353, 356, + -162, 83, 85, -261, 353, -263, -262, -191, -191, -191, + -159, -218, -262, -113, -113, -113, -113, -113, -143, 90, + -113, -113, -161, -283, -161, -161, -199, -218, -148, -153, + -178, -86, -122, 29, -126, 56, -3, -191, -124, -191, + -143, -161, -143, 85, -219, -219, 85, 85, -162, 206, + 187, -257, 357, 357, 23, -161, -260, -259, -192, 83, + 76, -283, -283, -283, -283, -68, 132, 353, -283, -283, + -283, -283, -283, -283, -106, -151, 440, -156, 45, -154, + -155, 46, -152, 47, 55, 10, -124, 154, 85, -146, + 23, -282, -102, -3, 85, 84, 122, -161, -102, -283, + 351, 72, 354, -148, 50, 266, -158, -157, 54, 46, + -155, 17, 48, 17, -166, -191, -278, 100, 114, 97, + -279, 109, 110, -3, -113, 202, 83, -58, 353, -259, + -241, -192, 90, 91, 85, 61, 352, 355, -149, 52, + -147, 51, -147, -157, 17, 17, 90, 17, 90, 100, + 90, -58, -283, -283, -161, -59, 217, 444, -264, 61, + -150, 53, 75, 103, 90, 90, 90, 85, 180, -261, + 353, 75, 103, -271, -272, 75, 219, 354, -272, 75, + 11, 10, 355, -270, 188, 183, 186, 31, -270, 182, + 30, 100, } var yyDef = [...]int{ 34, -2, 2, 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, 32, 33, 830, 0, 566, 566, 566, 566, 566, - 566, 566, 0, 0, 566, -2, -2, 566, 966, 0, - 566, 0, 0, -2, 499, 500, 0, 502, -2, 0, - 0, 511, 1379, 1379, 561, 0, 0, 0, 0, 0, - 566, 1377, 55, 56, 517, 518, 519, 1, 3, 0, - 570, 838, 0, 0, -2, 568, 0, 0, 949, 949, - 949, 0, 86, 87, 0, 0, 0, -2, 90, -2, - 114, 115, 0, 119, 375, 336, 378, 334, 364, -2, - 327, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 339, 231, 231, 0, 0, -2, 327, - 327, 327, 0, 0, 0, 361, 951, 281, 231, 231, - 0, 231, 231, 231, 231, 0, 0, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 854, 118, 967, 964, 965, 35, 36, 37, - 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, - 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, - 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, - 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, - 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, - 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, - 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, - 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, - 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, - 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, - 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, - 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, - 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, - 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, - 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, - 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, - 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, - 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, - 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, - 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, - 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, - 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, - 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, - 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, - 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, - 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, - 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 0, - 943, 0, 431, 651, 0, 490, 490, 0, 490, 490, - 490, 490, 0, 0, 0, 443, 0, 0, 0, 0, - 487, 0, 0, 462, 464, 0, 487, 0, 474, 490, - 1380, 1380, 1380, 934, 0, 484, 482, 496, 497, 479, - 480, 498, 501, 0, 506, 509, 960, 961, 0, 524, - 0, 1185, 516, 529, 530, 0, 562, 563, 40, 702, - 661, 0, 667, 669, 0, 704, 705, 706, 707, 708, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 734, 735, 736, 737, 815, 816, 817, 818, 819, 820, - 821, 822, 671, 672, 812, 0, 923, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 803, 0, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 0, 0, 0, - 0, 0, 0, 0, -2, -2, 1379, 0, 539, 0, - 0, 830, 51, 0, 566, 571, 572, 873, 0, 0, - 830, 1378, 0, 0, -2, -2, 582, 588, 589, 590, - 591, 592, 567, 0, 595, 599, 0, 0, 0, 950, - 0, 0, 72, 0, 1342, 927, -2, -2, 0, 0, - 962, 963, 936, -2, 970, 971, 972, 973, 974, 975, - 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, - 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, - 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, - 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, - 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, - 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, - 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, - 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, - 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, - 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, - 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, - 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, - 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, - 1106, 1107, -2, 0, 0, 128, 129, 0, 38, 257, - 0, 124, 0, 251, 204, 854, 0, 0, 0, 0, - 0, 566, 0, 944, 109, 110, 116, 117, 231, 231, - 0, 118, 118, 343, 344, 345, 0, 0, -2, 255, - 0, 328, 0, 0, 245, 245, 249, 247, 248, 0, - 0, 0, 0, 0, 0, 355, 0, 356, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 415, 0, 232, - 0, 373, 374, 282, 0, 0, 0, 0, 353, 354, - 0, 0, 952, 953, 0, 0, 231, 231, 0, 0, - 0, 0, 231, 231, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 108, 867, 0, 0, 0, -2, 0, 423, 0, 0, - 0, 945, 945, 430, 0, 432, 433, 0, 0, 434, - 0, 487, 487, 485, 486, 436, 437, 438, 439, 490, - 0, 0, 240, 241, 242, 487, 490, 0, 490, 490, - 490, 490, 487, 487, 487, 490, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1380, 1380, 1380, 493, 490, - 471, 472, 475, 476, 1381, 1382, 981, 477, 478, 935, - 507, 510, 527, 525, 526, 528, 520, 521, 522, 523, - 0, 541, 542, 547, 0, 0, 0, 0, 553, 554, - 555, 0, 0, 558, 559, 560, 0, 0, 0, 0, - 0, 665, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 689, 690, 691, 692, 693, 694, 695, 668, 0, - 682, 0, 0, 0, 724, 725, 726, 727, 728, 729, - 730, 731, 732, 0, 579, 0, 0, 0, 830, 0, - 0, 0, 0, 0, 0, 0, 576, 0, 804, 0, - 755, 0, 756, 764, 0, 757, 765, 758, 766, 759, - 760, 767, 761, 768, 762, 763, 769, 0, 0, 0, - 579, 579, 0, 0, 41, 531, 532, 0, 634, 955, - 0, 838, 0, 581, 876, 0, 0, 839, 831, 832, - 835, 838, 0, 604, 593, 583, 586, 587, 569, 0, - 596, 600, 0, 602, 603, 0, 0, 70, 0, 650, - 0, 606, 608, 609, 610, 632, 0, 0, 0, 0, - 66, 68, 651, 0, 1342, 933, 0, 74, 75, 0, - 0, 0, 219, 938, 939, 940, -2, 238, 0, -2, - 211, 155, 156, 157, 204, 159, 204, 204, 204, 204, - 215, 215, 215, 215, 187, 188, 189, 190, 191, 0, - 0, 174, 204, 204, 204, 204, 194, 195, 196, 197, - 198, 199, 200, 201, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 206, 206, 206, 208, 208, 0, 39, - 0, 223, 0, 835, 0, 867, 947, 957, 0, 0, - 0, 947, 92, 0, 0, 376, 337, 365, 377, 0, - 340, 341, -2, 0, 0, 327, 0, 329, 0, 239, - 0, -2, 0, 249, 0, 245, 249, 246, 249, 237, - 250, 357, 812, 0, 358, 359, 0, 395, 620, 0, - 0, 0, 0, 0, 401, 402, 403, 0, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 366, 367, - 368, 369, 370, 371, 372, 0, 0, 329, 0, 362, - 0, 283, 284, 0, 0, 287, 288, 289, 290, 0, - 0, 293, 294, 295, 296, 297, 321, 322, 323, 298, - 299, 300, 301, 302, 303, 304, 315, 316, 317, 318, - 319, 320, 305, 306, 307, 308, 309, 312, 0, 102, - 858, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 945, 0, 0, 0, 0, 652, 968, 969, - 491, 492, 0, 243, 244, 490, 490, 440, 463, 0, - 490, 444, 465, 445, 447, 446, 448, 467, 468, 490, - 451, 488, 489, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 469, 0, 470, 0, 0, 508, 512, - 513, 514, 515, 0, 0, 544, 549, 550, 551, 552, - 564, 557, 703, 662, 663, 664, 666, 683, 0, 685, - 687, 673, 674, 698, 699, 700, 0, 0, 0, 0, - 696, 678, 0, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 723, 787, 788, 789, 0, - 721, 722, 733, 0, 0, 0, 580, 813, 0, -2, - 0, 701, 922, 838, 0, 0, 0, 0, 706, 815, - 0, 706, 815, 0, 0, 0, 577, 578, 810, 807, - 0, 0, 773, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 534, 535, 537, 0, 654, 0, 635, 0, - 637, 638, 0, 956, 540, 873, 52, 42, 0, 874, - 0, 0, 0, 0, 834, 836, 837, 873, 0, 823, - 0, 0, 659, 0, 0, 584, 48, 601, 597, 0, - 659, 0, 0, 649, 0, 0, 0, 0, 0, 0, - 639, 0, 0, 642, 0, 0, 0, 0, 633, 0, + 31, 32, 33, 835, 0, 571, 571, 571, 571, 571, + 571, 571, 0, 0, 571, -2, -2, 571, 971, 0, + 571, 0, 0, -2, 504, 505, 0, 507, -2, 0, + 0, 516, 1384, 1384, 566, 0, 0, 0, 0, 0, + 571, 1382, 55, 56, 522, 523, 524, 1, 3, 0, + 575, 843, 0, 0, -2, 573, 0, 0, 954, 954, + 954, 0, 86, 87, 0, 0, 0, -2, 90, -2, + 114, 115, 0, 119, 380, 341, 383, 339, 369, -2, + 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 344, 236, 236, 0, 0, -2, 332, + 332, 332, 0, 0, 0, 366, 956, 286, 236, 236, + 0, 236, 236, 236, 236, 0, 0, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 859, 118, 972, 969, 970, 35, 36, 37, + 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, + 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, + 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, + 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, + 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, + 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, + 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, + 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, + 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, + 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, + 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, + 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, + 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, + 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, + 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, + 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, + 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, + 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, + 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, + 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, + 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, + 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, + 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, + 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, + 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, + 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, + 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 0, + 948, 0, 436, 656, 0, 495, 495, 0, 495, 495, + 495, 495, 0, 0, 0, 448, 0, 0, 0, 0, + 492, 0, 0, 467, 469, 0, 492, 0, 479, 495, + 1385, 1385, 1385, 939, 0, 489, 487, 501, 502, 484, + 485, 503, 506, 0, 511, 514, 965, 966, 0, 529, + 0, 1190, 521, 534, 535, 0, 567, 568, 40, 707, + 666, 0, 672, 674, 0, 709, 710, 711, 712, 713, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 739, 740, 741, 742, 820, 821, 822, 823, 824, 825, + 826, 827, 676, 677, 817, 0, 928, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 808, 0, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 0, 0, 0, + 0, 0, 0, 0, -2, -2, 1384, 0, 544, 0, + 0, 835, 51, 0, 571, 576, 577, 878, 0, 0, + 835, 1383, 0, 0, -2, -2, 587, 593, 594, 595, + 596, 597, 572, 0, 600, 604, 0, 0, 0, 955, + 0, 0, 72, 0, 1347, 932, -2, -2, 0, 0, + 967, 968, 941, -2, 975, 976, 977, 978, 979, 980, + 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, + 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, + 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, + 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, + 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, + 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, + 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, + 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, + 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, + 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, + 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, + 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, + 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, + 1111, 1112, -2, 0, 0, 128, 129, 0, 38, 262, + 0, 124, 0, 256, 209, 859, 0, 0, 0, 0, + 0, 571, 0, 949, 109, 110, 116, 117, 236, 236, + 0, 118, 118, 348, 349, 350, 0, 0, -2, 260, + 0, 333, 0, 0, 250, 250, 254, 252, 253, 0, + 0, 0, 0, 0, 0, 360, 0, 361, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 420, 0, 237, + 0, 378, 379, 287, 0, 0, 0, 0, 358, 359, + 0, 0, 957, 958, 0, 0, 236, 236, 0, 0, + 0, 0, 236, 236, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 108, 872, 0, 0, 0, -2, 0, 428, 0, 0, + 0, 950, 950, 435, 0, 437, 438, 0, 0, 439, + 0, 492, 492, 490, 491, 441, 442, 443, 444, 495, + 0, 0, 245, 246, 247, 492, 495, 0, 495, 495, + 495, 495, 492, 492, 492, 495, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1385, 1385, 1385, 498, 495, + 476, 477, 480, 481, 1386, 1387, 986, 482, 483, 940, + 512, 515, 532, 530, 531, 533, 525, 526, 527, 528, + 0, 546, 547, 552, 0, 0, 0, 0, 558, 559, + 560, 0, 0, 563, 564, 565, 0, 0, 0, 0, + 0, 670, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 694, 695, 696, 697, 698, 699, 700, 673, 0, + 687, 0, 0, 0, 729, 730, 731, 732, 733, 734, + 735, 736, 737, 0, 584, 0, 0, 0, 835, 0, + 0, 0, 0, 0, 0, 0, 581, 0, 809, 0, + 760, 0, 761, 769, 0, 762, 770, 763, 771, 764, + 765, 772, 766, 773, 767, 768, 774, 0, 0, 0, + 584, 584, 0, 0, 41, 536, 537, 0, 639, 960, + 0, 843, 0, 586, 881, 0, 0, 844, 836, 837, + 840, 843, 0, 609, 598, 588, 591, 592, 574, 0, + 601, 605, 0, 607, 608, 0, 0, 70, 0, 655, + 0, 611, 613, 614, 615, 637, 0, 0, 0, 0, + 66, 68, 656, 0, 1347, 938, 0, 74, 75, 0, + 0, 0, 224, 943, 944, 945, -2, 243, 0, -2, + 216, 160, 161, 162, 209, 164, 209, 209, 209, 209, + 220, 220, 220, 220, 192, 193, 194, 195, 196, 0, + 0, 179, 209, 209, 209, 209, 199, 200, 201, 202, + 203, 204, 205, 206, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 211, 211, 211, 213, 213, 0, 39, + 0, 228, 0, 840, 0, 872, 952, 962, 0, 0, + 0, 952, 92, 0, 0, 381, 342, 370, 382, 0, + 345, 346, -2, 0, 0, 332, 0, 334, 0, 244, + 0, -2, 0, 254, 0, 250, 254, 251, 254, 242, + 255, 362, 817, 0, 363, 364, 0, 400, 625, 0, + 0, 0, 0, 0, 406, 407, 408, 0, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 371, 372, + 373, 374, 375, 376, 377, 0, 0, 334, 0, 367, + 0, 288, 289, 0, 0, 292, 293, 294, 295, 0, + 0, 298, 299, 300, 301, 302, 326, 327, 328, 303, + 304, 305, 306, 307, 308, 309, 320, 321, 322, 323, + 324, 325, 310, 311, 312, 313, 314, 317, 0, 102, + 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 950, 0, 0, 0, 0, 657, 973, 974, + 496, 497, 0, 248, 249, 495, 495, 445, 468, 0, + 495, 449, 470, 450, 452, 451, 453, 472, 473, 495, + 456, 493, 494, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 474, 0, 475, 0, 0, 513, 517, + 518, 519, 520, 0, 0, 549, 554, 555, 556, 557, + 569, 562, 708, 667, 668, 669, 671, 688, 0, 690, + 692, 678, 679, 703, 704, 705, 0, 0, 0, 0, + 701, 683, 0, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 728, 792, 793, 794, 0, + 726, 727, 738, 0, 0, 0, 585, 818, 0, -2, + 0, 706, 927, 843, 0, 0, 0, 0, 711, 820, + 0, 711, 820, 0, 0, 0, 582, 583, 815, 812, + 0, 0, 778, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 539, 540, 542, 0, 659, 0, 640, 0, + 642, 643, 0, 961, 545, 878, 52, 42, 0, 879, + 0, 0, 0, 0, 839, 841, 842, 878, 0, 828, + 0, 0, 664, 0, 0, 589, 48, 606, 602, 0, + 664, 0, 0, 654, 0, 0, 0, 0, 0, 0, + 644, 0, 0, 647, 0, 0, 0, 0, 638, 0, 0, 0, -2, 0, 0, 0, 62, 63, 0, 0, - 0, 928, 73, 0, 0, 78, 79, 929, 930, 931, - 932, 0, 111, -2, 278, 130, 132, 133, 134, 125, - 135, 0, 0, 213, 212, 158, 215, 215, 181, 182, - 219, 0, 219, 219, 219, 0, 0, 175, 176, 177, - 178, 169, 0, 170, 171, 172, 0, 173, 256, 0, - 842, 224, 225, 227, 231, 0, 0, 0, 252, 253, - 0, 858, 0, 0, 0, 958, 957, 957, 957, 0, - 120, 121, 122, 123, 118, 0, 0, 126, 331, 0, - 0, 0, 254, 0, 0, 233, 249, 234, 235, 0, - 360, 0, 0, 397, 398, 399, 400, 0, 0, 0, - 329, 331, 219, 0, 285, 286, 291, 292, 310, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 390, 391, 392, 393, 855, 856, 857, 0, 0, 424, - 0, 0, 270, 64, 946, 429, 487, 450, 466, 487, - 442, 449, 494, 473, 504, 548, 0, 0, 0, 556, - 0, 684, 686, 688, 675, 696, 679, 0, 676, 0, - 0, 670, 738, 0, 0, 579, 0, 830, 873, 742, - 743, 0, 0, 0, 0, 0, 780, 0, 0, 781, - 0, 830, 0, 808, 0, 0, 754, 774, 0, 0, - 775, 776, 777, 778, 779, 533, 536, 538, 614, 0, - 0, 0, 0, 636, 954, 44, 0, 0, 0, 840, - 841, 833, 43, 0, 941, 942, 824, 825, 826, 0, - 594, 605, 585, 0, 838, 916, 0, 0, 908, 0, - 0, 659, 924, 0, 607, 628, 630, 0, 625, 640, - 641, 643, 0, 645, 0, 647, 648, 611, 612, 613, - 0, 659, 0, 659, 67, 659, 69, 0, 653, 76, - 77, 0, 0, 83, 220, 221, 118, 280, 131, 140, - 0, 0, 0, 144, 0, 0, 147, 149, 0, 138, - 154, 214, 219, 219, 183, 216, 217, 218, 184, 185, - 186, 0, 202, 0, 0, 0, 273, 88, 846, 845, - 231, 231, 226, 0, 229, 0, 959, 205, 0, 101, - 0, 0, 0, 0, 0, 107, 0, 335, 618, 0, - 346, 347, 0, 330, 394, 0, 223, 0, 236, 813, - 621, 0, 0, 348, 0, 331, 351, 352, 363, 313, - 314, 311, 0, 0, 868, 869, 0, 872, 93, 383, - 385, 384, 388, 0, 0, 381, 0, 270, 842, 0, - 428, 271, 272, 490, 490, 543, 0, 546, 0, 677, - 0, 697, 680, 739, 740, 0, 814, 838, 46, 0, - 204, 204, 793, 204, 208, 796, 204, 798, 204, 801, - 0, 0, 0, 0, 0, 0, 0, 805, 753, 811, - 0, 0, 0, 0, 0, 0, 0, 0, 215, 878, - 875, 45, 828, 0, 660, 598, 49, 53, 0, 916, - 907, 918, 920, 0, 0, 0, 912, 0, 830, 0, - 0, 622, 629, 0, 0, 623, 0, 624, 644, 646, - -2, 830, 659, 60, 61, 0, 80, 81, 82, 279, - 141, 142, 0, 145, 146, 148, 0, 179, 180, 215, - 0, 215, 0, 209, 0, 262, 274, 0, 843, 844, - 0, 0, 228, 230, 0, 948, 103, 0, 0, 0, - 0, 0, 127, 332, 0, 222, 0, 0, 419, 416, - 349, 350, 616, 859, 860, 861, 0, 871, 96, 0, - 0, 0, 0, 425, 426, 427, 65, 435, 441, 545, - 565, 681, 741, 873, 744, 790, 215, 794, 795, 797, - 799, 800, 802, 746, 745, 0, 0, 0, 0, 0, - 838, 0, 809, 0, 0, 0, 0, 0, 634, 215, - 898, 50, 0, 0, 0, 54, 0, 921, 0, 0, - 0, 0, 71, 838, 925, 926, 626, 0, 631, 838, - 59, 143, 0, 219, 203, 219, 0, 0, 275, 847, - 848, 849, 850, 851, 852, 853, 616, 104, 105, 106, - 338, 619, 0, 0, 396, 0, 404, 0, 0, 0, - 0, 870, 382, 0, 94, 95, 0, 0, 387, 47, - 791, 792, 0, 0, 0, 0, 782, 0, 806, 0, - 0, 0, 656, 0, 0, 654, 880, 879, 892, 905, - 829, 827, 0, 919, 0, 911, 914, 910, 913, 57, - 0, 58, 152, 192, 193, 207, 210, 0, 0, 0, - 420, 417, 418, 0, 0, 97, 98, 0, 0, 0, - 747, 749, 748, 750, 0, 0, 0, 752, 770, 771, - 655, 657, 658, 615, 898, 0, 891, 0, -2, 900, - 0, 0, 0, 906, 0, 909, 0, 627, 136, 0, - 0, 0, 862, 617, 0, 0, 0, 389, 751, 0, - 0, 0, 885, 883, 883, 893, 894, 0, 0, 901, - 0, 0, 0, 917, 915, 153, 150, 151, 862, 0, - 0, 0, 379, 864, 99, 100, 324, 325, 326, 93, - 783, 0, 786, 888, 0, 881, 884, 882, 895, 0, - 0, 902, 0, 904, 89, 421, 422, 0, 0, 865, - 866, 96, 784, 877, 0, 886, 887, 896, 897, 903, - 258, 0, 386, 0, 889, 890, 259, 260, 0, 863, - 0, 261, 0, 0, 0, 785, 263, 265, 266, 0, - 0, 264, 267, 268, 269, + 0, 933, 73, 0, 0, 78, 79, 934, 935, 936, + 937, 0, 111, -2, 283, 130, 132, 133, 134, 125, + 135, 0, 0, 218, 217, 163, 220, 220, 186, 187, + 224, 0, 224, 224, 224, 0, 0, 180, 181, 182, + 183, 174, 0, 175, 176, 177, 0, 178, 261, 0, + 847, 229, 230, 232, 236, 0, 0, 0, 257, 258, + 0, 863, 0, 0, 0, 963, 962, 962, 962, 0, + 120, 121, 122, 123, 118, 0, 0, 126, 336, 0, + 0, 0, 259, 0, 0, 238, 254, 239, 240, 0, + 365, 0, 0, 402, 403, 404, 405, 0, 0, 0, + 334, 336, 224, 0, 290, 291, 296, 297, 315, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 395, 396, 397, 398, 860, 861, 862, 0, 0, 429, + 0, 0, 275, 64, 951, 434, 492, 455, 471, 492, + 447, 454, 499, 478, 509, 553, 0, 0, 0, 561, + 0, 689, 691, 693, 680, 701, 684, 0, 681, 0, + 0, 675, 743, 0, 0, 584, 0, 835, 878, 747, + 748, 0, 0, 0, 0, 0, 785, 0, 0, 786, + 0, 835, 0, 813, 0, 0, 759, 779, 0, 0, + 780, 781, 782, 783, 784, 538, 541, 543, 619, 0, + 0, 0, 0, 641, 959, 44, 0, 0, 0, 845, + 846, 838, 43, 0, 946, 947, 829, 830, 831, 0, + 599, 610, 590, 0, 843, 921, 0, 0, 913, 0, + 0, 664, 929, 0, 612, 633, 635, 0, 630, 645, + 646, 648, 0, 650, 0, 652, 653, 616, 617, 618, + 0, 664, 0, 664, 67, 664, 69, 0, 658, 76, + 77, 0, 0, 83, 225, 226, 118, 285, 131, 140, + 0, 0, 0, 144, 0, 146, 0, 156, 158, 0, + 138, 159, 219, 224, 224, 188, 221, 222, 223, 189, + 190, 191, 0, 207, 0, 0, 0, 278, 88, 851, + 850, 236, 236, 231, 0, 234, 0, 964, 210, 0, + 101, 0, 0, 0, 0, 0, 107, 0, 340, 623, + 0, 351, 352, 0, 335, 399, 0, 228, 0, 241, + 818, 626, 0, 0, 353, 0, 336, 356, 357, 368, + 318, 319, 316, 0, 0, 873, 874, 0, 877, 93, + 388, 390, 389, 393, 0, 0, 386, 0, 275, 847, + 0, 433, 276, 277, 495, 495, 548, 0, 551, 0, + 682, 0, 702, 685, 744, 745, 0, 819, 843, 46, + 0, 209, 209, 798, 209, 213, 801, 209, 803, 209, + 806, 0, 0, 0, 0, 0, 0, 0, 810, 758, + 816, 0, 0, 0, 0, 0, 0, 0, 0, 220, + 883, 880, 45, 833, 0, 665, 603, 49, 53, 0, + 921, 912, 923, 925, 0, 0, 0, 917, 0, 835, + 0, 0, 627, 634, 0, 0, 628, 0, 629, 649, + 651, -2, 835, 664, 60, 61, 0, 80, 81, 82, + 284, 141, 142, 0, 145, 155, 157, 0, 184, 185, + 220, 0, 220, 0, 214, 0, 267, 279, 0, 848, + 849, 0, 0, 233, 235, 0, 953, 103, 0, 0, + 0, 0, 0, 127, 337, 0, 227, 0, 0, 424, + 421, 354, 355, 621, 864, 865, 866, 0, 876, 96, + 0, 0, 0, 0, 430, 431, 432, 65, 440, 446, + 550, 570, 686, 746, 878, 749, 795, 220, 799, 800, + 802, 804, 805, 807, 751, 750, 0, 0, 0, 0, + 0, 843, 0, 814, 0, 0, 0, 0, 0, 639, + 220, 903, 50, 0, 0, 0, 54, 0, 926, 0, + 0, 0, 0, 71, 843, 930, 931, 631, 0, 636, + 843, 59, 143, 0, 224, 208, 224, 0, 0, 280, + 852, 853, 854, 855, 856, 857, 858, 621, 104, 105, + 106, 343, 624, 0, 0, 401, 0, 409, 0, 0, + 0, 0, 875, 387, 0, 94, 95, 0, 0, 392, + 47, 796, 797, 0, 0, 0, 0, 787, 0, 811, + 0, 0, 0, 661, 0, 0, 659, 885, 884, 897, + 910, 834, 832, 0, 924, 0, 916, 919, 915, 918, + 57, 0, 58, 149, 197, 198, 212, 215, 0, 0, + 0, 425, 422, 423, 0, 0, 97, 98, 0, 0, + 0, 752, 754, 753, 755, 0, 0, 0, 757, 775, + 776, 660, 662, 663, 620, 903, 0, 896, 0, -2, + 905, 0, 0, 0, 911, 0, 914, 0, 632, 136, + 0, 0, 0, 867, 622, 0, 0, 0, 394, 756, + 0, 0, 0, 890, 888, 888, 898, 899, 0, 0, + 906, 0, 0, 0, 922, 920, 150, 151, 0, 0, + 154, 147, 148, 867, 0, 0, 0, 384, 869, 99, + 100, 329, 330, 331, 93, 788, 0, 791, 893, 0, + 886, 889, 887, 900, 0, 0, 907, 0, 909, 152, + 153, 89, 426, 427, 0, 0, 870, 871, 96, 789, + 882, 0, 891, 892, 901, 902, 908, 263, 0, 391, + 0, 894, 895, 264, 265, 0, 868, 0, 266, 0, + 0, 0, 790, 268, 270, 271, 0, 0, 269, 272, + 273, 274, } var yyTok1 = [...]int{ @@ -6759,1597 +6761,1640 @@ yydefault: } yyVAL.union = yyLOCAL case 146: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions //line sql.y:1084 { - yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKeyPrimary + yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL case 147: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ColumnTypeOptions -//line sql.y:1089 + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ColumnStorage +//line sql.y:1091 { - yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKey - yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + yyLOCAL = VirtualStorage } yyVAL.union = yyLOCAL case 148: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *ColumnTypeOptions -//line sql.y:1094 + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ColumnStorage +//line sql.y:1095 { - yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKeyUniqueKey - yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + yyLOCAL = StoredStorage } yyVAL.union = yyLOCAL case 149: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1099 +//line sql.y:1100 { - yyDollar[1].columnTypeOptionsUnion().KeyOpt = colKeyUnique - yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + yyLOCAL = &ColumnTypeOptions{} } yyVAL.union = yyLOCAL case 150: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ColumnStorage -//line sql.y:1106 + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1104 { - yyLOCAL = VirtualStorage + yyDollar[1].columnTypeOptionsUnion().Storage = yyDollar[2].columnStorageUnion() + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL case 151: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ColumnStorage -//line sql.y:1110 + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1109 { - yyLOCAL = StoredStorage + val := true + yyDollar[1].columnTypeOptionsUnion().Null = &val + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL case 152: - yyDollar = yyS[yypt-0 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions //line sql.y:1115 { - yyLOCAL = &ColumnTypeOptions{} + val := false + yyDollar[1].columnTypeOptionsUnion().Null = &val + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL case 153: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1119 +//line sql.y:1121 { - yyDollar[1].columnTypeOptionsUnion().Storage = yyDollar[2].columnStorageUnion() + yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL case 154: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ColumnTypeOptions //line sql.y:1126 + { + yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion() + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + } + yyVAL.union = yyLOCAL + case 155: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL ColumnKeyOption +//line sql.y:1134 + { + yyLOCAL = colKeyPrimary + } + yyVAL.union = yyLOCAL + case 156: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ColumnKeyOption +//line sql.y:1138 + { + yyLOCAL = colKeyUnique + } + yyVAL.union = yyLOCAL + case 157: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL ColumnKeyOption +//line sql.y:1142 + { + yyLOCAL = colKeyUniqueKey + } + yyVAL.union = yyLOCAL + case 158: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ColumnKeyOption +//line sql.y:1146 + { + yyLOCAL = colKey + } + yyVAL.union = yyLOCAL + case 159: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1152 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].booleanUnion() yyVAL.columnType.Zerofill = yyDollar[3].booleanUnion() } - case 158: + case 163: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1137 +//line sql.y:1163 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].literalUnion() } - case 159: + case 164: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1142 +//line sql.y:1168 { yyVAL.columnType = yyDollar[1].columnType } - case 160: + case 165: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1148 +//line sql.y:1174 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 161: + case 166: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1152 +//line sql.y:1178 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 162: + case 167: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1156 +//line sql.y:1182 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 163: + case 168: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1160 +//line sql.y:1186 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 164: + case 169: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1164 +//line sql.y:1190 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 165: + case 170: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1168 +//line sql.y:1194 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 166: + case 171: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1172 +//line sql.y:1198 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 167: + case 172: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1176 +//line sql.y:1202 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 168: + case 173: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1180 +//line sql.y:1206 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 169: + case 174: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1186 +//line sql.y:1212 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 170: + case 175: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1192 +//line sql.y:1218 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 171: + case 176: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1198 +//line sql.y:1224 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 172: + case 177: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1204 +//line sql.y:1230 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 173: + case 178: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1210 +//line sql.y:1236 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 174: + case 179: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1218 +//line sql.y:1244 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 175: + case 180: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1222 +//line sql.y:1248 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 176: + case 181: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1226 +//line sql.y:1252 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 177: + case 182: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1230 +//line sql.y:1256 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 178: + case 183: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1234 +//line sql.y:1260 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 179: + case 184: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1240 +//line sql.y:1266 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } - case 180: + case 185: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1244 +//line sql.y:1270 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } - case 181: + case 186: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1248 +//line sql.y:1274 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 182: + case 187: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1252 +//line sql.y:1278 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 183: + case 188: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1256 +//line sql.y:1282 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 184: + case 189: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1260 +//line sql.y:1286 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 185: + case 190: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1264 +//line sql.y:1290 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 186: + case 191: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1268 +//line sql.y:1294 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 187: + case 192: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1272 +//line sql.y:1298 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 188: + case 193: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1276 +//line sql.y:1302 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 189: + case 194: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1280 +//line sql.y:1306 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 190: + case 195: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1284 +//line sql.y:1310 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 191: + case 196: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1288 +//line sql.y:1314 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 192: + case 197: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1292 +//line sql.y:1318 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } - case 193: + case 198: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1297 +//line sql.y:1323 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } - case 194: + case 199: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1303 +//line sql.y:1329 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 195: + case 200: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1307 +//line sql.y:1333 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 196: + case 201: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1311 +//line sql.y:1337 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 197: + case 202: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1315 +//line sql.y:1341 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 198: + case 203: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1319 +//line sql.y:1345 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 199: + case 204: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1323 +//line sql.y:1349 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 200: + case 205: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1327 +//line sql.y:1353 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 201: + case 206: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1331 +//line sql.y:1357 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 202: + case 207: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1337 +//line sql.y:1363 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, encodeSQLString(yyDollar[1].str)) } - case 203: + case 208: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1342 +//line sql.y:1368 { yyVAL.strs = append(yyDollar[1].strs, encodeSQLString(yyDollar[3].str)) } - case 204: + case 209: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Literal -//line sql.y:1347 +//line sql.y:1373 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 205: + case 210: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Literal -//line sql.y:1351 +//line sql.y:1377 { yyLOCAL = NewIntLiteral(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 206: + case 211: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1356 +//line sql.y:1382 { yyVAL.LengthScaleOption = LengthScaleOption{} } - case 207: + case 212: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1360 +//line sql.y:1386 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), Scale: NewIntLiteral(yyDollar[4].str), } } - case 208: + case 213: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1368 +//line sql.y:1394 { yyVAL.LengthScaleOption = LengthScaleOption{} } - case 209: + case 214: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1372 +//line sql.y:1398 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), } } - case 210: + case 215: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1378 +//line sql.y:1404 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), Scale: NewIntLiteral(yyDollar[4].str), } } - case 211: + case 216: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1386 +//line sql.y:1412 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 212: + case 217: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1390 +//line sql.y:1416 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 213: + case 218: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1395 +//line sql.y:1421 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 214: + case 219: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1399 +//line sql.y:1425 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 215: + case 220: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1404 +//line sql.y:1430 { yyVAL.str = "" } - case 216: + case 221: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1408 +//line sql.y:1434 { yyVAL.str = string(yyDollar[2].colIdent.String()) } - case 217: + case 222: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1412 +//line sql.y:1438 { yyVAL.str = encodeSQLString(yyDollar[2].str) } - case 218: + case 223: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1416 +//line sql.y:1442 { yyVAL.str = string(yyDollar[2].str) } - case 219: + case 224: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1421 +//line sql.y:1447 { yyVAL.str = "" } - case 220: + case 225: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1425 +//line sql.y:1451 { yyVAL.str = string(yyDollar[2].colIdent.String()) } - case 221: + case 226: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1429 +//line sql.y:1455 { yyVAL.str = encodeSQLString(yyDollar[2].str) } - case 222: + case 227: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexDefinition -//line sql.y:1436 +//line sql.y:1462 { yyLOCAL = &IndexDefinition{Info: yyDollar[1].indexInfoUnion(), Columns: yyDollar[3].indexColumnsUnion(), Options: yyDollar[5].indexOptionsUnion()} } yyVAL.union = yyLOCAL - case 223: + case 228: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1441 +//line sql.y:1467 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 224: + case 229: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1445 +//line sql.y:1471 { yyLOCAL = yyDollar[1].indexOptionsUnion() } yyVAL.union = yyLOCAL - case 225: + case 230: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1451 +//line sql.y:1477 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL - case 226: + case 231: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1455 +//line sql.y:1481 { yySLICE := (*[]*IndexOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].indexOptionUnion()) } - case 227: + case 232: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1461 +//line sql.y:1487 { yyLOCAL = yyDollar[1].indexOptionUnion() } yyVAL.union = yyLOCAL - case 228: + case 233: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1465 +//line sql.y:1491 { // should not be string yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 229: + case 234: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1470 +//line sql.y:1496 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 230: + case 235: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1474 +//line sql.y:1500 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str) + " " + string(yyDollar[2].str), String: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 231: + case 236: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1480 +//line sql.y:1506 { yyVAL.str = "" } - case 232: + case 237: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1484 +//line sql.y:1510 { yyVAL.str = string(yyDollar[1].str) } - case 233: + case 238: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1490 +//line sql.y:1516 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} } yyVAL.union = yyLOCAL - case 234: + case 239: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1494 +//line sql.y:1520 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Spatial: true, Unique: false} } yyVAL.union = yyLOCAL - case 235: + case 240: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1498 +//line sql.y:1524 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Fulltext: true, Unique: false} } yyVAL.union = yyLOCAL - case 236: + case 241: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1502 +//line sql.y:1528 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent(yyDollar[4].str), Unique: true} } yyVAL.union = yyLOCAL - case 237: + case 242: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1506 +//line sql.y:1532 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(yyDollar[2].str), Unique: false} } yyVAL.union = yyLOCAL - case 238: + case 243: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1511 +//line sql.y:1537 { yyVAL.str = "" } - case 239: + case 244: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1515 +//line sql.y:1541 { yyVAL.str = yyDollar[2].str } - case 240: + case 245: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1521 +//line sql.y:1547 { yyVAL.str = string(yyDollar[1].str) } - case 241: + case 246: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1525 +//line sql.y:1551 { yyVAL.str = string(yyDollar[1].str) } - case 242: + case 247: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1529 +//line sql.y:1555 { yyVAL.str = string(yyDollar[1].str) } - case 243: + case 248: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1536 +//line sql.y:1562 { yyVAL.str = string(yyDollar[1].str) } - case 244: + case 249: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1540 +//line sql.y:1566 { yyVAL.str = string(yyDollar[1].str) } - case 245: + case 250: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1545 +//line sql.y:1571 { yyVAL.str = "key" } - case 246: + case 251: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1549 +//line sql.y:1575 { yyVAL.str = yyDollar[1].str } - case 247: + case 252: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1555 +//line sql.y:1581 { yyVAL.str = string(yyDollar[1].str) } - case 248: + case 253: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1559 +//line sql.y:1585 { yyVAL.str = string(yyDollar[1].str) } - case 249: + case 254: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1564 +//line sql.y:1590 { yyVAL.str = "" } - case 250: + case 255: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1568 +//line sql.y:1594 { yyVAL.str = string(yyDollar[1].colIdent.String()) } - case 251: + case 256: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexColumn -//line sql.y:1574 +//line sql.y:1600 { yyLOCAL = []*IndexColumn{yyDollar[1].indexColumnUnion()} } yyVAL.union = yyLOCAL - case 252: + case 257: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1578 +//line sql.y:1604 { yySLICE := (*[]*IndexColumn)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].indexColumnUnion()) } - case 253: + case 258: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexColumn -//line sql.y:1584 +//line sql.y:1610 { yyLOCAL = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].literalUnion(), Direction: yyDollar[3].orderDirectionUnion()} } yyVAL.union = yyLOCAL - case 254: + case 259: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1590 +//line sql.y:1616 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 255: + case 260: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1594 +//line sql.y:1620 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 256: + case 261: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1600 +//line sql.y:1626 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 257: + case 262: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1604 +//line sql.y:1630 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 258: + case 263: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1610 +//line sql.y:1636 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion()} } yyVAL.union = yyLOCAL - case 259: + case 264: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1614 +//line sql.y:1640 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnDelete: yyDollar[12].ReferenceActionUnion()} } yyVAL.union = yyLOCAL - case 260: + case 265: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1618 +//line sql.y:1644 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnUpdate: yyDollar[12].ReferenceActionUnion()} } yyVAL.union = yyLOCAL - case 261: + case 266: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1622 +//line sql.y:1648 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnDelete: yyDollar[12].ReferenceActionUnion(), OnUpdate: yyDollar[13].ReferenceActionUnion()} } yyVAL.union = yyLOCAL - case 262: + case 267: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1628 +//line sql.y:1654 { yyLOCAL = &CheckConstraintDefinition{Expr: yyDollar[3].exprUnion(), Enforced: yyDollar[5].booleanUnion()} } yyVAL.union = yyLOCAL - case 263: + case 268: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1634 +//line sql.y:1660 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } yyVAL.union = yyLOCAL - case 264: + case 269: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1640 +//line sql.y:1666 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } yyVAL.union = yyLOCAL - case 265: + case 270: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1646 +//line sql.y:1672 { yyLOCAL = Restrict } yyVAL.union = yyLOCAL - case 266: + case 271: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1650 +//line sql.y:1676 { yyLOCAL = Cascade } yyVAL.union = yyLOCAL - case 267: + case 272: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1654 +//line sql.y:1680 { yyLOCAL = NoAction } yyVAL.union = yyLOCAL - case 268: + case 273: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1658 +//line sql.y:1684 { yyLOCAL = SetDefault } yyVAL.union = yyLOCAL - case 269: + case 274: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1662 +//line sql.y:1688 { yyLOCAL = SetNull } yyVAL.union = yyLOCAL - case 270: + case 275: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1667 +//line sql.y:1693 { yyVAL.str = "" } - case 271: + case 276: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1671 +//line sql.y:1697 { yyVAL.str = string(yyDollar[1].str) } - case 272: + case 277: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1675 +//line sql.y:1701 { yyVAL.str = string(yyDollar[1].str) } - case 273: + case 278: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1680 +//line sql.y:1706 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 274: + case 279: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1684 +//line sql.y:1710 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 275: + case 280: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:1688 +//line sql.y:1714 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 276: + case 281: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1693 +//line sql.y:1719 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 277: + case 282: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1697 +//line sql.y:1723 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 278: + case 283: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1703 +//line sql.y:1729 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 279: + case 284: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1707 +//line sql.y:1733 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableOptionUnion()) } - case 280: + case 285: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1711 +//line sql.y:1737 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) } - case 281: + case 286: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1717 +//line sql.y:1743 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 282: + case 287: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1721 +//line sql.y:1747 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) } - case 283: + case 288: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1727 +//line sql.y:1753 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 284: + case 289: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1731 +//line sql.y:1757 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 285: + case 290: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1735 +//line sql.y:1761 { yyLOCAL = &TableOption{Name: (string(yyDollar[2].str)), String: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 286: + case 291: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1739 +//line sql.y:1765 { yyLOCAL = &TableOption{Name: string(yyDollar[2].str), String: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 287: + case 292: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1743 +//line sql.y:1769 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 288: + case 293: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1747 +//line sql.y:1773 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 289: + case 294: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1751 +//line sql.y:1777 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 290: + case 295: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1755 +//line sql.y:1781 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 291: + case 296: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1759 +//line sql.y:1785 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 292: + case 297: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1763 +//line sql.y:1789 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 293: + case 298: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1767 +//line sql.y:1793 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 294: + case 299: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1771 +//line sql.y:1797 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 295: + case 300: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1775 +//line sql.y:1801 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 296: + case 301: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1779 +//line sql.y:1805 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 297: + case 302: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1783 +//line sql.y:1809 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 298: + case 303: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1787 +//line sql.y:1813 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 299: + case 304: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1791 +//line sql.y:1817 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 300: + case 305: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1795 +//line sql.y:1821 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 301: + case 306: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1799 +//line sql.y:1825 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 302: + case 307: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1803 +//line sql.y:1829 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 303: + case 308: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1807 +//line sql.y:1833 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 304: + case 309: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1811 +//line sql.y:1837 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 305: + case 310: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1815 +//line sql.y:1841 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 306: + case 311: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1819 +//line sql.y:1845 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 307: + case 312: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1823 +//line sql.y:1849 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 308: + case 313: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1827 +//line sql.y:1853 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 309: + case 314: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1831 +//line sql.y:1857 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 310: + case 315: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1835 +//line sql.y:1861 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: (yyDollar[3].colIdent.String() + yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 311: + case 316: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1839 +//line sql.y:1865 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Tables: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 312: + case 317: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1844 +//line sql.y:1870 { yyVAL.str = "" } - case 313: + case 318: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1848 +//line sql.y:1874 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 314: + case 319: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1852 +//line sql.y:1878 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 324: + case 329: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1871 +//line sql.y:1897 { yyVAL.str = yyDollar[1].colIdent.String() } - case 325: + case 330: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1875 +//line sql.y:1901 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 326: + case 331: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1879 +//line sql.y:1905 { yyVAL.str = string(yyDollar[1].str) } - case 327: + case 332: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1884 +//line sql.y:1910 { yyVAL.str = "" } - case 329: + case 334: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:1890 +//line sql.y:1916 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 330: + case 335: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:1894 +//line sql.y:1920 { yyLOCAL = yyDollar[2].colNameUnion() } yyVAL.union = yyLOCAL - case 331: + case 336: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:1899 +//line sql.y:1925 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 332: + case 337: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:1903 +//line sql.y:1929 { yyLOCAL = yyDollar[2].colNameUnion() } yyVAL.union = yyLOCAL - case 333: + case 338: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1908 +//line sql.y:1934 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 334: + case 339: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1912 +//line sql.y:1938 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL - case 335: + case 340: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1916 +//line sql.y:1942 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &OrderByOption{Cols: yyDollar[5].columnsUnion()}) } - case 336: + case 341: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1920 +//line sql.y:1946 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL - case 337: + case 342: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1924 +//line sql.y:1950 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionsUnion()...) } - case 338: + case 343: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1928 +//line sql.y:1954 { yyLOCAL = append(append(yyDollar[1].alterOptionsUnion(), yyDollar[3].alterOptionsUnion()...), &OrderByOption{Cols: yyDollar[7].columnsUnion()}) } yyVAL.union = yyLOCAL - case 339: + case 344: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1934 +//line sql.y:1960 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 340: + case 345: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1938 +//line sql.y:1964 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 341: + case 346: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1942 +//line sql.y:1968 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 342: + case 347: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1948 +//line sql.y:1974 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 343: + case 348: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1952 +//line sql.y:1978 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } yyVAL.union = yyLOCAL - case 344: + case 349: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1956 +//line sql.y:1982 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } yyVAL.union = yyLOCAL - case 345: + case 350: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1960 +//line sql.y:1986 { yyLOCAL = &AddIndexDefinition{IndexDefinition: yyDollar[2].indexDefinitionUnion()} } yyVAL.union = yyLOCAL - case 346: + case 351: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1964 +//line sql.y:1990 { yyLOCAL = &AddColumns{Columns: yyDollar[4].columnDefinitionsUnion()} } yyVAL.union = yyLOCAL - case 347: + case 352: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1968 +//line sql.y:1994 { yyLOCAL = &AddColumns{Columns: []*ColumnDefinition{yyDollar[3].columnDefinitionUnion()}, First: yyDollar[4].colNameUnion(), After: yyDollar[5].colNameUnion()} } yyVAL.union = yyLOCAL - case 348: + case 353: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1972 +//line sql.y:1998 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: true} } yyVAL.union = yyLOCAL - case 349: + case 354: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1976 +//line sql.y:2002 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 350: + case 355: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1980 +//line sql.y:2006 { yyLOCAL = &ChangeColumn{OldColumn: yyDollar[3].colNameUnion(), NewColDefinition: yyDollar[4].columnDefinitionUnion(), First: yyDollar[5].colNameUnion(), After: yyDollar[6].colNameUnion()} } yyVAL.union = yyLOCAL - case 351: + case 356: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1984 +//line sql.y:2010 { yyLOCAL = &ModifyColumn{NewColDefinition: yyDollar[3].columnDefinitionUnion(), First: yyDollar[4].colNameUnion(), After: yyDollar[5].colNameUnion()} } yyVAL.union = yyLOCAL - case 352: + case 357: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1988 +//line sql.y:2014 { yyLOCAL = &AlterCharset{CharacterSet: yyDollar[4].str, Collate: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 353: + case 358: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1992 +//line sql.y:2018 { yyLOCAL = &KeyState{Enable: false} } yyVAL.union = yyLOCAL - case 354: + case 359: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1996 +//line sql.y:2022 { yyLOCAL = &KeyState{Enable: true} } yyVAL.union = yyLOCAL - case 355: + case 360: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2000 +//line sql.y:2026 { yyLOCAL = &TablespaceOperation{Import: false} } yyVAL.union = yyLOCAL - case 356: + case 361: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2004 +//line sql.y:2030 { yyLOCAL = &TablespaceOperation{Import: true} } yyVAL.union = yyLOCAL - case 357: + case 362: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2008 +//line sql.y:2034 { yyLOCAL = &DropColumn{Name: yyDollar[3].colNameUnion()} } yyVAL.union = yyLOCAL - case 358: + case 363: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2012 +//line sql.y:2038 { yyLOCAL = &DropKey{Type: NormalKeyType, Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 359: + case 364: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2016 +//line sql.y:2042 { yyLOCAL = &DropKey{Type: PrimaryKeyType} } yyVAL.union = yyLOCAL - case 360: + case 365: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2020 +//line sql.y:2046 { yyLOCAL = &DropKey{Type: ForeignKeyType, Name: yyDollar[4].colIdent} } yyVAL.union = yyLOCAL - case 361: + case 366: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2024 +//line sql.y:2050 { yyLOCAL = &Force{} } yyVAL.union = yyLOCAL - case 362: + case 367: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2028 +//line sql.y:2054 { yyLOCAL = &RenameTableName{Table: yyDollar[3].tableName} } yyVAL.union = yyLOCAL - case 363: + case 368: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2032 +//line sql.y:2058 { yyLOCAL = &RenameIndex{OldName: yyDollar[3].colIdent, NewName: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 364: + case 369: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2038 +//line sql.y:2064 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 365: + case 370: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2042 +//line sql.y:2068 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 366: + case 371: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2048 +//line sql.y:2074 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 367: + case 372: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2052 +//line sql.y:2078 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 368: + case 373: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2056 +//line sql.y:2082 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 369: + case 374: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2060 +//line sql.y:2086 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.union = yyLOCAL - case 370: + case 375: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2064 +//line sql.y:2090 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.union = yyLOCAL - case 371: + case 376: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2068 +//line sql.y:2094 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.union = yyLOCAL - case 372: + case 377: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2072 +//line sql.y:2098 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.union = yyLOCAL - case 373: + case 378: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2076 +//line sql.y:2102 { yyLOCAL = &Validation{With: true} } yyVAL.union = yyLOCAL - case 374: + case 379: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2080 +//line sql.y:2106 { yyLOCAL = &Validation{With: false} } yyVAL.union = yyLOCAL - case 375: + case 380: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2086 +//line sql.y:2112 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 376: + case 381: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2092 +//line sql.y:2118 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8357,10 +8402,10 @@ yydefault: yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 377: + case 382: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2099 +//line sql.y:2125 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8368,28 +8413,28 @@ yydefault: yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 378: + case 383: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2106 +//line sql.y:2132 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[2].partSpecUnion() yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 379: + case 384: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL Statement -//line sql.y:2112 +//line sql.y:2138 { yyLOCAL = &AlterView{ViewName: yyDollar[7].tableName.ToViewName(), Algorithm: yyDollar[3].str, Definer: yyDollar[4].str, Security: yyDollar[5].str, Columns: yyDollar[8].columnsUnion(), Select: yyDollar[10].selStmtUnion(), CheckOption: yyDollar[11].str} } yyVAL.union = yyLOCAL - case 380: + case 385: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2116 +//line sql.y:2142 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8397,10 +8442,10 @@ yydefault: yyLOCAL = yyDollar[1].alterDatabaseUnion() } yyVAL.union = yyLOCAL - case 381: + case 386: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2123 +//line sql.y:2149 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8408,10 +8453,10 @@ yydefault: yyLOCAL = yyDollar[1].alterDatabaseUnion() } yyVAL.union = yyLOCAL - case 382: + case 387: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2130 +//line sql.y:2156 { yyLOCAL = &AlterVschema{ Action: CreateVindexDDLAction, @@ -8424,10 +8469,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 383: + case 388: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2142 +//line sql.y:2168 { yyLOCAL = &AlterVschema{ Action: DropVindexDDLAction, @@ -8438,26 +8483,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 384: + case 389: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2152 +//line sql.y:2178 { yyLOCAL = &AlterVschema{Action: AddVschemaTableDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 385: + case 390: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2156 +//line sql.y:2182 { yyLOCAL = &AlterVschema{Action: DropVschemaTableDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 386: + case 391: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL Statement -//line sql.y:2160 +//line sql.y:2186 { yyLOCAL = &AlterVschema{ Action: AddColVindexDDLAction, @@ -8471,10 +8516,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 387: + case 392: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2173 +//line sql.y:2199 { yyLOCAL = &AlterVschema{ Action: DropColVindexDDLAction, @@ -8485,18 +8530,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 388: + case 393: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2183 +//line sql.y:2209 { yyLOCAL = &AlterVschema{Action: AddSequenceDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 389: + case 394: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Statement -//line sql.y:2187 +//line sql.y:2213 { yyLOCAL = &AlterVschema{ Action: AddAutoIncDDLAction, @@ -8508,10 +8553,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 390: + case 395: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2198 +//line sql.y:2224 { yyLOCAL = &AlterMigration{ Type: RetryMigrationType, @@ -8519,10 +8564,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 391: + case 396: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2205 +//line sql.y:2231 { yyLOCAL = &AlterMigration{ Type: CompleteMigrationType, @@ -8530,10 +8575,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 392: + case 397: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2212 +//line sql.y:2238 { yyLOCAL = &AlterMigration{ Type: CancelMigrationType, @@ -8541,282 +8586,282 @@ yydefault: } } yyVAL.union = yyLOCAL - case 393: + case 398: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2219 +//line sql.y:2245 { yyLOCAL = &AlterMigration{ Type: CancelAllMigrationType, } } yyVAL.union = yyLOCAL - case 394: + case 399: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2227 +//line sql.y:2253 { yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}} } yyVAL.union = yyLOCAL - case 395: + case 400: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2231 +//line sql.y:2257 { yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 396: + case 401: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2235 +//line sql.y:2261 { yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()} } yyVAL.union = yyLOCAL - case 397: + case 402: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2239 +//line sql.y:2265 { yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 398: + case 403: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2243 +//line sql.y:2269 { yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true} } yyVAL.union = yyLOCAL - case 399: + case 404: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2247 +//line sql.y:2273 { yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 400: + case 405: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2251 +//line sql.y:2277 { yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true} } yyVAL.union = yyLOCAL - case 401: + case 406: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2255 +//line sql.y:2281 { yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 402: + case 407: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2259 +//line sql.y:2285 { yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true} } yyVAL.union = yyLOCAL - case 403: + case 408: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2263 +//line sql.y:2289 { yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 404: + case 409: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2267 +//line sql.y:2293 { yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].colIdent}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()} } yyVAL.union = yyLOCAL - case 405: + case 410: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2271 +//line sql.y:2297 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 406: + case 411: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2275 +//line sql.y:2301 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true} } yyVAL.union = yyLOCAL - case 407: + case 412: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2279 +//line sql.y:2305 { yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 408: + case 413: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2283 +//line sql.y:2309 { yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true} } yyVAL.union = yyLOCAL - case 409: + case 414: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2287 +//line sql.y:2313 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 410: + case 415: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2291 +//line sql.y:2317 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true} } yyVAL.union = yyLOCAL - case 411: + case 416: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2295 +//line sql.y:2321 { yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 412: + case 417: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2299 +//line sql.y:2325 { yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true} } yyVAL.union = yyLOCAL - case 413: + case 418: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2303 +//line sql.y:2329 { yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 414: + case 419: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2307 +//line sql.y:2333 { yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true} } yyVAL.union = yyLOCAL - case 415: + case 420: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2311 +//line sql.y:2337 { yyLOCAL = &PartitionSpec{Action: UpgradeAction} } yyVAL.union = yyLOCAL - case 416: + case 421: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2316 +//line sql.y:2342 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 417: + case 422: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2320 +//line sql.y:2346 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 418: + case 423: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2324 +//line sql.y:2350 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 419: + case 424: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:2331 +//line sql.y:2357 { yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()} } yyVAL.union = yyLOCAL - case 420: + case 425: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2335 +//line sql.y:2361 { yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].partDefUnion()) } - case 421: + case 426: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2341 +//line sql.y:2367 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 422: + case 427: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2345 +//line sql.y:2371 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} } yyVAL.union = yyLOCAL - case 423: + case 428: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2351 +//line sql.y:2377 { yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()} } yyVAL.union = yyLOCAL - case 424: + case 429: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*RenameTablePair -//line sql.y:2357 +//line sql.y:2383 { yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}} } yyVAL.union = yyLOCAL - case 425: + case 430: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2361 +//line sql.y:2387 { yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName}) } - case 426: + case 431: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2367 +//line sql.y:2393 { yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs), Temp: yyDollar[3].booleanUnion()} } yyVAL.union = yyLOCAL - case 427: + case 432: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2371 +//line sql.y:2397 { // Change this to an alter statement if yyDollar[4].colIdent.Lowered() == "primary" { @@ -8826,387 +8871,387 @@ yydefault: } } yyVAL.union = yyLOCAL - case 428: + case 433: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2380 +//line sql.y:2406 { yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), IfExists: yyDollar[4].booleanUnion()} } yyVAL.union = yyLOCAL - case 429: + case 434: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2384 +//line sql.y:2410 { yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs), DBName: yyDollar[5].tableIdent, IfExists: yyDollar[4].booleanUnion()} } yyVAL.union = yyLOCAL - case 430: + case 435: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2390 +//line sql.y:2416 { yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName} } yyVAL.union = yyLOCAL - case 431: + case 436: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2394 +//line sql.y:2420 { yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName} } yyVAL.union = yyLOCAL - case 432: + case 437: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2399 +//line sql.y:2425 { yyLOCAL = &OtherRead{} } yyVAL.union = yyLOCAL - case 433: + case 438: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2405 +//line sql.y:2431 { yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 434: + case 439: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2409 +//line sql.y:2435 { yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 435: + case 440: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2413 +//line sql.y:2439 { yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 436: + case 441: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2417 +//line sql.y:2443 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 437: + case 442: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2421 +//line sql.y:2447 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 438: + case 443: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2425 +//line sql.y:2451 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 439: + case 444: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2429 +//line sql.y:2455 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 440: + case 445: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2433 +//line sql.y:2459 { yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 441: + case 446: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2437 +//line sql.y:2463 { yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 442: + case 447: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2441 +//line sql.y:2467 { yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 443: + case 448: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2445 +//line sql.y:2471 { yyLOCAL = &Show{&ShowBasic{Command: Privilege}} } yyVAL.union = yyLOCAL - case 444: + case 449: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2449 +//line sql.y:2475 { yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 445: + case 450: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2453 +//line sql.y:2479 { yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 446: + case 451: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2457 +//line sql.y:2483 { yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 447: + case 452: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2461 +//line sql.y:2487 { yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 448: + case 453: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2465 +//line sql.y:2491 { yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 449: + case 454: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2469 +//line sql.y:2495 { yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 450: + case 455: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2473 +//line sql.y:2499 { yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 451: + case 456: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2477 +//line sql.y:2503 { yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].tableIdent, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 452: + case 457: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2481 +//line sql.y:2507 { yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 453: + case 458: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2485 +//line sql.y:2511 { yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 454: + case 459: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2489 +//line sql.y:2515 { yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 455: + case 460: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2493 +//line sql.y:2519 { yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 456: + case 461: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2497 +//line sql.y:2523 { yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 457: + case 462: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2501 +//line sql.y:2527 { yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 458: + case 463: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2505 +//line sql.y:2531 { yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 459: + case 464: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2509 +//line sql.y:2535 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 460: + case 465: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2513 +//line sql.y:2539 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].colIdent.String()), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 461: + case 466: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2517 +//line sql.y:2543 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 462: + case 467: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2521 +//line sql.y:2547 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 463: + case 468: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2525 +//line sql.y:2551 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 464: + case 469: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2529 +//line sql.y:2555 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 465: + case 470: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2533 +//line sql.y:2559 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 466: + case 471: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2537 +//line sql.y:2563 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 467: + case 472: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2541 +//line sql.y:2567 { yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].tableIdent}} } yyVAL.union = yyLOCAL - case 468: + case 473: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2545 +//line sql.y:2571 { yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].tableIdent}} } yyVAL.union = yyLOCAL - case 469: + case 474: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2549 +//line sql.y:2575 { showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilterUnion()} yyLOCAL = &Show{&ShowLegacy{Scope: VitessMetadataScope, Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt}} } yyVAL.union = yyLOCAL - case 470: + case 475: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2554 +//line sql.y:2580 { yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL - case 471: + case 476: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2558 +//line sql.y:2584 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 472: + case 477: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2562 +//line sql.y:2588 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 473: + case 478: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2566 +//line sql.y:2592 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), OnTable: yyDollar[5].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 474: + case 479: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2570 +//line sql.y:2596 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 475: + case 480: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2575 +//line sql.y:2601 { // This should probably be a different type (ShowVitessTopoOpt), but // just getting the thing working for now @@ -9214,1204 +9259,1204 @@ yydefault: yyLOCAL = &Show{&ShowLegacy{Type: yyDollar[2].str, ShowTablesOpt: showTablesOpt}} } yyVAL.union = yyLOCAL - case 476: + case 481: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2589 +//line sql.y:2615 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].colIdent.String()), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 477: + case 482: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2593 +//line sql.y:2619 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 478: + case 483: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2597 +//line sql.y:2623 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 479: + case 484: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2603 +//line sql.y:2629 { yyVAL.str = string(yyDollar[1].str) } - case 480: + case 485: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2607 +//line sql.y:2633 { yyVAL.str = string(yyDollar[1].str) } - case 481: + case 486: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2613 +//line sql.y:2639 { yyVAL.str = "" } - case 482: + case 487: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2617 +//line sql.y:2643 { yyVAL.str = "extended " } - case 483: + case 488: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2623 +//line sql.y:2649 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 484: + case 489: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2627 +//line sql.y:2653 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 485: + case 490: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2633 +//line sql.y:2659 { yyVAL.str = string(yyDollar[1].str) } - case 486: + case 491: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2637 +//line sql.y:2663 { yyVAL.str = string(yyDollar[1].str) } - case 487: + case 492: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2643 +//line sql.y:2669 { yyVAL.tableIdent = NewTableIdent("") } - case 488: + case 493: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2647 +//line sql.y:2673 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 489: + case 494: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2651 +//line sql.y:2677 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 490: + case 495: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2657 +//line sql.y:2683 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 491: + case 496: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2661 +//line sql.y:2687 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 492: + case 497: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2665 +//line sql.y:2691 { yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 493: + case 498: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2671 +//line sql.y:2697 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 494: + case 499: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2675 +//line sql.y:2701 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 495: + case 500: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2681 +//line sql.y:2707 { yyVAL.empty = struct{}{} } - case 496: + case 501: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2685 +//line sql.y:2711 { yyVAL.empty = struct{}{} } - case 497: + case 502: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2689 +//line sql.y:2715 { yyVAL.empty = struct{}{} } - case 498: + case 503: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2695 +//line sql.y:2721 { yyLOCAL = &Use{DBName: yyDollar[2].tableIdent} } yyVAL.union = yyLOCAL - case 499: + case 504: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2699 +//line sql.y:2725 { yyLOCAL = &Use{DBName: TableIdent{v: ""}} } yyVAL.union = yyLOCAL - case 500: + case 505: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2705 +//line sql.y:2731 { yyLOCAL = &Begin{} } yyVAL.union = yyLOCAL - case 501: + case 506: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2709 +//line sql.y:2735 { yyLOCAL = &Begin{} } yyVAL.union = yyLOCAL - case 502: + case 507: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2715 +//line sql.y:2741 { yyLOCAL = &Commit{} } yyVAL.union = yyLOCAL - case 503: + case 508: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2721 +//line sql.y:2747 { yyLOCAL = &Rollback{} } yyVAL.union = yyLOCAL - case 504: + case 509: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2725 +//line sql.y:2751 { yyLOCAL = &SRollback{Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 505: + case 510: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2730 +//line sql.y:2756 { yyVAL.empty = struct{}{} } - case 506: + case 511: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2732 +//line sql.y:2758 { yyVAL.empty = struct{}{} } - case 507: + case 512: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2735 +//line sql.y:2761 { yyVAL.empty = struct{}{} } - case 508: + case 513: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2737 +//line sql.y:2763 { yyVAL.empty = struct{}{} } - case 509: + case 514: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2742 +//line sql.y:2768 { yyLOCAL = &Savepoint{Name: yyDollar[2].colIdent} } yyVAL.union = yyLOCAL - case 510: + case 515: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2748 +//line sql.y:2774 { yyLOCAL = &Release{Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 511: + case 516: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2753 +//line sql.y:2779 { yyLOCAL = EmptyType } yyVAL.union = yyLOCAL - case 512: + case 517: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2757 +//line sql.y:2783 { yyLOCAL = JSONType } yyVAL.union = yyLOCAL - case 513: + case 518: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2761 +//line sql.y:2787 { yyLOCAL = TreeType } yyVAL.union = yyLOCAL - case 514: + case 519: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2765 +//line sql.y:2791 { yyLOCAL = VitessType } yyVAL.union = yyLOCAL - case 515: + case 520: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2769 +//line sql.y:2795 { yyLOCAL = TraditionalType } yyVAL.union = yyLOCAL - case 516: + case 521: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2773 +//line sql.y:2799 { yyLOCAL = AnalyzeType } yyVAL.union = yyLOCAL - case 517: + case 522: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2779 +//line sql.y:2805 { yyVAL.str = yyDollar[1].str } - case 518: + case 523: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2783 +//line sql.y:2809 { yyVAL.str = yyDollar[1].str } - case 519: + case 524: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2787 +//line sql.y:2813 { yyVAL.str = yyDollar[1].str } - case 520: + case 525: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2793 +//line sql.y:2819 { yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 521: + case 526: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2797 +//line sql.y:2823 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 522: + case 527: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2801 +//line sql.y:2827 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 523: + case 528: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2805 +//line sql.y:2831 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 524: + case 529: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2810 +//line sql.y:2836 { yyVAL.str = "" } - case 525: + case 530: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2814 +//line sql.y:2840 { yyVAL.str = yyDollar[1].colIdent.val } - case 526: + case 531: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2818 +//line sql.y:2844 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 527: + case 532: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2824 +//line sql.y:2850 { yyLOCAL = &ExplainTab{Table: yyDollar[2].tableName, Wild: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 528: + case 533: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2828 +//line sql.y:2854 { yyLOCAL = &ExplainStmt{Type: yyDollar[2].explainTypeUnion(), Statement: yyDollar[3].statementUnion()} } yyVAL.union = yyLOCAL - case 529: + case 534: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2834 +//line sql.y:2860 { yyLOCAL = &OtherAdmin{} } yyVAL.union = yyLOCAL - case 530: + case 535: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2838 +//line sql.y:2864 { yyLOCAL = &OtherAdmin{} } yyVAL.union = yyLOCAL - case 531: + case 536: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2844 +//line sql.y:2870 { yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()} } yyVAL.union = yyLOCAL - case 532: + case 537: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableAndLockTypes -//line sql.y:2850 +//line sql.y:2876 { yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()} } yyVAL.union = yyLOCAL - case 533: + case 538: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2854 +//line sql.y:2880 { yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion()) } - case 534: + case 539: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *TableAndLockType -//line sql.y:2860 +//line sql.y:2886 { yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()} } yyVAL.union = yyLOCAL - case 535: + case 540: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2866 +//line sql.y:2892 { yyLOCAL = Read } yyVAL.union = yyLOCAL - case 536: + case 541: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:2870 +//line sql.y:2896 { yyLOCAL = ReadLocal } yyVAL.union = yyLOCAL - case 537: + case 542: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2874 +//line sql.y:2900 { yyLOCAL = Write } yyVAL.union = yyLOCAL - case 538: + case 543: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:2878 +//line sql.y:2904 { yyLOCAL = LowPriorityWrite } yyVAL.union = yyLOCAL - case 539: + case 544: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2884 +//line sql.y:2910 { yyLOCAL = &UnlockTables{} } yyVAL.union = yyLOCAL - case 540: + case 545: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2890 +//line sql.y:2916 { yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs), UUID: string(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 541: + case 546: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2896 +//line sql.y:2922 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs} } yyVAL.union = yyLOCAL - case 542: + case 547: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2900 +//line sql.y:2926 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()} } yyVAL.union = yyLOCAL - case 543: + case 548: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2904 +//line sql.y:2930 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true} } yyVAL.union = yyLOCAL - case 544: + case 549: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2908 +//line sql.y:2934 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 545: + case 550: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2912 +//line sql.y:2938 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true} } yyVAL.union = yyLOCAL - case 546: + case 551: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2916 +//line sql.y:2942 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true} } yyVAL.union = yyLOCAL - case 547: + case 552: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2922 +//line sql.y:2948 { yyVAL.strs = []string{yyDollar[1].str} } - case 548: + case 553: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2926 +//line sql.y:2952 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str) } - case 549: + case 554: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2932 +//line sql.y:2958 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 550: + case 555: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2936 +//line sql.y:2962 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 551: + case 556: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2940 +//line sql.y:2966 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 552: + case 557: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2944 +//line sql.y:2970 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 553: + case 558: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2948 +//line sql.y:2974 { yyVAL.str = string(yyDollar[1].str) } - case 554: + case 559: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2952 +//line sql.y:2978 { yyVAL.str = string(yyDollar[1].str) } - case 555: + case 560: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2956 +//line sql.y:2982 { yyVAL.str = string(yyDollar[1].str) } - case 556: + case 561: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2960 +//line sql.y:2986 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str } - case 557: + case 562: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2964 +//line sql.y:2990 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 558: + case 563: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2968 +//line sql.y:2994 { yyVAL.str = string(yyDollar[1].str) } - case 559: + case 564: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2972 +//line sql.y:2998 { yyVAL.str = string(yyDollar[1].str) } - case 560: + case 565: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2976 +//line sql.y:3002 { yyVAL.str = string(yyDollar[1].str) } - case 561: + case 566: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2981 +//line sql.y:3007 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 562: + case 567: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2985 +//line sql.y:3011 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 563: + case 568: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2989 +//line sql.y:3015 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 564: + case 569: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2994 +//line sql.y:3020 { yyVAL.str = "" } - case 565: + case 570: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2998 +//line sql.y:3024 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].colIdent.String() } - case 566: + case 571: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3003 +//line sql.y:3029 { setAllowComments(yylex, true) } - case 567: + case 572: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3007 +//line sql.y:3033 { yyVAL.strs = yyDollar[2].strs setAllowComments(yylex, false) } - case 568: + case 573: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3013 +//line sql.y:3039 { yyVAL.strs = nil } - case 569: + case 574: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3017 +//line sql.y:3043 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str) } - case 570: + case 575: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3023 +//line sql.y:3049 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 571: + case 576: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3027 +//line sql.y:3053 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 572: + case 577: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3031 +//line sql.y:3057 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 573: + case 578: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3036 +//line sql.y:3062 { yyVAL.str = "" } - case 574: + case 579: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3040 +//line sql.y:3066 { yyVAL.str = SQLNoCacheStr } - case 575: + case 580: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3044 +//line sql.y:3070 { yyVAL.str = SQLCacheStr } - case 576: + case 581: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3049 +//line sql.y:3075 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 577: + case 582: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3053 +//line sql.y:3079 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 578: + case 583: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3057 +//line sql.y:3083 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 579: + case 584: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3062 +//line sql.y:3088 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 580: + case 585: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3066 +//line sql.y:3092 { yyLOCAL = yyDollar[1].selectExprsUnion() } yyVAL.union = yyLOCAL - case 581: + case 586: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3071 +//line sql.y:3097 { yyVAL.strs = nil } - case 582: + case 587: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3075 +//line sql.y:3101 { yyVAL.strs = []string{yyDollar[1].str} } - case 583: + case 588: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3079 +//line sql.y:3105 { // TODO: This is a hack since I couldn't get it to work in a nicer way. I got 'conflicts: 8 shift/reduce' yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str} } - case 584: + case 589: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3083 +//line sql.y:3109 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str} } - case 585: + case 590: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3087 +//line sql.y:3113 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str, yyDollar[4].str} } - case 586: + case 591: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3093 +//line sql.y:3119 { yyVAL.str = SQLNoCacheStr } - case 587: + case 592: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3097 +//line sql.y:3123 { yyVAL.str = SQLCacheStr } - case 588: + case 593: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3101 +//line sql.y:3127 { yyVAL.str = DistinctStr } - case 589: + case 594: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3105 +//line sql.y:3131 { yyVAL.str = DistinctStr } - case 590: + case 595: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3109 +//line sql.y:3135 { yyVAL.str = StraightJoinHint } - case 591: + case 596: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3113 +//line sql.y:3139 { yyVAL.str = SQLCalcFoundRowsStr } - case 592: + case 597: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3117 +//line sql.y:3143 { yyVAL.str = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway } - case 593: + case 598: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3123 +//line sql.y:3149 { yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()} } yyVAL.union = yyLOCAL - case 594: + case 599: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3127 +//line sql.y:3153 { yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion()) } - case 595: + case 600: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3133 +//line sql.y:3159 { yyLOCAL = &StarExpr{} } yyVAL.union = yyLOCAL - case 596: + case 601: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3137 +//line sql.y:3163 { yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].colIdent} } yyVAL.union = yyLOCAL - case 597: + case 602: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3141 +//line sql.y:3167 { yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } yyVAL.union = yyLOCAL - case 598: + case 603: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3145 +//line sql.y:3171 { yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL - case 599: + case 604: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3150 +//line sql.y:3176 { yyVAL.colIdent = ColIdent{} } - case 600: + case 605: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3154 +//line sql.y:3180 { yyVAL.colIdent = yyDollar[1].colIdent } - case 601: + case 606: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3158 +//line sql.y:3184 { yyVAL.colIdent = yyDollar[2].colIdent } - case 603: + case 608: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3165 +//line sql.y:3191 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 604: + case 609: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3170 +//line sql.y:3196 { yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } yyVAL.union = yyLOCAL - case 605: + case 610: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3174 +//line sql.y:3200 { yyLOCAL = yyDollar[2].tableExprsUnion() } yyVAL.union = yyLOCAL - case 606: + case 611: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3180 +//line sql.y:3206 { yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()} } yyVAL.union = yyLOCAL - case 607: + case 612: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3184 +//line sql.y:3210 { yySLICE := (*TableExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion()) } - case 610: + case 615: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3194 +//line sql.y:3220 { yyLOCAL = yyDollar[1].aliasedTableNameUnion() } yyVAL.union = yyLOCAL - case 611: + case 616: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3198 +//line sql.y:3224 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].tableIdent} } yyVAL.union = yyLOCAL - case 612: + case 617: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3202 +//line sql.y:3228 { yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()} } yyVAL.union = yyLOCAL - case 613: + case 618: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:3208 +//line sql.y:3234 { yyLOCAL = &DerivedTable{yyDollar[2].selStmtUnion()} } yyVAL.union = yyLOCAL - case 614: + case 619: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3214 +//line sql.y:3240 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHintsUnion()} } yyVAL.union = yyLOCAL - case 615: + case 620: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3218 +//line sql.y:3244 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHintsUnion()} } yyVAL.union = yyLOCAL - case 616: + case 621: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:3223 +//line sql.y:3249 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 617: + case 622: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:3227 +//line sql.y:3253 { yyLOCAL = yyDollar[2].columnsUnion() } yyVAL.union = yyLOCAL - case 618: + case 623: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:3233 +//line sql.y:3259 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 619: + case 624: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3237 +//line sql.y:3263 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 620: + case 625: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Partitions -//line sql.y:3243 +//line sql.y:3269 { yyLOCAL = Partitions{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 621: + case 626: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3247 +//line sql.y:3273 { yySLICE := (*Partitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 622: + case 627: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3260 +//line sql.y:3286 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 623: + case 628: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3264 +//line sql.y:3290 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 624: + case 629: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3268 +//line sql.y:3294 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 625: + case 630: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3272 +//line sql.y:3298 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()} } yyVAL.union = yyLOCAL - case 626: + case 631: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3278 +//line sql.y:3304 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } - case 627: + case 632: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3280 +//line sql.y:3306 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columnsUnion()} } - case 628: + case 633: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3284 +//line sql.y:3310 { yyVAL.joinCondition = JoinCondition{} } - case 629: + case 634: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3286 +//line sql.y:3312 { yyVAL.joinCondition = yyDollar[1].joinCondition } - case 630: + case 635: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3290 +//line sql.y:3316 { yyVAL.joinCondition = JoinCondition{} } - case 631: + case 636: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3292 +//line sql.y:3318 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } - case 632: + case 637: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3295 +//line sql.y:3321 { yyVAL.empty = struct{}{} } - case 633: + case 638: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3297 +//line sql.y:3323 { yyVAL.empty = struct{}{} } - case 634: + case 639: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3300 +//line sql.y:3326 { yyVAL.tableIdent = NewTableIdent("") } - case 635: + case 640: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3304 +//line sql.y:3330 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 636: + case 641: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3308 +//line sql.y:3334 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 638: + case 643: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3315 +//line sql.y:3341 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 639: + case 644: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3321 +//line sql.y:3347 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 640: + case 645: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3325 +//line sql.y:3351 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 641: + case 646: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3329 +//line sql.y:3355 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 642: + case 647: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3335 +//line sql.y:3361 { yyLOCAL = StraightJoinType } yyVAL.union = yyLOCAL - case 643: + case 648: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3341 +//line sql.y:3367 { yyLOCAL = LeftJoinType } yyVAL.union = yyLOCAL - case 644: + case 649: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3345 +//line sql.y:3371 { yyLOCAL = LeftJoinType } yyVAL.union = yyLOCAL - case 645: + case 650: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3349 +//line sql.y:3375 { yyLOCAL = RightJoinType } yyVAL.union = yyLOCAL - case 646: + case 651: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3353 +//line sql.y:3379 { yyLOCAL = RightJoinType } yyVAL.union = yyLOCAL - case 647: + case 652: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3359 +//line sql.y:3385 { yyLOCAL = NaturalJoinType } yyVAL.union = yyLOCAL - case 648: + case 653: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3363 +//line sql.y:3389 { if yyDollar[2].joinTypeUnion() == LeftJoinType { yyLOCAL = NaturalLeftJoinType @@ -10420,668 +10465,668 @@ yydefault: } } yyVAL.union = yyLOCAL - case 649: + case 654: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3373 +//line sql.y:3399 { yyVAL.tableName = yyDollar[2].tableName } - case 650: + case 655: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3377 +//line sql.y:3403 { yyVAL.tableName = yyDollar[1].tableName } - case 651: + case 656: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3383 +//line sql.y:3409 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 652: + case 657: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3387 +//line sql.y:3413 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } - case 653: + case 658: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3393 +//line sql.y:3419 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 654: + case 659: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3398 +//line sql.y:3424 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 655: + case 660: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3402 +//line sql.y:3428 { yyLOCAL = &IndexHints{Type: UseOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 656: + case 661: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3406 +//line sql.y:3432 { yyLOCAL = &IndexHints{Type: UseOp} } yyVAL.union = yyLOCAL - case 657: + case 662: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3410 +//line sql.y:3436 { yyLOCAL = &IndexHints{Type: IgnoreOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 658: + case 663: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3414 +//line sql.y:3440 { yyLOCAL = &IndexHints{Type: ForceOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 659: + case 664: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3419 +//line sql.y:3445 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 660: + case 665: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3423 +//line sql.y:3449 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 661: + case 666: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3429 +//line sql.y:3455 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 662: + case 667: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3433 +//line sql.y:3459 { yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 663: + case 668: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3437 +//line sql.y:3463 { yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 664: + case 669: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3441 +//line sql.y:3467 { yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 665: + case 670: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3445 +//line sql.y:3471 { yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 666: + case 671: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3449 +//line sql.y:3475 { yyLOCAL = &IsExpr{Operator: yyDollar[3].isExprOperatorUnion(), Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 667: + case 672: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3453 +//line sql.y:3479 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 668: + case 673: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3457 +//line sql.y:3483 { yyLOCAL = &Default{ColName: yyDollar[2].str} } yyVAL.union = yyLOCAL - case 669: + case 674: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3463 +//line sql.y:3489 { yyVAL.str = "" } - case 670: + case 675: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3467 +//line sql.y:3493 { yyVAL.str = string(yyDollar[2].colIdent.String()) } - case 671: + case 676: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3473 +//line sql.y:3499 { yyLOCAL = BoolVal(true) } yyVAL.union = yyLOCAL - case 672: + case 677: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3477 +//line sql.y:3503 { yyLOCAL = BoolVal(false) } yyVAL.union = yyLOCAL - case 673: + case 678: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3483 +//line sql.y:3509 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 674: + case 679: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3487 +//line sql.y:3513 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()} } yyVAL.union = yyLOCAL - case 675: + case 680: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3491 +//line sql.y:3517 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()} } yyVAL.union = yyLOCAL - case 676: + case 681: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3495 +//line sql.y:3521 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 677: + case 682: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3499 +//line sql.y:3525 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 678: + case 683: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3503 +//line sql.y:3529 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 679: + case 684: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3507 +//line sql.y:3533 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 680: + case 685: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3511 +//line sql.y:3537 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: BetweenOp, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 681: + case 686: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3515 +//line sql.y:3541 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: NotBetweenOp, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 682: + case 687: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3519 +//line sql.y:3545 { yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()} } yyVAL.union = yyLOCAL - case 683: + case 688: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3525 +//line sql.y:3551 { yyLOCAL = IsNullOp } yyVAL.union = yyLOCAL - case 684: + case 689: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3529 +//line sql.y:3555 { yyLOCAL = IsNotNullOp } yyVAL.union = yyLOCAL - case 685: + case 690: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3533 +//line sql.y:3559 { yyLOCAL = IsTrueOp } yyVAL.union = yyLOCAL - case 686: + case 691: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3537 +//line sql.y:3563 { yyLOCAL = IsNotTrueOp } yyVAL.union = yyLOCAL - case 687: + case 692: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3541 +//line sql.y:3567 { yyLOCAL = IsFalseOp } yyVAL.union = yyLOCAL - case 688: + case 693: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3545 +//line sql.y:3571 { yyLOCAL = IsNotFalseOp } yyVAL.union = yyLOCAL - case 689: + case 694: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3551 +//line sql.y:3577 { yyLOCAL = EqualOp } yyVAL.union = yyLOCAL - case 690: + case 695: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3555 +//line sql.y:3581 { yyLOCAL = LessThanOp } yyVAL.union = yyLOCAL - case 691: + case 696: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3559 +//line sql.y:3585 { yyLOCAL = GreaterThanOp } yyVAL.union = yyLOCAL - case 692: + case 697: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3563 +//line sql.y:3589 { yyLOCAL = LessEqualOp } yyVAL.union = yyLOCAL - case 693: + case 698: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3567 +//line sql.y:3593 { yyLOCAL = GreaterEqualOp } yyVAL.union = yyLOCAL - case 694: + case 699: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3571 +//line sql.y:3597 { yyLOCAL = NotEqualOp } yyVAL.union = yyLOCAL - case 695: + case 700: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3575 +//line sql.y:3601 { yyLOCAL = NullSafeEqualOp } yyVAL.union = yyLOCAL - case 696: + case 701: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3580 +//line sql.y:3606 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 697: + case 702: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3584 +//line sql.y:3610 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 698: + case 703: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3590 +//line sql.y:3616 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 699: + case 704: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3594 +//line sql.y:3620 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 700: + case 705: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3598 +//line sql.y:3624 { yyLOCAL = ListArg(yyDollar[1].str[2:]) bindVariable(yylex, yyDollar[1].str[2:]) } yyVAL.union = yyLOCAL - case 701: + case 706: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Subquery -//line sql.y:3605 +//line sql.y:3631 { yyLOCAL = &Subquery{yyDollar[2].selStmtUnion()} } yyVAL.union = yyLOCAL - case 702: + case 707: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:3611 +//line sql.y:3637 { yyLOCAL = Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 703: + case 708: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3615 +//line sql.y:3641 { yySLICE := (*Exprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].exprUnion()) } - case 704: + case 709: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3621 +//line sql.y:3647 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 705: + case 710: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3625 +//line sql.y:3651 { yyLOCAL = yyDollar[1].boolValUnion() } yyVAL.union = yyLOCAL - case 706: + case 711: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3629 +//line sql.y:3655 { yyLOCAL = yyDollar[1].colNameUnion() } yyVAL.union = yyLOCAL - case 707: + case 712: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3633 +//line sql.y:3659 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 708: + case 713: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3637 +//line sql.y:3663 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 709: + case 714: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3641 +//line sql.y:3667 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 710: + case 715: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3645 +//line sql.y:3671 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 711: + case 716: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3649 +//line sql.y:3675 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 712: + case 717: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3653 +//line sql.y:3679 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 713: + case 718: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3657 +//line sql.y:3683 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 714: + case 719: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3661 +//line sql.y:3687 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 715: + case 720: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3665 +//line sql.y:3691 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 716: + case 721: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3669 +//line sql.y:3695 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 717: + case 722: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3673 +//line sql.y:3699 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 718: + case 723: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3677 +//line sql.y:3703 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 719: + case 724: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3681 +//line sql.y:3707 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 720: + case 725: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3685 +//line sql.y:3711 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 721: + case 726: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3689 +//line sql.y:3715 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONExtractOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 722: + case 727: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3693 +//line sql.y:3719 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONUnquoteExtractOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 723: + case 728: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3697 +//line sql.y:3723 { yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Charset: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 724: + case 729: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3701 +//line sql.y:3727 { yyLOCAL = &UnaryExpr{Operator: BinaryOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 725: + case 730: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3705 +//line sql.y:3731 { yyLOCAL = &UnaryExpr{Operator: UBinaryOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 726: + case 731: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3709 +//line sql.y:3735 { yyLOCAL = &UnaryExpr{Operator: Utf8Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 727: + case 732: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3713 +//line sql.y:3739 { yyLOCAL = &UnaryExpr{Operator: Utf8mb4Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 728: + case 733: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3717 +//line sql.y:3743 { yyLOCAL = &UnaryExpr{Operator: Latin1Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 729: + case 734: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3721 +//line sql.y:3747 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 730: + case 735: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3725 +//line sql.y:3751 { yyLOCAL = handleUnaryMinus(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 731: + case 736: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3729 +//line sql.y:3755 { yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 732: + case 737: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3733 +//line sql.y:3759 { yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 733: + case 738: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3737 +//line sql.y:3763 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -11090,666 +11135,666 @@ yydefault: yyLOCAL = &IntervalExpr{Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 738: + case 743: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3755 +//line sql.y:3781 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 739: + case 744: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3759 +//line sql.y:3785 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 740: + case 745: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3763 +//line sql.y:3789 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 741: + case 746: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3767 +//line sql.y:3793 { yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 742: + case 747: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3777 +//line sql.y:3803 { yyLOCAL = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 743: + case 748: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3781 +//line sql.y:3807 { yyLOCAL = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 744: + case 749: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3785 +//line sql.y:3811 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 745: + case 750: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3789 +//line sql.y:3815 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 746: + case 751: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3793 +//line sql.y:3819 { yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 747: + case 752: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3797 +//line sql.y:3823 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 748: + case 753: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3801 +//line sql.y:3827 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 749: + case 754: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3805 +//line sql.y:3831 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 750: + case 755: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3809 +//line sql.y:3835 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 751: + case 756: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:3813 +//line sql.y:3839 { yyLOCAL = &MatchExpr{Columns: yyDollar[3].selectExprsUnion(), Expr: yyDollar[7].exprUnion(), Option: yyDollar[8].matchExprOptionUnion()} } yyVAL.union = yyLOCAL - case 752: + case 757: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3817 +//line sql.y:3843 { yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].selectExprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()} } yyVAL.union = yyLOCAL - case 753: + case 758: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3821 +//line sql.y:3847 { yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 754: + case 759: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3825 +//line sql.y:3851 { yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()} } yyVAL.union = yyLOCAL - case 755: + case 760: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3829 +//line sql.y:3855 { yyLOCAL = &FuncExpr{Name: NewColIdent(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 756: + case 761: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3839 +//line sql.y:3865 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_timestamp")} } yyVAL.union = yyLOCAL - case 757: + case 762: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3843 +//line sql.y:3869 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_timestamp")} } yyVAL.union = yyLOCAL - case 758: + case 763: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3847 +//line sql.y:3873 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_time")} } yyVAL.union = yyLOCAL - case 759: + case 764: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3852 +//line sql.y:3878 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_date")} } yyVAL.union = yyLOCAL - case 760: + case 765: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3857 +//line sql.y:3883 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtime")} } yyVAL.union = yyLOCAL - case 761: + case 766: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3862 +//line sql.y:3888 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtimestamp")} } yyVAL.union = yyLOCAL - case 762: + case 767: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3868 +//line sql.y:3894 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_date")} } yyVAL.union = yyLOCAL - case 763: + case 768: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3873 +//line sql.y:3899 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_time")} } yyVAL.union = yyLOCAL - case 764: + case 769: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3878 +//line sql.y:3904 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 765: + case 770: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3882 +//line sql.y:3908 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 766: + case 771: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3886 +//line sql.y:3912 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 767: + case 772: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3891 +//line sql.y:3917 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 768: + case 773: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3896 +//line sql.y:3922 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 769: + case 774: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3901 +//line sql.y:3927 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 770: + case 775: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3905 +//line sql.y:3931 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 771: + case 776: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3909 +//line sql.y:3935 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 774: + case 779: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3919 +//line sql.y:3945 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 775: + case 780: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3929 +//line sql.y:3955 { yyLOCAL = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 776: + case 781: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3933 +//line sql.y:3959 { yyLOCAL = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 777: + case 782: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3937 +//line sql.y:3963 { yyLOCAL = &FuncExpr{Name: NewColIdent("schema"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 778: + case 783: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3941 +//line sql.y:3967 { yyLOCAL = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 779: + case 784: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3945 +//line sql.y:3971 { yyLOCAL = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 780: + case 785: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3949 +//line sql.y:3975 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 781: + case 786: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3953 +//line sql.y:3979 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 782: + case 787: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3959 +//line sql.y:3985 { yyLOCAL = NoOption } yyVAL.union = yyLOCAL - case 783: + case 788: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3963 +//line sql.y:3989 { yyLOCAL = BooleanModeOpt } yyVAL.union = yyLOCAL - case 784: + case 789: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3967 +//line sql.y:3993 { yyLOCAL = NaturalLanguageModeOpt } yyVAL.union = yyLOCAL - case 785: + case 790: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3971 +//line sql.y:3997 { yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt } yyVAL.union = yyLOCAL - case 786: + case 791: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3975 +//line sql.y:4001 { yyLOCAL = QueryExpansionOpt } yyVAL.union = yyLOCAL - case 787: + case 792: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3981 +//line sql.y:4007 { yyVAL.str = string(yyDollar[1].colIdent.String()) } - case 788: + case 793: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3985 +//line sql.y:4011 { yyVAL.str = string(yyDollar[1].str) } - case 789: + case 794: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3989 +//line sql.y:4015 { yyVAL.str = string(yyDollar[1].str) } - case 790: + case 795: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3995 +//line sql.y:4021 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 791: + case 796: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:3999 +//line sql.y:4025 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Operator: CharacterSetOp} } yyVAL.union = yyLOCAL - case 792: + case 797: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4003 +//line sql.y:4029 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: string(yyDollar[3].colIdent.String())} } yyVAL.union = yyLOCAL - case 793: + case 798: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4007 +//line sql.y:4033 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 794: + case 799: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4011 +//line sql.y:4037 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 795: + case 800: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4015 +//line sql.y:4041 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length yyLOCAL.Scale = yyDollar[2].LengthScaleOption.Scale } yyVAL.union = yyLOCAL - case 796: + case 801: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4021 +//line sql.y:4047 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 797: + case 802: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4025 +//line sql.y:4051 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 798: + case 803: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4029 +//line sql.y:4055 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 799: + case 804: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4033 +//line sql.y:4059 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 800: + case 805: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4037 +//line sql.y:4063 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 801: + case 806: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4041 +//line sql.y:4067 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 802: + case 807: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4045 +//line sql.y:4071 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 803: + case 808: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4050 +//line sql.y:4076 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 804: + case 809: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4054 +//line sql.y:4080 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 805: + case 810: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4059 +//line sql.y:4085 { yyVAL.str = string("") } - case 806: + case 811: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4063 +//line sql.y:4089 { yyVAL.str = " separator " + encodeSQLString(yyDollar[2].str) } - case 807: + case 812: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*When -//line sql.y:4069 +//line sql.y:4095 { yyLOCAL = []*When{yyDollar[1].whenUnion()} } yyVAL.union = yyLOCAL - case 808: + case 813: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4073 +//line sql.y:4099 { yySLICE := (*[]*When)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].whenUnion()) } - case 809: + case 814: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *When -//line sql.y:4079 +//line sql.y:4105 { yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 810: + case 815: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4084 +//line sql.y:4110 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 811: + case 816: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4088 +//line sql.y:4114 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 812: + case 817: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ColName -//line sql.y:4094 +//line sql.y:4120 { yyLOCAL = &ColName{Name: yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 813: + case 818: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColName -//line sql.y:4098 +//line sql.y:4124 { yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 814: + case 819: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColName -//line sql.y:4102 +//line sql.y:4128 { yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 815: + case 820: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4108 +//line sql.y:4134 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 816: + case 821: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4112 +//line sql.y:4138 { yyLOCAL = NewHexLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 817: + case 822: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4116 +//line sql.y:4142 { yyLOCAL = NewBitLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 818: + case 823: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4120 +//line sql.y:4146 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 819: + case 824: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4124 +//line sql.y:4150 { yyLOCAL = NewFloatLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 820: + case 825: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4128 +//line sql.y:4154 { yyLOCAL = NewHexNumLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 821: + case 826: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4132 +//line sql.y:4158 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 822: + case 827: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4137 +//line sql.y:4163 { yyLOCAL = &NullVal{} } yyVAL.union = yyLOCAL - case 823: + case 828: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4143 +//line sql.y:4169 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -11759,707 +11804,707 @@ yydefault: yyLOCAL = NewIntLiteral("1") } yyVAL.union = yyLOCAL - case 824: + case 829: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4152 +//line sql.y:4178 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 825: + case 830: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4156 +//line sql.y:4182 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 826: + case 831: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4162 +//line sql.y:4188 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 827: + case 832: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Exprs -//line sql.y:4166 +//line sql.y:4192 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 828: + case 833: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4171 +//line sql.y:4197 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 829: + case 834: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4175 +//line sql.y:4201 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 830: + case 835: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4180 +//line sql.y:4206 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 831: + case 836: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4184 +//line sql.y:4210 { yyLOCAL = yyDollar[3].orderByUnion() } yyVAL.union = yyLOCAL - case 832: + case 837: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4190 +//line sql.y:4216 { yyLOCAL = OrderBy{yyDollar[1].orderUnion()} } yyVAL.union = yyLOCAL - case 833: + case 838: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4194 +//line sql.y:4220 { yySLICE := (*OrderBy)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].orderUnion()) } - case 834: + case 839: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Order -//line sql.y:4200 +//line sql.y:4226 { yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()} } yyVAL.union = yyLOCAL - case 835: + case 840: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4205 +//line sql.y:4231 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 836: + case 841: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4209 +//line sql.y:4235 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 837: + case 842: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4213 +//line sql.y:4239 { yyLOCAL = DescOrder } yyVAL.union = yyLOCAL - case 838: + case 843: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Limit -//line sql.y:4218 +//line sql.y:4244 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 839: + case 844: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Limit -//line sql.y:4222 +//line sql.y:4248 { yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 840: + case 845: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4226 +//line sql.y:4252 { yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 841: + case 846: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4230 +//line sql.y:4256 { yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 842: + case 847: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4235 +//line sql.y:4261 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 843: + case 848: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4239 +//line sql.y:4265 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 844: + case 849: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4243 +//line sql.y:4269 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 845: + case 850: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4247 +//line sql.y:4273 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 846: + case 851: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4251 +//line sql.y:4277 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 847: + case 852: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4258 +//line sql.y:4284 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.union = yyLOCAL - case 848: + case 853: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4262 +//line sql.y:4288 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.union = yyLOCAL - case 849: + case 854: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4266 +//line sql.y:4292 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.union = yyLOCAL - case 850: + case 855: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4270 +//line sql.y:4296 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.union = yyLOCAL - case 851: + case 856: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4276 +//line sql.y:4302 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 852: + case 857: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4280 +//line sql.y:4306 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 853: + case 858: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4284 +//line sql.y:4310 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 854: + case 859: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4289 +//line sql.y:4315 { yyVAL.str = "" } - case 855: + case 860: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4293 +//line sql.y:4319 { yyVAL.str = string(yyDollar[3].str) } - case 856: + case 861: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4297 +//line sql.y:4323 { yyVAL.str = string(yyDollar[3].str) } - case 857: + case 862: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4301 +//line sql.y:4327 { yyVAL.str = string(yyDollar[3].str) } - case 858: + case 863: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4306 +//line sql.y:4332 { yyVAL.str = "" } - case 859: + case 864: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4310 +//line sql.y:4336 { yyVAL.str = yyDollar[3].str } - case 860: + case 865: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4316 +//line sql.y:4342 { yyVAL.str = string(yyDollar[1].str) } - case 861: + case 866: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4320 +//line sql.y:4346 { yyVAL.str = string(yyDollar[1].str) } - case 862: + case 867: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4325 +//line sql.y:4351 { yyVAL.str = "" } - case 863: + case 868: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4329 +//line sql.y:4355 { yyVAL.str = yyDollar[2].str } - case 864: + case 869: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4334 +//line sql.y:4360 { yyVAL.str = "cascaded" } - case 865: + case 870: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4338 +//line sql.y:4364 { yyVAL.str = string(yyDollar[1].str) } - case 866: + case 871: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4342 +//line sql.y:4368 { yyVAL.str = string(yyDollar[1].str) } - case 867: + case 872: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4347 +//line sql.y:4373 { yyVAL.str = "" } - case 868: + case 873: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4351 +//line sql.y:4377 { yyVAL.str = yyDollar[3].str } - case 869: + case 874: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4357 +//line sql.y:4383 { yyVAL.str = string(yyDollar[1].str) } - case 870: + case 875: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4361 +//line sql.y:4387 { yyVAL.str = string(yyDollar[1].str) } - case 871: + case 876: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4365 +//line sql.y:4391 { yyVAL.str = encodeSQLString(yyDollar[1].str) + "@" + string(yyDollar[2].str) } - case 872: + case 877: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4369 +//line sql.y:4395 { yyVAL.str = string(yyDollar[1].str) } - case 873: + case 878: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Lock -//line sql.y:4374 +//line sql.y:4400 { yyLOCAL = NoLock } yyVAL.union = yyLOCAL - case 874: + case 879: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Lock -//line sql.y:4378 +//line sql.y:4404 { yyLOCAL = ForUpdateLock } yyVAL.union = yyLOCAL - case 875: + case 880: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:4382 +//line sql.y:4408 { yyLOCAL = ShareModeLock } yyVAL.union = yyLOCAL - case 876: + case 881: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4387 +//line sql.y:4413 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 877: + case 882: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4391 +//line sql.y:4417 { yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].str, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str} } yyVAL.union = yyLOCAL - case 878: + case 883: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4395 +//line sql.y:4421 { yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: "", FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 879: + case 884: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4399 +//line sql.y:4425 { yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].str, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 880: + case 885: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4404 +//line sql.y:4430 { yyVAL.str = "" } - case 881: + case 886: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4408 +//line sql.y:4434 { yyVAL.str = " format csv" + yyDollar[3].str } - case 882: + case 887: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4412 +//line sql.y:4438 { yyVAL.str = " format text" + yyDollar[3].str } - case 883: + case 888: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4417 +//line sql.y:4443 { yyVAL.str = "" } - case 884: + case 889: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4421 +//line sql.y:4447 { yyVAL.str = " header" } - case 885: + case 890: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4426 +//line sql.y:4452 { yyVAL.str = "" } - case 886: + case 891: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4430 +//line sql.y:4456 { yyVAL.str = " manifest on" } - case 887: + case 892: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4434 +//line sql.y:4460 { yyVAL.str = " manifest off" } - case 888: + case 893: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4439 +//line sql.y:4465 { yyVAL.str = "" } - case 889: + case 894: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4443 +//line sql.y:4469 { yyVAL.str = " overwrite on" } - case 890: + case 895: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4447 +//line sql.y:4473 { yyVAL.str = " overwrite off" } - case 891: + case 896: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4453 +//line sql.y:4479 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 892: + case 897: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4458 +//line sql.y:4484 { yyVAL.str = "" } - case 893: + case 898: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4462 +//line sql.y:4488 { yyVAL.str = " lines" + yyDollar[2].str } - case 894: + case 899: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4468 +//line sql.y:4494 { yyVAL.str = yyDollar[1].str } - case 895: + case 900: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4472 +//line sql.y:4498 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 896: + case 901: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4478 +//line sql.y:4504 { yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str) } - case 897: + case 902: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4482 +//line sql.y:4508 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 898: + case 903: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4487 +//line sql.y:4513 { yyVAL.str = "" } - case 899: + case 904: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4491 +//line sql.y:4517 { yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str } - case 900: + case 905: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4497 +//line sql.y:4523 { yyVAL.str = yyDollar[1].str } - case 901: + case 906: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4501 +//line sql.y:4527 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 902: + case 907: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4507 +//line sql.y:4533 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 903: + case 908: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4511 +//line sql.y:4537 { yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str) } - case 904: + case 909: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4515 +//line sql.y:4541 { yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str) } - case 905: + case 910: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4520 +//line sql.y:4546 { yyVAL.str = "" } - case 906: + case 911: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4524 +//line sql.y:4550 { yyVAL.str = " optionally" } - case 907: + case 912: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Insert -//line sql.y:4537 +//line sql.y:4563 { yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion()} } yyVAL.union = yyLOCAL - case 908: + case 913: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Insert -//line sql.y:4541 +//line sql.y:4567 { yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()} } yyVAL.union = yyLOCAL - case 909: + case 914: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *Insert -//line sql.y:4545 +//line sql.y:4571 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion()} } yyVAL.union = yyLOCAL - case 910: + case 915: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4549 +//line sql.y:4575 { yyLOCAL = &Insert{Rows: yyDollar[4].valuesUnion()} } yyVAL.union = yyLOCAL - case 911: + case 916: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4553 +//line sql.y:4579 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()} } yyVAL.union = yyLOCAL - case 912: + case 917: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:4559 +//line sql.y:4585 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 913: + case 918: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:4563 +//line sql.y:4589 { yyLOCAL = Columns{yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 914: + case 919: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4567 +//line sql.y:4593 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 915: + case 920: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4571 +//line sql.y:4597 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[5].colIdent) } - case 916: + case 921: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4576 +//line sql.y:4602 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 917: + case 922: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4580 +//line sql.y:4606 { yyLOCAL = yyDollar[5].updateExprsUnion() } yyVAL.union = yyLOCAL - case 918: + case 923: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Values -//line sql.y:4586 +//line sql.y:4612 { yyLOCAL = Values{yyDollar[1].valTupleUnion()} } yyVAL.union = yyLOCAL - case 919: + case 924: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4590 +//line sql.y:4616 { yySLICE := (*Values)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion()) } - case 920: + case 925: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4596 +//line sql.y:4622 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 921: + case 926: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4600 +//line sql.y:4626 { yyLOCAL = ValTuple{} } yyVAL.union = yyLOCAL - case 922: + case 927: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4606 +//line sql.y:4632 { yyLOCAL = ValTuple(yyDollar[2].exprsUnion()) } yyVAL.union = yyLOCAL - case 923: + case 928: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4612 +//line sql.y:4638 { if len(yyDollar[1].valTupleUnion()) == 1 { yyLOCAL = yyDollar[1].valTupleUnion()[0] @@ -12468,329 +12513,329 @@ yydefault: } } yyVAL.union = yyLOCAL - case 924: + case 929: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4622 +//line sql.y:4648 { yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()} } yyVAL.union = yyLOCAL - case 925: + case 930: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4626 +//line sql.y:4652 { yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion()) } - case 926: + case 931: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *UpdateExpr -//line sql.y:4632 +//line sql.y:4658 { yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 927: + case 932: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SetExprs -//line sql.y:4638 +//line sql.y:4664 { yyLOCAL = SetExprs{yyDollar[1].setExprUnion()} } yyVAL.union = yyLOCAL - case 928: + case 933: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4642 +//line sql.y:4668 { yySLICE := (*SetExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].setExprUnion()) } - case 929: + case 934: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4648 +//line sql.y:4674 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("on")} } yyVAL.union = yyLOCAL - case 930: + case 935: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4652 +//line sql.y:4678 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("off")} } yyVAL.union = yyLOCAL - case 931: + case 936: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4656 +//line sql.y:4682 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 932: + case 937: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4660 +//line sql.y:4686 { yyLOCAL = &SetExpr{Name: NewColIdent(string(yyDollar[1].str)), Scope: ImplicitScope, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 933: + case 938: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4664 +//line sql.y:4690 { yyDollar[2].setExprUnion().Scope = yyDollar[1].scopeUnion() yyLOCAL = yyDollar[2].setExprUnion() } yyVAL.union = yyLOCAL - case 935: + case 940: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4672 +//line sql.y:4698 { yyVAL.str = "charset" } - case 938: + case 943: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4682 +//line sql.y:4708 { yyLOCAL = NewStrLiteral(yyDollar[1].colIdent.String()) } yyVAL.union = yyLOCAL - case 939: + case 944: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4686 +//line sql.y:4712 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 940: + case 945: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4690 +//line sql.y:4716 { yyLOCAL = &Default{} } yyVAL.union = yyLOCAL - case 943: + case 948: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4699 +//line sql.y:4725 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 944: + case 949: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4701 +//line sql.y:4727 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 945: + case 950: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4704 +//line sql.y:4730 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 946: + case 951: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4706 +//line sql.y:4732 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 947: + case 952: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4709 +//line sql.y:4735 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 948: + case 953: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line sql.y:4711 +//line sql.y:4737 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 949: + case 954: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Ignore -//line sql.y:4714 +//line sql.y:4740 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 950: + case 955: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Ignore -//line sql.y:4716 +//line sql.y:4742 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 951: + case 956: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4719 +//line sql.y:4745 { yyVAL.empty = struct{}{} } - case 952: + case 957: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4721 +//line sql.y:4747 { yyVAL.empty = struct{}{} } - case 953: + case 958: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4723 +//line sql.y:4749 { yyVAL.empty = struct{}{} } - case 954: + case 959: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4727 +//line sql.y:4753 { yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()} } yyVAL.union = yyLOCAL - case 955: + case 960: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4732 +//line sql.y:4758 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 956: + case 961: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:4736 +//line sql.y:4762 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 957: + case 962: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4741 +//line sql.y:4767 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 958: + case 963: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4743 +//line sql.y:4769 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL - case 959: + case 964: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:4747 +//line sql.y:4773 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].colIdent.String())} } yyVAL.union = yyLOCAL - case 960: + case 965: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4753 +//line sql.y:4779 { yyVAL.colIdent = yyDollar[1].colIdent } - case 961: + case 966: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4757 +//line sql.y:4783 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 963: + case 968: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4764 +//line sql.y:4790 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 964: + case 969: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4770 +//line sql.y:4796 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].colIdent.String())) } - case 965: + case 970: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4774 +//line sql.y:4800 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 966: + case 971: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4779 +//line sql.y:4805 { yyVAL.tableIdent = NewTableIdent("") } - case 967: + case 972: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4783 +//line sql.y:4809 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 969: + case 974: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4790 +//line sql.y:4816 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 1377: + case 1382: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5222 +//line sql.y:5248 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 1378: + case 1383: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5231 +//line sql.y:5257 { decNesting(yylex) } - case 1379: + case 1384: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5236 +//line sql.y:5262 { skipToEnd(yylex) } - case 1380: + case 1385: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5241 +//line sql.y:5267 { skipToEnd(yylex) } - case 1381: + case 1386: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5245 +//line sql.y:5271 { skipToEnd(yylex) } - case 1382: + case 1387: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5249 +//line sql.y:5275 { skipToEnd(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index cac019afb16..53f26912ae6 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -418,7 +418,7 @@ func bindVariable(yylex yyLexer, bvar string) { %type lock_type %type session_or_local_opt %type column_storage - +%type keys %start any_command @@ -1080,24 +1080,9 @@ column_attribute_list_opt: $1.Comment = NewStrLiteral($3) $$ = $1 } -| column_attribute_list_opt PRIMARY KEY - { - $1.KeyOpt = colKeyPrimary - $$ = $1 - } -| column_attribute_list_opt KEY - { - $1.KeyOpt = colKey - $$ = $1 - } -| column_attribute_list_opt UNIQUE KEY - { - $1.KeyOpt = colKeyUniqueKey - $$ = $1 - } -| column_attribute_list_opt UNIQUE +| column_attribute_list_opt keys { - $1.KeyOpt = colKeyUnique + $1.KeyOpt = $2 $$ = $1 } @@ -1120,6 +1105,46 @@ generated_column_attribute_list_opt: $1.Storage = $2 $$ = $1 } +| generated_column_attribute_list_opt NULL + { + val := true + $1.Null = &val + $$ = $1 + } +| generated_column_attribute_list_opt NOT NULL + { + val := false + $1.Null = &val + $$ = $1 + } +| generated_column_attribute_list_opt COMMENT_KEYWORD STRING + { + $1.Comment = NewStrLiteral($3) + $$ = $1 + } +| generated_column_attribute_list_opt keys + { + $1.KeyOpt = $2 + $$ = $1 + } + +keys: + PRIMARY KEY + { + $$ = colKeyPrimary + } +| UNIQUE + { + $$ = colKeyUnique + } +| UNIQUE KEY + { + $$ = colKeyUniqueKey + } +| KEY + { + $$ = colKey + } column_type: numeric_type unsigned_opt zero_fill_opt From cde765f66160a56abe62538c424e763612bdf1f5 Mon Sep 17 00:00:00 2001 From: GuptaManan100 Date: Thu, 13 May 2021 21:21:49 +0530 Subject: [PATCH 42/63] ran make parser Signed-off-by: GuptaManan100 --- go/vt/sqlparser/sql.go | 1594 ++++++++++++++++++++-------------------- 1 file changed, 797 insertions(+), 797 deletions(-) diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index 6b462f82584..9b8b421219e 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -4227,7 +4227,7 @@ var yyPgo = [...]int{ 1613, 1612, 182, 2170, 112, 1611, 125, } -//line sql.y:5278 +//line sql.y:5277 type yySymType struct { union interface{} empty struct{} @@ -6843,7 +6843,7 @@ yydefault: case 155: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1134 +//line sql.y:1133 { yyLOCAL = colKeyPrimary } @@ -6851,7 +6851,7 @@ yydefault: case 156: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1138 +//line sql.y:1137 { yyLOCAL = colKeyUnique } @@ -6859,7 +6859,7 @@ yydefault: case 157: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1142 +//line sql.y:1141 { yyLOCAL = colKeyUniqueKey } @@ -6867,14 +6867,14 @@ yydefault: case 158: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1146 +//line sql.y:1145 { yyLOCAL = colKey } yyVAL.union = yyLOCAL case 159: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1152 +//line sql.y:1151 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].booleanUnion() @@ -6882,74 +6882,74 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1163 +//line sql.y:1162 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].literalUnion() } case 164: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1168 +//line sql.y:1167 { yyVAL.columnType = yyDollar[1].columnType } case 165: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1174 +//line sql.y:1173 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 166: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1178 +//line sql.y:1177 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 167: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1182 +//line sql.y:1181 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 168: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1186 +//line sql.y:1185 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 169: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1190 +//line sql.y:1189 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 170: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1194 +//line sql.y:1193 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 171: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1198 +//line sql.y:1197 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 172: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1202 +//line sql.y:1201 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 173: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1206 +//line sql.y:1205 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 174: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1212 +//line sql.y:1211 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6957,7 +6957,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1218 +//line sql.y:1217 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6965,7 +6965,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1224 +//line sql.y:1223 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6973,7 +6973,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1230 +//line sql.y:1229 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6981,7 +6981,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1236 +//line sql.y:1235 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6989,189 +6989,189 @@ yydefault: } case 179: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1244 +//line sql.y:1243 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 180: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1248 +//line sql.y:1247 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 181: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1252 +//line sql.y:1251 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 182: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1256 +//line sql.y:1255 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1260 +//line sql.y:1259 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 184: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1266 +//line sql.y:1265 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 185: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1270 +//line sql.y:1269 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 186: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1274 +//line sql.y:1273 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 187: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1278 +//line sql.y:1277 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1282 +//line sql.y:1281 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 189: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1286 +//line sql.y:1285 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 190: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1290 +//line sql.y:1289 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 191: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1294 +//line sql.y:1293 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 192: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1298 +//line sql.y:1297 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 193: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1302 +//line sql.y:1301 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 194: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1306 +//line sql.y:1305 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 195: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1310 +//line sql.y:1309 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 196: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1314 +//line sql.y:1313 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 197: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1318 +//line sql.y:1317 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 198: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1323 +//line sql.y:1322 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 199: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1329 +//line sql.y:1328 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 200: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1333 +//line sql.y:1332 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 201: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1337 +//line sql.y:1336 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 202: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1341 +//line sql.y:1340 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 203: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1345 +//line sql.y:1344 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 204: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1349 +//line sql.y:1348 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 205: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1353 +//line sql.y:1352 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 206: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1357 +//line sql.y:1356 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 207: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1363 +//line sql.y:1362 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, encodeSQLString(yyDollar[1].str)) } case 208: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1368 +//line sql.y:1367 { yyVAL.strs = append(yyDollar[1].strs, encodeSQLString(yyDollar[3].str)) } case 209: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Literal -//line sql.y:1373 +//line sql.y:1372 { yyLOCAL = nil } @@ -7179,20 +7179,20 @@ yydefault: case 210: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Literal -//line sql.y:1377 +//line sql.y:1376 { yyLOCAL = NewIntLiteral(yyDollar[2].str) } yyVAL.union = yyLOCAL case 211: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1382 +//line sql.y:1381 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 212: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1386 +//line sql.y:1385 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), @@ -7201,13 +7201,13 @@ yydefault: } case 213: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1394 +//line sql.y:1393 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 214: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1398 +//line sql.y:1397 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), @@ -7215,7 +7215,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1404 +//line sql.y:1403 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), @@ -7225,7 +7225,7 @@ yydefault: case 216: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1412 +//line sql.y:1411 { yyLOCAL = false } @@ -7233,7 +7233,7 @@ yydefault: case 217: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1416 +//line sql.y:1415 { yyLOCAL = true } @@ -7241,7 +7241,7 @@ yydefault: case 218: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1421 +//line sql.y:1420 { yyLOCAL = false } @@ -7249,57 +7249,57 @@ yydefault: case 219: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1425 +//line sql.y:1424 { yyLOCAL = true } yyVAL.union = yyLOCAL case 220: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1430 +//line sql.y:1429 { yyVAL.str = "" } case 221: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1434 +//line sql.y:1433 { yyVAL.str = string(yyDollar[2].colIdent.String()) } case 222: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1438 +//line sql.y:1437 { yyVAL.str = encodeSQLString(yyDollar[2].str) } case 223: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1442 +//line sql.y:1441 { yyVAL.str = string(yyDollar[2].str) } case 224: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1447 +//line sql.y:1446 { yyVAL.str = "" } case 225: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1451 +//line sql.y:1450 { yyVAL.str = string(yyDollar[2].colIdent.String()) } case 226: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1455 +//line sql.y:1454 { yyVAL.str = encodeSQLString(yyDollar[2].str) } case 227: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexDefinition -//line sql.y:1462 +//line sql.y:1461 { yyLOCAL = &IndexDefinition{Info: yyDollar[1].indexInfoUnion(), Columns: yyDollar[3].indexColumnsUnion(), Options: yyDollar[5].indexOptionsUnion()} } @@ -7307,7 +7307,7 @@ yydefault: case 228: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1467 +//line sql.y:1466 { yyLOCAL = nil } @@ -7315,7 +7315,7 @@ yydefault: case 229: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1471 +//line sql.y:1470 { yyLOCAL = yyDollar[1].indexOptionsUnion() } @@ -7323,14 +7323,14 @@ yydefault: case 230: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1477 +//line sql.y:1476 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL case 231: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1481 +//line sql.y:1480 { yySLICE := (*[]*IndexOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].indexOptionUnion()) @@ -7338,7 +7338,7 @@ yydefault: case 232: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1487 +//line sql.y:1486 { yyLOCAL = yyDollar[1].indexOptionUnion() } @@ -7346,7 +7346,7 @@ yydefault: case 233: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1491 +//line sql.y:1490 { // should not be string yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} @@ -7355,7 +7355,7 @@ yydefault: case 234: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1496 +//line sql.y:1495 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[2].str)} } @@ -7363,27 +7363,27 @@ yydefault: case 235: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1500 +//line sql.y:1499 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str) + " " + string(yyDollar[2].str), String: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL case 236: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1506 +//line sql.y:1505 { yyVAL.str = "" } case 237: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1510 +//line sql.y:1509 { yyVAL.str = string(yyDollar[1].str) } case 238: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1516 +//line sql.y:1515 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} } @@ -7391,7 +7391,7 @@ yydefault: case 239: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1520 +//line sql.y:1519 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Spatial: true, Unique: false} } @@ -7399,7 +7399,7 @@ yydefault: case 240: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1524 +//line sql.y:1523 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Fulltext: true, Unique: false} } @@ -7407,7 +7407,7 @@ yydefault: case 241: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1528 +//line sql.y:1527 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent(yyDollar[4].str), Unique: true} } @@ -7415,100 +7415,100 @@ yydefault: case 242: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1532 +//line sql.y:1531 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(yyDollar[2].str), Unique: false} } yyVAL.union = yyLOCAL case 243: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1537 +//line sql.y:1536 { yyVAL.str = "" } case 244: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1541 +//line sql.y:1540 { yyVAL.str = yyDollar[2].str } case 245: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1547 +//line sql.y:1546 { yyVAL.str = string(yyDollar[1].str) } case 246: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1551 +//line sql.y:1550 { yyVAL.str = string(yyDollar[1].str) } case 247: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1555 +//line sql.y:1554 { yyVAL.str = string(yyDollar[1].str) } case 248: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1562 +//line sql.y:1561 { yyVAL.str = string(yyDollar[1].str) } case 249: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1566 +//line sql.y:1565 { yyVAL.str = string(yyDollar[1].str) } case 250: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1571 +//line sql.y:1570 { yyVAL.str = "key" } case 251: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1575 +//line sql.y:1574 { yyVAL.str = yyDollar[1].str } case 252: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1581 +//line sql.y:1580 { yyVAL.str = string(yyDollar[1].str) } case 253: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1585 +//line sql.y:1584 { yyVAL.str = string(yyDollar[1].str) } case 254: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1590 +//line sql.y:1589 { yyVAL.str = "" } case 255: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1594 +//line sql.y:1593 { yyVAL.str = string(yyDollar[1].colIdent.String()) } case 256: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexColumn -//line sql.y:1600 +//line sql.y:1599 { yyLOCAL = []*IndexColumn{yyDollar[1].indexColumnUnion()} } yyVAL.union = yyLOCAL case 257: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1604 +//line sql.y:1603 { yySLICE := (*[]*IndexColumn)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].indexColumnUnion()) @@ -7516,7 +7516,7 @@ yydefault: case 258: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexColumn -//line sql.y:1610 +//line sql.y:1609 { yyLOCAL = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].literalUnion(), Direction: yyDollar[3].orderDirectionUnion()} } @@ -7524,7 +7524,7 @@ yydefault: case 259: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1616 +//line sql.y:1615 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } @@ -7532,7 +7532,7 @@ yydefault: case 260: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1620 +//line sql.y:1619 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } @@ -7540,7 +7540,7 @@ yydefault: case 261: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1626 +//line sql.y:1625 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } @@ -7548,7 +7548,7 @@ yydefault: case 262: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1630 +//line sql.y:1629 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } @@ -7556,7 +7556,7 @@ yydefault: case 263: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1636 +//line sql.y:1635 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion()} } @@ -7564,7 +7564,7 @@ yydefault: case 264: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1640 +//line sql.y:1639 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnDelete: yyDollar[12].ReferenceActionUnion()} } @@ -7572,7 +7572,7 @@ yydefault: case 265: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1644 +//line sql.y:1643 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnUpdate: yyDollar[12].ReferenceActionUnion()} } @@ -7580,7 +7580,7 @@ yydefault: case 266: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1648 +//line sql.y:1647 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnDelete: yyDollar[12].ReferenceActionUnion(), OnUpdate: yyDollar[13].ReferenceActionUnion()} } @@ -7588,7 +7588,7 @@ yydefault: case 267: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1654 +//line sql.y:1653 { yyLOCAL = &CheckConstraintDefinition{Expr: yyDollar[3].exprUnion(), Enforced: yyDollar[5].booleanUnion()} } @@ -7596,7 +7596,7 @@ yydefault: case 268: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1660 +//line sql.y:1659 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } @@ -7604,7 +7604,7 @@ yydefault: case 269: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1666 +//line sql.y:1665 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } @@ -7612,7 +7612,7 @@ yydefault: case 270: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1672 +//line sql.y:1671 { yyLOCAL = Restrict } @@ -7620,7 +7620,7 @@ yydefault: case 271: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1676 +//line sql.y:1675 { yyLOCAL = Cascade } @@ -7628,7 +7628,7 @@ yydefault: case 272: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1680 +//line sql.y:1679 { yyLOCAL = NoAction } @@ -7636,7 +7636,7 @@ yydefault: case 273: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1684 +//line sql.y:1683 { yyLOCAL = SetDefault } @@ -7644,33 +7644,33 @@ yydefault: case 274: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1688 +//line sql.y:1687 { yyLOCAL = SetNull } yyVAL.union = yyLOCAL case 275: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1693 +//line sql.y:1692 { yyVAL.str = "" } case 276: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1697 +//line sql.y:1696 { yyVAL.str = string(yyDollar[1].str) } case 277: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1701 +//line sql.y:1700 { yyVAL.str = string(yyDollar[1].str) } case 278: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1706 +//line sql.y:1705 { yyLOCAL = true } @@ -7678,7 +7678,7 @@ yydefault: case 279: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1710 +//line sql.y:1709 { yyLOCAL = true } @@ -7686,7 +7686,7 @@ yydefault: case 280: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:1714 +//line sql.y:1713 { yyLOCAL = false } @@ -7694,7 +7694,7 @@ yydefault: case 281: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1719 +//line sql.y:1718 { yyLOCAL = nil } @@ -7702,7 +7702,7 @@ yydefault: case 282: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1723 +//line sql.y:1722 { yyLOCAL = yyDollar[1].tableOptionsUnion() } @@ -7710,21 +7710,21 @@ yydefault: case 283: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1729 +//line sql.y:1728 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL case 284: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1733 +//line sql.y:1732 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableOptionUnion()) } case 285: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1737 +//line sql.y:1736 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) @@ -7732,14 +7732,14 @@ yydefault: case 286: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1743 +//line sql.y:1742 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL case 287: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1747 +//line sql.y:1746 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) @@ -7747,7 +7747,7 @@ yydefault: case 288: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1753 +//line sql.y:1752 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7755,7 +7755,7 @@ yydefault: case 289: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1757 +//line sql.y:1756 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7763,7 +7763,7 @@ yydefault: case 290: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1761 +//line sql.y:1760 { yyLOCAL = &TableOption{Name: (string(yyDollar[2].str)), String: yyDollar[4].str} } @@ -7771,7 +7771,7 @@ yydefault: case 291: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1765 +//line sql.y:1764 { yyLOCAL = &TableOption{Name: string(yyDollar[2].str), String: yyDollar[4].str} } @@ -7779,7 +7779,7 @@ yydefault: case 292: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1769 +//line sql.y:1768 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7787,7 +7787,7 @@ yydefault: case 293: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1773 +//line sql.y:1772 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -7795,7 +7795,7 @@ yydefault: case 294: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1777 +//line sql.y:1776 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -7803,7 +7803,7 @@ yydefault: case 295: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1781 +//line sql.y:1780 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -7811,7 +7811,7 @@ yydefault: case 296: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1785 +//line sql.y:1784 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } @@ -7819,7 +7819,7 @@ yydefault: case 297: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1789 +//line sql.y:1788 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } @@ -7827,7 +7827,7 @@ yydefault: case 298: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1793 +//line sql.y:1792 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7835,7 +7835,7 @@ yydefault: case 299: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1797 +//line sql.y:1796 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -7843,7 +7843,7 @@ yydefault: case 300: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1801 +//line sql.y:1800 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: yyDollar[3].colIdent.String()} } @@ -7851,7 +7851,7 @@ yydefault: case 301: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1805 +//line sql.y:1804 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -7859,7 +7859,7 @@ yydefault: case 302: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1809 +//line sql.y:1808 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -7867,7 +7867,7 @@ yydefault: case 303: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1813 +//line sql.y:1812 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7875,7 +7875,7 @@ yydefault: case 304: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1817 +//line sql.y:1816 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7883,7 +7883,7 @@ yydefault: case 305: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1821 +//line sql.y:1820 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7891,7 +7891,7 @@ yydefault: case 306: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1825 +//line sql.y:1824 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7899,7 +7899,7 @@ yydefault: case 307: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1829 +//line sql.y:1828 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -7907,7 +7907,7 @@ yydefault: case 308: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1833 +//line sql.y:1832 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -7915,7 +7915,7 @@ yydefault: case 309: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1837 +//line sql.y:1836 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -7923,7 +7923,7 @@ yydefault: case 310: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1841 +//line sql.y:1840 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7931,7 +7931,7 @@ yydefault: case 311: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1845 +//line sql.y:1844 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -7939,7 +7939,7 @@ yydefault: case 312: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1849 +//line sql.y:1848 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7947,7 +7947,7 @@ yydefault: case 313: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1853 +//line sql.y:1852 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -7955,7 +7955,7 @@ yydefault: case 314: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1857 +//line sql.y:1856 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -7963,7 +7963,7 @@ yydefault: case 315: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1861 +//line sql.y:1860 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: (yyDollar[3].colIdent.String() + yyDollar[4].str)} } @@ -7971,57 +7971,57 @@ yydefault: case 316: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1865 +//line sql.y:1864 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Tables: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL case 317: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1870 +//line sql.y:1869 { yyVAL.str = "" } case 318: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1874 +//line sql.y:1873 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 319: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1878 +//line sql.y:1877 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 329: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1897 +//line sql.y:1896 { yyVAL.str = yyDollar[1].colIdent.String() } case 330: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1901 +//line sql.y:1900 { yyVAL.str = encodeSQLString(yyDollar[1].str) } case 331: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1905 +//line sql.y:1904 { yyVAL.str = string(yyDollar[1].str) } case 332: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1910 +//line sql.y:1909 { yyVAL.str = "" } case 334: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:1916 +//line sql.y:1915 { yyLOCAL = nil } @@ -8029,7 +8029,7 @@ yydefault: case 335: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:1920 +//line sql.y:1919 { yyLOCAL = yyDollar[2].colNameUnion() } @@ -8037,7 +8037,7 @@ yydefault: case 336: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:1925 +//line sql.y:1924 { yyLOCAL = nil } @@ -8045,7 +8045,7 @@ yydefault: case 337: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:1929 +//line sql.y:1928 { yyLOCAL = yyDollar[2].colNameUnion() } @@ -8053,7 +8053,7 @@ yydefault: case 338: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1934 +//line sql.y:1933 { yyLOCAL = nil } @@ -8061,14 +8061,14 @@ yydefault: case 339: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1938 +//line sql.y:1937 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL case 340: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1942 +//line sql.y:1941 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &OrderByOption{Cols: yyDollar[5].columnsUnion()}) @@ -8076,14 +8076,14 @@ yydefault: case 341: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1946 +//line sql.y:1945 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL case 342: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1950 +//line sql.y:1949 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionsUnion()...) @@ -8091,7 +8091,7 @@ yydefault: case 343: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1954 +//line sql.y:1953 { yyLOCAL = append(append(yyDollar[1].alterOptionsUnion(), yyDollar[3].alterOptionsUnion()...), &OrderByOption{Cols: yyDollar[7].columnsUnion()}) } @@ -8099,21 +8099,21 @@ yydefault: case 344: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1960 +//line sql.y:1959 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL case 345: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1964 +//line sql.y:1963 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } case 346: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1968 +//line sql.y:1967 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) @@ -8121,7 +8121,7 @@ yydefault: case 347: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1974 +//line sql.y:1973 { yyLOCAL = yyDollar[1].tableOptionsUnion() } @@ -8129,7 +8129,7 @@ yydefault: case 348: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1978 +//line sql.y:1977 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } @@ -8137,7 +8137,7 @@ yydefault: case 349: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1982 +//line sql.y:1981 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } @@ -8145,7 +8145,7 @@ yydefault: case 350: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1986 +//line sql.y:1985 { yyLOCAL = &AddIndexDefinition{IndexDefinition: yyDollar[2].indexDefinitionUnion()} } @@ -8153,7 +8153,7 @@ yydefault: case 351: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1990 +//line sql.y:1989 { yyLOCAL = &AddColumns{Columns: yyDollar[4].columnDefinitionsUnion()} } @@ -8161,7 +8161,7 @@ yydefault: case 352: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1994 +//line sql.y:1993 { yyLOCAL = &AddColumns{Columns: []*ColumnDefinition{yyDollar[3].columnDefinitionUnion()}, First: yyDollar[4].colNameUnion(), After: yyDollar[5].colNameUnion()} } @@ -8169,7 +8169,7 @@ yydefault: case 353: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1998 +//line sql.y:1997 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: true} } @@ -8177,7 +8177,7 @@ yydefault: case 354: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2002 +//line sql.y:2001 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[6].exprUnion()} } @@ -8185,7 +8185,7 @@ yydefault: case 355: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2006 +//line sql.y:2005 { yyLOCAL = &ChangeColumn{OldColumn: yyDollar[3].colNameUnion(), NewColDefinition: yyDollar[4].columnDefinitionUnion(), First: yyDollar[5].colNameUnion(), After: yyDollar[6].colNameUnion()} } @@ -8193,7 +8193,7 @@ yydefault: case 356: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2010 +//line sql.y:2009 { yyLOCAL = &ModifyColumn{NewColDefinition: yyDollar[3].columnDefinitionUnion(), First: yyDollar[4].colNameUnion(), After: yyDollar[5].colNameUnion()} } @@ -8201,7 +8201,7 @@ yydefault: case 357: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2014 +//line sql.y:2013 { yyLOCAL = &AlterCharset{CharacterSet: yyDollar[4].str, Collate: yyDollar[5].str} } @@ -8209,7 +8209,7 @@ yydefault: case 358: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2018 +//line sql.y:2017 { yyLOCAL = &KeyState{Enable: false} } @@ -8217,7 +8217,7 @@ yydefault: case 359: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2022 +//line sql.y:2021 { yyLOCAL = &KeyState{Enable: true} } @@ -8225,7 +8225,7 @@ yydefault: case 360: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2026 +//line sql.y:2025 { yyLOCAL = &TablespaceOperation{Import: false} } @@ -8233,7 +8233,7 @@ yydefault: case 361: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2030 +//line sql.y:2029 { yyLOCAL = &TablespaceOperation{Import: true} } @@ -8241,7 +8241,7 @@ yydefault: case 362: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2034 +//line sql.y:2033 { yyLOCAL = &DropColumn{Name: yyDollar[3].colNameUnion()} } @@ -8249,7 +8249,7 @@ yydefault: case 363: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2038 +//line sql.y:2037 { yyLOCAL = &DropKey{Type: NormalKeyType, Name: yyDollar[3].colIdent} } @@ -8257,7 +8257,7 @@ yydefault: case 364: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2042 +//line sql.y:2041 { yyLOCAL = &DropKey{Type: PrimaryKeyType} } @@ -8265,7 +8265,7 @@ yydefault: case 365: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2046 +//line sql.y:2045 { yyLOCAL = &DropKey{Type: ForeignKeyType, Name: yyDollar[4].colIdent} } @@ -8273,7 +8273,7 @@ yydefault: case 366: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2050 +//line sql.y:2049 { yyLOCAL = &Force{} } @@ -8281,7 +8281,7 @@ yydefault: case 367: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2054 +//line sql.y:2053 { yyLOCAL = &RenameTableName{Table: yyDollar[3].tableName} } @@ -8289,7 +8289,7 @@ yydefault: case 368: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2058 +//line sql.y:2057 { yyLOCAL = &RenameIndex{OldName: yyDollar[3].colIdent, NewName: yyDollar[5].colIdent} } @@ -8297,14 +8297,14 @@ yydefault: case 369: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2064 +//line sql.y:2063 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL case 370: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2068 +//line sql.y:2067 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) @@ -8312,7 +8312,7 @@ yydefault: case 371: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2074 +//line sql.y:2073 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } @@ -8320,7 +8320,7 @@ yydefault: case 372: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2078 +//line sql.y:2077 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } @@ -8328,7 +8328,7 @@ yydefault: case 373: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2082 +//line sql.y:2081 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } @@ -8336,7 +8336,7 @@ yydefault: case 374: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2086 +//line sql.y:2085 { yyLOCAL = &LockOption{Type: DefaultType} } @@ -8344,7 +8344,7 @@ yydefault: case 375: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2090 +//line sql.y:2089 { yyLOCAL = &LockOption{Type: NoneType} } @@ -8352,7 +8352,7 @@ yydefault: case 376: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2094 +//line sql.y:2093 { yyLOCAL = &LockOption{Type: SharedType} } @@ -8360,7 +8360,7 @@ yydefault: case 377: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2098 +//line sql.y:2097 { yyLOCAL = &LockOption{Type: ExclusiveType} } @@ -8368,7 +8368,7 @@ yydefault: case 378: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2102 +//line sql.y:2101 { yyLOCAL = &Validation{With: true} } @@ -8376,7 +8376,7 @@ yydefault: case 379: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2106 +//line sql.y:2105 { yyLOCAL = &Validation{With: false} } @@ -8384,7 +8384,7 @@ yydefault: case 380: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2112 +//line sql.y:2111 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8394,7 +8394,7 @@ yydefault: case 381: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2118 +//line sql.y:2117 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8405,7 +8405,7 @@ yydefault: case 382: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2125 +//line sql.y:2124 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8416,7 +8416,7 @@ yydefault: case 383: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2132 +//line sql.y:2131 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[2].partSpecUnion() @@ -8426,7 +8426,7 @@ yydefault: case 384: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL Statement -//line sql.y:2138 +//line sql.y:2137 { yyLOCAL = &AlterView{ViewName: yyDollar[7].tableName.ToViewName(), Algorithm: yyDollar[3].str, Definer: yyDollar[4].str, Security: yyDollar[5].str, Columns: yyDollar[8].columnsUnion(), Select: yyDollar[10].selStmtUnion(), CheckOption: yyDollar[11].str} } @@ -8434,7 +8434,7 @@ yydefault: case 385: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2142 +//line sql.y:2141 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8445,7 +8445,7 @@ yydefault: case 386: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2149 +//line sql.y:2148 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8456,7 +8456,7 @@ yydefault: case 387: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2156 +//line sql.y:2155 { yyLOCAL = &AlterVschema{ Action: CreateVindexDDLAction, @@ -8472,7 +8472,7 @@ yydefault: case 388: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2168 +//line sql.y:2167 { yyLOCAL = &AlterVschema{ Action: DropVindexDDLAction, @@ -8486,7 +8486,7 @@ yydefault: case 389: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2178 +//line sql.y:2177 { yyLOCAL = &AlterVschema{Action: AddVschemaTableDDLAction, Table: yyDollar[6].tableName} } @@ -8494,7 +8494,7 @@ yydefault: case 390: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2182 +//line sql.y:2181 { yyLOCAL = &AlterVschema{Action: DropVschemaTableDDLAction, Table: yyDollar[6].tableName} } @@ -8502,7 +8502,7 @@ yydefault: case 391: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL Statement -//line sql.y:2186 +//line sql.y:2185 { yyLOCAL = &AlterVschema{ Action: AddColVindexDDLAction, @@ -8519,7 +8519,7 @@ yydefault: case 392: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2199 +//line sql.y:2198 { yyLOCAL = &AlterVschema{ Action: DropColVindexDDLAction, @@ -8533,7 +8533,7 @@ yydefault: case 393: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2209 +//line sql.y:2208 { yyLOCAL = &AlterVschema{Action: AddSequenceDDLAction, Table: yyDollar[6].tableName} } @@ -8541,7 +8541,7 @@ yydefault: case 394: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Statement -//line sql.y:2213 +//line sql.y:2212 { yyLOCAL = &AlterVschema{ Action: AddAutoIncDDLAction, @@ -8556,7 +8556,7 @@ yydefault: case 395: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2224 +//line sql.y:2223 { yyLOCAL = &AlterMigration{ Type: RetryMigrationType, @@ -8567,7 +8567,7 @@ yydefault: case 396: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2231 +//line sql.y:2230 { yyLOCAL = &AlterMigration{ Type: CompleteMigrationType, @@ -8578,7 +8578,7 @@ yydefault: case 397: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2238 +//line sql.y:2237 { yyLOCAL = &AlterMigration{ Type: CancelMigrationType, @@ -8589,7 +8589,7 @@ yydefault: case 398: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2245 +//line sql.y:2244 { yyLOCAL = &AlterMigration{ Type: CancelAllMigrationType, @@ -8599,7 +8599,7 @@ yydefault: case 399: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2253 +//line sql.y:2252 { yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}} } @@ -8607,7 +8607,7 @@ yydefault: case 400: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2257 +//line sql.y:2256 { yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()} } @@ -8615,7 +8615,7 @@ yydefault: case 401: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2261 +//line sql.y:2260 { yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()} } @@ -8623,7 +8623,7 @@ yydefault: case 402: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2265 +//line sql.y:2264 { yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()} } @@ -8631,7 +8631,7 @@ yydefault: case 403: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2269 +//line sql.y:2268 { yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true} } @@ -8639,7 +8639,7 @@ yydefault: case 404: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2273 +//line sql.y:2272 { yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()} } @@ -8647,7 +8647,7 @@ yydefault: case 405: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2277 +//line sql.y:2276 { yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true} } @@ -8655,7 +8655,7 @@ yydefault: case 406: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2281 +//line sql.y:2280 { yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()} } @@ -8663,7 +8663,7 @@ yydefault: case 407: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2285 +//line sql.y:2284 { yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true} } @@ -8671,7 +8671,7 @@ yydefault: case 408: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2289 +//line sql.y:2288 { yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)} } @@ -8679,7 +8679,7 @@ yydefault: case 409: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2293 +//line sql.y:2292 { yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].colIdent}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()} } @@ -8687,7 +8687,7 @@ yydefault: case 410: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2297 +//line sql.y:2296 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()} } @@ -8695,7 +8695,7 @@ yydefault: case 411: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2301 +//line sql.y:2300 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true} } @@ -8703,7 +8703,7 @@ yydefault: case 412: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2305 +//line sql.y:2304 { yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()} } @@ -8711,7 +8711,7 @@ yydefault: case 413: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2309 +//line sql.y:2308 { yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true} } @@ -8719,7 +8719,7 @@ yydefault: case 414: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2313 +//line sql.y:2312 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()} } @@ -8727,7 +8727,7 @@ yydefault: case 415: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2317 +//line sql.y:2316 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true} } @@ -8735,7 +8735,7 @@ yydefault: case 416: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2321 +//line sql.y:2320 { yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()} } @@ -8743,7 +8743,7 @@ yydefault: case 417: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2325 +//line sql.y:2324 { yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true} } @@ -8751,7 +8751,7 @@ yydefault: case 418: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2329 +//line sql.y:2328 { yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()} } @@ -8759,7 +8759,7 @@ yydefault: case 419: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2333 +//line sql.y:2332 { yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true} } @@ -8767,7 +8767,7 @@ yydefault: case 420: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2337 +//line sql.y:2336 { yyLOCAL = &PartitionSpec{Action: UpgradeAction} } @@ -8775,7 +8775,7 @@ yydefault: case 421: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2342 +//line sql.y:2341 { yyLOCAL = false } @@ -8783,7 +8783,7 @@ yydefault: case 422: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2346 +//line sql.y:2345 { yyLOCAL = false } @@ -8791,7 +8791,7 @@ yydefault: case 423: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2350 +//line sql.y:2349 { yyLOCAL = true } @@ -8799,14 +8799,14 @@ yydefault: case 424: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:2357 +//line sql.y:2356 { yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()} } yyVAL.union = yyLOCAL case 425: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2361 +//line sql.y:2360 { yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].partDefUnion()) @@ -8814,7 +8814,7 @@ yydefault: case 426: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2367 +//line sql.y:2366 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].exprUnion()} } @@ -8822,7 +8822,7 @@ yydefault: case 427: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2371 +//line sql.y:2370 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} } @@ -8830,7 +8830,7 @@ yydefault: case 428: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2377 +//line sql.y:2376 { yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()} } @@ -8838,14 +8838,14 @@ yydefault: case 429: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*RenameTablePair -//line sql.y:2383 +//line sql.y:2382 { yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}} } yyVAL.union = yyLOCAL case 430: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2387 +//line sql.y:2386 { yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName}) @@ -8853,7 +8853,7 @@ yydefault: case 431: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2393 +//line sql.y:2392 { yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs), Temp: yyDollar[3].booleanUnion()} } @@ -8861,7 +8861,7 @@ yydefault: case 432: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2397 +//line sql.y:2396 { // Change this to an alter statement if yyDollar[4].colIdent.Lowered() == "primary" { @@ -8874,7 +8874,7 @@ yydefault: case 433: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2406 +//line sql.y:2405 { yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), IfExists: yyDollar[4].booleanUnion()} } @@ -8882,7 +8882,7 @@ yydefault: case 434: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2410 +//line sql.y:2409 { yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs), DBName: yyDollar[5].tableIdent, IfExists: yyDollar[4].booleanUnion()} } @@ -8890,7 +8890,7 @@ yydefault: case 435: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2416 +//line sql.y:2415 { yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName} } @@ -8898,7 +8898,7 @@ yydefault: case 436: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2420 +//line sql.y:2419 { yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName} } @@ -8906,7 +8906,7 @@ yydefault: case 437: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2425 +//line sql.y:2424 { yyLOCAL = &OtherRead{} } @@ -8914,7 +8914,7 @@ yydefault: case 438: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2431 +//line sql.y:2430 { yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}} } @@ -8922,7 +8922,7 @@ yydefault: case 439: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2435 +//line sql.y:2434 { yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}} } @@ -8930,7 +8930,7 @@ yydefault: case 440: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2439 +//line sql.y:2438 { yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } @@ -8938,7 +8938,7 @@ yydefault: case 441: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2443 +//line sql.y:2442 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } @@ -8946,7 +8946,7 @@ yydefault: case 442: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2447 +//line sql.y:2446 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } @@ -8954,7 +8954,7 @@ yydefault: case 443: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2451 +//line sql.y:2450 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } @@ -8962,7 +8962,7 @@ yydefault: case 444: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2455 +//line sql.y:2454 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } @@ -8970,7 +8970,7 @@ yydefault: case 445: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2459 +//line sql.y:2458 { yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}} } @@ -8978,7 +8978,7 @@ yydefault: case 446: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2463 +//line sql.y:2462 { yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } @@ -8986,7 +8986,7 @@ yydefault: case 447: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2467 +//line sql.y:2466 { yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } @@ -8994,7 +8994,7 @@ yydefault: case 448: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2471 +//line sql.y:2470 { yyLOCAL = &Show{&ShowBasic{Command: Privilege}} } @@ -9002,7 +9002,7 @@ yydefault: case 449: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2475 +//line sql.y:2474 { yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}} } @@ -9010,7 +9010,7 @@ yydefault: case 450: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2479 +//line sql.y:2478 { yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}} } @@ -9018,7 +9018,7 @@ yydefault: case 451: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2483 +//line sql.y:2482 { yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}} } @@ -9026,7 +9026,7 @@ yydefault: case 452: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2487 +//line sql.y:2486 { yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}} } @@ -9034,7 +9034,7 @@ yydefault: case 453: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2491 +//line sql.y:2490 { yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}} } @@ -9042,7 +9042,7 @@ yydefault: case 454: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2495 +//line sql.y:2494 { yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } @@ -9050,7 +9050,7 @@ yydefault: case 455: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2499 +//line sql.y:2498 { yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } @@ -9058,7 +9058,7 @@ yydefault: case 456: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2503 +//line sql.y:2502 { yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].tableIdent, Filter: yyDollar[4].showFilterUnion()}} } @@ -9066,7 +9066,7 @@ yydefault: case 457: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2507 +//line sql.y:2506 { yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}} } @@ -9074,7 +9074,7 @@ yydefault: case 458: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2511 +//line sql.y:2510 { yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}} } @@ -9082,7 +9082,7 @@ yydefault: case 459: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2515 +//line sql.y:2514 { yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}} } @@ -9090,7 +9090,7 @@ yydefault: case 460: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2519 +//line sql.y:2518 { yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}} } @@ -9098,7 +9098,7 @@ yydefault: case 461: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2523 +//line sql.y:2522 { yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}} } @@ -9106,7 +9106,7 @@ yydefault: case 462: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2527 +//line sql.y:2526 { yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}} } @@ -9114,7 +9114,7 @@ yydefault: case 463: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2531 +//line sql.y:2530 { yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}} } @@ -9122,7 +9122,7 @@ yydefault: case 464: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2535 +//line sql.y:2534 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } @@ -9130,7 +9130,7 @@ yydefault: case 465: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2539 +//line sql.y:2538 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].colIdent.String()), Scope: ImplicitScope}} } @@ -9138,7 +9138,7 @@ yydefault: case 466: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2543 +//line sql.y:2542 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } @@ -9146,7 +9146,7 @@ yydefault: case 467: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2547 +//line sql.y:2546 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } @@ -9154,7 +9154,7 @@ yydefault: case 468: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2551 +//line sql.y:2550 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } @@ -9162,7 +9162,7 @@ yydefault: case 469: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2555 +//line sql.y:2554 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } @@ -9170,7 +9170,7 @@ yydefault: case 470: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2559 +//line sql.y:2558 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } @@ -9178,7 +9178,7 @@ yydefault: case 471: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2563 +//line sql.y:2562 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[3].str), Scope: ImplicitScope}} } @@ -9186,7 +9186,7 @@ yydefault: case 472: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2567 +//line sql.y:2566 { yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].tableIdent}} } @@ -9194,7 +9194,7 @@ yydefault: case 473: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2571 +//line sql.y:2570 { yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].tableIdent}} } @@ -9202,7 +9202,7 @@ yydefault: case 474: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2575 +//line sql.y:2574 { showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilterUnion()} yyLOCAL = &Show{&ShowLegacy{Scope: VitessMetadataScope, Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt}} @@ -9211,7 +9211,7 @@ yydefault: case 475: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2580 +//line sql.y:2579 { yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].tableIdent}} } @@ -9219,7 +9219,7 @@ yydefault: case 476: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2584 +//line sql.y:2583 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } @@ -9227,7 +9227,7 @@ yydefault: case 477: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2588 +//line sql.y:2587 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } @@ -9235,7 +9235,7 @@ yydefault: case 478: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2592 +//line sql.y:2591 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), OnTable: yyDollar[5].tableName, Scope: ImplicitScope}} } @@ -9243,7 +9243,7 @@ yydefault: case 479: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2596 +//line sql.y:2595 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } @@ -9251,7 +9251,7 @@ yydefault: case 480: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2601 +//line sql.y:2600 { // This should probably be a different type (ShowVitessTopoOpt), but // just getting the thing working for now @@ -9262,7 +9262,7 @@ yydefault: case 481: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2615 +//line sql.y:2614 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].colIdent.String()), Scope: ImplicitScope}} } @@ -9270,7 +9270,7 @@ yydefault: case 482: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2619 +//line sql.y:2618 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } @@ -9278,39 +9278,39 @@ yydefault: case 483: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2623 +//line sql.y:2622 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL case 484: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2629 +//line sql.y:2628 { yyVAL.str = string(yyDollar[1].str) } case 485: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2633 +//line sql.y:2632 { yyVAL.str = string(yyDollar[1].str) } case 486: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2639 +//line sql.y:2638 { yyVAL.str = "" } case 487: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2643 +//line sql.y:2642 { yyVAL.str = "extended " } case 488: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2649 +//line sql.y:2648 { yyLOCAL = false } @@ -9318,45 +9318,45 @@ yydefault: case 489: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2653 +//line sql.y:2652 { yyLOCAL = true } yyVAL.union = yyLOCAL case 490: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2659 +//line sql.y:2658 { yyVAL.str = string(yyDollar[1].str) } case 491: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2663 +//line sql.y:2662 { yyVAL.str = string(yyDollar[1].str) } case 492: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2669 +//line sql.y:2668 { yyVAL.tableIdent = NewTableIdent("") } case 493: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2673 +//line sql.y:2672 { yyVAL.tableIdent = yyDollar[2].tableIdent } case 494: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2677 +//line sql.y:2676 { yyVAL.tableIdent = yyDollar[2].tableIdent } case 495: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2683 +//line sql.y:2682 { yyLOCAL = nil } @@ -9364,7 +9364,7 @@ yydefault: case 496: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2687 +//line sql.y:2686 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } @@ -9372,7 +9372,7 @@ yydefault: case 497: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2691 +//line sql.y:2690 { yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()} } @@ -9380,7 +9380,7 @@ yydefault: case 498: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2697 +//line sql.y:2696 { yyLOCAL = nil } @@ -9388,33 +9388,33 @@ yydefault: case 499: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2701 +//line sql.y:2700 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL case 500: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2707 +//line sql.y:2706 { yyVAL.empty = struct{}{} } case 501: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2711 +//line sql.y:2710 { yyVAL.empty = struct{}{} } case 502: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2715 +//line sql.y:2714 { yyVAL.empty = struct{}{} } case 503: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2721 +//line sql.y:2720 { yyLOCAL = &Use{DBName: yyDollar[2].tableIdent} } @@ -9422,7 +9422,7 @@ yydefault: case 504: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2725 +//line sql.y:2724 { yyLOCAL = &Use{DBName: TableIdent{v: ""}} } @@ -9430,7 +9430,7 @@ yydefault: case 505: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2731 +//line sql.y:2730 { yyLOCAL = &Begin{} } @@ -9438,7 +9438,7 @@ yydefault: case 506: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2735 +//line sql.y:2734 { yyLOCAL = &Begin{} } @@ -9446,7 +9446,7 @@ yydefault: case 507: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2741 +//line sql.y:2740 { yyLOCAL = &Commit{} } @@ -9454,7 +9454,7 @@ yydefault: case 508: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2747 +//line sql.y:2746 { yyLOCAL = &Rollback{} } @@ -9462,39 +9462,39 @@ yydefault: case 509: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2751 +//line sql.y:2750 { yyLOCAL = &SRollback{Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL case 510: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2756 +//line sql.y:2755 { yyVAL.empty = struct{}{} } case 511: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2758 +//line sql.y:2757 { yyVAL.empty = struct{}{} } case 512: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2761 +//line sql.y:2760 { yyVAL.empty = struct{}{} } case 513: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2763 +//line sql.y:2762 { yyVAL.empty = struct{}{} } case 514: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2768 +//line sql.y:2767 { yyLOCAL = &Savepoint{Name: yyDollar[2].colIdent} } @@ -9502,7 +9502,7 @@ yydefault: case 515: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2774 +//line sql.y:2773 { yyLOCAL = &Release{Name: yyDollar[3].colIdent} } @@ -9510,7 +9510,7 @@ yydefault: case 516: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2779 +//line sql.y:2778 { yyLOCAL = EmptyType } @@ -9518,7 +9518,7 @@ yydefault: case 517: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2783 +//line sql.y:2782 { yyLOCAL = JSONType } @@ -9526,7 +9526,7 @@ yydefault: case 518: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2787 +//line sql.y:2786 { yyLOCAL = TreeType } @@ -9534,7 +9534,7 @@ yydefault: case 519: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2791 +//line sql.y:2790 { yyLOCAL = VitessType } @@ -9542,7 +9542,7 @@ yydefault: case 520: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2795 +//line sql.y:2794 { yyLOCAL = TraditionalType } @@ -9550,33 +9550,33 @@ yydefault: case 521: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2799 +//line sql.y:2798 { yyLOCAL = AnalyzeType } yyVAL.union = yyLOCAL case 522: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2805 +//line sql.y:2804 { yyVAL.str = yyDollar[1].str } case 523: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2809 +//line sql.y:2808 { yyVAL.str = yyDollar[1].str } case 524: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2813 +//line sql.y:2812 { yyVAL.str = yyDollar[1].str } case 525: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2819 +//line sql.y:2818 { yyLOCAL = yyDollar[1].selStmtUnion() } @@ -9584,7 +9584,7 @@ yydefault: case 526: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2823 +//line sql.y:2822 { yyLOCAL = yyDollar[1].statementUnion() } @@ -9592,7 +9592,7 @@ yydefault: case 527: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2827 +//line sql.y:2826 { yyLOCAL = yyDollar[1].statementUnion() } @@ -9600,33 +9600,33 @@ yydefault: case 528: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2831 +//line sql.y:2830 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL case 529: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2836 +//line sql.y:2835 { yyVAL.str = "" } case 530: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2840 +//line sql.y:2839 { yyVAL.str = yyDollar[1].colIdent.val } case 531: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2844 +//line sql.y:2843 { yyVAL.str = encodeSQLString(yyDollar[1].str) } case 532: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2850 +//line sql.y:2849 { yyLOCAL = &ExplainTab{Table: yyDollar[2].tableName, Wild: yyDollar[3].str} } @@ -9634,7 +9634,7 @@ yydefault: case 533: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2854 +//line sql.y:2853 { yyLOCAL = &ExplainStmt{Type: yyDollar[2].explainTypeUnion(), Statement: yyDollar[3].statementUnion()} } @@ -9642,7 +9642,7 @@ yydefault: case 534: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2860 +//line sql.y:2859 { yyLOCAL = &OtherAdmin{} } @@ -9650,7 +9650,7 @@ yydefault: case 535: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2864 +//line sql.y:2863 { yyLOCAL = &OtherAdmin{} } @@ -9658,7 +9658,7 @@ yydefault: case 536: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2870 +//line sql.y:2869 { yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()} } @@ -9666,14 +9666,14 @@ yydefault: case 537: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableAndLockTypes -//line sql.y:2876 +//line sql.y:2875 { yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()} } yyVAL.union = yyLOCAL case 538: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2880 +//line sql.y:2879 { yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion()) @@ -9681,7 +9681,7 @@ yydefault: case 539: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *TableAndLockType -//line sql.y:2886 +//line sql.y:2885 { yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()} } @@ -9689,7 +9689,7 @@ yydefault: case 540: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2892 +//line sql.y:2891 { yyLOCAL = Read } @@ -9697,7 +9697,7 @@ yydefault: case 541: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:2896 +//line sql.y:2895 { yyLOCAL = ReadLocal } @@ -9705,7 +9705,7 @@ yydefault: case 542: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2900 +//line sql.y:2899 { yyLOCAL = Write } @@ -9713,7 +9713,7 @@ yydefault: case 543: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:2904 +//line sql.y:2903 { yyLOCAL = LowPriorityWrite } @@ -9721,7 +9721,7 @@ yydefault: case 544: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2910 +//line sql.y:2909 { yyLOCAL = &UnlockTables{} } @@ -9729,7 +9729,7 @@ yydefault: case 545: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2916 +//line sql.y:2915 { yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs), UUID: string(yyDollar[4].str)} } @@ -9737,7 +9737,7 @@ yydefault: case 546: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2922 +//line sql.y:2921 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs} } @@ -9745,7 +9745,7 @@ yydefault: case 547: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2926 +//line sql.y:2925 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()} } @@ -9753,7 +9753,7 @@ yydefault: case 548: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2930 +//line sql.y:2929 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true} } @@ -9761,7 +9761,7 @@ yydefault: case 549: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2934 +//line sql.y:2933 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()} } @@ -9769,7 +9769,7 @@ yydefault: case 550: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2938 +//line sql.y:2937 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true} } @@ -9777,99 +9777,99 @@ yydefault: case 551: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2942 +//line sql.y:2941 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true} } yyVAL.union = yyLOCAL case 552: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2948 +//line sql.y:2947 { yyVAL.strs = []string{yyDollar[1].str} } case 553: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2952 +//line sql.y:2951 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str) } case 554: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2958 +//line sql.y:2957 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 555: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2962 +//line sql.y:2961 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 556: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2966 +//line sql.y:2965 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 557: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2970 +//line sql.y:2969 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 558: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2974 +//line sql.y:2973 { yyVAL.str = string(yyDollar[1].str) } case 559: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2978 +//line sql.y:2977 { yyVAL.str = string(yyDollar[1].str) } case 560: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2982 +//line sql.y:2981 { yyVAL.str = string(yyDollar[1].str) } case 561: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2986 +//line sql.y:2985 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str } case 562: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2990 +//line sql.y:2989 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 563: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2994 +//line sql.y:2993 { yyVAL.str = string(yyDollar[1].str) } case 564: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2998 +//line sql.y:2997 { yyVAL.str = string(yyDollar[1].str) } case 565: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3002 +//line sql.y:3001 { yyVAL.str = string(yyDollar[1].str) } case 566: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3007 +//line sql.y:3006 { yyLOCAL = false } @@ -9877,7 +9877,7 @@ yydefault: case 567: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3011 +//line sql.y:3010 { yyLOCAL = true } @@ -9885,52 +9885,52 @@ yydefault: case 568: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3015 +//line sql.y:3014 { yyLOCAL = true } yyVAL.union = yyLOCAL case 569: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3020 +//line sql.y:3019 { yyVAL.str = "" } case 570: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3024 +//line sql.y:3023 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].colIdent.String() } case 571: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3029 +//line sql.y:3028 { setAllowComments(yylex, true) } case 572: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3033 +//line sql.y:3032 { yyVAL.strs = yyDollar[2].strs setAllowComments(yylex, false) } case 573: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3039 +//line sql.y:3038 { yyVAL.strs = nil } case 574: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3043 +//line sql.y:3042 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str) } case 575: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3049 +//line sql.y:3048 { yyLOCAL = true } @@ -9938,7 +9938,7 @@ yydefault: case 576: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3053 +//line sql.y:3052 { yyLOCAL = false } @@ -9946,33 +9946,33 @@ yydefault: case 577: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3057 +//line sql.y:3056 { yyLOCAL = true } yyVAL.union = yyLOCAL case 578: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3062 +//line sql.y:3061 { yyVAL.str = "" } case 579: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3066 +//line sql.y:3065 { yyVAL.str = SQLNoCacheStr } case 580: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3070 +//line sql.y:3069 { yyVAL.str = SQLCacheStr } case 581: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3075 +//line sql.y:3074 { yyLOCAL = false } @@ -9980,7 +9980,7 @@ yydefault: case 582: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3079 +//line sql.y:3078 { yyLOCAL = true } @@ -9988,7 +9988,7 @@ yydefault: case 583: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3083 +//line sql.y:3082 { yyLOCAL = true } @@ -9996,7 +9996,7 @@ yydefault: case 584: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3088 +//line sql.y:3087 { yyLOCAL = nil } @@ -10004,94 +10004,94 @@ yydefault: case 585: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3092 +//line sql.y:3091 { yyLOCAL = yyDollar[1].selectExprsUnion() } yyVAL.union = yyLOCAL case 586: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3097 +//line sql.y:3096 { yyVAL.strs = nil } case 587: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3101 +//line sql.y:3100 { yyVAL.strs = []string{yyDollar[1].str} } case 588: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3105 +//line sql.y:3104 { // TODO: This is a hack since I couldn't get it to work in a nicer way. I got 'conflicts: 8 shift/reduce' yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str} } case 589: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3109 +//line sql.y:3108 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str} } case 590: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3113 +//line sql.y:3112 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str, yyDollar[4].str} } case 591: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3119 +//line sql.y:3118 { yyVAL.str = SQLNoCacheStr } case 592: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3123 +//line sql.y:3122 { yyVAL.str = SQLCacheStr } case 593: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3127 +//line sql.y:3126 { yyVAL.str = DistinctStr } case 594: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3131 +//line sql.y:3130 { yyVAL.str = DistinctStr } case 595: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3135 +//line sql.y:3134 { yyVAL.str = StraightJoinHint } case 596: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3139 +//line sql.y:3138 { yyVAL.str = SQLCalcFoundRowsStr } case 597: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3143 +//line sql.y:3142 { yyVAL.str = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway } case 598: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3149 +//line sql.y:3148 { yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()} } yyVAL.union = yyLOCAL case 599: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3153 +//line sql.y:3152 { yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion()) @@ -10099,7 +10099,7 @@ yydefault: case 600: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3159 +//line sql.y:3158 { yyLOCAL = &StarExpr{} } @@ -10107,7 +10107,7 @@ yydefault: case 601: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3163 +//line sql.y:3162 { yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].colIdent} } @@ -10115,7 +10115,7 @@ yydefault: case 602: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3167 +//line sql.y:3166 { yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } @@ -10123,39 +10123,39 @@ yydefault: case 603: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3171 +//line sql.y:3170 { yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL case 604: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3176 +//line sql.y:3175 { yyVAL.colIdent = ColIdent{} } case 605: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3180 +//line sql.y:3179 { yyVAL.colIdent = yyDollar[1].colIdent } case 606: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3184 +//line sql.y:3183 { yyVAL.colIdent = yyDollar[2].colIdent } case 608: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3191 +//line sql.y:3190 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } case 609: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3196 +//line sql.y:3195 { yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } @@ -10163,7 +10163,7 @@ yydefault: case 610: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3200 +//line sql.y:3199 { yyLOCAL = yyDollar[2].tableExprsUnion() } @@ -10171,14 +10171,14 @@ yydefault: case 611: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3206 +//line sql.y:3205 { yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()} } yyVAL.union = yyLOCAL case 612: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3210 +//line sql.y:3209 { yySLICE := (*TableExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion()) @@ -10186,7 +10186,7 @@ yydefault: case 615: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3220 +//line sql.y:3219 { yyLOCAL = yyDollar[1].aliasedTableNameUnion() } @@ -10194,7 +10194,7 @@ yydefault: case 616: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3224 +//line sql.y:3223 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].tableIdent} } @@ -10202,7 +10202,7 @@ yydefault: case 617: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3228 +//line sql.y:3227 { yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()} } @@ -10210,7 +10210,7 @@ yydefault: case 618: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:3234 +//line sql.y:3233 { yyLOCAL = &DerivedTable{yyDollar[2].selStmtUnion()} } @@ -10218,7 +10218,7 @@ yydefault: case 619: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3240 +//line sql.y:3239 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHintsUnion()} } @@ -10226,7 +10226,7 @@ yydefault: case 620: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3244 +//line sql.y:3243 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHintsUnion()} } @@ -10234,7 +10234,7 @@ yydefault: case 621: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:3249 +//line sql.y:3248 { yyLOCAL = nil } @@ -10242,7 +10242,7 @@ yydefault: case 622: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:3253 +//line sql.y:3252 { yyLOCAL = yyDollar[2].columnsUnion() } @@ -10250,14 +10250,14 @@ yydefault: case 623: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:3259 +//line sql.y:3258 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL case 624: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3263 +//line sql.y:3262 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) @@ -10265,14 +10265,14 @@ yydefault: case 625: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Partitions -//line sql.y:3269 +//line sql.y:3268 { yyLOCAL = Partitions{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL case 626: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3273 +//line sql.y:3272 { yySLICE := (*Partitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) @@ -10280,7 +10280,7 @@ yydefault: case 627: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3286 +//line sql.y:3285 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } @@ -10288,7 +10288,7 @@ yydefault: case 628: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3290 +//line sql.y:3289 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } @@ -10296,7 +10296,7 @@ yydefault: case 629: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3294 +//line sql.y:3293 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } @@ -10304,87 +10304,87 @@ yydefault: case 630: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3298 +//line sql.y:3297 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()} } yyVAL.union = yyLOCAL case 631: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3304 +//line sql.y:3303 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } case 632: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3306 +//line sql.y:3305 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columnsUnion()} } case 633: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3310 +//line sql.y:3309 { yyVAL.joinCondition = JoinCondition{} } case 634: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3312 +//line sql.y:3311 { yyVAL.joinCondition = yyDollar[1].joinCondition } case 635: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3316 +//line sql.y:3315 { yyVAL.joinCondition = JoinCondition{} } case 636: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3318 +//line sql.y:3317 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } case 637: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3321 +//line sql.y:3320 { yyVAL.empty = struct{}{} } case 638: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3323 +//line sql.y:3322 { yyVAL.empty = struct{}{} } case 639: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3326 +//line sql.y:3325 { yyVAL.tableIdent = NewTableIdent("") } case 640: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3330 +//line sql.y:3329 { yyVAL.tableIdent = yyDollar[1].tableIdent } case 641: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3334 +//line sql.y:3333 { yyVAL.tableIdent = yyDollar[2].tableIdent } case 643: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3341 +//line sql.y:3340 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } case 644: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3347 +//line sql.y:3346 { yyLOCAL = NormalJoinType } @@ -10392,7 +10392,7 @@ yydefault: case 645: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3351 +//line sql.y:3350 { yyLOCAL = NormalJoinType } @@ -10400,7 +10400,7 @@ yydefault: case 646: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3355 +//line sql.y:3354 { yyLOCAL = NormalJoinType } @@ -10408,7 +10408,7 @@ yydefault: case 647: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3361 +//line sql.y:3360 { yyLOCAL = StraightJoinType } @@ -10416,7 +10416,7 @@ yydefault: case 648: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3367 +//line sql.y:3366 { yyLOCAL = LeftJoinType } @@ -10424,7 +10424,7 @@ yydefault: case 649: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3371 +//line sql.y:3370 { yyLOCAL = LeftJoinType } @@ -10432,7 +10432,7 @@ yydefault: case 650: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3375 +//line sql.y:3374 { yyLOCAL = RightJoinType } @@ -10440,7 +10440,7 @@ yydefault: case 651: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3379 +//line sql.y:3378 { yyLOCAL = RightJoinType } @@ -10448,7 +10448,7 @@ yydefault: case 652: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3385 +//line sql.y:3384 { yyLOCAL = NaturalJoinType } @@ -10456,7 +10456,7 @@ yydefault: case 653: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3389 +//line sql.y:3388 { if yyDollar[2].joinTypeUnion() == LeftJoinType { yyLOCAL = NaturalLeftJoinType @@ -10467,38 +10467,38 @@ yydefault: yyVAL.union = yyLOCAL case 654: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3399 +//line sql.y:3398 { yyVAL.tableName = yyDollar[2].tableName } case 655: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3403 +//line sql.y:3402 { yyVAL.tableName = yyDollar[1].tableName } case 656: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3409 +//line sql.y:3408 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } case 657: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3413 +//line sql.y:3412 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } case 658: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3419 +//line sql.y:3418 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } case 659: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3424 +//line sql.y:3423 { yyLOCAL = nil } @@ -10506,7 +10506,7 @@ yydefault: case 660: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3428 +//line sql.y:3427 { yyLOCAL = &IndexHints{Type: UseOp, Indexes: yyDollar[4].columnsUnion()} } @@ -10514,7 +10514,7 @@ yydefault: case 661: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3432 +//line sql.y:3431 { yyLOCAL = &IndexHints{Type: UseOp} } @@ -10522,7 +10522,7 @@ yydefault: case 662: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3436 +//line sql.y:3435 { yyLOCAL = &IndexHints{Type: IgnoreOp, Indexes: yyDollar[4].columnsUnion()} } @@ -10530,7 +10530,7 @@ yydefault: case 663: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3440 +//line sql.y:3439 { yyLOCAL = &IndexHints{Type: ForceOp, Indexes: yyDollar[4].columnsUnion()} } @@ -10538,7 +10538,7 @@ yydefault: case 664: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3445 +//line sql.y:3444 { yyLOCAL = nil } @@ -10546,7 +10546,7 @@ yydefault: case 665: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3449 +//line sql.y:3448 { yyLOCAL = yyDollar[2].exprUnion() } @@ -10554,7 +10554,7 @@ yydefault: case 666: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3455 +//line sql.y:3454 { yyLOCAL = yyDollar[1].exprUnion() } @@ -10562,7 +10562,7 @@ yydefault: case 667: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3459 +//line sql.y:3458 { yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } @@ -10570,7 +10570,7 @@ yydefault: case 668: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3463 +//line sql.y:3462 { yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } @@ -10578,7 +10578,7 @@ yydefault: case 669: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3467 +//line sql.y:3466 { yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } @@ -10586,7 +10586,7 @@ yydefault: case 670: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3471 +//line sql.y:3470 { yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()} } @@ -10594,7 +10594,7 @@ yydefault: case 671: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3475 +//line sql.y:3474 { yyLOCAL = &IsExpr{Operator: yyDollar[3].isExprOperatorUnion(), Expr: yyDollar[1].exprUnion()} } @@ -10602,7 +10602,7 @@ yydefault: case 672: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3479 +//line sql.y:3478 { yyLOCAL = yyDollar[1].exprUnion() } @@ -10610,27 +10610,27 @@ yydefault: case 673: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3483 +//line sql.y:3482 { yyLOCAL = &Default{ColName: yyDollar[2].str} } yyVAL.union = yyLOCAL case 674: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3489 +//line sql.y:3488 { yyVAL.str = "" } case 675: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3493 +//line sql.y:3492 { yyVAL.str = string(yyDollar[2].colIdent.String()) } case 676: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3499 +//line sql.y:3498 { yyLOCAL = BoolVal(true) } @@ -10638,7 +10638,7 @@ yydefault: case 677: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3503 +//line sql.y:3502 { yyLOCAL = BoolVal(false) } @@ -10646,7 +10646,7 @@ yydefault: case 678: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3509 +//line sql.y:3508 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()} } @@ -10654,7 +10654,7 @@ yydefault: case 679: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3513 +//line sql.y:3512 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()} } @@ -10662,7 +10662,7 @@ yydefault: case 680: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3517 +//line sql.y:3516 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()} } @@ -10670,7 +10670,7 @@ yydefault: case 681: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3521 +//line sql.y:3520 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[4].exprUnion()} } @@ -10678,7 +10678,7 @@ yydefault: case 682: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3525 +//line sql.y:3524 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[5].exprUnion()} } @@ -10686,7 +10686,7 @@ yydefault: case 683: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3529 +//line sql.y:3528 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()} } @@ -10694,7 +10694,7 @@ yydefault: case 684: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3533 +//line sql.y:3532 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()} } @@ -10702,7 +10702,7 @@ yydefault: case 685: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3537 +//line sql.y:3536 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: BetweenOp, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()} } @@ -10710,7 +10710,7 @@ yydefault: case 686: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3541 +//line sql.y:3540 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: NotBetweenOp, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()} } @@ -10718,7 +10718,7 @@ yydefault: case 687: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3545 +//line sql.y:3544 { yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()} } @@ -10726,7 +10726,7 @@ yydefault: case 688: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3551 +//line sql.y:3550 { yyLOCAL = IsNullOp } @@ -10734,7 +10734,7 @@ yydefault: case 689: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3555 +//line sql.y:3554 { yyLOCAL = IsNotNullOp } @@ -10742,7 +10742,7 @@ yydefault: case 690: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3559 +//line sql.y:3558 { yyLOCAL = IsTrueOp } @@ -10750,7 +10750,7 @@ yydefault: case 691: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3563 +//line sql.y:3562 { yyLOCAL = IsNotTrueOp } @@ -10758,7 +10758,7 @@ yydefault: case 692: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3567 +//line sql.y:3566 { yyLOCAL = IsFalseOp } @@ -10766,7 +10766,7 @@ yydefault: case 693: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3571 +//line sql.y:3570 { yyLOCAL = IsNotFalseOp } @@ -10774,7 +10774,7 @@ yydefault: case 694: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3577 +//line sql.y:3576 { yyLOCAL = EqualOp } @@ -10782,7 +10782,7 @@ yydefault: case 695: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3581 +//line sql.y:3580 { yyLOCAL = LessThanOp } @@ -10790,7 +10790,7 @@ yydefault: case 696: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3585 +//line sql.y:3584 { yyLOCAL = GreaterThanOp } @@ -10798,7 +10798,7 @@ yydefault: case 697: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3589 +//line sql.y:3588 { yyLOCAL = LessEqualOp } @@ -10806,7 +10806,7 @@ yydefault: case 698: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3593 +//line sql.y:3592 { yyLOCAL = GreaterEqualOp } @@ -10814,7 +10814,7 @@ yydefault: case 699: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3597 +//line sql.y:3596 { yyLOCAL = NotEqualOp } @@ -10822,7 +10822,7 @@ yydefault: case 700: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3601 +//line sql.y:3600 { yyLOCAL = NullSafeEqualOp } @@ -10830,7 +10830,7 @@ yydefault: case 701: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3606 +//line sql.y:3605 { yyLOCAL = nil } @@ -10838,7 +10838,7 @@ yydefault: case 702: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3610 +//line sql.y:3609 { yyLOCAL = yyDollar[2].exprUnion() } @@ -10846,7 +10846,7 @@ yydefault: case 703: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3616 +//line sql.y:3615 { yyLOCAL = yyDollar[1].valTupleUnion() } @@ -10854,7 +10854,7 @@ yydefault: case 704: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3620 +//line sql.y:3619 { yyLOCAL = yyDollar[1].subqueryUnion() } @@ -10862,7 +10862,7 @@ yydefault: case 705: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3624 +//line sql.y:3623 { yyLOCAL = ListArg(yyDollar[1].str[2:]) bindVariable(yylex, yyDollar[1].str[2:]) @@ -10871,7 +10871,7 @@ yydefault: case 706: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Subquery -//line sql.y:3631 +//line sql.y:3630 { yyLOCAL = &Subquery{yyDollar[2].selStmtUnion()} } @@ -10879,14 +10879,14 @@ yydefault: case 707: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:3637 +//line sql.y:3636 { yyLOCAL = Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL case 708: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3641 +//line sql.y:3640 { yySLICE := (*Exprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].exprUnion()) @@ -10894,7 +10894,7 @@ yydefault: case 709: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3647 +//line sql.y:3646 { yyLOCAL = yyDollar[1].exprUnion() } @@ -10902,7 +10902,7 @@ yydefault: case 710: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3651 +//line sql.y:3650 { yyLOCAL = yyDollar[1].boolValUnion() } @@ -10910,7 +10910,7 @@ yydefault: case 711: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3655 +//line sql.y:3654 { yyLOCAL = yyDollar[1].colNameUnion() } @@ -10918,7 +10918,7 @@ yydefault: case 712: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3659 +//line sql.y:3658 { yyLOCAL = yyDollar[1].exprUnion() } @@ -10926,7 +10926,7 @@ yydefault: case 713: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3663 +//line sql.y:3662 { yyLOCAL = yyDollar[1].subqueryUnion() } @@ -10934,7 +10934,7 @@ yydefault: case 714: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3667 +//line sql.y:3666 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()} } @@ -10942,7 +10942,7 @@ yydefault: case 715: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3671 +//line sql.y:3670 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()} } @@ -10950,7 +10950,7 @@ yydefault: case 716: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3675 +//line sql.y:3674 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()} } @@ -10958,7 +10958,7 @@ yydefault: case 717: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3679 +//line sql.y:3678 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()} } @@ -10966,7 +10966,7 @@ yydefault: case 718: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3683 +//line sql.y:3682 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()} } @@ -10974,7 +10974,7 @@ yydefault: case 719: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3687 +//line sql.y:3686 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()} } @@ -10982,7 +10982,7 @@ yydefault: case 720: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3691 +//line sql.y:3690 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()} } @@ -10990,7 +10990,7 @@ yydefault: case 721: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3695 +//line sql.y:3694 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()} } @@ -10998,7 +10998,7 @@ yydefault: case 722: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3699 +//line sql.y:3698 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } @@ -11006,7 +11006,7 @@ yydefault: case 723: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3703 +//line sql.y:3702 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } @@ -11014,7 +11014,7 @@ yydefault: case 724: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3707 +//line sql.y:3706 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()} } @@ -11022,7 +11022,7 @@ yydefault: case 725: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3711 +//line sql.y:3710 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()} } @@ -11030,7 +11030,7 @@ yydefault: case 726: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3715 +//line sql.y:3714 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONExtractOp, Right: yyDollar[3].exprUnion()} } @@ -11038,7 +11038,7 @@ yydefault: case 727: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3719 +//line sql.y:3718 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONUnquoteExtractOp, Right: yyDollar[3].exprUnion()} } @@ -11046,7 +11046,7 @@ yydefault: case 728: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3723 +//line sql.y:3722 { yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Charset: yyDollar[3].str} } @@ -11054,7 +11054,7 @@ yydefault: case 729: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3727 +//line sql.y:3726 { yyLOCAL = &UnaryExpr{Operator: BinaryOp, Expr: yyDollar[2].exprUnion()} } @@ -11062,7 +11062,7 @@ yydefault: case 730: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3731 +//line sql.y:3730 { yyLOCAL = &UnaryExpr{Operator: UBinaryOp, Expr: yyDollar[2].exprUnion()} } @@ -11070,7 +11070,7 @@ yydefault: case 731: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3735 +//line sql.y:3734 { yyLOCAL = &UnaryExpr{Operator: Utf8Op, Expr: yyDollar[2].exprUnion()} } @@ -11078,7 +11078,7 @@ yydefault: case 732: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3739 +//line sql.y:3738 { yyLOCAL = &UnaryExpr{Operator: Utf8mb4Op, Expr: yyDollar[2].exprUnion()} } @@ -11086,7 +11086,7 @@ yydefault: case 733: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3743 +//line sql.y:3742 { yyLOCAL = &UnaryExpr{Operator: Latin1Op, Expr: yyDollar[2].exprUnion()} } @@ -11094,7 +11094,7 @@ yydefault: case 734: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3747 +//line sql.y:3746 { yyLOCAL = yyDollar[2].exprUnion() } @@ -11102,7 +11102,7 @@ yydefault: case 735: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3751 +//line sql.y:3750 { yyLOCAL = handleUnaryMinus(yyDollar[2].exprUnion()) } @@ -11110,7 +11110,7 @@ yydefault: case 736: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3755 +//line sql.y:3754 { yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()} } @@ -11118,7 +11118,7 @@ yydefault: case 737: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3759 +//line sql.y:3758 { yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()} } @@ -11126,7 +11126,7 @@ yydefault: case 738: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3763 +//line sql.y:3762 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -11138,7 +11138,7 @@ yydefault: case 743: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3781 +//line sql.y:3780 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprsUnion()} } @@ -11146,7 +11146,7 @@ yydefault: case 744: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3785 +//line sql.y:3784 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } @@ -11154,7 +11154,7 @@ yydefault: case 745: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3789 +//line sql.y:3788 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } @@ -11162,7 +11162,7 @@ yydefault: case 746: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3793 +//line sql.y:3792 { yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprsUnion()} } @@ -11170,7 +11170,7 @@ yydefault: case 747: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3803 +//line sql.y:3802 { yyLOCAL = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11178,7 +11178,7 @@ yydefault: case 748: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3807 +//line sql.y:3806 { yyLOCAL = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11186,7 +11186,7 @@ yydefault: case 749: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3811 +//line sql.y:3810 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } @@ -11194,7 +11194,7 @@ yydefault: case 750: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3815 +//line sql.y:3814 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } @@ -11202,7 +11202,7 @@ yydefault: case 751: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3819 +//line sql.y:3818 { yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str} } @@ -11210,7 +11210,7 @@ yydefault: case 752: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3823 +//line sql.y:3822 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } @@ -11218,7 +11218,7 @@ yydefault: case 753: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3827 +//line sql.y:3826 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } @@ -11226,7 +11226,7 @@ yydefault: case 754: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3831 +//line sql.y:3830 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } @@ -11234,7 +11234,7 @@ yydefault: case 755: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3835 +//line sql.y:3834 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } @@ -11242,7 +11242,7 @@ yydefault: case 756: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:3839 +//line sql.y:3838 { yyLOCAL = &MatchExpr{Columns: yyDollar[3].selectExprsUnion(), Expr: yyDollar[7].exprUnion(), Option: yyDollar[8].matchExprOptionUnion()} } @@ -11250,7 +11250,7 @@ yydefault: case 757: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3843 +//line sql.y:3842 { yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].selectExprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()} } @@ -11258,7 +11258,7 @@ yydefault: case 758: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3847 +//line sql.y:3846 { yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()} } @@ -11266,7 +11266,7 @@ yydefault: case 759: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3851 +//line sql.y:3850 { yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()} } @@ -11274,7 +11274,7 @@ yydefault: case 760: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3855 +//line sql.y:3854 { yyLOCAL = &FuncExpr{Name: NewColIdent(yyDollar[1].str)} } @@ -11282,7 +11282,7 @@ yydefault: case 761: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3865 +//line sql.y:3864 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_timestamp")} } @@ -11290,7 +11290,7 @@ yydefault: case 762: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3869 +//line sql.y:3868 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_timestamp")} } @@ -11298,7 +11298,7 @@ yydefault: case 763: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3873 +//line sql.y:3872 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_time")} } @@ -11306,7 +11306,7 @@ yydefault: case 764: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3878 +//line sql.y:3877 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_date")} } @@ -11314,7 +11314,7 @@ yydefault: case 765: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3883 +//line sql.y:3882 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtime")} } @@ -11322,7 +11322,7 @@ yydefault: case 766: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3888 +//line sql.y:3887 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtimestamp")} } @@ -11330,7 +11330,7 @@ yydefault: case 767: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3894 +//line sql.y:3893 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_date")} } @@ -11338,7 +11338,7 @@ yydefault: case 768: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3899 +//line sql.y:3898 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_time")} } @@ -11346,7 +11346,7 @@ yydefault: case 769: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3904 +//line sql.y:3903 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].exprUnion()} } @@ -11354,7 +11354,7 @@ yydefault: case 770: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3908 +//line sql.y:3907 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].exprUnion()} } @@ -11362,7 +11362,7 @@ yydefault: case 771: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3912 +//line sql.y:3911 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].exprUnion()} } @@ -11370,7 +11370,7 @@ yydefault: case 772: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3917 +//line sql.y:3916 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].exprUnion()} } @@ -11378,7 +11378,7 @@ yydefault: case 773: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3922 +//line sql.y:3921 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].exprUnion()} } @@ -11386,7 +11386,7 @@ yydefault: case 774: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3927 +//line sql.y:3926 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].exprUnion()} } @@ -11394,7 +11394,7 @@ yydefault: case 775: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3931 +//line sql.y:3930 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } @@ -11402,7 +11402,7 @@ yydefault: case 776: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3935 +//line sql.y:3934 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } @@ -11410,7 +11410,7 @@ yydefault: case 779: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3945 +//line sql.y:3944 { yyLOCAL = yyDollar[2].exprUnion() } @@ -11418,7 +11418,7 @@ yydefault: case 780: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3955 +//line sql.y:3954 { yyLOCAL = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11426,7 +11426,7 @@ yydefault: case 781: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3959 +//line sql.y:3958 { yyLOCAL = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11434,7 +11434,7 @@ yydefault: case 782: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3963 +//line sql.y:3962 { yyLOCAL = &FuncExpr{Name: NewColIdent("schema"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11442,7 +11442,7 @@ yydefault: case 783: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3967 +//line sql.y:3966 { yyLOCAL = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11450,7 +11450,7 @@ yydefault: case 784: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3971 +//line sql.y:3970 { yyLOCAL = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11458,7 +11458,7 @@ yydefault: case 785: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3975 +//line sql.y:3974 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11466,7 +11466,7 @@ yydefault: case 786: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3979 +//line sql.y:3978 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11474,7 +11474,7 @@ yydefault: case 787: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3985 +//line sql.y:3984 { yyLOCAL = NoOption } @@ -11482,7 +11482,7 @@ yydefault: case 788: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3989 +//line sql.y:3988 { yyLOCAL = BooleanModeOpt } @@ -11490,7 +11490,7 @@ yydefault: case 789: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3993 +//line sql.y:3992 { yyLOCAL = NaturalLanguageModeOpt } @@ -11498,7 +11498,7 @@ yydefault: case 790: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3997 +//line sql.y:3996 { yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt } @@ -11506,33 +11506,33 @@ yydefault: case 791: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:4001 +//line sql.y:4000 { yyLOCAL = QueryExpansionOpt } yyVAL.union = yyLOCAL case 792: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4007 +//line sql.y:4006 { yyVAL.str = string(yyDollar[1].colIdent.String()) } case 793: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4011 +//line sql.y:4010 { yyVAL.str = string(yyDollar[1].str) } case 794: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4015 +//line sql.y:4014 { yyVAL.str = string(yyDollar[1].str) } case 795: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4021 +//line sql.y:4020 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } @@ -11540,7 +11540,7 @@ yydefault: case 796: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4025 +//line sql.y:4024 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Operator: CharacterSetOp} } @@ -11548,7 +11548,7 @@ yydefault: case 797: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4029 +//line sql.y:4028 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: string(yyDollar[3].colIdent.String())} } @@ -11556,7 +11556,7 @@ yydefault: case 798: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4033 +//line sql.y:4032 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -11564,7 +11564,7 @@ yydefault: case 799: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4037 +//line sql.y:4036 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } @@ -11572,7 +11572,7 @@ yydefault: case 800: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4041 +//line sql.y:4040 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length @@ -11582,7 +11582,7 @@ yydefault: case 801: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4047 +//line sql.y:4046 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -11590,7 +11590,7 @@ yydefault: case 802: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4051 +//line sql.y:4050 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } @@ -11598,7 +11598,7 @@ yydefault: case 803: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4055 +//line sql.y:4054 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -11606,7 +11606,7 @@ yydefault: case 804: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4059 +//line sql.y:4058 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -11614,7 +11614,7 @@ yydefault: case 805: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4063 +//line sql.y:4062 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } @@ -11622,7 +11622,7 @@ yydefault: case 806: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4067 +//line sql.y:4066 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -11630,7 +11630,7 @@ yydefault: case 807: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4071 +//line sql.y:4070 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -11638,7 +11638,7 @@ yydefault: case 808: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4076 +//line sql.y:4075 { yyLOCAL = nil } @@ -11646,34 +11646,34 @@ yydefault: case 809: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4080 +//line sql.y:4079 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL case 810: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4085 +//line sql.y:4084 { yyVAL.str = string("") } case 811: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4089 +//line sql.y:4088 { yyVAL.str = " separator " + encodeSQLString(yyDollar[2].str) } case 812: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*When -//line sql.y:4095 +//line sql.y:4094 { yyLOCAL = []*When{yyDollar[1].whenUnion()} } yyVAL.union = yyLOCAL case 813: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4099 +//line sql.y:4098 { yySLICE := (*[]*When)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].whenUnion()) @@ -11681,7 +11681,7 @@ yydefault: case 814: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *When -//line sql.y:4105 +//line sql.y:4104 { yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()} } @@ -11689,7 +11689,7 @@ yydefault: case 815: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4110 +//line sql.y:4109 { yyLOCAL = nil } @@ -11697,7 +11697,7 @@ yydefault: case 816: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4114 +//line sql.y:4113 { yyLOCAL = yyDollar[2].exprUnion() } @@ -11705,7 +11705,7 @@ yydefault: case 817: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ColName -//line sql.y:4120 +//line sql.y:4119 { yyLOCAL = &ColName{Name: yyDollar[1].colIdent} } @@ -11713,7 +11713,7 @@ yydefault: case 818: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColName -//line sql.y:4124 +//line sql.y:4123 { yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } @@ -11721,7 +11721,7 @@ yydefault: case 819: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColName -//line sql.y:4128 +//line sql.y:4127 { yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } @@ -11729,7 +11729,7 @@ yydefault: case 820: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4134 +//line sql.y:4133 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } @@ -11737,7 +11737,7 @@ yydefault: case 821: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4138 +//line sql.y:4137 { yyLOCAL = NewHexLiteral(yyDollar[1].str) } @@ -11745,7 +11745,7 @@ yydefault: case 822: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4142 +//line sql.y:4141 { yyLOCAL = NewBitLiteral(yyDollar[1].str) } @@ -11753,7 +11753,7 @@ yydefault: case 823: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4146 +//line sql.y:4145 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } @@ -11761,7 +11761,7 @@ yydefault: case 824: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4150 +//line sql.y:4149 { yyLOCAL = NewFloatLiteral(yyDollar[1].str) } @@ -11769,7 +11769,7 @@ yydefault: case 825: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4154 +//line sql.y:4153 { yyLOCAL = NewHexNumLiteral(yyDollar[1].str) } @@ -11777,7 +11777,7 @@ yydefault: case 826: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4158 +//line sql.y:4157 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) @@ -11786,7 +11786,7 @@ yydefault: case 827: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4163 +//line sql.y:4162 { yyLOCAL = &NullVal{} } @@ -11794,7 +11794,7 @@ yydefault: case 828: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4169 +//line sql.y:4168 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -11807,7 +11807,7 @@ yydefault: case 829: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4178 +//line sql.y:4177 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } @@ -11815,7 +11815,7 @@ yydefault: case 830: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4182 +//line sql.y:4181 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) @@ -11824,7 +11824,7 @@ yydefault: case 831: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4188 +//line sql.y:4187 { yyLOCAL = nil } @@ -11832,7 +11832,7 @@ yydefault: case 832: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Exprs -//line sql.y:4192 +//line sql.y:4191 { yyLOCAL = yyDollar[3].exprsUnion() } @@ -11840,7 +11840,7 @@ yydefault: case 833: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4197 +//line sql.y:4196 { yyLOCAL = nil } @@ -11848,7 +11848,7 @@ yydefault: case 834: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4201 +//line sql.y:4200 { yyLOCAL = yyDollar[2].exprUnion() } @@ -11856,7 +11856,7 @@ yydefault: case 835: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4206 +//line sql.y:4205 { yyLOCAL = nil } @@ -11864,7 +11864,7 @@ yydefault: case 836: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4210 +//line sql.y:4209 { yyLOCAL = yyDollar[3].orderByUnion() } @@ -11872,14 +11872,14 @@ yydefault: case 837: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4216 +//line sql.y:4215 { yyLOCAL = OrderBy{yyDollar[1].orderUnion()} } yyVAL.union = yyLOCAL case 838: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4220 +//line sql.y:4219 { yySLICE := (*OrderBy)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].orderUnion()) @@ -11887,7 +11887,7 @@ yydefault: case 839: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Order -//line sql.y:4226 +//line sql.y:4225 { yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()} } @@ -11895,7 +11895,7 @@ yydefault: case 840: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4231 +//line sql.y:4230 { yyLOCAL = AscOrder } @@ -11903,7 +11903,7 @@ yydefault: case 841: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4235 +//line sql.y:4234 { yyLOCAL = AscOrder } @@ -11911,7 +11911,7 @@ yydefault: case 842: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4239 +//line sql.y:4238 { yyLOCAL = DescOrder } @@ -11919,7 +11919,7 @@ yydefault: case 843: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Limit -//line sql.y:4244 +//line sql.y:4243 { yyLOCAL = nil } @@ -11927,7 +11927,7 @@ yydefault: case 844: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Limit -//line sql.y:4248 +//line sql.y:4247 { yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()} } @@ -11935,7 +11935,7 @@ yydefault: case 845: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4252 +//line sql.y:4251 { yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()} } @@ -11943,7 +11943,7 @@ yydefault: case 846: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4256 +//line sql.y:4255 { yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()} } @@ -11951,7 +11951,7 @@ yydefault: case 847: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4261 +//line sql.y:4260 { yyLOCAL = nil } @@ -11959,7 +11959,7 @@ yydefault: case 848: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4265 +//line sql.y:4264 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } @@ -11967,7 +11967,7 @@ yydefault: case 849: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4269 +//line sql.y:4268 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } @@ -11975,7 +11975,7 @@ yydefault: case 850: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4273 +//line sql.y:4272 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } @@ -11983,7 +11983,7 @@ yydefault: case 851: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4277 +//line sql.y:4276 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } @@ -11991,7 +11991,7 @@ yydefault: case 852: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4284 +//line sql.y:4283 { yyLOCAL = &LockOption{Type: DefaultType} } @@ -11999,7 +11999,7 @@ yydefault: case 853: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4288 +//line sql.y:4287 { yyLOCAL = &LockOption{Type: NoneType} } @@ -12007,7 +12007,7 @@ yydefault: case 854: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4292 +//line sql.y:4291 { yyLOCAL = &LockOption{Type: SharedType} } @@ -12015,7 +12015,7 @@ yydefault: case 855: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4296 +//line sql.y:4295 { yyLOCAL = &LockOption{Type: ExclusiveType} } @@ -12023,7 +12023,7 @@ yydefault: case 856: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4302 +//line sql.y:4301 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } @@ -12031,7 +12031,7 @@ yydefault: case 857: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4306 +//line sql.y:4305 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } @@ -12039,129 +12039,129 @@ yydefault: case 858: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4310 +//line sql.y:4309 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL case 859: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4315 +//line sql.y:4314 { yyVAL.str = "" } case 860: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4319 +//line sql.y:4318 { yyVAL.str = string(yyDollar[3].str) } case 861: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4323 +//line sql.y:4322 { yyVAL.str = string(yyDollar[3].str) } case 862: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4327 +//line sql.y:4326 { yyVAL.str = string(yyDollar[3].str) } case 863: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4332 +//line sql.y:4331 { yyVAL.str = "" } case 864: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4336 +//line sql.y:4335 { yyVAL.str = yyDollar[3].str } case 865: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4342 +//line sql.y:4341 { yyVAL.str = string(yyDollar[1].str) } case 866: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4346 +//line sql.y:4345 { yyVAL.str = string(yyDollar[1].str) } case 867: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4351 +//line sql.y:4350 { yyVAL.str = "" } case 868: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4355 +//line sql.y:4354 { yyVAL.str = yyDollar[2].str } case 869: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4360 +//line sql.y:4359 { yyVAL.str = "cascaded" } case 870: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4364 +//line sql.y:4363 { yyVAL.str = string(yyDollar[1].str) } case 871: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4368 +//line sql.y:4367 { yyVAL.str = string(yyDollar[1].str) } case 872: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4373 +//line sql.y:4372 { yyVAL.str = "" } case 873: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4377 +//line sql.y:4376 { yyVAL.str = yyDollar[3].str } case 874: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4383 +//line sql.y:4382 { yyVAL.str = string(yyDollar[1].str) } case 875: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4387 +//line sql.y:4386 { yyVAL.str = string(yyDollar[1].str) } case 876: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4391 +//line sql.y:4390 { yyVAL.str = encodeSQLString(yyDollar[1].str) + "@" + string(yyDollar[2].str) } case 877: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4395 +//line sql.y:4394 { yyVAL.str = string(yyDollar[1].str) } case 878: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Lock -//line sql.y:4400 +//line sql.y:4399 { yyLOCAL = NoLock } @@ -12169,7 +12169,7 @@ yydefault: case 879: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Lock -//line sql.y:4404 +//line sql.y:4403 { yyLOCAL = ForUpdateLock } @@ -12177,7 +12177,7 @@ yydefault: case 880: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:4408 +//line sql.y:4407 { yyLOCAL = ShareModeLock } @@ -12185,7 +12185,7 @@ yydefault: case 881: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4413 +//line sql.y:4412 { yyLOCAL = nil } @@ -12193,7 +12193,7 @@ yydefault: case 882: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4417 +//line sql.y:4416 { yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].str, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str} } @@ -12201,7 +12201,7 @@ yydefault: case 883: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4421 +//line sql.y:4420 { yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: "", FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""} } @@ -12209,177 +12209,177 @@ yydefault: case 884: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4425 +//line sql.y:4424 { yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].str, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL case 885: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4430 +//line sql.y:4429 { yyVAL.str = "" } case 886: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4434 +//line sql.y:4433 { yyVAL.str = " format csv" + yyDollar[3].str } case 887: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4438 +//line sql.y:4437 { yyVAL.str = " format text" + yyDollar[3].str } case 888: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4443 +//line sql.y:4442 { yyVAL.str = "" } case 889: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4447 +//line sql.y:4446 { yyVAL.str = " header" } case 890: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4452 +//line sql.y:4451 { yyVAL.str = "" } case 891: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4456 +//line sql.y:4455 { yyVAL.str = " manifest on" } case 892: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4460 +//line sql.y:4459 { yyVAL.str = " manifest off" } case 893: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4465 +//line sql.y:4464 { yyVAL.str = "" } case 894: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4469 +//line sql.y:4468 { yyVAL.str = " overwrite on" } case 895: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4473 +//line sql.y:4472 { yyVAL.str = " overwrite off" } case 896: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4479 +//line sql.y:4478 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } case 897: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4484 +//line sql.y:4483 { yyVAL.str = "" } case 898: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4488 +//line sql.y:4487 { yyVAL.str = " lines" + yyDollar[2].str } case 899: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4494 +//line sql.y:4493 { yyVAL.str = yyDollar[1].str } case 900: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4498 +//line sql.y:4497 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } case 901: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4504 +//line sql.y:4503 { yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str) } case 902: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4508 +//line sql.y:4507 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } case 903: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4513 +//line sql.y:4512 { yyVAL.str = "" } case 904: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4517 +//line sql.y:4516 { yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str } case 905: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4523 +//line sql.y:4522 { yyVAL.str = yyDollar[1].str } case 906: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4527 +//line sql.y:4526 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } case 907: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4533 +//line sql.y:4532 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } case 908: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4537 +//line sql.y:4536 { yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str) } case 909: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4541 +//line sql.y:4540 { yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str) } case 910: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4546 +//line sql.y:4545 { yyVAL.str = "" } case 911: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4550 +//line sql.y:4549 { yyVAL.str = " optionally" } case 912: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Insert -//line sql.y:4563 +//line sql.y:4562 { yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion()} } @@ -12387,7 +12387,7 @@ yydefault: case 913: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Insert -//line sql.y:4567 +//line sql.y:4566 { yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()} } @@ -12395,7 +12395,7 @@ yydefault: case 914: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *Insert -//line sql.y:4571 +//line sql.y:4570 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion()} } @@ -12403,7 +12403,7 @@ yydefault: case 915: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4575 +//line sql.y:4574 { yyLOCAL = &Insert{Rows: yyDollar[4].valuesUnion()} } @@ -12411,7 +12411,7 @@ yydefault: case 916: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4579 +//line sql.y:4578 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()} } @@ -12419,7 +12419,7 @@ yydefault: case 917: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:4585 +//line sql.y:4584 { yyLOCAL = Columns{yyDollar[1].colIdent} } @@ -12427,21 +12427,21 @@ yydefault: case 918: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:4589 +//line sql.y:4588 { yyLOCAL = Columns{yyDollar[3].colIdent} } yyVAL.union = yyLOCAL case 919: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4593 +//line sql.y:4592 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } case 920: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4597 +//line sql.y:4596 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[5].colIdent) @@ -12449,7 +12449,7 @@ yydefault: case 921: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4602 +//line sql.y:4601 { yyLOCAL = nil } @@ -12457,7 +12457,7 @@ yydefault: case 922: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4606 +//line sql.y:4605 { yyLOCAL = yyDollar[5].updateExprsUnion() } @@ -12465,14 +12465,14 @@ yydefault: case 923: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Values -//line sql.y:4612 +//line sql.y:4611 { yyLOCAL = Values{yyDollar[1].valTupleUnion()} } yyVAL.union = yyLOCAL case 924: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4616 +//line sql.y:4615 { yySLICE := (*Values)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion()) @@ -12480,7 +12480,7 @@ yydefault: case 925: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4622 +//line sql.y:4621 { yyLOCAL = yyDollar[1].valTupleUnion() } @@ -12488,7 +12488,7 @@ yydefault: case 926: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4626 +//line sql.y:4625 { yyLOCAL = ValTuple{} } @@ -12496,7 +12496,7 @@ yydefault: case 927: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4632 +//line sql.y:4631 { yyLOCAL = ValTuple(yyDollar[2].exprsUnion()) } @@ -12504,7 +12504,7 @@ yydefault: case 928: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4638 +//line sql.y:4637 { if len(yyDollar[1].valTupleUnion()) == 1 { yyLOCAL = yyDollar[1].valTupleUnion()[0] @@ -12516,14 +12516,14 @@ yydefault: case 929: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4648 +//line sql.y:4647 { yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()} } yyVAL.union = yyLOCAL case 930: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4652 +//line sql.y:4651 { yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion()) @@ -12531,7 +12531,7 @@ yydefault: case 931: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *UpdateExpr -//line sql.y:4658 +//line sql.y:4657 { yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()} } @@ -12539,14 +12539,14 @@ yydefault: case 932: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SetExprs -//line sql.y:4664 +//line sql.y:4663 { yyLOCAL = SetExprs{yyDollar[1].setExprUnion()} } yyVAL.union = yyLOCAL case 933: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4668 +//line sql.y:4667 { yySLICE := (*SetExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].setExprUnion()) @@ -12554,7 +12554,7 @@ yydefault: case 934: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4674 +//line sql.y:4673 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("on")} } @@ -12562,7 +12562,7 @@ yydefault: case 935: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4678 +//line sql.y:4677 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("off")} } @@ -12570,7 +12570,7 @@ yydefault: case 936: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4682 +//line sql.y:4681 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: yyDollar[3].exprUnion()} } @@ -12578,7 +12578,7 @@ yydefault: case 937: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4686 +//line sql.y:4685 { yyLOCAL = &SetExpr{Name: NewColIdent(string(yyDollar[1].str)), Scope: ImplicitScope, Expr: yyDollar[2].exprUnion()} } @@ -12586,7 +12586,7 @@ yydefault: case 938: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4690 +//line sql.y:4689 { yyDollar[2].setExprUnion().Scope = yyDollar[1].scopeUnion() yyLOCAL = yyDollar[2].setExprUnion() @@ -12594,14 +12594,14 @@ yydefault: yyVAL.union = yyLOCAL case 940: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4698 +//line sql.y:4697 { yyVAL.str = "charset" } case 943: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4708 +//line sql.y:4707 { yyLOCAL = NewStrLiteral(yyDollar[1].colIdent.String()) } @@ -12609,7 +12609,7 @@ yydefault: case 944: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4712 +//line sql.y:4711 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } @@ -12617,7 +12617,7 @@ yydefault: case 945: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4716 +//line sql.y:4715 { yyLOCAL = &Default{} } @@ -12625,7 +12625,7 @@ yydefault: case 948: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4725 +//line sql.y:4724 { yyLOCAL = false } @@ -12633,7 +12633,7 @@ yydefault: case 949: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4727 +//line sql.y:4726 { yyLOCAL = true } @@ -12641,7 +12641,7 @@ yydefault: case 950: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4730 +//line sql.y:4729 { yyLOCAL = false } @@ -12649,7 +12649,7 @@ yydefault: case 951: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4732 +//line sql.y:4731 { yyLOCAL = true } @@ -12657,7 +12657,7 @@ yydefault: case 952: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4735 +//line sql.y:4734 { yyLOCAL = false } @@ -12665,7 +12665,7 @@ yydefault: case 953: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line sql.y:4737 +//line sql.y:4736 { yyLOCAL = true } @@ -12673,7 +12673,7 @@ yydefault: case 954: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Ignore -//line sql.y:4740 +//line sql.y:4739 { yyLOCAL = false } @@ -12681,33 +12681,33 @@ yydefault: case 955: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Ignore -//line sql.y:4742 +//line sql.y:4741 { yyLOCAL = true } yyVAL.union = yyLOCAL case 956: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4745 +//line sql.y:4744 { yyVAL.empty = struct{}{} } case 957: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4747 +//line sql.y:4746 { yyVAL.empty = struct{}{} } case 958: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4749 +//line sql.y:4748 { yyVAL.empty = struct{}{} } case 959: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4753 +//line sql.y:4752 { yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()} } @@ -12715,7 +12715,7 @@ yydefault: case 960: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4758 +//line sql.y:4757 { yyLOCAL = nil } @@ -12723,7 +12723,7 @@ yydefault: case 961: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:4762 +//line sql.y:4761 { yyLOCAL = yyDollar[1].exprsUnion() } @@ -12731,7 +12731,7 @@ yydefault: case 962: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4767 +//line sql.y:4766 { yyLOCAL = nil } @@ -12739,7 +12739,7 @@ yydefault: case 963: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4769 +//line sql.y:4768 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } @@ -12747,62 +12747,62 @@ yydefault: case 964: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:4773 +//line sql.y:4772 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].colIdent.String())} } yyVAL.union = yyLOCAL case 965: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4779 +//line sql.y:4778 { yyVAL.colIdent = yyDollar[1].colIdent } case 966: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4783 +//line sql.y:4782 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } case 968: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4790 +//line sql.y:4789 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } case 969: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4796 +//line sql.y:4795 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].colIdent.String())) } case 970: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4800 +//line sql.y:4799 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } case 971: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4805 +//line sql.y:4804 { yyVAL.tableIdent = NewTableIdent("") } case 972: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4809 +//line sql.y:4808 { yyVAL.tableIdent = yyDollar[1].tableIdent } case 974: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4816 +//line sql.y:4815 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } case 1382: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5248 +//line sql.y:5247 { if incNesting(yylex) { yylex.Error("max nesting level reached") @@ -12811,31 +12811,31 @@ yydefault: } case 1383: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5257 +//line sql.y:5256 { decNesting(yylex) } case 1384: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5262 +//line sql.y:5261 { skipToEnd(yylex) } case 1385: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5267 +//line sql.y:5266 { skipToEnd(yylex) } case 1386: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5271 +//line sql.y:5270 { skipToEnd(yylex) } case 1387: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5275 +//line sql.y:5274 { skipToEnd(yylex) } From f73c483e865b34d51dd8c0a01750359a1ffdf837 Mon Sep 17 00:00:00 2001 From: GuptaManan100 Date: Thu, 13 May 2021 21:27:42 +0530 Subject: [PATCH 43/63] add virtual and stored to reserved keywords Signed-off-by: GuptaManan100 --- go/vt/sqlparser/sql.go | 4838 ++++++++++++++++++++-------------------- go/vt/sqlparser/sql.y | 2 + 2 files changed, 2410 insertions(+), 2430 deletions(-) diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index 9b8b421219e..2d335faad8d 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -1050,982 +1050,1192 @@ var yyExca = [...]int{ 58, 580, -2, 592, -1, 606, - 122, 1316, + 122, 1318, -2, 84, -1, 607, - 122, 1197, + 122, 1199, -2, 85, -1, 613, - 122, 1248, + 122, 1250, -2, 942, - -1, 752, - 122, 1134, + -1, 754, + 122, 1136, -2, 939, - -1, 788, + -1, 790, 180, 38, 185, 38, -2, 254, - -1, 865, + -1, 867, 1, 385, 480, 385, -2, 118, - -1, 1106, + -1, 1108, 1, 281, 480, 281, -2, 118, - -1, 1109, + -1, 1111, 23, 137, -2, 139, - -1, 1182, + -1, 1184, 174, 243, 175, 243, -2, 332, - -1, 1191, + -1, 1193, 180, 39, 185, 39, -2, 255, - -1, 1399, + -1, 1401, 154, 974, -2, 968, - -1, 1492, + -1, 1494, 76, 66, 84, 66, -2, 70, - -1, 1513, + -1, 1515, 1, 282, 480, 282, -2, 118, - -1, 1941, + -1, 1943, 5, 835, 18, 835, 20, 835, 32, 835, 85, 835, -2, 618, - -1, 2169, + -1, 2171, 48, 910, -2, 904, } const yyPrivate = 57344 -const yyLast = 28482 +const yyLast = 28266 var yyAct = [...]int{ - 564, 2264, 2093, 1999, 2217, 2273, 1731, 2147, 1818, 1775, - 2170, 2118, 2090, 536, 83, 3, 2197, 1698, 2230, 1921, - 1922, 1007, 577, 522, 1918, 1545, 1580, 1054, 1798, 1732, - 1436, 1163, 1530, 1861, 925, 1822, 1565, 505, 1550, 755, - 1718, 1799, 1489, 1061, 1933, 1800, 1880, 1578, 1658, 165, - 137, 1393, 165, 1088, 470, 165, 611, 905, 1189, 1297, - 486, 123, 165, 1510, 1611, 1792, 1564, 1207, 876, 1385, - 165, 1552, 1091, 783, 1471, 1098, 1081, 81, 1478, 586, - 1059, 1438, 1064, 818, 1419, 1046, 33, 498, 1084, 571, - 509, 1082, 486, 943, 1196, 486, 165, 486, 789, 1362, - 1294, 1562, 759, 507, 1280, 762, 784, 1454, 1541, 763, - 796, 785, 1494, 1097, 79, 1095, 1071, 923, 786, 1302, - 100, 861, 106, 8, 493, 1020, 608, 7, 6, 78, - 1158, 1841, 1840, 1609, 1266, 1868, 1869, 2120, 1023, 1351, - 1181, 107, 1350, 167, 168, 169, 1349, 944, 1433, 1434, - 1348, 140, 101, 1347, 1531, 1346, 496, 1339, 497, 2246, - 1696, 2166, 766, 1968, 771, 2069, 572, 2143, 756, 593, - 597, 2142, 2088, 822, 821, 2089, 2272, 2227, 2267, 823, - 80, 2192, 537, 34, 2260, 1557, 2094, 108, 494, 1648, - 1396, 1597, 944, 2226, 1897, 2191, 2032, 102, 1172, 1948, - 1949, 1697, 167, 168, 169, 1947, 1555, 605, 445, 820, - 1848, 1867, 1762, 954, 1847, 1761, 1646, 34, 1763, 1504, - 777, 800, 834, 835, 921, 838, 839, 840, 841, 799, - 474, 844, 845, 846, 847, 848, 849, 850, 851, 852, - 853, 854, 855, 856, 857, 858, 612, 831, 824, 825, - 826, 102, 776, 1495, 1505, 1506, 895, 778, 954, 1099, - 84, 1100, 573, 568, 462, 567, 167, 168, 169, 1782, - 1435, 2001, 1524, 461, 549, 883, 555, 556, 553, 554, - 884, 552, 551, 550, 459, 473, 837, 779, 1554, 900, - 901, 557, 558, 896, 889, 836, 2194, 86, 87, 88, - 89, 90, 91, 950, 864, 97, 942, 883, 162, 2023, - 772, 440, 884, 35, 2021, 102, 72, 39, 40, 484, - 882, 920, 881, 456, 1340, 1341, 1342, 860, 1338, 488, - 482, 570, 468, 1286, 2156, 969, 968, 978, 979, 971, - 972, 973, 974, 975, 976, 977, 970, 2002, 950, 980, - 1622, 1620, 1621, 1256, 1844, 1823, 1050, 1579, 1612, 775, - 2266, 870, 871, 1995, 1281, 918, 775, 904, 767, 897, - 890, 1996, 1617, 770, 866, 902, 769, 768, 1624, 474, - 1625, 1627, 1626, 1856, 2083, 903, 2247, 898, 899, 843, - 71, 2003, 775, 859, 842, 1257, 1614, 1258, 912, 2139, - 914, 1581, 474, 474, 1472, 807, 798, 446, 816, 448, - 463, 815, 476, 805, 475, 452, 773, 450, 454, 464, - 455, 814, 449, 773, 460, 1881, 1618, 451, 465, 466, - 480, 479, 467, 780, 473, 458, 477, 911, 913, 1967, - 165, 1616, 165, 474, 813, 165, 949, 946, 947, 948, - 953, 955, 952, 812, 951, 811, 863, 473, 473, 810, - 1846, 945, 1556, 916, 809, 804, 1175, 817, 2277, 1883, - 2140, 486, 486, 486, 2190, 1287, 760, 2279, 1495, 760, - 2258, 792, 1615, 758, 760, 791, 798, 1860, 1295, 486, - 486, 949, 946, 947, 948, 953, 955, 952, 473, 951, - 808, 893, 1563, 595, 917, 936, 945, 1857, 806, 1195, - 1194, 599, 2195, 1778, 1771, 879, 1603, 885, 886, 887, - 888, 833, 1647, 774, 919, 909, 1291, 798, 2218, 910, - 774, 1885, 930, 1889, 827, 1884, 1975, 1882, 922, 915, - 1843, 862, 1887, 798, 1906, 1905, 797, 1699, 1701, 1904, - 1170, 1886, 801, 791, 1169, 2157, 774, 1168, 1833, 1772, - 478, 908, 802, 1292, 1888, 1890, 1166, 444, 165, 499, - 439, 2177, 1268, 1267, 1269, 1270, 1271, 1863, 471, 2052, - 803, 1774, 1862, 1946, 1769, 880, 1863, 99, 1052, 927, - 928, 1862, 1599, 472, 1855, 990, 486, 1854, 1770, 165, - 1723, 165, 165, 869, 486, 872, 1677, 798, 992, 993, - 486, 1511, 1666, 1589, 939, 1051, 1500, 1674, 937, 938, - 2275, 1758, 1075, 2276, 1008, 2274, 797, 1005, 1285, 874, - 798, 1450, 980, 791, 794, 795, 892, 760, 608, 1334, - 960, 788, 792, 1080, 906, 1303, 1700, 73, 894, 970, - 2186, 819, 980, 924, 924, 924, 1047, 1931, 1777, 1776, - 787, 1613, 94, 878, 1288, 1101, 1065, 797, 957, 832, - 958, 959, 957, 34, 940, 1022, 1025, 1027, 1029, 1030, - 1032, 1034, 1035, 797, 960, 1420, 989, 991, 960, 1026, - 1028, 1044, 1031, 1033, 1899, 1036, 1811, 969, 968, 978, - 979, 971, 972, 973, 974, 975, 976, 977, 970, 95, - 1282, 980, 1283, 2239, 1420, 1284, 1684, 1004, 1596, 1594, - 1598, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 807, - 1019, 1021, 1024, 1024, 1024, 1021, 1024, 1024, 1021, 1024, - 1037, 1038, 1039, 1040, 1041, 1042, 1043, 797, 805, 992, - 993, 865, 1049, 801, 791, 165, 34, 1659, 612, 1159, - 992, 993, 1951, 802, 907, 1304, 1455, 1456, 1167, 1773, - 797, 167, 168, 169, 1063, 1387, 1591, 791, 794, 795, - 877, 760, 1591, 1086, 71, 788, 792, 486, 1778, 1191, - 973, 974, 975, 976, 977, 970, 1365, 1200, 980, 1068, - 1595, 1204, 2068, 1275, 486, 486, 1593, 486, 2261, 486, - 486, 2067, 486, 486, 486, 486, 486, 486, 971, 972, - 973, 974, 975, 976, 977, 970, 1187, 486, 980, 959, - 957, 165, 1240, 1388, 1369, 1053, 2262, 167, 168, 169, - 1273, 1787, 1998, 1973, 1180, 1796, 960, 1253, 1367, 1368, - 1366, 2252, 958, 959, 957, 1199, 2209, 1673, 486, 2207, - 165, 1795, 1173, 1174, 1274, 2280, 1237, 1096, 2211, 2212, - 960, 1293, 1209, 2208, 1210, 165, 1212, 1214, 1560, 2253, - 1218, 1220, 1222, 1224, 1226, 598, 1276, 1165, 1263, 1261, - 1198, 165, 1651, 1652, 1653, 1260, 1259, 1251, 165, 1788, - 1245, 1272, 1242, 1201, 1178, 1197, 1197, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 486, 486, 486, 1190, - 1243, 1244, 1177, 1176, 1908, 581, 1249, 1250, 1235, 1236, - 1241, 1299, 1452, 1777, 1776, 2281, 958, 959, 957, 1305, - 1306, 2137, 1216, 165, 1901, 958, 959, 957, 1672, 1262, - 1357, 1359, 1360, 1310, 960, 2256, 1671, 2255, 1307, 603, - 1317, 1318, 1319, 960, 1358, 1311, 1797, 1313, 1314, 1315, - 1316, 2136, 1909, 1296, 1320, 600, 601, 1363, 2254, 2240, - 2238, 1386, 1238, 958, 959, 957, 777, 2236, 1335, 2109, - 1389, 2065, 958, 959, 957, 2040, 1345, 1451, 167, 168, - 169, 960, 1765, 2092, 486, 961, 167, 168, 169, 1954, - 960, 1309, 167, 168, 169, 1910, 1573, 102, 776, 167, - 168, 169, 1805, 1571, 958, 959, 957, 1793, 1642, 1607, - 1390, 1391, 1171, 1330, 1331, 1332, 1606, 1444, 486, 486, - 1397, 499, 960, 167, 168, 169, 1300, 1254, 1264, 165, - 1018, 1252, 1403, 1248, 1364, 525, 524, 527, 528, 529, - 530, 1247, 1399, 486, 526, 1398, 531, 1246, 1982, 2257, - 165, 1443, 80, 486, 1445, 1982, 2224, 165, 1008, 165, - 1982, 2184, 1057, 1060, 1457, 1982, 2178, 165, 165, 1982, - 581, 1719, 1427, 1428, 486, 2086, 581, 486, 924, 924, - 924, 1490, 1982, 2084, 1591, 581, 2050, 581, 486, 1719, - 1397, 1965, 1964, 1961, 1962, 1961, 1960, 1408, 1411, 1463, - 581, 1400, 1825, 1421, 1495, 1842, 1162, 1827, 608, 1820, - 1821, 608, 1399, 1475, 581, 1469, 35, 956, 581, 1496, - 2070, 1493, 1162, 1161, 82, 1465, 1525, 1515, 1526, 1527, - 1528, 1529, 581, 1496, 1532, 1533, 1534, 1514, 1107, 1106, - 1808, 1726, 1475, 486, 1537, 1538, 1539, 1540, 1919, 1566, - 1567, 1568, 35, 1519, 1570, 1572, 1752, 1930, 1592, 1474, - 1930, 1518, 1464, 1547, 1495, 1930, 1727, 486, 2047, 1467, - 2071, 2072, 2073, 486, 1200, 2185, 956, 1200, 1553, 1200, - 1404, 1405, 1498, 1497, 1410, 1413, 1414, 1590, 1502, 1501, - 35, 1499, 1463, 71, 1517, 1982, 1963, 1497, 1475, 1516, - 1503, 1689, 2125, 1688, 574, 1495, 1577, 1463, 1591, 1574, - 1426, 1231, 1475, 1429, 1430, 1591, 1453, 486, 1431, 1386, - 1343, 1290, 1093, 782, 1386, 1386, 781, 2216, 612, 71, - 71, 612, 1584, 1802, 1463, 1587, 2149, 1588, 2091, 2058, - 1164, 1548, 1546, 1543, 1544, 1801, 1997, 581, 1957, 1491, - 1561, 1559, 1558, 1569, 1828, 1542, 1600, 1536, 1535, 165, - 1278, 1232, 1233, 1234, 2000, 1601, 165, 71, 1192, 1582, - 1586, 165, 165, 1548, 565, 165, 800, 165, 1583, 1188, - 1160, 71, 96, 165, 799, 2074, 1197, 864, 1602, 2269, - 165, 2150, 1802, 1604, 1605, 969, 968, 978, 979, 971, - 972, 973, 974, 975, 976, 977, 970, 1934, 1935, 980, - 1228, 1557, 1610, 2265, 1980, 1979, 1978, 165, 486, 1937, - 1919, 1812, 1631, 166, 1336, 1743, 166, 1940, 1939, 166, - 1744, 1740, 2075, 2076, 487, 1745, 166, 1484, 1485, 1480, - 1483, 1484, 1485, 1481, 166, 1482, 1486, 1741, 1739, 1934, - 1935, 2249, 1742, 2225, 1637, 1638, 1911, 1229, 1230, 1640, - 1363, 1708, 1301, 1062, 2051, 1985, 487, 1717, 1641, 487, - 166, 487, 964, 1630, 967, 1716, 2133, 2251, 2171, 2173, - 981, 982, 983, 984, 985, 986, 987, 2174, 965, 966, - 963, 969, 968, 978, 979, 971, 972, 973, 974, 975, - 976, 977, 970, 2229, 2231, 980, 1668, 1480, 1483, 1484, - 1485, 1481, 165, 1482, 1486, 2199, 2202, 1645, 2168, 1289, - 165, 566, 1780, 2198, 969, 968, 978, 979, 971, 972, - 973, 974, 975, 976, 977, 970, 1706, 1364, 980, 534, - 1352, 1353, 1354, 1355, 1707, 165, 1654, 1522, 1806, 1416, - 829, 828, 2010, 1705, 1801, 1866, 165, 165, 165, 165, - 165, 591, 587, 929, 1417, 1712, 1728, 572, 165, 1835, - 1667, 1834, 165, 1055, 103, 165, 165, 588, 2123, 165, - 165, 165, 2045, 1683, 1956, 1056, 1750, 1721, 1955, 1585, - 1206, 1724, 1764, 1205, 1193, 1406, 1407, 1695, 1448, 485, - 1047, 1703, 1066, 1067, 590, 1976, 589, 1455, 1456, 1634, - 2180, 2144, 1786, 1779, 1711, 1488, 1715, 1753, 575, 576, - 1623, 1755, 1650, 578, 1714, 1722, 1720, 2237, 2235, 2234, - 2203, 610, 1734, 499, 757, 1737, 764, 1299, 486, 1783, - 1784, 2201, 2044, 165, 1767, 1746, 1981, 1751, 1735, 1736, - 165, 1738, 1756, 1575, 579, 82, 486, 2043, 1733, 1759, - 1665, 1914, 486, 573, 1719, 1663, 1664, 1200, 1553, 1768, - 2271, 2270, 486, 1678, 1785, 1675, 1789, 1790, 1791, 1076, - 1069, 2271, 1794, 2175, 1839, 1509, 1681, 1953, 1449, 574, - 80, 85, 77, 1, 2206, 165, 165, 165, 165, 165, - 1702, 457, 1432, 1803, 1830, 1045, 1809, 591, 587, 469, - 2263, 165, 165, 1813, 1814, 1815, 1180, 1837, 1804, 1265, - 1255, 2095, 2146, 588, 1988, 1829, 1399, 1086, 1836, 1398, - 1551, 790, 128, 1512, 1729, 1730, 1513, 2220, 1086, 1086, - 1086, 1086, 1086, 93, 1549, 753, 1838, 486, 584, 585, - 590, 92, 589, 1386, 1491, 793, 891, 1086, 1576, 2087, - 1781, 1086, 1523, 1824, 1858, 1113, 1111, 1112, 1110, 1115, - 1114, 1109, 1337, 483, 1864, 1487, 1879, 1865, 163, 1102, - 1070, 1877, 830, 486, 1870, 447, 1966, 1333, 1608, 453, - 988, 1878, 1713, 1760, 165, 609, 602, 1876, 1925, 2196, - 1892, 2167, 2169, 2119, 486, 1898, 2172, 2165, 2250, 2228, - 486, 486, 2179, 1920, 166, 1520, 166, 1447, 1058, 166, - 2042, 1923, 1891, 1913, 1682, 1017, 1418, 1917, 1085, 508, - 1442, 1356, 523, 165, 520, 521, 1458, 1725, 1877, 962, - 506, 500, 1077, 1479, 1477, 487, 487, 487, 1476, 1632, - 1907, 1089, 1929, 1936, 1932, 1832, 1083, 1462, 1521, 1845, - 1994, 941, 1938, 487, 487, 583, 495, 765, 1415, 2155, - 1649, 2031, 1942, 582, 1944, 1943, 1945, 61, 1928, 38, - 490, 2245, 932, 592, 32, 31, 30, 1974, 29, 28, - 23, 22, 21, 165, 20, 19, 25, 1950, 18, 17, - 16, 486, 98, 48, 45, 43, 105, 104, 46, 486, - 1733, 42, 867, 27, 165, 26, 15, 1987, 14, 13, - 12, 11, 1970, 10, 165, 1969, 9, 1958, 1959, 5, - 4, 935, 24, 1006, 2, 0, 0, 0, 165, 1989, - 1983, 165, 166, 0, 1553, 0, 1986, 0, 0, 0, - 2011, 0, 1992, 1991, 968, 978, 979, 971, 972, 973, - 974, 975, 976, 977, 970, 1971, 1972, 980, 2006, 1048, - 487, 0, 2005, 166, 0, 166, 166, 0, 487, 0, - 0, 2014, 0, 0, 487, 0, 0, 0, 0, 0, - 1924, 2019, 34, 2016, 2017, 0, 2018, 0, 0, 2020, - 0, 2022, 0, 0, 1685, 0, 0, 1984, 0, 0, - 610, 610, 610, 2008, 2009, 1086, 0, 0, 0, 0, - 0, 442, 2041, 0, 0, 2046, 0, 0, 931, 933, - 0, 489, 0, 0, 0, 1709, 1710, 1060, 0, 569, - 2055, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2035, 0, 0, 2054, 0, 0, 165, 2062, 0, 165, - 165, 165, 486, 486, 2061, 761, 2060, 0, 0, 0, - 2081, 0, 0, 2064, 0, 2066, 0, 0, 0, 0, - 0, 2096, 486, 486, 486, 978, 979, 971, 972, 973, - 974, 975, 976, 977, 970, 0, 0, 980, 2102, 969, - 968, 978, 979, 971, 972, 973, 974, 975, 976, 977, - 970, 0, 0, 980, 1733, 0, 0, 486, 486, 486, - 165, 0, 2100, 0, 0, 2112, 2114, 2115, 0, 166, - 2101, 486, 0, 486, 2108, 1073, 0, 0, 0, 486, - 0, 1923, 0, 610, 2126, 1923, 2122, 2131, 2124, 1103, - 2116, 2128, 0, 2117, 0, 0, 0, 2130, 0, 0, - 2030, 487, 0, 2132, 0, 0, 0, 2036, 2037, 2038, - 2138, 0, 486, 0, 0, 486, 0, 0, 487, 487, - 2145, 487, 0, 487, 487, 0, 487, 487, 487, 487, - 487, 487, 0, 2141, 0, 0, 0, 0, 0, 0, - 0, 487, 502, 0, 0, 166, 0, 0, 2134, 2148, - 2135, 0, 0, 0, 2164, 0, 0, 0, 0, 1923, - 0, 165, 0, 0, 0, 2176, 0, 0, 0, 0, - 486, 165, 487, 0, 166, 0, 0, 0, 2187, 2183, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, - 1422, 0, 0, 0, 0, 0, 0, 2193, 486, 0, - 2200, 0, 2204, 0, 0, 166, 486, 486, 1900, 2210, - 0, 0, 166, 2219, 0, 2213, 0, 0, 0, 0, - 0, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 487, 487, 487, 2233, 2232, 0, 0, 486, 2241, 0, - 2148, 2221, 0, 1915, 0, 2244, 0, 0, 2248, 0, - 1924, 0, 34, 0, 1924, 0, 0, 166, 0, 0, - 0, 0, 0, 0, 0, 0, 757, 0, 0, 0, - 0, 2259, 0, 0, 580, 0, 0, 0, 0, 1202, - 0, 0, 0, 1208, 1208, 2268, 1208, 0, 1208, 1208, - 0, 1217, 1208, 1208, 1208, 1208, 1208, 2278, 0, 1733, - 0, 0, 0, 0, 1202, 1202, 757, 0, 0, 0, - 0, 0, 0, 2029, 0, 2034, 0, 0, 487, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1924, 0, - 0, 0, 0, 0, 0, 0, 0, 1277, 0, 0, - 0, 0, 2181, 0, 0, 0, 0, 34, 0, 868, - 0, 873, 487, 487, 875, 0, 0, 0, 0, 0, - 0, 0, 0, 166, 969, 968, 978, 979, 971, 972, - 973, 974, 975, 976, 977, 970, 0, 487, 980, 0, - 0, 0, 0, 34, 166, 0, 0, 487, 0, 0, - 0, 166, 0, 166, 0, 610, 610, 610, 0, 0, - 0, 166, 166, 0, 0, 0, 0, 0, 487, 0, - 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 487, 0, 0, 2033, 969, 968, 978, 979, - 971, 972, 973, 974, 975, 976, 977, 970, 0, 0, - 980, 0, 1871, 0, 0, 0, 0, 0, 499, 0, - 0, 0, 0, 0, 0, 2056, 0, 0, 2057, 0, - 0, 2059, 969, 968, 978, 979, 971, 972, 973, 974, - 975, 976, 977, 970, 0, 0, 980, 487, 0, 0, - 0, 0, 0, 1392, 0, 610, 969, 968, 978, 979, - 971, 972, 973, 974, 975, 976, 977, 970, 0, 1202, - 980, 487, 0, 0, 0, 161, 0, 487, 1079, 0, - 0, 1090, 2028, 0, 0, 0, 0, 1424, 1425, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1459, 145, 0, 0, 0, 0, 0, 0, - 0, 487, 1073, 0, 0, 610, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2121, 499, 2027, - 0, 0, 0, 610, 0, 0, 610, 0, 0, 0, - 0, 0, 0, 0, 1766, 0, 0, 757, 0, 0, - 0, 0, 0, 166, 0, 0, 0, 142, 0, 143, - 166, 0, 0, 0, 0, 166, 166, 2026, 160, 166, - 0, 166, 0, 0, 0, 0, 0, 166, 0, 0, - 0, 0, 0, 0, 166, 969, 968, 978, 979, 971, - 972, 973, 974, 975, 976, 977, 970, 0, 0, 980, - 0, 0, 764, 0, 0, 0, 0, 0, 535, 0, - 0, 166, 487, 994, 995, 996, 997, 998, 999, 1000, - 1001, 1002, 1003, 0, 1108, 0, 757, 0, 0, 146, - 0, 0, 764, 0, 0, 0, 0, 0, 0, 151, - 0, 0, 969, 968, 978, 979, 971, 972, 973, 974, - 975, 976, 977, 970, 0, 0, 980, 164, 0, 0, - 443, 0, 0, 481, 0, 0, 0, 0, 0, 0, - 443, 0, 0, 0, 0, 0, 757, 0, 443, 0, - 969, 968, 978, 979, 971, 972, 973, 974, 975, 976, - 977, 970, 0, 0, 980, 596, 596, 1660, 0, 0, - 1239, 0, 0, 0, 443, 0, 166, 0, 0, 0, - 0, 0, 0, 0, 166, 0, 0, 969, 968, 978, - 979, 971, 972, 973, 974, 975, 976, 977, 970, 1279, - 0, 980, 0, 0, 0, 0, 0, 0, 0, 166, - 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, - 166, 166, 166, 166, 166, 0, 0, 0, 0, 0, - 1308, 0, 166, 0, 0, 0, 166, 1312, 0, 166, - 166, 0, 0, 166, 166, 166, 161, 1644, 1323, 1324, - 1325, 1326, 1327, 1328, 1329, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1090, 0, 145, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 487, 0, 0, 0, 0, 166, 0, 0, - 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, - 487, 0, 0, 0, 0, 0, 487, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 487, 0, 142, 0, - 143, 0, 0, 0, 0, 0, 0, 0, 0, 160, + 564, 2275, 2266, 2095, 2219, 2199, 2149, 2232, 507, 927, + 2001, 2172, 1733, 83, 3, 1582, 2120, 1777, 1700, 2092, + 536, 1924, 577, 1820, 1532, 1009, 1923, 1438, 1547, 1734, + 522, 1920, 1800, 505, 1512, 1056, 1863, 1824, 1567, 820, + 1552, 757, 1801, 1063, 1720, 1802, 1491, 1165, 137, 165, + 1935, 1395, 165, 1882, 470, 165, 1660, 1090, 1580, 1613, + 486, 1387, 165, 611, 1191, 1050, 1794, 123, 907, 785, + 165, 1554, 1093, 1100, 1299, 1066, 1084, 81, 1473, 1480, + 1440, 1083, 1061, 1421, 1086, 1048, 33, 1566, 571, 509, + 1364, 498, 486, 586, 945, 486, 165, 486, 798, 791, + 764, 608, 788, 1198, 1564, 1282, 1456, 761, 1099, 1543, + 1296, 765, 1097, 925, 1496, 786, 787, 442, 1533, 1209, + 79, 1304, 1073, 1183, 106, 140, 100, 489, 101, 863, + 1160, 1022, 8, 78, 7, 569, 6, 1611, 107, 493, + 1025, 1843, 1842, 1870, 1871, 167, 168, 169, 1353, 2122, + 1268, 1435, 1436, 1352, 1351, 1350, 1349, 1348, 167, 168, + 169, 763, 593, 597, 758, 822, 572, 496, 1698, 497, + 108, 102, 445, 1341, 2248, 773, 768, 825, 836, 837, + 946, 840, 841, 842, 843, 2168, 2071, 846, 847, 848, + 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 859, 860, 1970, 494, 605, 2145, 1398, 2144, 2090, 802, + 612, 2091, 1650, 801, 824, 823, 1559, 2274, 2229, 1424, + 462, 780, 2269, 878, 80, 102, 779, 84, 778, 461, + 2194, 2262, 826, 827, 828, 833, 2096, 1557, 1599, 946, + 459, 2228, 2193, 1899, 2034, 549, 956, 555, 556, 553, + 554, 1174, 552, 551, 550, 1764, 1949, 161, 1763, 838, + 1699, 1765, 557, 558, 86, 87, 88, 89, 90, 91, + 1850, 1869, 97, 1437, 1849, 162, 1497, 1648, 440, 456, + 1950, 1951, 103, 839, 125, 1507, 1508, 35, 468, 102, + 72, 39, 40, 1506, 1101, 145, 1102, 777, 570, 872, + 873, 897, 568, 580, 567, 956, 2158, 971, 970, 980, + 981, 973, 974, 975, 976, 977, 978, 979, 972, 1556, + 781, 982, 167, 168, 169, 1784, 135, 474, 898, 902, + 903, 124, 885, 923, 1526, 474, 952, 886, 862, 944, + 1342, 1343, 1344, 885, 2003, 884, 891, 883, 886, 142, + 2025, 143, 2023, 2196, 775, 484, 112, 113, 134, 133, + 160, 1340, 488, 446, 71, 448, 463, 1288, 476, 1052, + 475, 452, 1825, 450, 454, 464, 455, 1581, 449, 482, + 460, 866, 473, 451, 465, 466, 480, 479, 467, 1846, + 473, 458, 477, 1283, 1997, 952, 1624, 1622, 1623, 474, + 1614, 2249, 1998, 1626, 899, 1627, 2268, 1628, 900, 901, + 129, 110, 136, 117, 109, 904, 130, 131, 1258, 920, + 2004, 146, 892, 1619, 906, 905, 868, 1858, 1629, 845, + 922, 151, 118, 844, 2005, 914, 474, 916, 1616, 2141, + 165, 809, 165, 2085, 1583, 165, 121, 119, 114, 115, + 116, 120, 807, 1474, 473, 1618, 111, 818, 782, 817, + 1259, 776, 1260, 918, 816, 122, 815, 814, 813, 777, + 861, 486, 486, 486, 913, 915, 812, 1620, 1969, 951, + 948, 949, 950, 955, 957, 954, 811, 953, 806, 486, + 486, 473, 1177, 1558, 947, 800, 1617, 819, 2142, 474, + 2281, 2279, 2260, 762, 938, 870, 919, 875, 794, 1289, + 877, 762, 793, 895, 762, 774, 478, 599, 760, 1297, + 1848, 2192, 1197, 1196, 1565, 1859, 1605, 2159, 1293, 932, + 1497, 829, 1862, 865, 471, 921, 810, 138, 951, 948, + 949, 950, 955, 957, 954, 1649, 953, 808, 1977, 472, + 1701, 1703, 835, 947, 473, 1845, 800, 1908, 800, 1907, + 1906, 1172, 911, 1171, 1170, 1835, 912, 1294, 165, 2197, + 1168, 777, 2220, 769, 444, 439, 917, 99, 772, 1287, + 1601, 771, 770, 800, 2179, 929, 930, 1054, 1270, 1269, + 1271, 1272, 1273, 132, 992, 1760, 486, 882, 910, 165, + 1857, 165, 165, 1856, 486, 126, 2054, 800, 127, 1948, + 486, 1725, 1679, 608, 1668, 1053, 874, 871, 864, 994, + 995, 73, 1676, 941, 1010, 939, 1591, 940, 775, 1865, + 1502, 1865, 1883, 776, 1864, 799, 1864, 800, 1513, 1077, + 1007, 876, 793, 796, 797, 982, 762, 1082, 894, 1702, + 790, 794, 1049, 2277, 972, 908, 2278, 982, 2276, 962, + 896, 1284, 1305, 1285, 1081, 1452, 1286, 1092, 1336, 789, + 881, 1901, 887, 888, 889, 890, 1885, 2188, 821, 1933, + 1067, 1024, 1027, 1029, 1031, 1032, 1034, 1036, 1037, 1371, + 94, 1028, 1030, 924, 1033, 1035, 799, 1038, 799, 1615, + 834, 1290, 1103, 1369, 1370, 1368, 1046, 880, 1600, 139, + 144, 141, 147, 148, 149, 150, 152, 153, 154, 155, + 942, 1422, 612, 799, 1799, 156, 157, 158, 159, 803, + 793, 1813, 167, 168, 169, 776, 1389, 95, 1887, 804, + 1891, 867, 1886, 959, 1884, 961, 959, 799, 1598, 1889, + 960, 961, 959, 803, 793, 994, 995, 165, 1888, 962, + 1780, 1161, 962, 804, 1596, 994, 995, 1422, 962, 1686, + 1169, 1890, 1892, 1593, 1593, 909, 809, 799, 807, 1780, + 1773, 805, 1306, 2241, 793, 796, 797, 1953, 762, 486, + 1065, 1193, 790, 794, 1390, 1457, 1458, 1597, 1595, 1202, + 1070, 2282, 1055, 1206, 2263, 2258, 486, 486, 1277, 486, + 1203, 486, 486, 2070, 486, 486, 486, 486, 486, 486, + 1175, 1176, 1110, 2069, 879, 1774, 1975, 1275, 2211, 486, + 1189, 2209, 2264, 165, 1242, 1237, 1238, 1359, 1361, 1362, + 2213, 2214, 167, 168, 169, 2210, 1789, 1776, 1798, 1255, + 1771, 1360, 1182, 975, 976, 977, 978, 979, 972, 2254, + 486, 982, 165, 1201, 1772, 1653, 1654, 1655, 71, 1276, + 1239, 2283, 1265, 1295, 960, 961, 959, 165, 1245, 1246, + 1367, 960, 961, 959, 1251, 1252, 1797, 2255, 1274, 1562, + 1278, 1910, 962, 165, 1263, 1199, 1199, 1167, 1241, 962, + 165, 1200, 1262, 1098, 1790, 1779, 1778, 1179, 1180, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 486, 486, + 486, 1192, 1178, 598, 1779, 1778, 1211, 1281, 1212, 1261, + 1214, 1216, 1675, 1264, 1220, 1222, 1224, 1226, 1228, 1911, + 1301, 960, 961, 959, 1253, 165, 595, 1247, 1240, 1903, + 1244, 1243, 1307, 1308, 1674, 1218, 2257, 2256, 1310, 962, + 2242, 2240, 1673, 2238, 2111, 1314, 1312, 167, 168, 169, + 2067, 1767, 2042, 1319, 1320, 1321, 1325, 1326, 1327, 1328, + 1329, 1330, 1331, 1388, 1956, 1298, 1365, 1912, 1807, 960, + 961, 959, 1391, 102, 779, 603, 778, 1795, 1644, 1454, + 1609, 1173, 1347, 167, 168, 169, 486, 962, 1608, 1446, + 1092, 1302, 499, 600, 601, 1311, 1266, 1399, 1254, 1250, + 960, 961, 959, 1249, 1410, 1413, 1248, 2000, 1392, 1393, + 1423, 1332, 1333, 1334, 581, 1775, 1984, 2259, 962, 2139, + 486, 486, 973, 974, 975, 976, 977, 978, 979, 972, + 80, 165, 982, 1932, 1405, 1366, 1498, 525, 524, 527, + 528, 529, 530, 2138, 1453, 486, 526, 2094, 531, 1984, + 2226, 1401, 165, 1984, 2186, 486, 1447, 1445, 1827, 165, + 1010, 165, 1400, 1984, 2180, 1721, 1459, 1399, 1810, 165, + 165, 960, 961, 959, 1429, 1430, 486, 1984, 581, 486, + 2088, 581, 1492, 1984, 2086, 608, 1593, 581, 608, 962, + 486, 2049, 167, 168, 169, 1309, 1575, 167, 168, 169, + 1499, 1573, 1313, 1521, 1315, 1316, 1317, 1318, 1501, 1402, + 581, 1322, 167, 168, 169, 2187, 1256, 1468, 2052, 581, + 1498, 1401, 1967, 1966, 1472, 1337, 1475, 1495, 1534, 1535, + 1536, 1517, 1471, 1963, 1964, 1494, 1477, 1516, 1963, 1962, + 1721, 1467, 1465, 581, 1527, 486, 1528, 1529, 1530, 1531, + 82, 1568, 1569, 1570, 1497, 1844, 1572, 1574, 1594, 1520, + 1164, 1829, 1539, 1540, 1541, 1542, 1822, 1823, 1549, 486, + 1477, 581, 958, 581, 35, 486, 1202, 1469, 35, 1202, + 958, 1202, 1555, 2072, 1499, 1504, 1500, 35, 1503, 1592, + 1164, 1163, 1497, 1754, 612, 1109, 1108, 612, 1406, 1407, + 1984, 1497, 1412, 1415, 1416, 1519, 1518, 1921, 1403, 1404, + 1579, 1932, 1728, 1965, 1476, 1593, 1932, 1466, 1465, 486, + 1477, 1388, 1505, 1691, 2127, 1690, 1388, 1388, 1428, 1465, + 1593, 1431, 1432, 2073, 2074, 2075, 1576, 1729, 1455, 1433, + 1586, 1345, 1292, 1589, 574, 1590, 1545, 1546, 1550, 1095, + 2218, 71, 1561, 1563, 1448, 71, 1560, 784, 1571, 783, + 1602, 165, 71, 2151, 71, 1233, 802, 1477, 165, 2093, + 801, 2060, 1584, 165, 165, 1585, 1199, 165, 1603, 165, + 1550, 1588, 1604, 1166, 1548, 165, 1999, 1606, 1607, 1465, + 1959, 1830, 165, 1544, 1538, 1537, 565, 1280, 1194, 971, + 970, 980, 981, 973, 974, 975, 976, 977, 978, 979, + 972, 1190, 1162, 982, 96, 1234, 1235, 1236, 1612, 165, + 486, 71, 1804, 2076, 581, 866, 1092, 2002, 1482, 1485, + 1486, 1487, 1483, 1621, 1484, 1488, 1936, 1937, 1630, 1631, + 1803, 2152, 1635, 1559, 2271, 166, 2267, 2135, 166, 1982, + 1638, 166, 1981, 1980, 1939, 1921, 487, 1641, 166, 1661, + 1814, 1633, 1338, 1230, 1942, 1747, 166, 1486, 1487, 1365, + 2077, 2078, 971, 970, 980, 981, 973, 974, 975, 976, + 977, 978, 979, 972, 1645, 1632, 982, 1804, 487, 1745, + 1941, 487, 166, 487, 1746, 971, 970, 980, 981, 973, + 974, 975, 976, 977, 978, 979, 972, 1743, 1670, 982, + 1231, 1232, 1744, 1742, 165, 1741, 2251, 2227, 1913, 1710, + 1647, 1064, 165, 1482, 1485, 1486, 1487, 1483, 963, 1484, + 1488, 2173, 2175, 1936, 1937, 2053, 1987, 1719, 1366, 1656, + 2176, 2201, 1718, 2253, 2231, 2233, 1708, 165, 2204, 2200, + 1291, 2170, 566, 1782, 1709, 1524, 1808, 1418, 165, 165, + 165, 165, 165, 1707, 499, 1735, 831, 1730, 830, 572, + 165, 1669, 1419, 1020, 165, 1714, 1057, 165, 165, 2012, + 1803, 165, 165, 165, 1685, 1868, 931, 1752, 1058, 1837, + 1836, 103, 2125, 1723, 1766, 1958, 1957, 1726, 1049, 1697, + 1587, 1208, 1705, 1207, 1195, 1059, 1062, 2047, 1457, 1458, + 2182, 1639, 1640, 1450, 1788, 1978, 1642, 1636, 1713, 2146, + 1781, 1722, 1490, 1755, 1717, 1643, 1625, 1757, 575, 576, + 1652, 578, 1716, 1785, 1786, 1737, 1738, 2239, 1740, 1736, + 486, 1724, 1739, 1756, 1769, 165, 1301, 1787, 1748, 1791, + 1792, 1793, 165, 1753, 1758, 2237, 2236, 2205, 486, 1761, + 2203, 2046, 1983, 1577, 486, 579, 82, 1770, 2045, 1202, + 1826, 1916, 1555, 1721, 486, 1680, 1806, 2273, 2272, 2273, + 1677, 1832, 1078, 1665, 1666, 1796, 1841, 1071, 2177, 1955, + 1451, 1663, 574, 80, 85, 1664, 77, 165, 165, 165, + 165, 165, 1, 1811, 1683, 1805, 1671, 1672, 2208, 457, + 1812, 1434, 1678, 165, 165, 1681, 1682, 1047, 469, 1840, + 2265, 1839, 1267, 1688, 1182, 1689, 591, 587, 1692, 1693, + 1694, 1695, 1696, 1831, 1257, 1401, 1815, 1816, 1817, 2097, + 2148, 1838, 588, 1990, 1706, 1553, 1400, 792, 534, 486, + 128, 1514, 1515, 2222, 93, 1388, 755, 92, 1879, 591, + 587, 795, 1851, 1852, 1853, 1854, 1855, 1068, 1069, 590, + 1860, 589, 893, 1578, 2089, 588, 1783, 1525, 1092, 1861, + 1115, 1113, 1114, 1112, 1117, 486, 1881, 1866, 1116, 1111, + 1867, 1750, 1751, 1880, 1872, 1339, 165, 2037, 483, 1878, + 584, 585, 590, 1489, 589, 163, 486, 1900, 485, 1894, + 1104, 1072, 486, 486, 832, 1879, 1893, 1735, 447, 1968, + 1335, 1922, 1610, 453, 990, 1715, 1762, 609, 602, 1919, + 1925, 1927, 2198, 2169, 2171, 165, 166, 2121, 166, 2174, + 610, 166, 2167, 759, 2252, 766, 971, 970, 980, 981, + 973, 974, 975, 976, 977, 978, 979, 972, 1931, 2230, + 982, 1914, 2181, 1522, 1449, 1060, 2044, 487, 487, 487, + 1940, 1915, 1684, 1019, 1420, 1087, 508, 1444, 1944, 1358, + 1946, 1945, 1947, 523, 520, 487, 487, 521, 1460, 1976, + 1727, 964, 506, 500, 1079, 165, 1481, 1952, 1479, 1478, + 1960, 1961, 1634, 486, 1909, 1091, 1938, 1303, 1934, 1085, + 1464, 486, 1523, 1847, 1986, 1996, 165, 943, 583, 495, + 767, 1417, 2157, 1973, 1974, 1972, 165, 1971, 1651, 2033, + 1991, 582, 1930, 61, 1989, 38, 490, 2247, 934, 592, + 165, 32, 31, 165, 1985, 30, 29, 28, 1555, 23, + 1988, 1993, 2013, 22, 21, 20, 1994, 19, 25, 18, + 1979, 17, 16, 98, 166, 1876, 1877, 48, 45, 43, + 105, 104, 46, 42, 2008, 869, 27, 2007, 26, 15, + 14, 1992, 13, 2016, 12, 1354, 1355, 1356, 1357, 11, + 2031, 1995, 487, 10, 9, 166, 2021, 166, 166, 5, + 487, 4, 937, 24, 1008, 2006, 487, 2, 2009, 0, + 0, 2018, 2019, 0, 2020, 0, 2043, 2022, 0, 2024, + 0, 1735, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1928, 0, 0, 2048, 0, 0, 0, 0, 2036, + 1408, 1409, 2057, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1943, 0, 0, 2056, 0, 0, 165, 0, + 0, 165, 165, 165, 486, 486, 2064, 2066, 2062, 2068, + 2063, 0, 0, 0, 0, 0, 0, 0, 499, 0, + 0, 0, 0, 2098, 486, 486, 486, 2083, 971, 970, + 980, 981, 973, 974, 975, 976, 977, 978, 979, 972, + 2104, 0, 982, 971, 970, 980, 981, 973, 974, 975, + 976, 977, 978, 979, 972, 0, 0, 982, 0, 486, + 486, 486, 165, 2079, 2103, 0, 2080, 2081, 2082, 0, + 1511, 0, 2102, 486, 0, 486, 2110, 0, 0, 0, + 0, 486, 2114, 2116, 2117, 2128, 0, 2119, 0, 2118, + 1925, 2126, 2124, 166, 1925, 0, 0, 0, 0, 2132, + 2130, 0, 0, 0, 2133, 2134, 0, 0, 0, 0, + 2010, 2011, 0, 0, 486, 0, 0, 486, 2015, 2140, + 0, 2136, 2017, 2137, 2143, 487, 2150, 0, 0, 1551, + 0, 0, 0, 2026, 2027, 0, 0, 2147, 0, 0, + 0, 0, 487, 487, 0, 487, 0, 487, 487, 2041, + 487, 487, 487, 487, 487, 487, 0, 2166, 0, 610, + 610, 610, 0, 165, 0, 487, 2050, 2051, 1925, 166, + 2055, 0, 486, 165, 2178, 0, 0, 933, 935, 0, + 2185, 0, 0, 971, 970, 980, 981, 973, 974, 975, + 976, 977, 978, 979, 972, 2189, 487, 982, 166, 0, + 486, 0, 0, 2202, 2195, 0, 1735, 0, 486, 486, + 2206, 0, 0, 166, 2221, 0, 2215, 2150, 2223, 2212, + 0, 0, 0, 0, 2235, 2234, 0, 0, 2184, 166, + 2087, 0, 0, 0, 0, 0, 166, 0, 2190, 486, + 2243, 0, 0, 0, 0, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 487, 487, 487, 2250, 0, 0, + 0, 0, 2246, 970, 980, 981, 973, 974, 975, 976, + 977, 978, 979, 972, 2261, 0, 982, 0, 2115, 161, + 0, 166, 0, 0, 1075, 0, 0, 0, 2270, 0, + 0, 0, 610, 0, 0, 2280, 0, 0, 1105, 0, + 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, + 966, 0, 969, 0, 0, 0, 0, 145, 983, 984, + 985, 986, 987, 988, 989, 0, 967, 968, 965, 971, + 970, 980, 981, 973, 974, 975, 976, 977, 978, 979, + 972, 0, 487, 982, 0, 2153, 2154, 2155, 2156, 2030, + 2160, 0, 2161, 2162, 2163, 0, 2164, 2165, 1768, 0, + 0, 0, 0, 0, 0, 2029, 0, 0, 0, 0, + 0, 142, 0, 143, 0, 0, 487, 487, 0, 0, + 0, 0, 160, 0, 0, 0, 0, 166, 0, 1687, + 0, 0, 0, 0, 0, 0, 0, 2191, 0, 0, + 0, 487, 0, 0, 0, 0, 0, 0, 166, 0, + 0, 487, 0, 0, 0, 166, 0, 166, 0, 2028, + 1711, 1712, 1062, 0, 0, 166, 166, 0, 0, 0, + 0, 0, 487, 0, 0, 487, 0, 0, 0, 0, + 0, 0, 0, 146, 0, 0, 487, 0, 0, 0, + 0, 0, 0, 151, 0, 0, 2244, 2245, 0, 0, + 0, 0, 971, 970, 980, 981, 973, 974, 975, 976, + 977, 978, 979, 972, 0, 0, 982, 759, 971, 970, + 980, 981, 973, 974, 975, 976, 977, 978, 979, 972, + 1204, 0, 982, 0, 1210, 1210, 0, 1210, 0, 1210, + 1210, 487, 1219, 1210, 1210, 1210, 1210, 1210, 0, 0, + 0, 0, 0, 0, 0, 1204, 1204, 759, 0, 161, + 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, + 0, 487, 971, 970, 980, 981, 973, 974, 975, 976, + 977, 978, 979, 972, 103, 0, 982, 0, 1279, 0, + 0, 0, 0, 0, 0, 0, 1873, 145, 0, 138, + 0, 0, 0, 0, 0, 502, 0, 0, 0, 0, + 0, 1662, 0, 0, 0, 487, 971, 970, 980, 981, + 973, 974, 975, 976, 977, 978, 979, 972, 0, 0, + 982, 971, 970, 980, 981, 973, 974, 975, 976, 977, + 978, 979, 972, 0, 0, 982, 610, 610, 610, 0, + 0, 142, 0, 143, 0, 0, 0, 166, 0, 0, + 0, 0, 160, 0, 166, 0, 0, 0, 0, 166, + 166, 0, 0, 166, 0, 166, 0, 0, 0, 0, + 0, 166, 0, 0, 0, 0, 0, 0, 166, 0, + 0, 0, 0, 1902, 980, 981, 973, 974, 975, 976, + 977, 978, 979, 972, 0, 0, 982, 0, 0, 0, + 0, 0, 0, 0, 0, 166, 487, 0, 0, 0, + 0, 0, 0, 146, 0, 0, 0, 0, 1917, 0, + 0, 0, 0, 151, 1394, 0, 610, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1204, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1426, 1427, + 0, 139, 144, 141, 147, 148, 149, 150, 152, 153, + 154, 155, 0, 0, 0, 0, 0, 156, 157, 158, + 159, 0, 0, 1461, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1075, 0, 0, 610, 0, 0, 0, + 166, 0, 0, 0, 0, 0, 0, 0, 166, 0, + 0, 0, 0, 0, 610, 0, 0, 610, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 759, 138, + 0, 0, 535, 166, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 166, 166, 166, 166, 166, 0, + 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, + 166, 0, 0, 166, 166, 0, 0, 166, 166, 166, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 164, 0, 766, 443, 0, 0, 481, 0, 0, + 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, + 2035, 0, 443, 0, 0, 0, 0, 759, 0, 0, + 0, 1132, 0, 766, 0, 0, 0, 0, 0, 596, + 596, 0, 0, 499, 0, 0, 487, 0, 443, 0, + 2058, 166, 0, 2059, 0, 0, 2061, 0, 166, 0, + 0, 537, 34, 0, 487, 0, 0, 0, 0, 0, + 487, 0, 0, 0, 0, 0, 0, 759, 0, 0, + 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, + 0, 0, 0, 166, 166, 166, 166, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, - 166, 166, 166, 166, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 166, 166, 0, 0, 0, - 0, 0, 0, 0, 1202, 0, 0, 139, 144, 141, - 147, 148, 149, 150, 152, 153, 154, 155, 0, 0, - 0, 0, 0, 156, 157, 158, 159, 0, 0, 1466, - 146, 487, 0, 0, 0, 0, 1470, 0, 1473, 0, - 151, 0, 0, 0, 0, 0, 0, 1492, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, - 0, 0, 0, 0, 0, 0, 0, 1807, 487, 0, - 0, 0, 0, 0, 487, 487, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1819, 0, 0, 0, 1202, - 0, 1826, 0, 0, 0, 0, 0, 166, 0, 610, - 0, 1831, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, - 443, 0, 0, 443, 0, 0, 138, 0, 0, 0, - 0, 0, 0, 0, 0, 1361, 0, 0, 1370, 1371, - 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, - 1382, 1383, 1384, 0, 0, 0, 0, 166, 0, 0, + 166, 139, 144, 141, 147, 148, 149, 150, 152, 153, + 154, 155, 0, 0, 0, 0, 0, 156, 157, 158, + 159, 573, 0, 0, 0, 0, 0, 0, 1120, 0, 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, - 0, 0, 0, 487, 0, 0, 610, 0, 166, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, - 0, 0, 0, 0, 0, 0, 0, 1423, 0, 0, - 0, 0, 166, 0, 0, 166, 0, 0, 0, 0, - 0, 0, 1208, 0, 0, 0, 0, 0, 1090, 0, - 0, 0, 0, 0, 0, 1619, 0, 1401, 1402, 0, - 1628, 1629, 0, 610, 1633, 0, 1202, 0, 0, 1927, - 1208, 0, 1636, 0, 0, 0, 443, 0, 0, 1639, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 596, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1446, 0, 0, 1643, 443, 0, 443, - 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2123, 499, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1646, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 487, 1133, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 487, 0, 0, 0, 0, 0, 487, 487, + 0, 0, 0, 0, 0, 0, 996, 997, 998, 999, + 1000, 1001, 1002, 1003, 1004, 1005, 0, 0, 0, 0, + 0, 166, 0, 1146, 1149, 1150, 1151, 1152, 1153, 1154, + 0, 1155, 1156, 1157, 1158, 1159, 1134, 1135, 1136, 1137, + 1118, 1119, 1147, 0, 1121, 0, 1122, 1123, 1124, 1125, + 1126, 1127, 1128, 1129, 1130, 1131, 1138, 1139, 1140, 1141, + 1142, 1143, 1144, 1145, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 166, 0, 0, 0, 0, 0, 0, 0, 487, + 0, 0, 0, 0, 0, 1204, 0, 487, 0, 0, + 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 166, 0, 0, 166, + 0, 1148, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 443, 0, 443, 0, 0, 443, 1809, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1821, 0, 0, 0, + 1204, 0, 1828, 0, 0, 0, 0, 0, 0, 0, + 610, 0, 1833, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 166, 0, 0, 166, 166, 166, + 487, 487, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 487, 487, 487, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 610, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 443, 0, 0, 0, 0, 487, 487, 487, 166, 0, + 0, 0, 926, 926, 926, 0, 596, 0, 0, 487, + 0, 487, 0, 1210, 0, 0, 0, 487, 0, 0, + 0, 443, 34, 443, 1094, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 610, 991, 993, 1204, 0, 0, + 1929, 1210, 0, 0, 0, 0, 0, 0, 0, 0, + 487, 0, 0, 487, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1006, 0, 0, 0, + 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 0, 1021, + 1023, 1026, 1026, 1026, 1023, 1026, 1026, 1023, 1026, 1039, + 1040, 1041, 1042, 1043, 1044, 1045, 0, 0, 0, 166, + 0, 1051, 0, 0, 0, 34, 0, 0, 487, 166, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 759, 1088, 0, 1204, 0, 487, 0, 0, 1821, + 0, 0, 0, 0, 487, 487, 0, 0, 0, 0, + 1363, 0, 0, 1372, 1373, 1374, 1375, 1376, 1377, 1378, + 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 0, 0, + 0, 0, 0, 0, 0, 487, 0, 0, 0, 443, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1425, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1205, 0, 161, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1819, 0, 0, + 0, 1204, 0, 0, 0, 0, 0, 0, 0, 1205, + 1205, 103, 0, 125, 0, 443, 0, 0, 0, 0, + 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, + 0, 0, 1821, 2084, 0, 135, 0, 0, 0, 1300, + 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2099, 2100, 2101, 443, 0, 0, 142, 0, + 143, 0, 443, 0, 0, 1185, 1186, 134, 133, 160, + 0, 1323, 1324, 443, 443, 443, 443, 443, 443, 443, + 0, 0, 0, 0, 0, 0, 0, 1821, 1821, 1821, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2129, 0, 2131, 0, 0, 0, 443, 0, 1821, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, + 1187, 136, 0, 1184, 0, 130, 131, 0, 0, 0, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 151, 0, 1821, 0, 0, 610, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 36, 37, 72, + 39, 40, 0, 0, 0, 0, 0, 0, 0, 596, + 1300, 0, 0, 0, 596, 596, 76, 0, 596, 596, + 596, 41, 67, 68, 1205, 65, 69, 0, 0, 926, + 926, 926, 0, 0, 66, 0, 0, 0, 0, 0, + 1821, 0, 0, 0, 596, 596, 596, 596, 596, 0, + 0, 0, 0, 1442, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 54, 0, 0, 1204, 0, 2207, 0, + 0, 0, 0, 71, 443, 0, 610, 610, 0, 0, + 1300, 443, 0, 443, 0, 0, 138, 0, 0, 0, + 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1821, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1657, 1658, 1659, 0, 0, + 0, 0, 132, 0, 0, 0, 0, 44, 47, 50, + 49, 52, 0, 64, 126, 0, 70, 127, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 75, 74, 0, 0, 62, 63, 51, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1493, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 55, 56, 0, 57, 58, + 59, 60, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 144, 141, 147, 148, 149, 150, 152, 153, 154, 155, 0, 0, 0, 0, 0, 156, 157, 158, 159, 0, 0, - 166, 0, 0, 166, 166, 166, 487, 487, 0, 0, - 757, 0, 0, 1202, 0, 0, 0, 0, 1819, 0, - 0, 0, 0, 0, 0, 0, 487, 487, 487, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 487, 487, 487, 166, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 487, 0, 487, 0, 0, - 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 443, 0, 1754, 487, 0, 0, 487, - 1202, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1203, 0, - 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, - 0, 1819, 2082, 0, 487, 166, 0, 0, 0, 0, - 0, 0, 1810, 1203, 1203, 0, 0, 0, 0, 443, - 0, 2097, 2098, 2099, 0, 0, 0, 0, 0, 0, - 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, - 487, 487, 0, 0, 0, 0, 0, 0, 443, 0, - 1655, 1656, 1657, 0, 0, 0, 1819, 1819, 1819, 0, - 0, 0, 0, 1298, 1849, 1850, 1851, 1852, 1853, 0, - 2127, 487, 2129, 0, 0, 0, 0, 0, 1819, 443, - 1090, 1859, 0, 0, 0, 0, 443, 0, 0, 0, - 0, 0, 0, 0, 0, 1321, 1322, 443, 443, 443, - 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, - 0, 1819, 0, 0, 610, 0, 0, 0, 0, 0, - 1661, 0, 0, 0, 1662, 0, 0, 0, 0, 0, - 0, 443, 0, 0, 0, 1669, 1670, 0, 0, 0, - 0, 1676, 0, 0, 1679, 1680, 0, 0, 0, 0, - 0, 0, 1686, 0, 1687, 0, 0, 1690, 1691, 1692, - 1693, 1694, 0, 1912, 0, 0, 0, 0, 0, 1819, - 0, 0, 0, 1704, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 596, 1298, 1202, 0, 2205, 596, 596, - 0, 0, 596, 596, 596, 610, 610, 0, 1203, 0, - 0, 0, 0, 35, 36, 37, 72, 39, 40, 0, - 1748, 1749, 0, 0, 0, 0, 0, 0, 596, 596, - 596, 596, 596, 76, 0, 0, 1819, 1440, 41, 67, - 68, 0, 65, 69, 0, 0, 0, 0, 0, 0, - 0, 66, 0, 0, 0, 0, 0, 0, 443, 0, - 0, 0, 1977, 0, 1298, 443, 0, 443, 0, 0, - 0, 0, 0, 0, 0, 443, 443, 0, 0, 0, - 54, 0, 0, 1990, 0, 0, 0, 0, 0, 0, - 71, 0, 0, 1993, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2004, 0, 0, - 2007, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1872, 1873, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1893, 1894, 0, - 1895, 1896, 0, 0, 44, 47, 50, 49, 52, 0, - 64, 1902, 1903, 70, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1874, 1875, 53, 75, 74, 0, - 0, 62, 63, 51, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1817, 2077, 0, 0, 2078, 2079, - 2080, 0, 0, 0, 0, 0, 0, 0, 103, 0, - 125, 0, 55, 56, 0, 57, 58, 59, 60, 0, - 0, 145, 0, 0, 1952, 0, 0, 0, 0, 0, - 1926, 0, 0, 0, 0, 0, 0, 443, 0, 0, - 0, 0, 0, 0, 443, 0, 0, 0, 0, 443, - 443, 1941, 135, 443, 0, 1635, 0, 124, 0, 0, - 0, 443, 0, 0, 0, 0, 0, 0, 443, 0, - 0, 0, 0, 0, 0, 142, 0, 143, 0, 0, - 0, 0, 1183, 1184, 134, 133, 160, 0, 0, 0, + 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, + 443, 0, 0, 0, 0, 443, 443, 0, 0, 443, + 0, 1637, 0, 0, 0, 0, 0, 443, 0, 0, + 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, + 596, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 596, 0, 0, 0, 0, 0, 0, 1874, 1875, 0, + 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, + 0, 0, 1895, 1896, 1442, 1897, 1898, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1904, 1905, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 596, 443, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1205, + 443, 443, 443, 443, 443, 0, 0, 0, 0, 0, + 0, 0, 1749, 0, 0, 0, 443, 0, 0, 443, + 443, 0, 0, 443, 1759, 1300, 0, 0, 0, 0, + 0, 1667, 0, 0, 573, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1954, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1704, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, + 0, 0, 0, 0, 1818, 0, 0, 0, 1088, 0, + 0, 0, 0, 0, 1205, 1731, 1732, 0, 0, 1088, + 1088, 1088, 1088, 1088, 1300, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1493, 0, 0, 1088, 0, + 0, 0, 1088, 0, 0, 0, 0, 0, 0, 443, + 443, 443, 443, 443, 0, 0, 0, 161, 0, 0, + 0, 0, 0, 0, 0, 443, 443, 0, 1181, 2014, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 103, 0, 125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 145, 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, 135, 0, 0, 0, + 0, 124, 0, 0, 0, 0, 1834, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 443, 142, + 0, 143, 0, 0, 0, 2065, 1185, 1186, 134, 133, + 160, 1205, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 129, 1187, 136, 0, 1184, 0, 130, 131, 0, 0, + 0, 146, 0, 0, 2105, 2106, 2107, 2108, 2109, 0, + 0, 151, 2112, 2113, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1205, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, + 0, 1926, 0, 34, 0, 0, 0, 0, 443, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 443, 0, 0, 443, 1088, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1205, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 126, 0, 0, 127, 0, + 443, 0, 0, 443, 443, 443, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2032, 0, 0, 0, 0, 0, 0, 2038, 2039, + 2040, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1442, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, + 144, 141, 147, 148, 149, 150, 152, 153, 154, 155, + 0, 0, 0, 0, 0, 156, 157, 158, 159, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, + 0, 1926, 0, 34, 0, 1926, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1205, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1926, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2183, 0, 0, 0, 0, 34, 0, + 0, 0, 0, 0, 737, 723, 0, 0, 672, 740, + 642, 660, 750, 663, 666, 706, 621, 685, 314, 657, + 0, 646, 617, 653, 618, 644, 674, 223, 678, 641, + 725, 688, 739, 272, 34, 623, 647, 328, 662, 176, + 708, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 746, 276, 695, 0, 375, + 299, 0, 0, 0, 676, 729, 683, 719, 671, 707, + 631, 694, 741, 658, 703, 742, 262, 207, 175, 311, + 376, 237, 0, 0, 0, 167, 168, 169, 0, 2224, + 2225, 0, 0, 0, 0, 0, 198, 0, 205, 700, + 736, 655, 702, 219, 260, 225, 218, 391, 747, 728, + 705, 753, 616, 697, 0, 619, 622, 749, 732, 650, + 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, + 716, 669, 0, 0, 0, 0, 0, 0, 0, 0, + 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, + 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, + 0, 614, 245, 624, 300, 0, 721, 731, 670, 423, + 735, 668, 667, 738, 712, 628, 727, 661, 271, 626, + 268, 171, 187, 0, 659, 310, 349, 355, 726, 645, + 654, 210, 652, 353, 324, 408, 194, 235, 346, 329, + 351, 692, 710, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 928, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 714, 752, 323, 354, 200, 410, 374, 635, + 639, 633, 634, 686, 687, 636, 743, 744, 745, 718, + 629, 0, 637, 638, 0, 724, 733, 734, 691, 170, + 184, 274, 748, 343, 238, 436, 417, 413, 615, 632, + 216, 643, 0, 0, 656, 664, 665, 677, 679, 680, + 681, 682, 690, 698, 699, 701, 709, 711, 713, 715, + 720, 730, 751, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 689, 696, 284, 232, 249, 259, + 704, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 737, + 723, 0, 0, 672, 740, 642, 660, 750, 663, 666, + 706, 621, 685, 314, 657, 0, 646, 617, 653, 618, + 644, 674, 223, 678, 641, 725, 688, 739, 272, 0, + 623, 647, 328, 662, 176, 708, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 746, 276, 695, 0, 375, 299, 0, 0, 0, 676, + 729, 683, 719, 671, 707, 631, 694, 741, 658, 703, + 742, 262, 207, 175, 311, 376, 237, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 700, 736, 655, 702, 219, 260, + 225, 218, 391, 747, 728, 705, 753, 616, 697, 0, + 619, 622, 749, 732, 650, 651, 0, 0, 0, 0, + 0, 0, 0, 675, 684, 716, 669, 0, 0, 0, + 0, 0, 0, 1918, 0, 648, 0, 693, 0, 0, + 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, + 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, + 0, 721, 731, 670, 423, 735, 668, 667, 738, 712, + 628, 727, 661, 271, 626, 268, 171, 187, 0, 659, + 310, 349, 355, 726, 645, 654, 210, 652, 353, 324, + 408, 194, 235, 346, 329, 351, 692, 710, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 928, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 640, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 722, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 714, 752, 323, + 354, 200, 410, 374, 635, 639, 633, 634, 686, 687, + 636, 743, 744, 745, 718, 629, 0, 637, 638, 0, + 724, 733, 734, 691, 170, 184, 274, 748, 343, 238, + 436, 417, 413, 615, 632, 216, 643, 0, 0, 656, + 664, 665, 677, 679, 680, 681, 682, 690, 698, 699, + 701, 709, 711, 713, 715, 720, 730, 751, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 689, + 696, 284, 232, 249, 259, 704, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 737, 723, 0, 0, 672, 740, + 642, 660, 750, 663, 666, 706, 621, 685, 314, 657, + 0, 646, 617, 653, 618, 644, 674, 223, 678, 641, + 725, 688, 739, 272, 0, 623, 647, 328, 662, 176, + 708, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 746, 276, 695, 0, 375, + 299, 0, 0, 0, 676, 729, 683, 719, 671, 707, + 631, 694, 741, 658, 703, 742, 262, 207, 175, 311, + 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 700, + 736, 655, 702, 219, 260, 225, 218, 391, 747, 728, + 705, 753, 616, 697, 0, 619, 622, 749, 732, 650, + 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, + 716, 669, 0, 0, 0, 0, 0, 0, 1760, 0, + 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, + 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, + 0, 614, 245, 624, 300, 0, 721, 731, 670, 423, + 735, 668, 667, 738, 712, 628, 727, 661, 271, 626, + 268, 171, 187, 0, 659, 310, 349, 355, 726, 645, + 654, 210, 652, 353, 324, 408, 194, 235, 346, 329, + 351, 692, 710, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 928, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 714, 752, 323, 354, 200, 410, 374, 635, + 639, 633, 634, 686, 687, 636, 743, 744, 745, 718, + 629, 0, 637, 638, 0, 724, 733, 734, 691, 170, + 184, 274, 748, 343, 238, 436, 417, 413, 615, 632, + 216, 643, 0, 0, 656, 664, 665, 677, 679, 680, + 681, 682, 690, 698, 699, 701, 709, 711, 713, 715, + 720, 730, 751, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 689, 696, 284, 232, 249, 259, + 704, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 737, + 723, 0, 0, 672, 740, 642, 660, 750, 663, 666, + 706, 621, 685, 314, 657, 0, 646, 617, 653, 618, + 644, 674, 223, 678, 641, 725, 688, 739, 272, 0, + 623, 647, 328, 662, 176, 708, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 746, 276, 695, 0, 375, 299, 0, 0, 0, 676, + 729, 683, 719, 671, 707, 631, 694, 741, 658, 703, + 742, 262, 207, 175, 311, 376, 237, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 700, 736, 655, 702, 219, 260, + 225, 218, 391, 747, 728, 705, 753, 616, 697, 0, + 619, 622, 749, 732, 650, 651, 0, 0, 0, 0, + 0, 0, 0, 675, 684, 716, 669, 0, 0, 0, + 0, 0, 0, 1470, 0, 648, 0, 693, 0, 0, + 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, + 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, + 0, 721, 731, 670, 423, 735, 668, 667, 738, 712, + 628, 727, 661, 271, 626, 268, 171, 187, 0, 659, + 310, 349, 355, 726, 645, 654, 210, 652, 353, 324, + 408, 194, 235, 346, 329, 351, 692, 710, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 928, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 640, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 722, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 714, 752, 323, + 354, 200, 410, 374, 635, 639, 633, 634, 686, 687, + 636, 743, 744, 745, 718, 629, 0, 637, 638, 0, + 724, 733, 734, 691, 170, 184, 274, 748, 343, 238, + 436, 417, 413, 615, 632, 216, 643, 0, 0, 656, + 664, 665, 677, 679, 680, 681, 682, 690, 698, 699, + 701, 709, 711, 713, 715, 720, 730, 751, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 689, + 696, 284, 232, 249, 259, 704, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 737, 723, 0, 0, 672, 740, + 642, 660, 750, 663, 666, 706, 621, 685, 314, 657, + 0, 646, 617, 653, 618, 644, 674, 223, 678, 641, + 725, 688, 739, 272, 0, 623, 647, 328, 662, 176, + 708, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 746, 276, 695, 0, 375, + 299, 0, 0, 0, 676, 729, 683, 719, 671, 707, + 631, 694, 741, 658, 703, 742, 262, 207, 175, 311, + 376, 237, 71, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 700, + 736, 655, 702, 219, 260, 225, 218, 391, 747, 728, + 705, 753, 616, 697, 0, 619, 622, 749, 732, 650, + 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, + 716, 669, 0, 0, 0, 0, 0, 0, 0, 0, + 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, + 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, + 0, 614, 245, 624, 300, 0, 721, 731, 670, 423, + 735, 668, 667, 738, 712, 628, 727, 661, 271, 626, + 268, 171, 187, 0, 659, 310, 349, 355, 726, 645, + 654, 210, 652, 353, 324, 408, 194, 235, 346, 329, + 351, 692, 710, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 928, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 714, 752, 323, 354, 200, 410, 374, 635, + 639, 633, 634, 686, 687, 636, 743, 744, 745, 718, + 629, 0, 637, 638, 0, 724, 733, 734, 691, 170, + 184, 274, 748, 343, 238, 436, 417, 413, 615, 632, + 216, 643, 0, 0, 656, 664, 665, 677, 679, 680, + 681, 682, 690, 698, 699, 701, 709, 711, 713, 715, + 720, 730, 751, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 689, 696, 284, 232, 249, 259, + 704, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 737, + 723, 0, 0, 672, 740, 642, 660, 750, 663, 666, + 706, 621, 685, 314, 657, 0, 646, 617, 653, 618, + 644, 674, 223, 678, 641, 725, 688, 739, 272, 0, + 623, 647, 328, 662, 176, 708, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 746, 276, 695, 0, 375, 299, 0, 0, 0, 676, + 729, 683, 719, 671, 707, 631, 694, 741, 658, 703, + 742, 262, 207, 175, 311, 376, 237, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 700, 736, 655, 702, 219, 260, + 225, 218, 391, 747, 728, 705, 753, 616, 697, 0, + 619, 622, 749, 732, 650, 651, 0, 0, 0, 0, + 0, 0, 0, 675, 684, 716, 669, 0, 0, 0, + 0, 0, 0, 0, 0, 648, 0, 693, 0, 0, + 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, + 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, + 0, 721, 731, 670, 423, 735, 668, 667, 738, 712, + 628, 727, 661, 271, 626, 268, 171, 187, 0, 659, + 310, 349, 355, 726, 645, 654, 210, 652, 353, 324, + 408, 194, 235, 346, 329, 351, 692, 710, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 928, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 640, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 722, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 714, 752, 323, + 354, 200, 410, 374, 635, 639, 633, 634, 686, 687, + 636, 743, 744, 745, 718, 629, 0, 637, 638, 0, + 724, 733, 734, 691, 170, 184, 274, 748, 343, 238, + 436, 417, 413, 615, 632, 216, 643, 0, 0, 656, + 664, 665, 677, 679, 680, 681, 682, 690, 698, 699, + 701, 709, 711, 713, 715, 720, 730, 751, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 689, + 696, 284, 232, 249, 259, 704, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 737, 723, 0, 0, 672, 740, + 642, 660, 750, 663, 666, 706, 621, 685, 314, 657, + 0, 646, 617, 653, 618, 644, 674, 223, 678, 641, + 725, 688, 739, 272, 0, 623, 647, 328, 662, 176, + 708, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 746, 276, 695, 0, 375, + 299, 0, 0, 0, 676, 729, 683, 719, 671, 707, + 631, 694, 741, 658, 703, 742, 262, 207, 175, 311, + 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 700, + 736, 655, 702, 219, 260, 225, 218, 391, 747, 728, + 705, 753, 616, 697, 0, 619, 622, 749, 732, 650, + 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, + 716, 669, 0, 0, 0, 0, 0, 0, 0, 0, + 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, + 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, + 0, 614, 245, 624, 300, 0, 721, 731, 670, 423, + 735, 668, 667, 738, 712, 628, 727, 661, 271, 626, + 268, 171, 187, 0, 659, 310, 349, 355, 726, 645, + 654, 210, 652, 353, 324, 408, 194, 235, 346, 329, + 351, 692, 710, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 625, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 613, 754, 607, 606, + 269, 278, 714, 752, 323, 354, 200, 410, 374, 635, + 639, 633, 634, 686, 687, 636, 743, 744, 745, 718, + 629, 0, 637, 638, 0, 724, 733, 734, 691, 170, + 184, 274, 748, 343, 238, 436, 417, 413, 615, 632, + 216, 643, 0, 0, 656, 664, 665, 677, 679, 680, + 681, 682, 690, 698, 699, 701, 709, 711, 713, 715, + 720, 730, 751, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 689, 696, 284, 232, 249, 259, + 704, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 737, + 723, 0, 0, 672, 740, 642, 660, 750, 663, 666, + 706, 621, 685, 314, 657, 0, 646, 617, 653, 618, + 644, 674, 223, 678, 641, 725, 688, 739, 272, 0, + 623, 647, 328, 662, 176, 708, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 746, 276, 695, 0, 375, 299, 0, 0, 0, 676, + 729, 683, 719, 671, 707, 631, 694, 741, 658, 703, + 742, 262, 207, 175, 311, 376, 237, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 700, 736, 655, 702, 219, 260, + 225, 218, 391, 747, 728, 705, 753, 616, 697, 0, + 619, 622, 749, 732, 650, 651, 0, 0, 0, 0, + 0, 0, 0, 675, 684, 716, 669, 0, 0, 0, + 0, 0, 0, 0, 0, 648, 0, 693, 0, 0, + 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, + 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, + 0, 721, 731, 670, 423, 735, 668, 667, 738, 712, + 628, 727, 661, 271, 626, 268, 171, 187, 0, 659, + 310, 349, 355, 726, 645, 654, 210, 652, 353, 324, + 408, 194, 235, 346, 329, 351, 692, 710, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 1096, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 625, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 640, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 722, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 613, 754, 607, 606, 269, 278, 714, 752, 323, + 354, 200, 410, 374, 635, 639, 633, 634, 686, 687, + 636, 743, 744, 745, 718, 629, 0, 637, 638, 0, + 724, 733, 734, 691, 170, 184, 274, 748, 343, 238, + 436, 417, 413, 615, 632, 216, 643, 0, 0, 656, + 664, 665, 677, 679, 680, 681, 682, 690, 698, 699, + 701, 709, 711, 713, 715, 720, 730, 751, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 689, + 696, 284, 232, 249, 259, 704, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 737, 723, 0, 0, 672, 740, + 642, 660, 750, 663, 666, 706, 621, 685, 314, 657, + 0, 646, 617, 653, 618, 644, 674, 223, 678, 641, + 725, 688, 739, 272, 0, 623, 647, 328, 662, 176, + 708, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 746, 276, 695, 0, 375, + 299, 0, 0, 0, 676, 729, 683, 719, 671, 707, + 631, 694, 741, 658, 703, 742, 262, 207, 175, 311, + 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 700, + 736, 655, 702, 219, 260, 225, 218, 391, 747, 728, + 705, 753, 616, 697, 0, 619, 622, 749, 732, 650, + 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, + 716, 669, 0, 0, 0, 0, 0, 0, 0, 0, + 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, + 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, + 0, 614, 245, 624, 300, 0, 721, 731, 670, 423, + 735, 668, 667, 738, 712, 628, 727, 661, 271, 626, + 268, 171, 187, 0, 659, 310, 349, 355, 726, 645, + 654, 210, 652, 353, 324, 408, 194, 235, 346, 329, + 351, 692, 710, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 604, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 625, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 613, 754, 607, 606, + 269, 278, 714, 752, 323, 354, 200, 410, 374, 635, + 639, 633, 634, 686, 687, 636, 743, 744, 745, 718, + 629, 0, 637, 638, 0, 724, 733, 734, 691, 170, + 184, 274, 748, 343, 238, 436, 417, 413, 615, 632, + 216, 643, 0, 0, 656, 664, 665, 677, 679, 680, + 681, 682, 690, 698, 699, 701, 709, 711, 713, 715, + 720, 730, 751, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 689, 696, 284, 232, 249, 259, + 704, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, + 0, 0, 1396, 0, 504, 0, 0, 0, 223, 0, + 503, 0, 0, 0, 272, 0, 0, 1397, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, + 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, + 311, 376, 237, 71, 0, 0, 167, 168, 169, 525, + 524, 527, 528, 529, 530, 0, 0, 198, 526, 205, + 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, + 0, 0, 0, 0, 501, 518, 0, 546, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 515, 516, 594, + 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, + 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, + 423, 0, 0, 559, 0, 0, 0, 0, 0, 271, + 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, + 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, + 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, + 549, 560, 555, 556, 553, 554, 548, 552, 551, 550, + 563, 540, 541, 542, 543, 545, 0, 557, 558, 544, + 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, - 0, 0, 0, 0, 2012, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 129, 1185, 136, 0, - 1182, 0, 130, 131, 0, 0, 0, 146, 0, 0, - 0, 0, 0, 596, 596, 0, 0, 151, 0, 0, - 2182, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2188, 0, 0, 0, 596, 0, 0, 2013, 0, 0, - 0, 2015, 0, 0, 0, 0, 0, 0, 0, 0, - 443, 0, 2024, 2025, 0, 0, 0, 0, 1440, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2039, 0, - 2063, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 596, 443, 0, 2048, 2049, 0, 0, 2053, - 0, 0, 0, 1203, 443, 443, 443, 443, 443, 0, - 0, 0, 0, 0, 0, 0, 1747, 0, 0, 0, - 443, 0, 0, 443, 443, 0, 0, 443, 1757, 1298, - 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2103, - 2104, 2105, 2106, 2107, 0, 0, 0, 2110, 2111, 2085, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, - 0, 443, 0, 0, 0, 0, 0, 0, 1816, 0, - 0, 126, 0, 0, 127, 0, 0, 2113, 1203, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1298, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 443, 443, 443, 443, 443, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, - 443, 0, 0, 0, 0, 161, 0, 0, 0, 0, - 0, 0, 0, 0, 2151, 2152, 2153, 2154, 0, 2158, - 0, 2159, 2160, 2161, 0, 2162, 2163, 0, 0, 0, - 103, 0, 125, 0, 596, 0, 0, 0, 0, 0, - 0, 0, 0, 145, 2214, 139, 144, 141, 147, 148, - 149, 150, 152, 153, 154, 155, 0, 0, 0, 0, - 0, 156, 157, 158, 159, 0, 2189, 0, 0, 0, - 0, 0, 0, 0, 135, 0, 0, 0, 0, 124, - 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1203, 0, 142, 0, 143, - 0, 0, 0, 0, 112, 113, 134, 133, 160, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 443, 0, 0, 0, 2242, 2243, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1130, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 129, 110, - 136, 117, 109, 0, 130, 131, 0, 0, 0, 146, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, - 118, 443, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1203, 0, 121, 119, 114, 115, 116, 120, - 0, 0, 443, 0, 111, 0, 0, 0, 0, 0, - 0, 0, 443, 122, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 443, 0, 0, 443, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1118, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1203, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1131, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 132, 0, 0, 443, 0, 0, 443, 443, 443, - 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, - 1144, 1147, 1148, 1149, 1150, 1151, 1152, 0, 1153, 1154, - 1155, 1156, 1157, 1132, 1133, 1134, 1135, 1116, 1117, 1145, - 0, 1119, 0, 1120, 1121, 1122, 1123, 1124, 1125, 1126, - 1127, 1128, 1129, 1136, 1137, 1138, 1139, 1140, 1141, 1142, - 1143, 0, 0, 0, 0, 0, 0, 0, 1440, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 139, 144, 141, - 147, 148, 149, 150, 152, 153, 154, 155, 1146, 0, - 0, 0, 0, 156, 157, 158, 159, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, - 0, 0, 0, 0, 0, 0, 0, 0, 736, 723, - 0, 0, 672, 739, 642, 660, 748, 663, 666, 706, - 621, 685, 314, 657, 1203, 646, 617, 653, 618, 644, - 674, 223, 678, 641, 725, 688, 738, 272, 0, 623, - 647, 328, 662, 176, 708, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 745, - 276, 695, 0, 375, 299, 0, 0, 0, 676, 728, - 683, 719, 671, 707, 631, 694, 740, 658, 703, 741, - 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 2222, 2223, 0, 0, 0, 0, 0, - 198, 0, 205, 700, 735, 655, 702, 219, 260, 225, - 218, 391, 0, 0, 705, 751, 616, 697, 0, 619, - 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, - 0, 0, 675, 684, 716, 669, 0, 0, 0, 0, - 0, 0, 0, 0, 648, 0, 693, 0, 0, 0, - 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, - 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, - 721, 730, 670, 423, 734, 668, 667, 737, 712, 628, - 727, 661, 271, 626, 268, 171, 187, 0, 659, 310, - 349, 355, 726, 645, 654, 210, 652, 353, 324, 408, - 194, 235, 346, 329, 351, 692, 710, 352, 277, 396, - 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, - 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, - 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, - 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, - 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, - 400, 211, 437, 190, 419, 183, 926, 418, 306, 395, - 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, - 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, - 377, 412, 438, 195, 196, 197, 640, 230, 234, 240, - 242, 0, 248, 255, 273, 317, 338, 336, 342, 722, - 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, - 305, 191, 254, 373, 269, 278, 714, 750, 323, 354, - 200, 410, 374, 635, 639, 633, 634, 686, 687, 636, - 742, 743, 744, 718, 629, 0, 637, 638, 0, 724, - 732, 733, 691, 170, 184, 274, 746, 343, 238, 436, - 417, 413, 615, 632, 216, 643, 0, 0, 656, 664, - 665, 677, 679, 680, 681, 682, 690, 698, 699, 701, - 709, 711, 713, 715, 720, 729, 749, 172, 173, 185, - 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, - 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, - 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, - 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, - 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, - 409, 421, 426, 247, 405, 427, 0, 282, 689, 696, - 284, 232, 249, 259, 704, 416, 379, 189, 350, 239, - 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, - 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 736, 723, 0, 0, 672, 739, 642, - 660, 748, 663, 666, 706, 621, 685, 314, 657, 0, - 646, 617, 653, 618, 644, 674, 223, 678, 641, 725, - 688, 738, 272, 0, 623, 647, 328, 662, 176, 708, - 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, - 287, 326, 384, 320, 745, 276, 695, 0, 375, 299, - 0, 0, 0, 676, 728, 683, 719, 671, 707, 631, - 694, 740, 658, 703, 741, 262, 207, 175, 311, 376, - 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, - 0, 0, 0, 0, 0, 198, 0, 205, 700, 735, - 655, 702, 219, 260, 225, 218, 391, 0, 0, 705, - 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, - 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, - 669, 0, 0, 0, 0, 0, 0, 1916, 0, 648, - 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, - 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, - 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, - 668, 667, 737, 712, 628, 727, 661, 271, 626, 268, - 171, 187, 0, 659, 310, 349, 355, 726, 645, 654, - 210, 652, 353, 324, 408, 194, 235, 346, 329, 351, - 692, 710, 352, 277, 396, 341, 406, 424, 425, 217, - 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, - 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, - 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, - 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, - 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, - 183, 926, 418, 306, 395, 403, 295, 286, 182, 401, - 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, - 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, - 197, 640, 230, 234, 240, 242, 0, 248, 255, 273, - 317, 338, 336, 342, 722, 390, 407, 415, 422, 428, - 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, - 278, 714, 750, 323, 354, 200, 410, 374, 635, 639, - 633, 634, 686, 687, 636, 742, 743, 744, 718, 629, - 0, 637, 638, 0, 724, 732, 733, 691, 170, 184, - 274, 746, 343, 238, 436, 417, 413, 615, 632, 216, - 643, 0, 0, 656, 664, 665, 677, 679, 680, 681, - 682, 690, 698, 699, 701, 709, 711, 713, 715, 720, - 729, 749, 172, 173, 185, 193, 203, 215, 228, 236, - 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, - 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, - 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, - 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, - 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, - 427, 0, 282, 689, 696, 284, 232, 249, 259, 704, - 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, - 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, - 201, 365, 385, 386, 387, 389, 296, 220, 736, 723, - 0, 0, 672, 739, 642, 660, 748, 663, 666, 706, - 621, 685, 314, 657, 0, 646, 617, 653, 618, 644, - 674, 223, 678, 641, 725, 688, 738, 272, 0, 623, - 647, 328, 662, 176, 708, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 745, - 276, 695, 0, 375, 299, 0, 0, 0, 676, 728, - 683, 719, 671, 707, 631, 694, 740, 658, 703, 741, - 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 700, 735, 655, 702, 219, 260, 225, - 218, 391, 0, 0, 705, 751, 616, 697, 0, 619, - 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, - 0, 0, 675, 684, 716, 669, 0, 0, 0, 0, - 0, 0, 1758, 0, 648, 0, 693, 0, 0, 0, - 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, - 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, - 721, 730, 670, 423, 734, 668, 667, 737, 712, 628, - 727, 661, 271, 626, 268, 171, 187, 0, 659, 310, - 349, 355, 726, 645, 654, 210, 652, 353, 324, 408, - 194, 235, 346, 329, 351, 692, 710, 352, 277, 396, - 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, - 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, - 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, - 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, - 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, - 400, 211, 437, 190, 419, 183, 926, 418, 306, 395, - 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, - 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, - 377, 412, 438, 195, 196, 197, 640, 230, 234, 240, - 242, 0, 248, 255, 273, 317, 338, 336, 342, 722, - 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, - 305, 191, 254, 373, 269, 278, 714, 750, 323, 354, - 200, 410, 374, 635, 639, 633, 634, 686, 687, 636, - 742, 743, 744, 718, 629, 0, 637, 638, 0, 724, - 732, 733, 691, 170, 184, 274, 746, 343, 238, 436, - 417, 413, 615, 632, 216, 643, 0, 0, 656, 664, - 665, 677, 679, 680, 681, 682, 690, 698, 699, 701, - 709, 711, 713, 715, 720, 729, 749, 172, 173, 185, - 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, - 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, - 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, - 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, - 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, - 409, 421, 426, 247, 405, 427, 0, 282, 689, 696, - 284, 232, 249, 259, 704, 416, 379, 189, 350, 239, - 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, - 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 736, 723, 0, 0, 672, 739, 642, - 660, 748, 663, 666, 706, 621, 685, 314, 657, 0, - 646, 617, 653, 618, 644, 674, 223, 678, 641, 725, - 688, 738, 272, 0, 623, 647, 328, 662, 176, 708, - 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, - 287, 326, 384, 320, 745, 276, 695, 0, 375, 299, - 0, 0, 0, 676, 728, 683, 719, 671, 707, 631, - 694, 740, 658, 703, 741, 262, 207, 175, 311, 376, - 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, - 0, 0, 0, 0, 0, 198, 0, 205, 700, 735, - 655, 702, 219, 260, 225, 218, 391, 0, 0, 705, - 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, - 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, - 669, 0, 0, 0, 0, 0, 0, 1468, 0, 648, - 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, - 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, - 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, - 668, 667, 737, 712, 628, 727, 661, 271, 626, 268, - 171, 187, 0, 659, 310, 349, 355, 726, 645, 654, - 210, 652, 353, 324, 408, 194, 235, 346, 329, 351, - 692, 710, 352, 277, 396, 341, 406, 424, 425, 217, - 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, - 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, - 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, - 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, - 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, - 183, 926, 418, 306, 395, 403, 295, 286, 182, 401, - 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, - 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, - 197, 640, 230, 234, 240, 242, 0, 248, 255, 273, - 317, 338, 336, 342, 722, 390, 407, 415, 422, 428, - 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, - 278, 714, 750, 323, 354, 200, 410, 374, 635, 639, - 633, 634, 686, 687, 636, 742, 743, 744, 718, 629, - 0, 637, 638, 0, 724, 732, 733, 691, 170, 184, - 274, 746, 343, 238, 436, 417, 413, 615, 632, 216, - 643, 0, 0, 656, 664, 665, 677, 679, 680, 681, - 682, 690, 698, 699, 701, 709, 711, 713, 715, 720, - 729, 749, 172, 173, 185, 193, 203, 215, 228, 236, - 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, - 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, - 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, - 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, - 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, - 427, 0, 282, 689, 696, 284, 232, 249, 259, 704, - 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, - 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, - 201, 365, 385, 386, 387, 389, 296, 220, 736, 723, - 0, 0, 672, 739, 642, 660, 748, 663, 666, 706, - 621, 685, 314, 657, 0, 646, 617, 653, 618, 644, - 674, 223, 678, 641, 725, 688, 738, 272, 0, 623, - 647, 328, 662, 176, 708, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 745, - 276, 695, 0, 375, 299, 0, 0, 0, 676, 728, - 683, 719, 671, 707, 631, 694, 740, 658, 703, 741, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, + 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 314, 0, 0, 0, 0, 504, 0, 0, 0, 223, + 0, 503, 0, 0, 0, 272, 0, 0, 0, 328, + 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, + 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, + 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, + 0, 0, 0, 0, 0, 0, 1509, 0, 262, 207, + 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, + 525, 524, 527, 528, 529, 530, 0, 0, 198, 526, + 205, 531, 532, 533, 1510, 219, 260, 225, 218, 391, + 0, 0, 0, 0, 0, 501, 518, 0, 546, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 515, 516, + 0, 0, 0, 0, 562, 0, 517, 0, 0, 510, + 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, + 0, 423, 0, 0, 559, 0, 0, 0, 0, 0, + 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, + 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, + 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, + 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, + 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, + 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, + 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, + 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, + 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, + 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, + 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, + 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, + 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, + 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, + 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, + 374, 549, 560, 555, 556, 553, 554, 548, 552, 551, + 550, 563, 540, 541, 542, 543, 545, 0, 557, 558, + 544, 170, 184, 274, 0, 343, 238, 436, 417, 413, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, + 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, + 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, + 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, + 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, + 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, + 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, + 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, + 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, + 220, 314, 0, 0, 0, 0, 504, 0, 0, 0, + 223, 0, 503, 0, 0, 0, 272, 0, 0, 0, + 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, + 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, + 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, + 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, + 207, 175, 311, 376, 237, 71, 0, 581, 167, 168, + 169, 525, 524, 527, 528, 529, 530, 0, 0, 198, + 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, + 391, 0, 0, 0, 0, 0, 501, 518, 0, 546, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, + 516, 0, 0, 0, 0, 562, 0, 517, 0, 0, + 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, + 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, + 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 549, 560, 555, 556, 553, 554, 548, 552, + 551, 550, 563, 540, 541, 542, 543, 545, 0, 557, + 558, 544, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 314, 0, 0, 0, 0, 504, 0, 0, + 0, 223, 0, 503, 0, 0, 0, 272, 0, 0, + 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, + 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, + 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 700, 735, 655, 702, 219, 260, 225, - 218, 391, 0, 0, 705, 751, 616, 697, 0, 619, - 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, - 0, 0, 675, 684, 716, 669, 0, 0, 0, 0, - 0, 0, 0, 0, 648, 0, 693, 0, 0, 0, - 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, - 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, - 721, 730, 670, 423, 734, 668, 667, 737, 712, 628, - 727, 661, 271, 626, 268, 171, 187, 0, 659, 310, - 349, 355, 726, 645, 654, 210, 652, 353, 324, 408, - 194, 235, 346, 329, 351, 692, 710, 352, 277, 396, - 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, - 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, - 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, - 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, - 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, - 400, 211, 437, 190, 419, 183, 926, 418, 306, 395, - 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, - 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, - 377, 412, 438, 195, 196, 197, 640, 230, 234, 240, - 242, 0, 248, 255, 273, 317, 338, 336, 342, 722, - 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, - 305, 191, 254, 373, 269, 278, 714, 750, 323, 354, - 200, 410, 374, 635, 639, 633, 634, 686, 687, 636, - 742, 743, 744, 718, 629, 0, 637, 638, 0, 724, - 732, 733, 691, 170, 184, 274, 746, 343, 238, 436, - 417, 413, 615, 632, 216, 643, 0, 0, 656, 664, - 665, 677, 679, 680, 681, 682, 690, 698, 699, 701, - 709, 711, 713, 715, 720, 729, 749, 172, 173, 185, - 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, - 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, - 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, - 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, - 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, - 409, 421, 426, 247, 405, 427, 0, 282, 689, 696, - 284, 232, 249, 259, 704, 416, 379, 189, 350, 239, - 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, - 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 736, 723, 0, 0, 672, 739, 642, - 660, 748, 663, 666, 706, 621, 685, 314, 657, 0, - 646, 617, 653, 618, 644, 674, 223, 678, 641, 725, - 688, 738, 272, 0, 623, 647, 328, 662, 176, 708, - 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, - 287, 326, 384, 320, 745, 276, 695, 0, 375, 299, - 0, 0, 0, 676, 728, 683, 719, 671, 707, 631, - 694, 740, 658, 703, 741, 262, 207, 175, 311, 376, - 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, - 0, 0, 0, 0, 0, 198, 0, 205, 700, 735, - 655, 702, 219, 260, 225, 218, 391, 0, 0, 705, - 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, - 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, - 669, 0, 0, 0, 0, 0, 0, 0, 0, 648, - 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, - 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, - 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, - 668, 667, 737, 712, 628, 727, 661, 271, 626, 268, - 171, 187, 0, 659, 310, 349, 355, 726, 645, 654, - 210, 652, 353, 324, 408, 194, 235, 346, 329, 351, - 692, 710, 352, 277, 396, 341, 406, 424, 425, 217, - 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, - 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, - 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, - 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, - 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, - 183, 926, 418, 306, 395, 403, 295, 286, 182, 401, - 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, - 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, - 197, 640, 230, 234, 240, 242, 0, 248, 255, 273, - 317, 338, 336, 342, 722, 390, 407, 415, 422, 428, - 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, - 278, 714, 750, 323, 354, 200, 410, 374, 635, 639, - 633, 634, 686, 687, 636, 742, 743, 744, 718, 629, - 0, 637, 638, 0, 724, 732, 733, 691, 170, 184, - 274, 746, 343, 238, 436, 417, 413, 615, 632, 216, - 643, 0, 0, 656, 664, 665, 677, 679, 680, 681, - 682, 690, 698, 699, 701, 709, 711, 713, 715, 720, - 729, 749, 172, 173, 185, 193, 203, 215, 228, 236, - 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, - 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, - 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, - 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, - 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, - 427, 0, 282, 689, 696, 284, 232, 249, 259, 704, - 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, - 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, - 201, 365, 385, 386, 387, 389, 296, 220, 736, 723, - 0, 0, 672, 739, 642, 660, 748, 663, 666, 706, - 621, 685, 314, 657, 0, 646, 617, 653, 618, 644, - 674, 223, 678, 641, 725, 688, 738, 272, 0, 623, - 647, 328, 662, 176, 708, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 745, - 276, 695, 0, 375, 299, 0, 0, 0, 676, 728, - 683, 719, 671, 707, 631, 694, 740, 658, 703, 741, - 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 700, 735, 655, 702, 219, 260, 225, - 218, 391, 0, 0, 705, 751, 616, 697, 0, 619, - 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, - 0, 0, 675, 684, 716, 669, 0, 0, 0, 0, - 0, 0, 0, 0, 648, 0, 693, 0, 0, 0, - 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, - 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, - 721, 730, 670, 423, 734, 668, 667, 737, 712, 628, - 727, 661, 271, 626, 268, 171, 187, 0, 659, 310, - 349, 355, 726, 645, 654, 210, 652, 353, 324, 408, - 194, 235, 346, 329, 351, 692, 710, 352, 277, 396, + 168, 169, 525, 524, 527, 528, 529, 530, 0, 0, + 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, + 218, 391, 0, 0, 0, 0, 0, 501, 518, 0, + 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 515, 516, 594, 0, 0, 0, 562, 0, 517, 0, + 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, + 561, 0, 0, 423, 0, 0, 559, 0, 0, 0, + 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, + 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, + 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, - 400, 211, 437, 190, 419, 183, 625, 418, 306, 395, - 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, - 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, - 377, 412, 438, 195, 196, 197, 640, 230, 234, 240, - 242, 0, 248, 255, 273, 317, 338, 336, 342, 722, - 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, - 613, 752, 607, 606, 269, 278, 714, 750, 323, 354, - 200, 410, 374, 635, 639, 633, 634, 686, 687, 636, - 742, 743, 744, 718, 629, 0, 637, 638, 0, 724, - 732, 733, 691, 170, 184, 274, 746, 343, 238, 436, - 417, 413, 615, 632, 216, 643, 0, 0, 656, 664, - 665, 677, 679, 680, 681, 682, 690, 698, 699, 701, - 709, 711, 713, 715, 720, 729, 749, 172, 173, 185, - 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, - 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, - 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, - 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, - 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, - 409, 421, 426, 247, 405, 427, 0, 282, 689, 696, - 284, 232, 249, 259, 704, 416, 379, 189, 350, 239, - 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, - 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 736, 723, 0, 0, 672, 739, 642, - 660, 748, 663, 666, 706, 621, 685, 314, 657, 0, - 646, 617, 653, 618, 644, 674, 223, 678, 641, 725, - 688, 738, 272, 0, 623, 647, 328, 662, 176, 708, - 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, - 287, 326, 384, 320, 745, 276, 695, 0, 375, 299, - 0, 0, 0, 676, 728, 683, 719, 671, 707, 631, - 694, 740, 658, 703, 741, 262, 207, 175, 311, 376, - 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, - 0, 0, 0, 0, 0, 198, 0, 205, 700, 735, - 655, 702, 219, 260, 225, 218, 391, 0, 0, 705, - 751, 616, 697, 0, 619, 622, 747, 731, 650, 651, - 0, 0, 0, 0, 0, 0, 0, 675, 684, 716, - 669, 0, 0, 0, 0, 0, 0, 0, 0, 648, - 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, - 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, - 614, 245, 624, 300, 0, 721, 730, 670, 423, 734, - 668, 667, 737, 712, 628, 727, 661, 271, 626, 268, - 171, 187, 0, 659, 310, 349, 355, 726, 645, 654, - 210, 652, 353, 324, 408, 194, 235, 346, 329, 351, - 692, 710, 352, 277, 396, 341, 406, 424, 425, 217, - 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, - 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, - 186, 361, 202, 179, 383, 1094, 199, 364, 0, 0, - 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, - 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, - 183, 625, 418, 306, 395, 403, 295, 286, 182, 401, - 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, - 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, - 197, 640, 230, 234, 240, 242, 0, 248, 255, 273, - 317, 338, 336, 342, 722, 390, 407, 415, 422, 428, - 429, 433, 430, 431, 434, 613, 752, 607, 606, 269, - 278, 714, 750, 323, 354, 200, 410, 374, 635, 639, - 633, 634, 686, 687, 636, 742, 743, 744, 718, 629, - 0, 637, 638, 0, 724, 732, 733, 691, 170, 184, - 274, 746, 343, 238, 436, 417, 413, 615, 632, 216, - 643, 0, 0, 656, 664, 665, 677, 679, 680, 681, - 682, 690, 698, 699, 701, 709, 711, 713, 715, 720, - 729, 749, 172, 173, 185, 193, 203, 215, 228, 236, - 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, - 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, - 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, - 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, - 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, - 427, 0, 282, 689, 696, 284, 232, 249, 259, 704, - 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, - 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, - 201, 365, 385, 386, 387, 389, 296, 220, 736, 723, - 0, 0, 672, 739, 642, 660, 748, 663, 666, 706, - 621, 685, 314, 657, 0, 646, 617, 653, 618, 644, - 674, 223, 678, 641, 725, 688, 738, 272, 0, 623, - 647, 328, 662, 176, 708, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 745, - 276, 695, 0, 375, 299, 0, 0, 0, 676, 728, - 683, 719, 671, 707, 631, 694, 740, 658, 703, 741, - 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 700, 735, 655, 702, 219, 260, 225, - 218, 391, 0, 0, 705, 751, 616, 697, 0, 619, - 622, 747, 731, 650, 651, 0, 0, 0, 0, 0, - 0, 0, 675, 684, 716, 669, 0, 0, 0, 0, - 0, 0, 0, 0, 648, 0, 693, 0, 0, 0, - 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, - 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, - 721, 730, 670, 423, 734, 668, 667, 737, 712, 628, - 727, 661, 271, 626, 268, 171, 187, 0, 659, 310, - 349, 355, 726, 645, 654, 210, 652, 353, 324, 408, - 194, 235, 346, 329, 351, 692, 710, 352, 277, 396, - 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, - 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, - 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, - 604, 199, 364, 0, 0, 0, 181, 402, 380, 294, - 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, - 400, 211, 437, 190, 419, 183, 625, 418, 306, 395, + 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, - 377, 412, 438, 195, 196, 197, 640, 230, 234, 240, - 242, 0, 248, 255, 273, 317, 338, 336, 342, 722, + 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, - 613, 752, 607, 606, 269, 278, 714, 750, 323, 354, - 200, 410, 374, 635, 639, 633, 634, 686, 687, 636, - 742, 743, 744, 718, 629, 0, 637, 638, 0, 724, - 732, 733, 691, 170, 184, 274, 746, 343, 238, 436, - 417, 413, 615, 632, 216, 643, 0, 0, 656, 664, - 665, 677, 679, 680, 681, 682, 690, 698, 699, 701, - 709, 711, 713, 715, 720, 729, 749, 172, 173, 185, + 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, + 200, 410, 374, 549, 560, 555, 556, 553, 554, 548, + 552, 551, 550, 563, 540, 541, 542, 543, 545, 0, + 557, 558, 544, 170, 184, 274, 0, 343, 238, 436, + 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, - 409, 421, 426, 247, 405, 427, 0, 282, 689, 696, - 284, 232, 249, 259, 704, 416, 379, 189, 350, 239, + 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, + 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 0, 1394, 0, 504, 0, + 389, 296, 220, 314, 0, 0, 0, 0, 504, 0, 0, 0, 223, 0, 503, 0, 0, 0, 272, 0, - 0, 1395, 328, 0, 176, 0, 366, 209, 281, 279, + 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, 0, 0, - 167, 168, 169, 525, 524, 527, 528, 529, 530, 0, + 167, 168, 169, 525, 1414, 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2070,13 +2280,13 @@ var yyAct = [...]int{ 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, - 1507, 0, 262, 207, 175, 311, 376, 237, 71, 0, - 0, 167, 168, 169, 525, 524, 527, 528, 529, 530, - 0, 0, 198, 526, 205, 531, 532, 533, 1508, 219, + 0, 0, 262, 207, 175, 311, 376, 237, 71, 0, + 0, 167, 168, 169, 525, 1411, 527, 528, 529, 530, + 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 515, 516, 0, 0, 0, 0, 562, 0, + 0, 0, 515, 516, 594, 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, 423, 0, 0, 559, 0, @@ -2110,157 +2320,20 @@ var yyAct = [...]int{ 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, - 504, 0, 0, 0, 223, 0, 503, 0, 0, 0, - 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, - 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, - 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, - 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, - 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, - 0, 581, 167, 168, 169, 525, 524, 527, 528, 529, - 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, - 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, - 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 515, 516, 0, 0, 0, 0, 562, - 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, - 0, 300, 0, 561, 0, 0, 423, 0, 0, 559, - 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, - 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, - 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, - 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, - 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, - 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, - 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, - 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, - 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, - 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, - 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, - 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, - 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, - 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, - 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, - 0, 323, 354, 200, 410, 374, 549, 560, 555, 556, - 553, 554, 548, 552, 551, 550, 563, 540, 541, 542, - 543, 545, 0, 557, 558, 544, 170, 184, 274, 0, - 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, - 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, - 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, - 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, - 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, - 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, - 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, - 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, - 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, - 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, - 0, 504, 0, 0, 0, 223, 0, 503, 0, 0, - 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, - 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, - 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, - 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, - 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, - 71, 0, 0, 167, 168, 169, 525, 524, 527, 528, - 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, - 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, - 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 515, 516, 594, 0, 0, 0, - 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, - 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 245, 0, 300, 0, 561, 0, 0, 423, 0, 0, - 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, - 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, - 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, - 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, - 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, - 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, - 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, - 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, - 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, - 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, - 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, - 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, - 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, - 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, - 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, - 0, 0, 323, 354, 200, 410, 374, 549, 560, 555, - 556, 553, 554, 548, 552, 551, 550, 563, 540, 541, - 542, 543, 545, 0, 557, 558, 544, 170, 184, 274, - 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, - 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, - 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, - 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, - 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, - 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, - 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, - 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, - 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, - 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, - 0, 0, 504, 0, 0, 0, 223, 0, 503, 0, - 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, - 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, - 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, - 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, - 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, - 237, 71, 0, 0, 167, 168, 169, 525, 1412, 527, - 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, - 533, 0, 219, 260, 225, 218, 391, 0, 0, 0, - 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 515, 516, 594, 0, 0, - 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, - 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 245, 0, 300, 0, 561, 0, 0, 423, 0, - 0, 559, 0, 0, 0, 0, 0, 271, 0, 268, - 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, - 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, - 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, - 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, - 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, - 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, - 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, - 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, - 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, - 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, - 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, - 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, - 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, - 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, - 278, 0, 0, 323, 354, 200, 410, 374, 549, 560, - 555, 556, 553, 554, 548, 552, 551, 550, 563, 540, - 541, 542, 543, 545, 0, 557, 558, 544, 170, 184, - 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, - 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, - 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, - 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, - 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, - 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, - 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, - 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, - 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, - 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, + 386, 387, 389, 296, 220, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, 504, 0, 0, 0, 223, 0, 503, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 71, 0, 0, 167, 168, 169, 525, 1409, + 376, 237, 71, 0, 0, 167, 168, 169, 525, 524, 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 515, 516, 594, 0, + 0, 0, 0, 0, 0, 0, 515, 516, 0, 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, 423, @@ -2294,10 +2367,147 @@ var yyAct = [...]int{ 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 574, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, + 0, 0, 0, 0, 504, 0, 0, 0, 223, 0, + 503, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, + 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, + 311, 376, 237, 71, 0, 0, 167, 168, 169, 525, + 524, 527, 528, 529, 530, 0, 0, 198, 526, 205, + 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, + 0, 0, 0, 0, 501, 518, 0, 546, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 515, 516, 0, + 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, + 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, + 423, 0, 0, 559, 0, 0, 0, 0, 0, 271, + 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, + 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, + 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, + 549, 560, 555, 556, 553, 554, 548, 552, 551, 550, + 563, 540, 541, 542, 543, 545, 0, 557, 558, 544, + 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, + 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, + 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, + 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, + 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, + 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, + 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, + 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, + 525, 524, 527, 528, 529, 530, 0, 0, 198, 526, + 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, + 0, 0, 0, 0, 0, 0, 518, 0, 546, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 515, 516, + 0, 0, 0, 0, 562, 0, 517, 0, 0, 510, + 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, + 0, 423, 0, 0, 559, 0, 0, 0, 0, 0, + 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, + 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, + 346, 329, 351, 2217, 0, 352, 277, 396, 341, 406, + 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, + 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, + 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, + 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, + 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, + 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, + 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, + 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, + 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, + 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, + 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, + 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, + 374, 549, 560, 555, 556, 553, 554, 548, 552, 551, + 550, 563, 540, 541, 542, 543, 545, 0, 557, 558, + 544, 170, 184, 274, 0, 343, 238, 436, 417, 413, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 314, 0, 0, 0, 0, 504, 0, 0, - 0, 223, 0, 503, 0, 0, 0, 272, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, + 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, + 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, + 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, + 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, + 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, + 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, + 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, + 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, + 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, + 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, + 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, + 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, + 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, + 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, + 207, 175, 311, 376, 237, 71, 0, 581, 167, 168, + 169, 525, 524, 527, 528, 529, 530, 0, 0, 198, + 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, + 391, 0, 0, 0, 0, 0, 0, 518, 0, 546, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, + 516, 0, 0, 0, 0, 562, 0, 517, 0, 0, + 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, + 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, + 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 549, 560, 555, 556, 553, 554, 548, 552, + 551, 550, 563, 540, 541, 542, 543, 545, 0, 557, + 558, 544, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, + 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, @@ -2305,7 +2515,7 @@ var yyAct = [...]int{ 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, 525, 524, 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, - 218, 391, 0, 0, 0, 0, 0, 501, 518, 0, + 218, 391, 0, 0, 0, 0, 0, 0, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, 516, 0, 0, 0, 0, 562, 0, 517, 0, @@ -2342,22 +2552,22 @@ var yyAct = [...]int{ 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 0, 0, 0, 504, 0, - 0, 0, 223, 0, 503, 0, 0, 0, 272, 0, + 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, + 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, - 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, - 0, 262, 207, 175, 311, 376, 237, 71, 0, 0, - 167, 168, 169, 525, 524, 527, 528, 529, 530, 0, - 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, - 225, 218, 391, 0, 0, 0, 0, 0, 501, 518, - 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 515, 516, 0, 0, 0, 0, 562, 0, 517, - 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, + 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, + 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 971, 970, 980, + 981, 973, 974, 975, 976, 977, 978, 979, 972, 0, + 0, 982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, - 0, 561, 0, 0, 423, 0, 0, 559, 0, 0, + 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, @@ -2373,9 +2583,9 @@ var yyAct = [...]int{ 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, - 354, 200, 410, 374, 549, 560, 555, 556, 553, 554, - 548, 552, 551, 550, 563, 540, 541, 542, 543, 545, - 0, 557, 558, 544, 170, 184, 274, 0, 343, 238, + 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, @@ -2389,24 +2599,24 @@ var yyAct = [...]int{ 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, - 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, + 0, 0, 0, 223, 800, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, - 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, - 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, - 0, 0, 262, 207, 175, 311, 376, 237, 71, 0, - 0, 167, 168, 169, 525, 524, 527, 528, 529, 530, - 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, + 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, + 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, - 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 515, 516, 0, 0, 0, 0, 562, 0, - 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 300, 0, 561, 0, 0, 423, 0, 0, 559, 0, - 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, - 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, - 324, 408, 194, 235, 346, 329, 351, 2215, 0, 352, + 300, 0, 0, 0, 799, 423, 0, 0, 0, 0, + 0, 0, 796, 797, 271, 762, 268, 171, 187, 790, + 794, 310, 349, 355, 0, 0, 0, 210, 0, 353, + 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, @@ -2419,9 +2629,9 @@ var yyAct = [...]int{ 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, - 323, 354, 200, 410, 374, 549, 560, 555, 556, 553, - 554, 548, 552, 551, 550, 563, 540, 541, 542, 543, - 545, 0, 557, 558, 544, 170, 184, 274, 0, 343, + 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, @@ -2434,22 +2644,22 @@ var yyAct = [...]int{ 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, + 386, 387, 389, 296, 220, 314, 0, 0, 0, 1074, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, - 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, - 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, - 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, - 0, 581, 167, 168, 169, 525, 524, 527, 528, 529, - 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, - 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, - 0, 518, 0, 546, 0, 0, 0, 0, 0, 0, + 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, + 0, 0, 167, 168, 169, 0, 1076, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 260, 225, 218, 391, 0, 0, 960, 961, 959, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 962, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 515, 516, 0, 0, 0, 0, 562, - 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, - 0, 300, 0, 561, 0, 0, 423, 0, 0, 559, + 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, @@ -2465,38 +2675,225 @@ var yyAct = [...]int{ 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, - 0, 323, 354, 200, 410, 374, 549, 560, 555, 556, - 553, 554, 548, 552, 551, 550, 563, 540, 541, 542, - 543, 545, 0, 557, 558, 544, 170, 184, 274, 0, + 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, - 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, - 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, - 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, - 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, - 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, - 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, - 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, - 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, - 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, + 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, + 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, + 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, + 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, + 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, + 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, + 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, + 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, + 385, 386, 387, 389, 296, 220, 35, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, + 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, + 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, + 311, 376, 237, 71, 0, 581, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, + 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, + 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, + 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, + 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 314, 0, 0, 0, 1441, 0, 0, 0, 0, 223, + 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, + 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, + 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, + 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, + 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, + 0, 1443, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, + 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, + 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, + 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, + 346, 329, 351, 0, 1439, 352, 277, 396, 341, 406, + 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, + 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, + 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, + 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, + 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, + 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, + 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, + 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, + 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, + 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, + 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, + 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, + 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, + 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, + 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, + 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, + 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, + 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, + 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, + 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, + 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, + 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, + 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, + 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, + 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, + 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, + 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, + 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 756, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, + 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, + 0, 271, 762, 268, 171, 187, 760, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 314, 0, 0, 0, 1441, 0, 0, 0, + 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, + 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, + 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, + 168, 169, 0, 1443, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, + 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, + 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, + 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, + 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, + 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, + 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, + 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, + 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, + 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, + 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, + 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, + 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, + 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, + 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, + 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, + 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, + 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, + 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, + 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, + 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, + 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, + 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, + 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, + 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, + 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, + 389, 296, 220, 35, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, - 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, - 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, + 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, - 71, 0, 0, 167, 168, 169, 525, 524, 527, 528, - 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, + 71, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, - 0, 0, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 515, 516, 0, 0, 0, 0, - 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, - 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 245, 0, 300, 0, 561, 0, 0, 423, 0, 0, - 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, + 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, @@ -2511,9 +2908,9 @@ var yyAct = [...]int{ 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, - 0, 0, 323, 354, 200, 410, 374, 549, 560, 555, - 556, 553, 554, 548, 552, 551, 550, 563, 540, 541, - 542, 543, 545, 0, 557, 558, 544, 170, 184, 274, + 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2533,13 +2930,13 @@ var yyAct = [...]int{ 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, - 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, - 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, + 237, 0, 0, 0, 167, 168, 169, 0, 0, 1462, + 0, 0, 1463, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 969, 968, 978, 979, 971, 972, 973, 974, 975, - 976, 977, 970, 0, 0, 980, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, @@ -2573,285 +2970,98 @@ var yyAct = [...]int{ 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, - 0, 0, 0, 0, 0, 0, 0, 223, 798, 0, + 0, 0, 0, 0, 0, 0, 0, 223, 0, 1107, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 245, 0, 300, 0, 0, 0, 797, 423, - 0, 0, 0, 0, 0, 0, 794, 795, 271, 760, - 268, 171, 187, 788, 792, 310, 349, 355, 0, 0, - 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, - 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, - 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, - 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 0, 0, 1072, 0, 0, 0, 0, 223, 0, - 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, - 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, - 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, - 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, - 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, - 1074, 0, 0, 0, 0, 0, 0, 198, 0, 205, - 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, - 0, 958, 959, 957, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 960, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, - 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, - 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, - 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, - 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, - 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, - 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, - 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, - 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, - 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, - 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, - 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, - 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, - 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, - 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, - 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, - 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, - 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, - 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, - 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, - 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, - 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, - 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, - 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, - 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, - 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, - 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, - 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 262, 207, 175, 311, 376, 237, 71, 0, 581, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, - 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, - 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, - 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, - 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, - 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, - 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, - 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, - 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, - 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, - 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, - 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, - 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, - 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, - 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, - 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 0, 0, 1439, 0, - 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, - 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, - 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, - 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, - 0, 167, 168, 169, 0, 1441, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, - 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, - 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, - 324, 408, 194, 235, 346, 329, 351, 0, 1437, 352, - 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, - 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, - 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, - 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, - 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, - 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, - 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, - 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, - 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, - 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, - 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, - 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, - 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, - 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, - 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, - 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, - 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, - 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, - 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, - 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, - 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, - 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, - 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, - 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, - 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, - 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, - 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, - 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, - 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 754, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, - 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, - 0, 0, 0, 0, 0, 271, 760, 268, 171, 187, - 758, 0, 310, 349, 355, 0, 0, 0, 210, 0, - 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, - 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, - 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, - 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, - 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, - 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, - 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, - 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, - 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, - 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, - 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, - 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, - 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, - 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, + 376, 237, 0, 0, 0, 167, 168, 169, 0, 1106, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, - 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, - 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, - 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, - 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, - 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, - 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, - 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, - 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, - 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, - 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, - 1439, 0, 0, 0, 0, 223, 0, 0, 0, 0, - 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, - 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, - 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, - 0, 0, 0, 167, 168, 169, 0, 1441, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, + 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, + 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, + 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, + 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, + 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, + 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, + 311, 376, 237, 0, 0, 581, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, - 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, - 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, - 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, - 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, - 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, - 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, - 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, - 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, - 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, - 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, - 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, - 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, - 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, - 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, - 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, - 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 184, 274, - 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, - 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, - 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, - 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, - 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, - 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, - 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, - 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, - 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, - 365, 385, 386, 387, 389, 296, 220, 35, 0, 0, + 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, + 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, + 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, + 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, + 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, @@ -2905,7 +3115,7 @@ var yyAct = [...]int{ 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, - 169, 0, 0, 1460, 0, 0, 1461, 0, 0, 198, + 169, 0, 1443, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2945,13 +3155,13 @@ var yyAct = [...]int{ 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, - 0, 223, 0, 1105, 0, 0, 0, 272, 0, 0, + 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 1104, 0, 0, 0, 0, 0, 0, + 168, 169, 0, 1076, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2996,7 +3206,7 @@ var yyAct = [...]int{ 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 262, 207, 175, 311, 376, 237, 0, 0, 581, + 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, @@ -3023,7 +3233,7 @@ var yyAct = [...]int{ 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, + 0, 0, 0, 0, 170, 184, 274, 1346, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, @@ -3036,13 +3246,13 @@ var yyAct = [...]int{ 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, + 387, 389, 296, 220, 314, 0, 1229, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 262, 207, 175, 311, 376, 237, 71, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, @@ -3082,14 +3292,14 @@ var yyAct = [...]int{ 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, + 386, 387, 389, 296, 220, 314, 0, 1227, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, - 0, 0, 167, 168, 169, 0, 1441, 0, 0, 0, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3128,14 +3338,14 @@ var yyAct = [...]int{ 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, - 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, + 385, 386, 387, 389, 296, 220, 314, 0, 1225, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, - 0, 0, 0, 167, 168, 169, 0, 1074, 0, 0, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3174,7 +3384,7 @@ var yyAct = [...]int{ 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, - 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, + 365, 385, 386, 387, 389, 296, 220, 314, 0, 1223, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, @@ -3208,7 +3418,7 @@ var yyAct = [...]int{ 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, - 274, 1344, 343, 238, 436, 417, 413, 0, 0, 216, + 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, @@ -3221,7 +3431,7 @@ var yyAct = [...]int{ 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, - 1227, 0, 0, 0, 0, 0, 0, 223, 0, 0, + 1221, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, @@ -3257,63 +3467,202 @@ var yyAct = [...]int{ 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, - 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 1225, 0, 0, 0, 0, 0, 0, 223, 0, - 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, - 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, - 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, - 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, - 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, - 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, + 0, 1217, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, + 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, + 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, + 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, + 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, + 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, + 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, + 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 314, 0, 1215, 0, 0, 0, 0, 0, 0, 223, + 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, + 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, + 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, + 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, + 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, + 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, + 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, + 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, + 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, + 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, + 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, + 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, + 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, + 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, + 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, + 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, + 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, + 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, + 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, + 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, + 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, + 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, + 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, + 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, + 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, + 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, + 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, + 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, + 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, + 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, + 220, 314, 0, 1213, 0, 0, 0, 0, 0, 0, + 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, + 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, + 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, + 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, + 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, + 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, + 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, + 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, + 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, + 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, + 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 262, 207, 175, 311, 376, 237, 1188, 0, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, + 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, - 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, - 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, - 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, - 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, - 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, - 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, - 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, - 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, - 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, - 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, - 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, - 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, - 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, - 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, - 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, - 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, + 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, + 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, + 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, + 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, + 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, + 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, + 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, + 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, + 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, + 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, + 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, + 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, + 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, + 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, + 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, + 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, + 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, + 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, - 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, - 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, - 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, - 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, - 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, - 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, - 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, - 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, - 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 1223, 0, 0, 0, 0, 0, 0, 223, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, + 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, + 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, + 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, + 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, + 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, + 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, + 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, + 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, + 389, 296, 220, 1089, 0, 0, 0, 0, 0, 0, + 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, @@ -3359,7 +3708,7 @@ var yyAct = [...]int{ 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 1221, 0, 0, 0, 0, 0, 0, + 220, 314, 0, 0, 0, 0, 0, 0, 0, 1080, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, @@ -3405,14 +3754,14 @@ var yyAct = [...]int{ 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 314, 0, 1219, 0, 0, 0, 0, 0, + 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 168, 169, 0, 936, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3451,7 +3800,7 @@ var yyAct = [...]int{ 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 1215, 0, 0, 0, 0, + 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, @@ -3465,178 +3814,39 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, + 0, 0, 0, 0, 0, 492, 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, - 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, - 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, - 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, - 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, - 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, - 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, - 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, - 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, - 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, - 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, - 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, - 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 1213, 0, 0, 0, - 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, - 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, - 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, - 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, - 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, - 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, - 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, - 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, - 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, - 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, - 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, - 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, - 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, - 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, - 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, - 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, - 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, - 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, - 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, - 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, - 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, - 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, - 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, - 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, - 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, - 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, - 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, - 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, - 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, - 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 314, 0, 1211, 0, 0, - 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, - 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, - 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, - 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, - 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, - 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, - 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, - 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, - 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, - 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, - 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, - 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, - 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, - 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, - 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, - 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, - 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, - 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, - 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, - 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, - 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, - 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, - 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, - 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, - 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, - 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, - 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, - 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, - 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, - 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, - 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, - 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, - 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, - 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, - 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, - 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, - 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, - 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, - 1186, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, - 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, - 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, - 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, - 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, - 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, - 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, - 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, - 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, - 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, - 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, - 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, - 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, - 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, - 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, - 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, - 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 184, 274, - 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, + 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, + 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, + 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, + 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, - 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, - 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, - 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, - 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, - 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, - 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, - 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, - 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, - 365, 385, 386, 387, 389, 296, 220, 1087, 0, 0, - 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 491, 405, 427, 0, 282, 0, + 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, @@ -3651,7 +3861,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, + 300, 0, 0, 441, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, @@ -3683,7 +3893,7 @@ var yyAct = [...]int{ 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, - 0, 0, 0, 1078, 223, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, @@ -3728,260 +3938,27 @@ var yyAct = [...]int{ 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, - 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, - 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, - 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, - 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, - 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, - 0, 0, 0, 167, 168, 169, 0, 934, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, - 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, - 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, - 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, - 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, - 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, - 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, - 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, - 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, - 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, - 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, - 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, - 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, - 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, - 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, - 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, - 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 184, 274, - 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, - 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, - 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, - 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, - 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, - 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, - 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, - 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, - 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, - 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, - 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, - 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, - 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, - 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, - 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, - 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, - 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 492, - 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, - 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, - 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, - 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, - 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, - 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, - 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, - 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, - 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, - 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, - 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, - 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, - 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, - 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, - 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, - 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, - 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, - 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, - 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, - 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, - 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, - 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, - 370, 378, 382, 397, 398, 409, 421, 426, 491, 405, - 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, - 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, - 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, - 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, - 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, - 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, - 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, - 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, - 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 245, 0, 300, 0, 0, 441, 0, 423, - 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, - 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, - 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, - 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, - 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, - 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, - 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, - 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, - 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, - 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, - 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, - 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, - 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, - 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, - 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, - 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, - 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, - 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, - 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, - 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, - 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, - 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, - 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, - 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, - 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, - 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, - 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, - 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, - 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, - 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, - 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, - 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, - 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, - 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, - 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, - 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, - 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1179, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 103, 0, 125, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, - 0, 0, 0, 0, 124, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 142, 0, 143, 0, 0, 0, 0, 1183, - 1184, 134, 133, 160, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 129, 1185, 136, 0, 1182, 0, 130, - 131, 0, 0, 0, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 151, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 132, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, - 0, 127, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 139, 144, 141, 147, 148, 149, 150, 152, - 153, 154, 155, 0, 0, 0, 0, 0, 156, 157, - 158, 159, + 385, 386, 387, 389, 296, 220, } var yyPact = [...]int{ - 3647, -1000, -351, 1605, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 3770, -1000, -347, 1608, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1559, 1204, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 579, 1219, -1000, 1464, 4260, -1000, 27530, 402, - -1000, 27069, 399, 116, 27530, -1000, 93, -1000, 77, 27530, - 89, 26608, -1000, -1000, -288, 12284, 1398, -42, -44, 27530, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1218, - 1517, 1525, 1557, 1067, 1606, -1000, 10427, 10427, 339, 339, - 339, 8583, -1000, -1000, 16446, 27530, 27530, 199, -1000, 1464, - -1000, -1000, 140, -1000, 232, 1162, -1000, 1159, -1000, 457, - 377, 262, 305, 297, 261, 256, 252, 250, 241, 218, - 208, 205, 267, -1000, 529, 529, -183, -184, 2791, 309, - 309, 309, 363, 1437, 1436, -1000, 498, -1000, 529, 529, - 139, 529, 529, 529, 529, 183, 178, 529, 529, 529, - 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, - 529, 529, 225, 1464, 161, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1570, 1192, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 607, 1251, -1000, 1481, 252, -1000, 27786, 407, + -1000, 27325, 406, 72, 27786, -1000, 142, -1000, 113, 27786, + 122, 26864, -1000, -1000, -277, 12540, 1429, -3, -5, 27786, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1258, + 1527, 1533, 1568, 1045, 1658, -1000, 10683, 10683, 345, 345, + 345, 8839, -1000, -1000, 16702, 27786, 27786, 404, -1000, 1481, + -1000, -1000, 173, -1000, 257, 1195, -1000, 1193, -1000, 466, + 578, 285, 344, 333, 283, 273, 265, 264, 263, 261, + 256, 254, 297, -1000, 556, 556, -142, -143, 2494, 336, + 336, 336, 360, 1454, 1452, -1000, 529, -1000, 556, 556, + 136, 556, 556, 556, 556, 222, 218, 556, 556, 556, + 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, + 556, 556, 302, 1481, 213, -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, @@ -4007,27 +3984,27 @@ 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, -1000, -1000, 27530, - 192, 27530, -1000, 475, 27530, 650, 650, 15, 650, 650, - 650, 650, 80, 467, -51, -1000, 79, 173, 75, 153, - 632, 230, 57, -1000, -1000, 150, 632, 14, -1000, 650, - 6683, 6683, 6683, -1000, 1452, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 361, -1000, -1000, -1000, -1000, 27530, 26147, - 307, 552, -1000, -1000, -1000, -1, -1000, -1000, 1112, 559, - -1000, 12284, 1278, 1167, 1167, -1000, -1000, 453, -1000, -1000, - 13667, 13667, 13667, 13667, 13667, 13667, 13667, 13667, 13667, 13667, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1167, 473, -1000, 11823, 1167, 1167, - 1167, 1167, 1167, 1167, 1167, 1167, 12284, 1167, 1167, 1167, - 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, - 1167, 1167, 1167, 1167, -1000, -1000, -1000, 27530, -1000, 1167, - 125, 1559, -1000, 1204, -1000, -1000, -1000, 1473, 12284, 12284, - 1559, -1000, 1325, 10427, -1000, -1000, 1460, -1000, -1000, -1000, - -1000, -1000, 703, 1588, -1000, 15050, 468, 1587, 25686, -1000, - 19225, 25225, 1158, 8108, -62, -1000, -1000, -1000, 543, 18303, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 27786, + 130, 27786, -1000, 487, 27786, 694, 694, 40, 694, 694, + 694, 694, 132, 479, -6, -1000, 114, 194, 115, 210, + 643, 267, 59, -1000, -1000, 204, 643, 123, -1000, 694, + 6939, 6939, 6939, -1000, 1475, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 358, -1000, -1000, -1000, -1000, 27786, 26403, + 281, 598, -1000, -1000, -1000, 32, -1000, -1000, 1116, 763, + -1000, 12540, 2176, 1199, 1199, -1000, -1000, 464, -1000, -1000, + 13923, 13923, 13923, 13923, 13923, 13923, 13923, 13923, 13923, 13923, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1452, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 1199, 486, -1000, 12079, 1199, 1199, + 1199, 1199, 1199, 1199, 1199, 1199, 12540, 1199, 1199, 1199, + 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, + 1199, 1199, 1199, 1199, -1000, -1000, -1000, 27786, -1000, 1199, + 138, 1570, -1000, 1192, -1000, -1000, -1000, 1476, 12540, 12540, + 1570, -1000, 1383, 10683, -1000, -1000, 1625, -1000, -1000, -1000, + -1000, -1000, 704, 1595, -1000, 15306, 485, 1590, 25942, -1000, + 19481, 25481, 1185, 8364, -27, -1000, -1000, -1000, 580, 18559, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1475, -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, @@ -4039,195 +4016,196 @@ 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, 1074, 27530, -1000, -1000, 4377, 920, -1000, - 1217, -1000, 1058, -1000, 1177, 1228, 398, 920, 388, 385, - 381, -1000, -142, -1000, -1000, -1000, -1000, -1000, 529, 529, - 266, 4260, 28005, -1000, -1000, -1000, 24757, 1216, 920, -1000, - 1205, -1000, 1485, 335, 514, 514, 920, -1000, -1000, 27530, - 920, 1484, 1481, 27530, 27530, -1000, 24296, -1000, 23835, 23374, - 851, 27530, 22913, 22452, 21991, 21530, 21069, -1000, 1300, -1000, - 1201, -1000, -1000, -1000, 27530, 27530, 27530, -33, -1000, -1000, - 27530, 920, -1000, -1000, 839, 811, 529, 529, 809, 977, - 971, 963, 529, 529, 806, 961, 957, 167, 805, 804, - 798, 858, 958, 104, 810, 773, 795, 27530, 1197, 27530, - -1000, 146, 553, 243, 542, 1464, 1396, 1157, 355, 395, - 920, 315, 315, -1000, 7158, -1000, -1000, 956, 12284, -1000, - 633, 632, 632, -1000, -1000, -1000, -1000, -1000, -1000, 650, - 27530, 633, -1000, -1000, -1000, 632, 650, 27530, 650, 650, - 650, 650, 632, 632, 632, 650, 27530, 27530, 27530, 27530, - 27530, 27530, 27530, 27530, 27530, 6683, 6683, 6683, 509, 650, - -1000, 1269, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 88, -1000, -1000, -1000, -1000, -1000, 1605, -1000, -1000, -1000, - -117, 1156, 20608, -1000, -292, -294, -297, -301, -1000, -1000, - -1000, -305, -308, -1000, -1000, -1000, 12284, 12284, 12284, 12284, - 850, 511, 13667, 701, 718, 13667, 13667, 13667, 13667, 13667, - 13667, 13667, 13667, 13667, 13667, 13667, 13667, 13667, 13667, 13667, - 685, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 920, - -1000, 1603, 966, 966, 485, 485, 485, 485, 485, 485, - 485, 485, 485, 14128, 9044, 7158, 1067, 1053, 1559, 10427, - 10427, 12284, 12284, 11349, 10888, 10427, 1447, 567, 559, 27530, - -1000, 840, -1000, -1000, 13206, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 27530, 27530, 10427, - 10427, 10427, 10427, 10427, -1000, 1154, -1000, -175, 15985, 12284, - 947, 1525, 1067, 1460, 1491, 1598, 499, 913, 1152, -1000, - 741, 1525, 17842, 1170, -1000, 1460, -1000, -1000, -1000, 27530, - -1000, -1000, 20147, -1000, -1000, 6208, 27530, 201, 27530, -1000, - 1148, 1362, -1000, -1000, -1000, 1512, 17381, 27530, 1141, 1127, - -1000, -1000, 462, 7633, -62, -1000, 7633, 1136, -1000, -103, - -70, 9505, 464, -1000, -1000, -1000, 2791, 14589, 1088, 1428, - -16, -1000, -1000, -1000, 1177, -1000, 1177, 1177, 1177, 1177, - -33, -33, -33, -33, -1000, -1000, -1000, -1000, -1000, 1195, - 1194, -1000, 1177, 1177, 1177, 1177, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1192, 1192, 1192, 1179, 1179, 304, -1000, - 12284, 109, 27530, 1502, 787, 146, 329, 1255, 920, 920, - 920, 329, -1000, 933, 926, -1000, 1145, -1000, -1000, 1556, - -1000, -1000, 601, 640, 621, 578, 27530, 129, 198, -1000, - 296, -1000, 27530, 920, 1480, 514, 920, -1000, 920, -1000, - -1000, -1000, -1000, 459, -1000, -1000, 920, 1144, -1000, 1151, - 698, 611, 692, 610, 1144, -1000, -1000, -162, 1144, -1000, - 1144, -1000, 1144, -1000, 1144, -1000, 1144, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 561, 27530, 129, 685, -1000, - 345, -1000, -1000, 685, 685, -1000, -1000, -1000, -1000, 946, - 939, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1131, 27786, -1000, -1000, 2830, + 917, -1000, 1249, -1000, 1126, -1000, 1220, 1266, 402, 917, + 395, 394, 392, -1000, -89, -1000, -1000, -1000, -1000, -1000, + 556, 556, 292, 252, 4402, -1000, -1000, -1000, 25013, 1248, + 917, -1000, 1235, -1000, 1495, 348, 527, 527, 917, -1000, + -1000, 27786, 917, 1494, 1492, 27786, 27786, -1000, 24552, -1000, + 24091, 23630, 864, 27786, 23169, 22708, 22247, 21786, 21325, -1000, + 1353, -1000, 1255, -1000, -1000, -1000, 27786, 27786, 27786, 64, + -1000, -1000, 27786, 917, -1000, -1000, 860, 859, 556, 556, + 856, 936, 933, 929, 556, 556, 853, 928, 1046, 232, + 838, 811, 803, 842, 926, 120, 797, 778, 799, 27786, + 1234, 27786, -1000, 175, 504, 277, 579, 1481, 1427, 1178, + 357, 399, 917, 346, 346, -1000, 7414, -1000, -1000, 921, + 12540, -1000, 650, 643, 643, -1000, -1000, -1000, -1000, -1000, + -1000, 694, 27786, 650, -1000, -1000, -1000, 643, 694, 27786, + 694, 694, 694, 694, 643, 643, 643, 694, 27786, 27786, + 27786, 27786, 27786, 27786, 27786, 27786, 27786, 6939, 6939, 6939, + 538, 694, -1000, 1307, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 121, -1000, -1000, -1000, -1000, -1000, 1608, -1000, + -1000, -1000, -101, 1177, 20864, -1000, -290, -291, -292, -293, + -1000, -1000, -1000, -294, -299, -1000, -1000, -1000, 12540, 12540, + 12540, 12540, 737, 530, 13923, 785, 573, 13923, 13923, 13923, + 13923, 13923, 13923, 13923, 13923, 13923, 13923, 13923, 13923, 13923, + 13923, 13923, 646, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 917, -1000, 1606, 968, 968, 498, 498, 498, 498, + 498, 498, 498, 498, 498, 14384, 9300, 7414, 1045, 1108, + 1570, 10683, 10683, 12540, 12540, 11605, 11144, 10683, 1455, 603, + 763, 27786, -1000, 949, -1000, -1000, 13462, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 27786, + 27786, 10683, 10683, 10683, 10683, 10683, -1000, 1175, -1000, -172, + 16241, 12540, 919, 1533, 1045, 1625, 1506, 1600, 533, 980, + 1174, -1000, 770, 1533, 18098, 1225, -1000, 1625, -1000, -1000, + -1000, 27786, -1000, -1000, 20403, -1000, -1000, 6464, 27786, 250, + 27786, -1000, 1203, 1283, -1000, -1000, -1000, 1519, 17637, 27786, + 1128, 1044, -1000, -1000, 476, 7889, -27, -1000, 7889, 1158, + -1000, -29, -39, 9761, 491, -1000, -1000, -1000, 2494, 14845, + 1038, 1436, 46, -1000, -1000, -1000, 1220, -1000, 1220, 1220, + 1220, 1220, 64, 64, 64, 64, -1000, -1000, -1000, -1000, + -1000, 1232, 1231, -1000, 1220, 1220, 1220, 1220, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -344, 27530, -1000, - 138, 539, 187, 273, 204, 27530, 118, 1519, 157, 170, - 27530, 27530, 315, 1267, 27530, 1505, 27530, -1000, -1000, -1000, - -1000, 559, 27530, -1000, -1000, 650, 650, -1000, -1000, 27530, - 650, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 650, + -1000, -1000, -1000, -1000, -1000, 1230, 1230, 1230, 1221, 1221, + 331, -1000, 12540, 140, 27786, 1503, 798, 175, 351, 1287, + 917, 917, 917, 351, -1000, 1031, 1026, -1000, 1172, -1000, + -1000, 1566, -1000, -1000, 608, 670, 668, 554, 27786, 149, + 241, -1000, 323, -1000, 27786, 917, 1491, 527, 917, -1000, + 917, -1000, -1000, -1000, -1000, 472, -1000, -1000, 917, 1166, + -1000, 1151, 690, 656, 689, 640, 1166, -1000, -1000, -115, + 1166, -1000, 1166, -1000, 1166, -1000, 1166, -1000, 1166, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 549, 27786, 149, + 646, -1000, 355, -1000, -1000, 646, 646, -1000, -1000, -1000, + -1000, 918, 910, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 938, -1000, 27530, 27530, -1000, -1000, - -1000, -1000, -1000, 44, -107, 169, -1000, -1000, -1000, -1000, - 1522, -1000, 559, 511, 717, 555, -1000, -1000, 792, -1000, - -1000, 2333, -1000, -1000, -1000, -1000, 701, 13667, 13667, 13667, - 564, 2333, 2604, 1870, 1740, 485, 651, 651, 505, 505, - 505, 505, 505, 681, 681, -1000, -1000, -1000, -1000, 840, - -1000, -1000, -1000, 840, 10427, 10427, 1143, 1167, 458, -1000, - 1218, -1000, -1000, 1525, 1035, 1035, 872, 834, 605, 1583, - 1035, 594, 1581, 1035, 1035, 10427, -1000, -1000, 596, -1000, - 12284, 840, -1000, 1182, 1139, 1137, 1035, 840, 840, 1035, - 1035, 27530, -1000, -284, -1000, -123, 474, 1167, -1000, 19686, - -1000, -1000, 840, 1112, -1000, 1473, -1000, -1000, 1415, -1000, - 1321, 12284, 12284, 12284, -1000, -1000, -1000, 1473, 1524, -1000, - 1339, 1331, 1571, 10427, 19225, 1460, -1000, -1000, -1000, 446, - 1571, 1130, 1167, -1000, 27530, 19225, 19225, 19225, 19225, 19225, - -1000, 1303, 1286, -1000, 1302, 1280, 1290, 27530, -1000, 1049, - 1067, 17381, 201, 1100, 19225, 27530, -1000, -1000, 19225, 27530, - 5733, -1000, 1136, -62, -111, -1000, -1000, -1000, -1000, 559, - -1000, 912, -1000, 2480, -1000, 299, -1000, -1000, -1000, -1000, - 484, 1510, 1402, -20, -1000, -1000, -33, -33, -1000, -1000, - 464, 751, 464, 464, 464, 937, 937, -1000, -1000, -1000, - -1000, -1000, 770, -1000, -1000, -1000, 754, -1000, -1000, 881, - 1233, 109, -1000, -1000, 529, 932, 1430, 27530, -1000, -1000, - 1075, 138, 27530, 582, 1266, -1000, 1255, 1255, 1255, 27530, - -1000, -1000, -1000, -1000, 3848, 27530, 1045, -1000, 126, 27530, - 1037, 27530, -1000, 1042, 1191, -1000, 920, -1000, -1000, 7158, - -1000, 27530, 1167, -1000, -1000, -1000, -1000, 390, 1461, 1459, - 129, 126, 464, 920, -1000, -1000, -1000, -1000, -1000, -347, - 1040, 370, 127, 124, 27530, 27530, 27530, 27530, 27530, 435, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 171, 336, -1000, - 27530, 27530, 403, -1000, -1000, -1000, 632, -1000, -1000, 632, - -1000, -1000, -1000, -1000, -1000, -1000, 1443, -112, -321, -1000, - -318, -1000, -1000, -1000, -1000, 564, 2333, 2309, -1000, 13667, - 13667, -1000, -1000, 1035, 1035, 10427, 7158, 1559, 1473, -1000, - -1000, 277, 685, 277, 13667, 13667, -1000, 13667, 13667, -1000, - -156, 1128, 573, -1000, 12284, 825, -1000, -1000, 13667, 13667, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 380, - 376, 375, 27530, -1000, -1000, -1000, 882, 925, 1315, 559, - 559, -1000, -1000, 27530, -1000, -1000, -1000, -1000, 1567, 12284, - -1000, 1134, -1000, 5258, 1525, 1265, 27530, 1167, 1605, 15524, - 27530, 1096, -1000, 535, 1362, 1252, 1264, 1294, -1000, -1000, - -1000, -1000, 1283, -1000, 1282, -1000, -1000, -1000, -1000, -1000, - 1067, 1571, 19225, 1078, -1000, 1078, -1000, 429, -1000, -1000, - -1000, -118, -128, -1000, -1000, -1000, 2791, -1000, -1000, -1000, - 662, 13667, 1597, -1000, 919, -1000, 1479, 1475, -1000, 1185, - -1000, -1000, -1000, 464, 464, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 1031, -1000, 1029, 1132, 1027, 49, -1000, 1174, - 1442, 529, 529, -1000, 752, -1000, 920, -1000, -1000, 366, - -1000, 1501, 27530, 1261, 1260, 1259, -1000, 1549, 1131, -1000, - 27530, -1000, -1000, 27530, -1000, -1000, 1329, 109, 27530, -1000, - -1000, -1000, 198, 27530, -1000, 966, 126, -1000, -1000, -1000, - -1000, -1000, -1000, 27530, 145, -1000, 1183, 755, -1000, 1208, - -1000, -1000, -1000, -1000, 62, 182, -1000, 27530, 394, 1233, - 27530, -1000, -1000, -1000, 650, 650, -1000, 1440, -1000, 920, - -1000, 13667, 2333, 2333, -1000, -1000, 840, -1000, 1525, -1000, - 840, 1177, 1177, -1000, 1177, 1179, -1000, 1177, 66, 1177, - 61, 840, 840, 2567, 2529, 2472, 2273, 1167, -150, -1000, - 559, 12284, 2211, 1886, 1167, 1167, 1167, 1020, 905, -33, - -1000, -1000, -1000, 1562, 1545, 559, -1000, -1000, -1000, 1474, - 1093, 1104, -1000, -1000, 9966, 1022, 1328, 425, 1020, 1559, - 27530, 12284, -1000, -1000, 12284, 1176, -1000, 12284, -1000, -1000, - -1000, 1559, 1559, 1078, -1000, -1000, 482, -1000, -1000, -1000, - -1000, -1000, 2333, -56, -1000, -1000, -1000, 13667, -1000, -1000, - -33, 901, -33, 720, -1000, 711, -1000, -1000, -225, -1000, - -1000, 1110, 1275, -1000, -1000, 27530, -1000, -1000, 27530, 27530, - 27530, 27530, 27530, -1000, -1000, 179, -1000, 1018, 1011, -1000, - -181, -1000, -1000, 1175, -1000, -1000, -1000, 918, -1000, -167, - 920, 27530, 27530, 27530, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 2333, -1000, 1473, -1000, -1000, 180, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 13667, 13667, 13667, 13667, - 13667, 1525, 899, 559, 13667, 13667, 18764, 27530, 27530, 16907, - -33, -17, -1000, 12284, 12284, 1469, -1000, 1167, -1000, 1166, - 27530, 1167, 27530, -1000, 1525, -1000, 559, 559, 27530, 559, - 1525, -1000, -1000, 1311, 464, -1000, 464, 886, 856, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1175, -1000, -1000, - -1000, 1131, -1000, 193, 283, -1000, 198, -1000, -186, -190, - 1508, 27530, -1000, -1000, 7158, -1000, -1000, 1173, 1235, -1000, - -1000, -1000, -1000, 1182, 1182, 1182, 1182, 202, 840, -1000, - 1182, 1182, 1005, -1000, 1005, 1005, 474, -279, -1000, 1393, - 1352, 559, 1112, 1593, -1000, 1167, 1605, 417, 1104, -1000, - -1000, 1001, -1000, -1000, -1000, -1000, -1000, -1000, 1507, 1167, - 27530, -1000, -1000, -1000, 1204, 996, 1111, -1000, 528, 27530, - 27530, -1000, -1000, -1000, -1000, 840, 123, -173, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -17, 246, -1000, 1389, 1352, - -1000, 1544, 1388, 1533, -1000, 27530, 1104, 27530, -1000, 759, - 1204, 12745, 1164, 175, -1000, 7158, 4783, 991, -1000, -1000, - 1312, -159, -178, 1371, 1373, 1373, 1389, -1000, 1532, 1531, - -1000, 897, 1530, 890, 1101, -1000, -1000, -1000, 613, 889, - -1000, -1000, -1000, 175, 1182, 840, 27530, -1000, -58, -1000, - -1000, -1000, -1000, -1000, 1208, -1000, 1310, -1000, 1344, 776, - -1000, -1000, -1000, -1000, 888, 867, -1000, 865, -1000, -1000, - -1000, -1000, -1000, -1000, 984, 300, -1000, -1000, -167, -169, - -1000, 733, -1000, -1000, -1000, -1000, -1000, 1258, 141, -1000, - -176, -1000, -1000, 1234, -1000, 1580, -1000, -179, -1000, 1591, - 437, 437, -1000, -1000, -1000, -1000, 295, 835, -1000, -1000, - -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -340, + 27786, -1000, 180, 577, 229, 287, 255, 27786, 164, 1525, + 182, 217, 27786, 27786, 346, 1306, 27786, 1513, 27786, -1000, + -1000, -1000, -1000, 763, 27786, -1000, -1000, 694, 694, -1000, + -1000, 27786, 694, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 694, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 908, -1000, 27786, 27786, + -1000, -1000, -1000, -1000, -1000, 91, -46, 192, -1000, -1000, + -1000, -1000, 1530, -1000, 763, 530, 633, 630, -1000, -1000, + 765, -1000, -1000, 2030, -1000, -1000, -1000, -1000, 785, 13923, + 13923, 13923, 1186, 2030, 2438, 2499, 2109, 498, 714, 714, + 510, 510, 510, 510, 510, 905, 905, -1000, -1000, -1000, + -1000, 949, -1000, -1000, -1000, 949, 10683, 10683, 1165, 1199, + 460, -1000, 1258, -1000, -1000, 1533, 1078, 1078, 878, 909, + 610, 1588, 1078, 600, 1583, 1078, 1078, 10683, -1000, -1000, + 649, -1000, 12540, 949, -1000, 1259, 1161, 1159, 1078, 949, + 949, 1078, 1078, 27786, -1000, -276, -1000, -64, 477, 1199, + -1000, 19942, -1000, -1000, 949, 1116, -1000, 1476, -1000, -1000, + 1425, -1000, 1379, 12540, 12540, 12540, -1000, -1000, -1000, 1476, + 1532, -1000, 1406, 1401, 1580, 10683, 19481, 1625, -1000, -1000, + -1000, 457, 1580, 1201, 1199, -1000, 27786, 19481, 19481, 19481, + 19481, 19481, -1000, 1370, 1368, -1000, 1362, 1344, 1320, 27786, + -1000, 1106, 1045, 17637, 250, 1137, 19481, 27786, -1000, -1000, + 19481, 27786, 5989, -1000, 1158, -27, -68, -1000, -1000, -1000, + -1000, 763, -1000, 881, -1000, 2254, -1000, 334, -1000, -1000, + -1000, -1000, 750, 1517, 1433, 36, -1000, -1000, 64, 64, + -1000, -1000, 491, 756, 491, 491, 491, 907, 907, -1000, + -1000, -1000, -1000, -1000, 795, -1000, -1000, -1000, 757, -1000, + -1000, 639, 1328, 140, -1000, -1000, 556, 898, 1438, 27786, + -1000, -1000, 1003, 180, 27786, 617, 1305, -1000, 1287, 1287, + 1287, 27786, -1000, -1000, -1000, -1000, 3581, 27786, 1102, -1000, + 143, 27786, 993, 27786, -1000, 1096, 1228, -1000, 917, -1000, + -1000, 7414, -1000, 27786, 1199, -1000, -1000, -1000, -1000, 397, + 1480, 1479, 149, 143, 491, 917, -1000, -1000, -1000, -1000, + -1000, -337, 1090, 385, 162, 184, 27786, 27786, 27786, 27786, + 27786, 441, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 215, + 354, -1000, 27786, 27786, 448, -1000, -1000, -1000, 643, -1000, + -1000, 643, -1000, -1000, -1000, -1000, -1000, -1000, 1473, -52, + -313, -1000, -310, -1000, -1000, -1000, -1000, 1186, 2030, 2423, + -1000, 13923, 13923, -1000, -1000, 1078, 1078, 10683, 7414, 1570, + 1476, -1000, -1000, 484, 646, 484, 13923, 13923, -1000, 13923, + 13923, -1000, -107, 1154, 550, -1000, 12540, 830, -1000, -1000, + 13923, 13923, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 391, 390, 388, 27786, -1000, -1000, -1000, 849, 897, + 1377, 763, 763, -1000, -1000, 27786, -1000, -1000, -1000, -1000, + 1577, 12540, -1000, 1156, -1000, 5514, 1533, 1300, 27786, 1199, + 1608, 15780, 27786, 1147, -1000, 557, 1283, 1281, 1299, 1378, + -1000, -1000, -1000, -1000, 1345, -1000, 1319, -1000, -1000, -1000, + -1000, -1000, 1045, 1580, 19481, 1072, -1000, 1072, -1000, 455, + -1000, -1000, -1000, -67, -47, -1000, -1000, -1000, 2494, -1000, + -1000, -1000, 687, 13923, 1599, -1000, 894, -1000, 1487, 1486, + -1000, 1227, -1000, -1000, -1000, 491, 491, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 1074, -1000, 1069, 1149, 1058, 88, + -1000, 1263, 1468, 556, 556, -1000, 735, -1000, 917, -1000, + -1000, 378, -1000, 1511, 27786, 1298, 1297, 1294, -1000, 1565, + 1136, -1000, 27786, -1000, -1000, 27786, -1000, -1000, 1400, 140, + 27786, -1000, -1000, -1000, 241, 27786, -1000, 968, 143, -1000, + -1000, -1000, -1000, -1000, -1000, 27786, 176, -1000, 1223, 940, + -1000, 1271, -1000, -1000, -1000, -1000, 135, 225, -1000, 27786, + 446, 1328, 27786, -1000, -1000, -1000, 694, 694, -1000, 1467, + -1000, 917, -1000, 13923, 2030, 2030, -1000, -1000, 949, -1000, + 1533, -1000, 949, 1220, 1220, -1000, 1220, 1221, -1000, 1220, + 104, 1220, 102, 949, 949, 2379, 2325, 2309, 1890, 1199, + -102, -1000, 763, 12540, 1875, 1633, 1199, 1199, 1199, 1022, + 882, 64, -1000, -1000, -1000, 1573, 1564, 763, -1000, -1000, + -1000, 1499, 1152, 1027, -1000, -1000, 10222, 1054, 1399, 452, + 1022, 1570, 27786, 12540, -1000, -1000, 12540, 1208, -1000, 12540, + -1000, -1000, -1000, 1570, 1570, 1072, -1000, -1000, 456, -1000, + -1000, -1000, -1000, -1000, 2030, -85, -1000, -1000, -1000, 13923, + -1000, -1000, 64, 880, 64, 732, -1000, 722, -1000, -1000, + -204, -1000, -1000, 1173, 1313, -1000, -1000, 27786, -1000, -1000, + 27786, 27786, 27786, 27786, 27786, -1000, -1000, 238, -1000, 1019, + 1016, -1000, -145, -1000, -1000, 1206, -1000, -1000, -1000, 982, + -1000, -117, 917, 27786, 27786, 27786, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 2030, -1000, 1476, -1000, -1000, 236, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 13923, 13923, + 13923, 13923, 13923, 1533, 874, 763, 13923, 13923, 19020, 27786, + 27786, 17163, 64, 51, -1000, 12540, 12540, 1483, -1000, 1199, + -1000, 1188, 27786, 1199, 27786, -1000, 1533, -1000, 763, 763, + 27786, 763, 1533, -1000, -1000, 1282, 491, -1000, 491, 978, + 954, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1206, + -1000, -1000, -1000, 1136, -1000, 233, 311, -1000, 241, -1000, + -150, -152, 1516, 27786, -1000, -1000, 7414, -1000, -1000, 1200, + 1285, -1000, -1000, -1000, -1000, 1259, 1259, 1259, 1259, 174, + 949, -1000, 1259, 1259, 1013, -1000, 1013, 1013, 477, -255, + -1000, 1426, 1405, 763, 1116, 1598, -1000, 1199, 1608, 430, + 1027, -1000, -1000, 999, -1000, -1000, -1000, -1000, -1000, -1000, + 1507, 1199, 27786, -1000, -1000, -1000, 1192, 989, 1051, -1000, + 555, 27786, 27786, -1000, -1000, -1000, -1000, 949, 170, -124, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 51, 303, -1000, + 1415, 1405, -1000, 1563, 1420, 1560, -1000, 27786, 1027, 27786, + -1000, 731, 1192, 13001, 1187, 219, -1000, 7414, 5039, 985, + -1000, -1000, 1376, -111, -137, 1412, 1414, 1414, 1415, -1000, + 1559, 1558, -1000, 873, 1540, 871, 969, -1000, -1000, -1000, + 683, 870, -1000, -1000, -1000, 219, 1259, 949, 27786, -1000, + -43, -1000, -1000, -1000, -1000, -1000, 1271, -1000, 1375, -1000, + 1410, 784, -1000, -1000, -1000, -1000, 867, 866, -1000, 715, + -1000, -1000, -1000, -1000, -1000, -1000, 952, 322, -1000, -1000, + -117, -122, -1000, 729, -1000, -1000, -1000, -1000, -1000, 1291, + 187, -1000, -132, -1000, -1000, 1289, -1000, 1587, -1000, -138, + -1000, 1589, 470, 470, -1000, -1000, -1000, -1000, 318, 771, + -1000, -1000, -1000, -1000, } var yyPgo = [...]int{ - 0, 1854, 1853, 14, 86, 89, 1852, 1851, 1850, 1849, - 128, 127, 123, 1846, 1843, 1841, 1840, 1839, 1838, 1836, - 1835, 1833, 1832, 1831, 1828, 61, 140, 41, 45, 141, - 1827, 1826, 28, 1825, 1824, 1823, 152, 120, 587, 1822, - 151, 1820, 1819, 1818, 1816, 1815, 1814, 1812, 1811, 1810, - 1809, 1808, 1806, 1805, 1804, 260, 1803, 1802, 4, 1801, - 33, 1800, 1799, 1797, 1793, 1791, 93, 1790, 1789, 1788, - 114, 1787, 1786, 48, 190, 51, 82, 1785, 1781, 79, - 121, 1780, 64, 104, 1779, 1778, 503, 1777, 42, 76, - 91, 1776, 44, 1774, 1773, 53, 1771, 1769, 1768, 78, - 1764, 1763, 1889, 1762, 72, 88, 17, 40, 1761, 1760, - 1759, 1757, 37, 2122, 1756, 1755, 23, 1754, 1752, 138, - 1751, 99, 21, 1750, 19, 13, 20, 1749, 90, 1748, - 103, 47, 35, 1746, 84, 1745, 1744, 1743, 1740, 43, - 1738, 80, 107, 22, 1737, 1735, 1732, 18, 11, 1729, - 1728, 1727, 1726, 1723, 1722, 10, 1721, 16, 1719, 27, - 1718, 8, 12, 74, 67, 24, 6, 1716, 154, 1715, - 29, 115, 75, 113, 1713, 1712, 1710, 885, 137, 1709, - 1708, 68, 1707, 100, 101, 1706, 162, 1705, 1702, 56, - 1294, 1459, 34, 116, 1700, 1699, 2628, 59, 81, 30, - 1698, 57, 1695, 1693, 1692, 124, 117, 69, 867, 46, - 1691, 1690, 1689, 1688, 1687, 1686, 1685, 31, 32, 63, - 108, 25, 1682, 1680, 1679, 65, 39, 1678, 111, 106, - 73, 110, 1676, 119, 94, 58, 1675, 83, 1671, 1665, - 1663, 1657, 50, 1656, 1653, 1652, 1651, 109, 105, 71, - 36, 1650, 38, 66, 98, 102, 1644, 26, 122, 7, - 1642, 2, 0, 1641, 3, 130, 164, 118, 1640, 1639, - 5, 1630, 1, 1629, 1625, 85, 1622, 1621, 1614, 9, - 1613, 1612, 182, 2170, 112, 1611, 125, + 0, 1927, 1924, 13, 86, 88, 1923, 1922, 1921, 1919, + 136, 134, 132, 1914, 1913, 1909, 1904, 1902, 1900, 1899, + 1898, 1896, 1895, 1893, 1892, 67, 123, 42, 45, 138, + 1891, 1890, 32, 1889, 1888, 1887, 128, 126, 577, 1883, + 125, 1882, 1881, 1879, 1878, 1877, 1875, 1874, 1873, 1869, + 1867, 1866, 1865, 1862, 1861, 227, 1859, 1858, 4, 1857, + 36, 1856, 1855, 1853, 1851, 1849, 94, 1848, 1842, 1841, + 120, 1840, 1839, 56, 206, 51, 75, 1838, 1837, 93, + 129, 1835, 59, 105, 1833, 1832, 946, 1830, 46, 81, + 76, 1829, 50, 1828, 1826, 57, 1825, 1822, 1819, 79, + 1818, 1816, 65, 1814, 72, 84, 18, 44, 1813, 1812, + 1811, 1810, 33, 2545, 1808, 1807, 30, 1804, 1803, 140, + 1799, 90, 25, 1797, 26, 20, 21, 1796, 89, 1795, + 8, 58, 37, 1794, 83, 1793, 1792, 1791, 1786, 43, + 1785, 82, 106, 22, 1784, 1783, 1782, 7, 16, 1779, + 1764, 1762, 1759, 1757, 1754, 11, 1753, 5, 1752, 35, + 1751, 23, 19, 78, 119, 31, 12, 1748, 118, 1747, + 29, 112, 73, 108, 1746, 1745, 1744, 923, 149, 1743, + 1742, 223, 1740, 110, 104, 1739, 176, 1738, 1734, 63, + 1316, 1668, 9, 122, 1731, 1730, 2782, 74, 80, 27, + 1725, 68, 1723, 1718, 1715, 139, 113, 61, 903, 53, + 1709, 1708, 1704, 1703, 1702, 1701, 1700, 47, 24, 34, + 109, 28, 1697, 1696, 1694, 66, 41, 1693, 116, 115, + 69, 98, 1692, 121, 103, 64, 1681, 39, 1677, 1676, + 1674, 1673, 48, 1672, 1671, 1670, 1667, 111, 100, 71, + 38, 1665, 40, 87, 99, 107, 1663, 15, 124, 6, + 1660, 3, 0, 1659, 10, 130, 175, 102, 1654, 1642, + 1, 1640, 2, 1638, 1637, 85, 1631, 1629, 1628, 17, + 1622, 1616, 2891, 219, 114, 1614, 131, } -//line sql.y:5277 +//line sql.y:5279 type yySymType struct { union interface{} empty struct{} @@ -4781,7 +4759,7 @@ var yyR1 = [...]int{ 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 190, 190, 190, 190, 190, 190, 190, + 189, 189, 189, 189, 189, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, @@ -4808,7 +4786,7 @@ var yyR1 = [...]int{ 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 282, 283, 205, 206, 206, 206, + 190, 190, 190, 190, 282, 283, 205, 206, 206, 206, } var yyR2 = [...]int{ @@ -4950,7 +4928,7 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, } var yyChk = [...]int{ @@ -5026,163 +5004,163 @@ var yyChk = [...]int{ 373, 349, 202, 143, 72, 58, 446, 114, 374, 375, 100, 376, 103, 75, 451, 111, 16, 70, 41, 377, 203, 378, 175, 379, 323, 380, 131, 160, 340, 68, - 381, 167, 306, 6, 346, 31, 189, 177, 66, 382, - 168, 119, 347, 348, 171, 101, 5, 174, 33, 10, - 73, 76, 337, 338, 339, 56, 353, 118, 13, 383, - 324, 112, 318, -239, 130, -226, -230, -191, 184, -255, - 180, -102, -248, -247, -191, -71, -186, 169, 178, 177, - 174, -266, 111, 224, 331, 167, -36, -37, -168, 147, - 201, 84, 84, -230, -229, -228, -267, 203, 184, -254, - -246, 176, 185, -236, 177, 178, -231, 169, 29, -267, - -231, 175, 185, 203, 203, 108, 203, 108, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 200, -237, 122, - -237, 357, 357, -242, -267, -267, -267, 171, 34, 34, - -188, -231, 171, 23, -237, -237, -168, 147, -237, -237, - -237, -237, 211, 211, -237, -237, -237, -237, -237, -237, - -237, -237, -237, -237, -237, -237, -237, -237, -237, 168, - -266, -80, 316, 231, 79, -38, 213, -22, -102, -186, - 169, 170, -266, -102, 154, -102, -181, 130, 13, -181, - -178, 307, 305, 292, 297, -181, -181, -181, -181, 214, - 290, -232, 169, 34, 181, 307, 214, 290, 214, 215, - 214, 215, 300, 310, 214, -201, 12, 132, 331, 295, - 299, 207, 168, 208, 170, 309, -262, 447, 215, -201, - 307, 210, -181, -206, -282, -192, 263, -206, -206, 31, - 171, -191, -57, -191, 90, -7, -3, -11, -10, -12, - 122, -78, 307, -66, 148, 462, 448, 449, 450, 447, - 304, 455, 453, 451, 214, 452, 84, 113, 111, 112, - 129, -86, -110, 132, 114, 130, 131, 116, 134, 133, - 144, 137, 138, 139, 140, 141, 142, 143, 135, 136, - 147, 122, 123, 124, 125, 126, 127, 128, -176, -282, - -128, -282, 155, 156, -113, -113, -113, -113, -113, -113, - -113, -113, -113, -113, -282, 154, -2, -122, -4, -282, - -282, -282, -282, -282, -282, -282, -282, -135, -86, -282, - -286, -282, -286, -119, -282, -286, -119, -286, -119, -286, - -286, -119, -286, -119, -286, -286, -119, -282, -282, -282, - -282, -282, -282, -282, -205, -274, -275, -105, -102, -282, - 231, -139, -3, -55, -159, 20, 32, -86, -140, -141, - -86, -139, 58, -74, -76, -79, 62, 63, 96, 12, - -194, -193, 23, -191, 90, 154, 12, -103, 27, -102, - -88, -89, -90, -91, -105, -129, -282, 12, -95, -96, - -102, -104, -196, 84, 237, -171, -208, -173, -172, 321, - 323, 122, -195, -191, 90, 30, 85, 84, -102, -210, - -213, -215, -214, -216, -211, -212, 260, 261, 148, 264, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 31, 192, 256, 257, 258, 259, 276, 277, 278, 279, - 280, 281, 282, 283, 243, 262, 351, 244, 245, 246, - 247, 248, 249, 251, 252, 253, 254, 255, -265, -262, - 83, 85, 84, -217, 83, -80, 168, -262, 169, 169, - 169, -55, 340, -237, -237, 200, -29, -26, -258, 16, - -25, -26, 162, 104, 105, 159, 83, -226, 83, -235, - -265, -262, 83, 29, 175, 174, -234, -231, -234, -235, - -262, -130, -191, -196, -262, 29, 29, -164, -191, -164, - -164, 21, -164, 21, -164, 21, 91, -191, -164, 21, - -164, 21, -164, 21, -164, 21, -164, 21, 30, 77, - 78, 30, 80, 81, 82, -130, -130, -226, -168, -102, - -262, 91, 91, -237, -237, 91, 90, 90, 90, -237, - -237, 91, 90, -262, 90, -268, 186, 228, 230, 91, - 91, 91, 91, 30, 90, -269, 30, 469, 468, 470, - 471, 472, 91, 30, 91, 30, 91, -191, 83, -102, - -83, 218, 157, 159, 162, 75, 90, 232, 122, 43, - 84, 171, 168, -262, -183, 173, -183, -197, -196, -189, - 90, -86, -233, 12, 132, -201, -201, -181, -102, -233, - -201, -181, -102, -181, -181, -181, -181, -201, -201, -201, - -181, -196, -196, -102, -102, -102, -102, -102, -102, -102, - -206, -206, -206, -182, 130, -181, 75, -204, 240, 274, - 441, 442, 443, 84, 353, -95, 447, 447, 447, 447, - 447, 447, -86, -86, -86, -86, -120, 100, 114, 101, - 102, -113, -121, -125, -128, 95, 132, 130, 131, 116, - -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, - -113, -113, -113, -113, -113, -207, -262, 90, 148, -262, - -112, -112, -191, -75, 22, 37, -74, -192, -197, -189, - -70, -283, -283, -139, -74, -74, -86, -86, -130, 90, - -74, -130, 90, -74, -74, -69, 22, 37, -133, -134, - 118, -130, -283, -113, -191, -191, -74, -75, -75, -74, - -74, 84, -276, 323, 324, 445, -199, 203, -198, 23, - -196, 90, -123, -122, 90, -143, -283, -144, 27, 10, - 132, 84, 19, 84, -142, 25, 26, -143, -114, -191, - 91, 94, -87, 84, 12, -79, -102, -193, 139, -197, - -102, -163, 203, -102, 31, 84, -98, -100, -99, -101, - 65, 69, 71, 66, 67, 68, 72, -202, 23, -88, - -3, -282, -102, -95, -284, 84, 12, 76, -284, 84, - 154, -171, -173, 84, 322, 324, 325, 75, 103, -86, - -219, 147, -244, -243, -242, -226, -228, -229, -230, 85, - -145, -85, 39, -222, 288, -217, -217, -217, -217, -217, - -218, -168, -218, -218, -218, 83, 83, -217, -217, -217, - -217, -220, 83, -220, -220, -221, 83, -221, -255, -86, - -252, -251, -249, -250, 179, 97, 353, 76, -247, -142, - 91, -83, -184, 173, -253, -250, -262, -262, -262, -184, - -262, 90, -262, 90, 84, 17, -227, -226, -131, 228, - -257, 203, -254, -248, -235, 29, -234, -235, -235, 154, - -262, 84, 27, 108, 108, 108, 108, 353, 159, 31, - -226, -131, -207, 171, -207, -207, 90, 90, -180, 477, - -95, -82, 220, 122, 209, 209, 168, 168, 222, -102, - 233, 234, 232, 21, 221, 223, 225, 211, -102, -102, - -183, 75, -97, -102, 24, -196, -102, -181, -181, -102, - -181, -181, 90, -102, -191, -66, 323, 353, 20, -67, - 20, 100, 101, 102, -121, -113, -113, -113, -73, 193, - 113, -283, -283, -74, -74, -282, 154, -5, -143, -283, - -283, 84, 76, 23, 12, 12, -283, 12, 12, -283, - -283, -74, -136, -134, 120, -86, -283, -283, 84, 84, - -283, -283, -283, -283, -283, -275, 444, 324, -106, 73, - 172, 74, -282, -198, -283, -159, 41, 49, 60, -86, - -86, -141, -159, -175, 20, 12, 56, 56, -107, 13, - -76, -88, -79, 154, -107, -111, 31, 56, -3, -282, - -282, -166, -170, -130, -89, -90, -90, -89, -90, 65, - 65, 65, 70, 65, 70, 65, -99, -196, -283, -283, - -3, -163, 76, -88, -102, -88, -104, -196, 139, -172, - -174, 326, 323, 329, -262, 90, 84, -242, -230, 100, - 114, 30, 75, 285, 97, -279, 175, 174, 29, 23, - 40, -223, 289, -218, -218, -219, -262, 90, 148, -219, - -219, -219, -225, 90, -225, 91, 91, 85, -32, -27, - -28, 32, 79, -249, -237, 90, 38, -191, 85, -82, - -102, 114, 75, -253, -253, -253, -196, 16, -161, -191, - 84, 85, -132, 229, -130, 85, -191, 85, 83, -235, - -192, -191, -282, 168, 30, 30, -131, -132, -219, -262, - 479, 478, 85, 170, 227, -84, 336, 90, 86, -102, - -102, -102, -102, -102, 162, 159, 212, 171, -95, -102, - 84, -60, 188, 183, -201, -201, 32, 323, 456, 454, - -73, 113, -113, -113, -283, -283, -75, -192, -139, -159, - -209, 148, 260, 192, 258, 254, 274, 265, 287, 256, - 288, -207, -209, -113, -113, -113, -113, 350, -139, 121, - -86, 119, -113, -113, 169, 169, 169, -164, 42, 90, - 90, 61, -102, -137, 14, -86, 139, -143, -165, 75, - -166, -124, -126, -125, -282, -160, -283, -191, -164, -107, - 84, 122, -93, -92, 75, 76, -94, 75, -92, 65, - 65, -283, -107, -88, -107, -107, 154, 323, 327, 328, - -242, 100, -113, 10, 90, 29, 29, 83, -219, -219, - 85, 84, 85, 84, 85, 84, -185, 390, 114, -28, - -27, -237, -237, 91, -262, 170, 24, -102, 75, 75, - 75, 17, 84, -226, -130, 56, -252, -161, -256, -257, - -102, -112, -132, -102, -81, 218, 226, 83, 87, -264, - 76, 209, 285, 209, -102, -60, -32, -102, -181, -181, - 32, -262, -113, -283, -143, -283, -217, -217, -217, -221, - -217, 248, -217, 248, -283, -283, 20, 20, 20, 20, - -282, -65, 346, -86, 84, 84, -282, -282, -282, -283, - 90, -218, -138, 15, 17, 28, -165, 84, -283, -283, - 84, 56, 154, -283, -139, -170, -86, -86, 83, -86, - -139, -107, -116, -113, -218, 90, -218, 91, 91, 390, - 30, 80, 81, 82, 30, 77, 78, -102, -102, -102, - -102, -161, -191, 205, 85, -283, 84, -224, 353, 356, - -162, 83, 85, -261, 353, -263, -262, -191, -191, -191, - -159, -218, -262, -113, -113, -113, -113, -113, -143, 90, - -113, -113, -161, -283, -161, -161, -199, -218, -148, -153, - -178, -86, -122, 29, -126, 56, -3, -191, -124, -191, - -143, -161, -143, 85, -219, -219, 85, 85, -162, 206, - 187, -257, 357, 357, 23, -161, -260, -259, -192, 83, - 76, -283, -283, -283, -283, -68, 132, 353, -283, -283, - -283, -283, -283, -283, -106, -151, 440, -156, 45, -154, - -155, 46, -152, 47, 55, 10, -124, 154, 85, -146, - 23, -282, -102, -3, 85, 84, 122, -161, -102, -283, - 351, 72, 354, -148, 50, 266, -158, -157, 54, 46, - -155, 17, 48, 17, -166, -191, -278, 100, 114, 97, - -279, 109, 110, -3, -113, 202, 83, -58, 353, -259, - -241, -192, 90, 91, 85, 61, 352, 355, -149, 52, - -147, 51, -147, -157, 17, 17, 90, 17, 90, 100, - 90, -58, -283, -283, -161, -59, 217, 444, -264, 61, - -150, 53, 75, 103, 90, 90, 90, 85, 180, -261, - 353, 75, 103, -271, -272, 75, 219, 354, -272, 75, - 11, 10, 355, -270, 188, 183, 186, 31, -270, 182, - 30, 100, + 381, 167, 306, 6, 346, 31, 189, 177, 110, 66, + 382, 168, 119, 347, 348, 171, 101, 5, 174, 33, + 10, 73, 76, 337, 338, 339, 56, 109, 353, 118, + 13, 383, 324, 112, 318, -239, 130, -226, -230, -191, + 184, -255, 180, -102, -248, -247, -191, -71, -186, 169, + 178, 177, 174, -266, 111, 224, 331, 167, -36, -37, + -168, 147, 201, 84, 84, -230, -229, -228, -267, 203, + 184, -254, -246, 176, 185, -236, 177, 178, -231, 169, + 29, -267, -231, 175, 185, 203, 203, 108, 203, 108, + 203, 203, 203, 203, 203, 203, 203, 203, 203, 200, + -237, 122, -237, 357, 357, -242, -267, -267, -267, 171, + 34, 34, -188, -231, 171, 23, -237, -237, -168, 147, + -237, -237, -237, -237, 211, 211, -237, -237, -237, -237, + -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, + -237, 168, -266, -80, 316, 231, 79, -38, 213, -22, + -102, -186, 169, 170, -266, -102, 154, -102, -181, 130, + 13, -181, -178, 307, 305, 292, 297, -181, -181, -181, + -181, 214, 290, -232, 169, 34, 181, 307, 214, 290, + 214, 215, 214, 215, 300, 310, 214, -201, 12, 132, + 331, 295, 299, 207, 168, 208, 170, 309, -262, 447, + 215, -201, 307, 210, -181, -206, -282, -192, 263, -206, + -206, 31, 171, -191, -57, -191, 90, -7, -3, -11, + -10, -12, 122, -78, 307, -66, 148, 462, 448, 449, + 450, 447, 304, 455, 453, 451, 214, 452, 84, 113, + 111, 112, 129, -86, -110, 132, 114, 130, 131, 116, + 134, 133, 144, 137, 138, 139, 140, 141, 142, 143, + 135, 136, 147, 122, 123, 124, 125, 126, 127, 128, + -176, -282, -128, -282, 155, 156, -113, -113, -113, -113, + -113, -113, -113, -113, -113, -113, -282, 154, -2, -122, + -4, -282, -282, -282, -282, -282, -282, -282, -282, -135, + -86, -282, -286, -282, -286, -119, -282, -286, -119, -286, + -119, -286, -286, -119, -286, -119, -286, -286, -119, -282, + -282, -282, -282, -282, -282, -282, -205, -274, -275, -105, + -102, -282, 231, -139, -3, -55, -159, 20, 32, -86, + -140, -141, -86, -139, 58, -74, -76, -79, 62, 63, + 96, 12, -194, -193, 23, -191, 90, 154, 12, -103, + 27, -102, -88, -89, -90, -91, -105, -129, -282, 12, + -95, -96, -102, -104, -196, 84, 237, -171, -208, -173, + -172, 321, 323, 122, -195, -191, 90, 30, 85, 84, + -102, -210, -213, -215, -214, -216, -211, -212, 260, 261, + 148, 264, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 31, 192, 256, 257, 258, 259, 276, 277, + 278, 279, 280, 281, 282, 283, 243, 262, 351, 244, + 245, 246, 247, 248, 249, 251, 252, 253, 254, 255, + -265, -262, 83, 85, 84, -217, 83, -80, 168, -262, + 169, 169, 169, -55, 340, -237, -237, 200, -29, -26, + -258, 16, -25, -26, 162, 104, 105, 159, 83, -226, + 83, -235, -265, -262, 83, 29, 175, 174, -234, -231, + -234, -235, -262, -130, -191, -196, -262, 29, 29, -164, + -191, -164, -164, 21, -164, 21, -164, 21, 91, -191, + -164, 21, -164, 21, -164, 21, -164, 21, -164, 21, + 30, 77, 78, 30, 80, 81, 82, -130, -130, -226, + -168, -102, -262, 91, 91, -237, -237, 91, 90, 90, + 90, -237, -237, 91, 90, -262, 90, -268, 186, 228, + 230, 91, 91, 91, 91, 30, 90, -269, 30, 469, + 468, 470, 471, 472, 91, 30, 91, 30, 91, -191, + 83, -102, -83, 218, 157, 159, 162, 75, 90, 232, + 122, 43, 84, 171, 168, -262, -183, 173, -183, -197, + -196, -189, 90, -86, -233, 12, 132, -201, -201, -181, + -102, -233, -201, -181, -102, -181, -181, -181, -181, -201, + -201, -201, -181, -196, -196, -102, -102, -102, -102, -102, + -102, -102, -206, -206, -206, -182, 130, -181, 75, -204, + 240, 274, 441, 442, 443, 84, 353, -95, 447, 447, + 447, 447, 447, 447, -86, -86, -86, -86, -120, 100, + 114, 101, 102, -113, -121, -125, -128, 95, 132, 130, + 131, 116, -113, -113, -113, -113, -113, -113, -113, -113, + -113, -113, -113, -113, -113, -113, -113, -207, -262, 90, + 148, -262, -112, -112, -191, -75, 22, 37, -74, -192, + -197, -189, -70, -283, -283, -139, -74, -74, -86, -86, + -130, 90, -74, -130, 90, -74, -74, -69, 22, 37, + -133, -134, 118, -130, -283, -113, -191, -191, -74, -75, + -75, -74, -74, 84, -276, 323, 324, 445, -199, 203, + -198, 23, -196, 90, -123, -122, 90, -143, -283, -144, + 27, 10, 132, 84, 19, 84, -142, 25, 26, -143, + -114, -191, 91, 94, -87, 84, 12, -79, -102, -193, + 139, -197, -102, -163, 203, -102, 31, 84, -98, -100, + -99, -101, 65, 69, 71, 66, 67, 68, 72, -202, + 23, -88, -3, -282, -102, -95, -284, 84, 12, 76, + -284, 84, 154, -171, -173, 84, 322, 324, 325, 75, + 103, -86, -219, 147, -244, -243, -242, -226, -228, -229, + -230, 85, -145, -85, 39, -222, 288, -217, -217, -217, + -217, -217, -218, -168, -218, -218, -218, 83, 83, -217, + -217, -217, -217, -220, 83, -220, -220, -221, 83, -221, + -255, -86, -252, -251, -249, -250, 179, 97, 353, 76, + -247, -142, 91, -83, -184, 173, -253, -250, -262, -262, + -262, -184, -262, 90, -262, 90, 84, 17, -227, -226, + -131, 228, -257, 203, -254, -248, -235, 29, -234, -235, + -235, 154, -262, 84, 27, 108, 108, 108, 108, 353, + 159, 31, -226, -131, -207, 171, -207, -207, 90, 90, + -180, 477, -95, -82, 220, 122, 209, 209, 168, 168, + 222, -102, 233, 234, 232, 21, 221, 223, 225, 211, + -102, -102, -183, 75, -97, -102, 24, -196, -102, -181, + -181, -102, -181, -181, 90, -102, -191, -66, 323, 353, + 20, -67, 20, 100, 101, 102, -121, -113, -113, -113, + -73, 193, 113, -283, -283, -74, -74, -282, 154, -5, + -143, -283, -283, 84, 76, 23, 12, 12, -283, 12, + 12, -283, -283, -74, -136, -134, 120, -86, -283, -283, + 84, 84, -283, -283, -283, -283, -283, -275, 444, 324, + -106, 73, 172, 74, -282, -198, -283, -159, 41, 49, + 60, -86, -86, -141, -159, -175, 20, 12, 56, 56, + -107, 13, -76, -88, -79, 154, -107, -111, 31, 56, + -3, -282, -282, -166, -170, -130, -89, -90, -90, -89, + -90, 65, 65, 65, 70, 65, 70, 65, -99, -196, + -283, -283, -3, -163, 76, -88, -102, -88, -104, -196, + 139, -172, -174, 326, 323, 329, -262, 90, 84, -242, + -230, 100, 114, 30, 75, 285, 97, -279, 175, 174, + 29, 23, 40, -223, 289, -218, -218, -219, -262, 90, + 148, -219, -219, -219, -225, 90, -225, 91, 91, 85, + -32, -27, -28, 32, 79, -249, -237, 90, 38, -191, + 85, -82, -102, 114, 75, -253, -253, -253, -196, 16, + -161, -191, 84, 85, -132, 229, -130, 85, -191, 85, + 83, -235, -192, -191, -282, 168, 30, 30, -131, -132, + -219, -262, 479, 478, 85, 170, 227, -84, 336, 90, + 86, -102, -102, -102, -102, -102, 162, 159, 212, 171, + -95, -102, 84, -60, 188, 183, -201, -201, 32, 323, + 456, 454, -73, 113, -113, -113, -283, -283, -75, -192, + -139, -159, -209, 148, 260, 192, 258, 254, 274, 265, + 287, 256, 288, -207, -209, -113, -113, -113, -113, 350, + -139, 121, -86, 119, -113, -113, 169, 169, 169, -164, + 42, 90, 90, 61, -102, -137, 14, -86, 139, -143, + -165, 75, -166, -124, -126, -125, -282, -160, -283, -191, + -164, -107, 84, 122, -93, -92, 75, 76, -94, 75, + -92, 65, 65, -283, -107, -88, -107, -107, 154, 323, + 327, 328, -242, 100, -113, 10, 90, 29, 29, 83, + -219, -219, 85, 84, 85, 84, 85, 84, -185, 390, + 114, -28, -27, -237, -237, 91, -262, 170, 24, -102, + 75, 75, 75, 17, 84, -226, -130, 56, -252, -161, + -256, -257, -102, -112, -132, -102, -81, 218, 226, 83, + 87, -264, 76, 209, 285, 209, -102, -60, -32, -102, + -181, -181, 32, -262, -113, -283, -143, -283, -217, -217, + -217, -221, -217, 248, -217, 248, -283, -283, 20, 20, + 20, 20, -282, -65, 346, -86, 84, 84, -282, -282, + -282, -283, 90, -218, -138, 15, 17, 28, -165, 84, + -283, -283, 84, 56, 154, -283, -139, -170, -86, -86, + 83, -86, -139, -107, -116, -113, -218, 90, -218, 91, + 91, 390, 30, 80, 81, 82, 30, 77, 78, -102, + -102, -102, -102, -161, -191, 205, 85, -283, 84, -224, + 353, 356, -162, 83, 85, -261, 353, -263, -262, -191, + -191, -191, -159, -218, -262, -113, -113, -113, -113, -113, + -143, 90, -113, -113, -161, -283, -161, -161, -199, -218, + -148, -153, -178, -86, -122, 29, -126, 56, -3, -191, + -124, -191, -143, -161, -143, 85, -219, -219, 85, 85, + -162, 206, 187, -257, 357, 357, 23, -161, -260, -259, + -192, 83, 76, -283, -283, -283, -283, -68, 132, 353, + -283, -283, -283, -283, -283, -283, -106, -151, 440, -156, + 45, -154, -155, 46, -152, 47, 55, 10, -124, 154, + 85, -146, 23, -282, -102, -3, 85, 84, 122, -161, + -102, -283, 351, 72, 354, -148, 50, 266, -158, -157, + 54, 46, -155, 17, 48, 17, -166, -191, -278, 100, + 114, 97, -279, 109, 110, -3, -113, 202, 83, -58, + 353, -259, -241, -192, 90, 91, 85, 61, 352, 355, + -149, 52, -147, 51, -147, -157, 17, 17, 90, 17, + 90, 100, 90, -58, -283, -283, -161, -59, 217, 444, + -264, 61, -150, 53, 75, 103, 90, 90, 90, 85, + 180, -261, 353, 75, 103, -271, -272, 75, 219, 354, + -272, 75, 11, 10, 355, -270, 188, 183, 186, 31, + -270, 182, 30, 100, } var yyDef = [...]int{ @@ -5192,8 +5170,8 @@ var yyDef = [...]int{ 31, 32, 33, 835, 0, 571, 571, 571, 571, 571, 571, 571, 0, 0, 571, -2, -2, 571, 971, 0, 571, 0, 0, -2, 504, 505, 0, 507, -2, 0, - 0, 516, 1384, 1384, 566, 0, 0, 0, 0, 0, - 571, 1382, 55, 56, 522, 523, 524, 1, 3, 0, + 0, 516, 1386, 1386, 566, 0, 0, 0, 0, 0, + 571, 1384, 55, 56, 522, 523, 524, 1, 3, 0, 575, 843, 0, 0, -2, 573, 0, 0, 954, 954, 954, 0, 86, 87, 0, 0, 0, -2, 90, -2, 114, 115, 0, 119, 380, 341, 383, 339, 369, -2, @@ -5203,50 +5181,50 @@ var yyDef = [...]int{ 0, 236, 236, 236, 236, 0, 0, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 859, 118, 972, 969, 970, 35, 36, 37, - 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, - 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, - 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, - 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, - 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, - 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, - 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, - 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, - 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, - 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, - 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, - 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, - 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, - 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, - 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, - 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, - 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, - 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, - 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, - 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, - 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, - 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, - 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, - 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, - 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, - 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, - 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 0, + 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, + 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, + 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, + 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, + 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, + 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, + 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, + 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, + 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, + 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, + 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, + 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, + 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, + 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, + 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, + 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, + 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, + 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, + 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, + 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, + 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, + 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, + 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, + 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, + 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, + 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, + 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 0, 948, 0, 436, 656, 0, 495, 495, 0, 495, 495, 495, 495, 0, 0, 0, 448, 0, 0, 0, 0, 492, 0, 0, 467, 469, 0, 492, 0, 479, 495, - 1385, 1385, 1385, 939, 0, 489, 487, 501, 502, 484, + 1387, 1387, 1387, 939, 0, 489, 487, 501, 502, 484, 485, 503, 506, 0, 511, 514, 965, 966, 0, 529, - 0, 1190, 521, 534, 535, 0, 567, 568, 40, 707, + 0, 1192, 521, 534, 535, 0, 567, 568, 40, 707, 666, 0, 672, 674, 0, 709, 710, 711, 712, 713, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 740, 741, 742, 820, 821, 822, 823, 824, 825, 826, 827, 676, 677, 817, 0, 928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 808, 0, 777, 777, 777, 777, 777, 777, 777, 777, 777, 0, 0, 0, - 0, 0, 0, 0, -2, -2, 1384, 0, 544, 0, + 0, 0, 0, 0, -2, -2, 1386, 0, 544, 0, 0, 835, 51, 0, 571, 576, 577, 878, 0, 0, - 835, 1383, 0, 0, -2, -2, 587, 593, 594, 595, + 835, 1385, 0, 0, -2, -2, 587, 593, 594, 595, 596, 597, 572, 0, 600, 604, 0, 0, 0, 955, - 0, 0, 72, 0, 1347, 932, -2, -2, 0, 0, + 0, 0, 72, 0, 1349, 932, -2, -2, 0, 0, 967, 968, 941, -2, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, @@ -5261,160 +5239,160 @@ var yyDef = [...]int{ 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, - 1111, 1112, -2, 0, 0, 128, 129, 0, 38, 262, - 0, 124, 0, 256, 209, 859, 0, 0, 0, 0, - 0, 571, 0, 949, 109, 110, 116, 117, 236, 236, - 0, 118, 118, 348, 349, 350, 0, 0, -2, 260, - 0, 333, 0, 0, 250, 250, 254, 252, 253, 0, - 0, 0, 0, 0, 0, 360, 0, 361, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 420, 0, 237, - 0, 378, 379, 287, 0, 0, 0, 0, 358, 359, - 0, 0, 957, 958, 0, 0, 236, 236, 0, 0, - 0, 0, 236, 236, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 108, 872, 0, 0, 0, -2, 0, 428, 0, 0, - 0, 950, 950, 435, 0, 437, 438, 0, 0, 439, - 0, 492, 492, 490, 491, 441, 442, 443, 444, 495, - 0, 0, 245, 246, 247, 492, 495, 0, 495, 495, - 495, 495, 492, 492, 492, 495, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1385, 1385, 1385, 498, 495, - 476, 477, 480, 481, 1386, 1387, 986, 482, 483, 940, - 512, 515, 532, 530, 531, 533, 525, 526, 527, 528, - 0, 546, 547, 552, 0, 0, 0, 0, 558, 559, - 560, 0, 0, 563, 564, 565, 0, 0, 0, 0, - 0, 670, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 694, 695, 696, 697, 698, 699, 700, 673, 0, - 687, 0, 0, 0, 729, 730, 731, 732, 733, 734, - 735, 736, 737, 0, 584, 0, 0, 0, 835, 0, - 0, 0, 0, 0, 0, 0, 581, 0, 809, 0, - 760, 0, 761, 769, 0, 762, 770, 763, 771, 764, - 765, 772, 766, 773, 767, 768, 774, 0, 0, 0, - 584, 584, 0, 0, 41, 536, 537, 0, 639, 960, - 0, 843, 0, 586, 881, 0, 0, 844, 836, 837, - 840, 843, 0, 609, 598, 588, 591, 592, 574, 0, - 601, 605, 0, 607, 608, 0, 0, 70, 0, 655, - 0, 611, 613, 614, 615, 637, 0, 0, 0, 0, - 66, 68, 656, 0, 1347, 938, 0, 74, 75, 0, - 0, 0, 224, 943, 944, 945, -2, 243, 0, -2, - 216, 160, 161, 162, 209, 164, 209, 209, 209, 209, - 220, 220, 220, 220, 192, 193, 194, 195, 196, 0, - 0, 179, 209, 209, 209, 209, 199, 200, 201, 202, - 203, 204, 205, 206, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 211, 211, 211, 213, 213, 0, 39, - 0, 228, 0, 840, 0, 872, 952, 962, 0, 0, - 0, 952, 92, 0, 0, 381, 342, 370, 382, 0, - 345, 346, -2, 0, 0, 332, 0, 334, 0, 244, - 0, -2, 0, 254, 0, 250, 254, 251, 254, 242, - 255, 362, 817, 0, 363, 364, 0, 400, 625, 0, - 0, 0, 0, 0, 406, 407, 408, 0, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 371, 372, - 373, 374, 375, 376, 377, 0, 0, 334, 0, 367, - 0, 288, 289, 0, 0, 292, 293, 294, 295, 0, - 0, 298, 299, 300, 301, 302, 326, 327, 328, 303, - 304, 305, 306, 307, 308, 309, 320, 321, 322, 323, - 324, 325, 310, 311, 312, 313, 314, 317, 0, 102, - 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 950, 0, 0, 0, 0, 657, 973, 974, - 496, 497, 0, 248, 249, 495, 495, 445, 468, 0, - 495, 449, 470, 450, 452, 451, 453, 472, 473, 495, - 456, 493, 494, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 474, 0, 475, 0, 0, 513, 517, - 518, 519, 520, 0, 0, 549, 554, 555, 556, 557, - 569, 562, 708, 667, 668, 669, 671, 688, 0, 690, - 692, 678, 679, 703, 704, 705, 0, 0, 0, 0, - 701, 683, 0, 714, 715, 716, 717, 718, 719, 720, - 721, 722, 723, 724, 725, 728, 792, 793, 794, 0, - 726, 727, 738, 0, 0, 0, 585, 818, 0, -2, - 0, 706, 927, 843, 0, 0, 0, 0, 711, 820, - 0, 711, 820, 0, 0, 0, 582, 583, 815, 812, - 0, 0, 778, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 539, 540, 542, 0, 659, 0, 640, 0, - 642, 643, 0, 961, 545, 878, 52, 42, 0, 879, - 0, 0, 0, 0, 839, 841, 842, 878, 0, 828, - 0, 0, 664, 0, 0, 589, 48, 606, 602, 0, - 664, 0, 0, 654, 0, 0, 0, 0, 0, 0, - 644, 0, 0, 647, 0, 0, 0, 0, 638, 0, - 0, 0, -2, 0, 0, 0, 62, 63, 0, 0, - 0, 933, 73, 0, 0, 78, 79, 934, 935, 936, - 937, 0, 111, -2, 283, 130, 132, 133, 134, 125, - 135, 0, 0, 218, 217, 163, 220, 220, 186, 187, - 224, 0, 224, 224, 224, 0, 0, 180, 181, 182, - 183, 174, 0, 175, 176, 177, 0, 178, 261, 0, - 847, 229, 230, 232, 236, 0, 0, 0, 257, 258, - 0, 863, 0, 0, 0, 963, 962, 962, 962, 0, - 120, 121, 122, 123, 118, 0, 0, 126, 336, 0, - 0, 0, 259, 0, 0, 238, 254, 239, 240, 0, - 365, 0, 0, 402, 403, 404, 405, 0, 0, 0, - 334, 336, 224, 0, 290, 291, 296, 297, 315, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 395, 396, 397, 398, 860, 861, 862, 0, 0, 429, - 0, 0, 275, 64, 951, 434, 492, 455, 471, 492, - 447, 454, 499, 478, 509, 553, 0, 0, 0, 561, - 0, 689, 691, 693, 680, 701, 684, 0, 681, 0, - 0, 675, 743, 0, 0, 584, 0, 835, 878, 747, - 748, 0, 0, 0, 0, 0, 785, 0, 0, 786, - 0, 835, 0, 813, 0, 0, 759, 779, 0, 0, - 780, 781, 782, 783, 784, 538, 541, 543, 619, 0, - 0, 0, 0, 641, 959, 44, 0, 0, 0, 845, - 846, 838, 43, 0, 946, 947, 829, 830, 831, 0, - 599, 610, 590, 0, 843, 921, 0, 0, 913, 0, - 0, 664, 929, 0, 612, 633, 635, 0, 630, 645, - 646, 648, 0, 650, 0, 652, 653, 616, 617, 618, - 0, 664, 0, 664, 67, 664, 69, 0, 658, 76, - 77, 0, 0, 83, 225, 226, 118, 285, 131, 140, - 0, 0, 0, 144, 0, 146, 0, 156, 158, 0, - 138, 159, 219, 224, 224, 188, 221, 222, 223, 189, - 190, 191, 0, 207, 0, 0, 0, 278, 88, 851, - 850, 236, 236, 231, 0, 234, 0, 964, 210, 0, - 101, 0, 0, 0, 0, 0, 107, 0, 340, 623, - 0, 351, 352, 0, 335, 399, 0, 228, 0, 241, - 818, 626, 0, 0, 353, 0, 336, 356, 357, 368, - 318, 319, 316, 0, 0, 873, 874, 0, 877, 93, - 388, 390, 389, 393, 0, 0, 386, 0, 275, 847, - 0, 433, 276, 277, 495, 495, 548, 0, 551, 0, - 682, 0, 702, 685, 744, 745, 0, 819, 843, 46, - 0, 209, 209, 798, 209, 213, 801, 209, 803, 209, - 806, 0, 0, 0, 0, 0, 0, 0, 810, 758, - 816, 0, 0, 0, 0, 0, 0, 0, 0, 220, - 883, 880, 45, 833, 0, 665, 603, 49, 53, 0, - 921, 912, 923, 925, 0, 0, 0, 917, 0, 835, - 0, 0, 627, 634, 0, 0, 628, 0, 629, 649, - 651, -2, 835, 664, 60, 61, 0, 80, 81, 82, - 284, 141, 142, 0, 145, 155, 157, 0, 184, 185, - 220, 0, 220, 0, 214, 0, 267, 279, 0, 848, - 849, 0, 0, 233, 235, 0, 953, 103, 0, 0, - 0, 0, 0, 127, 337, 0, 227, 0, 0, 424, - 421, 354, 355, 621, 864, 865, 866, 0, 876, 96, - 0, 0, 0, 0, 430, 431, 432, 65, 440, 446, - 550, 570, 686, 746, 878, 749, 795, 220, 799, 800, - 802, 804, 805, 807, 751, 750, 0, 0, 0, 0, - 0, 843, 0, 814, 0, 0, 0, 0, 0, 639, - 220, 903, 50, 0, 0, 0, 54, 0, 926, 0, - 0, 0, 0, 71, 843, 930, 931, 631, 0, 636, - 843, 59, 143, 0, 224, 208, 224, 0, 0, 280, - 852, 853, 854, 855, 856, 857, 858, 621, 104, 105, - 106, 343, 624, 0, 0, 401, 0, 409, 0, 0, - 0, 0, 875, 387, 0, 94, 95, 0, 0, 392, - 47, 796, 797, 0, 0, 0, 0, 787, 0, 811, - 0, 0, 0, 661, 0, 0, 659, 885, 884, 897, - 910, 834, 832, 0, 924, 0, 916, 919, 915, 918, - 57, 0, 58, 149, 197, 198, 212, 215, 0, 0, - 0, 425, 422, 423, 0, 0, 97, 98, 0, 0, - 0, 752, 754, 753, 755, 0, 0, 0, 757, 775, - 776, 660, 662, 663, 620, 903, 0, 896, 0, -2, - 905, 0, 0, 0, 911, 0, 914, 0, 632, 136, - 0, 0, 0, 867, 622, 0, 0, 0, 394, 756, - 0, 0, 0, 890, 888, 888, 898, 899, 0, 0, - 906, 0, 0, 0, 922, 920, 150, 151, 0, 0, - 154, 147, 148, 867, 0, 0, 0, 384, 869, 99, - 100, 329, 330, 331, 93, 788, 0, 791, 893, 0, - 886, 889, 887, 900, 0, 0, 907, 0, 909, 152, - 153, 89, 426, 427, 0, 0, 870, 871, 96, 789, - 882, 0, 891, 892, 901, 902, 908, 263, 0, 391, - 0, 894, 895, 264, 265, 0, 868, 0, 266, 0, - 0, 0, 790, 268, 270, 271, 0, 0, 269, 272, - 273, 274, + 1111, 1112, 1113, 1114, -2, 0, 0, 128, 129, 0, + 38, 262, 0, 124, 0, 256, 209, 859, 0, 0, + 0, 0, 0, 571, 0, 949, 109, 110, 116, 117, + 236, 236, 0, 118, 118, 348, 349, 350, 0, 0, + -2, 260, 0, 333, 0, 0, 250, 250, 254, 252, + 253, 0, 0, 0, 0, 0, 0, 360, 0, 361, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 420, + 0, 237, 0, 378, 379, 287, 0, 0, 0, 0, + 358, 359, 0, 0, 957, 958, 0, 0, 236, 236, + 0, 0, 0, 0, 236, 236, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 108, 872, 0, 0, 0, -2, 0, 428, + 0, 0, 0, 950, 950, 435, 0, 437, 438, 0, + 0, 439, 0, 492, 492, 490, 491, 441, 442, 443, + 444, 495, 0, 0, 245, 246, 247, 492, 495, 0, + 495, 495, 495, 495, 492, 492, 492, 495, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1387, 1387, 1387, + 498, 495, 476, 477, 480, 481, 1388, 1389, 986, 482, + 483, 940, 512, 515, 532, 530, 531, 533, 525, 526, + 527, 528, 0, 546, 547, 552, 0, 0, 0, 0, + 558, 559, 560, 0, 0, 563, 564, 565, 0, 0, + 0, 0, 0, 670, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 694, 695, 696, 697, 698, 699, 700, + 673, 0, 687, 0, 0, 0, 729, 730, 731, 732, + 733, 734, 735, 736, 737, 0, 584, 0, 0, 0, + 835, 0, 0, 0, 0, 0, 0, 0, 581, 0, + 809, 0, 760, 0, 761, 769, 0, 762, 770, 763, + 771, 764, 765, 772, 766, 773, 767, 768, 774, 0, + 0, 0, 584, 584, 0, 0, 41, 536, 537, 0, + 639, 960, 0, 843, 0, 586, 881, 0, 0, 844, + 836, 837, 840, 843, 0, 609, 598, 588, 591, 592, + 574, 0, 601, 605, 0, 607, 608, 0, 0, 70, + 0, 655, 0, 611, 613, 614, 615, 637, 0, 0, + 0, 0, 66, 68, 656, 0, 1349, 938, 0, 74, + 75, 0, 0, 0, 224, 943, 944, 945, -2, 243, + 0, -2, 216, 160, 161, 162, 209, 164, 209, 209, + 209, 209, 220, 220, 220, 220, 192, 193, 194, 195, + 196, 0, 0, 179, 209, 209, 209, 209, 199, 200, + 201, 202, 203, 204, 205, 206, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 211, 211, 211, 213, 213, + 0, 39, 0, 228, 0, 840, 0, 872, 952, 962, + 0, 0, 0, 952, 92, 0, 0, 381, 342, 370, + 382, 0, 345, 346, -2, 0, 0, 332, 0, 334, + 0, 244, 0, -2, 0, 254, 0, 250, 254, 251, + 254, 242, 255, 362, 817, 0, 363, 364, 0, 400, + 625, 0, 0, 0, 0, 0, 406, 407, 408, 0, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 371, 372, 373, 374, 375, 376, 377, 0, 0, 334, + 0, 367, 0, 288, 289, 0, 0, 292, 293, 294, + 295, 0, 0, 298, 299, 300, 301, 302, 326, 327, + 328, 303, 304, 305, 306, 307, 308, 309, 320, 321, + 322, 323, 324, 325, 310, 311, 312, 313, 314, 317, + 0, 102, 863, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 950, 0, 0, 0, 0, 657, + 973, 974, 496, 497, 0, 248, 249, 495, 495, 445, + 468, 0, 495, 449, 470, 450, 452, 451, 453, 472, + 473, 495, 456, 493, 494, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 474, 0, 475, 0, 0, + 513, 517, 518, 519, 520, 0, 0, 549, 554, 555, + 556, 557, 569, 562, 708, 667, 668, 669, 671, 688, + 0, 690, 692, 678, 679, 703, 704, 705, 0, 0, + 0, 0, 701, 683, 0, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 728, 792, 793, + 794, 0, 726, 727, 738, 0, 0, 0, 585, 818, + 0, -2, 0, 706, 927, 843, 0, 0, 0, 0, + 711, 820, 0, 711, 820, 0, 0, 0, 582, 583, + 815, 812, 0, 0, 778, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 539, 540, 542, 0, 659, 0, + 640, 0, 642, 643, 0, 961, 545, 878, 52, 42, + 0, 879, 0, 0, 0, 0, 839, 841, 842, 878, + 0, 828, 0, 0, 664, 0, 0, 589, 48, 606, + 602, 0, 664, 0, 0, 654, 0, 0, 0, 0, + 0, 0, 644, 0, 0, 647, 0, 0, 0, 0, + 638, 0, 0, 0, -2, 0, 0, 0, 62, 63, + 0, 0, 0, 933, 73, 0, 0, 78, 79, 934, + 935, 936, 937, 0, 111, -2, 283, 130, 132, 133, + 134, 125, 135, 0, 0, 218, 217, 163, 220, 220, + 186, 187, 224, 0, 224, 224, 224, 0, 0, 180, + 181, 182, 183, 174, 0, 175, 176, 177, 0, 178, + 261, 0, 847, 229, 230, 232, 236, 0, 0, 0, + 257, 258, 0, 863, 0, 0, 0, 963, 962, 962, + 962, 0, 120, 121, 122, 123, 118, 0, 0, 126, + 336, 0, 0, 0, 259, 0, 0, 238, 254, 239, + 240, 0, 365, 0, 0, 402, 403, 404, 405, 0, + 0, 0, 334, 336, 224, 0, 290, 291, 296, 297, + 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 395, 396, 397, 398, 860, 861, 862, 0, + 0, 429, 0, 0, 275, 64, 951, 434, 492, 455, + 471, 492, 447, 454, 499, 478, 509, 553, 0, 0, + 0, 561, 0, 689, 691, 693, 680, 701, 684, 0, + 681, 0, 0, 675, 743, 0, 0, 584, 0, 835, + 878, 747, 748, 0, 0, 0, 0, 0, 785, 0, + 0, 786, 0, 835, 0, 813, 0, 0, 759, 779, + 0, 0, 780, 781, 782, 783, 784, 538, 541, 543, + 619, 0, 0, 0, 0, 641, 959, 44, 0, 0, + 0, 845, 846, 838, 43, 0, 946, 947, 829, 830, + 831, 0, 599, 610, 590, 0, 843, 921, 0, 0, + 913, 0, 0, 664, 929, 0, 612, 633, 635, 0, + 630, 645, 646, 648, 0, 650, 0, 652, 653, 616, + 617, 618, 0, 664, 0, 664, 67, 664, 69, 0, + 658, 76, 77, 0, 0, 83, 225, 226, 118, 285, + 131, 140, 0, 0, 0, 144, 0, 146, 0, 156, + 158, 0, 138, 159, 219, 224, 224, 188, 221, 222, + 223, 189, 190, 191, 0, 207, 0, 0, 0, 278, + 88, 851, 850, 236, 236, 231, 0, 234, 0, 964, + 210, 0, 101, 0, 0, 0, 0, 0, 107, 0, + 340, 623, 0, 351, 352, 0, 335, 399, 0, 228, + 0, 241, 818, 626, 0, 0, 353, 0, 336, 356, + 357, 368, 318, 319, 316, 0, 0, 873, 874, 0, + 877, 93, 388, 390, 389, 393, 0, 0, 386, 0, + 275, 847, 0, 433, 276, 277, 495, 495, 548, 0, + 551, 0, 682, 0, 702, 685, 744, 745, 0, 819, + 843, 46, 0, 209, 209, 798, 209, 213, 801, 209, + 803, 209, 806, 0, 0, 0, 0, 0, 0, 0, + 810, 758, 816, 0, 0, 0, 0, 0, 0, 0, + 0, 220, 883, 880, 45, 833, 0, 665, 603, 49, + 53, 0, 921, 912, 923, 925, 0, 0, 0, 917, + 0, 835, 0, 0, 627, 634, 0, 0, 628, 0, + 629, 649, 651, -2, 835, 664, 60, 61, 0, 80, + 81, 82, 284, 141, 142, 0, 145, 155, 157, 0, + 184, 185, 220, 0, 220, 0, 214, 0, 267, 279, + 0, 848, 849, 0, 0, 233, 235, 0, 953, 103, + 0, 0, 0, 0, 0, 127, 337, 0, 227, 0, + 0, 424, 421, 354, 355, 621, 864, 865, 866, 0, + 876, 96, 0, 0, 0, 0, 430, 431, 432, 65, + 440, 446, 550, 570, 686, 746, 878, 749, 795, 220, + 799, 800, 802, 804, 805, 807, 751, 750, 0, 0, + 0, 0, 0, 843, 0, 814, 0, 0, 0, 0, + 0, 639, 220, 903, 50, 0, 0, 0, 54, 0, + 926, 0, 0, 0, 0, 71, 843, 930, 931, 631, + 0, 636, 843, 59, 143, 0, 224, 208, 224, 0, + 0, 280, 852, 853, 854, 855, 856, 857, 858, 621, + 104, 105, 106, 343, 624, 0, 0, 401, 0, 409, + 0, 0, 0, 0, 875, 387, 0, 94, 95, 0, + 0, 392, 47, 796, 797, 0, 0, 0, 0, 787, + 0, 811, 0, 0, 0, 661, 0, 0, 659, 885, + 884, 897, 910, 834, 832, 0, 924, 0, 916, 919, + 915, 918, 57, 0, 58, 149, 197, 198, 212, 215, + 0, 0, 0, 425, 422, 423, 0, 0, 97, 98, + 0, 0, 0, 752, 754, 753, 755, 0, 0, 0, + 757, 775, 776, 660, 662, 663, 620, 903, 0, 896, + 0, -2, 905, 0, 0, 0, 911, 0, 914, 0, + 632, 136, 0, 0, 0, 867, 622, 0, 0, 0, + 394, 756, 0, 0, 0, 890, 888, 888, 898, 899, + 0, 0, 906, 0, 0, 0, 922, 920, 150, 151, + 0, 0, 154, 147, 148, 867, 0, 0, 0, 384, + 869, 99, 100, 329, 330, 331, 93, 788, 0, 791, + 893, 0, 886, 889, 887, 900, 0, 0, 907, 0, + 909, 152, 153, 89, 426, 427, 0, 0, 870, 871, + 96, 789, 882, 0, 891, 892, 901, 902, 908, 263, + 0, 391, 0, 894, 895, 264, 265, 0, 868, 0, + 266, 0, 0, 0, 790, 268, 270, 271, 0, 0, + 269, 272, 273, 274, } var yyTok1 = [...]int{ @@ -12800,42 +12778,42 @@ yydefault: { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 1382: + case 1384: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5247 +//line sql.y:5249 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 1383: + case 1385: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5256 +//line sql.y:5258 { decNesting(yylex) } - case 1384: + case 1386: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5261 +//line sql.y:5263 { skipToEnd(yylex) } - case 1385: + case 1387: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5266 +//line sql.y:5268 { skipToEnd(yylex) } - case 1386: + case 1388: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5270 +//line sql.y:5272 { skipToEnd(yylex) } - case 1387: + case 1389: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5274 +//line sql.y:5276 { skipToEnd(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index 53f26912ae6..c9283c92bd8 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -4939,6 +4939,7 @@ reserved_keyword: | SET | SHOW | SPATIAL +| STORED | STRAIGHT_JOIN | SYSTEM | TABLE @@ -4957,6 +4958,7 @@ reserved_keyword: | UTC_TIME | UTC_TIMESTAMP | VALUES +| VIRTUAL | WITH | WHEN | WHERE From 7bd579c6569b1740cbb9dceef00be85c11fcbd18 Mon Sep 17 00:00:00 2001 From: deepthi Date: Thu, 13 May 2021 11:30:30 -0700 Subject: [PATCH 44/63] improve foreign key error messages, add unit test Signed-off-by: deepthi --- go/vt/schema/online_ddl.go | 2 +- go/vt/schema/online_ddl_test.go | 3 ++- go/vt/vtgate/executor_test.go | 3 ++- go/vt/vtgate/planbuilder/ddl.go | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/go/vt/schema/online_ddl.go b/go/vt/schema/online_ddl.go index dfa59f7b905..3ec98094206 100644 --- a/go/vt/schema/online_ddl.go +++ b/go/vt/schema/online_ddl.go @@ -163,7 +163,7 @@ func onlineDDLStatementSanity(sql string, ddlStmt sqlparser.DDLStatement) error } if err := sqlparser.Walk(errorOnFKWalk, ddlStmt); err == ErrForeignKeyFound { - return vterrors.Errorf(vtrpcpb.Code_ABORTED, "foreign key constraint are not supported in online DDL") + return vterrors.Errorf(vtrpcpb.Code_ABORTED, "foreign key constraints are not supported in online DDL, see https://code.openark.org/blog/mysql/the-problem-with-mysql-foreign-key-constraints-in-online-schema-changes") } return nil } diff --git a/go/vt/schema/online_ddl_test.go b/go/vt/schema/online_ddl_test.go index ab99c645883..79279acb37b 100644 --- a/go/vt/schema/online_ddl_test.go +++ b/go/vt/schema/online_ddl_test.go @@ -266,7 +266,8 @@ func TestNewOnlineDDLs(t *testing.T) { "truncate table t": {isError: true}, "drop view t": {isError: true}, "rename table t to t1": {isError: true}, - "alter table corder add FOREIGN KEY my_fk(customer_id) reference customer(customer_id)": {isError: true}, + "alter table corder add FOREIGN KEY my_fk(customer_id) reference customer(customer_id)": {isError: true, expectErrorText: "syntax error"}, + "alter table corder add FOREIGN KEY my_fk(customer_id) references customer(customer_id)": {isError: true, expectErrorText: "foreign key constraints are not supported"}, "CREATE TABLE if not exists t (id bigint unsigned NOT NULL AUTO_INCREMENT, ts datetime(6) DEFAULT NULL, error_column NO_SUCH_TYPE NOT NULL, PRIMARY KEY (id)) ENGINE=InnoDB": {isError: true, expectErrorText: "near"}, } migrationContext := "354b-11eb-82cd-f875a4d24e90" diff --git a/go/vt/vtgate/executor_test.go b/go/vt/vtgate/executor_test.go index 9f24643edfd..1ba5e9466d5 100644 --- a/go/vt/vtgate/executor_test.go +++ b/go/vt/vtgate/executor_test.go @@ -1201,7 +1201,8 @@ func TestExecutorDDLFk(t *testing.T) { require.NoError(t, err) require.EqualValues(t, 1, sbc.ExecCount.Get()) } else { - require.EqualError(t, err, "foreign key constraint is not allowed") + require.Error(t, err) + require.Contains(t, err.Error(), "foreign key constraints are not allowed") } }) } diff --git a/go/vt/vtgate/planbuilder/ddl.go b/go/vt/vtgate/planbuilder/ddl.go index 463789c0d2d..d7908f73345 100644 --- a/go/vt/vtgate/planbuilder/ddl.go +++ b/go/vt/vtgate/planbuilder/ddl.go @@ -161,7 +161,7 @@ func checkFKError(vschema ContextVSchema, ddlStatement sqlparser.DDLStatement) e fk := &fkContraint{} _ = sqlparser.Walk(fk.FkWalk, ddlStatement) if fk.found { - return vterrors.Errorf(vtrpcpb.Code_ABORTED, "foreign key constraint is not allowed") + return vterrors.Errorf(vtrpcpb.Code_ABORTED, "foreign key constraints are not allowed, see https://code.openark.org/blog/mysql/the-problem-with-mysql-foreign-key-constraints-in-online-schema-changes") } } return nil From fbbce2e64a0c23cabd775f6faf72f0e83cefa607 Mon Sep 17 00:00:00 2001 From: Sara Bee <855595+doeg@users.noreply.github.com> Date: Thu, 13 May 2021 15:15:35 -0400 Subject: [PATCH 45/63] [vtadmin-web] Add Tab components Signed-off-by: Sara Bee <855595+doeg@users.noreply.github.com> --- .../src/components/routes/Debug.module.scss | 4 ++ web/vtadmin/src/components/routes/Debug.tsx | 24 +++++++ .../src/components/tabs/Tab.module.scss | 66 +++++++++++++++++++ web/vtadmin/src/components/tabs/Tab.tsx | 39 +++++++++++ .../components/tabs/TabContainer.module.scss | 41 ++++++++++++ .../src/components/tabs/TabContainer.tsx | 28 ++++++++ web/vtadmin/src/index.css | 6 ++ 7 files changed, 208 insertions(+) create mode 100644 web/vtadmin/src/components/tabs/Tab.module.scss create mode 100644 web/vtadmin/src/components/tabs/Tab.tsx create mode 100644 web/vtadmin/src/components/tabs/TabContainer.module.scss create mode 100644 web/vtadmin/src/components/tabs/TabContainer.tsx diff --git a/web/vtadmin/src/components/routes/Debug.module.scss b/web/vtadmin/src/components/routes/Debug.module.scss index 94b8399e218..0957f2cf29a 100644 --- a/web/vtadmin/src/components/routes/Debug.module.scss +++ b/web/vtadmin/src/components/routes/Debug.module.scss @@ -52,3 +52,7 @@ grid-gap: 8px; grid-template-columns: repeat(4, min-content); } + +.tabContainer { + margin: 2.4rem 0; +} diff --git a/web/vtadmin/src/components/routes/Debug.tsx b/web/vtadmin/src/components/routes/Debug.tsx index b8a4039e1b4..f8bdbc83cf9 100644 --- a/web/vtadmin/src/components/routes/Debug.tsx +++ b/web/vtadmin/src/components/routes/Debug.tsx @@ -5,6 +5,8 @@ import { Button } from '../Button'; import { Icon, Icons } from '../Icon'; import { Select } from '../inputs/Select'; import { ContentContainer } from '../layout/ContentContainer'; +import { Tab } from '../tabs/Tab'; +import { TabContainer } from '../tabs/TabContainer'; import { TextInput } from '../TextInput'; import { Tooltip } from '../tooltip/Tooltip'; import style from './Debug.module.scss'; @@ -44,6 +46,28 @@ export const Debug = () => { +
+

Tabs

+ + + + + + + + + + + + + + + + + + +
+

Icons

diff --git a/web/vtadmin/src/components/tabs/Tab.module.scss b/web/vtadmin/src/components/tabs/Tab.module.scss new file mode 100644 index 00000000000..680da862871 --- /dev/null +++ b/web/vtadmin/src/components/tabs/Tab.module.scss @@ -0,0 +1,66 @@ +/** + * Copyright 2021 The Vitess Authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +a.tab { + background: var(--backgroundPrimary); + border: solid 1px transparent; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + color: var(--textColorSecondary); + display: block; + flex: 0 0 auto; + font-weight: 500; + line-height: 1.6em; + margin: 0 0.2em 0 0; + min-width: 7.2rem; + padding: 0.8em 1.2em 0.5em 1.2em; + position: relative; + white-space: nowrap; + + &.active { + border-color: var(--colorScaffoldingHighlight); + border-bottom-color: var(--backgroundPrimary); + color: var(--textColorPrimary); + z-index: var(--zIndexLow); + } + + .count { + background-color: var(--backgroundSecondaryHighlight); + border-radius: 20px; + color: var(--textColorSecondary); + display: inline-block; + font-size: 0.85em; + line-height: 1em; + margin: 0 0 0 0.5em; + padding: 0.5em 0.75em; + vertical-align: baseline; + } + + &:hover { + color: var(--colorPrimary); + + .count { + background-color: var(--backgroundPrimaryHighlight); + color: var(--colorPrimary); + } + } +} + +.pip { + height: 0.5em; + margin-right: 0.5em; + vertical-align: middle; + width: 0.5em; +} diff --git a/web/vtadmin/src/components/tabs/Tab.tsx b/web/vtadmin/src/components/tabs/Tab.tsx new file mode 100644 index 00000000000..c0fb1090cff --- /dev/null +++ b/web/vtadmin/src/components/tabs/Tab.tsx @@ -0,0 +1,39 @@ +/** + * Copyright 2021 The Vitess Authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import cx from 'classnames'; +import { LinkProps, NavLink } from 'react-router-dom'; +import { Pip, PipState } from '../pips/Pip'; + +import style from './Tab.module.scss'; + +interface Props { + activeClassName?: string; + className?: string; + count?: number | null | undefined; + status?: PipState; + text: string; + to: LinkProps['to']; +} + +export const Tab = ({ activeClassName, className, count, status, text, to }: Props) => { + return ( + + {!!status && } + {text} + {typeof count === 'number' && {count}} + + ); +}; diff --git a/web/vtadmin/src/components/tabs/TabContainer.module.scss b/web/vtadmin/src/components/tabs/TabContainer.module.scss new file mode 100644 index 00000000000..9654241810c --- /dev/null +++ b/web/vtadmin/src/components/tabs/TabContainer.module.scss @@ -0,0 +1,41 @@ +/** + * Copyright 2021 The Vitess Authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +.tabContainer { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + margin-bottom: 0.4em; + overflow-x: auto; + min-width: 100%; + position: relative; + + &.small { + font-size: var(--fontSizeSmall); + } + + &.large { + font-size: var(--fontSizeLarge); + } + + &::after { + background: var(--colorScaffoldingHighlight); + bottom: 0; + height: 1px; + content: ''; + position: absolute; + width: 100%; + } +} diff --git a/web/vtadmin/src/components/tabs/TabContainer.tsx b/web/vtadmin/src/components/tabs/TabContainer.tsx new file mode 100644 index 00000000000..83f7b5dd476 --- /dev/null +++ b/web/vtadmin/src/components/tabs/TabContainer.tsx @@ -0,0 +1,28 @@ +/** + * Copyright 2021 The Vitess Authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { FunctionComponent } from 'react'; +import cx from 'classnames'; + +import style from './TabContainer.module.scss'; + +interface Props { + className?: string; + size?: 'large' | 'medium' | 'small'; +} + +export const TabContainer: FunctionComponent = ({ children, className, size = 'medium' }) => { + return
{children}
; +}; diff --git a/web/vtadmin/src/index.css b/web/vtadmin/src/index.css index 293afbb8d59..c0eda45a811 100644 --- a/web/vtadmin/src/index.css +++ b/web/vtadmin/src/index.css @@ -94,6 +94,12 @@ /* A common bounding width for views that don't require the full viewport. */ --contentWidth: 1400px; + + /* Z-index */ + --zIndexDefault: 0; + --zIndexLow: 10; + --zIndexMid: 100; + --zIndexHigh: 1000; } /* Dark theme */ From 6ff82cdce2a684391e9d9b08a6e46182d1d948e1 Mon Sep 17 00:00:00 2001 From: deepthi Date: Thu, 13 May 2021 12:26:14 -0700 Subject: [PATCH 46/63] tests: parse tests for alter DDL with generated columns Signed-off-by: deepthi --- go/vt/sqlparser/parse_test.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index c074fc38f1d..43e89240e6b 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -944,6 +944,24 @@ var ( input: "alter table a change column s foo int default 1 after x", }, { input: "alter table a modify column foo int default 1 first x", + }, { + input: "alter table a add foo varchar(255) generated always as (concat(bar, ' ', baz)) stored", + output: "alter table a add column foo varchar(255) as (concat(bar, ' ', baz)) stored", + }, { + input: "alter table a add foo varchar(255) generated always as (concat(bar, ' ', baz))", + output: "alter table a add column foo varchar(255) as (concat(bar, ' ', baz)) virtual", + }, { + input: "alter table a add foo varchar(255) generated always as (concat(bar, ' ', baz)) null", + output: "alter table a add column foo varchar(255) as (concat(bar, ' ', baz)) virtual null", + }, { + input: "alter table a add foo varchar(255) generated always as (concat(bar, ' ', baz)) not null", + output: "alter table a add column foo varchar(255) as (concat(bar, ' ', baz)) virtual not null", + }, { + input: "alter table a change column s foo varchar(255) generated always as (concat(bar, ' ', baz)) stored", + output: "alter table a change column s foo varchar(255) as (concat(bar, ' ', baz)) stored", + }, { + input: "alter table a modify column foo varchar(255) generated always as (concat(bar, ' ', baz))", + output: "alter table a modify column foo varchar(255) as (concat(bar, ' ', baz)) virtual", }, { input: "alter table a character set utf32 collate = 'utf'", output: "alter table a charset utf32 collate utf", From 22fd57ed914af8df8965b97e9e00b1d883fd4408 Mon Sep 17 00:00:00 2001 From: deepthi Date: Thu, 13 May 2021 15:56:03 -0700 Subject: [PATCH 47/63] healthcheck: attempt to update primary only if the current tablet is serving Signed-off-by: deepthi --- go/vt/discovery/healthcheck.go | 6 +++--- go/vt/discovery/tablet_health_check.go | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go/vt/discovery/healthcheck.go b/go/vt/discovery/healthcheck.go index 83a4048fe87..9a34c45e620 100644 --- a/go/vt/discovery/healthcheck.go +++ b/go/vt/discovery/healthcheck.go @@ -406,7 +406,7 @@ func (hc *HealthCheckImpl) deleteTablet(tablet *topodata.Tablet) { } } -func (hc *HealthCheckImpl) updateHealth(th *TabletHealth, prevTarget *query.Target, trivialUpdate bool, isPrimaryUp bool) { +func (hc *HealthCheckImpl) updateHealth(th *TabletHealth, prevTarget *query.Target, trivialUpdate bool, up bool) { // hc.healthByAlias is authoritative, it should be updated hc.mu.Lock() defer hc.mu.Unlock() @@ -431,7 +431,7 @@ func (hc *HealthCheckImpl) updateHealth(th *TabletHealth, prevTarget *query.Targ isPrimary := th.Target.TabletType == topodata.TabletType_MASTER switch { - case isPrimary && isPrimaryUp: + case isPrimary && up: if len(hc.healthy[targetKey]) == 0 { hc.healthy[targetKey] = append(hc.healthy[targetKey], th) } else { @@ -449,7 +449,7 @@ func (hc *HealthCheckImpl) updateHealth(th *TabletHealth, prevTarget *query.Targ hc.healthy[targetKey][0] = th } } - case isPrimary && !isPrimaryUp: + case isPrimary && !up: if healthy, ok := hc.healthy[targetKey]; ok && len(healthy) > 0 { // isPrimary is true here therefore we should only have 1 tablet in healthy alias := tabletAliasString(topoproto.TabletAliasString(healthy[0].Tablet.Alias)) diff --git a/go/vt/discovery/tablet_health_check.go b/go/vt/discovery/tablet_health_check.go index 664e1924870..2bb70b498a7 100644 --- a/go/vt/discovery/tablet_health_check.go +++ b/go/vt/discovery/tablet_health_check.go @@ -200,7 +200,7 @@ func (thc *tabletHealthCheck) processResponse(hc *HealthCheckImpl, shr *query.St thc.setServingState(serving, reason) // notify downstream for master change - hc.updateHealth(thc.SimpleCopy(), prevTarget, trivialUpdate, true) + hc.updateHealth(thc.SimpleCopy(), prevTarget, trivialUpdate, thc.Serving) return nil } @@ -294,7 +294,7 @@ func (thc *tabletHealthCheck) checkConn(hc *HealthCheckImpl) { return } // trivialUpdate = false because this is an error - // isPrimaryUp = false because we did not get a healthy response + // up = false because we did not get a healthy response hc.updateHealth(thc.SimpleCopy(), thc.Target, false, false) } // If there was a timeout send an error. We do this after stream has returned. @@ -305,7 +305,7 @@ func (thc *tabletHealthCheck) checkConn(hc *HealthCheckImpl) { thc.setServingState(false, thc.LastError.Error()) hcErrorCounters.Add([]string{thc.Target.Keyspace, thc.Target.Shard, topoproto.TabletTypeLString(thc.Target.TabletType)}, 1) // trivialUpdate = false because this is an error - // isPrimaryUp = false because we did not get a healthy response within the timeout + // up = false because we did not get a healthy response within the timeout hc.updateHealth(thc.SimpleCopy(), thc.Target, false, false) } From 95eb78798d0028261cbcefbdeae941b30147389f Mon Sep 17 00:00:00 2001 From: Zou Yu Date: Tue, 27 Apr 2021 01:15:24 -0400 Subject: [PATCH 48/63] Fix some static check warning in go/test/endtoend/vtctldweb/vtctld_web_main_test.go Signed-off-by: Zou Yu --- go/test/endtoend/vtctldweb/vtctld_web_main_test.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/go/test/endtoend/vtctldweb/vtctld_web_main_test.go b/go/test/endtoend/vtctldweb/vtctld_web_main_test.go index 910c0a60838..d8a37050420 100644 --- a/go/test/endtoend/vtctldweb/vtctld_web_main_test.go +++ b/go/test/endtoend/vtctldweb/vtctld_web_main_test.go @@ -177,7 +177,7 @@ func CreateWebDriver(port int) error { return err } - name, err := wd.CurrentWindowHandle() //nolint + name, _ := wd.CurrentWindowHandle() //nolint return wd.ResizeWindow(name, 1280, 1024) } @@ -203,7 +203,7 @@ func CreateWebDriver(port int) error { if err != nil { return err } - name, err := wd.CurrentWindowHandle() //nolint + name, _ := wd.CurrentWindowHandle() //nolint return wd.ResizeWindow(name, 1280, 1024) } @@ -348,7 +348,7 @@ func getDashboardKeyspaces(t *testing.T) []string { dashboardContent, err := wd.FindElement(selenium.ByTagName, "vt-dashboard") require.Nil(t, err) - ksCards, err := dashboardContent.FindElements(selenium.ByClassName, "vt-keyspace-card") //nolint + ksCards, _ := dashboardContent.FindElements(selenium.ByClassName, "vt-keyspace-card") //nolint var out []string for _, ks := range ksCards { out = append(out, text(t, ks)) @@ -363,7 +363,7 @@ func getDashboardShards(t *testing.T) []string { dashboardContent, err := wd.FindElement(selenium.ByTagName, "vt-dashboard") //nolint require.Nil(t, err) - ksCards, err := dashboardContent.FindElements(selenium.ByClassName, "vt-shard-stats") //nolint + ksCards, _ := dashboardContent.FindElements(selenium.ByClassName, "vt-shard-stats") //nolint var out []string for _, ks := range ksCards { out = append(out, text(t, ks)) @@ -392,7 +392,7 @@ func getShardTablets(t *testing.T) ([]string, []string) { shardContent, err := wd.FindElement(selenium.ByTagName, "vt-shard-view") require.Nil(t, err) - tableRows, err := shardContent.FindElements(selenium.ByTagName, "tr") //nolint + tableRows, _ := shardContent.FindElements(selenium.ByTagName, "tr") //nolint tableRows = tableRows[1:] var tabletTypes, tabletUIDs []string From 61bf25f3440ee1b0b677af8280bf18da07eabb4f Mon Sep 17 00:00:00 2001 From: Zou Yu Date: Tue, 27 Apr 2021 01:15:55 -0400 Subject: [PATCH 49/63] Fix some static check warning in tools/rowlog/rowlog.go Signed-off-by: Zou Yu --- tools/rowlog/rowlog.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tools/rowlog/rowlog.go b/tools/rowlog/rowlog.go index 84117bf0952..920634dcd23 100644 --- a/tools/rowlog/rowlog.go +++ b/tools/rowlog/rowlog.go @@ -12,6 +12,7 @@ import ( "strings" "sync" "time" + "vitess.io/vitess/go/vt/binlog/binlogplayer" vtgatepb "vitess.io/vitess/go/vt/proto/vtgate" @@ -132,7 +133,7 @@ func startStreaming(ctx context.Context, vtgate, vtctld, keyspace, tablet, table log.Errorf("Invalid flavor for %s", keyspace) return "", "", false, false, nil } - startPos, stopPos, err = getPositions(ctx, vtctld, tablet) + startPos, stopPos, _ = getPositions(ctx, vtctld, tablet) startPos = flavor + "/" + startPos stopPos = flavor + "/" + stopPos } @@ -157,7 +158,7 @@ func startStreaming(ctx context.Context, vtgate, vtctld, keyspace, tablet, table log.Fatal(err) } defer conn.Close() - reader, err := conn.VStream(ctx, topodatapb.TabletType_MASTER, vgtid, filter, &vtgatepb.VStreamFlags{}) + reader, _ := conn.VStream(ctx, topodatapb.TabletType_MASTER, vgtid, filter, &vtgatepb.VStreamFlags{}) var fields []*query.Field var gtid string var plan *TablePlan @@ -251,7 +252,7 @@ func getHeader(plan *TablePlan) string { for _, field := range plan.fields { s += field.Name + "\t" } - s += fmt.Sprintf("op\ttimestamp\tgtid") + s += "op\ttimestamp\tgtid" return s } @@ -478,7 +479,7 @@ func execVtctl(ctx context.Context, server string, args []string) ([]string, err } if client == nil { fmt.Printf("Unable to contact %s\n", server) - return nil, fmt.Errorf("unable to contact %s\n", server) + return nil, fmt.Errorf("unable to contact %s", server) } defer client.Close() From c81ad527514b8dfd6cc0dd9af2c15a0b51987b48 Mon Sep 17 00:00:00 2001 From: Andrew Mason Date: Fri, 14 May 2021 08:30:50 -0400 Subject: [PATCH 50/63] [vtadmin] Add GetKeyspace rpc, regenerate protos Signed-off-by: Andrew Mason --- go/vt/proto/vtadmin/vtadmin.pb.go | 501 +++++++++++++++----- go/vt/vtadmin/api.go | 5 + go/vt/vtadmin/api_test.go | 3 + proto/vtadmin.proto | 7 + web/vtadmin/src/proto/vtadmin.d.ts | 315 +++++++++++++ web/vtadmin/src/proto/vtadmin.js | 729 +++++++++++++++++++++++++++++ 6 files changed, 1447 insertions(+), 113 deletions(-) diff --git a/go/vt/proto/vtadmin/vtadmin.pb.go b/go/vt/proto/vtadmin/vtadmin.pb.go index 51f816970b7..054e124c5b4 100644 --- a/go/vt/proto/vtadmin/vtadmin.pb.go +++ b/go/vt/proto/vtadmin/vtadmin.pb.go @@ -1032,6 +1032,61 @@ func (m *GetGatesResponse) GetGates() []*VTGate { return nil } +type GetKeyspaceRequest struct { + ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + Keyspace string `protobuf:"bytes,2,opt,name=keyspace,proto3" json:"keyspace,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetKeyspaceRequest) Reset() { *m = GetKeyspaceRequest{} } +func (m *GetKeyspaceRequest) String() string { return proto.CompactTextString(m) } +func (*GetKeyspaceRequest) ProtoMessage() {} +func (*GetKeyspaceRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_609739e22a0a50b3, []int{14} +} +func (m *GetKeyspaceRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GetKeyspaceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GetKeyspaceRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GetKeyspaceRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetKeyspaceRequest.Merge(m, src) +} +func (m *GetKeyspaceRequest) XXX_Size() int { + return m.Size() +} +func (m *GetKeyspaceRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetKeyspaceRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetKeyspaceRequest proto.InternalMessageInfo + +func (m *GetKeyspaceRequest) GetClusterId() string { + if m != nil { + return m.ClusterId + } + return "" +} + +func (m *GetKeyspaceRequest) GetKeyspace() string { + if m != nil { + return m.Keyspace + } + return "" +} + type GetKeyspacesRequest struct { ClusterIds []string `protobuf:"bytes,1,rep,name=cluster_ids,json=clusterIds,proto3" json:"cluster_ids,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1043,7 +1098,7 @@ func (m *GetKeyspacesRequest) Reset() { *m = GetKeyspacesRequest{} } func (m *GetKeyspacesRequest) String() string { return proto.CompactTextString(m) } func (*GetKeyspacesRequest) ProtoMessage() {} func (*GetKeyspacesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_609739e22a0a50b3, []int{14} + return fileDescriptor_609739e22a0a50b3, []int{15} } func (m *GetKeyspacesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1090,7 +1145,7 @@ func (m *GetKeyspacesResponse) Reset() { *m = GetKeyspacesResponse{} } func (m *GetKeyspacesResponse) String() string { return proto.CompactTextString(m) } func (*GetKeyspacesResponse) ProtoMessage() {} func (*GetKeyspacesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_609739e22a0a50b3, []int{15} + return fileDescriptor_609739e22a0a50b3, []int{16} } func (m *GetKeyspacesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1140,7 +1195,7 @@ func (m *GetSchemaRequest) Reset() { *m = GetSchemaRequest{} } func (m *GetSchemaRequest) String() string { return proto.CompactTextString(m) } func (*GetSchemaRequest) ProtoMessage() {} func (*GetSchemaRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_609739e22a0a50b3, []int{16} + return fileDescriptor_609739e22a0a50b3, []int{17} } func (m *GetSchemaRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1209,7 +1264,7 @@ func (m *GetSchemasRequest) Reset() { *m = GetSchemasRequest{} } func (m *GetSchemasRequest) String() string { return proto.CompactTextString(m) } func (*GetSchemasRequest) ProtoMessage() {} func (*GetSchemasRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_609739e22a0a50b3, []int{17} + return fileDescriptor_609739e22a0a50b3, []int{18} } func (m *GetSchemasRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1263,7 +1318,7 @@ func (m *GetSchemasResponse) Reset() { *m = GetSchemasResponse{} } func (m *GetSchemasResponse) String() string { return proto.CompactTextString(m) } func (*GetSchemasResponse) ProtoMessage() {} func (*GetSchemasResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_609739e22a0a50b3, []int{18} + return fileDescriptor_609739e22a0a50b3, []int{19} } func (m *GetSchemasResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1311,7 +1366,7 @@ func (m *GetSchemaTableSizeOptions) Reset() { *m = GetSchemaTableSizeOpt func (m *GetSchemaTableSizeOptions) String() string { return proto.CompactTextString(m) } func (*GetSchemaTableSizeOptions) ProtoMessage() {} func (*GetSchemaTableSizeOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_609739e22a0a50b3, []int{19} + return fileDescriptor_609739e22a0a50b3, []int{20} } func (m *GetSchemaTableSizeOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1369,7 +1424,7 @@ func (m *GetTabletRequest) Reset() { *m = GetTabletRequest{} } func (m *GetTabletRequest) String() string { return proto.CompactTextString(m) } func (*GetTabletRequest) ProtoMessage() {} func (*GetTabletRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_609739e22a0a50b3, []int{20} + return fileDescriptor_609739e22a0a50b3, []int{21} } func (m *GetTabletRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1423,7 +1478,7 @@ func (m *GetTabletsRequest) Reset() { *m = GetTabletsRequest{} } func (m *GetTabletsRequest) String() string { return proto.CompactTextString(m) } func (*GetTabletsRequest) ProtoMessage() {} func (*GetTabletsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_609739e22a0a50b3, []int{21} + return fileDescriptor_609739e22a0a50b3, []int{22} } func (m *GetTabletsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1470,7 +1525,7 @@ func (m *GetTabletsResponse) Reset() { *m = GetTabletsResponse{} } func (m *GetTabletsResponse) String() string { return proto.CompactTextString(m) } func (*GetTabletsResponse) ProtoMessage() {} func (*GetTabletsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_609739e22a0a50b3, []int{22} + return fileDescriptor_609739e22a0a50b3, []int{23} } func (m *GetTabletsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1518,7 +1573,7 @@ func (m *GetVSchemaRequest) Reset() { *m = GetVSchemaRequest{} } func (m *GetVSchemaRequest) String() string { return proto.CompactTextString(m) } func (*GetVSchemaRequest) ProtoMessage() {} func (*GetVSchemaRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_609739e22a0a50b3, []int{23} + return fileDescriptor_609739e22a0a50b3, []int{24} } func (m *GetVSchemaRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1572,7 +1627,7 @@ func (m *GetVSchemasRequest) Reset() { *m = GetVSchemasRequest{} } func (m *GetVSchemasRequest) String() string { return proto.CompactTextString(m) } func (*GetVSchemasRequest) ProtoMessage() {} func (*GetVSchemasRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_609739e22a0a50b3, []int{24} + return fileDescriptor_609739e22a0a50b3, []int{25} } func (m *GetVSchemasRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1619,7 +1674,7 @@ func (m *GetVSchemasResponse) Reset() { *m = GetVSchemasResponse{} } func (m *GetVSchemasResponse) String() string { return proto.CompactTextString(m) } func (*GetVSchemasResponse) ProtoMessage() {} func (*GetVSchemasResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_609739e22a0a50b3, []int{25} + return fileDescriptor_609739e22a0a50b3, []int{26} } func (m *GetVSchemasResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1669,7 +1724,7 @@ func (m *GetWorkflowRequest) Reset() { *m = GetWorkflowRequest{} } func (m *GetWorkflowRequest) String() string { return proto.CompactTextString(m) } func (*GetWorkflowRequest) ProtoMessage() {} func (*GetWorkflowRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_609739e22a0a50b3, []int{26} + return fileDescriptor_609739e22a0a50b3, []int{27} } func (m *GetWorkflowRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1755,7 +1810,7 @@ func (m *GetWorkflowsRequest) Reset() { *m = GetWorkflowsRequest{} } func (m *GetWorkflowsRequest) String() string { return proto.CompactTextString(m) } func (*GetWorkflowsRequest) ProtoMessage() {} func (*GetWorkflowsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_609739e22a0a50b3, []int{27} + return fileDescriptor_609739e22a0a50b3, []int{28} } func (m *GetWorkflowsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1823,7 +1878,7 @@ func (m *GetWorkflowsResponse) Reset() { *m = GetWorkflowsResponse{} } func (m *GetWorkflowsResponse) String() string { return proto.CompactTextString(m) } func (*GetWorkflowsResponse) ProtoMessage() {} func (*GetWorkflowsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_609739e22a0a50b3, []int{28} + return fileDescriptor_609739e22a0a50b3, []int{29} } func (m *GetWorkflowsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1872,7 +1927,7 @@ func (m *VTExplainRequest) Reset() { *m = VTExplainRequest{} } func (m *VTExplainRequest) String() string { return proto.CompactTextString(m) } func (*VTExplainRequest) ProtoMessage() {} func (*VTExplainRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_609739e22a0a50b3, []int{29} + return fileDescriptor_609739e22a0a50b3, []int{30} } func (m *VTExplainRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1933,7 +1988,7 @@ func (m *VTExplainResponse) Reset() { *m = VTExplainResponse{} } func (m *VTExplainResponse) String() string { return proto.CompactTextString(m) } func (*VTExplainResponse) ProtoMessage() {} func (*VTExplainResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_609739e22a0a50b3, []int{30} + return fileDescriptor_609739e22a0a50b3, []int{31} } func (m *VTExplainResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1990,6 +2045,7 @@ func init() { proto.RegisterType((*GetClustersResponse)(nil), "vtadmin.GetClustersResponse") proto.RegisterType((*GetGatesRequest)(nil), "vtadmin.GetGatesRequest") proto.RegisterType((*GetGatesResponse)(nil), "vtadmin.GetGatesResponse") + proto.RegisterType((*GetKeyspaceRequest)(nil), "vtadmin.GetKeyspaceRequest") proto.RegisterType((*GetKeyspacesRequest)(nil), "vtadmin.GetKeyspacesRequest") proto.RegisterType((*GetKeyspacesResponse)(nil), "vtadmin.GetKeyspacesResponse") proto.RegisterType((*GetSchemaRequest)(nil), "vtadmin.GetSchemaRequest") @@ -2013,102 +2069,104 @@ func init() { func init() { proto.RegisterFile("vtadmin.proto", fileDescriptor_609739e22a0a50b3) } var fileDescriptor_609739e22a0a50b3 = []byte{ - // 1516 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x4f, 0x73, 0xdb, 0x44, - 0x14, 0x8f, 0x6c, 0xc7, 0x7f, 0x9e, 0xdb, 0xd8, 0xd9, 0x66, 0xa6, 0x8e, 0x92, 0xa6, 0x99, 0x1d, - 0x28, 0x29, 0x43, 0xed, 0x19, 0xd3, 0x76, 0x28, 0x65, 0xa6, 0xb4, 0x4d, 0xeb, 0x29, 0x05, 0x07, - 0x94, 0xe0, 0x32, 0xbd, 0x08, 0xc5, 0x56, 0x1d, 0x4d, 0x15, 0xc9, 0x95, 0x36, 0x36, 0xe6, 0xc6, - 0xc0, 0x70, 0xe2, 0x03, 0x70, 0xe0, 0xc0, 0x99, 0x3b, 0xdf, 0x81, 0x23, 0x1f, 0x01, 0xca, 0x85, - 0x19, 0xbe, 0x00, 0x47, 0x46, 0xfb, 0x4f, 0x2b, 0xc9, 0x4e, 0x13, 0x9a, 0xdb, 0xee, 0x7b, 0x4f, - 0xef, 0xfd, 0xf6, 0xed, 0x7b, 0xbf, 0xb7, 0x36, 0x9c, 0x1f, 0x13, 0x6b, 0x70, 0xe8, 0x78, 0xcd, - 0x51, 0xe0, 0x13, 0x1f, 0x95, 0xf8, 0x56, 0xbf, 0x48, 0xac, 0x7d, 0xd7, 0x26, 0x87, 0x96, 0x67, - 0x0d, 0xed, 0x60, 0x60, 0x11, 0x8b, 0x59, 0xe8, 0x4b, 0xc4, 0x1f, 0xf9, 0xca, 0xfe, 0xfc, 0x38, - 0xec, 0x1f, 0xd8, 0x87, 0x62, 0x5b, 0x1b, 0x93, 0x3e, 0x71, 0x63, 0x3d, 0xbe, 0x06, 0xa5, 0xfb, - 0xee, 0x51, 0x48, 0xec, 0x00, 0x2d, 0x41, 0xce, 0x19, 0x34, 0xb4, 0x4d, 0x6d, 0xab, 0x62, 0xe4, - 0x9c, 0x01, 0x42, 0x50, 0xf0, 0xac, 0x43, 0xbb, 0x91, 0xa3, 0x12, 0xba, 0xc6, 0x26, 0xd4, 0xb9, - 0xf9, 0x13, 0x3f, 0x78, 0xfe, 0xcc, 0xf5, 0x27, 0x21, 0x6a, 0x41, 0x65, 0x22, 0x36, 0x0d, 0x6d, - 0x33, 0xbf, 0x55, 0x6d, 0x2f, 0x37, 0x05, 0x6e, 0x61, 0x66, 0xc4, 0x36, 0x48, 0x87, 0xf2, 0xc4, - 0x0a, 0x3c, 0xc7, 0x1b, 0x86, 0x8d, 0xdc, 0x66, 0x7e, 0xab, 0x62, 0xc8, 0x3d, 0xfe, 0x47, 0x83, - 0xf2, 0x63, 0x7b, 0x1a, 0x8e, 0xac, 0xbe, 0x8d, 0xde, 0x86, 0x52, 0x9f, 0x45, 0xa3, 0xb0, 0xaa, - 0xed, 0xba, 0xf4, 0xcb, 0x51, 0x18, 0xc2, 0x00, 0xb5, 0xa0, 0xfc, 0x9c, 0x7f, 0x47, 0x11, 0x57, - 0xdb, 0x17, 0x9a, 0xf1, 0x61, 0x85, 0x4b, 0x43, 0x1a, 0xa1, 0x1b, 0x50, 0x0c, 0x0f, 0xac, 0x60, - 0x10, 0x36, 0xf2, 0x14, 0xf3, 0x25, 0xe9, 0x5b, 0x18, 0x37, 0x77, 0xa9, 0xfe, 0x81, 0x47, 0x82, - 0xa9, 0xc1, 0x8d, 0xf5, 0xc7, 0x50, 0x55, 0xc4, 0xa8, 0x0e, 0xf9, 0xe7, 0xf6, 0x94, 0x67, 0x2d, - 0x5a, 0xa2, 0x2b, 0xb0, 0x38, 0xb6, 0xdc, 0x23, 0x81, 0xa2, 0xae, 0xa0, 0xa0, 0x1f, 0x1a, 0x4c, - 0xfd, 0x7e, 0xee, 0x3d, 0x0d, 0xff, 0x5b, 0x80, 0xe2, 0x2e, 0xbd, 0x9f, 0x53, 0x9d, 0x55, 0x4f, - 0x9d, 0xb5, 0xa2, 0x1c, 0x6b, 0x07, 0x96, 0x69, 0x6d, 0x98, 0x03, 0xfb, 0x99, 0xe3, 0x39, 0xc4, - 0xf1, 0x3d, 0x71, 0x42, 0xdc, 0xcc, 0x56, 0xcd, 0x5e, 0x24, 0xd9, 0x96, 0xa6, 0x46, 0x9d, 0x24, - 0x05, 0x21, 0xfa, 0x10, 0xaa, 0xcc, 0x61, 0xe8, 0x7c, 0x6d, 0x87, 0x8d, 0x02, 0x75, 0x75, 0x59, - 0x82, 0x63, 0xf0, 0x99, 0x9f, 0xdd, 0xc8, 0x82, 0xa5, 0x0b, 0x88, 0x14, 0xe8, 0x5f, 0x40, 0x2d, - 0xa5, 0x9e, 0x91, 0xb6, 0x56, 0x32, 0x6d, 0xab, 0x73, 0x03, 0x28, 0xf9, 0xd3, 0xbb, 0xb0, 0x44, - 0x73, 0x2a, 0x95, 0x68, 0x0d, 0x2a, 0x81, 0x3f, 0x31, 0xfb, 0xfe, 0x91, 0x47, 0xa8, 0xfb, 0x82, - 0x51, 0x0e, 0xfc, 0xc9, 0xfd, 0x68, 0x8f, 0x2e, 0x43, 0x35, 0x3a, 0xb4, 0xe9, 0xda, 0xde, 0x90, - 0x1c, 0xd0, 0x48, 0x05, 0x03, 0x22, 0xd1, 0xc7, 0x54, 0xa2, 0xff, 0xad, 0x41, 0xe5, 0x8c, 0x7c, - 0xa1, 0xbb, 0x50, 0xde, 0x9f, 0x9a, 0xb4, 0x6a, 0x78, 0xfe, 0xaf, 0xcc, 0x3d, 0x53, 0xf3, 0xde, - 0x94, 0x9e, 0x83, 0xe5, 0xae, 0xb4, 0xcf, 0x76, 0xfa, 0x53, 0x38, 0xa7, 0x2a, 0x66, 0x64, 0xed, - 0x7a, 0x32, 0x6b, 0x1b, 0xe9, 0x08, 0xc9, 0xec, 0xa8, 0xa5, 0xf7, 0xa7, 0x06, 0x45, 0xaa, 0x20, - 0xa7, 0x2a, 0xbd, 0x2d, 0x28, 0xb2, 0x22, 0x92, 0xe5, 0x2d, 0x09, 0x87, 0x79, 0x33, 0xb8, 0x1e, - 0xb5, 0x61, 0x31, 0x24, 0x16, 0xb1, 0x1b, 0xf9, 0x4d, 0x6d, 0x6b, 0xa9, 0xbd, 0x2e, 0x7d, 0x32, - 0xbb, 0xe6, 0xae, 0x1d, 0x8c, 0x1d, 0x6f, 0xb8, 0x1b, 0xd9, 0x18, 0xcc, 0x34, 0xa2, 0x9c, 0x87, - 0x9f, 0x6d, 0x77, 0x1b, 0x05, 0x46, 0x39, 0xd1, 0x1a, 0xdf, 0x82, 0x73, 0xaa, 0x29, 0xaa, 0x42, - 0xe9, 0xf3, 0xee, 0xe3, 0xee, 0xce, 0x93, 0x6e, 0x7d, 0x21, 0xda, 0xec, 0x3e, 0x30, 0x7a, 0x8f, - 0xba, 0x9d, 0xba, 0x86, 0x6a, 0x50, 0xed, 0xee, 0xec, 0x99, 0x42, 0x90, 0xc3, 0x13, 0x28, 0xf5, - 0xfe, 0x47, 0x7b, 0xcd, 0x20, 0x3e, 0xf4, 0x0e, 0x94, 0xc7, 0x26, 0xa3, 0x52, 0x7a, 0x20, 0xca, - 0x71, 0x9c, 0x5a, 0x25, 0xb9, 0x94, 0xc6, 0x2c, 0x1a, 0x1e, 0x40, 0xb1, 0x47, 0xbb, 0x3e, 0x6a, - 0xd5, 0x03, 0x3f, 0x24, 0xd4, 0x1f, 0xbb, 0x37, 0xb9, 0x57, 0x31, 0xe5, 0x4e, 0x80, 0x89, 0x66, - 0x26, 0xaf, 0x64, 0xe6, 0x17, 0x0d, 0x8a, 0xbd, 0xbd, 0x4e, 0x94, 0x94, 0xe3, 0xc2, 0x20, 0x28, - 0x8c, 0x7c, 0xdf, 0x15, 0xc7, 0x89, 0xd6, 0x91, 0xac, 0x6f, 0xbb, 0xae, 0x70, 0x17, 0xad, 0x55, - 0x38, 0x85, 0x57, 0xc1, 0x59, 0x87, 0x8a, 0x60, 0x9c, 0xb0, 0xb1, 0x48, 0x39, 0x3c, 0x16, 0x48, - 0xb0, 0x45, 0x05, 0xec, 0xb7, 0x1a, 0x94, 0xc5, 0x30, 0x38, 0x33, 0xb2, 0x6b, 0x41, 0x59, 0x8c, - 0x15, 0x7e, 0x2b, 0x2a, 0xe9, 0xcb, 0xd9, 0x23, 0x8d, 0xf0, 0x4f, 0x1a, 0x2c, 0x3f, 0x74, 0xbc, - 0x01, 0xbb, 0x27, 0xc3, 0x7e, 0x71, 0x64, 0x87, 0x04, 0xad, 0xc0, 0x22, 0x2d, 0x5a, 0x9e, 0x3a, - 0xb6, 0x89, 0x3a, 0x9c, 0x63, 0x30, 0x9d, 0x81, 0x98, 0x54, 0xc0, 0x45, 0x8f, 0x06, 0x21, 0xfa, - 0x14, 0x50, 0xcc, 0x8c, 0xa6, 0x3f, 0x12, 0x5c, 0xab, 0x51, 0xae, 0x15, 0x07, 0xea, 0xd8, 0x84, - 0x45, 0x93, 0x6d, 0xb8, 0xc3, 0x2c, 0x39, 0xd7, 0x2a, 0x12, 0xbc, 0x02, 0xa8, 0x63, 0x13, 0x9e, - 0x82, 0x90, 0xc3, 0xc3, 0xf7, 0xe1, 0x42, 0x42, 0x1a, 0x8e, 0x7c, 0x2f, 0xa4, 0x25, 0xc9, 0xc1, - 0x88, 0xb1, 0x9b, 0xcd, 0xa2, 0xb4, 0xc0, 0x6d, 0xa8, 0x75, 0x6c, 0x12, 0x15, 0x8b, 0xf0, 0x9b, - 0x3e, 0xa0, 0x96, 0x3e, 0x20, 0xbe, 0x05, 0xf5, 0xf8, 0x1b, 0x1e, 0xf5, 0x4d, 0x58, 0x1c, 0x46, - 0x02, 0x1e, 0xb2, 0x26, 0x43, 0xb2, 0x4a, 0x34, 0x98, 0x16, 0xdf, 0xa4, 0x98, 0x45, 0x67, 0x9c, - 0x3c, 0x64, 0x07, 0x56, 0x92, 0xdf, 0xf1, 0xb0, 0x2d, 0xb5, 0xe0, 0xd2, 0x8f, 0x0c, 0xd9, 0x80, - 0xb1, 0x0d, 0xfe, 0x55, 0xa3, 0xe0, 0x93, 0x17, 0x7d, 0x09, 0x20, 0x0e, 0xcf, 0x6f, 0xbb, 0x22, - 0xa3, 0x1f, 0x5b, 0x6a, 0xb2, 0x46, 0xf2, 0x6a, 0x8d, 0xcc, 0x2e, 0x81, 0xc2, 0x6b, 0x94, 0xc0, - 0xf7, 0x1a, 0x2c, 0x4b, 0xfb, 0x13, 0xe7, 0x6d, 0x0e, 0x90, 0xdc, 0x6b, 0x00, 0xb9, 0x43, 0x6b, - 0x51, 0xe2, 0xe0, 0xf7, 0x70, 0x15, 0x4a, 0x8c, 0xf5, 0xb2, 0x05, 0xc0, 0x53, 0x2d, 0xf4, 0xf8, - 0x1b, 0x0d, 0x56, 0xe7, 0x06, 0x44, 0x6f, 0x41, 0xcd, 0x1a, 0x0e, 0x03, 0x3b, 0x2a, 0x17, 0xfe, - 0xb4, 0x88, 0xee, 0xa3, 0x6c, 0x2c, 0x49, 0x31, 0x7d, 0x2f, 0xa0, 0xdb, 0xa0, 0x3b, 0x5e, 0xdf, - 0x3d, 0x1a, 0xd8, 0xa6, 0xe7, 0x7b, 0x66, 0xc8, 0x66, 0x81, 0xc9, 0xdf, 0x6e, 0x39, 0xfa, 0xcd, - 0x45, 0x6e, 0xd1, 0xf5, 0x3d, 0x31, 0x2b, 0xa8, 0x1a, 0xef, 0xd0, 0x22, 0xe0, 0x93, 0x89, 0xe7, - 0xf2, 0x38, 0xae, 0x7c, 0x55, 0xcf, 0xe3, 0xeb, 0xf4, 0x76, 0x98, 0xc3, 0x93, 0x57, 0x35, 0xcb, - 0xa5, 0xfc, 0x2a, 0xce, 0x25, 0x9b, 0x95, 0xd9, 0x5c, 0x72, 0xc4, 0x42, 0x8f, 0xbb, 0x34, 0x6c, - 0xef, 0xac, 0xaa, 0x19, 0xdf, 0xa0, 0x80, 0x7a, 0xa7, 0xac, 0x32, 0xbc, 0x4d, 0xbb, 0xba, 0x97, - 0x2e, 0x8a, 0x6b, 0x50, 0x11, 0xc3, 0x31, 0x4b, 0x45, 0x02, 0x74, 0x99, 0x0f, 0xc7, 0x10, 0x7f, - 0xa7, 0xd1, 0xe8, 0x92, 0x9e, 0x5f, 0xbf, 0x39, 0xc5, 0xc4, 0xce, 0x2b, 0x13, 0xfb, 0x32, 0x54, - 0xad, 0x3e, 0x71, 0xc6, 0xb6, 0xe9, 0x7b, 0xee, 0x94, 0xf6, 0x64, 0xd9, 0x00, 0x26, 0xda, 0xf1, - 0xdc, 0x29, 0xfe, 0x59, 0xa3, 0xa7, 0x91, 0x3f, 0x64, 0x4e, 0xdc, 0x6b, 0x29, 0xcf, 0xb9, 0xb4, - 0xe7, 0xe4, 0x74, 0xcc, 0xa7, 0xa7, 0xe3, 0x55, 0xa8, 0x3b, 0x43, 0xcf, 0x0f, 0x6c, 0x33, 0x36, - 0x2a, 0x50, 0xa3, 0x1a, 0x93, 0x4b, 0xf6, 0x8b, 0x1e, 0x69, 0x2b, 0x49, 0x88, 0x3c, 0xe3, 0x43, - 0x58, 0x91, 0xbf, 0xa7, 0xcc, 0xfd, 0xa9, 0x19, 0x4f, 0xd3, 0x28, 0xf9, 0x37, 0xd4, 0x86, 0xcf, - 0x7c, 0x2c, 0xe7, 0x62, 0x78, 0x6f, 0xca, 0xe7, 0x04, 0x7b, 0x77, 0xa2, 0x49, 0x46, 0xa1, 0x7f, - 0x09, 0x17, 0xe7, 0x98, 0x9f, 0xe6, 0x0d, 0x9f, 0xfe, 0xcd, 0xa8, 0x3e, 0x44, 0x9f, 0x42, 0xbd, - 0xb7, 0xf7, 0xe0, 0xab, 0x91, 0x6b, 0x39, 0x9e, 0xb8, 0x82, 0x46, 0xf2, 0x7d, 0x50, 0x39, 0xd9, - 0x6b, 0xa0, 0x0e, 0xf9, 0xf0, 0x85, 0x78, 0xd3, 0x44, 0x4b, 0xdc, 0x82, 0x65, 0xc5, 0x37, 0xcf, - 0x9d, 0x0e, 0xe5, 0x80, 0xaf, 0x45, 0xff, 0x8b, 0x7d, 0xfb, 0x87, 0x12, 0x94, 0x7a, 0x7b, 0x77, - 0x23, 0xd0, 0xe8, 0x36, 0x40, 0xfc, 0x54, 0x40, 0xba, 0x3c, 0x4c, 0xe6, 0xfd, 0xa0, 0xa7, 0x39, - 0x10, 0x2f, 0xa0, 0x8f, 0xa0, 0xaa, 0xcc, 0x6c, 0xb4, 0xa6, 0xde, 0x48, 0x6a, 0xbe, 0xeb, 0xeb, - 0xb3, 0x95, 0x0c, 0x12, 0x5e, 0x88, 0x7e, 0x49, 0x88, 0x31, 0x8c, 0x1a, 0xaa, 0xad, 0x3a, 0xcd, - 0xf5, 0xd5, 0x19, 0x1a, 0xe9, 0xe2, 0x13, 0x38, 0xa7, 0x8e, 0x55, 0x94, 0x08, 0x99, 0x9e, 0xd2, - 0xfa, 0xa5, 0x39, 0x5a, 0xe9, 0xee, 0x16, 0x54, 0x24, 0xb3, 0xa3, 0xd5, 0xec, 0x78, 0x39, 0x26, - 0x31, 0x1d, 0x80, 0x78, 0xac, 0x28, 0x59, 0xcd, 0xcc, 0x3c, 0x7d, 0x6d, 0xa6, 0x2e, 0x85, 0x81, - 0xff, 0x84, 0x49, 0x60, 0x48, 0xd0, 0xbd, 0x9e, 0x26, 0x55, 0x89, 0x81, 0xd3, 0x71, 0x12, 0x43, - 0x92, 0xd9, 0x93, 0x18, 0x52, 0xfc, 0x8d, 0x17, 0xd0, 0x07, 0xd4, 0x51, 0x2f, 0x53, 0x22, 0x19, - 0xae, 0xd6, 0x33, 0x7c, 0x28, 0x6b, 0x44, 0xb0, 0x69, 0xb2, 0x46, 0x52, 0xd4, 0x9c, 0xac, 0x91, - 0x5e, 0x36, 0x1b, 0x77, 0xa8, 0x2f, 0xf9, 0xc0, 0x5e, 0x9b, 0xc5, 0x00, 0xc2, 0x57, 0xf6, 0xdf, - 0x19, 0x59, 0x21, 0xf1, 0xbf, 0x3a, 0xeb, 0x73, 0x38, 0x64, 0x46, 0x85, 0x64, 0x18, 0x06, 0x2f, - 0xa0, 0x6d, 0xa8, 0xc8, 0xce, 0x53, 0x6e, 0x27, 0xdd, 0xe9, 0xba, 0x3e, 0x4b, 0x25, 0xbc, 0xdc, - 0xbb, 0xf9, 0xdb, 0xcb, 0x0d, 0xed, 0xf7, 0x97, 0x1b, 0xda, 0x1f, 0x2f, 0x37, 0xb4, 0x1f, 0xff, - 0xda, 0x58, 0x78, 0xfa, 0xc6, 0xd8, 0x21, 0x76, 0x18, 0x36, 0x1d, 0xbf, 0xc5, 0x56, 0xad, 0xa1, - 0xdf, 0x1a, 0x93, 0x16, 0xfd, 0x37, 0xab, 0xc5, 0x7d, 0xed, 0x17, 0xe9, 0xf6, 0xdd, 0xff, 0x02, - 0x00, 0x00, 0xff, 0xff, 0x91, 0x6f, 0x84, 0x7d, 0x3f, 0x13, 0x00, 0x00, + // 1543 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0xcd, 0x6e, 0xdb, 0xc6, + 0x13, 0x17, 0x25, 0x59, 0x1f, 0xa3, 0xc4, 0x92, 0x37, 0x06, 0x22, 0xd3, 0x8e, 0x63, 0x2c, 0xfe, + 0xff, 0xd4, 0x29, 0x1a, 0x09, 0x50, 0x93, 0xa0, 0x69, 0x0a, 0xa4, 0x49, 0x9c, 0x08, 0x69, 0x5a, + 0xa9, 0xa5, 0x5d, 0xa5, 0xc8, 0x85, 0xa5, 0x25, 0x46, 0x26, 0x22, 0x93, 0x0a, 0xb9, 0x96, 0xaa, + 0xde, 0x8a, 0x16, 0x7d, 0x86, 0x1e, 0x7a, 0xe8, 0xb9, 0xf7, 0xbe, 0x43, 0x2f, 0x05, 0xfa, 0x08, + 0x6d, 0x7a, 0x29, 0xd0, 0x17, 0xe8, 0xb1, 0xe0, 0x7e, 0x71, 0x49, 0x4a, 0x8e, 0x9d, 0xf8, 0xc6, + 0x9d, 0x19, 0xce, 0xfe, 0x66, 0x76, 0xf6, 0x37, 0x43, 0xc2, 0xf9, 0x09, 0xb1, 0x06, 0x87, 0x8e, + 0xdb, 0x18, 0xfb, 0x1e, 0xf1, 0x50, 0x91, 0x2f, 0xf5, 0x8b, 0xc4, 0xda, 0x1f, 0xd9, 0xe4, 0xd0, + 0x72, 0xad, 0xa1, 0xed, 0x0f, 0x2c, 0x62, 0x31, 0x0b, 0x7d, 0x99, 0x78, 0x63, 0x4f, 0x59, 0x9f, + 0x9f, 0x04, 0xfd, 0x03, 0xfb, 0x50, 0x2c, 0xab, 0x13, 0xd2, 0x27, 0xa3, 0x48, 0x8f, 0xaf, 0x41, + 0xf1, 0xfe, 0xe8, 0x28, 0x20, 0xb6, 0x8f, 0x96, 0x21, 0xeb, 0x0c, 0xea, 0xda, 0x96, 0xb6, 0x5d, + 0x36, 0xb2, 0xce, 0x00, 0x21, 0xc8, 0xbb, 0xd6, 0xa1, 0x5d, 0xcf, 0x52, 0x09, 0x7d, 0xc6, 0x26, + 0xd4, 0xb8, 0xf9, 0x13, 0xcf, 0x7f, 0xfe, 0x6c, 0xe4, 0x4d, 0x03, 0xd4, 0x84, 0xf2, 0x54, 0x2c, + 0xea, 0xda, 0x56, 0x6e, 0xbb, 0xd2, 0x5a, 0x69, 0x08, 0xdc, 0xc2, 0xcc, 0x88, 0x6c, 0x90, 0x0e, + 0xa5, 0xa9, 0xe5, 0xbb, 0x8e, 0x3b, 0x0c, 0xea, 0xd9, 0xad, 0xdc, 0x76, 0xd9, 0x90, 0x6b, 0xfc, + 0x8f, 0x06, 0xa5, 0xc7, 0xf6, 0x2c, 0x18, 0x5b, 0x7d, 0x1b, 0xbd, 0x0d, 0xc5, 0x3e, 0xdb, 0x8d, + 0xc2, 0xaa, 0xb4, 0x6a, 0xd2, 0x2f, 0x47, 0x61, 0x08, 0x03, 0xd4, 0x84, 0xd2, 0x73, 0xfe, 0x1e, + 0x45, 0x5c, 0x69, 0x5d, 0x68, 0x44, 0xc1, 0x0a, 0x97, 0x86, 0x34, 0x42, 0x37, 0xa0, 0x10, 0x1c, + 0x58, 0xfe, 0x20, 0xa8, 0xe7, 0x28, 0xe6, 0x4b, 0xd2, 0xb7, 0x30, 0x6e, 0xec, 0x52, 0xfd, 0x03, + 0x97, 0xf8, 0x33, 0x83, 0x1b, 0xeb, 0x8f, 0xa1, 0xa2, 0x88, 0x51, 0x0d, 0x72, 0xcf, 0xed, 0x19, + 0xcf, 0x5a, 0xf8, 0x88, 0xae, 0xc0, 0xd2, 0xc4, 0x1a, 0x1d, 0x09, 0x14, 0x35, 0x05, 0x05, 0x7d, + 0xd1, 0x60, 0xea, 0xf7, 0xb3, 0xef, 0x69, 0xf8, 0xdf, 0x3c, 0x14, 0x76, 0xe9, 0xf9, 0x9c, 0x2a, + 0x56, 0x3d, 0x11, 0x6b, 0x59, 0x09, 0xab, 0x0b, 0x2b, 0xb4, 0x36, 0xcc, 0x81, 0xfd, 0xcc, 0x71, + 0x1d, 0xe2, 0x78, 0xae, 0x88, 0x10, 0x37, 0xd2, 0x55, 0xb3, 0x17, 0x4a, 0x76, 0xa4, 0xa9, 0x51, + 0x23, 0x71, 0x41, 0x80, 0x3e, 0x84, 0x0a, 0x73, 0x18, 0x38, 0x5f, 0xdb, 0x41, 0x3d, 0x4f, 0x5d, + 0x5d, 0x96, 0xe0, 0x18, 0x7c, 0xe6, 0x67, 0x37, 0xb4, 0x60, 0xe9, 0x02, 0x22, 0x05, 0xfa, 0x17, + 0x50, 0x4d, 0xa8, 0xe7, 0xa4, 0xad, 0x19, 0x4f, 0xdb, 0xda, 0xc2, 0x0d, 0x94, 0xfc, 0xe9, 0x1d, + 0x58, 0xa6, 0x39, 0x95, 0x4a, 0xb4, 0x0e, 0x65, 0xdf, 0x9b, 0x9a, 0x7d, 0xef, 0xc8, 0x25, 0xd4, + 0x7d, 0xde, 0x28, 0xf9, 0xde, 0xf4, 0x7e, 0xb8, 0x46, 0x97, 0xa1, 0x12, 0x06, 0x6d, 0x8e, 0x6c, + 0x77, 0x48, 0x0e, 0xe8, 0x4e, 0x79, 0x03, 0x42, 0xd1, 0xc7, 0x54, 0xa2, 0xff, 0xad, 0x41, 0xf9, + 0x8c, 0x7c, 0xa1, 0xbb, 0x50, 0xda, 0x9f, 0x99, 0xb4, 0x6a, 0x78, 0xfe, 0xaf, 0x2c, 0x8c, 0xa9, + 0x71, 0x6f, 0x46, 0xe3, 0x60, 0xb9, 0x2b, 0xee, 0xb3, 0x95, 0xfe, 0x14, 0xce, 0xa9, 0x8a, 0x39, + 0x59, 0xbb, 0x1e, 0xcf, 0xda, 0x66, 0x72, 0x87, 0x78, 0x76, 0xd4, 0xd2, 0xfb, 0x53, 0x83, 0x02, + 0x55, 0x90, 0x53, 0x95, 0xde, 0x36, 0x14, 0x58, 0x11, 0xc9, 0xf2, 0x96, 0x84, 0xc3, 0xbc, 0x19, + 0x5c, 0x8f, 0x5a, 0xb0, 0x14, 0x10, 0x8b, 0xd8, 0xf5, 0xdc, 0x96, 0xb6, 0xbd, 0xdc, 0xda, 0x90, + 0x3e, 0x99, 0x5d, 0x63, 0xd7, 0xf6, 0x27, 0x8e, 0x3b, 0xdc, 0x0d, 0x6d, 0x0c, 0x66, 0x1a, 0x52, + 0xce, 0xc3, 0xcf, 0x76, 0x3a, 0xf5, 0x3c, 0xa3, 0x9c, 0xf0, 0x19, 0xdf, 0x82, 0x73, 0xaa, 0x29, + 0xaa, 0x40, 0xf1, 0xf3, 0xce, 0xe3, 0x4e, 0xf7, 0x49, 0xa7, 0x96, 0x09, 0x17, 0xbb, 0x0f, 0x8c, + 0xde, 0xa3, 0x4e, 0xbb, 0xa6, 0xa1, 0x2a, 0x54, 0x3a, 0xdd, 0x3d, 0x53, 0x08, 0xb2, 0x78, 0x0a, + 0xc5, 0xde, 0x6b, 0x5c, 0xaf, 0x39, 0xc4, 0x87, 0xde, 0x81, 0xd2, 0xc4, 0x64, 0x54, 0x4a, 0x03, + 0xa2, 0x1c, 0xc7, 0xa9, 0x55, 0x92, 0x4b, 0x71, 0xc2, 0x76, 0xc3, 0x03, 0x28, 0xf4, 0xe8, 0xad, + 0x0f, 0xaf, 0xea, 0x81, 0x17, 0x10, 0xea, 0x8f, 0x9d, 0x9b, 0x5c, 0xab, 0x98, 0xb2, 0x27, 0xc0, + 0x44, 0x33, 0x93, 0x53, 0x32, 0xf3, 0xb3, 0x06, 0x85, 0xde, 0x5e, 0x3b, 0x4c, 0xca, 0x71, 0xdb, + 0x20, 0xc8, 0x8f, 0x3d, 0x6f, 0x24, 0xc2, 0x09, 0x9f, 0x43, 0x59, 0xdf, 0x1e, 0x8d, 0x84, 0xbb, + 0xf0, 0x59, 0x85, 0x93, 0x7f, 0x15, 0x9c, 0x0d, 0x28, 0x0b, 0xc6, 0x09, 0xea, 0x4b, 0x94, 0xc3, + 0x23, 0x81, 0x04, 0x5b, 0x50, 0xc0, 0x7e, 0xab, 0x41, 0x49, 0x34, 0x83, 0x33, 0x23, 0xbb, 0x26, + 0x94, 0x44, 0x5b, 0xe1, 0xa7, 0xa2, 0x92, 0xbe, 0xec, 0x3d, 0xd2, 0x08, 0xff, 0xa8, 0xc1, 0xca, + 0x43, 0xc7, 0x1d, 0xb0, 0x73, 0x32, 0xec, 0x17, 0x47, 0x76, 0x40, 0xd0, 0x2a, 0x2c, 0xd1, 0xa2, + 0xe5, 0xa9, 0x63, 0x8b, 0xf0, 0x86, 0x73, 0x0c, 0xa6, 0x33, 0x10, 0x9d, 0x0a, 0xb8, 0xe8, 0xd1, + 0x20, 0x40, 0x9f, 0x02, 0x8a, 0x98, 0xd1, 0xf4, 0xc6, 0x82, 0x6b, 0x35, 0xca, 0xb5, 0x22, 0xa0, + 0xb6, 0x4d, 0xd8, 0x6e, 0xf2, 0x1a, 0x76, 0x99, 0x25, 0xe7, 0x5a, 0x45, 0x82, 0x57, 0x01, 0xb5, + 0x6d, 0xc2, 0x53, 0x10, 0x70, 0x78, 0xf8, 0x3e, 0x5c, 0x88, 0x49, 0x83, 0xb1, 0xe7, 0x06, 0xb4, + 0x24, 0x39, 0x18, 0xd1, 0x76, 0xd3, 0x59, 0x94, 0x16, 0xb8, 0x05, 0xd5, 0xb6, 0x4d, 0xc2, 0x62, + 0x11, 0x7e, 0x93, 0x01, 0x6a, 0xc9, 0x00, 0xf1, 0x2d, 0xa8, 0x45, 0xef, 0xf0, 0x5d, 0xff, 0x0f, + 0x4b, 0xc3, 0x50, 0xc0, 0xb7, 0xac, 0xca, 0x2d, 0x59, 0x25, 0x1a, 0x4c, 0x8b, 0xbb, 0x34, 0x12, + 0x79, 0x33, 0xf8, 0x8e, 0x97, 0x00, 0xa2, 0x1d, 0x79, 0xb6, 0xcb, 0x72, 0xc3, 0xe3, 0x8e, 0x1a, + 0xdf, 0xa4, 0x49, 0x10, 0x0e, 0x4f, 0x1e, 0x43, 0x1b, 0x56, 0xe3, 0xef, 0xf1, 0x38, 0x9a, 0x6a, + 0x05, 0x27, 0xa7, 0x16, 0x89, 0x3b, 0xb2, 0xc1, 0xbf, 0x68, 0x34, 0x1b, 0xf1, 0xca, 0x79, 0xfd, + 0x80, 0xa2, 0xa2, 0xcb, 0xa9, 0x45, 0x37, 0xbf, 0xa6, 0xf2, 0x6f, 0x50, 0x53, 0xdf, 0x6b, 0xb0, + 0x22, 0xed, 0x4f, 0x9c, 0xb7, 0x05, 0x40, 0xb2, 0x6f, 0x00, 0xe4, 0x0e, 0x2d, 0x09, 0x89, 0x83, + 0x9f, 0xc3, 0x55, 0x28, 0x32, 0x1a, 0x4d, 0x57, 0x14, 0x4f, 0xb5, 0xd0, 0xe3, 0x6f, 0x34, 0x58, + 0x5b, 0xb8, 0x21, 0x7a, 0x0b, 0xaa, 0xd6, 0x70, 0xe8, 0xdb, 0x61, 0xfd, 0xf1, 0x59, 0x25, 0x3c, + 0x8f, 0x92, 0xb1, 0x2c, 0xc5, 0x74, 0x00, 0x41, 0xb7, 0x41, 0x77, 0xdc, 0xfe, 0xe8, 0x68, 0x60, + 0x9b, 0xae, 0xe7, 0x9a, 0x01, 0x6b, 0x2e, 0x26, 0x1f, 0x06, 0xb3, 0xf4, 0x9d, 0x8b, 0xdc, 0xa2, + 0xe3, 0xb9, 0xa2, 0xf9, 0x50, 0x35, 0xee, 0xd2, 0x22, 0xe0, 0xad, 0x8e, 0xe7, 0xf2, 0x38, 0xf2, + 0x7d, 0x15, 0x89, 0xe0, 0xeb, 0xf4, 0x74, 0x98, 0xc3, 0x93, 0x57, 0x35, 0xcb, 0xa5, 0x7c, 0x2b, + 0xca, 0x25, 0x6b, 0xbe, 0xe9, 0x5c, 0x72, 0xc4, 0x42, 0x8f, 0x3b, 0x74, 0xdb, 0xde, 0x59, 0x55, + 0x33, 0xbe, 0x41, 0x01, 0xf5, 0x4e, 0x59, 0x65, 0x78, 0x87, 0xde, 0xea, 0x5e, 0xb2, 0x28, 0xae, + 0x41, 0x59, 0x74, 0xdb, 0x34, 0xb7, 0x09, 0xd0, 0x25, 0xde, 0x6d, 0x03, 0xfc, 0x9d, 0x46, 0x77, + 0x97, 0x7c, 0xff, 0xe6, 0x97, 0x53, 0x8c, 0x00, 0x39, 0x65, 0x04, 0xb8, 0x0c, 0x15, 0xab, 0x4f, + 0x9c, 0x89, 0x6d, 0x7a, 0xee, 0x68, 0x46, 0xef, 0x64, 0xc9, 0x00, 0x26, 0xea, 0xba, 0xa3, 0x19, + 0xfe, 0x49, 0xa3, 0xd1, 0xc8, 0x2f, 0xa3, 0x13, 0xdf, 0xb5, 0x84, 0xe7, 0x6c, 0xd2, 0x73, 0xbc, + 0xdd, 0xe6, 0x92, 0xed, 0xf6, 0x2a, 0xd4, 0x9c, 0xa1, 0xeb, 0xf9, 0xb6, 0x19, 0x19, 0xe5, 0xa9, + 0x51, 0x95, 0xc9, 0x25, 0xfb, 0x85, 0x53, 0xdf, 0x6a, 0x1c, 0x22, 0xcf, 0xf8, 0x10, 0x56, 0xe5, + 0x07, 0x9a, 0xb9, 0x3f, 0x33, 0xa3, 0xf6, 0x1c, 0x26, 0xff, 0x86, 0x7a, 0xe1, 0x53, 0x2f, 0xcb, + 0x46, 0x1b, 0xdc, 0x9b, 0xf1, 0xc6, 0xc3, 0x06, 0x59, 0x34, 0x4d, 0x29, 0xf4, 0x2f, 0xe1, 0xe2, + 0x02, 0xf3, 0xd3, 0x7c, 0x14, 0x24, 0x3f, 0x42, 0xd5, 0xc9, 0xf6, 0x29, 0xd4, 0x7a, 0x7b, 0x0f, + 0xbe, 0x1a, 0x8f, 0x2c, 0xc7, 0x15, 0x47, 0x50, 0x8f, 0x0f, 0x1c, 0xe5, 0x93, 0x8d, 0x17, 0x35, + 0xc8, 0x05, 0x2f, 0xc4, 0x90, 0x14, 0x3e, 0xe2, 0x26, 0xac, 0x28, 0xbe, 0x79, 0xee, 0x74, 0x28, + 0xf9, 0xfc, 0x59, 0xdc, 0x7f, 0xb1, 0x6e, 0xfd, 0x56, 0x84, 0x62, 0x6f, 0xef, 0x6e, 0x08, 0x1a, + 0xdd, 0x06, 0x88, 0x66, 0x0f, 0xa4, 0xcb, 0x60, 0x52, 0x03, 0x89, 0x9e, 0xe4, 0x40, 0x9c, 0x41, + 0x1f, 0x41, 0x45, 0x19, 0x02, 0xd0, 0xba, 0x7a, 0x22, 0x89, 0x81, 0x41, 0xdf, 0x98, 0xaf, 0x64, + 0x90, 0x70, 0x26, 0xfc, 0x34, 0x11, 0x7d, 0x1d, 0xd5, 0x55, 0x5b, 0x75, 0x3c, 0xd0, 0xd7, 0xe6, + 0x68, 0xa4, 0x8b, 0x3b, 0x14, 0x8e, 0xfc, 0x52, 0x8f, 0xc1, 0x49, 0x74, 0x7d, 0x3d, 0xdd, 0x57, + 0x71, 0x06, 0x7d, 0x02, 0xe7, 0xd4, 0xbe, 0x8c, 0x36, 0xe6, 0x79, 0x90, 0x58, 0x2e, 0x2d, 0xd0, + 0x4a, 0x3c, 0xb7, 0xa0, 0x2c, 0x5b, 0x03, 0x5a, 0x4b, 0xf7, 0xa7, 0x63, 0x32, 0xdb, 0x06, 0x88, + 0xfa, 0x92, 0x72, 0x2c, 0xa9, 0xa6, 0xa9, 0xaf, 0xcf, 0xd5, 0x25, 0x30, 0xf0, 0x8f, 0xaa, 0x18, + 0x86, 0x58, 0xbf, 0xd0, 0x93, 0xac, 0x2c, 0x31, 0x70, 0x3e, 0x8f, 0x63, 0x88, 0xb7, 0x86, 0x38, + 0x86, 0x44, 0x03, 0xc0, 0x19, 0xf4, 0x01, 0x75, 0xd4, 0x4b, 0xd5, 0x58, 0x8a, 0xec, 0xf5, 0x14, + 0xa1, 0xca, 0x22, 0x13, 0x74, 0x1c, 0x3f, 0xd5, 0x04, 0xb7, 0xc7, 0x8b, 0xac, 0x97, 0xce, 0x06, + 0xab, 0x10, 0x39, 0xf2, 0xaf, 0xcf, 0xa3, 0x90, 0x74, 0x85, 0x08, 0x8d, 0xac, 0x90, 0xe8, 0x3f, + 0xd3, 0xc6, 0x02, 0x12, 0x9a, 0x53, 0x21, 0x29, 0x8a, 0xc2, 0x19, 0xb4, 0x03, 0x65, 0x79, 0x75, + 0x95, 0xd3, 0x49, 0x52, 0x85, 0xae, 0xcf, 0x53, 0x09, 0x2f, 0xf7, 0x6e, 0xfe, 0xfa, 0x72, 0x53, + 0xfb, 0xfd, 0xe5, 0xa6, 0xf6, 0xc7, 0xcb, 0x4d, 0xed, 0x87, 0xbf, 0x36, 0x33, 0x4f, 0xff, 0x37, + 0x71, 0x88, 0x1d, 0x04, 0x0d, 0xc7, 0x6b, 0xb2, 0xa7, 0xe6, 0xd0, 0x6b, 0x4e, 0x48, 0x93, 0xfe, + 0x5f, 0x6b, 0x72, 0x5f, 0xfb, 0x05, 0xba, 0x7c, 0xf7, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x06, + 0xb3, 0xdc, 0xce, 0xd1, 0x13, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2134,6 +2192,8 @@ type VTAdminClient interface { GetClusters(ctx context.Context, in *GetClustersRequest, opts ...grpc.CallOption) (*GetClustersResponse, error) // GetGates returns all gates across all the specified clusters. GetGates(ctx context.Context, in *GetGatesRequest, opts ...grpc.CallOption) (*GetGatesResponse, error) + // GetKeyspace returns a keyspace by name in the specified cluster. + GetKeyspace(ctx context.Context, in *GetKeyspaceRequest, opts ...grpc.CallOption) (*Keyspace, error) // GetKeyspaces returns all keyspaces across the specified clusters. GetKeyspaces(ctx context.Context, in *GetKeyspacesRequest, opts ...grpc.CallOption) (*GetKeyspacesResponse, error) // GetSchema returns the schema for the specified (cluster, keyspace, table) @@ -2195,6 +2255,15 @@ func (c *vTAdminClient) GetGates(ctx context.Context, in *GetGatesRequest, opts return out, nil } +func (c *vTAdminClient) GetKeyspace(ctx context.Context, in *GetKeyspaceRequest, opts ...grpc.CallOption) (*Keyspace, error) { + out := new(Keyspace) + err := c.cc.Invoke(ctx, "/vtadmin.VTAdmin/GetKeyspace", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *vTAdminClient) GetKeyspaces(ctx context.Context, in *GetKeyspacesRequest, opts ...grpc.CallOption) (*GetKeyspacesResponse, error) { out := new(GetKeyspacesResponse) err := c.cc.Invoke(ctx, "/vtadmin.VTAdmin/GetKeyspaces", in, out, opts...) @@ -2298,6 +2367,8 @@ type VTAdminServer interface { GetClusters(context.Context, *GetClustersRequest) (*GetClustersResponse, error) // GetGates returns all gates across all the specified clusters. GetGates(context.Context, *GetGatesRequest) (*GetGatesResponse, error) + // GetKeyspace returns a keyspace by name in the specified cluster. + GetKeyspace(context.Context, *GetKeyspaceRequest) (*Keyspace, error) // GetKeyspaces returns all keyspaces across the specified clusters. GetKeyspaces(context.Context, *GetKeyspacesRequest) (*GetKeyspacesResponse, error) // GetSchema returns the schema for the specified (cluster, keyspace, table) @@ -2337,6 +2408,9 @@ func (*UnimplementedVTAdminServer) GetClusters(ctx context.Context, req *GetClus func (*UnimplementedVTAdminServer) GetGates(ctx context.Context, req *GetGatesRequest) (*GetGatesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetGates not implemented") } +func (*UnimplementedVTAdminServer) GetKeyspace(ctx context.Context, req *GetKeyspaceRequest) (*Keyspace, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetKeyspace not implemented") +} func (*UnimplementedVTAdminServer) GetKeyspaces(ctx context.Context, req *GetKeyspacesRequest) (*GetKeyspacesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetKeyspaces not implemented") } @@ -2426,6 +2500,24 @@ func _VTAdmin_GetGates_Handler(srv interface{}, ctx context.Context, dec func(in return interceptor(ctx, in, info, handler) } +func _VTAdmin_GetKeyspace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetKeyspaceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VTAdminServer).GetKeyspace(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/vtadmin.VTAdmin/GetKeyspace", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VTAdminServer).GetKeyspace(ctx, req.(*GetKeyspaceRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _VTAdmin_GetKeyspaces_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetKeyspacesRequest) if err := dec(in); err != nil { @@ -2622,6 +2714,10 @@ var _VTAdmin_serviceDesc = grpc.ServiceDesc{ MethodName: "GetGates", Handler: _VTAdmin_GetGates_Handler, }, + { + MethodName: "GetKeyspace", + Handler: _VTAdmin_GetKeyspace_Handler, + }, { MethodName: "GetKeyspaces", Handler: _VTAdmin_GetKeyspaces_Handler, @@ -3529,6 +3625,47 @@ func (m *GetGatesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *GetKeyspaceRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetKeyspaceRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GetKeyspaceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Keyspace) > 0 { + i -= len(m.Keyspace) + copy(dAtA[i:], m.Keyspace) + i = encodeVarintVtadmin(dAtA, i, uint64(len(m.Keyspace))) + i-- + dAtA[i] = 0x12 + } + if len(m.ClusterId) > 0 { + i -= len(m.ClusterId) + copy(dAtA[i:], m.ClusterId) + i = encodeVarintVtadmin(dAtA, i, uint64(len(m.ClusterId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *GetKeyspacesRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -4702,6 +4839,26 @@ func (m *GetGatesResponse) Size() (n int) { return n } +func (m *GetKeyspaceRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ClusterId) + if l > 0 { + n += 1 + l + sovVtadmin(uint64(l)) + } + l = len(m.Keyspace) + if l > 0 { + n += 1 + l + sovVtadmin(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *GetKeyspacesRequest) Size() (n int) { if m == nil { return 0 @@ -7527,6 +7684,124 @@ func (m *GetGatesResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *GetKeyspaceRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVtadmin + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetKeyspaceRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetKeyspaceRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVtadmin + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthVtadmin + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthVtadmin + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ClusterId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Keyspace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVtadmin + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthVtadmin + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthVtadmin + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Keyspace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipVtadmin(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthVtadmin + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthVtadmin + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *GetKeyspacesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/go/vt/vtadmin/api.go b/go/vt/vtadmin/api.go index 890a51321de..00e2a7e5903 100644 --- a/go/vt/vtadmin/api.go +++ b/go/vt/vtadmin/api.go @@ -295,6 +295,11 @@ func (api *API) GetGates(ctx context.Context, req *vtadminpb.GetGatesRequest) (* }, nil } +// GetKeyspace is part of the vtadminpb.VTAdminServer interface. +func (api *API) GetKeyspace(ctx context.Context, req *vtadminpb.GetKeyspaceRequest) (*vtadminpb.Keyspace, error) { + panic("unimplemented!") +} + // GetKeyspaces is part of the vtadminpb.VTAdminServer interface. func (api *API) GetKeyspaces(ctx context.Context, req *vtadminpb.GetKeyspacesRequest) (*vtadminpb.GetKeyspacesResponse, error) { span, ctx := trace.NewSpan(ctx, "API.GetKeyspaces") diff --git a/go/vt/vtadmin/api_test.go b/go/vt/vtadmin/api_test.go index bcd391ddfb7..44dd809409c 100644 --- a/go/vt/vtadmin/api_test.go +++ b/go/vt/vtadmin/api_test.go @@ -918,6 +918,9 @@ func TestGetGates(t *testing.T) { assert.Nil(t, resp) } +func TestGetKeyspace(t *testing.T) { +} + func TestGetKeyspaces(t *testing.T) { t.Parallel() diff --git a/proto/vtadmin.proto b/proto/vtadmin.proto index a18abf1cec2..9304493ca5c 100644 --- a/proto/vtadmin.proto +++ b/proto/vtadmin.proto @@ -42,6 +42,8 @@ service VTAdmin { rpc GetClusters(GetClustersRequest) returns (GetClustersResponse) {}; // GetGates returns all gates across all the specified clusters. rpc GetGates(GetGatesRequest) returns (GetGatesResponse) {}; + // GetKeyspace returns a keyspace by name in the specified cluster. + rpc GetKeyspace(GetKeyspaceRequest) returns (Keyspace) {}; // GetKeyspaces returns all keyspaces across the specified clusters. rpc GetKeyspaces(GetKeyspacesRequest) returns (GetKeyspacesResponse) {}; // GetSchema returns the schema for the specified (cluster, keyspace, table) @@ -189,6 +191,11 @@ message GetGatesResponse { repeated VTGate gates = 1; } +message GetKeyspaceRequest { + string cluster_id = 1; + string keyspace = 2; +} + message GetKeyspacesRequest { repeated string cluster_ids = 1; } diff --git a/web/vtadmin/src/proto/vtadmin.d.ts b/web/vtadmin/src/proto/vtadmin.d.ts index fb843674dbf..49f569f5e83 100644 --- a/web/vtadmin/src/proto/vtadmin.d.ts +++ b/web/vtadmin/src/proto/vtadmin.d.ts @@ -64,6 +64,20 @@ export namespace vtadmin { */ public getGates(request: vtadmin.IGetGatesRequest): Promise; + /** + * Calls GetKeyspace. + * @param request GetKeyspaceRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Keyspace + */ + public getKeyspace(request: vtadmin.IGetKeyspaceRequest, callback: vtadmin.VTAdmin.GetKeyspaceCallback): void; + + /** + * Calls GetKeyspace. + * @param request GetKeyspaceRequest message or plain object + * @returns Promise + */ + public getKeyspace(request: vtadmin.IGetKeyspaceRequest): Promise; + /** * Calls GetKeyspaces. * @param request GetKeyspacesRequest message or plain object @@ -228,6 +242,13 @@ export namespace vtadmin { */ type GetGatesCallback = (error: (Error|null), response?: vtadmin.GetGatesResponse) => void; + /** + * Callback as used by {@link vtadmin.VTAdmin#getKeyspace}. + * @param error Error, if any + * @param [response] Keyspace + */ + type GetKeyspaceCallback = (error: (Error|null), response?: vtadmin.Keyspace) => void; + /** * Callback as used by {@link vtadmin.VTAdmin#getKeyspaces}. * @param error Error, if any @@ -1902,6 +1923,102 @@ export namespace vtadmin { public toJSON(): { [k: string]: any }; } + /** Properties of a GetKeyspaceRequest. */ + interface IGetKeyspaceRequest { + + /** GetKeyspaceRequest cluster_id */ + cluster_id?: (string|null); + + /** GetKeyspaceRequest keyspace */ + keyspace?: (string|null); + } + + /** Represents a GetKeyspaceRequest. */ + class GetKeyspaceRequest implements IGetKeyspaceRequest { + + /** + * Constructs a new GetKeyspaceRequest. + * @param [properties] Properties to set + */ + constructor(properties?: vtadmin.IGetKeyspaceRequest); + + /** GetKeyspaceRequest cluster_id. */ + public cluster_id: string; + + /** GetKeyspaceRequest keyspace. */ + public keyspace: string; + + /** + * Creates a new GetKeyspaceRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns GetKeyspaceRequest instance + */ + public static create(properties?: vtadmin.IGetKeyspaceRequest): vtadmin.GetKeyspaceRequest; + + /** + * Encodes the specified GetKeyspaceRequest message. Does not implicitly {@link vtadmin.GetKeyspaceRequest.verify|verify} messages. + * @param message GetKeyspaceRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: vtadmin.IGetKeyspaceRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GetKeyspaceRequest message, length delimited. Does not implicitly {@link vtadmin.GetKeyspaceRequest.verify|verify} messages. + * @param message GetKeyspaceRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: vtadmin.IGetKeyspaceRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetKeyspaceRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GetKeyspaceRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): vtadmin.GetKeyspaceRequest; + + /** + * Decodes a GetKeyspaceRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GetKeyspaceRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): vtadmin.GetKeyspaceRequest; + + /** + * Verifies a GetKeyspaceRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GetKeyspaceRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GetKeyspaceRequest + */ + public static fromObject(object: { [k: string]: any }): vtadmin.GetKeyspaceRequest; + + /** + * Creates a plain object from a GetKeyspaceRequest message. Also converts values to other types if specified. + * @param message GetKeyspaceRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: vtadmin.GetKeyspaceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GetKeyspaceRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + /** Properties of a GetKeyspacesRequest. */ interface IGetKeyspacesRequest { @@ -7012,6 +7129,198 @@ export namespace tabletmanagerdata { public toJSON(): { [k: string]: any }; } + /** Properties of an ExecuteQueryRequest. */ + interface IExecuteQueryRequest { + + /** ExecuteQueryRequest query */ + query?: (Uint8Array|null); + + /** ExecuteQueryRequest db_name */ + db_name?: (string|null); + + /** ExecuteQueryRequest max_rows */ + max_rows?: (number|Long|null); + } + + /** Represents an ExecuteQueryRequest. */ + class ExecuteQueryRequest implements IExecuteQueryRequest { + + /** + * Constructs a new ExecuteQueryRequest. + * @param [properties] Properties to set + */ + constructor(properties?: tabletmanagerdata.IExecuteQueryRequest); + + /** ExecuteQueryRequest query. */ + public query: Uint8Array; + + /** ExecuteQueryRequest db_name. */ + public db_name: string; + + /** ExecuteQueryRequest max_rows. */ + public max_rows: (number|Long); + + /** + * Creates a new ExecuteQueryRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns ExecuteQueryRequest instance + */ + public static create(properties?: tabletmanagerdata.IExecuteQueryRequest): tabletmanagerdata.ExecuteQueryRequest; + + /** + * Encodes the specified ExecuteQueryRequest message. Does not implicitly {@link tabletmanagerdata.ExecuteQueryRequest.verify|verify} messages. + * @param message ExecuteQueryRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: tabletmanagerdata.IExecuteQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ExecuteQueryRequest message, length delimited. Does not implicitly {@link tabletmanagerdata.ExecuteQueryRequest.verify|verify} messages. + * @param message ExecuteQueryRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: tabletmanagerdata.IExecuteQueryRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an ExecuteQueryRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ExecuteQueryRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tabletmanagerdata.ExecuteQueryRequest; + + /** + * Decodes an ExecuteQueryRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ExecuteQueryRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tabletmanagerdata.ExecuteQueryRequest; + + /** + * Verifies an ExecuteQueryRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an ExecuteQueryRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ExecuteQueryRequest + */ + public static fromObject(object: { [k: string]: any }): tabletmanagerdata.ExecuteQueryRequest; + + /** + * Creates a plain object from an ExecuteQueryRequest message. Also converts values to other types if specified. + * @param message ExecuteQueryRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: tabletmanagerdata.ExecuteQueryRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ExecuteQueryRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of an ExecuteQueryResponse. */ + interface IExecuteQueryResponse { + + /** ExecuteQueryResponse result */ + result?: (query.IQueryResult|null); + } + + /** Represents an ExecuteQueryResponse. */ + class ExecuteQueryResponse implements IExecuteQueryResponse { + + /** + * Constructs a new ExecuteQueryResponse. + * @param [properties] Properties to set + */ + constructor(properties?: tabletmanagerdata.IExecuteQueryResponse); + + /** ExecuteQueryResponse result. */ + public result?: (query.IQueryResult|null); + + /** + * Creates a new ExecuteQueryResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns ExecuteQueryResponse instance + */ + public static create(properties?: tabletmanagerdata.IExecuteQueryResponse): tabletmanagerdata.ExecuteQueryResponse; + + /** + * Encodes the specified ExecuteQueryResponse message. Does not implicitly {@link tabletmanagerdata.ExecuteQueryResponse.verify|verify} messages. + * @param message ExecuteQueryResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: tabletmanagerdata.IExecuteQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ExecuteQueryResponse message, length delimited. Does not implicitly {@link tabletmanagerdata.ExecuteQueryResponse.verify|verify} messages. + * @param message ExecuteQueryResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: tabletmanagerdata.IExecuteQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an ExecuteQueryResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ExecuteQueryResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tabletmanagerdata.ExecuteQueryResponse; + + /** + * Decodes an ExecuteQueryResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ExecuteQueryResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tabletmanagerdata.ExecuteQueryResponse; + + /** + * Verifies an ExecuteQueryResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an ExecuteQueryResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ExecuteQueryResponse + */ + public static fromObject(object: { [k: string]: any }): tabletmanagerdata.ExecuteQueryResponse; + + /** + * Creates a plain object from an ExecuteQueryResponse message. Also converts values to other types if specified. + * @param message ExecuteQueryResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: tabletmanagerdata.ExecuteQueryResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ExecuteQueryResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + /** Properties of an ExecuteFetchAsDbaRequest. */ interface IExecuteFetchAsDbaRequest { @@ -18109,6 +18418,9 @@ export namespace query { /** RealtimeStats qps */ qps?: (number|null); + + /** RealtimeStats table_schema_changed */ + table_schema_changed?: (string[]|null); } /** Represents a RealtimeStats. */ @@ -18138,6 +18450,9 @@ export namespace query { /** RealtimeStats qps. */ public qps: number; + /** RealtimeStats table_schema_changed. */ + public table_schema_changed: string[]; + /** * Creates a new RealtimeStats instance using the specified properties. * @param [properties] Properties to set diff --git a/web/vtadmin/src/proto/vtadmin.js b/web/vtadmin/src/proto/vtadmin.js index 5c2f05b79cd..7fe902441fb 100644 --- a/web/vtadmin/src/proto/vtadmin.js +++ b/web/vtadmin/src/proto/vtadmin.js @@ -149,6 +149,39 @@ $root.vtadmin = (function() { * @variation 2 */ + /** + * Callback as used by {@link vtadmin.VTAdmin#getKeyspace}. + * @memberof vtadmin.VTAdmin + * @typedef GetKeyspaceCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {vtadmin.Keyspace} [response] Keyspace + */ + + /** + * Calls GetKeyspace. + * @function getKeyspace + * @memberof vtadmin.VTAdmin + * @instance + * @param {vtadmin.IGetKeyspaceRequest} request GetKeyspaceRequest message or plain object + * @param {vtadmin.VTAdmin.GetKeyspaceCallback} callback Node-style callback called with the error, if any, and Keyspace + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(VTAdmin.prototype.getKeyspace = function getKeyspace(request, callback) { + return this.rpcCall(getKeyspace, $root.vtadmin.GetKeyspaceRequest, $root.vtadmin.Keyspace, request, callback); + }, "name", { value: "GetKeyspace" }); + + /** + * Calls GetKeyspace. + * @function getKeyspace + * @memberof vtadmin.VTAdmin + * @instance + * @param {vtadmin.IGetKeyspaceRequest} request GetKeyspaceRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + /** * Callback as used by {@link vtadmin.VTAdmin#getKeyspaces}. * @memberof vtadmin.VTAdmin @@ -4461,6 +4494,216 @@ $root.vtadmin = (function() { return GetGatesResponse; })(); + vtadmin.GetKeyspaceRequest = (function() { + + /** + * Properties of a GetKeyspaceRequest. + * @memberof vtadmin + * @interface IGetKeyspaceRequest + * @property {string|null} [cluster_id] GetKeyspaceRequest cluster_id + * @property {string|null} [keyspace] GetKeyspaceRequest keyspace + */ + + /** + * Constructs a new GetKeyspaceRequest. + * @memberof vtadmin + * @classdesc Represents a GetKeyspaceRequest. + * @implements IGetKeyspaceRequest + * @constructor + * @param {vtadmin.IGetKeyspaceRequest=} [properties] Properties to set + */ + function GetKeyspaceRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GetKeyspaceRequest cluster_id. + * @member {string} cluster_id + * @memberof vtadmin.GetKeyspaceRequest + * @instance + */ + GetKeyspaceRequest.prototype.cluster_id = ""; + + /** + * GetKeyspaceRequest keyspace. + * @member {string} keyspace + * @memberof vtadmin.GetKeyspaceRequest + * @instance + */ + GetKeyspaceRequest.prototype.keyspace = ""; + + /** + * Creates a new GetKeyspaceRequest instance using the specified properties. + * @function create + * @memberof vtadmin.GetKeyspaceRequest + * @static + * @param {vtadmin.IGetKeyspaceRequest=} [properties] Properties to set + * @returns {vtadmin.GetKeyspaceRequest} GetKeyspaceRequest instance + */ + GetKeyspaceRequest.create = function create(properties) { + return new GetKeyspaceRequest(properties); + }; + + /** + * Encodes the specified GetKeyspaceRequest message. Does not implicitly {@link vtadmin.GetKeyspaceRequest.verify|verify} messages. + * @function encode + * @memberof vtadmin.GetKeyspaceRequest + * @static + * @param {vtadmin.IGetKeyspaceRequest} message GetKeyspaceRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetKeyspaceRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.cluster_id != null && Object.hasOwnProperty.call(message, "cluster_id")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.cluster_id); + if (message.keyspace != null && Object.hasOwnProperty.call(message, "keyspace")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.keyspace); + return writer; + }; + + /** + * Encodes the specified GetKeyspaceRequest message, length delimited. Does not implicitly {@link vtadmin.GetKeyspaceRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof vtadmin.GetKeyspaceRequest + * @static + * @param {vtadmin.IGetKeyspaceRequest} message GetKeyspaceRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetKeyspaceRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GetKeyspaceRequest message from the specified reader or buffer. + * @function decode + * @memberof vtadmin.GetKeyspaceRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {vtadmin.GetKeyspaceRequest} GetKeyspaceRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetKeyspaceRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.vtadmin.GetKeyspaceRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.cluster_id = reader.string(); + break; + case 2: + message.keyspace = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GetKeyspaceRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof vtadmin.GetKeyspaceRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {vtadmin.GetKeyspaceRequest} GetKeyspaceRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetKeyspaceRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GetKeyspaceRequest message. + * @function verify + * @memberof vtadmin.GetKeyspaceRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetKeyspaceRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.cluster_id != null && message.hasOwnProperty("cluster_id")) + if (!$util.isString(message.cluster_id)) + return "cluster_id: string expected"; + if (message.keyspace != null && message.hasOwnProperty("keyspace")) + if (!$util.isString(message.keyspace)) + return "keyspace: string expected"; + return null; + }; + + /** + * Creates a GetKeyspaceRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof vtadmin.GetKeyspaceRequest + * @static + * @param {Object.} object Plain object + * @returns {vtadmin.GetKeyspaceRequest} GetKeyspaceRequest + */ + GetKeyspaceRequest.fromObject = function fromObject(object) { + if (object instanceof $root.vtadmin.GetKeyspaceRequest) + return object; + var message = new $root.vtadmin.GetKeyspaceRequest(); + if (object.cluster_id != null) + message.cluster_id = String(object.cluster_id); + if (object.keyspace != null) + message.keyspace = String(object.keyspace); + return message; + }; + + /** + * Creates a plain object from a GetKeyspaceRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof vtadmin.GetKeyspaceRequest + * @static + * @param {vtadmin.GetKeyspaceRequest} message GetKeyspaceRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GetKeyspaceRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.cluster_id = ""; + object.keyspace = ""; + } + if (message.cluster_id != null && message.hasOwnProperty("cluster_id")) + object.cluster_id = message.cluster_id; + if (message.keyspace != null && message.hasOwnProperty("keyspace")) + object.keyspace = message.keyspace; + return object; + }; + + /** + * Converts this GetKeyspaceRequest to JSON. + * @function toJSON + * @memberof vtadmin.GetKeyspaceRequest + * @instance + * @returns {Object.} JSON object + */ + GetKeyspaceRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return GetKeyspaceRequest; + })(); + vtadmin.GetKeyspacesRequest = (function() { /** @@ -16005,6 +16248,453 @@ $root.tabletmanagerdata = (function() { return UnlockTablesResponse; })(); + tabletmanagerdata.ExecuteQueryRequest = (function() { + + /** + * Properties of an ExecuteQueryRequest. + * @memberof tabletmanagerdata + * @interface IExecuteQueryRequest + * @property {Uint8Array|null} [query] ExecuteQueryRequest query + * @property {string|null} [db_name] ExecuteQueryRequest db_name + * @property {number|Long|null} [max_rows] ExecuteQueryRequest max_rows + */ + + /** + * Constructs a new ExecuteQueryRequest. + * @memberof tabletmanagerdata + * @classdesc Represents an ExecuteQueryRequest. + * @implements IExecuteQueryRequest + * @constructor + * @param {tabletmanagerdata.IExecuteQueryRequest=} [properties] Properties to set + */ + function ExecuteQueryRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ExecuteQueryRequest query. + * @member {Uint8Array} query + * @memberof tabletmanagerdata.ExecuteQueryRequest + * @instance + */ + ExecuteQueryRequest.prototype.query = $util.newBuffer([]); + + /** + * ExecuteQueryRequest db_name. + * @member {string} db_name + * @memberof tabletmanagerdata.ExecuteQueryRequest + * @instance + */ + ExecuteQueryRequest.prototype.db_name = ""; + + /** + * ExecuteQueryRequest max_rows. + * @member {number|Long} max_rows + * @memberof tabletmanagerdata.ExecuteQueryRequest + * @instance + */ + ExecuteQueryRequest.prototype.max_rows = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * Creates a new ExecuteQueryRequest instance using the specified properties. + * @function create + * @memberof tabletmanagerdata.ExecuteQueryRequest + * @static + * @param {tabletmanagerdata.IExecuteQueryRequest=} [properties] Properties to set + * @returns {tabletmanagerdata.ExecuteQueryRequest} ExecuteQueryRequest instance + */ + ExecuteQueryRequest.create = function create(properties) { + return new ExecuteQueryRequest(properties); + }; + + /** + * Encodes the specified ExecuteQueryRequest message. Does not implicitly {@link tabletmanagerdata.ExecuteQueryRequest.verify|verify} messages. + * @function encode + * @memberof tabletmanagerdata.ExecuteQueryRequest + * @static + * @param {tabletmanagerdata.IExecuteQueryRequest} message ExecuteQueryRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExecuteQueryRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.query != null && Object.hasOwnProperty.call(message, "query")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.query); + if (message.db_name != null && Object.hasOwnProperty.call(message, "db_name")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.db_name); + if (message.max_rows != null && Object.hasOwnProperty.call(message, "max_rows")) + writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.max_rows); + return writer; + }; + + /** + * Encodes the specified ExecuteQueryRequest message, length delimited. Does not implicitly {@link tabletmanagerdata.ExecuteQueryRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof tabletmanagerdata.ExecuteQueryRequest + * @static + * @param {tabletmanagerdata.IExecuteQueryRequest} message ExecuteQueryRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExecuteQueryRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an ExecuteQueryRequest message from the specified reader or buffer. + * @function decode + * @memberof tabletmanagerdata.ExecuteQueryRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {tabletmanagerdata.ExecuteQueryRequest} ExecuteQueryRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExecuteQueryRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.tabletmanagerdata.ExecuteQueryRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.query = reader.bytes(); + break; + case 2: + message.db_name = reader.string(); + break; + case 3: + message.max_rows = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an ExecuteQueryRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof tabletmanagerdata.ExecuteQueryRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {tabletmanagerdata.ExecuteQueryRequest} ExecuteQueryRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExecuteQueryRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ExecuteQueryRequest message. + * @function verify + * @memberof tabletmanagerdata.ExecuteQueryRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ExecuteQueryRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.query != null && message.hasOwnProperty("query")) + if (!(message.query && typeof message.query.length === "number" || $util.isString(message.query))) + return "query: buffer expected"; + if (message.db_name != null && message.hasOwnProperty("db_name")) + if (!$util.isString(message.db_name)) + return "db_name: string expected"; + if (message.max_rows != null && message.hasOwnProperty("max_rows")) + if (!$util.isInteger(message.max_rows) && !(message.max_rows && $util.isInteger(message.max_rows.low) && $util.isInteger(message.max_rows.high))) + return "max_rows: integer|Long expected"; + return null; + }; + + /** + * Creates an ExecuteQueryRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof tabletmanagerdata.ExecuteQueryRequest + * @static + * @param {Object.} object Plain object + * @returns {tabletmanagerdata.ExecuteQueryRequest} ExecuteQueryRequest + */ + ExecuteQueryRequest.fromObject = function fromObject(object) { + if (object instanceof $root.tabletmanagerdata.ExecuteQueryRequest) + return object; + var message = new $root.tabletmanagerdata.ExecuteQueryRequest(); + if (object.query != null) + if (typeof object.query === "string") + $util.base64.decode(object.query, message.query = $util.newBuffer($util.base64.length(object.query)), 0); + else if (object.query.length) + message.query = object.query; + if (object.db_name != null) + message.db_name = String(object.db_name); + if (object.max_rows != null) + if ($util.Long) + (message.max_rows = $util.Long.fromValue(object.max_rows)).unsigned = true; + else if (typeof object.max_rows === "string") + message.max_rows = parseInt(object.max_rows, 10); + else if (typeof object.max_rows === "number") + message.max_rows = object.max_rows; + else if (typeof object.max_rows === "object") + message.max_rows = new $util.LongBits(object.max_rows.low >>> 0, object.max_rows.high >>> 0).toNumber(true); + return message; + }; + + /** + * Creates a plain object from an ExecuteQueryRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof tabletmanagerdata.ExecuteQueryRequest + * @static + * @param {tabletmanagerdata.ExecuteQueryRequest} message ExecuteQueryRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ExecuteQueryRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if (options.bytes === String) + object.query = ""; + else { + object.query = []; + if (options.bytes !== Array) + object.query = $util.newBuffer(object.query); + } + object.db_name = ""; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.max_rows = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.max_rows = options.longs === String ? "0" : 0; + } + if (message.query != null && message.hasOwnProperty("query")) + object.query = options.bytes === String ? $util.base64.encode(message.query, 0, message.query.length) : options.bytes === Array ? Array.prototype.slice.call(message.query) : message.query; + if (message.db_name != null && message.hasOwnProperty("db_name")) + object.db_name = message.db_name; + if (message.max_rows != null && message.hasOwnProperty("max_rows")) + if (typeof message.max_rows === "number") + object.max_rows = options.longs === String ? String(message.max_rows) : message.max_rows; + else + object.max_rows = options.longs === String ? $util.Long.prototype.toString.call(message.max_rows) : options.longs === Number ? new $util.LongBits(message.max_rows.low >>> 0, message.max_rows.high >>> 0).toNumber(true) : message.max_rows; + return object; + }; + + /** + * Converts this ExecuteQueryRequest to JSON. + * @function toJSON + * @memberof tabletmanagerdata.ExecuteQueryRequest + * @instance + * @returns {Object.} JSON object + */ + ExecuteQueryRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ExecuteQueryRequest; + })(); + + tabletmanagerdata.ExecuteQueryResponse = (function() { + + /** + * Properties of an ExecuteQueryResponse. + * @memberof tabletmanagerdata + * @interface IExecuteQueryResponse + * @property {query.IQueryResult|null} [result] ExecuteQueryResponse result + */ + + /** + * Constructs a new ExecuteQueryResponse. + * @memberof tabletmanagerdata + * @classdesc Represents an ExecuteQueryResponse. + * @implements IExecuteQueryResponse + * @constructor + * @param {tabletmanagerdata.IExecuteQueryResponse=} [properties] Properties to set + */ + function ExecuteQueryResponse(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ExecuteQueryResponse result. + * @member {query.IQueryResult|null|undefined} result + * @memberof tabletmanagerdata.ExecuteQueryResponse + * @instance + */ + ExecuteQueryResponse.prototype.result = null; + + /** + * Creates a new ExecuteQueryResponse instance using the specified properties. + * @function create + * @memberof tabletmanagerdata.ExecuteQueryResponse + * @static + * @param {tabletmanagerdata.IExecuteQueryResponse=} [properties] Properties to set + * @returns {tabletmanagerdata.ExecuteQueryResponse} ExecuteQueryResponse instance + */ + ExecuteQueryResponse.create = function create(properties) { + return new ExecuteQueryResponse(properties); + }; + + /** + * Encodes the specified ExecuteQueryResponse message. Does not implicitly {@link tabletmanagerdata.ExecuteQueryResponse.verify|verify} messages. + * @function encode + * @memberof tabletmanagerdata.ExecuteQueryResponse + * @static + * @param {tabletmanagerdata.IExecuteQueryResponse} message ExecuteQueryResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExecuteQueryResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.result != null && Object.hasOwnProperty.call(message, "result")) + $root.query.QueryResult.encode(message.result, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ExecuteQueryResponse message, length delimited. Does not implicitly {@link tabletmanagerdata.ExecuteQueryResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof tabletmanagerdata.ExecuteQueryResponse + * @static + * @param {tabletmanagerdata.IExecuteQueryResponse} message ExecuteQueryResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExecuteQueryResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an ExecuteQueryResponse message from the specified reader or buffer. + * @function decode + * @memberof tabletmanagerdata.ExecuteQueryResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {tabletmanagerdata.ExecuteQueryResponse} ExecuteQueryResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExecuteQueryResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.tabletmanagerdata.ExecuteQueryResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.result = $root.query.QueryResult.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an ExecuteQueryResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof tabletmanagerdata.ExecuteQueryResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {tabletmanagerdata.ExecuteQueryResponse} ExecuteQueryResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExecuteQueryResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ExecuteQueryResponse message. + * @function verify + * @memberof tabletmanagerdata.ExecuteQueryResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ExecuteQueryResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.result != null && message.hasOwnProperty("result")) { + var error = $root.query.QueryResult.verify(message.result); + if (error) + return "result." + error; + } + return null; + }; + + /** + * Creates an ExecuteQueryResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof tabletmanagerdata.ExecuteQueryResponse + * @static + * @param {Object.} object Plain object + * @returns {tabletmanagerdata.ExecuteQueryResponse} ExecuteQueryResponse + */ + ExecuteQueryResponse.fromObject = function fromObject(object) { + if (object instanceof $root.tabletmanagerdata.ExecuteQueryResponse) + return object; + var message = new $root.tabletmanagerdata.ExecuteQueryResponse(); + if (object.result != null) { + if (typeof object.result !== "object") + throw TypeError(".tabletmanagerdata.ExecuteQueryResponse.result: object expected"); + message.result = $root.query.QueryResult.fromObject(object.result); + } + return message; + }; + + /** + * Creates a plain object from an ExecuteQueryResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof tabletmanagerdata.ExecuteQueryResponse + * @static + * @param {tabletmanagerdata.ExecuteQueryResponse} message ExecuteQueryResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ExecuteQueryResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.result = null; + if (message.result != null && message.hasOwnProperty("result")) + object.result = $root.query.QueryResult.toObject(message.result, options); + return object; + }; + + /** + * Converts this ExecuteQueryResponse to JSON. + * @function toJSON + * @memberof tabletmanagerdata.ExecuteQueryResponse + * @instance + * @returns {Object.} JSON object + */ + ExecuteQueryResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ExecuteQueryResponse; + })(); + tabletmanagerdata.ExecuteFetchAsDbaRequest = (function() { /** @@ -42380,6 +43070,7 @@ $root.query = (function() { * @property {number|Long|null} [seconds_behind_master_filtered_replication] RealtimeStats seconds_behind_master_filtered_replication * @property {number|null} [cpu_usage] RealtimeStats cpu_usage * @property {number|null} [qps] RealtimeStats qps + * @property {Array.|null} [table_schema_changed] RealtimeStats table_schema_changed */ /** @@ -42391,6 +43082,7 @@ $root.query = (function() { * @param {query.IRealtimeStats=} [properties] Properties to set */ function RealtimeStats(properties) { + this.table_schema_changed = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -42445,6 +43137,14 @@ $root.query = (function() { */ RealtimeStats.prototype.qps = 0; + /** + * RealtimeStats table_schema_changed. + * @member {Array.} table_schema_changed + * @memberof query.RealtimeStats + * @instance + */ + RealtimeStats.prototype.table_schema_changed = $util.emptyArray; + /** * Creates a new RealtimeStats instance using the specified properties. * @function create @@ -42481,6 +43181,9 @@ $root.query = (function() { writer.uint32(/* id 5, wireType 1 =*/41).double(message.cpu_usage); if (message.qps != null && Object.hasOwnProperty.call(message, "qps")) writer.uint32(/* id 6, wireType 1 =*/49).double(message.qps); + if (message.table_schema_changed != null && message.table_schema_changed.length) + for (var i = 0; i < message.table_schema_changed.length; ++i) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.table_schema_changed[i]); return writer; }; @@ -42533,6 +43236,11 @@ $root.query = (function() { case 6: message.qps = reader.double(); break; + case 7: + if (!(message.table_schema_changed && message.table_schema_changed.length)) + message.table_schema_changed = []; + message.table_schema_changed.push(reader.string()); + break; default: reader.skipType(tag & 7); break; @@ -42586,6 +43294,13 @@ $root.query = (function() { if (message.qps != null && message.hasOwnProperty("qps")) if (typeof message.qps !== "number") return "qps: number expected"; + if (message.table_schema_changed != null && message.hasOwnProperty("table_schema_changed")) { + if (!Array.isArray(message.table_schema_changed)) + return "table_schema_changed: array expected"; + for (var i = 0; i < message.table_schema_changed.length; ++i) + if (!$util.isString(message.table_schema_changed[i])) + return "table_schema_changed: string[] expected"; + } return null; }; @@ -42620,6 +43335,13 @@ $root.query = (function() { message.cpu_usage = Number(object.cpu_usage); if (object.qps != null) message.qps = Number(object.qps); + if (object.table_schema_changed) { + if (!Array.isArray(object.table_schema_changed)) + throw TypeError(".query.RealtimeStats.table_schema_changed: array expected"); + message.table_schema_changed = []; + for (var i = 0; i < object.table_schema_changed.length; ++i) + message.table_schema_changed[i] = String(object.table_schema_changed[i]); + } return message; }; @@ -42636,6 +43358,8 @@ $root.query = (function() { if (!options) options = {}; var object = {}; + if (options.arrays || options.defaults) + object.table_schema_changed = []; if (options.defaults) { object.health_error = ""; object.seconds_behind_master = 0; @@ -42663,6 +43387,11 @@ $root.query = (function() { object.cpu_usage = options.json && !isFinite(message.cpu_usage) ? String(message.cpu_usage) : message.cpu_usage; if (message.qps != null && message.hasOwnProperty("qps")) object.qps = options.json && !isFinite(message.qps) ? String(message.qps) : message.qps; + if (message.table_schema_changed && message.table_schema_changed.length) { + object.table_schema_changed = []; + for (var j = 0; j < message.table_schema_changed.length; ++j) + object.table_schema_changed[j] = message.table_schema_changed[j]; + } return object; }; From 933f8c6dbcea6d8f1d07fea485319bf2957cb51f Mon Sep 17 00:00:00 2001 From: Andrew Mason Date: Fri, 14 May 2021 10:08:15 -0400 Subject: [PATCH 51/63] Extract core of `API.GetKeyspaces` to package cluster, implement `GetKeyspace` and add tests Signed-off-by: Andrew Mason --- go/vt/vtadmin/api.go | 60 +++----------- go/vt/vtadmin/api_test.go | 131 +++++++++++++++++++++++++++++++ go/vt/vtadmin/cluster/cluster.go | 85 ++++++++++++++++++++ 3 files changed, 227 insertions(+), 49 deletions(-) diff --git a/go/vt/vtadmin/api.go b/go/vt/vtadmin/api.go index 00e2a7e5903..3a2278a9afd 100644 --- a/go/vt/vtadmin/api.go +++ b/go/vt/vtadmin/api.go @@ -297,7 +297,15 @@ func (api *API) GetGates(ctx context.Context, req *vtadminpb.GetGatesRequest) (* // GetKeyspace is part of the vtadminpb.VTAdminServer interface. func (api *API) GetKeyspace(ctx context.Context, req *vtadminpb.GetKeyspaceRequest) (*vtadminpb.Keyspace, error) { - panic("unimplemented!") + span, ctx := trace.NewSpan(ctx, "API.GetKeyspace") + defer span.Finish() + + c, ok := api.clusterMap[req.ClusterId] + if !ok { + return nil, fmt.Errorf("%w: %s", errors.ErrUnsupportedCluster, req.ClusterId) + } + + return c.GetKeyspace(ctx, req.Keyspace) } // GetKeyspaces is part of the vtadminpb.VTAdminServer interface. @@ -320,58 +328,12 @@ func (api *API) GetKeyspaces(ctx context.Context, req *vtadminpb.GetKeyspacesReq go func(c *cluster.Cluster) { defer wg.Done() - if err := c.Vtctld.Dial(ctx); err != nil { - er.RecordError(err) - return - } - - getKeyspacesSpan, getKeyspacesCtx := trace.NewSpan(ctx, "Cluster.GetKeyspaces") - cluster.AnnotateSpan(c, getKeyspacesSpan) - - resp, err := c.Vtctld.GetKeyspaces(getKeyspacesCtx, &vtctldatapb.GetKeyspacesRequest{}) + kss, err := c.GetKeyspaces(ctx) if err != nil { - er.RecordError(fmt.Errorf("GetKeyspaces(cluster = %s): %w", c.ID, err)) - getKeyspacesSpan.Finish() + er.RecordError(err) return } - getKeyspacesSpan.Finish() - - kss := make([]*vtadminpb.Keyspace, 0, len(resp.Keyspaces)) - - var ( - kwg sync.WaitGroup - km sync.Mutex - ) - - for _, ks := range resp.Keyspaces { - kwg.Add(1) - - // Find all shards for each keyspace in the cluster, in parallel - go func(c *cluster.Cluster, ks *vtctldatapb.Keyspace) { - defer kwg.Done() - - shards, err := c.FindAllShardsInKeyspace(ctx, ks.Name, cluster.FindAllShardsInKeyspaceOptions{ - SkipDial: true, - }) - - if err != nil { - er.RecordError(err) - return - } - - km.Lock() - kss = append(kss, &vtadminpb.Keyspace{ - Cluster: c.ToProto(), - Keyspace: ks, - Shards: shards, - }) - km.Unlock() - }(c, ks) - } - - kwg.Wait() - m.Lock() keyspaces = append(keyspaces, kss...) m.Unlock() diff --git a/go/vt/vtadmin/api_test.go b/go/vt/vtadmin/api_test.go index 44dd809409c..ee53e6367b6 100644 --- a/go/vt/vtadmin/api_test.go +++ b/go/vt/vtadmin/api_test.go @@ -919,6 +919,137 @@ func TestGetGates(t *testing.T) { } func TestGetKeyspace(t *testing.T) { + t.Parallel() + + tests := []struct { + name string + clusterShards [][]*vtctldatapb.Shard + req *vtadminpb.GetKeyspaceRequest + expected *vtadminpb.Keyspace + shouldErr bool + }{ + { + clusterShards: [][]*vtctldatapb.Shard{ + // cluster-0 + { + { + Keyspace: "ks", + Name: "-80", + Shard: &topodatapb.Shard{}, + }, + { + Keyspace: "ks", + Name: "80-", + Shard: &topodatapb.Shard{}, + }, + }, + // cluster-1 + { + { + Keyspace: "ks", + Name: "-", + Shard: &topodatapb.Shard{}, + }, + }, + }, + req: &vtadminpb.GetKeyspaceRequest{ + ClusterId: "cluster-1", + Keyspace: "ks", + }, + expected: &vtadminpb.Keyspace{ + Cluster: &vtadminpb.Cluster{ + Id: "cluster-1", + Name: "cluster-1", + }, + Keyspace: &vtctldatapb.Keyspace{ + Name: "ks", + Keyspace: &topodatapb.Keyspace{}, + }, + Shards: map[string]*vtctldatapb.Shard{ + "-": { + Keyspace: "ks", + Name: "-", + Shard: &topodatapb.Shard{}, + }, + }, + }, + }, + { + name: "nonexistent cluster", + clusterShards: [][]*vtctldatapb.Shard{ + // cluster-0 + { + { + Keyspace: "ks", + Name: "-80", + Shard: &topodatapb.Shard{}, + }, + { + Keyspace: "ks", + Name: "80-", + Shard: &topodatapb.Shard{}, + }, + }, + // cluster-1 + { + { + Keyspace: "ks", + Name: "-", + Shard: &topodatapb.Shard{}, + }, + }, + }, + req: &vtadminpb.GetKeyspaceRequest{ + ClusterId: "cluster-2", + }, + shouldErr: true, + }, + } + + ctx := context.Background() + + for _, tt := range tests { + tt := tt + + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + + topos := make([]*topo.Server, len(tt.clusterShards)) + vtctlds := make([]vtctlservicepb.VtctldServer, len(tt.clusterShards)) + + for i, shards := range tt.clusterShards { + ts := memorytopo.NewServer("cell1") + testutil.AddShards(ctx, t, ts, shards...) + topos[i] = ts + vtctlds[i] = testutil.NewVtctldServerWithTabletManagerClient(t, ts, nil, func(ts *topo.Server) vtctlservicepb.VtctldServer { + return grpcvtctldserver.NewVtctldServer(ts) + }) + } + + testutil.WithTestServers(t, func(t *testing.T, clients ...vtctldclient.VtctldClient) { + clusters := make([]*cluster.Cluster, len(clients)) + for i, client := range clients { + clusters[i] = vtadmintestutil.BuildCluster(vtadmintestutil.TestClusterConfig{ + Cluster: &vtadminpb.Cluster{ + Id: fmt.Sprintf("cluster-%d", i), + Name: fmt.Sprintf("cluster-%d", i), + }, + VtctldClient: client, + }) + } + + api := NewAPI(clusters, grpcserver.Options{}, http.Options{}) + ks, err := api.GetKeyspace(ctx, tt.req) + if tt.shouldErr { + assert.Error(t, err) + return + } + + assert.NoError(t, err) + assert.Equal(t, tt.expected, ks) + }, vtctlds...) + }) + } } func TestGetKeyspaces(t *testing.T) { diff --git a/go/vt/vtadmin/cluster/cluster.go b/go/vt/vtadmin/cluster/cluster.go index a1366128548..8062d4ae905 100644 --- a/go/vt/vtadmin/cluster/cluster.go +++ b/go/vt/vtadmin/cluster/cluster.go @@ -426,6 +426,91 @@ func (c *Cluster) GetGates(ctx context.Context) ([]*vtadminpb.VTGate, error) { return gates, nil } +// GetKeyspace returns a single keyspace in the cluster. +func (c *Cluster) GetKeyspace(ctx context.Context, name string) (*vtadminpb.Keyspace, error) { + span, ctx := trace.NewSpan(ctx, "Cluster.GetKeyspace") + defer span.Finish() + + AnnotateSpan(c, span) + span.Annotate("keyspace", name) + + if err := c.Vtctld.Dial(ctx); err != nil { + return nil, fmt.Errorf("Vtctld.Dial failed for cluster = %s: %w", c.ID, err) + } + + resp, err := c.Vtctld.GetKeyspace(ctx, &vtctldatapb.GetKeyspaceRequest{ + Keyspace: name, + }) + if err != nil { + return nil, err + } + + shards, err := c.FindAllShardsInKeyspace(ctx, name, FindAllShardsInKeyspaceOptions{SkipDial: true}) + if err != nil { + return nil, err + } + + return &vtadminpb.Keyspace{ + Cluster: c.ToProto(), + Keyspace: resp.Keyspace, + Shards: shards, + }, nil +} + +// GetKeyspaces returns all keyspaces, with their shard maps, in the cluster. +func (c *Cluster) GetKeyspaces(ctx context.Context) ([]*vtadminpb.Keyspace, error) { + span, ctx := trace.NewSpan(ctx, "Cluster.GetKeyspaces") + defer span.Finish() + + AnnotateSpan(c, span) + + if err := c.Vtctld.Dial(ctx); err != nil { + return nil, fmt.Errorf("Vtctld.Dial(cluster=%s) failed: %w", c.ID, err) + } + + resp, err := c.Vtctld.GetKeyspaces(ctx, &vtctldatapb.GetKeyspacesRequest{}) + if err != nil { + return nil, err + } + + var ( + m sync.Mutex + wg sync.WaitGroup + rec concurrency.AllErrorRecorder + keyspaces = make([]*vtadminpb.Keyspace, len(resp.Keyspaces)) + ) + + for i, ks := range resp.Keyspaces { + wg.Add(1) + go func(i int, ks *vtctldatapb.Keyspace) { + defer wg.Done() + + shards, err := c.FindAllShardsInKeyspace(ctx, ks.Name, FindAllShardsInKeyspaceOptions{SkipDial: true}) + if err != nil { + rec.RecordError(err) + return + } + + keyspace := &vtadminpb.Keyspace{ + Cluster: c.ToProto(), + Keyspace: ks, + Shards: shards, + } + + m.Lock() + defer m.Unlock() + keyspaces[i] = keyspace + }(i, ks) + } + + wg.Wait() + if rec.HasErrors() { + return nil, rec.Error() + } + + return keyspaces, nil +} + // GetTablets returns all tablets in the cluster. func (c *Cluster) GetTablets(ctx context.Context) ([]*vtadminpb.Tablet, error) { span, ctx := trace.NewSpan(ctx, "Cluster.GetTablets") From fc25e5d77618db3801a3f2132267a195303d62e2 Mon Sep 17 00:00:00 2001 From: Andrew Mason Date: Fri, 14 May 2021 11:22:58 -0400 Subject: [PATCH 52/63] Add HTTP route and adapter Signed-off-by: Andrew Mason --- go/vt/vtadmin/api.go | 1 + go/vt/vtadmin/http/keyspaces.go | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/go/vt/vtadmin/api.go b/go/vt/vtadmin/api.go index 3a2278a9afd..3356cb4d4f3 100644 --- a/go/vt/vtadmin/api.go +++ b/go/vt/vtadmin/api.go @@ -105,6 +105,7 @@ func NewAPI(clusters []*cluster.Cluster, opts grpcserver.Options, httpOpts vtadm router.HandleFunc("/clusters", httpAPI.Adapt(vtadminhttp.GetClusters)).Name("API.GetClusters") router.HandleFunc("/gates", httpAPI.Adapt(vtadminhttp.GetGates)).Name("API.GetGates") + router.HandleFunc("/keyspace/{cluster_id}/{name}", httpAPI.Adapt(vtadminhttp.GetKeyspace)).Name("API.GetKeyspace") router.HandleFunc("/keyspaces", httpAPI.Adapt(vtadminhttp.GetKeyspaces)).Name("API.GetKeyspaces") router.HandleFunc("/schema/{table}", httpAPI.Adapt(vtadminhttp.FindSchema)).Name("API.FindSchema") router.HandleFunc("/schema/{cluster_id}/{keyspace}/{table}", httpAPI.Adapt(vtadminhttp.GetSchema)).Name("API.GetSchema") diff --git a/go/vt/vtadmin/http/keyspaces.go b/go/vt/vtadmin/http/keyspaces.go index a2a9f15c52a..1fa65238007 100644 --- a/go/vt/vtadmin/http/keyspaces.go +++ b/go/vt/vtadmin/http/keyspaces.go @@ -19,9 +19,22 @@ package http import ( "context" + "github.com/gorilla/mux" + vtadminpb "vitess.io/vitess/go/vt/proto/vtadmin" ) +// GetKeyspace implements the http wrapper for /keyspace/{cluster_id}/{name}. +func GetKeyspace(ctx context.Context, r Request, api *API) *JSONResponse { + vars := mux.Vars(r.Request) + keyspace, err := api.server.GetKeyspace(ctx, &vtadminpb.GetKeyspaceRequest{ + ClusterId: vars["cluster_id"], + Keyspace: vars["name"], + }) + + return NewJSONResponse(keyspace, err) +} + // GetKeyspaces implements the http wrapper for /keyspaces[?cluster=[&cluster=]]. func GetKeyspaces(ctx context.Context, r Request, api *API) *JSONResponse { keyspaces, err := api.server.GetKeyspaces(ctx, &vtadminpb.GetKeyspacesRequest{ From b5b7a6c0852e0b032fafda6f841190ea29829b88 Mon Sep 17 00:00:00 2001 From: Andrew Mason Date: Fri, 14 May 2021 11:58:04 -0400 Subject: [PATCH 53/63] [vtadmin-api] Replace magic numbers with `net/http` constants Signed-off-by: Andrew Mason --- go/vt/vtadmin/errors/typed_error.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/go/vt/vtadmin/errors/typed_error.go b/go/vt/vtadmin/errors/typed_error.go index defc3058fef..a538d6d25fb 100644 --- a/go/vt/vtadmin/errors/typed_error.go +++ b/go/vt/vtadmin/errors/typed_error.go @@ -40,7 +40,7 @@ type BadRequest struct { func (e *BadRequest) Error() string { return e.Err.Error() } func (e *BadRequest) Code() string { return "bad request" } func (e *BadRequest) Details() interface{} { return e.ErrDetails } -func (e *BadRequest) HTTPStatus() int { return 400 } +func (e *BadRequest) HTTPStatus() int { return http.StatusBadRequest } // Unknown is the generic error, used when a more specific error is either // unspecified or inappropriate. @@ -52,7 +52,7 @@ type Unknown struct { func (e *Unknown) Error() string { return e.Err.Error() } func (e *Unknown) Code() string { return "unknown" } func (e *Unknown) Details() interface{} { return e.ErrDetails } -func (e *Unknown) HTTPStatus() int { return 500 } +func (e *Unknown) HTTPStatus() int { return http.StatusInternalServerError } // ErrInvalidCluster is returned when a cluster parameter, either in a route or // as a query param, is invalid. @@ -63,7 +63,7 @@ type ErrInvalidCluster struct { func (e *ErrInvalidCluster) Error() string { return e.Err.Error() } func (e *ErrInvalidCluster) Code() string { return "invalid cluster" } func (e *ErrInvalidCluster) Details() interface{} { return nil } -func (e *ErrInvalidCluster) HTTPStatus() int { return 400 } +func (e *ErrInvalidCluster) HTTPStatus() int { return http.StatusBadRequest } // MissingParams is returned when an HTTP handler requires parameters that were // not provided. @@ -77,7 +77,7 @@ func (e *MissingParams) Error() string { func (e *MissingParams) Code() string { return "missing params" } func (e *MissingParams) Details() interface{} { return nil } -func (e *MissingParams) HTTPStatus() int { return 400 } +func (e *MissingParams) HTTPStatus() int { return http.StatusBadRequest } // NoSuchSchema is returned when a schema definition cannot be found for a given // set of filter criteria. Both GetSchema and FindSchema can return this error. From dce6fe25d873f2d6fcb39e42ed9ebfbf439778e6 Mon Sep 17 00:00:00 2001 From: JohnnyThree Date: Tue, 5 Jan 2021 20:33:54 +0800 Subject: [PATCH 54/63] add transactionID to querylog for acquisition and analysis Signed-off-by: JohnnyThree --- go/vt/vttablet/filelogger/filelogger_test.go | 4 ++-- .../vttablet/sysloglogger/sysloglogger_test.go | 4 ++-- .../vttablet/tabletserver/tabletenv/logstats.go | 5 +++-- .../tabletserver/tabletenv/logstats_test.go | 17 +++++++++-------- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/go/vt/vttablet/filelogger/filelogger_test.go b/go/vt/vttablet/filelogger/filelogger_test.go index 39c59d41164..fe8925c89f8 100644 --- a/go/vt/vttablet/filelogger/filelogger_test.go +++ b/go/vt/vttablet/filelogger/filelogger_test.go @@ -65,7 +65,7 @@ func TestFileLog(t *testing.T) { for i := 0; i < 10; i++ { time.Sleep(10 * time.Millisecond) - want := "\t\t\t''\t''\t0001-01-01 00:00:00.000000\t0001-01-01 00:00:00.000000\t0.000000\t\t\"test 1\"\tmap[]\t1\t\"test 1 PII\"\tmysql\t0.000000\t0.000000\t0\t0\t\"\"\t\n\t\t\t''\t''\t0001-01-01 00:00:00.000000\t0001-01-01 00:00:00.000000\t0.000000\t\t\"test 2\"\tmap[]\t1\t\"test 2 PII\"\tmysql\t0.000000\t0.000000\t0\t0\t\"\"\t\n" + want := "\t\t\t''\t''\t0001-01-01 00:00:00.000000\t0001-01-01 00:00:00.000000\t0.000000\t\t\"test 1\"\tmap[]\t1\t\"test 1 PII\"\tmysql\t0.000000\t0.000000\t0\t0\t0\t\"\"\t\n\t\t\t''\t''\t0001-01-01 00:00:00.000000\t0001-01-01 00:00:00.000000\t0.000000\t\t\"test 2\"\tmap[]\t1\t\"test 2 PII\"\tmysql\t0.000000\t0.000000\t0\t0\t0\t\"\"\t\n" contents, _ := ioutil.ReadFile(logPath) got := string(contents) if want == got { @@ -119,7 +119,7 @@ func TestFileLogRedacted(t *testing.T) { // Allow time for propagation time.Sleep(10 * time.Millisecond) - want := "\t\t\t''\t''\t0001-01-01 00:00:00.000000\t0001-01-01 00:00:00.000000\t0.000000\t\t\"test 1\"\t\"[REDACTED]\"\t1\t\"[REDACTED]\"\tmysql\t0.000000\t0.000000\t0\t0\t\"\"\t\n\t\t\t''\t''\t0001-01-01 00:00:00.000000\t0001-01-01 00:00:00.000000\t0.000000\t\t\"test 2\"\t\"[REDACTED]\"\t1\t\"[REDACTED]\"\tmysql\t0.000000\t0.000000\t0\t0\t\"\"\t\n" + want := "\t\t\t''\t''\t0001-01-01 00:00:00.000000\t0001-01-01 00:00:00.000000\t0.000000\t\t\"test 1\"\t\"[REDACTED]\"\t1\t\"[REDACTED]\"\tmysql\t0.000000\t0.000000\t0\t0\t0\t\"\"\t\n\t\t\t''\t''\t0001-01-01 00:00:00.000000\t0001-01-01 00:00:00.000000\t0.000000\t\t\"test 2\"\t\"[REDACTED]\"\t1\t\"[REDACTED]\"\tmysql\t0.000000\t0.000000\t0\t0\t0\t\"\"\t\n" contents, _ := ioutil.ReadFile(logPath) got := string(contents) if want != string(got) { diff --git a/go/vt/vttablet/sysloglogger/sysloglogger_test.go b/go/vt/vttablet/sysloglogger/sysloglogger_test.go index 2ef9fa4ca09..46c3f86a52c 100644 --- a/go/vt/vttablet/sysloglogger/sysloglogger_test.go +++ b/go/vt/vttablet/sysloglogger/sysloglogger_test.go @@ -86,14 +86,14 @@ func (fw *failingFakeWriter) Close() error { return nil } // expectedLogStatsText returns the results expected from the plugin processing a dummy message generated by mockLogStats(...). func expectedLogStatsText(originalSQL string) string { return fmt.Sprintf("Execute\t\t\t''\t''\t0001-01-01 00:00:00.000000\t0001-01-01 00:00:00.000000\t0.000000\tPASS_SELECT\t"+ - "\"%s\"\t%s\t1\t\"%s\"\tmysql\t0.000000\t0.000000\t0\t0\t\"\"", originalSQL, "map[]", originalSQL) + "\"%s\"\t%s\t1\t\"%s\"\tmysql\t0.000000\t0.000000\t0\t0\t0\t\"\"", originalSQL, "map[]", originalSQL) } // expectedRedactedLogStatsText returns the results expected from the plugin processing a dummy message generated by mockLogStats(...) // when redaction is enabled. func expectedRedactedLogStatsText(originalSQL string) string { return fmt.Sprintf("Execute\t\t\t''\t''\t0001-01-01 00:00:00.000000\t0001-01-01 00:00:00.000000\t0.000000\tPASS_SELECT\t"+ - "\"%s\"\t%q\t1\t\"%s\"\tmysql\t0.000000\t0.000000\t0\t0\t\"\"", originalSQL, "[REDACTED]", "[REDACTED]") + "\"%s\"\t%q\t1\t\"%s\"\tmysql\t0.000000\t0.000000\t0\t0\t0\t\"\"", originalSQL, "[REDACTED]", "[REDACTED]") } // TestSyslog sends a stream of five query records to the plugin, and verifies that they are logged. diff --git a/go/vt/vttablet/tabletserver/tabletenv/logstats.go b/go/vt/vttablet/tabletserver/tabletenv/logstats.go index a0e2e12a89a..b805f6f5be2 100644 --- a/go/vt/vttablet/tabletserver/tabletenv/logstats.go +++ b/go/vt/vttablet/tabletserver/tabletenv/logstats.go @@ -207,9 +207,9 @@ func (stats *LogStats) Logf(w io.Writer, params url.Values) error { var fmtString string switch *streamlog.QueryLogFormat { case streamlog.QueryLogFormatText: - fmtString = "%v\t%v\t%v\t'%v'\t'%v'\t%v\t%v\t%.6f\t%v\t%q\t%v\t%v\t%q\t%v\t%.6f\t%.6f\t%v\t%v\t%q\t\n" + fmtString = "%v\t%v\t%v\t'%v'\t'%v'\t%v\t%v\t%.6f\t%v\t%q\t%v\t%v\t%q\t%v\t%.6f\t%.6f\t%v\t%v\t%v\t%q\t\n" case streamlog.QueryLogFormatJSON: - fmtString = "{\"Method\": %q, \"CallInfo\": %q, \"Username\": %q, \"ImmediateCaller\": %q, \"Effective Caller\": %q, \"Start\": \"%v\", \"End\": \"%v\", \"TotalTime\": %.6f, \"PlanType\": %q, \"OriginalSQL\": %q, \"BindVars\": %v, \"Queries\": %v, \"RewrittenSQL\": %q, \"QuerySources\": %q, \"MysqlTime\": %.6f, \"ConnWaitTime\": %.6f, \"RowsAffected\": %v, \"ResponseSize\": %v, \"Error\": %q}\n" + fmtString = "{\"Method\": %q, \"CallInfo\": %q, \"Username\": %q, \"ImmediateCaller\": %q, \"Effective Caller\": %q, \"Start\": \"%v\", \"End\": \"%v\", \"TotalTime\": %.6f, \"PlanType\": %q, \"OriginalSQL\": %q, \"BindVars\": %v, \"Queries\": %v, \"RewrittenSQL\": %q, \"QuerySources\": %q, \"MysqlTime\": %.6f, \"ConnWaitTime\": %.6f, \"RowsAffected\": %v,\"TransactionID\": %v,\"ResponseSize\": %v, \"Error\": %q}\n" } _, err := fmt.Fprintf( @@ -232,6 +232,7 @@ func (stats *LogStats) Logf(w io.Writer, params url.Values) error { stats.MysqlResponseTime.Seconds(), stats.WaitingForConnection.Seconds(), stats.RowsAffected, + stats.TransactionID, stats.SizeOfResponse(), stats.ErrorStr(), ) diff --git a/go/vt/vttablet/tabletserver/tabletenv/logstats_test.go b/go/vt/vttablet/tabletserver/tabletenv/logstats_test.go index b42e7c5a378..36f8a67fab9 100644 --- a/go/vt/vttablet/tabletserver/tabletenv/logstats_test.go +++ b/go/vt/vttablet/tabletserver/tabletenv/logstats_test.go @@ -66,13 +66,14 @@ func TestLogStatsFormat(t *testing.T) { logStats.BindVariables = map[string]*querypb.BindVariable{"intVal": sqltypes.Int64BindVariable(1)} logStats.AddRewrittenSQL("sql with pii", time.Now()) logStats.MysqlResponseTime = 0 + logStats.TransactionID = 12345 logStats.Rows = [][]sqltypes.Value{{sqltypes.NewVarBinary("a")}} params := map[string][]string{"full": {}} *streamlog.RedactDebugUIQueries = false *streamlog.QueryLogFormat = "text" got := testFormat(logStats, url.Values(params)) - want := "test\t\t\t''\t''\t2017-01-01 01:02:03.000000\t2017-01-01 01:02:04.000001\t1.000001\t\t\"sql\"\tmap[intVal:type:INT64 value:\"1\" ]\t1\t\"sql with pii\"\tmysql\t0.000000\t0.000000\t0\t1\t\"\"\t\n" + want := "test\t\t\t''\t''\t2017-01-01 01:02:03.000000\t2017-01-01 01:02:04.000001\t1.000001\t\t\"sql\"\tmap[intVal:type:INT64 value:\"1\" ]\t1\t\"sql with pii\"\tmysql\t0.000000\t0.000000\t0\t12345\t1\t\"\"\t\n" if got != want { t.Errorf("logstats format: got:\n%q\nwant:\n%q\n", got, want) } @@ -80,7 +81,7 @@ func TestLogStatsFormat(t *testing.T) { *streamlog.RedactDebugUIQueries = true *streamlog.QueryLogFormat = "text" got = testFormat(logStats, url.Values(params)) - want = "test\t\t\t''\t''\t2017-01-01 01:02:03.000000\t2017-01-01 01:02:04.000001\t1.000001\t\t\"sql\"\t\"[REDACTED]\"\t1\t\"[REDACTED]\"\tmysql\t0.000000\t0.000000\t0\t1\t\"\"\t\n" + want = "test\t\t\t''\t''\t2017-01-01 01:02:03.000000\t2017-01-01 01:02:04.000001\t1.000001\t\t\"sql\"\t\"[REDACTED]\"\t1\t\"[REDACTED]\"\tmysql\t0.000000\t0.000000\t0\t12345\t1\t\"\"\t\n" if got != want { t.Errorf("logstats format: got:\n%q\nwant:\n%q\n", got, want) } @@ -97,7 +98,7 @@ func TestLogStatsFormat(t *testing.T) { if err != nil { t.Errorf("logstats format: error marshaling json: %v -- got:\n%v", err, got) } - want = "{\n \"BindVars\": {\n \"intVal\": {\n \"type\": \"INT64\",\n \"value\": 1\n }\n },\n \"CallInfo\": \"\",\n \"ConnWaitTime\": 0,\n \"Effective Caller\": \"\",\n \"End\": \"2017-01-01 01:02:04.000001\",\n \"Error\": \"\",\n \"ImmediateCaller\": \"\",\n \"Method\": \"test\",\n \"MysqlTime\": 0,\n \"OriginalSQL\": \"sql\",\n \"PlanType\": \"\",\n \"Queries\": 1,\n \"QuerySources\": \"mysql\",\n \"ResponseSize\": 1,\n \"RewrittenSQL\": \"sql with pii\",\n \"RowsAffected\": 0,\n \"Start\": \"2017-01-01 01:02:03.000000\",\n \"TotalTime\": 1.000001,\n \"Username\": \"\"\n}" + want = "{\n \"BindVars\": {\n \"intVal\": {\n \"type\": \"INT64\",\n \"value\": 1\n }\n },\n \"CallInfo\": \"\",\n \"ConnWaitTime\": 0,\n \"Effective Caller\": \"\",\n \"End\": \"2017-01-01 01:02:04.000001\",\n \"Error\": \"\",\n \"ImmediateCaller\": \"\",\n \"Method\": \"test\",\n \"MysqlTime\": 0,\n \"OriginalSQL\": \"sql\",\n \"PlanType\": \"\",\n \"Queries\": 1,\n \"QuerySources\": \"mysql\",\n \"ResponseSize\": 1,\n \"RewrittenSQL\": \"sql with pii\",\n \"RowsAffected\": 0,\n \"Start\": \"2017-01-01 01:02:03.000000\",\n \"TotalTime\": 1.000001,\n \"TransactionID\": 12345,\n \"Username\": \"\"\n}" if string(formatted) != want { t.Errorf("logstats format: got:\n%q\nwant:\n%v\n", string(formatted), want) } @@ -113,7 +114,7 @@ func TestLogStatsFormat(t *testing.T) { if err != nil { t.Errorf("logstats format: error marshaling json: %v -- got:\n%v", err, got) } - want = "{\n \"BindVars\": \"[REDACTED]\",\n \"CallInfo\": \"\",\n \"ConnWaitTime\": 0,\n \"Effective Caller\": \"\",\n \"End\": \"2017-01-01 01:02:04.000001\",\n \"Error\": \"\",\n \"ImmediateCaller\": \"\",\n \"Method\": \"test\",\n \"MysqlTime\": 0,\n \"OriginalSQL\": \"sql\",\n \"PlanType\": \"\",\n \"Queries\": 1,\n \"QuerySources\": \"mysql\",\n \"ResponseSize\": 1,\n \"RewrittenSQL\": \"[REDACTED]\",\n \"RowsAffected\": 0,\n \"Start\": \"2017-01-01 01:02:03.000000\",\n \"TotalTime\": 1.000001,\n \"Username\": \"\"\n}" + want = "{\n \"BindVars\": \"[REDACTED]\",\n \"CallInfo\": \"\",\n \"ConnWaitTime\": 0,\n \"Effective Caller\": \"\",\n \"End\": \"2017-01-01 01:02:04.000001\",\n \"Error\": \"\",\n \"ImmediateCaller\": \"\",\n \"Method\": \"test\",\n \"MysqlTime\": 0,\n \"OriginalSQL\": \"sql\",\n \"PlanType\": \"\",\n \"Queries\": 1,\n \"QuerySources\": \"mysql\",\n \"ResponseSize\": 1,\n \"RewrittenSQL\": \"[REDACTED]\",\n \"RowsAffected\": 0,\n \"Start\": \"2017-01-01 01:02:03.000000\",\n \"TotalTime\": 1.000001,\n \"TransactionID\": 12345,\n \"Username\": \"\"\n}" if string(formatted) != want { t.Errorf("logstats format: got:\n%q\nwant:\n%v\n", string(formatted), want) } @@ -126,7 +127,7 @@ func TestLogStatsFormat(t *testing.T) { *streamlog.QueryLogFormat = "text" got = testFormat(logStats, url.Values(params)) - want = "test\t\t\t''\t''\t2017-01-01 01:02:03.000000\t2017-01-01 01:02:04.000001\t1.000001\t\t\"sql\"\tmap[strVal:type:VARBINARY value:\"abc\" ]\t1\t\"sql with pii\"\tmysql\t0.000000\t0.000000\t0\t1\t\"\"\t\n" + want = "test\t\t\t''\t''\t2017-01-01 01:02:03.000000\t2017-01-01 01:02:04.000001\t1.000001\t\t\"sql\"\tmap[strVal:type:VARBINARY value:\"abc\" ]\t1\t\"sql with pii\"\tmysql\t0.000000\t0.000000\t0\t12345\t1\t\"\"\t\n" if got != want { t.Errorf("logstats format: got:\n%q\nwant:\n%q\n", got, want) } @@ -141,7 +142,7 @@ func TestLogStatsFormat(t *testing.T) { if err != nil { t.Errorf("logstats format: error marshaling json: %v -- got:\n%v", err, got) } - want = "{\n \"BindVars\": {\n \"strVal\": {\n \"type\": \"VARBINARY\",\n \"value\": \"abc\"\n }\n },\n \"CallInfo\": \"\",\n \"ConnWaitTime\": 0,\n \"Effective Caller\": \"\",\n \"End\": \"2017-01-01 01:02:04.000001\",\n \"Error\": \"\",\n \"ImmediateCaller\": \"\",\n \"Method\": \"test\",\n \"MysqlTime\": 0,\n \"OriginalSQL\": \"sql\",\n \"PlanType\": \"\",\n \"Queries\": 1,\n \"QuerySources\": \"mysql\",\n \"ResponseSize\": 1,\n \"RewrittenSQL\": \"sql with pii\",\n \"RowsAffected\": 0,\n \"Start\": \"2017-01-01 01:02:03.000000\",\n \"TotalTime\": 1.000001,\n \"Username\": \"\"\n}" + want = "{\n \"BindVars\": {\n \"strVal\": {\n \"type\": \"VARBINARY\",\n \"value\": \"abc\"\n }\n },\n \"CallInfo\": \"\",\n \"ConnWaitTime\": 0,\n \"Effective Caller\": \"\",\n \"End\": \"2017-01-01 01:02:04.000001\",\n \"Error\": \"\",\n \"ImmediateCaller\": \"\",\n \"Method\": \"test\",\n \"MysqlTime\": 0,\n \"OriginalSQL\": \"sql\",\n \"PlanType\": \"\",\n \"Queries\": 1,\n \"QuerySources\": \"mysql\",\n \"ResponseSize\": 1,\n \"RewrittenSQL\": \"sql with pii\",\n \"RowsAffected\": 0,\n \"Start\": \"2017-01-01 01:02:03.000000\",\n \"TotalTime\": 1.000001,\n \"TransactionID\": 12345,\n \"Username\": \"\"\n}" if string(formatted) != want { t.Errorf("logstats format: got:\n%q\nwant:\n%v\n", string(formatted), want) } @@ -163,14 +164,14 @@ func TestLogStatsFilter(t *testing.T) { params := map[string][]string{"full": {}} got := testFormat(logStats, url.Values(params)) - want := "test\t\t\t''\t''\t2017-01-01 01:02:03.000000\t2017-01-01 01:02:04.000001\t1.000001\t\t\"sql /* LOG_THIS_QUERY */\"\tmap[intVal:type:INT64 value:\"1\" ]\t1\t\"sql with pii\"\tmysql\t0.000000\t0.000000\t0\t1\t\"\"\t\n" + want := "test\t\t\t''\t''\t2017-01-01 01:02:03.000000\t2017-01-01 01:02:04.000001\t1.000001\t\t\"sql /* LOG_THIS_QUERY */\"\tmap[intVal:type:INT64 value:\"1\" ]\t1\t\"sql with pii\"\tmysql\t0.000000\t0.000000\t0\t0\t1\t\"\"\t\n" if got != want { t.Errorf("logstats format: got:\n%q\nwant:\n%q\n", got, want) } *streamlog.QueryLogFilterTag = "LOG_THIS_QUERY" got = testFormat(logStats, url.Values(params)) - want = "test\t\t\t''\t''\t2017-01-01 01:02:03.000000\t2017-01-01 01:02:04.000001\t1.000001\t\t\"sql /* LOG_THIS_QUERY */\"\tmap[intVal:type:INT64 value:\"1\" ]\t1\t\"sql with pii\"\tmysql\t0.000000\t0.000000\t0\t1\t\"\"\t\n" + want = "test\t\t\t''\t''\t2017-01-01 01:02:03.000000\t2017-01-01 01:02:04.000001\t1.000001\t\t\"sql /* LOG_THIS_QUERY */\"\tmap[intVal:type:INT64 value:\"1\" ]\t1\t\"sql with pii\"\tmysql\t0.000000\t0.000000\t0\t0\t1\t\"\"\t\n" if got != want { t.Errorf("logstats format: got:\n%q\nwant:\n%q\n", got, want) } From 297f55c6a825095c5bdf513c2606e9f6072f2a74 Mon Sep 17 00:00:00 2001 From: Harshit Gangal Date: Mon, 17 May 2021 11:36:12 +0530 Subject: [PATCH 55/63] buffer test changes Signed-off-by: Harshit Gangal --- .../tabletgateway/buffer/buffer_test.go | 68 ++++++++++++------- 1 file changed, 44 insertions(+), 24 deletions(-) diff --git a/go/test/endtoend/tabletgateway/buffer/buffer_test.go b/go/test/endtoend/tabletgateway/buffer/buffer_test.go index 694a3f400c0..d50bec6fe10 100644 --- a/go/test/endtoend/tabletgateway/buffer/buffer_test.go +++ b/go/test/endtoend/tabletgateway/buffer/buffer_test.go @@ -85,8 +85,8 @@ type threadParams struct { notifyLock sync.Mutex // notifyLock guards the two fields notifyAfterNSuccessfulRpcs/rpcsSoFar. notifyAfterNSuccessfulRpcs int // If 0, notifications are disabled rpcsSoFar int // Number of RPCs at the time a notification was requested - i int // - commitErrors int + index int // + internalErrs int executeFunction func(c *threadParams, conn *mysql.Conn) error // Implement the method for read/update. typ string reservedConn bool @@ -141,14 +141,34 @@ func (c *threadParams) stop() { } func readExecute(c *threadParams, conn *mysql.Conn) error { - _, err := conn.ExecuteFetch(fmt.Sprintf("SELECT * FROM buffer WHERE id = %d", criticalReadRowID), 1000, true) - return err + attempt := c.index + c.index++ + qr, err := conn.ExecuteFetch(fmt.Sprintf("SELECT * FROM buffer WHERE id = %d", criticalReadRowID), 1000, true) + + if err != nil { + log.Errorf("select attempt #%d, failed with err: %v", attempt, err) + // For a reserved connection, read query can fail as it does not go through the gateway and + // goes to tablet directly and later is directed to use Gateway if the error is caused due to cluster failover operation. + if c.reservedConn { + c.internalErrs++ + if c.internalErrs > 1 { + log.Errorf("More Read Errors: %d", c.internalErrs) + return err + } + log.Error("This is okay once because we do not support buffering it.") + return nil + } + return err + } + + log.Infof("select attempt #%d, rows: %d", attempt, len(qr.Rows)) + return nil } func updateExecute(c *threadParams, conn *mysql.Conn) error { - attempt := c.i + attempt := c.index // Value used in next UPDATE query. Increased after every query. - c.i++ + c.index++ conn.ExecuteFetch("begin", 1000, true) result, err := conn.ExecuteFetch(fmt.Sprintf("UPDATE buffer SET msg='update %d' WHERE id = %d", attempt, updateRowID), 1000, true) @@ -159,7 +179,7 @@ func updateExecute(c *threadParams, conn *mysql.Conn) error { time.Sleep(time.Duration(rand.Int31n(1000)) * time.Millisecond) if err == nil { - log.Errorf("update attempt #%d affected %v rows", attempt, result.RowsAffected) + log.Infof("update attempt #%d affected %v rows", attempt, result.RowsAffected) _, err = conn.ExecuteFetch("commit", 1000, true) if err != nil { log.Errorf("UPDATE #%d failed during COMMIT, err: %v", attempt, err) @@ -167,27 +187,26 @@ func updateExecute(c *threadParams, conn *mysql.Conn) error { if errRollback != nil { log.Errorf("Error in rollback #%d: %v", attempt, errRollback) } - c.commitErrors++ - if c.commitErrors > 1 { - log.Errorf("More Commit Errors: %d", c.commitErrors) + c.internalErrs++ + if c.internalErrs > 1 { + log.Errorf("More Commit Errors: %d", c.internalErrs) return err } log.Error("This is okay once because we do not support buffering it.") } + return nil } - if err != nil { - log.Errorf("UPDATE #%d failed with err: %v", attempt, err) - _, errRollback := conn.ExecuteFetch("rollback", 1000, true) - if errRollback != nil { - log.Errorf("Error in rollback #%d: %v", attempt, errRollback) - } - c.commitErrors++ - if c.commitErrors > 1 { - log.Errorf("More Rollback Errors: %d", c.commitErrors) - return err - } - log.Error("This is okay once because we do not support buffering it.") + log.Errorf("UPDATE #%d failed with err: %v", attempt, err) + _, errRollback := conn.ExecuteFetch("rollback", 1000, true) + if errRollback != nil { + log.Errorf("Error in rollback #%d: %v", attempt, errRollback) + } + c.internalErrs++ + if c.internalErrs > 1 { + log.Errorf("More Rollback Errors: %d", c.internalErrs) + return err } + log.Error("This is okay once because we do not support buffering it.") return nil } @@ -276,6 +295,7 @@ func testBufferBase(t *testing.T, isExternalParent bool, useReservedConn bool) { //Start both threads. readThreadInstance := &threadParams{ + index: 1, typ: "read", executeFunction: readExecute, waitForNotification: make(chan bool), @@ -284,7 +304,7 @@ func testBufferBase(t *testing.T, isExternalParent bool, useReservedConn bool) { wg.Add(1) go readThreadInstance.threadRun() updateThreadInstance := &threadParams{ - i: 1, + index: 1, typ: "write", executeFunction: updateExecute, waitForNotification: make(chan bool), @@ -360,7 +380,7 @@ func testBufferBase(t *testing.T, isExternalParent bool, useReservedConn bool) { if inFlightMax == 0 { // Missed buffering is okay when we observed the failover during the // COMMIT (which cannot trigger the buffering). - assert.Greater(t, updateThreadInstance.commitErrors, 0, "No buffering took place and the update thread saw no error during COMMIT. But one of it must happen.") + assert.Greater(t, updateThreadInstance.internalErrs, 0, "No buffering took place and the update thread saw no error during COMMIT. But one of it must happen.") } else { assert.Greater(t, inFlightMax, 0) } From 033b918aa90384538f5b6751a6ee71e1b2b2d120 Mon Sep 17 00:00:00 2001 From: Andres Taylor Date: Mon, 17 May 2021 08:53:29 +0200 Subject: [PATCH 56/63] Trigger rebuild Signed-off-by: Andres Taylor From f69afb226591cc2078f8c6a4bee6c52a311857cf Mon Sep 17 00:00:00 2001 From: GuptaManan100 Date: Mon, 17 May 2021 15:18:37 +0530 Subject: [PATCH 57/63] moved reference definition to a separate struct Signed-off-by: GuptaManan100 --- go/vt/sqlparser/ast.go | 9 +- go/vt/sqlparser/ast_clone.go | 16 +- go/vt/sqlparser/ast_equals.go | 25 +- go/vt/sqlparser/ast_format.go | 15 +- go/vt/sqlparser/ast_format_fast.go | 20 +- go/vt/sqlparser/ast_rewrite.go | 63 +- go/vt/sqlparser/ast_visit.go | 34 +- go/vt/sqlparser/cached_size.go | 32 +- go/vt/sqlparser/sql.go | 8179 ++++++++++++++-------------- go/vt/sqlparser/sql.y | 24 +- 10 files changed, 4289 insertions(+), 4128 deletions(-) diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index 14b0a06b84e..bf259cc09a3 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -1577,8 +1577,13 @@ type ( // ForeignKeyDefinition describes a foreign key in a CREATE TABLE statement ForeignKeyDefinition struct { - Source Columns - IndexName ColIdent + Source Columns + IndexName ColIdent + ReferenceDefinition *ReferenceDefinition + } + + // ReferenceDefinition describes the referenced tables and columns that the foreign key references + ReferenceDefinition struct { ReferencedTable TableName ReferencedColumns Columns OnDelete ReferenceAction diff --git a/go/vt/sqlparser/ast_clone.go b/go/vt/sqlparser/ast_clone.go index 7cfadc03700..e456ea9dfda 100644 --- a/go/vt/sqlparser/ast_clone.go +++ b/go/vt/sqlparser/ast_clone.go @@ -213,6 +213,8 @@ func CloneSQLNode(in SQLNode) SQLNode { return CloneRefOfRangeCond(in) case ReferenceAction: return in + case *ReferenceDefinition: + return CloneRefOfReferenceDefinition(in) case *Release: return CloneRefOfRelease(in) case *RenameIndex: @@ -869,8 +871,7 @@ func CloneRefOfForeignKeyDefinition(n *ForeignKeyDefinition) *ForeignKeyDefiniti out := *n out.Source = CloneColumns(n.Source) out.IndexName = CloneColIdent(n.IndexName) - out.ReferencedTable = CloneTableName(n.ReferencedTable) - out.ReferencedColumns = CloneColumns(n.ReferencedColumns) + out.ReferenceDefinition = CloneRefOfReferenceDefinition(n.ReferenceDefinition) return &out } @@ -1243,6 +1244,17 @@ func CloneRefOfRangeCond(n *RangeCond) *RangeCond { return &out } +// CloneRefOfReferenceDefinition creates a deep clone of the input. +func CloneRefOfReferenceDefinition(n *ReferenceDefinition) *ReferenceDefinition { + if n == nil { + return nil + } + out := *n + out.ReferencedTable = CloneTableName(n.ReferencedTable) + out.ReferencedColumns = CloneColumns(n.ReferencedColumns) + return &out +} + // CloneRefOfRelease creates a deep clone of the input. func CloneRefOfRelease(n *Release) *Release { if n == nil { diff --git a/go/vt/sqlparser/ast_equals.go b/go/vt/sqlparser/ast_equals.go index 4d2fbe19c48..67c3b0ddc8b 100644 --- a/go/vt/sqlparser/ast_equals.go +++ b/go/vt/sqlparser/ast_equals.go @@ -596,6 +596,12 @@ func EqualsSQLNode(inA, inB SQLNode) bool { return false } return a == b + case *ReferenceDefinition: + b, ok := inB.(*ReferenceDefinition) + if !ok { + return false + } + return EqualsRefOfReferenceDefinition(a, b) case *Release: b, ok := inB.(*Release) if !ok { @@ -1578,10 +1584,7 @@ func EqualsRefOfForeignKeyDefinition(a, b *ForeignKeyDefinition) bool { } return EqualsColumns(a.Source, b.Source) && EqualsColIdent(a.IndexName, b.IndexName) && - EqualsTableName(a.ReferencedTable, b.ReferencedTable) && - EqualsColumns(a.ReferencedColumns, b.ReferencedColumns) && - a.OnDelete == b.OnDelete && - a.OnUpdate == b.OnUpdate + EqualsRefOfReferenceDefinition(a.ReferenceDefinition, b.ReferenceDefinition) } // EqualsRefOfFuncExpr does deep equals between the two objects. @@ -2030,6 +2033,20 @@ func EqualsRefOfRangeCond(a, b *RangeCond) bool { EqualsExpr(a.To, b.To) } +// EqualsRefOfReferenceDefinition does deep equals between the two objects. +func EqualsRefOfReferenceDefinition(a, b *ReferenceDefinition) bool { + if a == b { + return true + } + if a == nil || b == nil { + return false + } + return EqualsTableName(a.ReferencedTable, b.ReferencedTable) && + EqualsColumns(a.ReferencedColumns, b.ReferencedColumns) && + a.OnDelete == b.OnDelete && + a.OnUpdate == b.OnUpdate +} + // EqualsRefOfRelease does deep equals between the two objects. func EqualsRefOfRelease(a, b *Release) bool { if a == b { diff --git a/go/vt/sqlparser/ast_format.go b/go/vt/sqlparser/ast_format.go index b6e3a549d02..dfa96ecb0f5 100644 --- a/go/vt/sqlparser/ast_format.go +++ b/go/vt/sqlparser/ast_format.go @@ -609,12 +609,17 @@ func (a ReferenceAction) Format(buf *TrackedBuffer) { // Format formats the node. func (f *ForeignKeyDefinition) Format(buf *TrackedBuffer) { - buf.astPrintf(f, "foreign key %v%v references %v %v", f.IndexName, f.Source, f.ReferencedTable, f.ReferencedColumns) - if f.OnDelete != DefaultAction { - buf.astPrintf(f, " on delete %v", f.OnDelete) + buf.astPrintf(f, "foreign key %v%v %v", f.IndexName, f.Source, f.ReferenceDefinition) +} + +// Format formats the node. +func (ref *ReferenceDefinition) Format(buf *TrackedBuffer) { + buf.astPrintf(ref, "references %v %v", ref.ReferencedTable, ref.ReferencedColumns) + if ref.OnDelete != DefaultAction { + buf.astPrintf(ref, " on delete %v", ref.OnDelete) } - if f.OnUpdate != DefaultAction { - buf.astPrintf(f, " on update %v", f.OnUpdate) + if ref.OnUpdate != DefaultAction { + buf.astPrintf(ref, " on update %v", ref.OnUpdate) } } diff --git a/go/vt/sqlparser/ast_format_fast.go b/go/vt/sqlparser/ast_format_fast.go index b8040f83cc0..83e3aeb7909 100644 --- a/go/vt/sqlparser/ast_format_fast.go +++ b/go/vt/sqlparser/ast_format_fast.go @@ -866,17 +866,23 @@ func (f *ForeignKeyDefinition) formatFast(buf *TrackedBuffer) { buf.WriteString("foreign key ") f.IndexName.formatFast(buf) f.Source.formatFast(buf) - buf.WriteString(" references ") - f.ReferencedTable.formatFast(buf) buf.WriteByte(' ') - f.ReferencedColumns.formatFast(buf) - if f.OnDelete != DefaultAction { + f.ReferenceDefinition.formatFast(buf) +} + +// formatFast formats the node. +func (ref *ReferenceDefinition) formatFast(buf *TrackedBuffer) { + buf.WriteString("references ") + ref.ReferencedTable.formatFast(buf) + buf.WriteByte(' ') + ref.ReferencedColumns.formatFast(buf) + if ref.OnDelete != DefaultAction { buf.WriteString(" on delete ") - f.OnDelete.formatFast(buf) + ref.OnDelete.formatFast(buf) } - if f.OnUpdate != DefaultAction { + if ref.OnUpdate != DefaultAction { buf.WriteString(" on update ") - f.OnUpdate.formatFast(buf) + ref.OnUpdate.formatFast(buf) } } diff --git a/go/vt/sqlparser/ast_rewrite.go b/go/vt/sqlparser/ast_rewrite.go index dba2db0ea00..561fb886144 100644 --- a/go/vt/sqlparser/ast_rewrite.go +++ b/go/vt/sqlparser/ast_rewrite.go @@ -212,6 +212,8 @@ func (a *application) rewriteSQLNode(parent SQLNode, node SQLNode, replacer repl return a.rewriteRefOfRangeCond(parent, node, replacer) case ReferenceAction: return a.rewriteReferenceAction(parent, node, replacer) + case *ReferenceDefinition: + return a.rewriteRefOfReferenceDefinition(parent, node, replacer) case *Release: return a.rewriteRefOfRelease(parent, node, replacer) case *RenameIndex: @@ -1945,23 +1947,8 @@ func (a *application) rewriteRefOfForeignKeyDefinition(parent SQLNode, node *For }) { return false } - if !a.rewriteTableName(node, node.ReferencedTable, func(newNode, parent SQLNode) { - parent.(*ForeignKeyDefinition).ReferencedTable = newNode.(TableName) - }) { - return false - } - if !a.rewriteColumns(node, node.ReferencedColumns, func(newNode, parent SQLNode) { - parent.(*ForeignKeyDefinition).ReferencedColumns = newNode.(Columns) - }) { - return false - } - if !a.rewriteReferenceAction(node, node.OnDelete, func(newNode, parent SQLNode) { - parent.(*ForeignKeyDefinition).OnDelete = newNode.(ReferenceAction) - }) { - return false - } - if !a.rewriteReferenceAction(node, node.OnUpdate, func(newNode, parent SQLNode) { - parent.(*ForeignKeyDefinition).OnUpdate = newNode.(ReferenceAction) + if !a.rewriteRefOfReferenceDefinition(node, node.ReferenceDefinition, func(newNode, parent SQLNode) { + parent.(*ForeignKeyDefinition).ReferenceDefinition = newNode.(*ReferenceDefinition) }) { return false } @@ -3064,6 +3051,48 @@ func (a *application) rewriteRefOfRangeCond(parent SQLNode, node *RangeCond, rep } return true } +func (a *application) rewriteRefOfReferenceDefinition(parent SQLNode, node *ReferenceDefinition, replacer replacerFunc) bool { + if node == nil { + return true + } + if a.pre != nil { + a.cur.replacer = replacer + a.cur.parent = parent + a.cur.node = node + if !a.pre(&a.cur) { + return true + } + } + if !a.rewriteTableName(node, node.ReferencedTable, func(newNode, parent SQLNode) { + parent.(*ReferenceDefinition).ReferencedTable = newNode.(TableName) + }) { + return false + } + if !a.rewriteColumns(node, node.ReferencedColumns, func(newNode, parent SQLNode) { + parent.(*ReferenceDefinition).ReferencedColumns = newNode.(Columns) + }) { + return false + } + if !a.rewriteReferenceAction(node, node.OnDelete, func(newNode, parent SQLNode) { + parent.(*ReferenceDefinition).OnDelete = newNode.(ReferenceAction) + }) { + return false + } + if !a.rewriteReferenceAction(node, node.OnUpdate, func(newNode, parent SQLNode) { + parent.(*ReferenceDefinition).OnUpdate = newNode.(ReferenceAction) + }) { + return false + } + if a.post != nil { + a.cur.replacer = replacer + a.cur.parent = parent + a.cur.node = node + if !a.post(&a.cur) { + return false + } + } + return true +} func (a *application) rewriteRefOfRelease(parent SQLNode, node *Release, replacer replacerFunc) bool { if node == nil { return true diff --git a/go/vt/sqlparser/ast_visit.go b/go/vt/sqlparser/ast_visit.go index 3570450f567..cd5b1a58095 100644 --- a/go/vt/sqlparser/ast_visit.go +++ b/go/vt/sqlparser/ast_visit.go @@ -212,6 +212,8 @@ func VisitSQLNode(in SQLNode, f Visit) error { return VisitRefOfRangeCond(in, f) case ReferenceAction: return VisitReferenceAction(in, f) + case *ReferenceDefinition: + return VisitRefOfReferenceDefinition(in, f) case *Release: return VisitRefOfRelease(in, f) case *RenameIndex: @@ -1062,16 +1064,7 @@ func VisitRefOfForeignKeyDefinition(in *ForeignKeyDefinition, f Visit) error { if err := VisitColIdent(in.IndexName, f); err != nil { return err } - if err := VisitTableName(in.ReferencedTable, f); err != nil { - return err - } - if err := VisitColumns(in.ReferencedColumns, f); err != nil { - return err - } - if err := VisitReferenceAction(in.OnDelete, f); err != nil { - return err - } - if err := VisitReferenceAction(in.OnUpdate, f); err != nil { + if err := VisitRefOfReferenceDefinition(in.ReferenceDefinition, f); err != nil { return err } return nil @@ -1565,6 +1558,27 @@ func VisitRefOfRangeCond(in *RangeCond, f Visit) error { } return nil } +func VisitRefOfReferenceDefinition(in *ReferenceDefinition, f Visit) error { + if in == nil { + return nil + } + if cont, err := f(in); err != nil || !cont { + return err + } + if err := VisitTableName(in.ReferencedTable, f); err != nil { + return err + } + if err := VisitColumns(in.ReferencedColumns, f); err != nil { + return err + } + if err := VisitReferenceAction(in.OnDelete, f); err != nil { + return err + } + if err := VisitReferenceAction(in.OnUpdate, f); err != nil { + return err + } + return nil +} func VisitRefOfRelease(in *Release, f Visit) error { if in == nil { return nil diff --git a/go/vt/sqlparser/cached_size.go b/go/vt/sqlparser/cached_size.go index b467f4cd4bb..ca64fbc6c00 100644 --- a/go/vt/sqlparser/cached_size.go +++ b/go/vt/sqlparser/cached_size.go @@ -951,7 +951,7 @@ func (cached *ForeignKeyDefinition) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(136) + size += int64(72) } // field Source vitess.io/vitess/go/vt/sqlparser.Columns { @@ -962,15 +962,8 @@ func (cached *ForeignKeyDefinition) CachedSize(alloc bool) int64 { } // field IndexName vitess.io/vitess/go/vt/sqlparser.ColIdent size += cached.IndexName.CachedSize(false) - // field ReferencedTable vitess.io/vitess/go/vt/sqlparser.TableName - size += cached.ReferencedTable.CachedSize(false) - // field ReferencedColumns vitess.io/vitess/go/vt/sqlparser.Columns - { - size += int64(cap(cached.ReferencedColumns)) * int64(40) - for _, elem := range cached.ReferencedColumns { - size += elem.CachedSize(false) - } - } + // field ReferenceDefinition *vitess.io/vitess/go/vt/sqlparser.ReferenceDefinition + size += cached.ReferenceDefinition.CachedSize(true) return size } func (cached *FuncExpr) CachedSize(alloc bool) int64 { @@ -1540,6 +1533,25 @@ func (cached *RangeCond) CachedSize(alloc bool) int64 { } return size } +func (cached *ReferenceDefinition) CachedSize(alloc bool) int64 { + if cached == nil { + return int64(0) + } + size := int64(0) + if alloc { + size += int64(72) + } + // field ReferencedTable vitess.io/vitess/go/vt/sqlparser.TableName + size += cached.ReferencedTable.CachedSize(false) + // field ReferencedColumns vitess.io/vitess/go/vt/sqlparser.Columns + { + size += int64(cap(cached.ReferencedColumns)) * int64(40) + for _, elem := range cached.ReferencedColumns { + size += elem.CachedSize(false) + } + } + return size +} func (cached *Release) CachedSize(alloc bool) int64 { if cached == nil { return int64(0) diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index 2d335faad8d..66cefb645a1 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -1007,22 +1007,22 @@ var yyExca = [...]int{ 147, 118, 263, 118, 318, 118, - -2, 338, + -2, 339, -1, 53, - 34, 486, - 169, 486, - 181, 486, - 214, 500, - 215, 500, - -2, 488, + 34, 487, + 169, 487, + 181, 487, + 214, 501, + 215, 501, + -2, 489, -1, 58, - 171, 510, - -2, 508, + 171, 511, + -2, 509, -1, 84, - 58, 578, - -2, 586, + 58, 579, + -2, 587, -1, 97, - 168, 948, + 168, 949, -2, 91, -1, 99, 1, 113, @@ -1031,47 +1031,47 @@ var yyExca = [...]int{ -1, 109, 174, 243, 175, 243, - -2, 332, + -2, 333, -1, 128, 147, 118, 263, 118, 318, 118, - -2, 347, + -2, 348, -1, 564, - 154, 969, - -2, 965, - -1, 565, 154, 970, -2, 966, + -1, 565, + 154, 971, + -2, 967, -1, 584, - 58, 579, - -2, 591, - -1, 585, 58, 580, -2, 592, + -1, 585, + 58, 581, + -2, 593, -1, 606, - 122, 1318, + 122, 1319, -2, 84, -1, 607, - 122, 1199, + 122, 1200, -2, 85, -1, 613, - 122, 1250, - -2, 942, + 122, 1251, + -2, 943, -1, 754, - 122, 1136, - -2, 939, + 122, 1137, + -2, 940, -1, 790, 180, 38, 185, 38, -2, 254, -1, 867, - 1, 385, - 480, 385, + 1, 386, + 480, 386, -2, 118, -1, 1108, - 1, 281, - 480, 281, + 1, 282, + 480, 282, -2, 118, -1, 1111, 23, 137, @@ -1079,1249 +1079,1147 @@ var yyExca = [...]int{ -1, 1184, 174, 243, 175, 243, - -2, 332, + -2, 333, -1, 1193, 180, 39, 185, 39, -2, 255, -1, 1401, - 154, 974, - -2, 968, + 154, 975, + -2, 969, -1, 1494, 76, 66, 84, 66, -2, 70, -1, 1515, - 1, 282, - 480, 282, + 1, 283, + 480, 283, -2, 118, -1, 1943, - 5, 835, - 18, 835, - 20, 835, - 32, 835, - 85, 835, - -2, 618, - -1, 2171, - 48, 910, - -2, 904, + 5, 836, + 18, 836, + 20, 836, + 32, 836, + 85, 836, + -2, 619, + -1, 2172, + 48, 911, + -2, 905, } const yyPrivate = 57344 -const yyLast = 28266 +const yyLast = 28642 var yyAct = [...]int{ - 564, 2275, 2266, 2095, 2219, 2199, 2149, 2232, 507, 927, - 2001, 2172, 1733, 83, 3, 1582, 2120, 1777, 1700, 2092, - 536, 1924, 577, 1820, 1532, 1009, 1923, 1438, 1547, 1734, - 522, 1920, 1800, 505, 1512, 1056, 1863, 1824, 1567, 820, - 1552, 757, 1801, 1063, 1720, 1802, 1491, 1165, 137, 165, - 1935, 1395, 165, 1882, 470, 165, 1660, 1090, 1580, 1613, - 486, 1387, 165, 611, 1191, 1050, 1794, 123, 907, 785, - 165, 1554, 1093, 1100, 1299, 1066, 1084, 81, 1473, 1480, - 1440, 1083, 1061, 1421, 1086, 1048, 33, 1566, 571, 509, - 1364, 498, 486, 586, 945, 486, 165, 486, 798, 791, - 764, 608, 788, 1198, 1564, 1282, 1456, 761, 1099, 1543, - 1296, 765, 1097, 925, 1496, 786, 787, 442, 1533, 1209, - 79, 1304, 1073, 1183, 106, 140, 100, 489, 101, 863, - 1160, 1022, 8, 78, 7, 569, 6, 1611, 107, 493, - 1025, 1843, 1842, 1870, 1871, 167, 168, 169, 1353, 2122, - 1268, 1435, 1436, 1352, 1351, 1350, 1349, 1348, 167, 168, - 169, 763, 593, 597, 758, 822, 572, 496, 1698, 497, - 108, 102, 445, 1341, 2248, 773, 768, 825, 836, 837, - 946, 840, 841, 842, 843, 2168, 2071, 846, 847, 848, + 564, 2276, 2267, 2095, 2220, 2200, 2173, 2233, 2001, 927, + 1777, 2150, 83, 3, 2120, 1733, 1700, 1820, 536, 1582, + 1923, 1512, 1009, 1924, 2092, 1438, 1734, 1920, 1800, 505, + 522, 1063, 1532, 1547, 1863, 1824, 757, 1801, 1552, 820, + 507, 1935, 1720, 1802, 1491, 1387, 1567, 1882, 1056, 165, + 1395, 137, 165, 577, 470, 165, 1660, 1090, 1580, 878, + 486, 1299, 165, 123, 1613, 81, 1566, 1191, 907, 1554, + 165, 1794, 611, 785, 1100, 1093, 1473, 1480, 1440, 1209, + 586, 1061, 1086, 1421, 1048, 1165, 571, 1066, 498, 33, + 945, 1364, 486, 509, 1084, 486, 165, 486, 1564, 788, + 764, 608, 765, 1198, 1083, 1282, 786, 791, 798, 761, + 1296, 1456, 1533, 1073, 787, 1099, 79, 1097, 1304, 925, + 100, 1543, 1496, 101, 106, 140, 1022, 8, 7, 6, + 1160, 863, 78, 1025, 1843, 1842, 1611, 1268, 1183, 107, + 1870, 493, 1871, 167, 168, 169, 2122, 1353, 1435, 1436, + 1352, 1351, 1350, 1349, 1348, 496, 1341, 497, 2249, 1698, + 2169, 1970, 2071, 2146, 773, 822, 445, 768, 758, 572, + 2145, 102, 824, 2090, 593, 597, 2091, 946, 836, 837, + 825, 840, 841, 842, 843, 108, 823, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, - 859, 860, 1970, 494, 605, 2145, 1398, 2144, 2090, 802, - 612, 2091, 1650, 801, 824, 823, 1559, 2274, 2229, 1424, - 462, 780, 2269, 878, 80, 102, 779, 84, 778, 461, - 2194, 2262, 826, 827, 828, 833, 2096, 1557, 1599, 946, - 459, 2228, 2193, 1899, 2034, 549, 956, 555, 556, 553, - 554, 1174, 552, 551, 550, 1764, 1949, 161, 1763, 838, - 1699, 1765, 557, 558, 86, 87, 88, 89, 90, 91, - 1850, 1869, 97, 1437, 1849, 162, 1497, 1648, 440, 456, - 1950, 1951, 103, 839, 125, 1507, 1508, 35, 468, 102, - 72, 39, 40, 1506, 1101, 145, 1102, 777, 570, 872, - 873, 897, 568, 580, 567, 956, 2158, 971, 970, 980, - 981, 973, 974, 975, 976, 977, 978, 979, 972, 1556, - 781, 982, 167, 168, 169, 1784, 135, 474, 898, 902, - 903, 124, 885, 923, 1526, 474, 952, 886, 862, 944, - 1342, 1343, 1344, 885, 2003, 884, 891, 883, 886, 142, - 2025, 143, 2023, 2196, 775, 484, 112, 113, 134, 133, - 160, 1340, 488, 446, 71, 448, 463, 1288, 476, 1052, - 475, 452, 1825, 450, 454, 464, 455, 1581, 449, 482, - 460, 866, 473, 451, 465, 466, 480, 479, 467, 1846, - 473, 458, 477, 1283, 1997, 952, 1624, 1622, 1623, 474, - 1614, 2249, 1998, 1626, 899, 1627, 2268, 1628, 900, 901, - 129, 110, 136, 117, 109, 904, 130, 131, 1258, 920, - 2004, 146, 892, 1619, 906, 905, 868, 1858, 1629, 845, - 922, 151, 118, 844, 2005, 914, 474, 916, 1616, 2141, - 165, 809, 165, 2085, 1583, 165, 121, 119, 114, 115, - 116, 120, 807, 1474, 473, 1618, 111, 818, 782, 817, - 1259, 776, 1260, 918, 816, 122, 815, 814, 813, 777, - 861, 486, 486, 486, 913, 915, 812, 1620, 1969, 951, - 948, 949, 950, 955, 957, 954, 811, 953, 806, 486, - 486, 473, 1177, 1558, 947, 800, 1617, 819, 2142, 474, - 2281, 2279, 2260, 762, 938, 870, 919, 875, 794, 1289, - 877, 762, 793, 895, 762, 774, 478, 599, 760, 1297, - 1848, 2192, 1197, 1196, 1565, 1859, 1605, 2159, 1293, 932, - 1497, 829, 1862, 865, 471, 921, 810, 138, 951, 948, - 949, 950, 955, 957, 954, 1649, 953, 808, 1977, 472, - 1701, 1703, 835, 947, 473, 1845, 800, 1908, 800, 1907, - 1906, 1172, 911, 1171, 1170, 1835, 912, 1294, 165, 2197, - 1168, 777, 2220, 769, 444, 439, 917, 99, 772, 1287, - 1601, 771, 770, 800, 2179, 929, 930, 1054, 1270, 1269, - 1271, 1272, 1273, 132, 992, 1760, 486, 882, 910, 165, - 1857, 165, 165, 1856, 486, 126, 2054, 800, 127, 1948, - 486, 1725, 1679, 608, 1668, 1053, 874, 871, 864, 994, - 995, 73, 1676, 941, 1010, 939, 1591, 940, 775, 1865, - 1502, 1865, 1883, 776, 1864, 799, 1864, 800, 1513, 1077, - 1007, 876, 793, 796, 797, 982, 762, 1082, 894, 1702, - 790, 794, 1049, 2277, 972, 908, 2278, 982, 2276, 962, - 896, 1284, 1305, 1285, 1081, 1452, 1286, 1092, 1336, 789, - 881, 1901, 887, 888, 889, 890, 1885, 2188, 821, 1933, - 1067, 1024, 1027, 1029, 1031, 1032, 1034, 1036, 1037, 1371, - 94, 1028, 1030, 924, 1033, 1035, 799, 1038, 799, 1615, - 834, 1290, 1103, 1369, 1370, 1368, 1046, 880, 1600, 139, - 144, 141, 147, 148, 149, 150, 152, 153, 154, 155, - 942, 1422, 612, 799, 1799, 156, 157, 158, 159, 803, - 793, 1813, 167, 168, 169, 776, 1389, 95, 1887, 804, - 1891, 867, 1886, 959, 1884, 961, 959, 799, 1598, 1889, - 960, 961, 959, 803, 793, 994, 995, 165, 1888, 962, - 1780, 1161, 962, 804, 1596, 994, 995, 1422, 962, 1686, - 1169, 1890, 1892, 1593, 1593, 909, 809, 799, 807, 1780, - 1773, 805, 1306, 2241, 793, 796, 797, 1953, 762, 486, - 1065, 1193, 790, 794, 1390, 1457, 1458, 1597, 1595, 1202, - 1070, 2282, 1055, 1206, 2263, 2258, 486, 486, 1277, 486, - 1203, 486, 486, 2070, 486, 486, 486, 486, 486, 486, - 1175, 1176, 1110, 2069, 879, 1774, 1975, 1275, 2211, 486, - 1189, 2209, 2264, 165, 1242, 1237, 1238, 1359, 1361, 1362, - 2213, 2214, 167, 168, 169, 2210, 1789, 1776, 1798, 1255, - 1771, 1360, 1182, 975, 976, 977, 978, 979, 972, 2254, - 486, 982, 165, 1201, 1772, 1653, 1654, 1655, 71, 1276, - 1239, 2283, 1265, 1295, 960, 961, 959, 165, 1245, 1246, - 1367, 960, 961, 959, 1251, 1252, 1797, 2255, 1274, 1562, - 1278, 1910, 962, 165, 1263, 1199, 1199, 1167, 1241, 962, - 165, 1200, 1262, 1098, 1790, 1779, 1778, 1179, 1180, 165, + 859, 860, 2275, 2230, 612, 494, 2270, 2195, 80, 605, + 801, 1559, 1650, 2263, 1398, 780, 2096, 1599, 2229, 802, + 779, 84, 2194, 778, 1899, 102, 2034, 1174, 774, 826, + 827, 828, 1557, 1950, 1951, 35, 1699, 946, 72, 39, + 40, 1949, 161, 956, 1850, 833, 1869, 549, 1849, 555, + 556, 553, 554, 838, 552, 551, 550, 1648, 86, 87, + 88, 89, 90, 91, 557, 558, 97, 103, 1764, 162, + 1437, 1763, 440, 1506, 1765, 161, 1497, 1507, 1508, 1101, + 145, 1102, 474, 839, 777, 781, 769, 902, 903, 102, + 897, 772, 570, 923, 771, 770, 885, 568, 567, 885, + 103, 886, 125, 956, 886, 898, 866, 1784, 891, 884, + 1526, 883, 71, 145, 1556, 2003, 2197, 2025, 2023, 484, + 1340, 1768, 488, 1342, 1343, 1344, 1258, 862, 1288, 777, + 482, 872, 873, 952, 142, 1052, 143, 473, 167, 168, + 169, 775, 1825, 1581, 135, 160, 1624, 1622, 1623, 124, + 2159, 971, 970, 980, 981, 973, 974, 975, 976, 977, + 978, 979, 972, 1997, 1846, 982, 1619, 142, 1259, 143, + 1260, 1998, 1614, 904, 112, 113, 134, 133, 160, 2269, + 920, 899, 1283, 905, 892, 2250, 775, 914, 906, 916, + 922, 2004, 868, 952, 777, 861, 944, 1858, 1626, 474, + 1627, 474, 1628, 900, 901, 1629, 146, 845, 844, 2005, + 1618, 1616, 2141, 2085, 1583, 1474, 151, 809, 807, 818, + 1620, 502, 1497, 817, 816, 815, 913, 915, 129, 110, + 136, 117, 109, 800, 130, 131, 814, 1969, 813, 146, + 165, 2143, 165, 812, 811, 165, 806, 782, 776, 151, + 118, 1617, 2261, 1177, 473, 819, 473, 2280, 865, 2282, + 1862, 762, 793, 918, 121, 119, 114, 115, 116, 120, + 1289, 486, 486, 486, 111, 1297, 951, 948, 949, 950, + 955, 957, 954, 122, 953, 1197, 1196, 895, 1558, 486, + 486, 947, 800, 776, 1848, 762, 800, 1565, 762, 599, + 794, 2193, 760, 938, 919, 1859, 881, 1605, 887, 888, + 889, 890, 810, 808, 911, 474, 1701, 1703, 912, 1293, + 932, 1865, 138, 1883, 835, 829, 1864, 1977, 917, 924, + 800, 1845, 2198, 800, 1908, 921, 951, 948, 949, 950, + 955, 957, 954, 864, 953, 1649, 1907, 1906, 1172, 1171, + 910, 947, 1170, 1835, 1294, 138, 2221, 1168, 776, 1865, + 444, 439, 99, 1601, 1864, 994, 995, 1885, 165, 73, + 473, 2160, 2180, 799, 1679, 1270, 1269, 1271, 1272, 1273, + 793, 796, 797, 2054, 762, 1948, 1054, 1287, 790, 794, + 595, 929, 930, 1725, 882, 1668, 486, 1513, 992, 165, + 800, 165, 165, 1053, 486, 874, 1591, 789, 871, 2278, + 486, 132, 2279, 608, 2277, 1702, 982, 1760, 941, 939, + 940, 1857, 894, 126, 1856, 1676, 127, 1010, 1502, 1887, + 1077, 1891, 799, 1886, 896, 1884, 799, 1007, 803, 793, + 1889, 876, 803, 793, 972, 1082, 1452, 982, 804, 1888, + 1049, 908, 804, 167, 168, 169, 499, 1389, 1305, 1336, + 94, 2189, 1890, 1892, 962, 821, 805, 1067, 1933, 1284, + 799, 1285, 834, 799, 1286, 880, 1024, 1027, 1029, 1031, + 1032, 1034, 1036, 1037, 1028, 1030, 1615, 1033, 1035, 1901, + 1038, 1600, 1780, 1773, 139, 144, 141, 147, 148, 149, + 150, 152, 153, 154, 155, 1780, 1371, 95, 1046, 1290, + 156, 157, 158, 159, 1103, 1390, 612, 994, 995, 942, + 1369, 1370, 1368, 960, 961, 959, 867, 139, 144, 141, + 147, 148, 149, 150, 152, 153, 154, 155, 1774, 1422, + 799, 962, 959, 156, 157, 158, 159, 793, 796, 797, + 1422, 762, 1686, 2283, 1070, 790, 794, 165, 962, 1813, + 1776, 1161, 1598, 1771, 1593, 1596, 1457, 1458, 994, 995, + 1169, 909, 809, 2212, 807, 2242, 2210, 1772, 1306, 975, + 976, 977, 978, 979, 972, 2214, 2215, 982, 1597, 486, + 2211, 1193, 879, 167, 168, 169, 1055, 1789, 1065, 1202, + 1799, 1953, 2070, 1206, 2069, 1975, 486, 486, 1593, 486, + 1098, 486, 486, 2264, 486, 486, 486, 486, 486, 486, + 1175, 1176, 1674, 2284, 1910, 1189, 960, 961, 959, 486, + 1673, 71, 1595, 165, 1242, 598, 2255, 1779, 1778, 2259, + 1675, 2265, 1203, 1367, 962, 1798, 961, 959, 1182, 1255, + 1779, 1778, 960, 961, 959, 1790, 1797, 960, 961, 959, + 486, 1562, 165, 962, 2256, 1239, 1201, 1237, 1238, 1278, + 962, 2258, 1911, 1295, 1263, 962, 1262, 165, 1245, 1246, + 1653, 1654, 1655, 1277, 1251, 1252, 1211, 1261, 1212, 1275, + 1214, 1216, 1253, 165, 1220, 1222, 1224, 1226, 1228, 1167, + 165, 1200, 603, 1265, 1454, 1199, 1199, 1247, 1180, 165, 165, 165, 165, 165, 165, 165, 165, 165, 486, 486, - 486, 1192, 1178, 598, 1779, 1778, 1211, 1281, 1212, 1261, - 1214, 1216, 1675, 1264, 1220, 1222, 1224, 1226, 1228, 1911, - 1301, 960, 961, 959, 1253, 165, 595, 1247, 1240, 1903, - 1244, 1243, 1307, 1308, 1674, 1218, 2257, 2256, 1310, 962, - 2242, 2240, 1673, 2238, 2111, 1314, 1312, 167, 168, 169, - 2067, 1767, 2042, 1319, 1320, 1321, 1325, 1326, 1327, 1328, - 1329, 1330, 1331, 1388, 1956, 1298, 1365, 1912, 1807, 960, - 961, 959, 1391, 102, 779, 603, 778, 1795, 1644, 1454, - 1609, 1173, 1347, 167, 168, 169, 486, 962, 1608, 1446, - 1092, 1302, 499, 600, 601, 1311, 1266, 1399, 1254, 1250, - 960, 961, 959, 1249, 1410, 1413, 1248, 2000, 1392, 1393, - 1423, 1332, 1333, 1334, 581, 1775, 1984, 2259, 962, 2139, - 486, 486, 973, 974, 975, 976, 977, 978, 979, 972, - 80, 165, 982, 1932, 1405, 1366, 1498, 525, 524, 527, - 528, 529, 530, 2138, 1453, 486, 526, 2094, 531, 1984, - 2226, 1401, 165, 1984, 2186, 486, 1447, 1445, 1827, 165, - 1010, 165, 1400, 1984, 2180, 1721, 1459, 1399, 1810, 165, - 165, 960, 961, 959, 1429, 1430, 486, 1984, 581, 486, - 2088, 581, 1492, 1984, 2086, 608, 1593, 581, 608, 962, - 486, 2049, 167, 168, 169, 1309, 1575, 167, 168, 169, - 1499, 1573, 1313, 1521, 1315, 1316, 1317, 1318, 1501, 1402, - 581, 1322, 167, 168, 169, 2187, 1256, 1468, 2052, 581, - 1498, 1401, 1967, 1966, 1472, 1337, 1475, 1495, 1534, 1535, - 1536, 1517, 1471, 1963, 1964, 1494, 1477, 1516, 1963, 1962, - 1721, 1467, 1465, 581, 1527, 486, 1528, 1529, 1530, 1531, - 82, 1568, 1569, 1570, 1497, 1844, 1572, 1574, 1594, 1520, - 1164, 1829, 1539, 1540, 1541, 1542, 1822, 1823, 1549, 486, - 1477, 581, 958, 581, 35, 486, 1202, 1469, 35, 1202, - 958, 1202, 1555, 2072, 1499, 1504, 1500, 35, 1503, 1592, - 1164, 1163, 1497, 1754, 612, 1109, 1108, 612, 1406, 1407, - 1984, 1497, 1412, 1415, 1416, 1519, 1518, 1921, 1403, 1404, - 1579, 1932, 1728, 1965, 1476, 1593, 1932, 1466, 1465, 486, - 1477, 1388, 1505, 1691, 2127, 1690, 1388, 1388, 1428, 1465, - 1593, 1431, 1432, 2073, 2074, 2075, 1576, 1729, 1455, 1433, - 1586, 1345, 1292, 1589, 574, 1590, 1545, 1546, 1550, 1095, - 2218, 71, 1561, 1563, 1448, 71, 1560, 784, 1571, 783, - 1602, 165, 71, 2151, 71, 1233, 802, 1477, 165, 2093, - 801, 2060, 1584, 165, 165, 1585, 1199, 165, 1603, 165, - 1550, 1588, 1604, 1166, 1548, 165, 1999, 1606, 1607, 1465, - 1959, 1830, 165, 1544, 1538, 1537, 565, 1280, 1194, 971, - 970, 980, 981, 973, 974, 975, 976, 977, 978, 979, - 972, 1190, 1162, 982, 96, 1234, 1235, 1236, 1612, 165, - 486, 71, 1804, 2076, 581, 866, 1092, 2002, 1482, 1485, - 1486, 1487, 1483, 1621, 1484, 1488, 1936, 1937, 1630, 1631, - 1803, 2152, 1635, 1559, 2271, 166, 2267, 2135, 166, 1982, - 1638, 166, 1981, 1980, 1939, 1921, 487, 1641, 166, 1661, - 1814, 1633, 1338, 1230, 1942, 1747, 166, 1486, 1487, 1365, - 2077, 2078, 971, 970, 980, 981, 973, 974, 975, 976, - 977, 978, 979, 972, 1645, 1632, 982, 1804, 487, 1745, - 1941, 487, 166, 487, 1746, 971, 970, 980, 981, 973, - 974, 975, 976, 977, 978, 979, 972, 1743, 1670, 982, - 1231, 1232, 1744, 1742, 165, 1741, 2251, 2227, 1913, 1710, - 1647, 1064, 165, 1482, 1485, 1486, 1487, 1483, 963, 1484, - 1488, 2173, 2175, 1936, 1937, 2053, 1987, 1719, 1366, 1656, - 2176, 2201, 1718, 2253, 2231, 2233, 1708, 165, 2204, 2200, - 1291, 2170, 566, 1782, 1709, 1524, 1808, 1418, 165, 165, - 165, 165, 165, 1707, 499, 1735, 831, 1730, 830, 572, - 165, 1669, 1419, 1020, 165, 1714, 1057, 165, 165, 2012, - 1803, 165, 165, 165, 1685, 1868, 931, 1752, 1058, 1837, - 1836, 103, 2125, 1723, 1766, 1958, 1957, 1726, 1049, 1697, - 1587, 1208, 1705, 1207, 1195, 1059, 1062, 2047, 1457, 1458, - 2182, 1639, 1640, 1450, 1788, 1978, 1642, 1636, 1713, 2146, - 1781, 1722, 1490, 1755, 1717, 1643, 1625, 1757, 575, 576, - 1652, 578, 1716, 1785, 1786, 1737, 1738, 2239, 1740, 1736, - 486, 1724, 1739, 1756, 1769, 165, 1301, 1787, 1748, 1791, - 1792, 1793, 165, 1753, 1758, 2237, 2236, 2205, 486, 1761, - 2203, 2046, 1983, 1577, 486, 579, 82, 1770, 2045, 1202, - 1826, 1916, 1555, 1721, 486, 1680, 1806, 2273, 2272, 2273, - 1677, 1832, 1078, 1665, 1666, 1796, 1841, 1071, 2177, 1955, - 1451, 1663, 574, 80, 85, 1664, 77, 165, 165, 165, - 165, 165, 1, 1811, 1683, 1805, 1671, 1672, 2208, 457, - 1812, 1434, 1678, 165, 165, 1681, 1682, 1047, 469, 1840, - 2265, 1839, 1267, 1688, 1182, 1689, 591, 587, 1692, 1693, - 1694, 1695, 1696, 1831, 1257, 1401, 1815, 1816, 1817, 2097, - 2148, 1838, 588, 1990, 1706, 1553, 1400, 792, 534, 486, - 128, 1514, 1515, 2222, 93, 1388, 755, 92, 1879, 591, - 587, 795, 1851, 1852, 1853, 1854, 1855, 1068, 1069, 590, - 1860, 589, 893, 1578, 2089, 588, 1783, 1525, 1092, 1861, - 1115, 1113, 1114, 1112, 1117, 486, 1881, 1866, 1116, 1111, - 1867, 1750, 1751, 1880, 1872, 1339, 165, 2037, 483, 1878, - 584, 585, 590, 1489, 589, 163, 486, 1900, 485, 1894, - 1104, 1072, 486, 486, 832, 1879, 1893, 1735, 447, 1968, - 1335, 1922, 1610, 453, 990, 1715, 1762, 609, 602, 1919, - 1925, 1927, 2198, 2169, 2171, 165, 166, 2121, 166, 2174, - 610, 166, 2167, 759, 2252, 766, 971, 970, 980, 981, - 973, 974, 975, 976, 977, 978, 979, 972, 1931, 2230, - 982, 1914, 2181, 1522, 1449, 1060, 2044, 487, 487, 487, - 1940, 1915, 1684, 1019, 1420, 1087, 508, 1444, 1944, 1358, - 1946, 1945, 1947, 523, 520, 487, 487, 521, 1460, 1976, - 1727, 964, 506, 500, 1079, 165, 1481, 1952, 1479, 1478, - 1960, 1961, 1634, 486, 1909, 1091, 1938, 1303, 1934, 1085, - 1464, 486, 1523, 1847, 1986, 1996, 165, 943, 583, 495, - 767, 1417, 2157, 1973, 1974, 1972, 165, 1971, 1651, 2033, - 1991, 582, 1930, 61, 1989, 38, 490, 2247, 934, 592, - 165, 32, 31, 165, 1985, 30, 29, 28, 1555, 23, - 1988, 1993, 2013, 22, 21, 20, 1994, 19, 25, 18, - 1979, 17, 16, 98, 166, 1876, 1877, 48, 45, 43, - 105, 104, 46, 42, 2008, 869, 27, 2007, 26, 15, - 14, 1992, 13, 2016, 12, 1354, 1355, 1356, 1357, 11, - 2031, 1995, 487, 10, 9, 166, 2021, 166, 166, 5, - 487, 4, 937, 24, 1008, 2006, 487, 2, 2009, 0, - 0, 2018, 2019, 0, 2020, 0, 2043, 2022, 0, 2024, - 0, 1735, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1928, 0, 0, 2048, 0, 0, 0, 0, 2036, - 1408, 1409, 2057, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1943, 0, 0, 2056, 0, 0, 165, 0, - 0, 165, 165, 165, 486, 486, 2064, 2066, 2062, 2068, - 2063, 0, 0, 0, 0, 0, 0, 0, 499, 0, - 0, 0, 0, 2098, 486, 486, 486, 2083, 971, 970, + 486, 1192, 1179, 1178, 1244, 600, 601, 1243, 960, 961, + 959, 1218, 996, 997, 998, 999, 1000, 1001, 1002, 1003, + 1004, 1005, 1240, 2000, 1276, 165, 962, 2257, 1775, 1301, + 1274, 1309, 1307, 1308, 1359, 1361, 1362, 2243, 1313, 2241, + 1315, 1316, 1317, 1318, 1264, 2239, 1312, 1322, 1360, 1453, + 2111, 2067, 2042, 1319, 1320, 1321, 167, 168, 169, 581, + 1767, 1337, 1932, 1388, 1365, 1298, 1956, 1912, 779, 1807, + 1795, 778, 1391, 102, 1644, 1173, 960, 961, 959, 167, + 168, 169, 1347, 960, 961, 959, 486, 1609, 1608, 1446, + 1302, 1903, 1311, 1266, 962, 1254, 1250, 1399, 167, 168, + 169, 962, 1575, 1249, 1392, 1393, 973, 974, 975, 976, + 977, 978, 979, 972, 1248, 2139, 982, 1332, 1333, 1334, + 486, 486, 1405, 525, 524, 527, 528, 529, 530, 1984, + 2260, 165, 526, 80, 531, 2138, 1410, 1413, 2094, 1366, + 1984, 2227, 1423, 1984, 2187, 486, 167, 168, 169, 1400, + 1573, 1827, 165, 1810, 1445, 486, 1984, 2181, 1721, 165, + 1401, 165, 1521, 1010, 167, 168, 169, 1399, 1256, 165, + 165, 1498, 963, 1429, 1430, 1921, 486, 1984, 581, 486, + 82, 1492, 2088, 581, 1932, 608, 1466, 1447, 608, 35, + 486, 1984, 2086, 1593, 581, 2052, 581, 1459, 1967, 1966, + 1963, 1964, 1963, 1962, 1594, 1402, 1465, 581, 499, 1497, + 1844, 1164, 1829, 581, 1822, 1823, 2049, 1020, 1476, 1471, + 1477, 581, 35, 958, 581, 2188, 1517, 1495, 1467, 1477, + 1401, 1164, 1163, 1109, 1108, 1499, 1534, 1535, 1536, 2127, + 1516, 35, 1721, 1501, 1498, 486, 1754, 1728, 1465, 1059, + 1062, 1568, 1569, 1570, 1497, 958, 1572, 1574, 1465, 1984, + 1965, 1593, 1477, 1520, 1505, 1691, 71, 574, 1469, 486, + 1690, 1477, 1729, 1549, 1465, 486, 1202, 1593, 2072, 1202, + 1576, 1202, 1527, 1233, 1528, 1529, 1530, 1531, 612, 1592, + 1555, 612, 1504, 1503, 1500, 1455, 1519, 1433, 1345, 71, + 1539, 1540, 1541, 1542, 1518, 1579, 1406, 1407, 1499, 1292, + 1412, 1415, 1416, 1932, 1095, 784, 1497, 783, 71, 486, + 2219, 1388, 71, 2152, 2093, 2060, 1388, 1388, 2073, 2074, + 2075, 1804, 1166, 1234, 1235, 1236, 1428, 1548, 1999, 1431, + 1432, 1959, 1830, 1586, 71, 2002, 1589, 1560, 1590, 1544, + 1550, 1538, 1571, 1563, 1537, 1602, 1280, 1561, 1545, 1546, + 1194, 165, 1190, 1162, 96, 2076, 1604, 801, 165, 1803, + 866, 1606, 1607, 165, 165, 1585, 802, 165, 1603, 165, + 1584, 1588, 1550, 581, 2153, 165, 1199, 1936, 1937, 1559, + 2272, 2268, 165, 1982, 565, 971, 970, 980, 981, 973, + 974, 975, 976, 977, 978, 979, 972, 1981, 1980, 982, + 1230, 1939, 2077, 2078, 1921, 1814, 1804, 1633, 1612, 165, + 486, 1482, 1485, 1486, 1487, 1483, 1338, 1484, 1488, 1942, + 1941, 971, 970, 980, 981, 973, 974, 975, 976, 977, + 978, 979, 972, 166, 2135, 982, 166, 1639, 1640, 166, + 1742, 1741, 1642, 2252, 487, 1661, 166, 1231, 1232, 1710, + 1745, 1643, 2228, 1743, 166, 1746, 1363, 1365, 1744, 1372, + 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, + 1383, 1384, 1385, 1386, 1913, 1632, 487, 1064, 2053, 487, + 166, 487, 971, 970, 980, 981, 973, 974, 975, 976, + 977, 978, 979, 972, 1987, 1747, 982, 1486, 1487, 2174, + 2176, 1719, 1718, 534, 165, 2254, 1647, 2232, 2177, 2234, + 2205, 2171, 165, 1482, 1485, 1486, 1487, 1483, 1425, 1484, + 1488, 1424, 1782, 1936, 1937, 2202, 1708, 1291, 1524, 1670, + 1656, 566, 1366, 2201, 1709, 1808, 831, 165, 1418, 830, + 2012, 1303, 1057, 1803, 1868, 931, 2047, 1837, 165, 165, + 165, 165, 165, 1419, 1058, 1836, 1730, 103, 2125, 1669, + 165, 1958, 572, 485, 165, 1957, 1707, 165, 165, 1587, + 1208, 165, 165, 165, 1685, 1207, 1752, 1195, 1714, 1457, + 1458, 1723, 1450, 1978, 1766, 1726, 1049, 1735, 1697, 1636, + 1705, 2183, 2147, 1781, 1490, 610, 575, 576, 759, 1652, + 766, 1717, 1625, 578, 1788, 580, 82, 1713, 2240, 1716, + 2238, 1755, 2237, 2206, 2204, 1757, 2046, 1983, 1724, 1354, + 1355, 1356, 1357, 1722, 1787, 1577, 1791, 1792, 1793, 579, + 486, 1785, 1786, 2045, 1916, 165, 1748, 1769, 1721, 2274, + 2273, 1753, 165, 1737, 1738, 1301, 1740, 1758, 486, 1680, + 1761, 1677, 1736, 1078, 486, 1739, 1071, 2274, 2178, 1202, + 1955, 1770, 1451, 574, 486, 80, 1806, 85, 77, 1, + 1555, 1832, 2142, 2209, 1408, 1409, 1841, 457, 1434, 1047, + 1796, 1665, 1666, 469, 2266, 1267, 1257, 165, 165, 165, + 165, 165, 1826, 1805, 2097, 2149, 1840, 1990, 1811, 1553, + 792, 128, 1683, 165, 165, 1815, 1816, 1817, 1514, 1839, + 1182, 1515, 499, 980, 981, 973, 974, 975, 976, 977, + 978, 979, 972, 1400, 2223, 982, 1831, 591, 587, 93, + 755, 1838, 92, 795, 1401, 893, 1578, 2089, 1783, 486, + 1525, 1115, 1113, 588, 1114, 1388, 1112, 1117, 1879, 970, 980, 981, 973, 974, 975, 976, 977, 978, 979, 972, - 2104, 0, 982, 971, 970, 980, 981, 973, 974, 975, - 976, 977, 978, 979, 972, 0, 0, 982, 0, 486, - 486, 486, 165, 2079, 2103, 0, 2080, 2081, 2082, 0, - 1511, 0, 2102, 486, 0, 486, 2110, 0, 0, 0, - 0, 486, 2114, 2116, 2117, 2128, 0, 2119, 0, 2118, - 1925, 2126, 2124, 166, 1925, 0, 0, 0, 0, 2132, - 2130, 0, 0, 0, 2133, 2134, 0, 0, 0, 0, - 2010, 2011, 0, 0, 486, 0, 0, 486, 2015, 2140, - 0, 2136, 2017, 2137, 2143, 487, 2150, 0, 0, 1551, - 0, 0, 0, 2026, 2027, 0, 0, 2147, 0, 0, - 0, 0, 487, 487, 0, 487, 0, 487, 487, 2041, - 487, 487, 487, 487, 487, 487, 0, 2166, 0, 610, - 610, 610, 0, 165, 0, 487, 2050, 2051, 1925, 166, - 2055, 0, 486, 165, 2178, 0, 0, 933, 935, 0, - 2185, 0, 0, 971, 970, 980, 981, 973, 974, 975, - 976, 977, 978, 979, 972, 2189, 487, 982, 166, 0, - 486, 0, 0, 2202, 2195, 0, 1735, 0, 486, 486, - 2206, 0, 0, 166, 2221, 0, 2215, 2150, 2223, 2212, - 0, 0, 0, 0, 2235, 2234, 0, 0, 2184, 166, - 2087, 0, 0, 0, 0, 0, 166, 0, 2190, 486, - 2243, 0, 0, 0, 0, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 487, 487, 487, 2250, 0, 0, - 0, 0, 2246, 970, 980, 981, 973, 974, 975, 976, - 977, 978, 979, 972, 2261, 0, 982, 0, 2115, 161, - 0, 166, 0, 0, 1075, 0, 0, 0, 2270, 0, - 0, 0, 610, 0, 0, 2280, 0, 0, 1105, 0, - 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, - 966, 0, 969, 0, 0, 0, 0, 145, 983, 984, - 985, 986, 987, 988, 989, 0, 967, 968, 965, 971, - 970, 980, 981, 973, 974, 975, 976, 977, 978, 979, - 972, 0, 487, 982, 0, 2153, 2154, 2155, 2156, 2030, - 2160, 0, 2161, 2162, 2163, 0, 2164, 2165, 1768, 0, - 0, 0, 0, 0, 0, 2029, 0, 0, 0, 0, - 0, 142, 0, 143, 0, 0, 487, 487, 0, 0, - 0, 0, 160, 0, 0, 0, 0, 166, 0, 1687, - 0, 0, 0, 0, 0, 0, 0, 2191, 0, 0, - 0, 487, 0, 0, 0, 0, 0, 0, 166, 0, - 0, 487, 0, 0, 0, 166, 0, 166, 0, 2028, - 1711, 1712, 1062, 0, 0, 166, 166, 0, 0, 0, - 0, 0, 487, 0, 0, 487, 0, 0, 0, 0, - 0, 0, 0, 146, 0, 0, 487, 0, 0, 0, - 0, 0, 0, 151, 0, 0, 2244, 2245, 0, 0, - 0, 0, 971, 970, 980, 981, 973, 974, 975, 976, - 977, 978, 979, 972, 0, 0, 982, 759, 971, 970, + 1860, 1116, 982, 1111, 1511, 591, 587, 1339, 1068, 1069, + 590, 1880, 589, 483, 1489, 486, 163, 1866, 1104, 1072, + 1867, 588, 832, 447, 1872, 1900, 165, 1968, 1878, 1881, + 1893, 1335, 1610, 1894, 453, 990, 486, 1715, 1762, 609, + 602, 1927, 486, 486, 2199, 1879, 584, 585, 590, 2170, + 589, 2172, 2121, 2175, 1922, 2168, 2253, 2231, 1925, 2182, + 1522, 1449, 1060, 1551, 166, 165, 166, 2044, 1915, 166, + 1684, 1019, 1420, 1087, 508, 1444, 1358, 523, 520, 1735, + 521, 1460, 1727, 964, 506, 500, 1931, 1079, 1481, 1479, + 1919, 1940, 1478, 1634, 1909, 487, 487, 487, 1091, 1938, + 1934, 1657, 1658, 1659, 1085, 1464, 1944, 1523, 1946, 1945, + 1947, 1847, 1996, 487, 487, 943, 583, 1960, 1961, 1976, + 495, 767, 1930, 1417, 2158, 165, 1651, 2033, 582, 61, + 1952, 38, 490, 486, 2248, 934, 592, 32, 31, 30, + 29, 486, 28, 23, 22, 21, 165, 20, 19, 25, + 1972, 18, 17, 1973, 1974, 1971, 165, 16, 1989, 98, + 48, 45, 43, 105, 1991, 104, 46, 42, 869, 1985, + 165, 27, 26, 165, 15, 14, 1986, 1993, 1988, 13, + 12, 11, 2013, 10, 1994, 9, 1555, 5, 4, 937, + 24, 1008, 166, 2, 0, 0, 0, 0, 0, 0, + 2008, 0, 0, 0, 0, 2007, 0, 0, 0, 0, + 0, 0, 0, 0, 610, 610, 610, 0, 0, 0, + 487, 0, 0, 166, 0, 166, 166, 0, 487, 0, + 0, 2021, 933, 935, 487, 0, 2010, 2011, 0, 0, + 0, 0, 0, 0, 2016, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2043, 0, 0, 0, 0, 0, + 2048, 0, 0, 0, 0, 0, 0, 0, 0, 2057, + 0, 0, 0, 2056, 0, 0, 0, 0, 0, 2018, + 2019, 0, 2020, 1735, 0, 2022, 2062, 2024, 165, 0, + 0, 165, 165, 165, 486, 486, 2064, 0, 2063, 0, + 0, 0, 0, 0, 0, 2066, 0, 2068, 0, 0, + 0, 2083, 0, 2098, 486, 486, 486, 0, 0, 0, + 0, 0, 0, 1687, 0, 0, 0, 0, 0, 0, + 2104, 0, 0, 0, 0, 0, 0, 0, 0, 1075, + 0, 0, 0, 0, 0, 0, 0, 610, 0, 486, + 486, 486, 165, 1105, 1711, 1712, 1062, 0, 0, 0, + 0, 0, 2103, 486, 0, 486, 2114, 2116, 2117, 0, + 0, 486, 0, 0, 2128, 2102, 0, 2118, 1925, 2124, + 0, 166, 1925, 2126, 2130, 2119, 0, 0, 2133, 0, + 0, 0, 0, 1874, 1875, 0, 0, 2110, 2136, 0, + 2137, 0, 0, 0, 486, 0, 0, 486, 1895, 1896, + 0, 1897, 1898, 487, 2140, 0, 2151, 0, 2144, 0, + 2132, 2148, 1904, 1905, 0, 0, 2134, 0, 0, 0, + 487, 487, 0, 487, 0, 487, 487, 0, 487, 487, + 487, 487, 487, 487, 0, 2167, 0, 0, 0, 0, + 0, 0, 0, 487, 165, 0, 1925, 166, 2179, 0, + 0, 0, 0, 486, 165, 0, 0, 0, 0, 0, + 2186, 0, 0, 0, 0, 2031, 0, 0, 0, 0, + 2190, 0, 0, 0, 487, 0, 166, 0, 0, 2203, + 0, 486, 0, 2196, 0, 0, 0, 0, 0, 486, + 486, 166, 0, 2213, 2207, 1954, 2216, 0, 2151, 2224, + 2222, 0, 0, 0, 0, 2236, 2235, 166, 0, 0, + 0, 0, 0, 0, 166, 0, 0, 0, 0, 1735, + 486, 2244, 759, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 487, 487, 487, 1204, 2251, 2247, 0, 1210, + 1210, 0, 1210, 0, 1210, 1210, 0, 1219, 1210, 1210, + 1210, 1210, 1210, 2030, 0, 2262, 0, 0, 0, 166, + 1204, 1204, 759, 0, 0, 0, 0, 0, 0, 2271, + 0, 0, 0, 0, 0, 0, 2281, 1902, 971, 970, 980, 981, 973, 974, 975, 976, 977, 978, 979, 972, - 1204, 0, 982, 0, 1210, 1210, 0, 1210, 0, 1210, - 1210, 487, 1219, 1210, 1210, 1210, 1210, 1210, 0, 0, - 0, 0, 0, 0, 0, 1204, 1204, 759, 0, 161, - 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, - 0, 487, 971, 970, 980, 981, 973, 974, 975, 976, - 977, 978, 979, 972, 103, 0, 982, 0, 1279, 0, - 0, 0, 0, 0, 0, 0, 1873, 145, 0, 138, - 0, 0, 0, 0, 0, 502, 0, 0, 0, 0, - 0, 1662, 0, 0, 0, 487, 971, 970, 980, 981, - 973, 974, 975, 976, 977, 978, 979, 972, 0, 0, - 982, 971, 970, 980, 981, 973, 974, 975, 976, 977, - 978, 979, 972, 0, 0, 982, 610, 610, 610, 0, - 0, 142, 0, 143, 0, 0, 0, 166, 0, 0, - 0, 0, 160, 0, 166, 0, 0, 0, 0, 166, - 166, 0, 0, 166, 0, 166, 0, 0, 0, 0, - 0, 166, 0, 0, 0, 0, 0, 0, 166, 0, - 0, 0, 0, 1902, 980, 981, 973, 974, 975, 976, - 977, 978, 979, 972, 0, 0, 982, 0, 0, 0, - 0, 0, 0, 0, 0, 166, 487, 0, 0, 0, - 0, 0, 0, 146, 0, 0, 0, 0, 1917, 0, - 0, 0, 0, 151, 1394, 0, 610, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1204, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1426, 1427, - 0, 139, 144, 141, 147, 148, 149, 150, 152, 153, - 154, 155, 0, 0, 0, 0, 0, 156, 157, 158, - 159, 0, 0, 1461, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1075, 0, 0, 610, 0, 0, 0, - 166, 0, 0, 0, 0, 0, 0, 0, 166, 0, - 0, 0, 0, 0, 610, 0, 0, 610, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 759, 138, - 0, 0, 535, 166, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 166, 166, 166, 166, 166, 0, - 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, - 166, 0, 0, 166, 166, 0, 0, 166, 166, 166, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 164, 0, 766, 443, 0, 0, 481, 0, 0, - 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, - 2035, 0, 443, 0, 0, 0, 0, 759, 0, 0, - 0, 1132, 0, 766, 0, 0, 0, 0, 0, 596, - 596, 0, 0, 499, 0, 0, 487, 0, 443, 0, - 2058, 166, 0, 2059, 0, 0, 2061, 0, 166, 0, - 0, 537, 34, 0, 487, 0, 0, 0, 0, 0, - 487, 0, 0, 0, 0, 0, 0, 759, 0, 0, - 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, - 0, 0, 0, 166, 166, 166, 166, 166, 0, 0, + 0, 0, 982, 1279, 0, 2014, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 966, 0, 969, 0, 0, + 0, 0, 1917, 983, 984, 985, 986, 987, 988, 989, + 487, 967, 968, 965, 971, 970, 980, 981, 973, 974, + 975, 976, 977, 978, 979, 972, 0, 0, 982, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 610, 610, 610, 487, 487, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 166, 971, 970, 980, 981, + 973, 974, 975, 976, 977, 978, 979, 972, 0, 487, + 982, 2065, 0, 0, 0, 0, 166, 0, 0, 487, + 0, 0, 0, 166, 0, 166, 0, 0, 0, 0, + 0, 0, 0, 166, 166, 0, 0, 0, 0, 0, + 487, 0, 0, 487, 0, 0, 0, 0, 462, 0, + 0, 0, 0, 0, 487, 0, 0, 461, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 459, 1394, + 0, 610, 0, 0, 0, 0, 0, 0, 0, 0, + 2105, 2106, 2107, 2108, 2109, 1204, 0, 0, 2112, 2113, + 1403, 1404, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1426, 1427, 0, 0, 456, 0, 487, + 0, 0, 0, 0, 0, 0, 468, 0, 0, 0, + 0, 0, 0, 0, 2035, 0, 0, 0, 1461, 0, + 161, 0, 0, 487, 0, 0, 1448, 0, 1075, 487, + 0, 610, 0, 0, 0, 0, 0, 499, 0, 0, + 0, 0, 0, 0, 2058, 103, 0, 2059, 2029, 610, + 2061, 0, 610, 474, 0, 0, 0, 0, 145, 0, + 0, 0, 0, 759, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, + 0, 446, 0, 448, 463, 0, 476, 0, 475, 452, + 0, 450, 454, 464, 455, 0, 449, 0, 460, 0, + 0, 451, 465, 466, 480, 479, 467, 0, 473, 458, + 477, 0, 142, 0, 143, 166, 0, 0, 766, 0, + 0, 0, 166, 160, 0, 0, 2217, 166, 166, 0, + 0, 166, 0, 166, 0, 0, 0, 0, 0, 166, + 0, 0, 759, 0, 0, 0, 166, 0, 766, 0, + 0, 0, 0, 0, 0, 0, 2123, 499, 535, 0, + 0, 971, 970, 980, 981, 973, 974, 975, 976, 977, + 978, 979, 972, 166, 487, 982, 0, 0, 0, 0, + 0, 0, 0, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 759, 0, 151, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2037, 164, 0, 0, + 443, 0, 0, 481, 0, 0, 0, 0, 0, 0, + 443, 0, 0, 0, 0, 0, 0, 0, 443, 2036, + 0, 0, 0, 0, 478, 0, 0, 0, 2028, 0, + 0, 0, 0, 0, 0, 596, 596, 0, 0, 0, + 0, 0, 471, 0, 443, 971, 970, 980, 981, 973, + 974, 975, 976, 977, 978, 979, 972, 472, 166, 982, + 0, 0, 0, 0, 0, 0, 166, 0, 971, 970, + 980, 981, 973, 974, 975, 976, 977, 978, 979, 972, + 0, 0, 982, 1646, 0, 0, 0, 0, 0, 0, + 138, 166, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 166, 166, 166, 166, 166, 0, 0, 0, + 0, 0, 0, 0, 166, 0, 0, 0, 166, 0, + 0, 166, 166, 0, 0, 166, 166, 166, 0, 0, + 0, 0, 0, 0, 35, 36, 37, 72, 39, 40, + 0, 971, 970, 980, 981, 973, 974, 975, 976, 977, + 978, 979, 972, 1663, 76, 982, 0, 1664, 0, 41, + 67, 68, 0, 65, 69, 0, 0, 0, 1671, 1672, + 0, 0, 66, 0, 1678, 0, 0, 1681, 1682, 0, + 0, 0, 0, 0, 487, 1688, 0, 1689, 0, 166, + 1692, 1693, 1694, 1695, 1696, 0, 166, 0, 0, 0, + 0, 54, 487, 1873, 0, 0, 1706, 0, 487, 0, + 0, 71, 0, 0, 0, 0, 0, 0, 487, 0, + 1204, 0, 0, 971, 970, 980, 981, 973, 974, 975, + 976, 977, 978, 979, 972, 0, 0, 982, 0, 0, + 0, 166, 166, 166, 166, 166, 0, 0, 0, 0, + 0, 0, 0, 1750, 1751, 0, 0, 166, 166, 0, + 0, 0, 139, 144, 141, 147, 148, 149, 150, 152, + 153, 154, 155, 0, 0, 0, 0, 0, 156, 157, + 158, 159, 0, 0, 0, 44, 47, 50, 49, 52, + 0, 64, 0, 487, 70, 0, 0, 0, 0, 0, + 0, 0, 0, 1809, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 53, 75, 74, + 0, 1821, 62, 63, 51, 1204, 0, 1828, 0, 487, + 0, 0, 0, 0, 0, 610, 0, 1833, 0, 0, + 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 487, 0, 0, 0, 0, 0, 487, 487, 0, 0, + 0, 0, 0, 55, 56, 0, 57, 58, 59, 60, + 0, 0, 0, 0, 1662, 0, 0, 0, 0, 166, + 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, + 443, 0, 0, 443, 971, 970, 980, 981, 973, 974, + 975, 976, 977, 978, 979, 972, 0, 0, 982, 0, + 0, 0, 610, 0, 0, 971, 970, 980, 981, 973, + 974, 975, 976, 977, 978, 979, 972, 1876, 1877, 982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, - 166, 139, 144, 141, 147, 148, 149, 150, 152, 153, - 154, 155, 0, 0, 0, 0, 0, 156, 157, 158, - 159, 573, 0, 0, 0, 0, 0, 0, 1120, 0, + 0, 0, 0, 0, 0, 0, 0, 487, 1210, 0, 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, - 0, 0, 2123, 499, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1646, 0, + 166, 0, 0, 0, 0, 0, 0, 0, 73, 610, + 166, 0, 1204, 0, 0, 1929, 1210, 0, 0, 0, + 0, 0, 0, 0, 166, 0, 0, 166, 0, 0, + 0, 0, 0, 1928, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 537, 34, 0, 0, 0, 0, + 0, 0, 0, 0, 1943, 0, 443, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 596, 0, 0, 0, 0, 0, 0, 34, + 0, 0, 0, 0, 0, 0, 0, 443, 0, 443, + 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 759, 0, 0, 1204, + 0, 0, 0, 0, 1821, 0, 0, 0, 0, 1050, + 0, 0, 0, 0, 573, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 166, 0, 0, 166, 166, 166, 487, 487, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 487, 487, + 487, 442, 0, 0, 0, 0, 0, 0, 0, 0, + 2015, 489, 0, 0, 2017, 0, 0, 0, 0, 569, + 0, 0, 0, 0, 0, 2026, 2027, 0, 0, 0, + 0, 0, 0, 487, 487, 487, 166, 0, 0, 0, + 0, 2041, 0, 0, 0, 763, 1204, 487, 0, 487, + 0, 0, 0, 0, 0, 487, 0, 0, 2050, 2051, + 0, 0, 2055, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 487, 0, + 0, 487, 0, 0, 0, 0, 0, 1821, 2084, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2099, 2100, 2101, + 1205, 0, 2087, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, + 0, 0, 0, 0, 0, 1205, 1205, 487, 166, 0, + 0, 443, 1821, 1821, 1821, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2129, 0, 2131, 0, + 2115, 0, 0, 0, 1821, 487, 0, 0, 0, 0, + 443, 0, 0, 487, 487, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1300, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1821, 0, 0, + 610, 443, 0, 0, 487, 0, 0, 0, 443, 0, + 0, 0, 0, 0, 0, 0, 0, 1323, 1324, 443, + 443, 443, 443, 443, 443, 443, 0, 2154, 2155, 2156, + 2157, 0, 2161, 0, 2162, 2163, 2164, 0, 2165, 2166, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 443, 0, 0, 1821, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2192, 0, 1204, 0, 2208, 0, 0, 0, 0, 0, + 0, 0, 610, 610, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 596, 1300, 0, 0, 0, + 596, 596, 0, 1821, 596, 596, 596, 0, 0, 0, + 1205, 0, 0, 0, 0, 926, 926, 926, 0, 2245, + 2246, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 596, 596, 596, 596, 596, 34, 0, 0, 0, 1442, + 0, 0, 0, 0, 0, 0, 0, 0, 991, 993, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, + 443, 875, 0, 0, 877, 0, 1300, 443, 0, 443, + 0, 0, 0, 0, 0, 0, 0, 443, 443, 1006, + 0, 0, 0, 1011, 1012, 1013, 1014, 1015, 1016, 1017, + 1018, 0, 1021, 1023, 1026, 1026, 1026, 1023, 1026, 1026, + 1023, 1026, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 0, + 0, 0, 0, 0, 1051, 0, 0, 0, 34, 0, + 0, 0, 1132, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 161, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1819, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 103, 0, 125, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1081, 0, + 0, 1092, 0, 0, 0, 0, 0, 135, 0, 0, + 0, 0, 124, 0, 0, 0, 0, 0, 0, 1120, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 142, 0, 143, 0, 0, 0, 0, 1185, 1186, 134, + 133, 160, 0, 0, 0, 0, 0, 0, 0, 443, + 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, + 0, 443, 443, 1133, 0, 443, 0, 1637, 0, 0, + 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, + 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 129, 1187, 136, 0, 1184, 0, 130, 131, 0, + 0, 0, 146, 0, 0, 0, 0, 443, 0, 0, + 0, 0, 151, 0, 1146, 1149, 1150, 1151, 1152, 1153, + 1154, 0, 1155, 1156, 1157, 1158, 1159, 1134, 1135, 1136, + 1137, 1118, 1119, 1147, 0, 1121, 0, 1122, 1123, 1124, + 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1138, 1139, 1140, + 1141, 1142, 1143, 1144, 1145, 0, 1110, 0, 0, 0, + 0, 0, 0, 0, 0, 596, 596, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 596, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, + 1442, 0, 0, 0, 0, 0, 0, 0, 138, 0, + 0, 0, 1148, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1241, 0, 596, 443, 0, 0, 0, 0, + 0, 0, 926, 926, 926, 1205, 443, 443, 443, 443, + 443, 0, 0, 0, 0, 0, 0, 0, 1749, 0, + 0, 1281, 443, 0, 0, 443, 443, 0, 0, 443, + 1759, 1300, 0, 0, 132, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 126, 0, 0, 127, + 0, 0, 1310, 0, 0, 0, 0, 0, 0, 1314, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1325, 1326, 1327, 1328, 1329, 1330, 1331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 487, 1133, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 487, 0, 0, 0, 0, 0, 487, 487, - 0, 0, 0, 0, 0, 0, 996, 997, 998, 999, - 1000, 1001, 1002, 1003, 1004, 1005, 0, 0, 0, 0, - 0, 166, 0, 1146, 1149, 1150, 1151, 1152, 1153, 1154, - 0, 1155, 1156, 1157, 1158, 1159, 1134, 1135, 1136, 1137, - 1118, 1119, 1147, 0, 1121, 0, 1122, 1123, 1124, 1125, - 1126, 1127, 1128, 1129, 1130, 1131, 1138, 1139, 1140, 1141, - 1142, 1143, 1144, 1145, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, + 1818, 0, 0, 0, 1092, 0, 0, 0, 0, 0, + 1205, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1300, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, + 139, 144, 141, 147, 148, 149, 150, 152, 153, 154, + 155, 443, 443, 0, 0, 0, 156, 157, 158, 159, + 0, 0, 0, 1493, 0, 0, 0, 161, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1181, 0, + 0, 0, 0, 0, 0, 0, 596, 0, 0, 0, + 0, 0, 103, 0, 125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 166, 0, 0, 0, 0, 0, 0, 0, 487, - 0, 0, 0, 0, 0, 1204, 0, 487, 0, 0, - 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 166, 0, 0, 166, - 0, 1148, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1468, 0, 0, 0, 0, 0, 0, 1472, 0, + 1475, 0, 0, 0, 443, 0, 135, 0, 0, 1494, + 0, 124, 0, 0, 0, 0, 0, 1205, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, + 0, 143, 0, 0, 0, 0, 1185, 1186, 134, 133, + 160, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 443, 0, 443, 0, 0, 443, 1809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1821, 0, 0, 0, - 1204, 0, 1828, 0, 0, 0, 0, 0, 0, 0, - 610, 0, 1833, 0, 0, 0, 0, 0, 0, 0, + 129, 1187, 136, 0, 1184, 0, 130, 131, 0, 0, + 0, 146, 0, 443, 0, 0, 0, 0, 0, 0, + 0, 151, 0, 0, 1205, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, + 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 166, 0, 0, 166, 166, 166, - 487, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 487, 487, 487, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 443, 0, 0, 0, 0, 487, 487, 487, 166, 0, - 0, 0, 926, 926, 926, 0, 596, 0, 0, 487, - 0, 487, 0, 1210, 0, 0, 0, 487, 0, 0, - 0, 443, 34, 443, 1094, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 610, 991, 993, 1204, 0, 0, - 1929, 1210, 0, 0, 0, 0, 0, 0, 0, 0, - 487, 0, 0, 487, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1006, 0, 0, 0, - 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 0, 1021, - 1023, 1026, 1026, 1026, 1023, 1026, 1026, 1023, 1026, 1039, - 1040, 1041, 1042, 1043, 1044, 1045, 0, 0, 0, 166, - 0, 1051, 0, 0, 0, 34, 0, 0, 487, 166, + 1092, 0, 0, 0, 0, 0, 0, 1621, 0, 0, + 0, 0, 1630, 1631, 0, 0, 1635, 138, 0, 0, + 0, 1205, 0, 0, 1638, 0, 0, 0, 0, 0, + 0, 1641, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1667, 0, 0, 573, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1645, 0, + 0, 0, 0, 0, 0, 0, 443, 0, 0, 443, + 443, 443, 0, 132, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1704, 126, 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 759, 1088, 0, 1204, 0, 487, 0, 0, 1821, - 0, 0, 0, 0, 487, 487, 0, 0, 0, 0, - 1363, 0, 0, 1372, 1373, 1374, 1375, 1376, 1377, 1378, - 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 0, 0, - 0, 0, 0, 0, 0, 487, 0, 0, 0, 443, + 0, 1088, 0, 0, 0, 0, 0, 0, 1731, 1732, + 0, 0, 1088, 1088, 1088, 1088, 1088, 0, 0, 0, + 1442, 0, 0, 0, 0, 0, 0, 0, 1493, 0, + 0, 1088, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1425, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1205, 0, 161, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1819, 0, 0, - 0, 1204, 0, 0, 0, 0, 0, 0, 0, 1205, - 1205, 103, 0, 125, 0, 443, 0, 0, 0, 0, - 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, + 144, 141, 147, 148, 149, 150, 152, 153, 154, 155, + 0, 0, 0, 0, 0, 156, 157, 158, 159, 0, + 0, 0, 0, 0, 0, 0, 0, 1756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, - 0, 0, 1821, 2084, 0, 135, 0, 0, 0, 1300, - 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2099, 2100, 2101, 443, 0, 0, 142, 0, - 143, 0, 443, 0, 0, 1185, 1186, 134, 133, 160, - 0, 1323, 1324, 443, 443, 443, 443, 443, 443, 443, - 0, 0, 0, 0, 0, 0, 0, 1821, 1821, 1821, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2129, 0, 2131, 0, 0, 0, 443, 0, 1821, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, - 1187, 136, 0, 1184, 0, 130, 131, 0, 0, 0, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 151, 0, 1821, 0, 0, 610, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35, 36, 37, 72, - 39, 40, 0, 0, 0, 0, 0, 0, 0, 596, - 1300, 0, 0, 0, 596, 596, 76, 0, 596, 596, - 596, 41, 67, 68, 1205, 65, 69, 0, 0, 926, - 926, 926, 0, 0, 66, 0, 0, 0, 0, 0, - 1821, 0, 0, 0, 596, 596, 596, 596, 596, 0, - 0, 0, 0, 1442, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 54, 0, 0, 1204, 0, 2207, 0, - 0, 0, 0, 71, 443, 0, 610, 610, 0, 0, - 1300, 443, 0, 443, 0, 0, 138, 0, 0, 0, - 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1821, 0, 0, + 0, 0, 443, 0, 0, 0, 0, 0, 0, 1834, + 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1657, 1658, 1659, 0, 0, - 0, 0, 132, 0, 0, 0, 0, 44, 47, 50, - 49, 52, 0, 64, 126, 0, 70, 127, 0, 0, + 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, - 75, 74, 0, 0, 62, 63, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 55, 56, 0, 57, 58, - 59, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 139, 144, - 141, 147, 148, 149, 150, 152, 153, 154, 155, 0, - 0, 0, 0, 0, 156, 157, 158, 159, 0, 0, - 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, - 443, 0, 0, 0, 0, 443, 443, 0, 0, 443, - 0, 1637, 0, 0, 0, 0, 0, 443, 0, 0, - 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1851, 1852, 1853, 1854, + 1855, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1092, 1861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1926, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, - 596, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 596, 0, 0, 0, 0, 0, 0, 1874, 1875, 0, - 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, - 0, 0, 1895, 1896, 1442, 1897, 1898, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1904, 1905, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 596, 443, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1205, - 443, 443, 443, 443, 443, 0, 0, 0, 0, 0, - 0, 0, 1749, 0, 0, 0, 443, 0, 0, 443, - 443, 0, 0, 443, 1759, 1300, 0, 0, 0, 0, - 0, 1667, 0, 0, 573, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1954, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1704, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, - 0, 0, 0, 0, 1818, 0, 0, 0, 1088, 0, - 0, 0, 0, 0, 1205, 1731, 1732, 0, 0, 1088, - 1088, 1088, 1088, 1088, 1300, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1493, 0, 0, 1088, 0, - 0, 0, 1088, 0, 0, 0, 0, 0, 0, 443, - 443, 443, 443, 443, 0, 0, 0, 161, 0, 0, - 0, 0, 0, 0, 0, 443, 443, 0, 1181, 2014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 103, 0, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 145, 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, 135, 0, 0, 0, - 0, 124, 0, 0, 0, 0, 1834, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 443, 142, - 0, 143, 0, 0, 0, 2065, 1185, 1186, 134, 133, - 160, 1205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 129, 1187, 136, 0, 1184, 0, 130, 131, 0, 0, - 0, 146, 0, 0, 2105, 2106, 2107, 2108, 2109, 0, - 0, 151, 2112, 2113, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1205, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, - 0, 1926, 0, 34, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 443, 0, 0, 443, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1979, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2032, 0, 0, 0, 0, 0, + 0, 2038, 2039, 2040, 0, 1992, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1995, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2006, + 0, 0, 2009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1205, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 126, 0, 0, 127, 0, - 443, 0, 0, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2032, 0, 0, 0, 0, 0, 0, 2038, 2039, - 2040, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, - 144, 141, 147, 148, 149, 150, 152, 153, 154, 155, - 0, 0, 0, 0, 0, 156, 157, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1926, 0, 34, 2079, 1926, 0, + 2080, 2081, 2082, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, - 0, 1926, 0, 34, 0, 1926, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1926, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2184, 0, 0, 0, + 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1926, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2183, 0, 0, 0, 0, 34, 0, - 0, 0, 0, 0, 737, 723, 0, 0, 672, 740, - 642, 660, 750, 663, 666, 706, 621, 685, 314, 657, - 0, 646, 617, 653, 618, 644, 674, 223, 678, 641, - 725, 688, 739, 272, 34, 623, 647, 328, 662, 176, - 708, 366, 209, 281, 279, 394, 233, 226, 222, 208, - 256, 287, 326, 384, 320, 746, 276, 695, 0, 375, - 299, 0, 0, 0, 676, 729, 683, 719, 671, 707, - 631, 694, 741, 658, 703, 742, 262, 207, 175, 311, - 376, 237, 0, 0, 0, 167, 168, 169, 0, 2224, - 2225, 0, 0, 0, 0, 0, 198, 0, 205, 700, - 736, 655, 702, 219, 260, 225, 218, 391, 747, 728, - 705, 753, 616, 697, 0, 619, 622, 749, 732, 650, - 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, - 716, 669, 0, 0, 0, 0, 0, 0, 0, 0, - 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, - 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, - 0, 614, 245, 624, 300, 0, 721, 731, 670, 423, - 735, 668, 667, 738, 712, 628, 727, 661, 271, 626, - 268, 171, 187, 0, 659, 310, 349, 355, 726, 645, - 654, 210, 652, 353, 324, 408, 194, 235, 346, 329, - 351, 692, 710, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 928, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, - 269, 278, 714, 752, 323, 354, 200, 410, 374, 635, - 639, 633, 634, 686, 687, 636, 743, 744, 745, 718, - 629, 0, 637, 638, 0, 724, 733, 734, 691, 170, - 184, 274, 748, 343, 238, 436, 417, 413, 615, 632, - 216, 643, 0, 0, 656, 664, 665, 677, 679, 680, - 681, 682, 690, 698, 699, 701, 709, 711, 713, 715, - 720, 730, 751, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 689, 696, 284, 232, 249, 259, - 704, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 737, - 723, 0, 0, 672, 740, 642, 660, 750, 663, 666, - 706, 621, 685, 314, 657, 0, 646, 617, 653, 618, - 644, 674, 223, 678, 641, 725, 688, 739, 272, 0, - 623, 647, 328, 662, 176, 708, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 746, 276, 695, 0, 375, 299, 0, 0, 0, 676, - 729, 683, 719, 671, 707, 631, 694, 741, 658, 703, - 742, 262, 207, 175, 311, 376, 237, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 700, 736, 655, 702, 219, 260, - 225, 218, 391, 747, 728, 705, 753, 616, 697, 0, - 619, 622, 749, 732, 650, 651, 0, 0, 0, 0, - 0, 0, 0, 675, 684, 716, 669, 0, 0, 0, - 0, 0, 0, 1918, 0, 648, 0, 693, 0, 0, - 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, - 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, - 0, 721, 731, 670, 423, 735, 668, 667, 738, 712, - 628, 727, 661, 271, 626, 268, 171, 187, 0, 659, - 310, 349, 355, 726, 645, 654, 210, 652, 353, 324, - 408, 194, 235, 346, 329, 351, 692, 710, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 928, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 640, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 722, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 305, 191, 254, 373, 269, 278, 714, 752, 323, - 354, 200, 410, 374, 635, 639, 633, 634, 686, 687, - 636, 743, 744, 745, 718, 629, 0, 637, 638, 0, - 724, 733, 734, 691, 170, 184, 274, 748, 343, 238, - 436, 417, 413, 615, 632, 216, 643, 0, 0, 656, - 664, 665, 677, 679, 680, 681, 682, 690, 698, 699, - 701, 709, 711, 713, 715, 720, 730, 751, 172, 173, - 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, - 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, - 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, - 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, - 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, - 398, 409, 421, 426, 247, 405, 427, 0, 282, 689, - 696, 284, 232, 249, 259, 704, 416, 379, 189, 350, - 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, - 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 737, 723, 0, 0, 672, 740, - 642, 660, 750, 663, 666, 706, 621, 685, 314, 657, - 0, 646, 617, 653, 618, 644, 674, 223, 678, 641, - 725, 688, 739, 272, 0, 623, 647, 328, 662, 176, - 708, 366, 209, 281, 279, 394, 233, 226, 222, 208, - 256, 287, 326, 384, 320, 746, 276, 695, 0, 375, - 299, 0, 0, 0, 676, 729, 683, 719, 671, 707, - 631, 694, 741, 658, 703, 742, 262, 207, 175, 311, - 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 700, - 736, 655, 702, 219, 260, 225, 218, 391, 747, 728, - 705, 753, 616, 697, 0, 619, 622, 749, 732, 650, - 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, - 716, 669, 0, 0, 0, 0, 0, 0, 1760, 0, - 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, - 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, - 0, 614, 245, 624, 300, 0, 721, 731, 670, 423, - 735, 668, 667, 738, 712, 628, 727, 661, 271, 626, - 268, 171, 187, 0, 659, 310, 349, 355, 726, 645, - 654, 210, 652, 353, 324, 408, 194, 235, 346, 329, - 351, 692, 710, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 928, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, - 269, 278, 714, 752, 323, 354, 200, 410, 374, 635, - 639, 633, 634, 686, 687, 636, 743, 744, 745, 718, - 629, 0, 637, 638, 0, 724, 733, 734, 691, 170, - 184, 274, 748, 343, 238, 436, 417, 413, 615, 632, - 216, 643, 0, 0, 656, 664, 665, 677, 679, 680, - 681, 682, 690, 698, 699, 701, 709, 711, 713, 715, - 720, 730, 751, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 689, 696, 284, 232, 249, 259, - 704, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 737, - 723, 0, 0, 672, 740, 642, 660, 750, 663, 666, - 706, 621, 685, 314, 657, 0, 646, 617, 653, 618, - 644, 674, 223, 678, 641, 725, 688, 739, 272, 0, - 623, 647, 328, 662, 176, 708, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 746, 276, 695, 0, 375, 299, 0, 0, 0, 676, - 729, 683, 719, 671, 707, 631, 694, 741, 658, 703, - 742, 262, 207, 175, 311, 376, 237, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 700, 736, 655, 702, 219, 260, - 225, 218, 391, 747, 728, 705, 753, 616, 697, 0, - 619, 622, 749, 732, 650, 651, 0, 0, 0, 0, - 0, 0, 0, 675, 684, 716, 669, 0, 0, 0, - 0, 0, 0, 1470, 0, 648, 0, 693, 0, 0, - 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, - 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, - 0, 721, 731, 670, 423, 735, 668, 667, 738, 712, - 628, 727, 661, 271, 626, 268, 171, 187, 0, 659, - 310, 349, 355, 726, 645, 654, 210, 652, 353, 324, - 408, 194, 235, 346, 329, 351, 692, 710, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 928, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 640, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 722, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 305, 191, 254, 373, 269, 278, 714, 752, 323, - 354, 200, 410, 374, 635, 639, 633, 634, 686, 687, - 636, 743, 744, 745, 718, 629, 0, 637, 638, 0, - 724, 733, 734, 691, 170, 184, 274, 748, 343, 238, - 436, 417, 413, 615, 632, 216, 643, 0, 0, 656, - 664, 665, 677, 679, 680, 681, 682, 690, 698, 699, - 701, 709, 711, 713, 715, 720, 730, 751, 172, 173, - 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, - 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, - 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, - 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, - 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, - 398, 409, 421, 426, 247, 405, 427, 0, 282, 689, - 696, 284, 232, 249, 259, 704, 416, 379, 189, 350, - 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, - 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 737, 723, 0, 0, 672, 740, - 642, 660, 750, 663, 666, 706, 621, 685, 314, 657, - 0, 646, 617, 653, 618, 644, 674, 223, 678, 641, - 725, 688, 739, 272, 0, 623, 647, 328, 662, 176, - 708, 366, 209, 281, 279, 394, 233, 226, 222, 208, - 256, 287, 326, 384, 320, 746, 276, 695, 0, 375, - 299, 0, 0, 0, 676, 729, 683, 719, 671, 707, - 631, 694, 741, 658, 703, 742, 262, 207, 175, 311, - 376, 237, 71, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 700, - 736, 655, 702, 219, 260, 225, 218, 391, 747, 728, - 705, 753, 616, 697, 0, 619, 622, 749, 732, 650, - 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, - 716, 669, 0, 0, 0, 0, 0, 0, 0, 0, - 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, - 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, - 0, 614, 245, 624, 300, 0, 721, 731, 670, 423, - 735, 668, 667, 738, 712, 628, 727, 661, 271, 626, - 268, 171, 187, 0, 659, 310, 349, 355, 726, 645, - 654, 210, 652, 353, 324, 408, 194, 235, 346, 329, - 351, 692, 710, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 928, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, - 269, 278, 714, 752, 323, 354, 200, 410, 374, 635, - 639, 633, 634, 686, 687, 636, 743, 744, 745, 718, - 629, 0, 637, 638, 0, 724, 733, 734, 691, 170, - 184, 274, 748, 343, 238, 436, 417, 413, 615, 632, - 216, 643, 0, 0, 656, 664, 665, 677, 679, 680, - 681, 682, 690, 698, 699, 701, 709, 711, 713, 715, - 720, 730, 751, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 689, 696, 284, 232, 249, 259, - 704, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 737, - 723, 0, 0, 672, 740, 642, 660, 750, 663, 666, - 706, 621, 685, 314, 657, 0, 646, 617, 653, 618, - 644, 674, 223, 678, 641, 725, 688, 739, 272, 0, - 623, 647, 328, 662, 176, 708, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 746, 276, 695, 0, 375, 299, 0, 0, 0, 676, - 729, 683, 719, 671, 707, 631, 694, 741, 658, 703, - 742, 262, 207, 175, 311, 376, 237, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 700, 736, 655, 702, 219, 260, - 225, 218, 391, 747, 728, 705, 753, 616, 697, 0, - 619, 622, 749, 732, 650, 651, 0, 0, 0, 0, - 0, 0, 0, 675, 684, 716, 669, 0, 0, 0, - 0, 0, 0, 0, 0, 648, 0, 693, 0, 0, - 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, - 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, - 0, 721, 731, 670, 423, 735, 668, 667, 738, 712, - 628, 727, 661, 271, 626, 268, 171, 187, 0, 659, - 310, 349, 355, 726, 645, 654, 210, 652, 353, 324, - 408, 194, 235, 346, 329, 351, 692, 710, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 928, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 640, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 722, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 305, 191, 254, 373, 269, 278, 714, 752, 323, - 354, 200, 410, 374, 635, 639, 633, 634, 686, 687, - 636, 743, 744, 745, 718, 629, 0, 637, 638, 0, - 724, 733, 734, 691, 170, 184, 274, 748, 343, 238, - 436, 417, 413, 615, 632, 216, 643, 0, 0, 656, - 664, 665, 677, 679, 680, 681, 682, 690, 698, 699, - 701, 709, 711, 713, 715, 720, 730, 751, 172, 173, - 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, - 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, - 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, - 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, - 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, - 398, 409, 421, 426, 247, 405, 427, 0, 282, 689, - 696, 284, 232, 249, 259, 704, 416, 379, 189, 350, - 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, - 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 737, 723, 0, 0, 672, 740, - 642, 660, 750, 663, 666, 706, 621, 685, 314, 657, - 0, 646, 617, 653, 618, 644, 674, 223, 678, 641, - 725, 688, 739, 272, 0, 623, 647, 328, 662, 176, - 708, 366, 209, 281, 279, 394, 233, 226, 222, 208, - 256, 287, 326, 384, 320, 746, 276, 695, 0, 375, - 299, 0, 0, 0, 676, 729, 683, 719, 671, 707, - 631, 694, 741, 658, 703, 742, 262, 207, 175, 311, - 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 700, - 736, 655, 702, 219, 260, 225, 218, 391, 747, 728, - 705, 753, 616, 697, 0, 619, 622, 749, 732, 650, - 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, - 716, 669, 0, 0, 0, 0, 0, 0, 0, 0, - 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, - 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, - 0, 614, 245, 624, 300, 0, 721, 731, 670, 423, - 735, 668, 667, 738, 712, 628, 727, 661, 271, 626, - 268, 171, 187, 0, 659, 310, 349, 355, 726, 645, - 654, 210, 652, 353, 324, 408, 194, 235, 346, 329, - 351, 692, 710, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 625, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 613, 754, 607, 606, - 269, 278, 714, 752, 323, 354, 200, 410, 374, 635, - 639, 633, 634, 686, 687, 636, 743, 744, 745, 718, - 629, 0, 637, 638, 0, 724, 733, 734, 691, 170, - 184, 274, 748, 343, 238, 436, 417, 413, 615, 632, - 216, 643, 0, 0, 656, 664, 665, 677, 679, 680, - 681, 682, 690, 698, 699, 701, 709, 711, 713, 715, - 720, 730, 751, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 689, 696, 284, 232, 249, 259, - 704, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 737, - 723, 0, 0, 672, 740, 642, 660, 750, 663, 666, - 706, 621, 685, 314, 657, 0, 646, 617, 653, 618, - 644, 674, 223, 678, 641, 725, 688, 739, 272, 0, - 623, 647, 328, 662, 176, 708, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 746, 276, 695, 0, 375, 299, 0, 0, 0, 676, - 729, 683, 719, 671, 707, 631, 694, 741, 658, 703, - 742, 262, 207, 175, 311, 376, 237, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 700, 736, 655, 702, 219, 260, - 225, 218, 391, 747, 728, 705, 753, 616, 697, 0, - 619, 622, 749, 732, 650, 651, 0, 0, 0, 0, - 0, 0, 0, 675, 684, 716, 669, 0, 0, 0, - 0, 0, 0, 0, 0, 648, 0, 693, 0, 0, - 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, - 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, - 0, 721, 731, 670, 423, 735, 668, 667, 738, 712, - 628, 727, 661, 271, 626, 268, 171, 187, 0, 659, - 310, 349, 355, 726, 645, 654, 210, 652, 353, 324, - 408, 194, 235, 346, 329, 351, 692, 710, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 1096, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 625, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 640, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 722, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 613, 754, 607, 606, 269, 278, 714, 752, 323, - 354, 200, 410, 374, 635, 639, 633, 634, 686, 687, - 636, 743, 744, 745, 718, 629, 0, 637, 638, 0, - 724, 733, 734, 691, 170, 184, 274, 748, 343, 238, - 436, 417, 413, 615, 632, 216, 643, 0, 0, 656, - 664, 665, 677, 679, 680, 681, 682, 690, 698, 699, - 701, 709, 711, 713, 715, 720, 730, 751, 172, 173, - 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, - 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, - 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, - 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, - 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, - 398, 409, 421, 426, 247, 405, 427, 0, 282, 689, - 696, 284, 232, 249, 259, 704, 416, 379, 189, 350, - 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, - 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 737, 723, 0, 0, 672, 740, - 642, 660, 750, 663, 666, 706, 621, 685, 314, 657, - 0, 646, 617, 653, 618, 644, 674, 223, 678, 641, - 725, 688, 739, 272, 0, 623, 647, 328, 662, 176, - 708, 366, 209, 281, 279, 394, 233, 226, 222, 208, - 256, 287, 326, 384, 320, 746, 276, 695, 0, 375, - 299, 0, 0, 0, 676, 729, 683, 719, 671, 707, - 631, 694, 741, 658, 703, 742, 262, 207, 175, 311, - 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 700, - 736, 655, 702, 219, 260, 225, 218, 391, 747, 728, - 705, 753, 616, 697, 0, 619, 622, 749, 732, 650, - 651, 0, 0, 0, 0, 0, 0, 0, 675, 684, - 716, 669, 0, 0, 0, 0, 0, 0, 0, 0, - 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, - 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, - 0, 614, 245, 624, 300, 0, 721, 731, 670, 423, - 735, 668, 667, 738, 712, 628, 727, 661, 271, 626, - 268, 171, 187, 0, 659, 310, 349, 355, 726, 645, - 654, 210, 652, 353, 324, 408, 194, 235, 346, 329, - 351, 692, 710, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 604, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 625, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 640, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 613, 754, 607, 606, - 269, 278, 714, 752, 323, 354, 200, 410, 374, 635, - 639, 633, 634, 686, 687, 636, 743, 744, 745, 718, - 629, 0, 637, 638, 0, 724, 733, 734, 691, 170, - 184, 274, 748, 343, 238, 436, 417, 413, 615, 632, - 216, 643, 0, 0, 656, 664, 665, 677, 679, 680, - 681, 682, 690, 698, 699, 701, 709, 711, 713, 715, - 720, 730, 751, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 689, 696, 284, 232, 249, 259, - 704, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 0, 1396, 0, 504, 0, 0, 0, 223, 0, - 503, 0, 0, 0, 272, 0, 0, 1397, 328, 0, - 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, - 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, - 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, - 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, - 311, 376, 237, 71, 0, 0, 167, 168, 169, 525, - 524, 527, 528, 529, 530, 0, 0, 198, 526, 205, - 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, - 0, 0, 0, 0, 501, 518, 0, 546, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 515, 516, 594, - 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, - 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, - 423, 0, 0, 559, 0, 0, 0, 0, 0, 271, - 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, - 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, - 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2185, 0, 0, 0, 0, 0, 0, + 737, 723, 0, 2191, 672, 740, 642, 660, 750, 663, + 666, 706, 621, 685, 314, 657, 0, 646, 617, 653, + 618, 644, 674, 223, 678, 641, 725, 688, 739, 272, + 0, 623, 647, 328, 662, 176, 708, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 746, 276, 695, 0, 375, 299, 0, 0, 0, + 676, 729, 683, 719, 671, 707, 631, 694, 741, 658, + 703, 742, 262, 207, 175, 311, 376, 237, 0, 0, + 0, 167, 168, 169, 0, 2225, 2226, 0, 0, 0, + 0, 0, 198, 0, 205, 700, 736, 655, 702, 219, + 260, 225, 218, 391, 747, 728, 705, 753, 616, 697, + 0, 619, 622, 749, 732, 650, 651, 0, 0, 0, + 0, 0, 0, 0, 675, 684, 716, 669, 0, 0, + 0, 0, 0, 0, 0, 0, 648, 0, 693, 0, + 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, + 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, + 300, 0, 721, 731, 670, 423, 735, 668, 667, 738, + 712, 628, 727, 661, 271, 626, 268, 171, 187, 0, + 659, 310, 349, 355, 726, 645, 654, 210, 652, 353, + 324, 408, 194, 235, 346, 329, 351, 692, 710, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 928, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 640, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 722, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 305, 191, 254, 373, 269, 278, 714, 752, + 323, 354, 200, 410, 374, 635, 639, 633, 634, 686, + 687, 636, 743, 744, 745, 718, 629, 0, 637, 638, + 0, 724, 733, 734, 691, 170, 184, 274, 748, 343, + 238, 436, 417, 413, 615, 632, 216, 643, 0, 0, + 656, 664, 665, 677, 679, 680, 681, 682, 690, 698, + 699, 701, 709, 711, 713, 715, 720, 730, 751, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 689, 696, 284, 232, 249, 259, 704, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 737, 723, 0, 0, 672, + 740, 642, 660, 750, 663, 666, 706, 621, 685, 314, + 657, 0, 646, 617, 653, 618, 644, 674, 223, 678, + 641, 725, 688, 739, 272, 0, 623, 647, 328, 662, + 176, 708, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 746, 276, 695, 0, + 375, 299, 0, 0, 0, 676, 729, 683, 719, 671, + 707, 631, 694, 741, 658, 703, 742, 262, 207, 175, + 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 700, 736, 655, 702, 219, 260, 225, 218, 391, 747, + 728, 705, 753, 616, 697, 0, 619, 622, 749, 732, + 650, 651, 0, 0, 0, 0, 0, 0, 0, 675, + 684, 716, 669, 0, 0, 0, 0, 0, 0, 1918, + 0, 648, 0, 693, 0, 0, 0, 627, 620, 0, + 0, 0, 0, 673, 0, 0, 0, 630, 0, 649, + 717, 0, 614, 245, 624, 300, 0, 721, 731, 670, + 423, 735, 668, 667, 738, 712, 628, 727, 661, 271, + 626, 268, 171, 187, 0, 659, 310, 349, 355, 726, + 645, 654, 210, 652, 353, 324, 408, 194, 235, 346, + 329, 351, 692, 710, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, - 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, + 190, 419, 183, 928, 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, - 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, - 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, + 195, 196, 197, 640, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 722, 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, - 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, - 549, 560, 555, 556, 553, 554, 548, 552, 551, 550, - 563, 540, 541, 542, 543, 545, 0, 557, 558, 544, - 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 373, 269, 278, 714, 752, 323, 354, 200, 410, 374, + 635, 639, 633, 634, 686, 687, 636, 743, 744, 745, + 718, 629, 0, 637, 638, 0, 724, 733, 734, 691, + 170, 184, 274, 748, 343, 238, 436, 417, 413, 615, + 632, 216, 643, 0, 0, 656, 664, 665, 677, 679, + 680, 681, 682, 690, 698, 699, 701, 709, 711, 713, + 715, 720, 730, 751, 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, - 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, - 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, + 247, 405, 427, 0, 282, 689, 696, 284, 232, 249, + 259, 704, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 0, 0, 0, 504, 0, 0, 0, 223, - 0, 503, 0, 0, 0, 272, 0, 0, 0, 328, - 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, - 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, - 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, - 0, 0, 0, 0, 0, 0, 1509, 0, 262, 207, - 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, - 525, 524, 527, 528, 529, 530, 0, 0, 198, 526, - 205, 531, 532, 533, 1510, 219, 260, 225, 218, 391, - 0, 0, 0, 0, 0, 501, 518, 0, 546, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 515, 516, - 0, 0, 0, 0, 562, 0, 517, 0, 0, 510, - 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, - 0, 423, 0, 0, 559, 0, 0, 0, 0, 0, - 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, - 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, - 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, - 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, - 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, - 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, - 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, - 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, - 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, - 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, - 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, - 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, - 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, - 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, - 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, - 374, 549, 560, 555, 556, 553, 554, 548, 552, 551, - 550, 563, 540, 541, 542, 543, 545, 0, 557, 558, - 544, 170, 184, 274, 0, 343, 238, 436, 417, 413, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 737, 723, 0, 0, 672, 740, 642, 660, 750, 663, + 666, 706, 621, 685, 314, 657, 0, 646, 617, 653, + 618, 644, 674, 223, 678, 641, 725, 688, 739, 272, + 0, 623, 647, 328, 662, 176, 708, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 746, 276, 695, 0, 375, 299, 0, 0, 0, + 676, 729, 683, 719, 671, 707, 631, 694, 741, 658, + 703, 742, 262, 207, 175, 311, 376, 237, 0, 0, + 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 700, 736, 655, 702, 219, + 260, 225, 218, 391, 747, 728, 705, 753, 616, 697, + 0, 619, 622, 749, 732, 650, 651, 0, 0, 0, + 0, 0, 0, 0, 675, 684, 716, 669, 0, 0, + 0, 0, 0, 0, 1760, 0, 648, 0, 693, 0, + 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, + 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, + 300, 0, 721, 731, 670, 423, 735, 668, 667, 738, + 712, 628, 727, 661, 271, 626, 268, 171, 187, 0, + 659, 310, 349, 355, 726, 645, 654, 210, 652, 353, + 324, 408, 194, 235, 346, 329, 351, 692, 710, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 928, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 640, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 722, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 305, 191, 254, 373, 269, 278, 714, 752, + 323, 354, 200, 410, 374, 635, 639, 633, 634, 686, + 687, 636, 743, 744, 745, 718, 629, 0, 637, 638, + 0, 724, 733, 734, 691, 170, 184, 274, 748, 343, + 238, 436, 417, 413, 615, 632, 216, 643, 0, 0, + 656, 664, 665, 677, 679, 680, 681, 682, 690, 698, + 699, 701, 709, 711, 713, 715, 720, 730, 751, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 689, 696, 284, 232, 249, 259, 704, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 737, 723, 0, 0, 672, + 740, 642, 660, 750, 663, 666, 706, 621, 685, 314, + 657, 0, 646, 617, 653, 618, 644, 674, 223, 678, + 641, 725, 688, 739, 272, 0, 623, 647, 328, 662, + 176, 708, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 746, 276, 695, 0, + 375, 299, 0, 0, 0, 676, 729, 683, 719, 671, + 707, 631, 694, 741, 658, 703, 742, 262, 207, 175, + 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 700, 736, 655, 702, 219, 260, 225, 218, 391, 747, + 728, 705, 753, 616, 697, 0, 619, 622, 749, 732, + 650, 651, 0, 0, 0, 0, 0, 0, 0, 675, + 684, 716, 669, 0, 0, 0, 0, 0, 0, 1470, + 0, 648, 0, 693, 0, 0, 0, 627, 620, 0, + 0, 0, 0, 673, 0, 0, 0, 630, 0, 649, + 717, 0, 614, 245, 624, 300, 0, 721, 731, 670, + 423, 735, 668, 667, 738, 712, 628, 727, 661, 271, + 626, 268, 171, 187, 0, 659, 310, 349, 355, 726, + 645, 654, 210, 652, 353, 324, 408, 194, 235, 346, + 329, 351, 692, 710, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 928, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 640, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 722, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 714, 752, 323, 354, 200, 410, 374, + 635, 639, 633, 634, 686, 687, 636, 743, 744, 745, + 718, 629, 0, 637, 638, 0, 724, 733, 734, 691, + 170, 184, 274, 748, 343, 238, 436, 417, 413, 615, + 632, 216, 643, 0, 0, 656, 664, 665, 677, 679, + 680, 681, 682, 690, 698, 699, 701, 709, 711, 713, + 715, 720, 730, 751, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 689, 696, 284, 232, 249, + 259, 704, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 737, 723, 0, 0, 672, 740, 642, 660, 750, 663, + 666, 706, 621, 685, 314, 657, 0, 646, 617, 653, + 618, 644, 674, 223, 678, 641, 725, 688, 739, 272, + 0, 623, 647, 328, 662, 176, 708, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 746, 276, 695, 0, 375, 299, 0, 0, 0, + 676, 729, 683, 719, 671, 707, 631, 694, 741, 658, + 703, 742, 262, 207, 175, 311, 376, 237, 71, 0, + 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 700, 736, 655, 702, 219, + 260, 225, 218, 391, 747, 728, 705, 753, 616, 697, + 0, 619, 622, 749, 732, 650, 651, 0, 0, 0, + 0, 0, 0, 0, 675, 684, 716, 669, 0, 0, + 0, 0, 0, 0, 0, 0, 648, 0, 693, 0, + 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, + 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, + 300, 0, 721, 731, 670, 423, 735, 668, 667, 738, + 712, 628, 727, 661, 271, 626, 268, 171, 187, 0, + 659, 310, 349, 355, 726, 645, 654, 210, 652, 353, + 324, 408, 194, 235, 346, 329, 351, 692, 710, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 928, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 640, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 722, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 305, 191, 254, 373, 269, 278, 714, 752, + 323, 354, 200, 410, 374, 635, 639, 633, 634, 686, + 687, 636, 743, 744, 745, 718, 629, 0, 637, 638, + 0, 724, 733, 734, 691, 170, 184, 274, 748, 343, + 238, 436, 417, 413, 615, 632, 216, 643, 0, 0, + 656, 664, 665, 677, 679, 680, 681, 682, 690, 698, + 699, 701, 709, 711, 713, 715, 720, 730, 751, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 689, 696, 284, 232, 249, 259, 704, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 737, 723, 0, 0, 672, + 740, 642, 660, 750, 663, 666, 706, 621, 685, 314, + 657, 0, 646, 617, 653, 618, 644, 674, 223, 678, + 641, 725, 688, 739, 272, 0, 623, 647, 328, 662, + 176, 708, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 746, 276, 695, 0, + 375, 299, 0, 0, 0, 676, 729, 683, 719, 671, + 707, 631, 694, 741, 658, 703, 742, 262, 207, 175, + 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 700, 736, 655, 702, 219, 260, 225, 218, 391, 747, + 728, 705, 753, 616, 697, 0, 619, 622, 749, 732, + 650, 651, 0, 0, 0, 0, 0, 0, 0, 675, + 684, 716, 669, 0, 0, 0, 0, 0, 0, 0, + 0, 648, 0, 693, 0, 0, 0, 627, 620, 0, + 0, 0, 0, 673, 0, 0, 0, 630, 0, 649, + 717, 0, 614, 245, 624, 300, 0, 721, 731, 670, + 423, 735, 668, 667, 738, 712, 628, 727, 661, 271, + 626, 268, 171, 187, 0, 659, 310, 349, 355, 726, + 645, 654, 210, 652, 353, 324, 408, 194, 235, 346, + 329, 351, 692, 710, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 928, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 640, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 722, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 714, 752, 323, 354, 200, 410, 374, + 635, 639, 633, 634, 686, 687, 636, 743, 744, 745, + 718, 629, 0, 637, 638, 0, 724, 733, 734, 691, + 170, 184, 274, 748, 343, 238, 436, 417, 413, 615, + 632, 216, 643, 0, 0, 656, 664, 665, 677, 679, + 680, 681, 682, 690, 698, 699, 701, 709, 711, 713, + 715, 720, 730, 751, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 689, 696, 284, 232, 249, + 259, 704, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 737, 723, 0, 0, 672, 740, 642, 660, 750, 663, + 666, 706, 621, 685, 314, 657, 0, 646, 617, 653, + 618, 644, 674, 223, 678, 641, 725, 688, 739, 272, + 0, 623, 647, 328, 662, 176, 708, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 746, 276, 695, 0, 375, 299, 0, 0, 0, + 676, 729, 683, 719, 671, 707, 631, 694, 741, 658, + 703, 742, 262, 207, 175, 311, 376, 237, 0, 0, + 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 700, 736, 655, 702, 219, + 260, 225, 218, 391, 747, 728, 705, 753, 616, 697, + 0, 619, 622, 749, 732, 650, 651, 0, 0, 0, + 0, 0, 0, 0, 675, 684, 716, 669, 0, 0, + 0, 0, 0, 0, 0, 0, 648, 0, 693, 0, + 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, + 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, + 300, 0, 721, 731, 670, 423, 735, 668, 667, 738, + 712, 628, 727, 661, 271, 626, 268, 171, 187, 0, + 659, 310, 349, 355, 726, 645, 654, 210, 652, 353, + 324, 408, 194, 235, 346, 329, 351, 692, 710, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 625, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 640, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 722, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 613, 754, 607, 606, 269, 278, 714, 752, + 323, 354, 200, 410, 374, 635, 639, 633, 634, 686, + 687, 636, 743, 744, 745, 718, 629, 0, 637, 638, + 0, 724, 733, 734, 691, 170, 184, 274, 748, 343, + 238, 436, 417, 413, 615, 632, 216, 643, 0, 0, + 656, 664, 665, 677, 679, 680, 681, 682, 690, 698, + 699, 701, 709, 711, 713, 715, 720, 730, 751, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 689, 696, 284, 232, 249, 259, 704, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 737, 723, 0, 0, 672, + 740, 642, 660, 750, 663, 666, 706, 621, 685, 314, + 657, 0, 646, 617, 653, 618, 644, 674, 223, 678, + 641, 725, 688, 739, 272, 0, 623, 647, 328, 662, + 176, 708, 366, 209, 281, 279, 394, 233, 226, 222, + 208, 256, 287, 326, 384, 320, 746, 276, 695, 0, + 375, 299, 0, 0, 0, 676, 729, 683, 719, 671, + 707, 631, 694, 741, 658, 703, 742, 262, 207, 175, + 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 700, 736, 655, 702, 219, 260, 225, 218, 391, 747, + 728, 705, 753, 616, 697, 0, 619, 622, 749, 732, + 650, 651, 0, 0, 0, 0, 0, 0, 0, 675, + 684, 716, 669, 0, 0, 0, 0, 0, 0, 0, + 0, 648, 0, 693, 0, 0, 0, 627, 620, 0, + 0, 0, 0, 673, 0, 0, 0, 630, 0, 649, + 717, 0, 614, 245, 624, 300, 0, 721, 731, 670, + 423, 735, 668, 667, 738, 712, 628, 727, 661, 271, + 626, 268, 171, 187, 0, 659, 310, 349, 355, 726, + 645, 654, 210, 652, 353, 324, 408, 194, 235, 346, + 329, 351, 692, 710, 352, 277, 396, 341, 406, 424, + 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, + 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, + 275, 432, 186, 361, 202, 179, 383, 1096, 199, 364, + 0, 0, 0, 181, 402, 380, 294, 264, 265, 180, + 0, 345, 221, 241, 212, 313, 399, 400, 211, 437, + 190, 419, 183, 625, 418, 306, 395, 403, 295, 286, + 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, + 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, + 195, 196, 197, 640, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 722, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 613, 754, 607, + 606, 269, 278, 714, 752, 323, 354, 200, 410, 374, + 635, 639, 633, 634, 686, 687, 636, 743, 744, 745, + 718, 629, 0, 637, 638, 0, 724, 733, 734, 691, + 170, 184, 274, 748, 343, 238, 436, 417, 413, 615, + 632, 216, 643, 0, 0, 656, 664, 665, 677, 679, + 680, 681, 682, 690, 698, 699, 701, 709, 711, 713, + 715, 720, 730, 751, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 247, 405, 427, 0, 282, 689, 696, 284, 232, 249, + 259, 704, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, + 737, 723, 0, 0, 672, 740, 642, 660, 750, 663, + 666, 706, 621, 685, 314, 657, 0, 646, 617, 653, + 618, 644, 674, 223, 678, 641, 725, 688, 739, 272, + 0, 623, 647, 328, 662, 176, 708, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 746, 276, 695, 0, 375, 299, 0, 0, 0, + 676, 729, 683, 719, 671, 707, 631, 694, 741, 658, + 703, 742, 262, 207, 175, 311, 376, 237, 0, 0, + 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 700, 736, 655, 702, 219, + 260, 225, 218, 391, 747, 728, 705, 753, 616, 697, + 0, 619, 622, 749, 732, 650, 651, 0, 0, 0, + 0, 0, 0, 0, 675, 684, 716, 669, 0, 0, + 0, 0, 0, 0, 0, 0, 648, 0, 693, 0, + 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, + 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, + 300, 0, 721, 731, 670, 423, 735, 668, 667, 738, + 712, 628, 727, 661, 271, 626, 268, 171, 187, 0, + 659, 310, 349, 355, 726, 645, 654, 210, 652, 353, + 324, 408, 194, 235, 346, 329, 351, 692, 710, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 604, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 625, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 640, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 722, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 613, 754, 607, 606, 269, 278, 714, 752, + 323, 354, 200, 410, 374, 635, 639, 633, 634, 686, + 687, 636, 743, 744, 745, 718, 629, 0, 637, 638, + 0, 724, 733, 734, 691, 170, 184, 274, 748, 343, + 238, 436, 417, 413, 615, 632, 216, 643, 0, 0, + 656, 664, 665, 677, 679, 680, 681, 682, 690, 698, + 699, 701, 709, 711, 713, 715, 720, 730, 751, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 689, 696, 284, 232, 249, 259, 704, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 314, 0, 0, 1396, 0, + 504, 0, 0, 0, 223, 0, 503, 0, 0, 0, + 272, 0, 0, 1397, 328, 0, 176, 0, 366, 209, + 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, + 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, + 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, + 0, 0, 167, 168, 169, 525, 524, 527, 528, 529, + 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, + 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, + 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, - 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, - 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, - 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, - 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, - 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, - 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, - 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, - 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 0, 0, 0, 504, 0, 0, 0, - 223, 0, 503, 0, 0, 0, 272, 0, 0, 0, - 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, - 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, - 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, - 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, - 207, 175, 311, 376, 237, 71, 0, 581, 167, 168, - 169, 525, 524, 527, 528, 529, 530, 0, 0, 198, - 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, - 391, 0, 0, 0, 0, 0, 501, 518, 0, 546, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, - 516, 0, 0, 0, 0, 562, 0, 517, 0, 0, - 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, - 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, - 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, - 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, - 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, - 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, - 410, 374, 549, 560, 555, 556, 553, 554, 548, 552, - 551, 550, 563, 540, 541, 542, 543, 545, 0, 557, - 558, 544, 170, 184, 274, 0, 343, 238, 436, 417, - 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 515, 516, 594, 0, 0, 0, 562, + 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, + 0, 300, 0, 561, 0, 0, 423, 0, 0, 559, + 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, + 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, + 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, + 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, + 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, + 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, + 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, + 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, + 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, + 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, + 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, + 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, + 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, + 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, + 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, + 0, 323, 354, 200, 410, 374, 549, 560, 555, 556, + 553, 554, 548, 552, 551, 550, 563, 540, 541, 542, + 543, 545, 0, 557, 558, 544, 170, 184, 274, 0, + 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, - 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 314, 0, 0, 0, 0, 504, 0, 0, - 0, 223, 0, 503, 0, 0, 0, 272, 0, 0, - 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, - 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, - 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, - 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, - 168, 169, 525, 524, 527, 528, 529, 530, 0, 0, - 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, - 218, 391, 0, 0, 0, 0, 0, 501, 518, 0, - 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 515, 516, 594, 0, 0, 0, 562, 0, 517, 0, - 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, - 561, 0, 0, 423, 0, 0, 559, 0, 0, 0, - 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, - 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, - 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, - 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, - 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, - 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, - 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, - 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, - 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, - 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, - 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, - 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, - 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, - 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, - 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, - 200, 410, 374, 549, 560, 555, 556, 553, 554, 548, - 552, 551, 550, 563, 540, 541, 542, 543, 545, 0, - 557, 558, 544, 170, 184, 274, 0, 343, 238, 436, - 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, + 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, + 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, + 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, + 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, + 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, + 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, + 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, + 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, + 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, + 0, 504, 0, 0, 0, 223, 0, 503, 0, 0, + 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, + 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, + 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, + 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, + 0, 0, 1509, 0, 262, 207, 175, 311, 376, 237, + 71, 0, 0, 167, 168, 169, 525, 524, 527, 528, + 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, + 1510, 219, 260, 225, 218, 391, 0, 0, 0, 0, + 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 515, 516, 0, 0, 0, 0, + 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, + 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 245, 0, 300, 0, 561, 0, 0, 423, 0, 0, + 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, + 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, + 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, + 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, + 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, + 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, + 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, + 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, + 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, + 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, + 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, + 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, + 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, + 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, + 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, + 0, 0, 323, 354, 200, 410, 374, 549, 560, 555, + 556, 553, 554, 548, 552, 551, 550, 563, 540, 541, + 542, 543, 545, 0, 557, 558, 544, 170, 184, 274, + 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, - 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, - 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, - 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, - 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, - 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, - 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, - 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, - 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 0, 0, 0, 504, 0, - 0, 0, 223, 0, 503, 0, 0, 0, 272, 0, - 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, - 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, - 0, 262, 207, 175, 311, 376, 237, 71, 0, 0, - 167, 168, 169, 525, 1414, 527, 528, 529, 530, 0, - 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, - 225, 218, 391, 0, 0, 0, 0, 0, 501, 518, - 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 515, 516, 594, 0, 0, 0, 562, 0, 517, - 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, - 0, 561, 0, 0, 423, 0, 0, 559, 0, 0, - 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, - 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, - 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, - 354, 200, 410, 374, 549, 560, 555, 556, 553, 554, - 548, 552, 551, 550, 563, 540, 541, 542, 543, 545, - 0, 557, 558, 544, 170, 184, 274, 0, 343, 238, - 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, - 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, - 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, - 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, - 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, - 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, - 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, - 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, - 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 0, 0, 0, 504, - 0, 0, 0, 223, 0, 503, 0, 0, 0, 272, - 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, - 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, - 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, - 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, - 0, 0, 262, 207, 175, 311, 376, 237, 71, 0, - 0, 167, 168, 169, 525, 1411, 527, 528, 529, 530, - 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, - 260, 225, 218, 391, 0, 0, 0, 0, 0, 501, - 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, + 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, + 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, + 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, + 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, + 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, + 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, + 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, + 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, + 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, + 0, 0, 504, 0, 0, 0, 223, 0, 503, 0, + 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, + 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, + 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, + 237, 71, 0, 581, 167, 168, 169, 525, 524, 527, + 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, + 533, 0, 219, 260, 225, 218, 391, 0, 0, 0, + 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 515, 516, 0, 0, 0, + 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, + 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 245, 0, 300, 0, 561, 0, 0, 423, 0, + 0, 559, 0, 0, 0, 0, 0, 271, 0, 268, + 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, + 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, + 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 0, 0, 323, 354, 200, 410, 374, 549, 560, + 555, 556, 553, 554, 548, 552, 551, 550, 563, 540, + 541, 542, 543, 545, 0, 557, 558, 544, 170, 184, + 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 515, 516, 594, 0, 0, 0, 562, 0, - 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 300, 0, 561, 0, 0, 423, 0, 0, 559, 0, - 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, - 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, - 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, - 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, - 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, - 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, - 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, - 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, - 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, - 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, - 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, - 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, - 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, - 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, - 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, - 323, 354, 200, 410, 374, 549, 560, 555, 556, 553, - 554, 548, 552, 551, 550, 563, 540, 541, 542, 543, - 545, 0, 557, 558, 544, 170, 184, 274, 0, 343, - 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, - 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, - 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, - 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, - 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, - 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, - 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, - 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, - 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 574, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 504, 0, 0, 0, 223, 0, 503, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, @@ -2333,7 +2231,7 @@ var yyAct = [...]int{ 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 515, 516, 0, 0, + 0, 0, 0, 0, 0, 0, 515, 516, 594, 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, 423, @@ -2375,11 +2273,11 @@ var yyAct = [...]int{ 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, 525, - 524, 527, 528, 529, 530, 0, 0, 198, 526, 205, + 1414, 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 515, 516, 0, + 0, 0, 0, 0, 0, 0, 0, 515, 516, 594, 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, @@ -2414,25 +2312,25 @@ var yyAct = [...]int{ 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, - 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, + 314, 0, 0, 0, 0, 504, 0, 0, 0, 223, + 0, 503, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, - 525, 524, 527, 528, 529, 530, 0, 0, 198, 526, + 525, 1411, 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, 391, - 0, 0, 0, 0, 0, 0, 518, 0, 546, 0, + 0, 0, 0, 0, 0, 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, 516, - 0, 0, 0, 0, 562, 0, 517, 0, 0, 510, + 594, 0, 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, - 346, 329, 351, 2217, 0, 352, 277, 396, 341, 406, + 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, @@ -2460,162 +2358,25 @@ var yyAct = [...]int{ 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, - 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, - 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, - 226, 222, 208, 256, 287, 326, 384, 320, 547, 276, - 0, 0, 375, 299, 0, 0, 0, 0, 0, 538, - 539, 0, 0, 0, 0, 0, 0, 0, 0, 262, - 207, 175, 311, 376, 237, 71, 0, 581, 167, 168, - 169, 525, 524, 527, 528, 529, 530, 0, 0, 198, - 526, 205, 531, 532, 533, 0, 219, 260, 225, 218, - 391, 0, 0, 0, 0, 0, 0, 518, 0, 546, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, - 516, 0, 0, 0, 0, 562, 0, 517, 0, 0, - 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 245, 0, 300, 0, 561, - 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, - 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, - 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, - 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, - 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, - 410, 374, 549, 560, 555, 556, 553, 554, 548, 552, - 551, 550, 563, 540, 541, 542, 543, 545, 0, 557, - 558, 544, 170, 184, 274, 0, 343, 238, 436, 417, - 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, - 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, - 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, - 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 547, - 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, - 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, - 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, - 168, 169, 525, 524, 527, 528, 529, 530, 0, 0, - 198, 526, 205, 531, 532, 533, 0, 219, 260, 225, - 218, 391, 0, 0, 0, 0, 0, 0, 518, 0, - 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 515, 516, 0, 0, 0, 0, 562, 0, 517, 0, - 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, - 561, 0, 0, 423, 0, 0, 559, 0, 0, 0, - 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, - 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, - 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, - 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, - 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, - 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, - 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, - 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, - 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, - 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, - 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, - 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, - 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, - 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, - 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, - 200, 410, 374, 549, 560, 555, 556, 553, 554, 548, - 552, 551, 550, 563, 540, 541, 542, 543, 545, 0, - 557, 558, 544, 170, 184, 274, 0, 343, 238, 436, - 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, - 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, - 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, - 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, - 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, - 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, - 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, - 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, - 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, - 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, - 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, - 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 971, 970, 980, - 981, 973, 974, 975, 976, 977, 978, 979, 972, 0, - 0, 982, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, - 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, - 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, - 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, - 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, - 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, - 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, - 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, - 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, - 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, - 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, - 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, - 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, - 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, - 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, - 0, 0, 0, 223, 800, 0, 0, 0, 0, 272, + 220, 574, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 314, 0, 0, 0, 0, 504, + 0, 0, 0, 223, 0, 503, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, - 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, - 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 320, 547, 276, 0, 0, 375, 299, 0, 0, 0, + 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 71, 0, + 0, 167, 168, 169, 525, 524, 527, 528, 529, 530, + 0, 0, 198, 526, 205, 531, 532, 533, 0, 219, + 260, 225, 218, 391, 0, 0, 0, 0, 0, 501, + 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 515, 516, 0, 0, 0, 0, 562, 0, + 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 300, 0, 0, 0, 799, 423, 0, 0, 0, 0, - 0, 0, 796, 797, 271, 762, 268, 171, 187, 790, - 794, 310, 349, 355, 0, 0, 0, 210, 0, 353, + 300, 0, 561, 0, 0, 423, 0, 0, 559, 0, + 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, + 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, @@ -2629,9 +2390,9 @@ var yyAct = [...]int{ 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, - 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, + 323, 354, 200, 410, 374, 549, 560, 555, 556, 553, + 554, 548, 552, 551, 550, 563, 540, 541, 542, 543, + 545, 0, 557, 558, 544, 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, @@ -2644,22 +2405,22 @@ var yyAct = [...]int{ 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 314, 0, 0, 0, 1074, - 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, + 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, + 504, 0, 0, 0, 223, 0, 503, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, - 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, - 0, 0, 167, 168, 169, 0, 1076, 0, 0, 0, - 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, - 219, 260, 225, 218, 391, 0, 0, 960, 961, 959, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 962, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 384, 320, 547, 276, 0, 0, 375, 299, 0, 0, + 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, + 0, 0, 167, 168, 169, 525, 524, 527, 528, 529, + 530, 0, 0, 198, 526, 205, 531, 532, 533, 0, + 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, + 501, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 515, 516, 0, 0, 0, 0, 562, + 0, 517, 0, 0, 510, 511, 513, 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, - 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, + 0, 300, 0, 561, 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, @@ -2675,36 +2436,173 @@ var yyAct = [...]int{ 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, - 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, + 0, 323, 354, 200, 410, 374, 549, 560, 555, 556, + 553, 554, 548, 552, 551, 550, 563, 540, 541, 542, + 543, 545, 0, 557, 558, 544, 170, 184, 274, 0, + 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, + 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, + 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, + 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, + 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, + 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, + 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, + 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, + 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, + 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, + 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, + 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, + 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, + 326, 384, 320, 547, 276, 0, 0, 375, 299, 0, + 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, + 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, + 71, 0, 0, 167, 168, 169, 525, 524, 527, 528, + 529, 530, 0, 0, 198, 526, 205, 531, 532, 533, + 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, + 0, 0, 518, 0, 546, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 515, 516, 0, 0, 0, 0, + 562, 0, 517, 0, 0, 510, 511, 513, 512, 514, + 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 245, 0, 300, 0, 561, 0, 0, 423, 0, 0, + 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, + 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, + 0, 353, 324, 408, 194, 235, 346, 329, 351, 2218, + 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, + 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, + 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, + 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, + 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, + 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, + 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, + 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, + 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, + 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, + 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, + 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, + 0, 0, 323, 354, 200, 410, 374, 549, 560, 555, + 556, 553, 554, 548, 552, 551, 550, 563, 540, 541, + 542, 543, 545, 0, 557, 558, 544, 170, 184, 274, + 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, + 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, + 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, + 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, + 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, + 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, + 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, + 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, + 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, + 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, + 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, + 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 547, 276, 0, 0, 375, 299, + 0, 0, 0, 0, 0, 538, 539, 0, 0, 0, + 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, + 237, 71, 0, 581, 167, 168, 169, 525, 524, 527, + 528, 529, 530, 0, 0, 198, 526, 205, 531, 532, + 533, 0, 219, 260, 225, 218, 391, 0, 0, 0, + 0, 0, 0, 518, 0, 546, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 515, 516, 0, 0, 0, + 0, 562, 0, 517, 0, 0, 510, 511, 513, 512, + 514, 519, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 245, 0, 300, 0, 561, 0, 0, 423, 0, + 0, 559, 0, 0, 0, 0, 0, 271, 0, 268, + 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, + 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, + 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 0, 0, 323, 354, 200, 410, 374, 549, 560, + 555, 556, 553, 554, 548, 552, 551, 550, 563, 540, + 541, 542, 543, 545, 0, 557, 558, 544, 170, 184, + 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, - 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, + 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, + 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, + 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 547, 276, 0, 0, 375, + 299, 0, 0, 0, 0, 0, 538, 539, 0, 0, + 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, + 376, 237, 71, 0, 0, 167, 168, 169, 525, 524, + 527, 528, 529, 530, 0, 0, 198, 526, 205, 531, + 532, 533, 0, 219, 260, 225, 218, 391, 0, 0, + 0, 0, 0, 0, 518, 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, - 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, - 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, - 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, - 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, - 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, - 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, - 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, - 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, - 385, 386, 387, 389, 296, 220, 35, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, + 0, 0, 0, 0, 0, 0, 515, 516, 0, 0, + 0, 0, 562, 0, 517, 0, 0, 510, 511, 513, + 512, 514, 519, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 245, 0, 300, 0, 561, 0, 0, 423, + 0, 0, 559, 0, 0, 0, 0, 0, 271, 0, + 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, + 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, + 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 0, 0, 323, 354, 200, 410, 374, 549, + 560, 555, 556, 553, 554, 548, 552, 551, 550, 563, + 540, 541, 542, 543, 545, 0, 557, 558, 544, 170, + 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, - 311, 376, 237, 71, 0, 581, 167, 168, 169, 0, + 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 971, 970, 980, 981, 973, 974, 975, + 976, 977, 978, 979, 972, 0, 0, 982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, @@ -2738,14 +2636,14 @@ var yyAct = [...]int{ 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 0, 0, 1441, 0, 0, 0, 0, 223, - 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, + 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, + 800, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, - 0, 1443, 0, 0, 0, 0, 0, 0, 198, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2753,10 +2651,10 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, - 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, - 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, + 799, 423, 0, 0, 0, 0, 0, 0, 796, 797, + 271, 762, 268, 171, 187, 790, 794, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, - 346, 329, 351, 0, 1439, 352, 277, 396, 341, 406, + 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, @@ -2784,23 +2682,23 @@ var yyAct = [...]int{ 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, + 220, 314, 0, 0, 0, 1074, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 169, 0, 1076, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, - 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 391, 0, 0, 960, 961, 959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 756, 0, 0, 0, 0, 0, 0, 0, + 0, 962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, - 0, 271, 762, 268, 171, 187, 760, 0, 310, 349, + 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, @@ -2830,14 +2728,201 @@ var yyAct = [...]int{ 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 314, 0, 0, 0, 1441, 0, 0, 0, + 296, 220, 35, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, + 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, + 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, + 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, + 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, + 0, 581, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, + 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, + 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, + 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, + 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, + 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, + 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, + 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, + 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, + 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, + 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, + 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, + 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, + 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, + 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, + 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, + 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, + 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, + 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, + 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, + 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, + 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, + 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, + 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, + 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, + 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, + 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, + 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, + 1441, 0, 0, 0, 0, 223, 0, 0, 0, 0, + 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, + 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, + 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, + 0, 0, 0, 167, 168, 169, 0, 1443, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, + 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, + 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, + 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, + 1439, 352, 277, 396, 341, 406, 424, 425, 217, 304, + 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, + 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, + 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, + 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, + 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, + 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, + 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, + 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, + 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, + 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, + 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, + 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 184, 274, + 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, + 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, + 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, + 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, + 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, + 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, + 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, + 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, + 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, + 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, + 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, + 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, + 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, + 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 756, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, + 0, 0, 0, 0, 0, 0, 0, 271, 762, 268, + 171, 187, 760, 0, 310, 349, 355, 0, 0, 0, + 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, + 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, + 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, + 0, 0, 1441, 0, 0, 0, 0, 223, 0, 0, + 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, + 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, + 376, 237, 0, 0, 0, 167, 168, 169, 0, 1443, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, + 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, + 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, + 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, + 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 35, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 1443, 0, 0, 0, 0, 0, 0, + 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2876,8 +2961,145 @@ var yyAct = [...]int{ 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 35, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, + 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, + 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, + 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, + 167, 168, 169, 0, 0, 1462, 0, 0, 1463, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, + 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, + 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, + 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, + 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, + 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, + 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, + 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, + 0, 0, 0, 223, 0, 1107, 0, 0, 0, 272, + 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, + 0, 167, 168, 169, 0, 1106, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, + 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, + 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, + 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, + 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, + 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, + 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, + 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, + 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, + 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, + 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, + 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, + 0, 581, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, + 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, + 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, + 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, + 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, + 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, + 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, + 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, + 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, + 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, + 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, + 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, + 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, + 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, + 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, + 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, + 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, + 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, + 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, + 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, + 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, + 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, + 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, + 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, + 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, + 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, + 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, + 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, @@ -2930,8 +3152,8 @@ var yyAct = [...]int{ 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, - 237, 0, 0, 0, 167, 168, 169, 0, 0, 1462, - 0, 0, 1463, 0, 0, 198, 0, 205, 0, 0, + 237, 0, 0, 0, 167, 168, 169, 0, 1443, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2970,13 +3192,13 @@ var yyAct = [...]int{ 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, - 0, 0, 0, 0, 0, 0, 0, 223, 0, 1107, + 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 0, 0, 0, 167, 168, 169, 0, 1106, + 376, 237, 0, 0, 0, 167, 168, 169, 0, 1076, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3022,7 +3244,7 @@ var yyAct = [...]int{ 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, - 311, 376, 237, 0, 0, 581, 167, 168, 169, 0, + 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3049,7 +3271,7 @@ var yyAct = [...]int{ 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, + 170, 184, 274, 1346, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, @@ -3062,13 +3284,13 @@ var yyAct = [...]int{ 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, + 314, 0, 1229, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, - 175, 311, 376, 237, 71, 0, 0, 167, 168, 169, + 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3108,14 +3330,14 @@ var yyAct = [...]int{ 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, + 220, 314, 0, 1227, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, - 169, 0, 1443, 0, 0, 0, 0, 0, 0, 198, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3154,14 +3376,14 @@ var yyAct = [...]int{ 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, + 296, 220, 314, 0, 1225, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 1076, 0, 0, 0, 0, 0, 0, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3200,7 +3422,7 @@ var yyAct = [...]int{ 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, + 389, 296, 220, 314, 0, 1223, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, @@ -3233,7 +3455,7 @@ var yyAct = [...]int{ 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 274, 1346, 343, 238, + 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, @@ -3246,7 +3468,7 @@ var yyAct = [...]int{ 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 1229, 0, 0, 0, + 387, 389, 296, 220, 314, 0, 1221, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, @@ -3279,66 +3501,205 @@ var yyAct = [...]int{ 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, - 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, + 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 314, 0, 1217, 0, 0, + 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, + 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, + 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, + 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, + 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, + 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, + 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, + 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, + 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, + 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, + 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, + 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, + 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, + 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, + 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, + 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, + 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, + 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, + 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, + 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, + 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, + 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, + 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, + 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, + 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, + 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, + 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, + 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, + 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, + 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, + 385, 386, 387, 389, 296, 220, 314, 0, 1215, 0, + 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, + 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, + 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, + 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, + 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, + 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, + 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, + 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, + 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, + 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, + 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, + 181, 402, 380, 294, 264, 265, 180, 0, 345, 221, + 241, 212, 313, 399, 400, 211, 437, 190, 419, 183, + 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, + 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, + 303, 0, 177, 0, 377, 412, 438, 195, 196, 197, + 0, 230, 234, 240, 242, 0, 248, 255, 273, 317, + 338, 336, 342, 0, 390, 407, 415, 422, 428, 429, + 433, 430, 431, 434, 305, 191, 254, 373, 269, 278, + 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 184, 274, + 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 228, 236, 246, + 250, 253, 257, 258, 261, 266, 283, 288, 289, 290, + 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, + 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, + 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, + 378, 382, 397, 398, 409, 421, 426, 247, 405, 427, + 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, + 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, + 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, + 365, 385, 386, 387, 389, 296, 220, 314, 0, 1213, + 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, + 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, + 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, + 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, + 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, + 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, - 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, - 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, - 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, - 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, - 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, - 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, - 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, - 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 314, 0, 1227, 0, 0, - 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, - 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, - 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, - 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, - 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, - 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, - 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, + 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, + 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, + 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, + 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, + 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, + 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, + 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, + 0, 181, 402, 380, 294, 264, 265, 180, 0, 345, + 221, 241, 212, 313, 399, 400, 211, 437, 190, 419, + 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, + 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, + 301, 303, 0, 177, 0, 377, 412, 438, 195, 196, + 197, 0, 230, 234, 240, 242, 0, 248, 255, 273, + 317, 338, 336, 342, 0, 390, 407, 415, 422, 428, + 429, 433, 430, 431, 434, 305, 191, 254, 373, 269, + 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, - 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, - 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, - 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, - 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, - 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, - 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, - 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, - 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, - 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, - 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, - 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, - 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, - 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, - 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, - 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, - 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, - 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, + 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, - 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 228, 236, + 246, 250, 253, 257, 258, 261, 266, 283, 288, 289, + 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, + 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, + 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, + 370, 378, 382, 397, 398, 409, 421, 426, 247, 405, + 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, + 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, + 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, + 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, + 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, + 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, + 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, + 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, + 376, 237, 1188, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, - 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, - 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, - 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, - 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, - 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, - 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, - 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, - 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, - 385, 386, 387, 389, 296, 220, 314, 0, 1225, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, + 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, + 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, + 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, + 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, + 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, + 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, + 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, + 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, + 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, + 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, + 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, + 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, + 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, + 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, + 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, + 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, + 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, + 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, + 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, + 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, + 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, + 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, + 347, 201, 365, 385, 386, 387, 389, 296, 220, 1089, + 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, @@ -3384,8 +3745,8 @@ var yyAct = [...]int{ 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, - 365, 385, 386, 387, 389, 296, 220, 314, 0, 1223, - 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, + 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, + 0, 0, 0, 0, 0, 1080, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, @@ -3431,13 +3792,13 @@ var yyAct = [...]int{ 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, - 1221, 0, 0, 0, 0, 0, 0, 223, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, + 376, 237, 0, 0, 0, 167, 168, 169, 0, 936, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3477,7 +3838,7 @@ var yyAct = [...]int{ 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 1217, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, @@ -3491,7 +3852,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, + 0, 492, 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, @@ -3504,164 +3865,25 @@ var yyAct = [...]int{ 190, 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, 438, - 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, - 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, - 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, - 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, - 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, - 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, - 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, - 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, - 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, - 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, - 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, - 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, - 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 1215, 0, 0, 0, 0, 0, 0, 223, - 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, - 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, - 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, - 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, - 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, - 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, - 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, - 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, - 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, - 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, - 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, - 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, - 364, 0, 0, 0, 181, 402, 380, 294, 264, 265, - 180, 0, 345, 221, 241, 212, 313, 399, 400, 211, - 437, 190, 419, 183, 0, 418, 306, 395, 403, 295, - 286, 182, 401, 293, 285, 270, 231, 251, 339, 280, - 340, 252, 302, 301, 303, 0, 177, 0, 377, 412, - 438, 195, 196, 197, 0, 230, 234, 240, 242, 0, - 248, 255, 273, 317, 338, 336, 342, 0, 390, 407, - 415, 422, 428, 429, 433, 430, 431, 434, 305, 191, - 254, 373, 269, 278, 0, 0, 323, 354, 200, 410, - 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 274, 0, 343, 238, 436, 417, 413, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 228, 236, 246, 250, 253, 257, 258, 261, 266, - 283, 288, 289, 290, 291, 307, 308, 309, 312, 315, - 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, - 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, - 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, - 426, 247, 405, 427, 0, 282, 0, 0, 284, 232, - 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, - 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, - 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 1213, 0, 0, 0, 0, 0, 0, - 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, - 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, - 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, - 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, - 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, - 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, - 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, - 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, - 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, - 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, - 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, - 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, - 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, - 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, - 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, - 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, - 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 262, 207, 175, 311, 376, 237, 1188, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, - 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 195, 196, 197, 0, 230, 234, 240, 242, 0, 248, + 255, 273, 317, 338, 336, 342, 0, 390, 407, 415, + 422, 428, 429, 433, 430, 431, 434, 305, 191, 254, + 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, - 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, - 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, - 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, - 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, - 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, - 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, - 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, - 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, - 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, - 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, - 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, - 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, - 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, - 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, - 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, - 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, - 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, - 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, + 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, - 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, - 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, - 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, - 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, - 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, - 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, - 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, - 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 1089, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 228, 236, 246, 250, 253, 257, 258, 261, 266, 283, + 288, 289, 290, 291, 307, 308, 309, 312, 315, 316, + 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, + 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, + 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, + 491, 405, 427, 0, 282, 0, 0, 284, 232, 249, + 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, + 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, + 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, @@ -3676,7 +3898,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, + 0, 0, 0, 0, 245, 0, 300, 0, 0, 441, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, @@ -3708,257 +3930,73 @@ var yyAct = [...]int{ 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 0, 0, 0, 0, 0, 0, 1080, + 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, - 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, - 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, - 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, - 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, - 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, - 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, - 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, - 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, - 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, - 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, - 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, - 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, - 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, - 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, - 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, - 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, - 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, - 168, 169, 0, 936, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, - 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, - 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, - 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, - 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, - 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, - 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, - 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, - 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, - 404, 199, 364, 0, 0, 0, 181, 402, 380, 294, - 264, 265, 180, 0, 345, 221, 241, 212, 313, 399, - 400, 211, 437, 190, 419, 183, 0, 418, 306, 395, - 403, 295, 286, 182, 401, 293, 285, 270, 231, 251, - 339, 280, 340, 252, 302, 301, 303, 0, 177, 0, - 377, 412, 438, 195, 196, 197, 0, 230, 234, 240, - 242, 0, 248, 255, 273, 317, 338, 336, 342, 0, - 390, 407, 415, 422, 428, 429, 433, 430, 431, 434, - 305, 191, 254, 373, 269, 278, 0, 0, 323, 354, - 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 184, 274, 0, 343, 238, 436, - 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 228, 236, 246, 250, 253, 257, 258, - 261, 266, 283, 288, 289, 290, 291, 307, 308, 309, - 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, - 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, - 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, - 409, 421, 426, 247, 405, 427, 0, 282, 0, 0, - 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, - 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, - 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, - 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, - 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, - 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, - 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, - 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 492, 0, 245, 0, 300, - 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, - 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, - 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, - 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, - 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, - 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, - 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, - 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, - 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, - 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, - 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, - 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, - 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, - 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, - 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, - 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, - 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 274, 0, 343, 238, - 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, - 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, - 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, - 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, - 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, - 398, 409, 421, 426, 491, 405, 427, 0, 282, 0, - 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, - 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, - 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, - 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, - 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, - 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, - 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, - 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 300, 0, 0, 441, 0, 423, 0, 0, 0, 0, - 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, - 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, - 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, - 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, - 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, - 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, - 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, - 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, - 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, - 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, - 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, - 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, - 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, - 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, - 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, - 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, - 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, - 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, - 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, - 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, - 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, - 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, - 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, - 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, - 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, - 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, - 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, - 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, - 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, - 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, - 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, - 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, - 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, - 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, - 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, - 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, - 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, - 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, - 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, - 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, - 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, - 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, - 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, - 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, - 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, - 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, - 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, - 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, - 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, + 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, + 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, + 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, + 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, + 391, 0, 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, 184, 274, 0, - 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, - 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, - 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, - 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, - 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, - 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, - 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, - 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, - 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, - 385, 386, 387, 389, 296, 220, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, + 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, } var yyPact = [...]int{ - 3770, -1000, -347, 1608, -1000, -1000, -1000, -1000, -1000, -1000, + 2818, -1000, -348, 1590, -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, 1570, 1192, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 607, 1251, -1000, 1481, 252, -1000, 27786, 407, - -1000, 27325, 406, 72, 27786, -1000, 142, -1000, 113, 27786, - 122, 26864, -1000, -1000, -277, 12540, 1429, -3, -5, 27786, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1258, - 1527, 1533, 1568, 1045, 1658, -1000, 10683, 10683, 345, 345, - 345, 8839, -1000, -1000, 16702, 27786, 27786, 404, -1000, 1481, - -1000, -1000, 173, -1000, 257, 1195, -1000, 1193, -1000, 466, - 578, 285, 344, 333, 283, 273, 265, 264, 263, 261, - 256, 254, 297, -1000, 556, 556, -142, -143, 2494, 336, - 336, 336, 360, 1454, 1452, -1000, 529, -1000, 556, 556, - 136, 556, 556, 556, 556, 222, 218, 556, 556, 556, - 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, - 556, 556, 302, 1481, 213, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1520, 1155, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 577, 1201, -1000, 1457, 270, -1000, 28162, 393, + -1000, 27701, 392, 2270, 28162, -1000, 93, -1000, 77, 28162, + 82, 27240, -1000, -1000, -289, 12916, 1418, -9, -10, 28162, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1181, + 1505, 1515, 1542, 1048, 1674, -1000, 11059, 11059, 327, 327, + 327, 9215, -1000, -1000, 17078, 28162, 28162, 117, -1000, 1457, + -1000, -1000, 138, -1000, 246, 1153, -1000, 1151, -1000, 404, + 463, 243, 310, 309, 241, 240, 235, 233, 222, 221, + 220, 216, 255, -1000, 543, 543, -171, -185, 2495, 286, + 286, 286, 354, 1435, 1432, -1000, 501, -1000, 543, 543, + 136, 543, 543, 543, 543, 197, 196, 543, 543, 543, + 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, + 543, 543, 227, 1457, 179, -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, @@ -3985,26 +4023,26 @@ 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, -1000, -1000, 27786, - 130, 27786, -1000, 487, 27786, 694, 694, 40, 694, 694, - 694, 694, 132, 479, -6, -1000, 114, 194, 115, 210, - 643, 267, 59, -1000, -1000, 204, 643, 123, -1000, 694, - 6939, 6939, 6939, -1000, 1475, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 358, -1000, -1000, -1000, -1000, 27786, 26403, - 281, 598, -1000, -1000, -1000, 32, -1000, -1000, 1116, 763, - -1000, 12540, 2176, 1199, 1199, -1000, -1000, 464, -1000, -1000, - 13923, 13923, 13923, 13923, 13923, 13923, 13923, 13923, 13923, 13923, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 28162, + 162, 28162, -1000, 487, 28162, 662, 662, 4, 662, 662, + 662, 662, 94, 453, -17, -1000, 91, 189, 73, 174, + 639, 219, 57, -1000, -1000, 165, 639, 83, -1000, 662, + 7315, 7315, 7315, -1000, 1444, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 349, -1000, -1000, -1000, -1000, 28162, 26779, + 229, 597, -1000, -1000, -1000, 89, -1000, -1000, 1091, 612, + -1000, 12916, 2191, 1159, 1159, -1000, -1000, 410, -1000, -1000, + 14299, 14299, 14299, 14299, 14299, 14299, 14299, 14299, 14299, 14299, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1199, 486, -1000, 12079, 1199, 1199, - 1199, 1199, 1199, 1199, 1199, 1199, 12540, 1199, 1199, 1199, - 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, - 1199, 1199, 1199, 1199, -1000, -1000, -1000, 27786, -1000, 1199, - 138, 1570, -1000, 1192, -1000, -1000, -1000, 1476, 12540, 12540, - 1570, -1000, 1383, 10683, -1000, -1000, 1625, -1000, -1000, -1000, - -1000, -1000, 704, 1595, -1000, 15306, 485, 1590, 25942, -1000, - 19481, 25481, 1185, 8364, -27, -1000, -1000, -1000, 580, 18559, + -1000, -1000, -1000, -1000, 1159, 483, -1000, 12455, 1159, 1159, + 1159, 1159, 1159, 1159, 1159, 1159, 12916, 1159, 1159, 1159, + 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, + 1159, 1159, 1159, 1159, -1000, -1000, -1000, 28162, -1000, 1159, + 104, 1520, -1000, 1155, -1000, -1000, -1000, 1452, 12916, 12916, + 1520, -1000, 1349, 11059, -1000, -1000, 1636, -1000, -1000, -1000, + -1000, -1000, 658, 1574, -1000, 15682, 476, 1571, 26318, -1000, + 19857, 25857, 1150, 8740, -42, -1000, -1000, -1000, 592, 18935, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1475, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1444, -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, @@ -4017,195 +4055,195 @@ 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, 1131, 27786, -1000, -1000, 2830, - 917, -1000, 1249, -1000, 1126, -1000, 1220, 1266, 402, 917, - 395, 394, 392, -1000, -89, -1000, -1000, -1000, -1000, -1000, - 556, 556, 292, 252, 4402, -1000, -1000, -1000, 25013, 1248, - 917, -1000, 1235, -1000, 1495, 348, 527, 527, 917, -1000, - -1000, 27786, 917, 1494, 1492, 27786, 27786, -1000, 24552, -1000, - 24091, 23630, 864, 27786, 23169, 22708, 22247, 21786, 21325, -1000, - 1353, -1000, 1255, -1000, -1000, -1000, 27786, 27786, 27786, 64, - -1000, -1000, 27786, 917, -1000, -1000, 860, 859, 556, 556, - 856, 936, 933, 929, 556, 556, 853, 928, 1046, 232, - 838, 811, 803, 842, 926, 120, 797, 778, 799, 27786, - 1234, 27786, -1000, 175, 504, 277, 579, 1481, 1427, 1178, - 357, 399, 917, 346, 346, -1000, 7414, -1000, -1000, 921, - 12540, -1000, 650, 643, 643, -1000, -1000, -1000, -1000, -1000, - -1000, 694, 27786, 650, -1000, -1000, -1000, 643, 694, 27786, - 694, 694, 694, 694, 643, 643, 643, 694, 27786, 27786, - 27786, 27786, 27786, 27786, 27786, 27786, 27786, 6939, 6939, 6939, - 538, 694, -1000, 1307, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 121, -1000, -1000, -1000, -1000, -1000, 1608, -1000, - -1000, -1000, -101, 1177, 20864, -1000, -290, -291, -292, -293, - -1000, -1000, -1000, -294, -299, -1000, -1000, -1000, 12540, 12540, - 12540, 12540, 737, 530, 13923, 785, 573, 13923, 13923, 13923, - 13923, 13923, 13923, 13923, 13923, 13923, 13923, 13923, 13923, 13923, - 13923, 13923, 646, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 917, -1000, 1606, 968, 968, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 14384, 9300, 7414, 1045, 1108, - 1570, 10683, 10683, 12540, 12540, 11605, 11144, 10683, 1455, 603, - 763, 27786, -1000, 949, -1000, -1000, 13462, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 27786, - 27786, 10683, 10683, 10683, 10683, 10683, -1000, 1175, -1000, -172, - 16241, 12540, 919, 1533, 1045, 1625, 1506, 1600, 533, 980, - 1174, -1000, 770, 1533, 18098, 1225, -1000, 1625, -1000, -1000, - -1000, 27786, -1000, -1000, 20403, -1000, -1000, 6464, 27786, 250, - 27786, -1000, 1203, 1283, -1000, -1000, -1000, 1519, 17637, 27786, - 1128, 1044, -1000, -1000, 476, 7889, -27, -1000, 7889, 1158, - -1000, -29, -39, 9761, 491, -1000, -1000, -1000, 2494, 14845, - 1038, 1436, 46, -1000, -1000, -1000, 1220, -1000, 1220, 1220, - 1220, 1220, 64, 64, 64, 64, -1000, -1000, -1000, -1000, - -1000, 1232, 1231, -1000, 1220, 1220, 1220, 1220, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1069, 28162, -1000, -1000, 3741, + 913, -1000, 1200, -1000, 1067, -1000, 1169, 1211, 389, 913, + 383, 380, 379, -1000, -113, -1000, -1000, -1000, -1000, -1000, + 543, 543, 253, 270, 4282, -1000, -1000, -1000, 25389, 1199, + 913, -1000, 1197, -1000, 1478, 311, 504, 504, 913, -1000, + -1000, 28162, 913, 1476, 1471, 28162, 28162, -1000, 24928, -1000, + 24467, 24006, 840, 28162, 23545, 23084, 22623, 22162, 21701, -1000, + 1300, -1000, 1173, -1000, -1000, -1000, 28162, 28162, 28162, 19, + -1000, -1000, 28162, 913, -1000, -1000, 836, 833, 543, 543, + 816, 944, 933, 926, 543, 543, 801, 925, 998, 140, + 796, 785, 783, 873, 923, 107, 859, 853, 778, 28162, + 1193, 28162, -1000, 164, 512, 238, 587, 1457, 1414, 1145, + 348, 386, 913, 302, 302, -1000, 7790, -1000, -1000, 920, + 12916, -1000, 646, 639, 639, -1000, -1000, -1000, -1000, -1000, + -1000, 662, 28162, 646, -1000, -1000, -1000, 639, 662, 28162, + 662, 662, 662, 662, 639, 639, 639, 662, 28162, 28162, + 28162, 28162, 28162, 28162, 28162, 28162, 28162, 7315, 7315, 7315, + 529, 662, -1000, 1271, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 80, -1000, -1000, -1000, -1000, -1000, 1590, -1000, + -1000, -1000, -118, 1134, 21240, -1000, -293, -294, -295, -296, + -1000, -1000, -1000, -297, -300, -1000, -1000, -1000, 12916, 12916, + 12916, 12916, 854, 535, 14299, 748, 590, 14299, 14299, 14299, + 14299, 14299, 14299, 14299, 14299, 14299, 14299, 14299, 14299, 14299, + 14299, 14299, 567, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 913, -1000, 1587, 954, 954, 469, 469, 469, 469, + 469, 469, 469, 469, 469, 14760, 9676, 7790, 1048, 1059, + 1520, 11059, 11059, 12916, 12916, 11981, 11520, 11059, 1446, 621, + 612, 28162, -1000, 894, -1000, -1000, 13838, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 28162, + 28162, 11059, 11059, 11059, 11059, 11059, -1000, 1133, -1000, -175, + 16617, 12916, 919, 1515, 1048, 1636, 1485, 1582, 514, 885, + 1131, -1000, 741, 1515, 18474, 1094, -1000, 1636, -1000, -1000, + -1000, 28162, -1000, -1000, 20779, -1000, -1000, 6840, 28162, 212, + 28162, -1000, 1107, 1276, -1000, -1000, -1000, 1501, 18013, 28162, + 1152, 1079, -1000, -1000, 474, 8265, -42, -1000, 8265, 1100, + -1000, -49, -47, 10137, 450, -1000, -1000, -1000, 2495, 15221, + 997, 1419, 22, -1000, -1000, -1000, 1169, -1000, 1169, 1169, + 1169, 1169, 19, 19, 19, 19, -1000, -1000, -1000, -1000, + -1000, 1191, 1188, -1000, 1169, 1169, 1169, 1169, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1230, 1230, 1230, 1221, 1221, - 331, -1000, 12540, 140, 27786, 1503, 798, 175, 351, 1287, - 917, 917, 917, 351, -1000, 1031, 1026, -1000, 1172, -1000, - -1000, 1566, -1000, -1000, 608, 670, 668, 554, 27786, 149, - 241, -1000, 323, -1000, 27786, 917, 1491, 527, 917, -1000, - 917, -1000, -1000, -1000, -1000, 472, -1000, -1000, 917, 1166, - -1000, 1151, 690, 656, 689, 640, 1166, -1000, -1000, -115, - 1166, -1000, 1166, -1000, 1166, -1000, 1166, -1000, 1166, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 549, 27786, 149, - 646, -1000, 355, -1000, -1000, 646, 646, -1000, -1000, -1000, - -1000, 918, 910, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1186, 1186, 1186, 1174, 1174, + 281, -1000, 12916, 135, 28162, 1484, 770, 164, 324, 1233, + 913, 913, 913, 324, -1000, 980, 932, -1000, 1116, -1000, + -1000, 1538, -1000, -1000, 571, 666, 664, 467, 28162, 115, + 211, -1000, 315, -1000, 28162, 913, 1470, 504, 913, -1000, + 913, -1000, -1000, -1000, -1000, 452, -1000, -1000, 913, 1113, + -1000, 1097, 724, 657, 680, 654, 1113, -1000, -1000, -136, + 1113, -1000, 1113, -1000, 1113, -1000, 1113, -1000, 1113, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 532, 28162, 115, + 567, -1000, 336, -1000, -1000, 567, 567, -1000, -1000, -1000, + -1000, 918, 917, -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, -340, - 27786, -1000, 180, 577, 229, 287, 255, 27786, 164, 1525, - 182, 217, 27786, 27786, 346, 1306, 27786, 1513, 27786, -1000, - -1000, -1000, -1000, 763, 27786, -1000, -1000, 694, 694, -1000, - -1000, 27786, 694, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 694, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 908, -1000, 27786, 27786, - -1000, -1000, -1000, -1000, -1000, 91, -46, 192, -1000, -1000, - -1000, -1000, 1530, -1000, 763, 530, 633, 630, -1000, -1000, - 765, -1000, -1000, 2030, -1000, -1000, -1000, -1000, 785, 13923, - 13923, 13923, 1186, 2030, 2438, 2499, 2109, 498, 714, 714, - 510, 510, 510, 510, 510, 905, 905, -1000, -1000, -1000, - -1000, 949, -1000, -1000, -1000, 949, 10683, 10683, 1165, 1199, - 460, -1000, 1258, -1000, -1000, 1533, 1078, 1078, 878, 909, - 610, 1588, 1078, 600, 1583, 1078, 1078, 10683, -1000, -1000, - 649, -1000, 12540, 949, -1000, 1259, 1161, 1159, 1078, 949, - 949, 1078, 1078, 27786, -1000, -276, -1000, -64, 477, 1199, - -1000, 19942, -1000, -1000, 949, 1116, -1000, 1476, -1000, -1000, - 1425, -1000, 1379, 12540, 12540, 12540, -1000, -1000, -1000, 1476, - 1532, -1000, 1406, 1401, 1580, 10683, 19481, 1625, -1000, -1000, - -1000, 457, 1580, 1201, 1199, -1000, 27786, 19481, 19481, 19481, - 19481, 19481, -1000, 1370, 1368, -1000, 1362, 1344, 1320, 27786, - -1000, 1106, 1045, 17637, 250, 1137, 19481, 27786, -1000, -1000, - 19481, 27786, 5989, -1000, 1158, -27, -68, -1000, -1000, -1000, - -1000, 763, -1000, 881, -1000, 2254, -1000, 334, -1000, -1000, - -1000, -1000, 750, 1517, 1433, 36, -1000, -1000, 64, 64, - -1000, -1000, 491, 756, 491, 491, 491, 907, 907, -1000, - -1000, -1000, -1000, -1000, 795, -1000, -1000, -1000, 757, -1000, - -1000, 639, 1328, 140, -1000, -1000, 556, 898, 1438, 27786, - -1000, -1000, 1003, 180, 27786, 617, 1305, -1000, 1287, 1287, - 1287, 27786, -1000, -1000, -1000, -1000, 3581, 27786, 1102, -1000, - 143, 27786, 993, 27786, -1000, 1096, 1228, -1000, 917, -1000, - -1000, 7414, -1000, 27786, 1199, -1000, -1000, -1000, -1000, 397, - 1480, 1479, 149, 143, 491, 917, -1000, -1000, -1000, -1000, - -1000, -337, 1090, 385, 162, 184, 27786, 27786, 27786, 27786, - 27786, 441, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 215, - 354, -1000, 27786, 27786, 448, -1000, -1000, -1000, 643, -1000, - -1000, 643, -1000, -1000, -1000, -1000, -1000, -1000, 1473, -52, - -313, -1000, -310, -1000, -1000, -1000, -1000, 1186, 2030, 2423, - -1000, 13923, 13923, -1000, -1000, 1078, 1078, 10683, 7414, 1570, - 1476, -1000, -1000, 484, 646, 484, 13923, 13923, -1000, 13923, - 13923, -1000, -107, 1154, 550, -1000, 12540, 830, -1000, -1000, - 13923, 13923, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 391, 390, 388, 27786, -1000, -1000, -1000, 849, 897, - 1377, 763, 763, -1000, -1000, 27786, -1000, -1000, -1000, -1000, - 1577, 12540, -1000, 1156, -1000, 5514, 1533, 1300, 27786, 1199, - 1608, 15780, 27786, 1147, -1000, 557, 1283, 1281, 1299, 1378, - -1000, -1000, -1000, -1000, 1345, -1000, 1319, -1000, -1000, -1000, - -1000, -1000, 1045, 1580, 19481, 1072, -1000, 1072, -1000, 455, - -1000, -1000, -1000, -67, -47, -1000, -1000, -1000, 2494, -1000, - -1000, -1000, 687, 13923, 1599, -1000, 894, -1000, 1487, 1486, - -1000, 1227, -1000, -1000, -1000, 491, 491, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1074, -1000, 1069, 1149, 1058, 88, - -1000, 1263, 1468, 556, 556, -1000, 735, -1000, 917, -1000, - -1000, 378, -1000, 1511, 27786, 1298, 1297, 1294, -1000, 1565, - 1136, -1000, 27786, -1000, -1000, 27786, -1000, -1000, 1400, 140, - 27786, -1000, -1000, -1000, 241, 27786, -1000, 968, 143, -1000, - -1000, -1000, -1000, -1000, -1000, 27786, 176, -1000, 1223, 940, - -1000, 1271, -1000, -1000, -1000, -1000, 135, 225, -1000, 27786, - 446, 1328, 27786, -1000, -1000, -1000, 694, 694, -1000, 1467, - -1000, 917, -1000, 13923, 2030, 2030, -1000, -1000, 949, -1000, - 1533, -1000, 949, 1220, 1220, -1000, 1220, 1221, -1000, 1220, - 104, 1220, 102, 949, 949, 2379, 2325, 2309, 1890, 1199, - -102, -1000, 763, 12540, 1875, 1633, 1199, 1199, 1199, 1022, - 882, 64, -1000, -1000, -1000, 1573, 1564, 763, -1000, -1000, - -1000, 1499, 1152, 1027, -1000, -1000, 10222, 1054, 1399, 452, - 1022, 1570, 27786, 12540, -1000, -1000, 12540, 1208, -1000, 12540, - -1000, -1000, -1000, 1570, 1570, 1072, -1000, -1000, 456, -1000, - -1000, -1000, -1000, -1000, 2030, -85, -1000, -1000, -1000, 13923, - -1000, -1000, 64, 880, 64, 732, -1000, 722, -1000, -1000, - -204, -1000, -1000, 1173, 1313, -1000, -1000, 27786, -1000, -1000, - 27786, 27786, 27786, 27786, 27786, -1000, -1000, 238, -1000, 1019, - 1016, -1000, -145, -1000, -1000, 1206, -1000, -1000, -1000, 982, - -1000, -117, 917, 27786, 27786, 27786, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 2030, -1000, 1476, -1000, -1000, 236, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 13923, 13923, - 13923, 13923, 13923, 1533, 874, 763, 13923, 13923, 19020, 27786, - 27786, 17163, 64, 51, -1000, 12540, 12540, 1483, -1000, 1199, - -1000, 1188, 27786, 1199, 27786, -1000, 1533, -1000, 763, 763, - 27786, 763, 1533, -1000, -1000, 1282, 491, -1000, 491, 978, - 954, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1206, - -1000, -1000, -1000, 1136, -1000, 233, 311, -1000, 241, -1000, - -150, -152, 1516, 27786, -1000, -1000, 7414, -1000, -1000, 1200, - 1285, -1000, -1000, -1000, -1000, 1259, 1259, 1259, 1259, 174, - 949, -1000, 1259, 1259, 1013, -1000, 1013, 1013, 477, -255, - -1000, 1426, 1405, 763, 1116, 1598, -1000, 1199, 1608, 430, - 1027, -1000, -1000, 999, -1000, -1000, -1000, -1000, -1000, -1000, - 1507, 1199, 27786, -1000, -1000, -1000, 1192, 989, 1051, -1000, - 555, 27786, 27786, -1000, -1000, -1000, -1000, 949, 170, -124, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 51, 303, -1000, - 1415, 1405, -1000, 1563, 1420, 1560, -1000, 27786, 1027, 27786, - -1000, 731, 1192, 13001, 1187, 219, -1000, 7414, 5039, 985, - -1000, -1000, 1376, -111, -137, 1412, 1414, 1414, 1415, -1000, - 1559, 1558, -1000, 873, 1540, 871, 969, -1000, -1000, -1000, - 683, 870, -1000, -1000, -1000, 219, 1259, 949, 27786, -1000, - -43, -1000, -1000, -1000, -1000, -1000, 1271, -1000, 1375, -1000, - 1410, 784, -1000, -1000, -1000, -1000, 867, 866, -1000, 715, - -1000, -1000, -1000, -1000, -1000, -1000, 952, 322, -1000, -1000, - -117, -122, -1000, 729, -1000, -1000, -1000, -1000, -1000, 1291, - 187, -1000, -132, -1000, -1000, 1289, -1000, 1587, -1000, -138, - -1000, 1589, 470, 470, -1000, -1000, -1000, -1000, 318, 771, - -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -341, + 28162, -1000, 152, 564, 202, 242, 198, 28162, 114, 1511, + 177, 194, 28162, 28162, 302, 1262, 28162, 1495, 28162, -1000, + -1000, -1000, -1000, 612, 28162, -1000, -1000, 662, 662, -1000, + -1000, 28162, 662, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 662, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 904, -1000, 28162, 28162, + -1000, -1000, -1000, -1000, -1000, 29, -66, 192, -1000, -1000, + -1000, -1000, 1509, -1000, 612, 535, 734, 629, -1000, -1000, + 780, -1000, -1000, 2972, -1000, -1000, -1000, -1000, 748, 14299, + 14299, 14299, 1182, 2972, 2951, 1508, 1545, 469, 640, 640, + 500, 500, 500, 500, 500, 889, 889, -1000, -1000, -1000, + -1000, 894, -1000, -1000, -1000, 894, 11059, 11059, 1110, 1159, + 441, -1000, 1181, -1000, -1000, 1515, 1042, 1042, 746, 817, + 613, 1569, 1042, 562, 1567, 1042, 1042, 11059, -1000, -1000, + 632, -1000, 12916, 894, -1000, 1218, 1106, 1101, 1042, 894, + 894, 1042, 1042, 28162, -1000, -285, -1000, -88, 443, 1159, + -1000, 20318, -1000, -1000, 894, 1091, -1000, 1452, -1000, -1000, + 1415, -1000, 1319, 12916, 12916, 12916, -1000, -1000, -1000, 1452, + 1519, -1000, 1376, 1375, 1555, 11059, 19857, 1636, -1000, -1000, + -1000, 439, 1555, 1136, 1159, -1000, 28162, 19857, 19857, 19857, + 19857, 19857, -1000, 1306, 1305, -1000, 1318, 1315, 1360, 28162, + -1000, 1056, 1048, 18013, 212, 1090, 19857, 28162, -1000, -1000, + 19857, 28162, 6365, -1000, 1100, -42, -55, -1000, -1000, -1000, + -1000, 612, -1000, 890, -1000, 237, -1000, 318, -1000, -1000, + -1000, -1000, 663, 1500, 1412, 18, -1000, -1000, 19, 19, + -1000, -1000, 450, 707, 450, 450, 450, 900, 900, -1000, + -1000, -1000, -1000, -1000, 765, -1000, -1000, -1000, 754, -1000, + -1000, 715, 1257, 135, -1000, -1000, 543, 899, 1427, 28162, + -1000, -1000, 988, 152, 28162, 645, 1260, -1000, 1233, 1233, + 1233, 28162, -1000, -1000, -1000, -1000, 3803, 28162, 1050, -1000, + 113, 28162, 986, 28162, -1000, 1047, 1179, -1000, 913, -1000, + -1000, 7790, -1000, 28162, 1159, -1000, -1000, -1000, -1000, 385, + 1455, 1447, 115, 113, 450, 913, -1000, -1000, -1000, -1000, + -1000, -344, 1045, 361, 137, 158, 28162, 28162, 28162, 28162, + 28162, 462, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 185, + 334, -1000, 28162, 28162, 376, -1000, -1000, -1000, 639, -1000, + -1000, 639, -1000, -1000, -1000, -1000, -1000, -1000, 1442, -77, + -316, -1000, -312, -1000, -1000, -1000, -1000, 1182, 2972, 2780, + -1000, 14299, 14299, -1000, -1000, 1042, 1042, 11059, 7790, 1520, + 1452, -1000, -1000, 375, 567, 375, 14299, 14299, -1000, 14299, + 14299, -1000, -126, 1084, 568, -1000, 12916, 892, -1000, -1000, + 14299, 14299, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 378, 377, 365, 28162, -1000, -1000, -1000, 782, 897, + 1343, 612, 612, -1000, -1000, 28162, -1000, -1000, -1000, -1000, + 1550, 12916, -1000, 1098, -1000, 5890, 1515, 1259, 28162, 1159, + 1590, 16156, 28162, 1149, -1000, 546, 1276, 1232, 1256, 1378, + -1000, -1000, -1000, -1000, 1285, -1000, 1284, -1000, -1000, -1000, + -1000, -1000, 1048, 1555, 19857, 1065, -1000, 1065, -1000, 431, + -1000, -1000, -1000, -82, -94, -1000, -1000, -1000, 2495, -1000, + -1000, -1000, 701, 14299, 1580, -1000, 896, -1000, 1466, 1462, + -1000, 1178, -1000, -1000, -1000, 450, 450, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 1038, -1000, 1036, 1096, 1034, 47, + -1000, 1172, 1441, 543, 543, -1000, 714, -1000, 913, -1000, + -1000, 357, -1000, 1489, 28162, 1253, 1252, 1238, -1000, 1530, + 1095, -1000, 28162, -1000, -1000, 28162, -1000, -1000, 1368, 135, + 28162, -1000, -1000, -1000, 211, 28162, -1000, 954, 113, -1000, + -1000, -1000, -1000, -1000, -1000, 28162, 145, -1000, 1175, 856, + -1000, 1189, -1000, -1000, -1000, -1000, 106, 200, -1000, 28162, + 338, 1257, 28162, -1000, -1000, -1000, 662, 662, -1000, 1438, + -1000, 913, -1000, 14299, 2972, 2972, -1000, -1000, 894, -1000, + 1515, -1000, 894, 1169, 1169, -1000, 1169, 1174, -1000, 1169, + 70, 1169, 69, 894, 894, 2698, 2508, 2233, 2145, 1159, + -120, -1000, 612, 12916, 2625, 2602, 1159, 1159, 1159, 1029, + 882, 19, -1000, -1000, -1000, 1548, 1529, 612, -1000, -1000, + -1000, 1448, 1020, 1052, -1000, -1000, 10598, 1031, 1352, 429, + 1029, 1520, 28162, 12916, -1000, -1000, 12916, 1162, -1000, 12916, + -1000, -1000, -1000, 1520, 1520, 1065, -1000, -1000, 478, -1000, + -1000, -1000, -1000, -1000, 2972, -83, -1000, -1000, -1000, 14299, + -1000, -1000, 19, 881, 19, 713, -1000, 711, -1000, -1000, + -228, -1000, -1000, 1168, 1255, -1000, -1000, 28162, -1000, -1000, + 28162, 28162, 28162, 28162, 28162, -1000, -1000, 208, -1000, 1027, + 1018, -1000, -180, -1000, -1000, 1161, -1000, -1000, -1000, 973, + -1000, -137, 913, 28162, 28162, 28162, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 2972, -1000, 1452, -1000, -1000, 252, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 14299, 14299, + 14299, 14299, 14299, 1515, 880, 612, 14299, 14299, 19396, 28162, + 28162, 17539, 19, 7, -1000, 12916, 12916, 1459, -1000, 1159, + -1000, 1103, 28162, 1159, 28162, -1000, 1515, -1000, 612, 612, + 28162, 612, 1515, -1000, -1000, 1279, 450, -1000, 450, 970, + 950, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1161, + -1000, -1000, -1000, 1095, -1000, 206, 254, -1000, 211, -1000, + -187, -194, 1499, 28162, -1000, -1000, 7790, -1000, -1000, 1160, + 1228, -1000, -1000, -1000, -1000, 1218, 1218, 1218, 1218, 218, + 894, -1000, 1218, 1218, 1013, -1000, 1013, 1013, 443, -280, + -1000, 1396, 1383, 612, 1091, 1578, -1000, 1159, 1590, 418, + 1052, -1000, -1000, 992, -1000, -1000, -1000, -1000, -1000, -1000, + 1498, 1159, -1000, 28162, -1000, -1000, -1000, 1155, 979, 1061, + -1000, 539, 28162, 28162, -1000, -1000, -1000, -1000, 894, 150, + -147, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 7, 266, + -1000, 1409, 1383, -1000, 1527, 1392, 1526, -1000, 28162, 1052, + 28162, -1000, 676, 1155, 13377, 1157, 203, -1000, 7790, 5415, + 976, -1000, -1000, 1321, -134, -152, 1385, 1388, 1388, 1409, + -1000, 1525, 1523, -1000, 875, 1521, 869, 898, -1000, -1000, + -1000, 675, 867, -1000, -1000, -1000, 203, 1218, 894, 28162, + -1000, -59, -1000, -1000, -1000, -1000, -1000, 1189, -1000, 1312, + -1000, 1382, 761, -1000, -1000, -1000, -1000, 857, 781, -1000, + 749, -1000, -1000, -1000, -1000, -1000, -1000, 965, 272, -1000, + -1000, -137, -140, -1000, 738, -1000, -1000, -1000, -1000, -1000, + 1236, 160, -1000, -148, -1000, -1000, 1235, -1000, 1559, -1000, + -153, -1000, 1577, 426, 426, -1000, -1000, -1000, -1000, 277, + 723, -1000, -1000, -1000, -1000, } var yyPgo = [...]int{ - 0, 1927, 1924, 13, 86, 88, 1923, 1922, 1921, 1919, - 136, 134, 132, 1914, 1913, 1909, 1904, 1902, 1900, 1899, - 1898, 1896, 1895, 1893, 1892, 67, 123, 42, 45, 138, - 1891, 1890, 32, 1889, 1888, 1887, 128, 126, 577, 1883, - 125, 1882, 1881, 1879, 1878, 1877, 1875, 1874, 1873, 1869, - 1867, 1866, 1865, 1862, 1861, 227, 1859, 1858, 4, 1857, - 36, 1856, 1855, 1853, 1851, 1849, 94, 1848, 1842, 1841, - 120, 1840, 1839, 56, 206, 51, 75, 1838, 1837, 93, - 129, 1835, 59, 105, 1833, 1832, 946, 1830, 46, 81, - 76, 1829, 50, 1828, 1826, 57, 1825, 1822, 1819, 79, - 1818, 1816, 65, 1814, 72, 84, 18, 44, 1813, 1812, - 1811, 1810, 33, 2545, 1808, 1807, 30, 1804, 1803, 140, - 1799, 90, 25, 1797, 26, 20, 21, 1796, 89, 1795, - 8, 58, 37, 1794, 83, 1793, 1792, 1791, 1786, 43, - 1785, 82, 106, 22, 1784, 1783, 1782, 7, 16, 1779, - 1764, 1762, 1759, 1757, 1754, 11, 1753, 5, 1752, 35, - 1751, 23, 19, 78, 119, 31, 12, 1748, 118, 1747, - 29, 112, 73, 108, 1746, 1745, 1744, 923, 149, 1743, - 1742, 223, 1740, 110, 104, 1739, 176, 1738, 1734, 63, - 1316, 1668, 9, 122, 1731, 1730, 2782, 74, 80, 27, - 1725, 68, 1723, 1718, 1715, 139, 113, 61, 903, 53, - 1709, 1708, 1704, 1703, 1702, 1701, 1700, 47, 24, 34, - 109, 28, 1697, 1696, 1694, 66, 41, 1693, 116, 115, - 69, 98, 1692, 121, 103, 64, 1681, 39, 1677, 1676, - 1674, 1673, 48, 1672, 1671, 1670, 1667, 111, 100, 71, - 38, 1665, 40, 87, 99, 107, 1663, 15, 124, 6, - 1660, 3, 0, 1659, 10, 130, 175, 102, 1654, 1642, - 1, 1640, 2, 1638, 1637, 85, 1631, 1629, 1628, 17, - 1622, 1616, 2891, 219, 114, 1614, 131, + 0, 1883, 1881, 12, 89, 86, 1880, 1879, 1878, 1877, + 129, 128, 127, 1875, 1873, 1871, 1870, 1869, 1865, 1864, + 1862, 1861, 1858, 1857, 1856, 63, 138, 37, 43, 139, + 1855, 1853, 28, 1852, 1851, 1850, 123, 120, 562, 1849, + 125, 1847, 1842, 1841, 1839, 1838, 1837, 1835, 1834, 1833, + 1832, 1830, 1829, 1828, 1827, 221, 1826, 1825, 4, 1824, + 34, 1822, 1821, 1819, 1818, 1817, 90, 1816, 1814, 1813, + 116, 1811, 1810, 56, 214, 50, 87, 1806, 1805, 80, + 131, 1802, 64, 105, 1801, 1797, 590, 1795, 44, 104, + 94, 1794, 41, 1790, 1789, 57, 1788, 1783, 1782, 77, + 1779, 1778, 3269, 1777, 75, 82, 16, 42, 1775, 1774, + 1773, 1772, 29, 421, 1771, 1770, 30, 1768, 1767, 133, + 1766, 91, 22, 1765, 20, 18, 23, 1764, 93, 1763, + 40, 58, 35, 1762, 83, 1761, 1760, 1758, 1757, 31, + 1752, 81, 111, 53, 1751, 1750, 1749, 7, 14, 1747, + 1746, 1745, 1743, 1742, 1741, 6, 1739, 5, 1734, 48, + 1731, 17, 24, 76, 79, 27, 15, 1730, 112, 1729, + 26, 117, 74, 115, 1728, 1727, 1725, 835, 146, 1724, + 1722, 59, 1721, 110, 98, 1717, 167, 1713, 1712, 72, + 1314, 1433, 9, 113, 1709, 1708, 2638, 61, 78, 25, + 1706, 68, 1704, 1703, 1697, 141, 119, 45, 810, 47, + 1693, 1691, 1677, 1676, 1674, 1672, 1671, 85, 32, 21, + 121, 33, 1670, 1668, 1667, 71, 36, 1666, 114, 106, + 73, 108, 1665, 118, 103, 67, 1663, 39, 1662, 1660, + 1659, 1654, 51, 1641, 1638, 1631, 1630, 102, 100, 69, + 46, 1629, 38, 66, 107, 109, 1627, 19, 124, 11, + 1625, 3, 0, 1624, 8, 130, 164, 99, 1616, 1615, + 1, 1614, 2, 1613, 1609, 84, 1608, 1607, 1603, 10, + 1602, 1599, 1598, 3194, 1451, 122, 1597, 126, } -//line sql.y:5279 +//line sql.y:5287 type yySymType struct { union interface{} empty struct{} @@ -4512,6 +4550,11 @@ func (st *yySymType) partitionsUnion() Partitions { return v } +func (st *yySymType) referenceDefinitionUnion() *ReferenceDefinition { + v, _ := st.union.(*ReferenceDefinition) + return v +} + func (st *yySymType) renameTablePairsUnion() []*RenameTablePair { v, _ := st.union.([]*RenameTablePair) return v @@ -4648,13 +4691,13 @@ func (st *yySymType) whensUnion() []*When { } var yyR1 = [...]int{ - 0, 280, 281, 281, 1, 1, 1, 1, 1, 1, + 0, 281, 282, 282, 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, 262, 262, 262, 265, 265, 21, 50, 3, 3, 3, 3, 2, 2, 8, 9, 4, 5, 5, 10, 10, 62, 62, 11, 12, 12, - 12, 12, 284, 284, 97, 97, 95, 95, 96, 96, + 12, 12, 285, 285, 97, 97, 95, 95, 96, 96, 163, 163, 13, 14, 14, 173, 173, 172, 172, 172, 174, 174, 174, 174, 208, 208, 15, 15, 15, 15, 15, 71, 71, 264, 264, 263, 261, 261, 260, 260, @@ -4674,78 +4717,78 @@ var yyR1 = [...]int{ 251, 251, 249, 249, 249, 249, 237, 237, 246, 246, 246, 246, 246, 236, 236, 232, 232, 232, 233, 233, 234, 234, 231, 231, 235, 235, 248, 248, 247, 229, - 229, 230, 230, 254, 254, 254, 254, 255, 271, 272, - 270, 270, 270, 270, 270, 60, 60, 60, 185, 185, - 185, 244, 244, 243, 243, 243, 245, 245, 242, 242, + 229, 230, 230, 254, 280, 280, 280, 280, 255, 271, + 272, 270, 270, 270, 270, 270, 60, 60, 60, 185, + 185, 185, 244, 244, 243, 243, 243, 245, 245, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 180, 180, 180, - 269, 269, 269, 269, 269, 269, 268, 268, 268, 241, - 241, 241, 267, 267, 131, 131, 132, 132, 30, 30, - 30, 30, 30, 30, 29, 29, 29, 25, 25, 25, + 242, 242, 242, 242, 242, 242, 242, 242, 180, 180, + 180, 269, 269, 269, 269, 269, 269, 268, 268, 268, + 241, 241, 241, 267, 267, 131, 131, 132, 132, 30, + 30, 30, 30, 30, 30, 29, 29, 29, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 31, - 31, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 31, 31, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 224, 224, 224, 256, 256, 257, 257, 17, 22, - 22, 18, 18, 18, 18, 19, 19, 41, 42, 42, + 258, 258, 224, 224, 224, 256, 256, 257, 257, 17, + 22, 22, 18, 18, 18, 18, 19, 19, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 273, 273, 179, 179, 187, 187, - 178, 178, 201, 201, 201, 181, 181, 181, 182, 182, - 277, 277, 277, 43, 43, 45, 45, 46, 47, 47, - 203, 203, 204, 204, 48, 49, 61, 61, 61, 61, - 61, 61, 63, 63, 63, 7, 7, 7, 7, 57, - 57, 57, 6, 6, 44, 44, 51, 274, 274, 275, - 276, 276, 276, 276, 52, 54, 20, 20, 20, 20, - 20, 20, 78, 78, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 72, 72, 72, 67, - 67, 285, 55, 56, 56, 70, 70, 70, 64, 64, - 64, 69, 69, 69, 75, 75, 77, 77, 77, 77, - 77, 79, 79, 79, 79, 79, 79, 79, 74, 74, - 76, 76, 76, 76, 194, 194, 194, 193, 193, 87, - 87, 88, 88, 89, 89, 90, 90, 90, 129, 105, - 105, 162, 162, 161, 161, 164, 164, 91, 91, 91, - 91, 92, 92, 93, 93, 94, 94, 202, 202, 199, - 199, 199, 198, 198, 98, 98, 98, 100, 99, 99, - 99, 99, 101, 101, 103, 103, 102, 102, 104, 106, - 106, 106, 106, 106, 107, 107, 86, 86, 86, 86, - 86, 86, 86, 86, 176, 176, 109, 109, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 120, 120, - 120, 120, 120, 120, 110, 110, 110, 110, 110, 110, - 110, 73, 73, 121, 121, 121, 128, 122, 122, 113, + 42, 42, 42, 42, 42, 273, 273, 179, 179, 187, + 187, 178, 178, 201, 201, 201, 181, 181, 181, 182, + 182, 277, 277, 277, 43, 43, 45, 45, 46, 47, + 47, 203, 203, 204, 204, 48, 49, 61, 61, 61, + 61, 61, 61, 63, 63, 63, 7, 7, 7, 7, + 57, 57, 57, 6, 6, 44, 44, 51, 274, 274, + 275, 276, 276, 276, 276, 52, 54, 20, 20, 20, + 20, 20, 20, 78, 78, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 72, 72, 72, + 67, 67, 286, 55, 56, 56, 70, 70, 70, 64, + 64, 64, 69, 69, 69, 75, 75, 77, 77, 77, + 77, 77, 79, 79, 79, 79, 79, 79, 79, 74, + 74, 76, 76, 76, 76, 194, 194, 194, 193, 193, + 87, 87, 88, 88, 89, 89, 90, 90, 90, 129, + 105, 105, 162, 162, 161, 161, 164, 164, 91, 91, + 91, 91, 92, 92, 93, 93, 94, 94, 202, 202, + 199, 199, 199, 198, 198, 98, 98, 98, 100, 99, + 99, 99, 99, 101, 101, 103, 103, 102, 102, 104, + 106, 106, 106, 106, 106, 107, 107, 86, 86, 86, + 86, 86, 86, 86, 86, 176, 176, 109, 109, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 120, + 120, 120, 120, 120, 120, 110, 110, 110, 110, 110, + 110, 110, 73, 73, 121, 121, 121, 128, 122, 122, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 117, 117, 117, 117, 115, 115, 115, + 113, 113, 113, 113, 117, 117, 117, 117, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 116, 116, 116, 116, 116, 286, 286, 119, - 118, 118, 118, 118, 118, 118, 118, 68, 68, 68, - 68, 68, 207, 207, 207, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 135, 135, - 65, 65, 133, 133, 134, 136, 136, 130, 130, 130, - 112, 112, 112, 112, 112, 112, 112, 112, 114, 114, - 114, 137, 137, 138, 138, 139, 139, 140, 140, 141, - 142, 142, 142, 143, 143, 143, 143, 32, 32, 32, - 32, 32, 27, 27, 27, 27, 28, 28, 28, 80, - 80, 80, 80, 82, 82, 81, 81, 58, 58, 59, - 59, 59, 83, 83, 84, 84, 84, 84, 159, 159, - 159, 144, 144, 144, 144, 151, 151, 151, 147, 147, - 149, 149, 149, 150, 150, 150, 148, 156, 156, 158, - 158, 157, 157, 153, 153, 154, 154, 155, 155, 155, - 152, 152, 111, 111, 111, 111, 111, 160, 160, 160, - 160, 165, 165, 124, 124, 126, 126, 125, 127, 166, - 166, 170, 167, 167, 171, 171, 171, 171, 171, 168, - 168, 169, 169, 195, 195, 195, 175, 175, 186, 186, - 183, 183, 184, 184, 177, 177, 188, 188, 188, 53, - 123, 123, 253, 253, 250, 191, 191, 192, 192, 196, - 196, 200, 200, 197, 197, 189, 189, 189, 189, 189, + 115, 115, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 287, 287, + 119, 118, 118, 118, 118, 118, 118, 118, 68, 68, + 68, 68, 68, 207, 207, 207, 209, 209, 209, 209, + 209, 209, 209, 209, 209, 209, 209, 209, 209, 135, + 135, 65, 65, 133, 133, 134, 136, 136, 130, 130, + 130, 112, 112, 112, 112, 112, 112, 112, 112, 114, + 114, 114, 137, 137, 138, 138, 139, 139, 140, 140, + 141, 142, 142, 142, 143, 143, 143, 143, 32, 32, + 32, 32, 32, 27, 27, 27, 27, 28, 28, 28, + 80, 80, 80, 80, 82, 82, 81, 81, 58, 58, + 59, 59, 59, 83, 83, 84, 84, 84, 84, 159, + 159, 159, 144, 144, 144, 144, 151, 151, 151, 147, + 147, 149, 149, 149, 150, 150, 150, 148, 156, 156, + 158, 158, 157, 157, 153, 153, 154, 154, 155, 155, + 155, 152, 152, 111, 111, 111, 111, 111, 160, 160, + 160, 160, 165, 165, 124, 124, 126, 126, 125, 127, + 166, 166, 170, 167, 167, 171, 171, 171, 171, 171, + 168, 168, 169, 169, 195, 195, 195, 175, 175, 186, + 186, 183, 183, 184, 184, 177, 177, 188, 188, 188, + 53, 123, 123, 253, 253, 250, 191, 191, 192, 192, + 196, 196, 200, 200, 197, 197, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, @@ -4759,7 +4802,7 @@ var yyR1 = [...]int{ 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 190, 190, 190, 190, 190, + 189, 189, 189, 189, 189, 189, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, @@ -4786,7 +4829,8 @@ var yyR1 = [...]int{ 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 282, 283, 205, 206, 206, 206, + 190, 190, 190, 190, 190, 283, 284, 205, 206, 206, + 206, } var yyR2 = [...]int{ @@ -4816,78 +4860,78 @@ var yyR2 = [...]int{ 1, 2, 1, 3, 2, 3, 0, 1, 3, 3, 3, 4, 2, 0, 2, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 3, 3, 3, - 1, 3, 1, 11, 12, 12, 13, 5, 3, 3, - 1, 1, 2, 2, 2, 0, 1, 1, 0, 1, - 2, 0, 1, 1, 3, 2, 1, 2, 3, 3, - 4, 4, 3, 3, 3, 3, 4, 4, 3, 3, + 1, 3, 1, 7, 5, 6, 6, 7, 5, 3, + 3, 1, 1, 2, 2, 2, 0, 1, 1, 0, + 1, 2, 0, 1, 1, 3, 2, 1, 2, 3, + 3, 4, 4, 3, 3, 3, 3, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 4, 5, 0, 2, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 1, 0, 2, 0, 2, 0, 1, - 5, 1, 3, 7, 1, 3, 3, 1, 2, 2, - 2, 5, 5, 5, 6, 6, 5, 5, 2, 2, - 2, 2, 3, 3, 3, 4, 1, 3, 5, 1, - 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, - 2, 4, 4, 2, 11, 3, 6, 8, 6, 6, - 6, 13, 8, 6, 10, 5, 5, 5, 5, 5, - 3, 7, 4, 4, 4, 4, 3, 3, 3, 7, + 3, 3, 3, 3, 3, 3, 4, 5, 0, 2, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 1, 0, 2, 0, 2, 0, + 1, 5, 1, 3, 7, 1, 3, 3, 1, 2, + 2, 2, 5, 5, 5, 6, 6, 5, 5, 2, + 2, 2, 2, 3, 3, 3, 4, 1, 3, 5, + 1, 3, 3, 3, 3, 3, 3, 3, 3, 2, + 2, 2, 4, 4, 2, 11, 3, 6, 8, 6, + 6, 6, 13, 8, 6, 10, 5, 5, 5, 5, + 5, 3, 7, 4, 4, 4, 4, 3, 3, 3, + 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 2, 0, 2, 2, 1, 3, 8, 8, 3, + 3, 5, 7, 7, 6, 5, 3, 2, 3, 3, + 3, 7, 3, 3, 3, 3, 4, 7, 5, 2, + 4, 4, 4, 4, 4, 5, 5, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, + 2, 4, 5, 4, 4, 4, 4, 3, 3, 5, + 2, 3, 3, 3, 3, 1, 1, 0, 1, 0, + 1, 1, 1, 0, 2, 2, 0, 2, 2, 0, + 2, 0, 1, 1, 2, 1, 1, 2, 1, 1, + 5, 0, 1, 0, 1, 2, 3, 0, 3, 3, + 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 3, 3, 2, 2, 3, 1, 3, + 2, 1, 2, 1, 2, 2, 4, 3, 3, 6, + 4, 7, 6, 1, 3, 2, 2, 2, 2, 1, + 1, 1, 3, 2, 1, 1, 1, 0, 1, 1, + 0, 3, 0, 2, 0, 2, 1, 2, 2, 0, + 1, 1, 0, 1, 1, 0, 1, 0, 1, 2, + 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 1, 2, 3, 5, 0, 1, 2, 1, 1, + 0, 2, 1, 3, 1, 1, 1, 3, 3, 3, + 3, 7, 0, 3, 1, 3, 1, 3, 4, 4, + 4, 3, 2, 4, 0, 1, 0, 2, 0, 1, + 0, 1, 2, 1, 1, 1, 2, 2, 1, 2, + 3, 2, 3, 2, 2, 2, 1, 1, 3, 3, + 0, 5, 4, 5, 5, 0, 2, 1, 3, 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, 3, 3, - 2, 0, 2, 2, 1, 3, 8, 8, 3, 3, - 5, 7, 7, 6, 5, 3, 2, 3, 3, 3, - 7, 3, 3, 3, 3, 4, 7, 5, 2, 4, - 4, 4, 4, 4, 5, 5, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 2, 4, 2, - 4, 5, 4, 4, 4, 4, 3, 3, 5, 2, - 3, 3, 3, 3, 1, 1, 0, 1, 0, 1, - 1, 1, 0, 2, 2, 0, 2, 2, 0, 2, - 0, 1, 1, 2, 1, 1, 2, 1, 1, 5, - 0, 1, 0, 1, 2, 3, 0, 3, 3, 3, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 3, 3, 2, 2, 3, 1, 3, 2, - 1, 2, 1, 2, 2, 4, 3, 3, 6, 4, - 7, 6, 1, 3, 2, 2, 2, 2, 1, 1, - 1, 3, 2, 1, 1, 1, 0, 1, 1, 0, - 3, 0, 2, 0, 2, 1, 2, 2, 0, 1, - 1, 0, 1, 1, 0, 1, 0, 1, 2, 3, - 4, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 1, 2, 3, 5, 0, 1, 2, 1, 1, 0, - 2, 1, 3, 1, 1, 1, 3, 3, 3, 3, - 7, 0, 3, 1, 3, 1, 3, 4, 4, 4, - 3, 2, 4, 0, 1, 0, 2, 0, 1, 0, - 1, 2, 1, 1, 1, 2, 2, 1, 2, 3, - 2, 3, 2, 2, 2, 1, 1, 3, 3, 0, - 5, 4, 5, 5, 0, 2, 1, 3, 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, 3, 3, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 1, - 1, 1, 1, 4, 5, 5, 6, 4, 4, 6, - 6, 6, 8, 8, 8, 8, 9, 8, 5, 4, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 8, 8, 0, 2, 3, - 4, 4, 4, 4, 4, 4, 4, 0, 3, 4, - 7, 3, 1, 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, 1, 2, - 2, 0, 3, 0, 2, 0, 3, 1, 3, 2, - 0, 1, 1, 0, 2, 4, 4, 0, 2, 2, - 1, 1, 3, 3, 3, 3, 3, 3, 3, 0, - 3, 3, 3, 0, 3, 1, 1, 0, 4, 0, - 1, 1, 0, 3, 1, 3, 2, 1, 0, 2, - 4, 0, 9, 3, 5, 0, 3, 3, 0, 1, - 0, 2, 2, 0, 2, 2, 2, 0, 2, 1, - 2, 3, 3, 0, 2, 1, 2, 3, 4, 3, - 0, 1, 2, 1, 5, 4, 4, 1, 3, 3, - 5, 0, 5, 1, 3, 1, 2, 3, 1, 1, - 3, 3, 1, 3, 3, 3, 3, 3, 2, 1, - 2, 1, 1, 1, 1, 1, 1, 1, 0, 1, - 0, 2, 0, 3, 0, 1, 0, 1, 1, 5, - 0, 1, 0, 1, 2, 1, 1, 1, 1, 1, - 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, + 1, 1, 1, 1, 4, 5, 5, 6, 4, 4, + 6, 6, 6, 8, 8, 8, 8, 9, 8, 5, + 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 8, 8, 0, 2, + 3, 4, 4, 4, 4, 4, 4, 4, 0, 3, + 4, 7, 3, 1, 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, 1, + 2, 2, 0, 3, 0, 2, 0, 3, 1, 3, + 2, 0, 1, 1, 0, 2, 4, 4, 0, 2, + 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, + 0, 3, 3, 3, 0, 3, 1, 1, 0, 4, + 0, 1, 1, 0, 3, 1, 3, 2, 1, 0, + 2, 4, 0, 9, 3, 5, 0, 3, 3, 0, + 1, 0, 2, 2, 0, 2, 2, 2, 0, 2, + 1, 2, 3, 3, 0, 2, 1, 2, 3, 4, + 3, 0, 1, 2, 1, 5, 4, 4, 1, 3, + 3, 5, 0, 5, 1, 3, 1, 2, 3, 1, + 1, 3, 3, 1, 3, 3, 3, 3, 3, 2, + 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 0, 2, 0, 3, 0, 1, 0, 1, 1, + 5, 0, 1, 0, 1, 2, 1, 1, 1, 1, + 1, 1, 0, 1, 1, 1, 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, @@ -4928,19 +4972,20 @@ 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, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, + 1, } var yyChk = [...]int{ - -1000, -280, -1, -3, -8, -9, -10, -11, -12, -13, + -1000, -281, -1, -3, -8, -9, -10, -11, -12, -13, -14, -15, -16, -17, -18, -19, -41, -42, -43, -45, -46, -47, -48, -49, -6, -44, -20, -21, -50, -51, - -52, -53, -54, -4, -282, 6, 7, 8, -62, 10, + -52, -53, -54, -4, -283, 6, 7, 8, -62, 10, 11, 31, -23, -33, 157, -34, -24, 158, -35, 160, 159, 196, 161, 189, 73, 235, 236, 238, 239, 240, 241, -63, 194, 195, 163, 35, 44, 32, 33, 36, - 166, 83, 9, 340, 191, 190, 26, -281, 480, -70, - 5, -139, 16, -3, -55, -285, -55, -55, -55, -55, + 166, 83, 9, 340, 191, 190, 26, -282, 480, -70, + 5, -139, 16, -3, -55, -286, -55, -55, -55, -55, -55, -55, -238, -240, 83, 130, 83, -55, -39, -38, -37, -36, -40, 30, -30, -31, -258, -29, -26, 162, 159, 204, 104, 105, 196, 197, 198, 161, 180, 195, @@ -4985,12 +5030,12 @@ var yyChk = [...]int{ -108, 114, -113, 30, 24, -112, -109, -130, -127, -128, 148, 149, 151, 150, 152, 137, 138, 145, 115, 153, -117, -115, -116, -118, 90, 89, 98, 91, 92, 93, - 94, 100, 101, 102, -191, -196, -125, -282, 67, 68, + 94, 100, 101, 102, -191, -196, -125, -283, 67, 68, 341, 342, 343, 344, 349, 345, 117, 56, 336, 330, 339, 338, 337, 334, 335, 332, 333, 347, 348, 173, 331, 167, 143, 340, -262, -190, 43, 307, 307, -102, - -55, -5, -4, -282, 6, 21, 22, -143, 18, 17, - -283, 85, -64, -77, 62, 63, -79, 22, 37, 66, + -55, -5, -4, -283, 6, 21, 22, -143, 18, 17, + -284, 85, -64, -77, 62, 63, -79, 22, 37, 66, 64, 21, -56, -76, 139, -86, -196, -76, -177, 172, -177, -177, -167, -208, 237, -171, 320, 319, -192, -169, -191, -189, -168, 317, 162, 359, 113, 23, 25, 116, @@ -5024,23 +5069,23 @@ var yyChk = [...]int{ -181, 214, 290, -232, 169, 34, 181, 307, 214, 290, 214, 215, 214, 215, 300, 310, 214, -201, 12, 132, 331, 295, 299, 207, 168, 208, 170, 309, -262, 447, - 215, -201, 307, 210, -181, -206, -282, -192, 263, -206, + 215, -201, 307, 210, -181, -206, -283, -192, 263, -206, -206, 31, 171, -191, -57, -191, 90, -7, -3, -11, -10, -12, 122, -78, 307, -66, 148, 462, 448, 449, 450, 447, 304, 455, 453, 451, 214, 452, 84, 113, 111, 112, 129, -86, -110, 132, 114, 130, 131, 116, 134, 133, 144, 137, 138, 139, 140, 141, 142, 143, 135, 136, 147, 122, 123, 124, 125, 126, 127, 128, - -176, -282, -128, -282, 155, 156, -113, -113, -113, -113, - -113, -113, -113, -113, -113, -113, -282, 154, -2, -122, - -4, -282, -282, -282, -282, -282, -282, -282, -282, -135, - -86, -282, -286, -282, -286, -119, -282, -286, -119, -286, - -119, -286, -286, -119, -286, -119, -286, -286, -119, -282, - -282, -282, -282, -282, -282, -282, -205, -274, -275, -105, - -102, -282, 231, -139, -3, -55, -159, 20, 32, -86, + -176, -283, -128, -283, 155, 156, -113, -113, -113, -113, + -113, -113, -113, -113, -113, -113, -283, 154, -2, -122, + -4, -283, -283, -283, -283, -283, -283, -283, -283, -135, + -86, -283, -287, -283, -287, -119, -283, -287, -119, -287, + -119, -287, -287, -119, -287, -119, -287, -287, -119, -283, + -283, -283, -283, -283, -283, -283, -205, -274, -275, -105, + -102, -283, 231, -139, -3, -55, -159, 20, 32, -86, -140, -141, -86, -139, 58, -74, -76, -79, 62, 63, 96, 12, -194, -193, 23, -191, 90, 154, 12, -103, - 27, -102, -88, -89, -90, -91, -105, -129, -282, 12, + 27, -102, -88, -89, -90, -91, -105, -129, -283, 12, -95, -96, -102, -104, -196, 84, 237, -171, -208, -173, -172, 321, 323, 122, -195, -191, 90, 30, 85, 84, -102, -210, -213, -215, -214, -216, -211, -212, 260, 261, @@ -5072,17 +5117,17 @@ var yyChk = [...]int{ 131, 116, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -207, -262, 90, 148, -262, -112, -112, -191, -75, 22, 37, -74, -192, - -197, -189, -70, -283, -283, -139, -74, -74, -86, -86, + -197, -189, -70, -284, -284, -139, -74, -74, -86, -86, -130, 90, -74, -130, 90, -74, -74, -69, 22, 37, - -133, -134, 118, -130, -283, -113, -191, -191, -74, -75, + -133, -134, 118, -130, -284, -113, -191, -191, -74, -75, -75, -74, -74, 84, -276, 323, 324, 445, -199, 203, - -198, 23, -196, 90, -123, -122, 90, -143, -283, -144, + -198, 23, -196, 90, -123, -122, 90, -143, -284, -144, 27, 10, 132, 84, 19, 84, -142, 25, 26, -143, -114, -191, 91, 94, -87, 84, 12, -79, -102, -193, 139, -197, -102, -163, 203, -102, 31, 84, -98, -100, -99, -101, 65, 69, 71, 66, 67, 68, 72, -202, - 23, -88, -3, -282, -102, -95, -284, 84, 12, 76, - -284, 84, 154, -171, -173, 84, 322, 324, 325, 75, + 23, -88, -3, -283, -102, -95, -285, 84, 12, 76, + -285, 84, 154, -171, -173, 84, 322, 324, 325, 75, 103, -86, -219, 147, -244, -243, -242, -226, -228, -229, -230, 85, -145, -85, 39, -222, 288, -217, -217, -217, -217, -217, -218, -168, -218, -218, -218, 83, 83, -217, @@ -5098,16 +5143,16 @@ var yyChk = [...]int{ -102, -102, -183, 75, -97, -102, 24, -196, -102, -181, -181, -102, -181, -181, 90, -102, -191, -66, 323, 353, 20, -67, 20, 100, 101, 102, -121, -113, -113, -113, - -73, 193, 113, -283, -283, -74, -74, -282, 154, -5, - -143, -283, -283, 84, 76, 23, 12, 12, -283, 12, - 12, -283, -283, -74, -136, -134, 120, -86, -283, -283, - 84, 84, -283, -283, -283, -283, -283, -275, 444, 324, - -106, 73, 172, 74, -282, -198, -283, -159, 41, 49, + -73, 193, 113, -284, -284, -74, -74, -283, 154, -5, + -143, -284, -284, 84, 76, 23, 12, 12, -284, 12, + 12, -284, -284, -74, -136, -134, 120, -86, -284, -284, + 84, 84, -284, -284, -284, -284, -284, -275, 444, 324, + -106, 73, 172, 74, -283, -198, -284, -159, 41, 49, 60, -86, -86, -141, -159, -175, 20, 12, 56, 56, -107, 13, -76, -88, -79, 154, -107, -111, 31, 56, - -3, -282, -282, -166, -170, -130, -89, -90, -90, -89, + -3, -283, -283, -166, -170, -130, -89, -90, -90, -89, -90, 65, 65, 65, 70, 65, 70, 65, -99, -196, - -283, -283, -3, -163, 76, -88, -102, -88, -104, -196, + -284, -284, -3, -163, 76, -88, -102, -88, -104, -196, 139, -172, -174, 326, 323, 329, -262, 90, 84, -242, -230, 100, 114, 30, 75, 285, 97, -279, 175, 174, 29, 23, 40, -223, 289, -218, -218, -219, -262, 90, @@ -5115,284 +5160,284 @@ var yyChk = [...]int{ -32, -27, -28, 32, 79, -249, -237, 90, 38, -191, 85, -82, -102, 114, 75, -253, -253, -253, -196, 16, -161, -191, 84, 85, -132, 229, -130, 85, -191, 85, - 83, -235, -192, -191, -282, 168, 30, 30, -131, -132, + 83, -235, -192, -191, -283, 168, 30, 30, -131, -132, -219, -262, 479, 478, 85, 170, 227, -84, 336, 90, 86, -102, -102, -102, -102, -102, 162, 159, 212, 171, -95, -102, 84, -60, 188, 183, -201, -201, 32, 323, - 456, 454, -73, 113, -113, -113, -283, -283, -75, -192, + 456, 454, -73, 113, -113, -113, -284, -284, -75, -192, -139, -159, -209, 148, 260, 192, 258, 254, 274, 265, 287, 256, 288, -207, -209, -113, -113, -113, -113, 350, -139, 121, -86, 119, -113, -113, 169, 169, 169, -164, 42, 90, 90, 61, -102, -137, 14, -86, 139, -143, - -165, 75, -166, -124, -126, -125, -282, -160, -283, -191, + -165, 75, -166, -124, -126, -125, -283, -160, -284, -191, -164, -107, 84, 122, -93, -92, 75, 76, -94, 75, - -92, 65, 65, -283, -107, -88, -107, -107, 154, 323, + -92, 65, 65, -284, -107, -88, -107, -107, 154, 323, 327, 328, -242, 100, -113, 10, 90, 29, 29, 83, -219, -219, 85, 84, 85, 84, 85, 84, -185, 390, 114, -28, -27, -237, -237, 91, -262, 170, 24, -102, 75, 75, 75, 17, 84, -226, -130, 56, -252, -161, -256, -257, -102, -112, -132, -102, -81, 218, 226, 83, 87, -264, 76, 209, 285, 209, -102, -60, -32, -102, - -181, -181, 32, -262, -113, -283, -143, -283, -217, -217, - -217, -221, -217, 248, -217, 248, -283, -283, 20, 20, - 20, 20, -282, -65, 346, -86, 84, 84, -282, -282, - -282, -283, 90, -218, -138, 15, 17, 28, -165, 84, - -283, -283, 84, 56, 154, -283, -139, -170, -86, -86, + -181, -181, 32, -262, -113, -284, -143, -284, -217, -217, + -217, -221, -217, 248, -217, 248, -284, -284, 20, 20, + 20, 20, -283, -65, 346, -86, 84, 84, -283, -283, + -283, -284, 90, -218, -138, 15, 17, 28, -165, 84, + -284, -284, 84, 56, 154, -284, -139, -170, -86, -86, 83, -86, -139, -107, -116, -113, -218, 90, -218, 91, 91, 390, 30, 80, 81, 82, 30, 77, 78, -102, - -102, -102, -102, -161, -191, 205, 85, -283, 84, -224, + -102, -102, -102, -161, -191, 205, 85, -284, 84, -224, 353, 356, -162, 83, 85, -261, 353, -263, -262, -191, -191, -191, -159, -218, -262, -113, -113, -113, -113, -113, - -143, 90, -113, -113, -161, -283, -161, -161, -199, -218, + -143, 90, -113, -113, -161, -284, -161, -161, -199, -218, -148, -153, -178, -86, -122, 29, -126, 56, -3, -191, -124, -191, -143, -161, -143, 85, -219, -219, 85, 85, - -162, 206, 187, -257, 357, 357, 23, -161, -260, -259, - -192, 83, 76, -283, -283, -283, -283, -68, 132, 353, - -283, -283, -283, -283, -283, -283, -106, -151, 440, -156, - 45, -154, -155, 46, -152, 47, 55, 10, -124, 154, - 85, -146, 23, -282, -102, -3, 85, 84, 122, -161, - -102, -283, 351, 72, 354, -148, 50, 266, -158, -157, - 54, 46, -155, 17, 48, 17, -166, -191, -278, 100, - 114, 97, -279, 109, 110, -3, -113, 202, 83, -58, - 353, -259, -241, -192, 90, 91, 85, 61, 352, 355, - -149, 52, -147, 51, -147, -157, 17, 17, 90, 17, - 90, 100, 90, -58, -283, -283, -161, -59, 217, 444, - -264, 61, -150, 53, 75, 103, 90, 90, 90, 85, - 180, -261, 353, 75, 103, -271, -272, 75, 219, 354, - -272, 75, 11, 10, 355, -270, 188, 183, 186, 31, - -270, 182, 30, 100, + -162, 206, -280, 187, -257, 357, 357, 23, -161, -260, + -259, -192, 83, 76, -284, -284, -284, -284, -68, 132, + 353, -284, -284, -284, -284, -284, -284, -106, -151, 440, + -156, 45, -154, -155, 46, -152, 47, 55, 10, -124, + 154, 85, -146, 23, -283, -102, -3, 85, 84, 122, + -161, -102, -284, 351, 72, 354, -148, 50, 266, -158, + -157, 54, 46, -155, 17, 48, 17, -166, -191, -278, + 100, 114, 97, -279, 109, 110, -3, -113, 202, 83, + -58, 353, -259, -241, -192, 90, 91, 85, 61, 352, + 355, -149, 52, -147, 51, -147, -157, 17, 17, 90, + 17, 90, 100, 90, -58, -284, -284, -161, -59, 217, + 444, -264, 61, -150, 53, 75, 103, 90, 90, 90, + 85, 180, -261, 353, 75, 103, -271, -272, 75, 219, + 354, -272, 75, 11, 10, 355, -270, 188, 183, 186, + 31, -270, 182, 30, 100, } var yyDef = [...]int{ 34, -2, 2, 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, 32, 33, 835, 0, 571, 571, 571, 571, 571, - 571, 571, 0, 0, 571, -2, -2, 571, 971, 0, - 571, 0, 0, -2, 504, 505, 0, 507, -2, 0, - 0, 516, 1386, 1386, 566, 0, 0, 0, 0, 0, - 571, 1384, 55, 56, 522, 523, 524, 1, 3, 0, - 575, 843, 0, 0, -2, 573, 0, 0, 954, 954, - 954, 0, 86, 87, 0, 0, 0, -2, 90, -2, - 114, 115, 0, 119, 380, 341, 383, 339, 369, -2, - 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 344, 236, 236, 0, 0, -2, 332, - 332, 332, 0, 0, 0, 366, 956, 286, 236, 236, + 31, 32, 33, 836, 0, 572, 572, 572, 572, 572, + 572, 572, 0, 0, 572, -2, -2, 572, 972, 0, + 572, 0, 0, -2, 505, 506, 0, 508, -2, 0, + 0, 517, 1387, 1387, 567, 0, 0, 0, 0, 0, + 572, 1385, 55, 56, 523, 524, 525, 1, 3, 0, + 576, 844, 0, 0, -2, 574, 0, 0, 955, 955, + 955, 0, 86, 87, 0, 0, 0, -2, 90, -2, + 114, 115, 0, 119, 381, 342, 384, 340, 370, -2, + 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 345, 236, 236, 0, 0, -2, 333, + 333, 333, 0, 0, 0, 367, 957, 287, 236, 236, 0, 236, 236, 236, 236, 0, 0, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 859, 118, 972, 969, 970, 35, 36, 37, - 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, - 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, - 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, - 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, - 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, - 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, - 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, - 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, - 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, - 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, - 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, - 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, - 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, - 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, - 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, - 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, - 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, - 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, - 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, - 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, - 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, - 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, - 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, - 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, - 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, - 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, - 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 0, - 948, 0, 436, 656, 0, 495, 495, 0, 495, 495, - 495, 495, 0, 0, 0, 448, 0, 0, 0, 0, - 492, 0, 0, 467, 469, 0, 492, 0, 479, 495, - 1387, 1387, 1387, 939, 0, 489, 487, 501, 502, 484, - 485, 503, 506, 0, 511, 514, 965, 966, 0, 529, - 0, 1192, 521, 534, 535, 0, 567, 568, 40, 707, - 666, 0, 672, 674, 0, 709, 710, 711, 712, 713, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 739, 740, 741, 742, 820, 821, 822, 823, 824, 825, - 826, 827, 676, 677, 817, 0, 928, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 808, 0, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 0, 0, 0, - 0, 0, 0, 0, -2, -2, 1386, 0, 544, 0, - 0, 835, 51, 0, 571, 576, 577, 878, 0, 0, - 835, 1385, 0, 0, -2, -2, 587, 593, 594, 595, - 596, 597, 572, 0, 600, 604, 0, 0, 0, 955, - 0, 0, 72, 0, 1349, 932, -2, -2, 0, 0, - 967, 968, 941, -2, 975, 976, 977, 978, 979, 980, - 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, - 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, - 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, - 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, - 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, - 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, - 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, - 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, - 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, - 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, - 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, - 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, - 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, - 1111, 1112, 1113, 1114, -2, 0, 0, 128, 129, 0, - 38, 262, 0, 124, 0, 256, 209, 859, 0, 0, - 0, 0, 0, 571, 0, 949, 109, 110, 116, 117, - 236, 236, 0, 118, 118, 348, 349, 350, 0, 0, - -2, 260, 0, 333, 0, 0, 250, 250, 254, 252, - 253, 0, 0, 0, 0, 0, 0, 360, 0, 361, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 420, - 0, 237, 0, 378, 379, 287, 0, 0, 0, 0, - 358, 359, 0, 0, 957, 958, 0, 0, 236, 236, + 236, 236, 860, 118, 973, 970, 971, 35, 36, 37, + 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, + 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, + 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, + 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, + 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, + 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, + 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, + 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, + 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, + 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, + 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, + 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, + 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, + 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, + 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, + 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, + 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, + 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, + 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, + 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, + 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, + 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, + 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, + 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, + 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, + 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, + 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 0, + 949, 0, 437, 657, 0, 496, 496, 0, 496, 496, + 496, 496, 0, 0, 0, 449, 0, 0, 0, 0, + 493, 0, 0, 468, 470, 0, 493, 0, 480, 496, + 1388, 1388, 1388, 940, 0, 490, 488, 502, 503, 485, + 486, 504, 507, 0, 512, 515, 966, 967, 0, 530, + 0, 1193, 522, 535, 536, 0, 568, 569, 40, 708, + 667, 0, 673, 675, 0, 710, 711, 712, 713, 714, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 740, 741, 742, 743, 821, 822, 823, 824, 825, 826, + 827, 828, 677, 678, 818, 0, 929, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 809, 0, 778, 778, + 778, 778, 778, 778, 778, 778, 778, 0, 0, 0, + 0, 0, 0, 0, -2, -2, 1387, 0, 545, 0, + 0, 836, 51, 0, 572, 577, 578, 879, 0, 0, + 836, 1386, 0, 0, -2, -2, 588, 594, 595, 596, + 597, 598, 573, 0, 601, 605, 0, 0, 0, 956, + 0, 0, 72, 0, 1350, 933, -2, -2, 0, 0, + 968, 969, 942, -2, 976, 977, 978, 979, 980, 981, + 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, + 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, + 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, + 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, + 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, + 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, + 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, + 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, + 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, + 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, + 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, + 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, + 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, + 1112, 1113, 1114, 1115, -2, 0, 0, 128, 129, 0, + 38, 262, 0, 124, 0, 256, 209, 860, 0, 0, + 0, 0, 0, 572, 0, 950, 109, 110, 116, 117, + 236, 236, 0, 118, 118, 349, 350, 351, 0, 0, + -2, 260, 0, 334, 0, 0, 250, 250, 254, 252, + 253, 0, 0, 0, 0, 0, 0, 361, 0, 362, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, + 0, 237, 0, 379, 380, 288, 0, 0, 0, 0, + 359, 360, 0, 0, 958, 959, 0, 0, 236, 236, 0, 0, 0, 0, 236, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 108, 872, 0, 0, 0, -2, 0, 428, - 0, 0, 0, 950, 950, 435, 0, 437, 438, 0, - 0, 439, 0, 492, 492, 490, 491, 441, 442, 443, - 444, 495, 0, 0, 245, 246, 247, 492, 495, 0, - 495, 495, 495, 495, 492, 492, 492, 495, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1387, 1387, 1387, - 498, 495, 476, 477, 480, 481, 1388, 1389, 986, 482, - 483, 940, 512, 515, 532, 530, 531, 533, 525, 526, - 527, 528, 0, 546, 547, 552, 0, 0, 0, 0, - 558, 559, 560, 0, 0, 563, 564, 565, 0, 0, - 0, 0, 0, 670, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 694, 695, 696, 697, 698, 699, 700, - 673, 0, 687, 0, 0, 0, 729, 730, 731, 732, - 733, 734, 735, 736, 737, 0, 584, 0, 0, 0, - 835, 0, 0, 0, 0, 0, 0, 0, 581, 0, - 809, 0, 760, 0, 761, 769, 0, 762, 770, 763, - 771, 764, 765, 772, 766, 773, 767, 768, 774, 0, - 0, 0, 584, 584, 0, 0, 41, 536, 537, 0, - 639, 960, 0, 843, 0, 586, 881, 0, 0, 844, - 836, 837, 840, 843, 0, 609, 598, 588, 591, 592, - 574, 0, 601, 605, 0, 607, 608, 0, 0, 70, - 0, 655, 0, 611, 613, 614, 615, 637, 0, 0, - 0, 0, 66, 68, 656, 0, 1349, 938, 0, 74, - 75, 0, 0, 0, 224, 943, 944, 945, -2, 243, + 0, 0, 108, 873, 0, 0, 0, -2, 0, 429, + 0, 0, 0, 951, 951, 436, 0, 438, 439, 0, + 0, 440, 0, 493, 493, 491, 492, 442, 443, 444, + 445, 496, 0, 0, 245, 246, 247, 493, 496, 0, + 496, 496, 496, 496, 493, 493, 493, 496, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1388, 1388, 1388, + 499, 496, 477, 478, 481, 482, 1389, 1390, 987, 483, + 484, 941, 513, 516, 533, 531, 532, 534, 526, 527, + 528, 529, 0, 547, 548, 553, 0, 0, 0, 0, + 559, 560, 561, 0, 0, 564, 565, 566, 0, 0, + 0, 0, 0, 671, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 695, 696, 697, 698, 699, 700, 701, + 674, 0, 688, 0, 0, 0, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 0, 585, 0, 0, 0, + 836, 0, 0, 0, 0, 0, 0, 0, 582, 0, + 810, 0, 761, 0, 762, 770, 0, 763, 771, 764, + 772, 765, 766, 773, 767, 774, 768, 769, 775, 0, + 0, 0, 585, 585, 0, 0, 41, 537, 538, 0, + 640, 961, 0, 844, 0, 587, 882, 0, 0, 845, + 837, 838, 841, 844, 0, 610, 599, 589, 592, 593, + 575, 0, 602, 606, 0, 608, 609, 0, 0, 70, + 0, 656, 0, 612, 614, 615, 616, 638, 0, 0, + 0, 0, 66, 68, 657, 0, 1350, 939, 0, 74, + 75, 0, 0, 0, 224, 944, 945, 946, -2, 243, 0, -2, 216, 160, 161, 162, 209, 164, 209, 209, 209, 209, 220, 220, 220, 220, 192, 193, 194, 195, 196, 0, 0, 179, 209, 209, 209, 209, 199, 200, 201, 202, 203, 204, 205, 206, 165, 166, 167, 168, 169, 170, 171, 172, 173, 211, 211, 211, 213, 213, - 0, 39, 0, 228, 0, 840, 0, 872, 952, 962, - 0, 0, 0, 952, 92, 0, 0, 381, 342, 370, - 382, 0, 345, 346, -2, 0, 0, 332, 0, 334, + 0, 39, 0, 228, 0, 841, 0, 873, 953, 963, + 0, 0, 0, 953, 92, 0, 0, 382, 343, 371, + 383, 0, 346, 347, -2, 0, 0, 333, 0, 335, 0, 244, 0, -2, 0, 254, 0, 250, 254, 251, - 254, 242, 255, 362, 817, 0, 363, 364, 0, 400, - 625, 0, 0, 0, 0, 0, 406, 407, 408, 0, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 371, 372, 373, 374, 375, 376, 377, 0, 0, 334, - 0, 367, 0, 288, 289, 0, 0, 292, 293, 294, - 295, 0, 0, 298, 299, 300, 301, 302, 326, 327, - 328, 303, 304, 305, 306, 307, 308, 309, 320, 321, - 322, 323, 324, 325, 310, 311, 312, 313, 314, 317, - 0, 102, 863, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 950, 0, 0, 0, 0, 657, - 973, 974, 496, 497, 0, 248, 249, 495, 495, 445, - 468, 0, 495, 449, 470, 450, 452, 451, 453, 472, - 473, 495, 456, 493, 494, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 474, 0, 475, 0, 0, - 513, 517, 518, 519, 520, 0, 0, 549, 554, 555, - 556, 557, 569, 562, 708, 667, 668, 669, 671, 688, - 0, 690, 692, 678, 679, 703, 704, 705, 0, 0, - 0, 0, 701, 683, 0, 714, 715, 716, 717, 718, - 719, 720, 721, 722, 723, 724, 725, 728, 792, 793, - 794, 0, 726, 727, 738, 0, 0, 0, 585, 818, - 0, -2, 0, 706, 927, 843, 0, 0, 0, 0, - 711, 820, 0, 711, 820, 0, 0, 0, 582, 583, - 815, 812, 0, 0, 778, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 539, 540, 542, 0, 659, 0, - 640, 0, 642, 643, 0, 961, 545, 878, 52, 42, - 0, 879, 0, 0, 0, 0, 839, 841, 842, 878, - 0, 828, 0, 0, 664, 0, 0, 589, 48, 606, - 602, 0, 664, 0, 0, 654, 0, 0, 0, 0, - 0, 0, 644, 0, 0, 647, 0, 0, 0, 0, - 638, 0, 0, 0, -2, 0, 0, 0, 62, 63, - 0, 0, 0, 933, 73, 0, 0, 78, 79, 934, - 935, 936, 937, 0, 111, -2, 283, 130, 132, 133, + 254, 242, 255, 363, 818, 0, 364, 365, 0, 401, + 626, 0, 0, 0, 0, 0, 407, 408, 409, 0, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 372, 373, 374, 375, 376, 377, 378, 0, 0, 335, + 0, 368, 0, 289, 290, 0, 0, 293, 294, 295, + 296, 0, 0, 299, 300, 301, 302, 303, 327, 328, + 329, 304, 305, 306, 307, 308, 309, 310, 321, 322, + 323, 324, 325, 326, 311, 312, 313, 314, 315, 318, + 0, 102, 864, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 951, 0, 0, 0, 0, 658, + 974, 975, 497, 498, 0, 248, 249, 496, 496, 446, + 469, 0, 496, 450, 471, 451, 453, 452, 454, 473, + 474, 496, 457, 494, 495, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 475, 0, 476, 0, 0, + 514, 518, 519, 520, 521, 0, 0, 550, 555, 556, + 557, 558, 570, 563, 709, 668, 669, 670, 672, 689, + 0, 691, 693, 679, 680, 704, 705, 706, 0, 0, + 0, 0, 702, 684, 0, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 729, 793, 794, + 795, 0, 727, 728, 739, 0, 0, 0, 586, 819, + 0, -2, 0, 707, 928, 844, 0, 0, 0, 0, + 712, 821, 0, 712, 821, 0, 0, 0, 583, 584, + 816, 813, 0, 0, 779, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 540, 541, 543, 0, 660, 0, + 641, 0, 643, 644, 0, 962, 546, 879, 52, 42, + 0, 880, 0, 0, 0, 0, 840, 842, 843, 879, + 0, 829, 0, 0, 665, 0, 0, 590, 48, 607, + 603, 0, 665, 0, 0, 655, 0, 0, 0, 0, + 0, 0, 645, 0, 0, 648, 0, 0, 0, 0, + 639, 0, 0, 0, -2, 0, 0, 0, 62, 63, + 0, 0, 0, 934, 73, 0, 0, 78, 79, 935, + 936, 937, 938, 0, 111, -2, 284, 130, 132, 133, 134, 125, 135, 0, 0, 218, 217, 163, 220, 220, 186, 187, 224, 0, 224, 224, 224, 0, 0, 180, 181, 182, 183, 174, 0, 175, 176, 177, 0, 178, - 261, 0, 847, 229, 230, 232, 236, 0, 0, 0, - 257, 258, 0, 863, 0, 0, 0, 963, 962, 962, - 962, 0, 120, 121, 122, 123, 118, 0, 0, 126, - 336, 0, 0, 0, 259, 0, 0, 238, 254, 239, - 240, 0, 365, 0, 0, 402, 403, 404, 405, 0, - 0, 0, 334, 336, 224, 0, 290, 291, 296, 297, - 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 395, 396, 397, 398, 860, 861, 862, 0, - 0, 429, 0, 0, 275, 64, 951, 434, 492, 455, - 471, 492, 447, 454, 499, 478, 509, 553, 0, 0, - 0, 561, 0, 689, 691, 693, 680, 701, 684, 0, - 681, 0, 0, 675, 743, 0, 0, 584, 0, 835, - 878, 747, 748, 0, 0, 0, 0, 0, 785, 0, - 0, 786, 0, 835, 0, 813, 0, 0, 759, 779, - 0, 0, 780, 781, 782, 783, 784, 538, 541, 543, - 619, 0, 0, 0, 0, 641, 959, 44, 0, 0, - 0, 845, 846, 838, 43, 0, 946, 947, 829, 830, - 831, 0, 599, 610, 590, 0, 843, 921, 0, 0, - 913, 0, 0, 664, 929, 0, 612, 633, 635, 0, - 630, 645, 646, 648, 0, 650, 0, 652, 653, 616, - 617, 618, 0, 664, 0, 664, 67, 664, 69, 0, - 658, 76, 77, 0, 0, 83, 225, 226, 118, 285, + 261, 0, 848, 229, 230, 232, 236, 0, 0, 0, + 257, 258, 0, 864, 0, 0, 0, 964, 963, 963, + 963, 0, 120, 121, 122, 123, 118, 0, 0, 126, + 337, 0, 0, 0, 259, 0, 0, 238, 254, 239, + 240, 0, 366, 0, 0, 403, 404, 405, 406, 0, + 0, 0, 335, 337, 224, 0, 291, 292, 297, 298, + 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 396, 397, 398, 399, 861, 862, 863, 0, + 0, 430, 0, 0, 276, 64, 952, 435, 493, 456, + 472, 493, 448, 455, 500, 479, 510, 554, 0, 0, + 0, 562, 0, 690, 692, 694, 681, 702, 685, 0, + 682, 0, 0, 676, 744, 0, 0, 585, 0, 836, + 879, 748, 749, 0, 0, 0, 0, 0, 786, 0, + 0, 787, 0, 836, 0, 814, 0, 0, 760, 780, + 0, 0, 781, 782, 783, 784, 785, 539, 542, 544, + 620, 0, 0, 0, 0, 642, 960, 44, 0, 0, + 0, 846, 847, 839, 43, 0, 947, 948, 830, 831, + 832, 0, 600, 611, 591, 0, 844, 922, 0, 0, + 914, 0, 0, 665, 930, 0, 613, 634, 636, 0, + 631, 646, 647, 649, 0, 651, 0, 653, 654, 617, + 618, 619, 0, 665, 0, 665, 67, 665, 69, 0, + 659, 76, 77, 0, 0, 83, 225, 226, 118, 286, 131, 140, 0, 0, 0, 144, 0, 146, 0, 156, 158, 0, 138, 159, 219, 224, 224, 188, 221, 222, - 223, 189, 190, 191, 0, 207, 0, 0, 0, 278, - 88, 851, 850, 236, 236, 231, 0, 234, 0, 964, + 223, 189, 190, 191, 0, 207, 0, 0, 0, 279, + 88, 852, 851, 236, 236, 231, 0, 234, 0, 965, 210, 0, 101, 0, 0, 0, 0, 0, 107, 0, - 340, 623, 0, 351, 352, 0, 335, 399, 0, 228, - 0, 241, 818, 626, 0, 0, 353, 0, 336, 356, - 357, 368, 318, 319, 316, 0, 0, 873, 874, 0, - 877, 93, 388, 390, 389, 393, 0, 0, 386, 0, - 275, 847, 0, 433, 276, 277, 495, 495, 548, 0, - 551, 0, 682, 0, 702, 685, 744, 745, 0, 819, - 843, 46, 0, 209, 209, 798, 209, 213, 801, 209, - 803, 209, 806, 0, 0, 0, 0, 0, 0, 0, - 810, 758, 816, 0, 0, 0, 0, 0, 0, 0, - 0, 220, 883, 880, 45, 833, 0, 665, 603, 49, - 53, 0, 921, 912, 923, 925, 0, 0, 0, 917, - 0, 835, 0, 0, 627, 634, 0, 0, 628, 0, - 629, 649, 651, -2, 835, 664, 60, 61, 0, 80, - 81, 82, 284, 141, 142, 0, 145, 155, 157, 0, - 184, 185, 220, 0, 220, 0, 214, 0, 267, 279, - 0, 848, 849, 0, 0, 233, 235, 0, 953, 103, - 0, 0, 0, 0, 0, 127, 337, 0, 227, 0, - 0, 424, 421, 354, 355, 621, 864, 865, 866, 0, - 876, 96, 0, 0, 0, 0, 430, 431, 432, 65, - 440, 446, 550, 570, 686, 746, 878, 749, 795, 220, - 799, 800, 802, 804, 805, 807, 751, 750, 0, 0, - 0, 0, 0, 843, 0, 814, 0, 0, 0, 0, - 0, 639, 220, 903, 50, 0, 0, 0, 54, 0, - 926, 0, 0, 0, 0, 71, 843, 930, 931, 631, - 0, 636, 843, 59, 143, 0, 224, 208, 224, 0, - 0, 280, 852, 853, 854, 855, 856, 857, 858, 621, - 104, 105, 106, 343, 624, 0, 0, 401, 0, 409, - 0, 0, 0, 0, 875, 387, 0, 94, 95, 0, - 0, 392, 47, 796, 797, 0, 0, 0, 0, 787, - 0, 811, 0, 0, 0, 661, 0, 0, 659, 885, - 884, 897, 910, 834, 832, 0, 924, 0, 916, 919, - 915, 918, 57, 0, 58, 149, 197, 198, 212, 215, - 0, 0, 0, 425, 422, 423, 0, 0, 97, 98, - 0, 0, 0, 752, 754, 753, 755, 0, 0, 0, - 757, 775, 776, 660, 662, 663, 620, 903, 0, 896, - 0, -2, 905, 0, 0, 0, 911, 0, 914, 0, - 632, 136, 0, 0, 0, 867, 622, 0, 0, 0, - 394, 756, 0, 0, 0, 890, 888, 888, 898, 899, - 0, 0, 906, 0, 0, 0, 922, 920, 150, 151, - 0, 0, 154, 147, 148, 867, 0, 0, 0, 384, - 869, 99, 100, 329, 330, 331, 93, 788, 0, 791, - 893, 0, 886, 889, 887, 900, 0, 0, 907, 0, - 909, 152, 153, 89, 426, 427, 0, 0, 870, 871, - 96, 789, 882, 0, 891, 892, 901, 902, 908, 263, - 0, 391, 0, 894, 895, 264, 265, 0, 868, 0, - 266, 0, 0, 0, 790, 268, 270, 271, 0, 0, - 269, 272, 273, 274, + 341, 624, 0, 352, 353, 0, 336, 400, 0, 228, + 0, 241, 819, 627, 0, 0, 354, 0, 337, 357, + 358, 369, 319, 320, 317, 0, 0, 874, 875, 0, + 878, 93, 389, 391, 390, 394, 0, 0, 387, 0, + 276, 848, 0, 434, 277, 278, 496, 496, 549, 0, + 552, 0, 683, 0, 703, 686, 745, 746, 0, 820, + 844, 46, 0, 209, 209, 799, 209, 213, 802, 209, + 804, 209, 807, 0, 0, 0, 0, 0, 0, 0, + 811, 759, 817, 0, 0, 0, 0, 0, 0, 0, + 0, 220, 884, 881, 45, 834, 0, 666, 604, 49, + 53, 0, 922, 913, 924, 926, 0, 0, 0, 918, + 0, 836, 0, 0, 628, 635, 0, 0, 629, 0, + 630, 650, 652, -2, 836, 665, 60, 61, 0, 80, + 81, 82, 285, 141, 142, 0, 145, 155, 157, 0, + 184, 185, 220, 0, 220, 0, 214, 0, 268, 280, + 0, 849, 850, 0, 0, 233, 235, 0, 954, 103, + 0, 0, 0, 0, 0, 127, 338, 0, 227, 0, + 0, 425, 422, 355, 356, 622, 865, 866, 867, 0, + 877, 96, 0, 0, 0, 0, 431, 432, 433, 65, + 441, 447, 551, 571, 687, 747, 879, 750, 796, 220, + 800, 801, 803, 805, 806, 808, 752, 751, 0, 0, + 0, 0, 0, 844, 0, 815, 0, 0, 0, 0, + 0, 640, 220, 904, 50, 0, 0, 0, 54, 0, + 927, 0, 0, 0, 0, 71, 844, 931, 932, 632, + 0, 637, 844, 59, 143, 0, 224, 208, 224, 0, + 0, 281, 853, 854, 855, 856, 857, 858, 859, 622, + 104, 105, 106, 344, 625, 0, 0, 402, 0, 410, + 0, 0, 0, 0, 876, 388, 0, 94, 95, 0, + 0, 393, 47, 797, 798, 0, 0, 0, 0, 788, + 0, 812, 0, 0, 0, 662, 0, 0, 660, 886, + 885, 898, 911, 835, 833, 0, 925, 0, 917, 920, + 916, 919, 57, 0, 58, 149, 197, 198, 212, 215, + 0, 0, 263, 0, 426, 423, 424, 0, 0, 97, + 98, 0, 0, 0, 753, 755, 754, 756, 0, 0, + 0, 758, 776, 777, 661, 663, 664, 621, 904, 0, + 897, 0, -2, 906, 0, 0, 0, 912, 0, 915, + 0, 633, 136, 0, 0, 0, 868, 623, 0, 0, + 0, 395, 757, 0, 0, 0, 891, 889, 889, 899, + 900, 0, 0, 907, 0, 0, 0, 923, 921, 150, + 151, 0, 0, 154, 147, 148, 868, 0, 0, 0, + 385, 870, 99, 100, 330, 331, 332, 93, 789, 0, + 792, 894, 0, 887, 890, 888, 901, 0, 0, 908, + 0, 910, 152, 153, 89, 427, 428, 0, 0, 871, + 872, 96, 790, 883, 0, 892, 893, 902, 903, 909, + 264, 0, 392, 0, 895, 896, 265, 266, 0, 869, + 0, 267, 0, 0, 0, 791, 269, 271, 272, 0, + 0, 270, 273, 274, 275, } var yyTok1 = [...]int{ @@ -5832,68 +5877,68 @@ yydefault: case 1: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:429 +//line sql.y:431 { setParseTree(yylex, yyDollar[1].statementUnion()) } case 2: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:434 +//line sql.y:436 { } case 3: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:435 +//line sql.y:437 { } case 4: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:439 +//line sql.y:441 { yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL case 34: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:472 +//line sql.y:474 { setParseTree(yylex, nil) } case 35: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:478 +//line sql.y:480 { yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), NoAt) } case 36: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:482 +//line sql.y:484 { yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), SingleAt) } case 37: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:486 +//line sql.y:488 { yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), DoubleAt) } case 38: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:491 +//line sql.y:493 { yyVAL.colIdent = NewColIdentWithAt("", NoAt) } case 39: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:495 +//line sql.y:497 { yyVAL.colIdent = yyDollar[1].colIdent } case 40: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:501 +//line sql.y:503 { yyLOCAL = &OtherAdmin{} } @@ -5901,7 +5946,7 @@ yydefault: case 41: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:507 +//line sql.y:509 { yyLOCAL = &Load{} } @@ -5909,7 +5954,7 @@ yydefault: case 42: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:513 +//line sql.y:515 { sel := yyDollar[1].selStmtUnion().(*Select) sel.OrderBy = yyDollar[2].orderByUnion() @@ -5922,7 +5967,7 @@ yydefault: case 43: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:522 +//line sql.y:524 { yyLOCAL = &Union{FirstStatement: &ParenSelect{Select: yyDollar[2].selStmtUnion()}, OrderBy: yyDollar[4].orderByUnion(), Limit: yyDollar[5].limitUnion(), Lock: yyDollar[6].lockUnion()} } @@ -5930,7 +5975,7 @@ yydefault: case 44: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:526 +//line sql.y:528 { yyLOCAL = Unionize(yyDollar[1].selStmtUnion(), yyDollar[3].selStmtUnion(), yyDollar[2].booleanUnion(), yyDollar[4].orderByUnion(), yyDollar[5].limitUnion(), yyDollar[6].lockUnion()) } @@ -5938,7 +5983,7 @@ yydefault: case 45: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:530 +//line sql.y:532 { yyLOCAL = NewSelect(Comments(yyDollar[2].strs), SelectExprs{&Nextval{Expr: yyDollar[5].exprUnion()}}, []string{yyDollar[3].str} /*options*/, TableExprs{&AliasedTableExpr{Expr: yyDollar[7].tableName}}, nil /*where*/, nil /*groupBy*/, nil /*having*/) } @@ -5946,7 +5991,7 @@ yydefault: case 46: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:553 +//line sql.y:555 { sel := yyDollar[1].selStmtUnion().(*Select) sel.OrderBy = yyDollar[2].orderByUnion() @@ -5958,7 +6003,7 @@ yydefault: case 47: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:561 +//line sql.y:563 { yyLOCAL = Unionize(yyDollar[1].selStmtUnion(), yyDollar[3].selStmtUnion(), yyDollar[2].booleanUnion(), yyDollar[4].orderByUnion(), yyDollar[5].limitUnion(), yyDollar[6].lockUnion()) } @@ -5966,7 +6011,7 @@ yydefault: case 48: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:567 +//line sql.y:569 { yyLOCAL = &Stream{Comments: Comments(yyDollar[2].strs), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName} } @@ -5974,7 +6019,7 @@ yydefault: case 49: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:573 +//line sql.y:575 { yyLOCAL = &VStream{Comments: Comments(yyDollar[2].strs), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName, Where: NewWhere(WhereClause, yyDollar[6].exprUnion()), Limit: yyDollar[7].limitUnion()} } @@ -5982,7 +6027,7 @@ yydefault: case 50: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:581 +//line sql.y:583 { yyLOCAL = NewSelect(Comments(yyDollar[2].strs), yyDollar[4].selectExprsUnion() /*SelectExprs*/, yyDollar[3].strs /*options*/, yyDollar[5].tableExprsUnion() /*from*/, NewWhere(WhereClause, yyDollar[6].exprUnion()), GroupBy(yyDollar[7].exprsUnion()), NewWhere(HavingClause, yyDollar[8].exprUnion())) } @@ -5990,7 +6035,7 @@ yydefault: case 51: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:587 +//line sql.y:589 { yyLOCAL = yyDollar[1].selStmtUnion() } @@ -5998,7 +6043,7 @@ yydefault: case 52: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:591 +//line sql.y:593 { yyLOCAL = &ParenSelect{Select: yyDollar[2].selStmtUnion()} } @@ -6006,7 +6051,7 @@ yydefault: case 53: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:598 +//line sql.y:600 { // insert_data returns a *Insert pre-filled with Columns & Values ins := yyDollar[6].insUnion() @@ -6022,7 +6067,7 @@ yydefault: case 54: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:610 +//line sql.y:612 { cols := make(Columns, 0, len(yyDollar[7].updateExprsUnion())) vals := make(ValTuple, 0, len(yyDollar[8].updateExprsUnion())) @@ -6036,7 +6081,7 @@ yydefault: case 55: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL InsertAction -//line sql.y:622 +//line sql.y:624 { yyLOCAL = InsertAct } @@ -6044,7 +6089,7 @@ yydefault: case 56: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL InsertAction -//line sql.y:626 +//line sql.y:628 { yyLOCAL = ReplaceAct } @@ -6052,7 +6097,7 @@ yydefault: case 57: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Statement -//line sql.y:632 +//line sql.y:634 { yyLOCAL = &Update{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), TableExprs: yyDollar[4].tableExprsUnion(), Exprs: yyDollar[6].updateExprsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion()), OrderBy: yyDollar[8].orderByUnion(), Limit: yyDollar[9].limitUnion()} } @@ -6060,7 +6105,7 @@ yydefault: case 58: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Statement -//line sql.y:638 +//line sql.y:640 { yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), TableExprs: TableExprs{&AliasedTableExpr{Expr: yyDollar[5].tableName}}, Partitions: yyDollar[6].partitionsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion()), OrderBy: yyDollar[8].orderByUnion(), Limit: yyDollar[9].limitUnion()} } @@ -6068,7 +6113,7 @@ yydefault: case 59: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:642 +//line sql.y:644 { yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Targets: yyDollar[5].tableNamesUnion(), TableExprs: yyDollar[7].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion())} } @@ -6076,7 +6121,7 @@ yydefault: case 60: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:646 +//line sql.y:648 { yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Targets: yyDollar[4].tableNamesUnion(), TableExprs: yyDollar[6].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion())} } @@ -6084,32 +6129,32 @@ yydefault: case 61: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:650 +//line sql.y:652 { yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Targets: yyDollar[4].tableNamesUnion(), TableExprs: yyDollar[6].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion())} } yyVAL.union = yyLOCAL case 62: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:655 +//line sql.y:657 { } case 63: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:656 +//line sql.y:658 { } case 64: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableNames -//line sql.y:660 +//line sql.y:662 { yyLOCAL = TableNames{yyDollar[1].tableName.ToViewName()} } yyVAL.union = yyLOCAL case 65: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:664 +//line sql.y:666 { yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableName.ToViewName()) @@ -6117,14 +6162,14 @@ yydefault: case 66: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableNames -//line sql.y:670 +//line sql.y:672 { yyLOCAL = TableNames{yyDollar[1].tableName} } yyVAL.union = yyLOCAL case 67: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:674 +//line sql.y:676 { yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableName) @@ -6132,14 +6177,14 @@ yydefault: case 68: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableNames -//line sql.y:680 +//line sql.y:682 { yyLOCAL = TableNames{yyDollar[1].tableName} } yyVAL.union = yyLOCAL case 69: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:684 +//line sql.y:686 { yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableName) @@ -6147,7 +6192,7 @@ yydefault: case 70: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Partitions -//line sql.y:689 +//line sql.y:691 { yyLOCAL = nil } @@ -6155,7 +6200,7 @@ yydefault: case 71: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Partitions -//line sql.y:693 +//line sql.y:695 { yyLOCAL = yyDollar[3].partitionsUnion() } @@ -6163,7 +6208,7 @@ yydefault: case 72: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:699 +//line sql.y:701 { yyLOCAL = &Set{Comments: Comments(yyDollar[2].strs), Exprs: yyDollar[3].setExprsUnion()} } @@ -6171,7 +6216,7 @@ yydefault: case 73: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:705 +//line sql.y:707 { yyLOCAL = &SetTransaction{Comments: Comments(yyDollar[2].strs), Scope: yyDollar[3].scopeUnion(), Characteristics: yyDollar[5].characteristicsUnion()} } @@ -6179,7 +6224,7 @@ yydefault: case 74: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:709 +//line sql.y:711 { yyLOCAL = &SetTransaction{Comments: Comments(yyDollar[2].strs), Characteristics: yyDollar[4].characteristicsUnion(), Scope: ImplicitScope} } @@ -6187,14 +6232,14 @@ yydefault: case 75: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []Characteristic -//line sql.y:715 +//line sql.y:717 { yyLOCAL = []Characteristic{yyDollar[1].characteristicUnion()} } yyVAL.union = yyLOCAL case 76: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:719 +//line sql.y:721 { yySLICE := (*[]Characteristic)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].characteristicUnion()) @@ -6202,7 +6247,7 @@ yydefault: case 77: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Characteristic -//line sql.y:725 +//line sql.y:727 { yyLOCAL = yyDollar[3].isolationLevelUnion() } @@ -6210,7 +6255,7 @@ yydefault: case 78: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Characteristic -//line sql.y:729 +//line sql.y:731 { yyLOCAL = ReadWrite } @@ -6218,7 +6263,7 @@ yydefault: case 79: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Characteristic -//line sql.y:733 +//line sql.y:735 { yyLOCAL = ReadOnly } @@ -6226,7 +6271,7 @@ yydefault: case 80: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsolationLevel -//line sql.y:739 +//line sql.y:741 { yyLOCAL = RepeatableRead } @@ -6234,7 +6279,7 @@ yydefault: case 81: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsolationLevel -//line sql.y:743 +//line sql.y:745 { yyLOCAL = ReadCommitted } @@ -6242,7 +6287,7 @@ yydefault: case 82: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsolationLevel -//line sql.y:747 +//line sql.y:749 { yyLOCAL = ReadUncommitted } @@ -6250,7 +6295,7 @@ yydefault: case 83: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsolationLevel -//line sql.y:751 +//line sql.y:753 { yyLOCAL = Serializable } @@ -6258,7 +6303,7 @@ yydefault: case 84: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Scope -//line sql.y:757 +//line sql.y:759 { yyLOCAL = SessionScope } @@ -6266,7 +6311,7 @@ yydefault: case 85: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Scope -//line sql.y:761 +//line sql.y:763 { yyLOCAL = GlobalScope } @@ -6274,7 +6319,7 @@ yydefault: case 86: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:767 +//line sql.y:769 { yyDollar[1].createTableUnion().TableSpec = yyDollar[2].tableSpecUnion() yyDollar[1].createTableUnion().FullyParsed = true @@ -6284,7 +6329,7 @@ yydefault: case 87: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:773 +//line sql.y:775 { // Create table [name] like [name] yyDollar[1].createTableUnion().OptLike = yyDollar[2].optLikeUnion() @@ -6295,7 +6340,7 @@ yydefault: case 88: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:780 +//line sql.y:782 { indexDef := yyDollar[1].alterTableUnion().AlterOptions[0].(*AddIndexDefinition).IndexDefinition indexDef.Columns = yyDollar[3].indexColumnsUnion() @@ -6308,7 +6353,7 @@ yydefault: case 89: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Statement -//line sql.y:789 +//line sql.y:791 { yyLOCAL = &CreateView{ViewName: yyDollar[8].tableName.ToViewName(), IsReplace: yyDollar[3].booleanUnion(), Algorithm: yyDollar[4].str, Definer: yyDollar[5].str, Security: yyDollar[6].str, Columns: yyDollar[9].columnsUnion(), Select: yyDollar[11].selStmtUnion(), CheckOption: yyDollar[12].str} } @@ -6316,7 +6361,7 @@ yydefault: case 90: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:793 +//line sql.y:795 { yyDollar[1].createDatabaseUnion().FullyParsed = true yyDollar[1].createDatabaseUnion().CreateOptions = yyDollar[2].collateAndCharsetsUnion() @@ -6326,7 +6371,7 @@ yydefault: case 91: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:800 +//line sql.y:802 { yyLOCAL = false } @@ -6334,33 +6379,33 @@ yydefault: case 92: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:804 +//line sql.y:806 { yyLOCAL = true } yyVAL.union = yyLOCAL case 93: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:809 +//line sql.y:811 { yyVAL.colIdent = NewColIdent("") } case 94: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:813 +//line sql.y:815 { yyVAL.colIdent = yyDollar[2].colIdent } case 95: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:819 +//line sql.y:821 { yyVAL.colIdent = yyDollar[1].colIdent } case 96: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:824 +//line sql.y:826 { var v []VindexParam yyLOCAL = v @@ -6369,7 +6414,7 @@ yydefault: case 97: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:829 +//line sql.y:831 { yyLOCAL = yyDollar[2].vindexParamsUnion() } @@ -6377,7 +6422,7 @@ yydefault: case 98: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:835 +//line sql.y:837 { yyLOCAL = make([]VindexParam, 0, 4) yyLOCAL = append(yyLOCAL, yyDollar[1].vindexParam) @@ -6385,21 +6430,21 @@ yydefault: yyVAL.union = yyLOCAL case 99: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:840 +//line sql.y:842 { yySLICE := (*[]VindexParam)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].vindexParam) } case 100: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:846 +//line sql.y:848 { yyVAL.vindexParam = VindexParam{Key: yyDollar[1].colIdent, Val: yyDollar[3].str} } case 101: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *CreateTable -//line sql.y:852 +//line sql.y:854 { yyLOCAL = &CreateTable{Comments: Comments(yyDollar[2].strs), Table: yyDollar[6].tableName, IfNotExists: yyDollar[5].booleanUnion(), Temp: yyDollar[3].booleanUnion()} setDDL(yylex, yyLOCAL) @@ -6408,7 +6453,7 @@ yydefault: case 102: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:859 +//line sql.y:861 { yyLOCAL = &AlterTable{Comments: Comments(yyDollar[2].strs), Table: yyDollar[4].tableName} setDDL(yylex, yyLOCAL) @@ -6417,7 +6462,7 @@ yydefault: case 103: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:866 +//line sql.y:868 { yyLOCAL = &AlterTable{Table: yyDollar[7].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[4].colIdent, Type: string(yyDollar[3].str)}, Options: yyDollar[5].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) @@ -6426,7 +6471,7 @@ yydefault: case 104: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:871 +//line sql.y:873 { yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Fulltext: true}, Options: yyDollar[6].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) @@ -6435,7 +6480,7 @@ yydefault: case 105: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:876 +//line sql.y:878 { yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Spatial: true}, Options: yyDollar[6].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) @@ -6444,7 +6489,7 @@ yydefault: case 106: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:881 +//line sql.y:883 { yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Unique: true}, Options: yyDollar[6].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) @@ -6453,7 +6498,7 @@ yydefault: case 107: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *CreateDatabase -//line sql.y:888 +//line sql.y:890 { yyLOCAL = &CreateDatabase{Comments: Comments(yyDollar[4].strs), DBName: yyDollar[6].tableIdent, IfNotExists: yyDollar[5].booleanUnion()} setDDL(yylex, yyLOCAL) @@ -6462,7 +6507,7 @@ yydefault: case 108: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AlterDatabase -//line sql.y:895 +//line sql.y:897 { yyLOCAL = &AlterDatabase{} setDDL(yylex, yyLOCAL) @@ -6471,7 +6516,7 @@ yydefault: case 111: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableSpec -//line sql.y:906 +//line sql.y:908 { yyLOCAL = yyDollar[2].tableSpecUnion() yyLOCAL.Options = yyDollar[4].tableOptionsUnion() @@ -6480,7 +6525,7 @@ yydefault: case 112: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []CollateAndCharset -//line sql.y:912 +//line sql.y:914 { yyLOCAL = nil } @@ -6488,7 +6533,7 @@ yydefault: case 113: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []CollateAndCharset -//line sql.y:916 +//line sql.y:918 { yyLOCAL = yyDollar[1].collateAndCharsetsUnion() } @@ -6496,7 +6541,7 @@ yydefault: case 114: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []CollateAndCharset -//line sql.y:922 +//line sql.y:924 { yyLOCAL = []CollateAndCharset{yyDollar[1].collateAndCharset} } @@ -6504,21 +6549,21 @@ yydefault: case 115: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []CollateAndCharset -//line sql.y:926 +//line sql.y:928 { yyLOCAL = []CollateAndCharset{yyDollar[1].collateAndCharset} } yyVAL.union = yyLOCAL case 116: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:930 +//line sql.y:932 { yySLICE := (*[]CollateAndCharset)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].collateAndCharset) } case 117: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:934 +//line sql.y:936 { yySLICE := (*[]CollateAndCharset)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].collateAndCharset) @@ -6526,7 +6571,7 @@ yydefault: case 118: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:939 +//line sql.y:941 { yyLOCAL = false } @@ -6534,39 +6579,39 @@ yydefault: case 119: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:943 +//line sql.y:945 { yyLOCAL = true } yyVAL.union = yyLOCAL case 120: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:949 +//line sql.y:951 { yyVAL.collateAndCharset = CollateAndCharset{Type: CharacterSetType, Value: (yyDollar[4].colIdent.String()), IsDefault: yyDollar[1].booleanUnion()} } case 121: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:953 +//line sql.y:955 { yyVAL.collateAndCharset = CollateAndCharset{Type: CharacterSetType, Value: (encodeSQLString(yyDollar[4].str)), IsDefault: yyDollar[1].booleanUnion()} } case 122: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:959 +//line sql.y:961 { yyVAL.collateAndCharset = CollateAndCharset{Type: CollateType, Value: (yyDollar[4].colIdent.String()), IsDefault: yyDollar[1].booleanUnion()} } case 123: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:963 +//line sql.y:965 { yyVAL.collateAndCharset = CollateAndCharset{Type: CollateType, Value: (encodeSQLString(yyDollar[4].str)), IsDefault: yyDollar[1].booleanUnion()} } case 124: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *OptLike -//line sql.y:970 +//line sql.y:972 { yyLOCAL = &OptLike{LikeTable: yyDollar[2].tableName} } @@ -6574,7 +6619,7 @@ yydefault: case 125: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *OptLike -//line sql.y:974 +//line sql.y:976 { yyLOCAL = &OptLike{LikeTable: yyDollar[3].tableName} } @@ -6582,14 +6627,14 @@ yydefault: case 126: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*ColumnDefinition -//line sql.y:980 +//line sql.y:982 { yyLOCAL = []*ColumnDefinition{yyDollar[1].columnDefinitionUnion()} } yyVAL.union = yyLOCAL case 127: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:984 +//line sql.y:986 { yySLICE := (*[]*ColumnDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].columnDefinitionUnion()) @@ -6597,7 +6642,7 @@ yydefault: case 128: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *TableSpec -//line sql.y:990 +//line sql.y:992 { yyLOCAL = &TableSpec{} yyLOCAL.AddColumn(yyDollar[1].columnDefinitionUnion()) @@ -6606,7 +6651,7 @@ yydefault: case 129: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *TableSpec -//line sql.y:995 +//line sql.y:997 { yyLOCAL = &TableSpec{} yyLOCAL.AddConstraint(yyDollar[1].constraintDefinitionUnion()) @@ -6614,39 +6659,39 @@ yydefault: yyVAL.union = yyLOCAL case 130: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1000 +//line sql.y:1002 { yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion()) } case 131: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1004 +//line sql.y:1006 { yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion()) yyVAL.tableSpecUnion().AddConstraint(yyDollar[4].constraintDefinitionUnion()) } case 132: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1009 +//line sql.y:1011 { yyVAL.tableSpecUnion().AddIndex(yyDollar[3].indexDefinitionUnion()) } case 133: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1013 +//line sql.y:1015 { yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion()) } case 134: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1017 +//line sql.y:1019 { yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion()) } case 135: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnDefinition -//line sql.y:1023 +//line sql.y:1025 { yyDollar[2].columnType.Options = yyDollar[3].columnTypeOptionsUnion() yyLOCAL = &ColumnDefinition{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType} @@ -6655,7 +6700,7 @@ yydefault: case 136: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *ColumnDefinition -//line sql.y:1028 +//line sql.y:1030 { yyDollar[2].columnType.Options = yyDollar[8].columnTypeOptionsUnion() yyDollar[2].columnType.Options.As = yyDollar[6].exprUnion() @@ -6664,20 +6709,20 @@ yydefault: yyVAL.union = yyLOCAL case 137: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1035 +//line sql.y:1037 { yyVAL.str = "" } case 138: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1039 +//line sql.y:1041 { yyVAL.str = "" } case 139: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1048 +//line sql.y:1050 { yyLOCAL = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil, As: nil} } @@ -6685,7 +6730,7 @@ yydefault: case 140: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1052 +//line sql.y:1054 { val := true yyDollar[1].columnTypeOptionsUnion().Null = &val @@ -6695,7 +6740,7 @@ yydefault: case 141: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1058 +//line sql.y:1060 { val := false yyDollar[1].columnTypeOptionsUnion().Null = &val @@ -6705,7 +6750,7 @@ yydefault: case 142: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1064 +//line sql.y:1066 { yyDollar[1].columnTypeOptionsUnion().Default = yyDollar[3].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6714,7 +6759,7 @@ yydefault: case 143: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1069 +//line sql.y:1071 { yyDollar[1].columnTypeOptionsUnion().OnUpdate = yyDollar[4].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6723,7 +6768,7 @@ yydefault: case 144: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1074 +//line sql.y:1076 { yyDollar[1].columnTypeOptionsUnion().Autoincrement = true yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6732,7 +6777,7 @@ yydefault: case 145: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1079 +//line sql.y:1081 { yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6741,7 +6786,7 @@ yydefault: case 146: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1084 +//line sql.y:1086 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6750,7 +6795,7 @@ yydefault: case 147: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnStorage -//line sql.y:1091 +//line sql.y:1093 { yyLOCAL = VirtualStorage } @@ -6758,7 +6803,7 @@ yydefault: case 148: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnStorage -//line sql.y:1095 +//line sql.y:1097 { yyLOCAL = StoredStorage } @@ -6766,7 +6811,7 @@ yydefault: case 149: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1100 +//line sql.y:1102 { yyLOCAL = &ColumnTypeOptions{} } @@ -6774,7 +6819,7 @@ yydefault: case 150: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1104 +//line sql.y:1106 { yyDollar[1].columnTypeOptionsUnion().Storage = yyDollar[2].columnStorageUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6783,7 +6828,7 @@ yydefault: case 151: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1109 +//line sql.y:1111 { val := true yyDollar[1].columnTypeOptionsUnion().Null = &val @@ -6793,7 +6838,7 @@ yydefault: case 152: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1115 +//line sql.y:1117 { val := false yyDollar[1].columnTypeOptionsUnion().Null = &val @@ -6803,7 +6848,7 @@ yydefault: case 153: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1121 +//line sql.y:1123 { yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6812,7 +6857,7 @@ yydefault: case 154: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1126 +//line sql.y:1128 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6821,7 +6866,7 @@ yydefault: case 155: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1133 +//line sql.y:1135 { yyLOCAL = colKeyPrimary } @@ -6829,7 +6874,7 @@ yydefault: case 156: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1137 +//line sql.y:1139 { yyLOCAL = colKeyUnique } @@ -6837,7 +6882,7 @@ yydefault: case 157: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1141 +//line sql.y:1143 { yyLOCAL = colKeyUniqueKey } @@ -6845,14 +6890,14 @@ yydefault: case 158: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1145 +//line sql.y:1147 { yyLOCAL = colKey } yyVAL.union = yyLOCAL case 159: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1151 +//line sql.y:1153 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].booleanUnion() @@ -6860,74 +6905,74 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1162 +//line sql.y:1164 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].literalUnion() } case 164: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1167 +//line sql.y:1169 { yyVAL.columnType = yyDollar[1].columnType } case 165: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1173 +//line sql.y:1175 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 166: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1177 +//line sql.y:1179 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 167: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1181 +//line sql.y:1183 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 168: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1185 +//line sql.y:1187 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 169: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1189 +//line sql.y:1191 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 170: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1193 +//line sql.y:1195 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 171: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1197 +//line sql.y:1199 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 172: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1201 +//line sql.y:1203 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 173: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1205 +//line sql.y:1207 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 174: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1211 +//line sql.y:1213 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6935,7 +6980,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1217 +//line sql.y:1219 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6943,7 +6988,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1223 +//line sql.y:1225 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6951,7 +6996,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1229 +//line sql.y:1231 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6959,7 +7004,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1235 +//line sql.y:1237 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6967,189 +7012,189 @@ yydefault: } case 179: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1243 +//line sql.y:1245 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 180: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1247 +//line sql.y:1249 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 181: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1251 +//line sql.y:1253 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 182: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1255 +//line sql.y:1257 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1259 +//line sql.y:1261 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 184: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1265 +//line sql.y:1267 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 185: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1269 +//line sql.y:1271 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 186: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1273 +//line sql.y:1275 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 187: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1277 +//line sql.y:1279 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1281 +//line sql.y:1283 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 189: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1285 +//line sql.y:1287 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 190: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1289 +//line sql.y:1291 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 191: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1293 +//line sql.y:1295 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 192: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1297 +//line sql.y:1299 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 193: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1301 +//line sql.y:1303 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 194: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1305 +//line sql.y:1307 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 195: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1309 +//line sql.y:1311 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 196: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1313 +//line sql.y:1315 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 197: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1317 +//line sql.y:1319 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 198: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1322 +//line sql.y:1324 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 199: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1328 +//line sql.y:1330 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 200: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1332 +//line sql.y:1334 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 201: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1336 +//line sql.y:1338 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 202: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1340 +//line sql.y:1342 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 203: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1344 +//line sql.y:1346 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 204: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1348 +//line sql.y:1350 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 205: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1352 +//line sql.y:1354 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 206: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1356 +//line sql.y:1358 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 207: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1362 +//line sql.y:1364 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, encodeSQLString(yyDollar[1].str)) } case 208: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1367 +//line sql.y:1369 { yyVAL.strs = append(yyDollar[1].strs, encodeSQLString(yyDollar[3].str)) } case 209: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Literal -//line sql.y:1372 +//line sql.y:1374 { yyLOCAL = nil } @@ -7157,20 +7202,20 @@ yydefault: case 210: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Literal -//line sql.y:1376 +//line sql.y:1378 { yyLOCAL = NewIntLiteral(yyDollar[2].str) } yyVAL.union = yyLOCAL case 211: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1381 +//line sql.y:1383 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 212: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1385 +//line sql.y:1387 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), @@ -7179,13 +7224,13 @@ yydefault: } case 213: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1393 +//line sql.y:1395 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 214: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1397 +//line sql.y:1399 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), @@ -7193,7 +7238,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1403 +//line sql.y:1405 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), @@ -7203,7 +7248,7 @@ yydefault: case 216: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1411 +//line sql.y:1413 { yyLOCAL = false } @@ -7211,7 +7256,7 @@ yydefault: case 217: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1415 +//line sql.y:1417 { yyLOCAL = true } @@ -7219,7 +7264,7 @@ yydefault: case 218: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1420 +//line sql.y:1422 { yyLOCAL = false } @@ -7227,57 +7272,57 @@ yydefault: case 219: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1424 +//line sql.y:1426 { yyLOCAL = true } yyVAL.union = yyLOCAL case 220: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1429 +//line sql.y:1431 { yyVAL.str = "" } case 221: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1433 +//line sql.y:1435 { yyVAL.str = string(yyDollar[2].colIdent.String()) } case 222: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1437 +//line sql.y:1439 { yyVAL.str = encodeSQLString(yyDollar[2].str) } case 223: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1441 +//line sql.y:1443 { yyVAL.str = string(yyDollar[2].str) } case 224: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1446 +//line sql.y:1448 { yyVAL.str = "" } case 225: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1450 +//line sql.y:1452 { yyVAL.str = string(yyDollar[2].colIdent.String()) } case 226: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1454 +//line sql.y:1456 { yyVAL.str = encodeSQLString(yyDollar[2].str) } case 227: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexDefinition -//line sql.y:1461 +//line sql.y:1463 { yyLOCAL = &IndexDefinition{Info: yyDollar[1].indexInfoUnion(), Columns: yyDollar[3].indexColumnsUnion(), Options: yyDollar[5].indexOptionsUnion()} } @@ -7285,7 +7330,7 @@ yydefault: case 228: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1466 +//line sql.y:1468 { yyLOCAL = nil } @@ -7293,7 +7338,7 @@ yydefault: case 229: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1470 +//line sql.y:1472 { yyLOCAL = yyDollar[1].indexOptionsUnion() } @@ -7301,14 +7346,14 @@ yydefault: case 230: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1476 +//line sql.y:1478 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL case 231: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1480 +//line sql.y:1482 { yySLICE := (*[]*IndexOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].indexOptionUnion()) @@ -7316,7 +7361,7 @@ yydefault: case 232: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1486 +//line sql.y:1488 { yyLOCAL = yyDollar[1].indexOptionUnion() } @@ -7324,7 +7369,7 @@ yydefault: case 233: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1490 +//line sql.y:1492 { // should not be string yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} @@ -7333,7 +7378,7 @@ yydefault: case 234: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1495 +//line sql.y:1497 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[2].str)} } @@ -7341,27 +7386,27 @@ yydefault: case 235: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1499 +//line sql.y:1501 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str) + " " + string(yyDollar[2].str), String: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL case 236: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1505 +//line sql.y:1507 { yyVAL.str = "" } case 237: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1509 +//line sql.y:1511 { yyVAL.str = string(yyDollar[1].str) } case 238: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1515 +//line sql.y:1517 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} } @@ -7369,7 +7414,7 @@ yydefault: case 239: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1519 +//line sql.y:1521 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Spatial: true, Unique: false} } @@ -7377,7 +7422,7 @@ yydefault: case 240: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1523 +//line sql.y:1525 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Fulltext: true, Unique: false} } @@ -7385,7 +7430,7 @@ yydefault: case 241: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1527 +//line sql.y:1529 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent(yyDollar[4].str), Unique: true} } @@ -7393,100 +7438,100 @@ yydefault: case 242: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1531 +//line sql.y:1533 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(yyDollar[2].str), Unique: false} } yyVAL.union = yyLOCAL case 243: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1536 +//line sql.y:1538 { yyVAL.str = "" } case 244: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1540 +//line sql.y:1542 { yyVAL.str = yyDollar[2].str } case 245: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1546 +//line sql.y:1548 { yyVAL.str = string(yyDollar[1].str) } case 246: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1550 +//line sql.y:1552 { yyVAL.str = string(yyDollar[1].str) } case 247: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1554 +//line sql.y:1556 { yyVAL.str = string(yyDollar[1].str) } case 248: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1561 +//line sql.y:1563 { yyVAL.str = string(yyDollar[1].str) } case 249: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1565 +//line sql.y:1567 { yyVAL.str = string(yyDollar[1].str) } case 250: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1570 +//line sql.y:1572 { yyVAL.str = "key" } case 251: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1574 +//line sql.y:1576 { yyVAL.str = yyDollar[1].str } case 252: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1580 +//line sql.y:1582 { yyVAL.str = string(yyDollar[1].str) } case 253: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1584 +//line sql.y:1586 { yyVAL.str = string(yyDollar[1].str) } case 254: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1589 +//line sql.y:1591 { yyVAL.str = "" } case 255: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1593 +//line sql.y:1595 { yyVAL.str = string(yyDollar[1].colIdent.String()) } case 256: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexColumn -//line sql.y:1599 +//line sql.y:1601 { yyLOCAL = []*IndexColumn{yyDollar[1].indexColumnUnion()} } yyVAL.union = yyLOCAL case 257: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1603 +//line sql.y:1605 { yySLICE := (*[]*IndexColumn)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].indexColumnUnion()) @@ -7494,7 +7539,7 @@ yydefault: case 258: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexColumn -//line sql.y:1609 +//line sql.y:1611 { yyLOCAL = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].literalUnion(), Direction: yyDollar[3].orderDirectionUnion()} } @@ -7502,7 +7547,7 @@ yydefault: case 259: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1615 +//line sql.y:1617 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } @@ -7510,7 +7555,7 @@ yydefault: case 260: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1619 +//line sql.y:1621 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } @@ -7518,7 +7563,7 @@ yydefault: case 261: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1625 +//line sql.y:1627 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } @@ -7526,853 +7571,861 @@ yydefault: case 262: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1629 +//line sql.y:1631 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } yyVAL.union = yyLOCAL case 263: - yyDollar = yyS[yypt-11 : yypt+1] + yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1635 +//line sql.y:1637 { - yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion()} + yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferenceDefinition: yyDollar[7].referenceDefinitionUnion()} } yyVAL.union = yyLOCAL case 264: - yyDollar = yyS[yypt-12 : yypt+1] - var yyLOCAL ConstraintInfo -//line sql.y:1639 + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL *ReferenceDefinition +//line sql.y:1643 { - yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnDelete: yyDollar[12].ReferenceActionUnion()} + yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL case 265: - yyDollar = yyS[yypt-12 : yypt+1] - var yyLOCAL ConstraintInfo -//line sql.y:1643 + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL *ReferenceDefinition +//line sql.y:1647 { - yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnUpdate: yyDollar[12].ReferenceActionUnion()} + yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnDelete: yyDollar[6].ReferenceActionUnion()} } yyVAL.union = yyLOCAL case 266: - yyDollar = yyS[yypt-13 : yypt+1] - var yyLOCAL ConstraintInfo -//line sql.y:1647 + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL *ReferenceDefinition +//line sql.y:1651 { - yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferencedTable: yyDollar[8].tableName, ReferencedColumns: yyDollar[10].columnsUnion(), OnDelete: yyDollar[12].ReferenceActionUnion(), OnUpdate: yyDollar[13].ReferenceActionUnion()} + yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnUpdate: yyDollar[6].ReferenceActionUnion()} } yyVAL.union = yyLOCAL case 267: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL *ReferenceDefinition +//line sql.y:1655 + { + yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnDelete: yyDollar[6].ReferenceActionUnion(), OnUpdate: yyDollar[7].ReferenceActionUnion()} + } + yyVAL.union = yyLOCAL + case 268: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1653 +//line sql.y:1661 { yyLOCAL = &CheckConstraintDefinition{Expr: yyDollar[3].exprUnion(), Enforced: yyDollar[5].booleanUnion()} } yyVAL.union = yyLOCAL - case 268: + case 269: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1659 +//line sql.y:1667 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } yyVAL.union = yyLOCAL - case 269: + case 270: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1665 +//line sql.y:1673 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } yyVAL.union = yyLOCAL - case 270: + case 271: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1671 +//line sql.y:1679 { yyLOCAL = Restrict } yyVAL.union = yyLOCAL - case 271: + case 272: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1675 +//line sql.y:1683 { yyLOCAL = Cascade } yyVAL.union = yyLOCAL - case 272: + case 273: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1679 +//line sql.y:1687 { yyLOCAL = NoAction } yyVAL.union = yyLOCAL - case 273: + case 274: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1683 +//line sql.y:1691 { yyLOCAL = SetDefault } yyVAL.union = yyLOCAL - case 274: + case 275: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1687 +//line sql.y:1695 { yyLOCAL = SetNull } yyVAL.union = yyLOCAL - case 275: + case 276: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1692 +//line sql.y:1700 { yyVAL.str = "" } - case 276: + case 277: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1696 +//line sql.y:1704 { yyVAL.str = string(yyDollar[1].str) } - case 277: + case 278: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1700 +//line sql.y:1708 { yyVAL.str = string(yyDollar[1].str) } - case 278: + case 279: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1705 +//line sql.y:1713 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 279: + case 280: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1709 +//line sql.y:1717 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 280: + case 281: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:1713 +//line sql.y:1721 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 281: + case 282: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1718 +//line sql.y:1726 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 282: + case 283: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1722 +//line sql.y:1730 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 283: + case 284: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1728 +//line sql.y:1736 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 284: + case 285: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1732 +//line sql.y:1740 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableOptionUnion()) } - case 285: + case 286: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1736 +//line sql.y:1744 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) } - case 286: + case 287: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1742 +//line sql.y:1750 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 287: + case 288: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1746 +//line sql.y:1754 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) } - case 288: + case 289: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1752 +//line sql.y:1760 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 289: + case 290: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1756 +//line sql.y:1764 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 290: + case 291: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1760 +//line sql.y:1768 { yyLOCAL = &TableOption{Name: (string(yyDollar[2].str)), String: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 291: + case 292: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1764 +//line sql.y:1772 { yyLOCAL = &TableOption{Name: string(yyDollar[2].str), String: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 292: + case 293: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1768 +//line sql.y:1776 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 293: + case 294: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1772 +//line sql.y:1780 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 294: + case 295: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1776 +//line sql.y:1784 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 295: + case 296: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1780 +//line sql.y:1788 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 296: + case 297: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1784 +//line sql.y:1792 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 297: + case 298: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1788 +//line sql.y:1796 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 298: + case 299: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1792 +//line sql.y:1800 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 299: + case 300: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1796 +//line sql.y:1804 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 300: + case 301: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1800 +//line sql.y:1808 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 301: + case 302: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1804 +//line sql.y:1812 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 302: + case 303: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1808 +//line sql.y:1816 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 303: + case 304: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1812 +//line sql.y:1820 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 304: + case 305: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1816 +//line sql.y:1824 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 305: + case 306: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1820 +//line sql.y:1828 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 306: + case 307: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1824 +//line sql.y:1832 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 307: + case 308: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1828 +//line sql.y:1836 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 308: + case 309: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1832 +//line sql.y:1840 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 309: + case 310: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1836 +//line sql.y:1844 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 310: + case 311: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1840 +//line sql.y:1848 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 311: + case 312: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1844 +//line sql.y:1852 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 312: + case 313: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1848 +//line sql.y:1856 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 313: + case 314: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1852 +//line sql.y:1860 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 314: + case 315: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1856 +//line sql.y:1864 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 315: + case 316: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1860 +//line sql.y:1868 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: (yyDollar[3].colIdent.String() + yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 316: + case 317: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1864 +//line sql.y:1872 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Tables: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 317: + case 318: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1869 +//line sql.y:1877 { yyVAL.str = "" } - case 318: + case 319: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1873 +//line sql.y:1881 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 319: + case 320: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1877 +//line sql.y:1885 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 329: + case 330: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1896 +//line sql.y:1904 { yyVAL.str = yyDollar[1].colIdent.String() } - case 330: + case 331: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1900 +//line sql.y:1908 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 331: + case 332: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1904 +//line sql.y:1912 { yyVAL.str = string(yyDollar[1].str) } - case 332: + case 333: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1909 +//line sql.y:1917 { yyVAL.str = "" } - case 334: + case 335: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:1915 +//line sql.y:1923 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 335: + case 336: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:1919 +//line sql.y:1927 { yyLOCAL = yyDollar[2].colNameUnion() } yyVAL.union = yyLOCAL - case 336: + case 337: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:1924 +//line sql.y:1932 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 337: + case 338: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:1928 +//line sql.y:1936 { yyLOCAL = yyDollar[2].colNameUnion() } yyVAL.union = yyLOCAL - case 338: + case 339: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1933 +//line sql.y:1941 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 339: + case 340: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1937 +//line sql.y:1945 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL - case 340: + case 341: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1941 +//line sql.y:1949 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &OrderByOption{Cols: yyDollar[5].columnsUnion()}) } - case 341: + case 342: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1945 +//line sql.y:1953 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL - case 342: + case 343: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1949 +//line sql.y:1957 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionsUnion()...) } - case 343: + case 344: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1953 +//line sql.y:1961 { yyLOCAL = append(append(yyDollar[1].alterOptionsUnion(), yyDollar[3].alterOptionsUnion()...), &OrderByOption{Cols: yyDollar[7].columnsUnion()}) } yyVAL.union = yyLOCAL - case 344: + case 345: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1959 +//line sql.y:1967 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 345: + case 346: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1963 +//line sql.y:1971 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 346: + case 347: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1967 +//line sql.y:1975 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 347: + case 348: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1973 +//line sql.y:1981 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 348: + case 349: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1977 +//line sql.y:1985 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } yyVAL.union = yyLOCAL - case 349: + case 350: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1981 +//line sql.y:1989 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } yyVAL.union = yyLOCAL - case 350: + case 351: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1985 +//line sql.y:1993 { yyLOCAL = &AddIndexDefinition{IndexDefinition: yyDollar[2].indexDefinitionUnion()} } yyVAL.union = yyLOCAL - case 351: + case 352: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1989 +//line sql.y:1997 { yyLOCAL = &AddColumns{Columns: yyDollar[4].columnDefinitionsUnion()} } yyVAL.union = yyLOCAL - case 352: + case 353: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1993 +//line sql.y:2001 { yyLOCAL = &AddColumns{Columns: []*ColumnDefinition{yyDollar[3].columnDefinitionUnion()}, First: yyDollar[4].colNameUnion(), After: yyDollar[5].colNameUnion()} } yyVAL.union = yyLOCAL - case 353: + case 354: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1997 +//line sql.y:2005 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: true} } yyVAL.union = yyLOCAL - case 354: + case 355: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2001 +//line sql.y:2009 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 355: + case 356: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2005 +//line sql.y:2013 { yyLOCAL = &ChangeColumn{OldColumn: yyDollar[3].colNameUnion(), NewColDefinition: yyDollar[4].columnDefinitionUnion(), First: yyDollar[5].colNameUnion(), After: yyDollar[6].colNameUnion()} } yyVAL.union = yyLOCAL - case 356: + case 357: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2009 +//line sql.y:2017 { yyLOCAL = &ModifyColumn{NewColDefinition: yyDollar[3].columnDefinitionUnion(), First: yyDollar[4].colNameUnion(), After: yyDollar[5].colNameUnion()} } yyVAL.union = yyLOCAL - case 357: + case 358: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2013 +//line sql.y:2021 { yyLOCAL = &AlterCharset{CharacterSet: yyDollar[4].str, Collate: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 358: + case 359: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2017 +//line sql.y:2025 { yyLOCAL = &KeyState{Enable: false} } yyVAL.union = yyLOCAL - case 359: + case 360: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2021 +//line sql.y:2029 { yyLOCAL = &KeyState{Enable: true} } yyVAL.union = yyLOCAL - case 360: + case 361: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2025 +//line sql.y:2033 { yyLOCAL = &TablespaceOperation{Import: false} } yyVAL.union = yyLOCAL - case 361: + case 362: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2029 +//line sql.y:2037 { yyLOCAL = &TablespaceOperation{Import: true} } yyVAL.union = yyLOCAL - case 362: + case 363: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2033 +//line sql.y:2041 { yyLOCAL = &DropColumn{Name: yyDollar[3].colNameUnion()} } yyVAL.union = yyLOCAL - case 363: + case 364: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2037 +//line sql.y:2045 { yyLOCAL = &DropKey{Type: NormalKeyType, Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 364: + case 365: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2041 +//line sql.y:2049 { yyLOCAL = &DropKey{Type: PrimaryKeyType} } yyVAL.union = yyLOCAL - case 365: + case 366: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2045 +//line sql.y:2053 { yyLOCAL = &DropKey{Type: ForeignKeyType, Name: yyDollar[4].colIdent} } yyVAL.union = yyLOCAL - case 366: + case 367: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2049 +//line sql.y:2057 { yyLOCAL = &Force{} } yyVAL.union = yyLOCAL - case 367: + case 368: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2053 +//line sql.y:2061 { yyLOCAL = &RenameTableName{Table: yyDollar[3].tableName} } yyVAL.union = yyLOCAL - case 368: + case 369: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2057 +//line sql.y:2065 { yyLOCAL = &RenameIndex{OldName: yyDollar[3].colIdent, NewName: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 369: + case 370: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2063 +//line sql.y:2071 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 370: + case 371: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2067 +//line sql.y:2075 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 371: + case 372: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2073 +//line sql.y:2081 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 372: + case 373: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2077 +//line sql.y:2085 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 373: + case 374: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2081 +//line sql.y:2089 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 374: + case 375: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2085 +//line sql.y:2093 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.union = yyLOCAL - case 375: + case 376: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2089 +//line sql.y:2097 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.union = yyLOCAL - case 376: + case 377: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2093 +//line sql.y:2101 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.union = yyLOCAL - case 377: + case 378: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2097 +//line sql.y:2105 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.union = yyLOCAL - case 378: + case 379: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2101 +//line sql.y:2109 { yyLOCAL = &Validation{With: true} } yyVAL.union = yyLOCAL - case 379: + case 380: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2105 +//line sql.y:2113 { yyLOCAL = &Validation{With: false} } yyVAL.union = yyLOCAL - case 380: + case 381: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2111 +//line sql.y:2119 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 381: + case 382: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2117 +//line sql.y:2125 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8380,10 +8433,10 @@ yydefault: yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 382: + case 383: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2124 +//line sql.y:2132 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8391,28 +8444,28 @@ yydefault: yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 383: + case 384: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2131 +//line sql.y:2139 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[2].partSpecUnion() yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 384: + case 385: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL Statement -//line sql.y:2137 +//line sql.y:2145 { yyLOCAL = &AlterView{ViewName: yyDollar[7].tableName.ToViewName(), Algorithm: yyDollar[3].str, Definer: yyDollar[4].str, Security: yyDollar[5].str, Columns: yyDollar[8].columnsUnion(), Select: yyDollar[10].selStmtUnion(), CheckOption: yyDollar[11].str} } yyVAL.union = yyLOCAL - case 385: + case 386: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2141 +//line sql.y:2149 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8420,10 +8473,10 @@ yydefault: yyLOCAL = yyDollar[1].alterDatabaseUnion() } yyVAL.union = yyLOCAL - case 386: + case 387: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2148 +//line sql.y:2156 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8431,10 +8484,10 @@ yydefault: yyLOCAL = yyDollar[1].alterDatabaseUnion() } yyVAL.union = yyLOCAL - case 387: + case 388: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2155 +//line sql.y:2163 { yyLOCAL = &AlterVschema{ Action: CreateVindexDDLAction, @@ -8447,10 +8500,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 388: + case 389: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2167 +//line sql.y:2175 { yyLOCAL = &AlterVschema{ Action: DropVindexDDLAction, @@ -8461,26 +8514,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 389: + case 390: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2177 +//line sql.y:2185 { yyLOCAL = &AlterVschema{Action: AddVschemaTableDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 390: + case 391: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2181 +//line sql.y:2189 { yyLOCAL = &AlterVschema{Action: DropVschemaTableDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 391: + case 392: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL Statement -//line sql.y:2185 +//line sql.y:2193 { yyLOCAL = &AlterVschema{ Action: AddColVindexDDLAction, @@ -8494,10 +8547,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 392: + case 393: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2198 +//line sql.y:2206 { yyLOCAL = &AlterVschema{ Action: DropColVindexDDLAction, @@ -8508,18 +8561,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 393: + case 394: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2208 +//line sql.y:2216 { yyLOCAL = &AlterVschema{Action: AddSequenceDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 394: + case 395: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Statement -//line sql.y:2212 +//line sql.y:2220 { yyLOCAL = &AlterVschema{ Action: AddAutoIncDDLAction, @@ -8531,10 +8584,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 395: + case 396: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2223 +//line sql.y:2231 { yyLOCAL = &AlterMigration{ Type: RetryMigrationType, @@ -8542,10 +8595,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 396: + case 397: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2230 +//line sql.y:2238 { yyLOCAL = &AlterMigration{ Type: CompleteMigrationType, @@ -8553,10 +8606,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 397: + case 398: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2237 +//line sql.y:2245 { yyLOCAL = &AlterMigration{ Type: CancelMigrationType, @@ -8564,282 +8617,282 @@ yydefault: } } yyVAL.union = yyLOCAL - case 398: + case 399: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2244 +//line sql.y:2252 { yyLOCAL = &AlterMigration{ Type: CancelAllMigrationType, } } yyVAL.union = yyLOCAL - case 399: + case 400: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2252 +//line sql.y:2260 { yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}} } yyVAL.union = yyLOCAL - case 400: + case 401: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2256 +//line sql.y:2264 { yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 401: + case 402: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2260 +//line sql.y:2268 { yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()} } yyVAL.union = yyLOCAL - case 402: + case 403: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2264 +//line sql.y:2272 { yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 403: + case 404: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2268 +//line sql.y:2276 { yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true} } yyVAL.union = yyLOCAL - case 404: + case 405: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2272 +//line sql.y:2280 { yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 405: + case 406: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2276 +//line sql.y:2284 { yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true} } yyVAL.union = yyLOCAL - case 406: + case 407: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2280 +//line sql.y:2288 { yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 407: + case 408: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2284 +//line sql.y:2292 { yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true} } yyVAL.union = yyLOCAL - case 408: + case 409: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2288 +//line sql.y:2296 { yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 409: + case 410: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2292 +//line sql.y:2300 { yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].colIdent}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()} } yyVAL.union = yyLOCAL - case 410: + case 411: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2296 +//line sql.y:2304 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 411: + case 412: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2300 +//line sql.y:2308 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true} } yyVAL.union = yyLOCAL - case 412: + case 413: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2304 +//line sql.y:2312 { yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 413: + case 414: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2308 +//line sql.y:2316 { yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true} } yyVAL.union = yyLOCAL - case 414: + case 415: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2312 +//line sql.y:2320 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 415: + case 416: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2316 +//line sql.y:2324 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true} } yyVAL.union = yyLOCAL - case 416: + case 417: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2320 +//line sql.y:2328 { yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 417: + case 418: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2324 +//line sql.y:2332 { yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true} } yyVAL.union = yyLOCAL - case 418: + case 419: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2328 +//line sql.y:2336 { yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 419: + case 420: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2332 +//line sql.y:2340 { yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true} } yyVAL.union = yyLOCAL - case 420: + case 421: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2336 +//line sql.y:2344 { yyLOCAL = &PartitionSpec{Action: UpgradeAction} } yyVAL.union = yyLOCAL - case 421: + case 422: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2341 +//line sql.y:2349 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 422: + case 423: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2345 +//line sql.y:2353 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 423: + case 424: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2349 +//line sql.y:2357 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 424: + case 425: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:2356 +//line sql.y:2364 { yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()} } yyVAL.union = yyLOCAL - case 425: + case 426: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2360 +//line sql.y:2368 { yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].partDefUnion()) } - case 426: + case 427: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2366 +//line sql.y:2374 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 427: + case 428: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2370 +//line sql.y:2378 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} } yyVAL.union = yyLOCAL - case 428: + case 429: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2376 +//line sql.y:2384 { yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()} } yyVAL.union = yyLOCAL - case 429: + case 430: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*RenameTablePair -//line sql.y:2382 +//line sql.y:2390 { yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}} } yyVAL.union = yyLOCAL - case 430: + case 431: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2386 +//line sql.y:2394 { yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName}) } - case 431: + case 432: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2392 +//line sql.y:2400 { yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs), Temp: yyDollar[3].booleanUnion()} } yyVAL.union = yyLOCAL - case 432: + case 433: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2396 +//line sql.y:2404 { // Change this to an alter statement if yyDollar[4].colIdent.Lowered() == "primary" { @@ -8849,387 +8902,387 @@ yydefault: } } yyVAL.union = yyLOCAL - case 433: + case 434: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2405 +//line sql.y:2413 { yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), IfExists: yyDollar[4].booleanUnion()} } yyVAL.union = yyLOCAL - case 434: + case 435: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2409 +//line sql.y:2417 { yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs), DBName: yyDollar[5].tableIdent, IfExists: yyDollar[4].booleanUnion()} } yyVAL.union = yyLOCAL - case 435: + case 436: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2415 +//line sql.y:2423 { yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName} } yyVAL.union = yyLOCAL - case 436: + case 437: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2419 +//line sql.y:2427 { yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName} } yyVAL.union = yyLOCAL - case 437: + case 438: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2424 +//line sql.y:2432 { yyLOCAL = &OtherRead{} } yyVAL.union = yyLOCAL - case 438: + case 439: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2430 +//line sql.y:2438 { yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 439: + case 440: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2434 +//line sql.y:2442 { yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 440: + case 441: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2438 +//line sql.y:2446 { yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 441: + case 442: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2442 +//line sql.y:2450 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 442: + case 443: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2446 +//line sql.y:2454 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 443: + case 444: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2450 +//line sql.y:2458 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 444: + case 445: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2454 +//line sql.y:2462 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 445: + case 446: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2458 +//line sql.y:2466 { yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 446: + case 447: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2462 +//line sql.y:2470 { yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 447: + case 448: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2466 +//line sql.y:2474 { yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 448: + case 449: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2470 +//line sql.y:2478 { yyLOCAL = &Show{&ShowBasic{Command: Privilege}} } yyVAL.union = yyLOCAL - case 449: + case 450: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2474 +//line sql.y:2482 { yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 450: + case 451: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2478 +//line sql.y:2486 { yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 451: + case 452: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2482 +//line sql.y:2490 { yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 452: + case 453: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2486 +//line sql.y:2494 { yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 453: + case 454: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2490 +//line sql.y:2498 { yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 454: + case 455: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2494 +//line sql.y:2502 { yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 455: + case 456: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2498 +//line sql.y:2506 { yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 456: + case 457: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2502 +//line sql.y:2510 { yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].tableIdent, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 457: + case 458: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2506 +//line sql.y:2514 { yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 458: + case 459: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2510 +//line sql.y:2518 { yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 459: + case 460: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2514 +//line sql.y:2522 { yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 460: + case 461: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2518 +//line sql.y:2526 { yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 461: + case 462: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2522 +//line sql.y:2530 { yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 462: + case 463: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2526 +//line sql.y:2534 { yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 463: + case 464: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2530 +//line sql.y:2538 { yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 464: + case 465: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2534 +//line sql.y:2542 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 465: + case 466: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2538 +//line sql.y:2546 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].colIdent.String()), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 466: + case 467: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2542 +//line sql.y:2550 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 467: + case 468: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2546 +//line sql.y:2554 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 468: + case 469: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2550 +//line sql.y:2558 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 469: + case 470: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2554 +//line sql.y:2562 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 470: + case 471: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2558 +//line sql.y:2566 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 471: + case 472: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2562 +//line sql.y:2570 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 472: + case 473: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2566 +//line sql.y:2574 { yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].tableIdent}} } yyVAL.union = yyLOCAL - case 473: + case 474: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2570 +//line sql.y:2578 { yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].tableIdent}} } yyVAL.union = yyLOCAL - case 474: + case 475: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2574 +//line sql.y:2582 { showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilterUnion()} yyLOCAL = &Show{&ShowLegacy{Scope: VitessMetadataScope, Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt}} } yyVAL.union = yyLOCAL - case 475: + case 476: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2579 +//line sql.y:2587 { yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL - case 476: + case 477: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2583 +//line sql.y:2591 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 477: + case 478: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2587 +//line sql.y:2595 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 478: + case 479: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2591 +//line sql.y:2599 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), OnTable: yyDollar[5].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 479: + case 480: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2595 +//line sql.y:2603 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 480: + case 481: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2600 +//line sql.y:2608 { // This should probably be a different type (ShowVitessTopoOpt), but // just getting the thing working for now @@ -9237,1204 +9290,1204 @@ yydefault: yyLOCAL = &Show{&ShowLegacy{Type: yyDollar[2].str, ShowTablesOpt: showTablesOpt}} } yyVAL.union = yyLOCAL - case 481: + case 482: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2614 +//line sql.y:2622 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].colIdent.String()), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 482: + case 483: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2618 +//line sql.y:2626 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 483: + case 484: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2622 +//line sql.y:2630 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 484: + case 485: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2628 +//line sql.y:2636 { yyVAL.str = string(yyDollar[1].str) } - case 485: + case 486: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2632 +//line sql.y:2640 { yyVAL.str = string(yyDollar[1].str) } - case 486: + case 487: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2638 +//line sql.y:2646 { yyVAL.str = "" } - case 487: + case 488: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2642 +//line sql.y:2650 { yyVAL.str = "extended " } - case 488: + case 489: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2648 +//line sql.y:2656 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 489: + case 490: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2652 +//line sql.y:2660 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 490: + case 491: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2658 +//line sql.y:2666 { yyVAL.str = string(yyDollar[1].str) } - case 491: + case 492: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2662 +//line sql.y:2670 { yyVAL.str = string(yyDollar[1].str) } - case 492: + case 493: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2668 +//line sql.y:2676 { yyVAL.tableIdent = NewTableIdent("") } - case 493: + case 494: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2672 +//line sql.y:2680 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 494: + case 495: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2676 +//line sql.y:2684 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 495: + case 496: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2682 +//line sql.y:2690 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 496: + case 497: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2686 +//line sql.y:2694 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 497: + case 498: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2690 +//line sql.y:2698 { yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 498: + case 499: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2696 +//line sql.y:2704 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 499: + case 500: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2700 +//line sql.y:2708 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 500: + case 501: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2706 +//line sql.y:2714 { yyVAL.empty = struct{}{} } - case 501: + case 502: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2710 +//line sql.y:2718 { yyVAL.empty = struct{}{} } - case 502: + case 503: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2714 +//line sql.y:2722 { yyVAL.empty = struct{}{} } - case 503: + case 504: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2720 +//line sql.y:2728 { yyLOCAL = &Use{DBName: yyDollar[2].tableIdent} } yyVAL.union = yyLOCAL - case 504: + case 505: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2724 +//line sql.y:2732 { yyLOCAL = &Use{DBName: TableIdent{v: ""}} } yyVAL.union = yyLOCAL - case 505: + case 506: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2730 +//line sql.y:2738 { yyLOCAL = &Begin{} } yyVAL.union = yyLOCAL - case 506: + case 507: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2734 +//line sql.y:2742 { yyLOCAL = &Begin{} } yyVAL.union = yyLOCAL - case 507: + case 508: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2740 +//line sql.y:2748 { yyLOCAL = &Commit{} } yyVAL.union = yyLOCAL - case 508: + case 509: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2746 +//line sql.y:2754 { yyLOCAL = &Rollback{} } yyVAL.union = yyLOCAL - case 509: + case 510: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2750 +//line sql.y:2758 { yyLOCAL = &SRollback{Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 510: + case 511: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2755 +//line sql.y:2763 { yyVAL.empty = struct{}{} } - case 511: + case 512: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2757 +//line sql.y:2765 { yyVAL.empty = struct{}{} } - case 512: + case 513: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2760 +//line sql.y:2768 { yyVAL.empty = struct{}{} } - case 513: + case 514: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2762 +//line sql.y:2770 { yyVAL.empty = struct{}{} } - case 514: + case 515: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2767 +//line sql.y:2775 { yyLOCAL = &Savepoint{Name: yyDollar[2].colIdent} } yyVAL.union = yyLOCAL - case 515: + case 516: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2773 +//line sql.y:2781 { yyLOCAL = &Release{Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 516: + case 517: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2778 +//line sql.y:2786 { yyLOCAL = EmptyType } yyVAL.union = yyLOCAL - case 517: + case 518: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2782 +//line sql.y:2790 { yyLOCAL = JSONType } yyVAL.union = yyLOCAL - case 518: + case 519: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2786 +//line sql.y:2794 { yyLOCAL = TreeType } yyVAL.union = yyLOCAL - case 519: + case 520: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2790 +//line sql.y:2798 { yyLOCAL = VitessType } yyVAL.union = yyLOCAL - case 520: + case 521: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2794 +//line sql.y:2802 { yyLOCAL = TraditionalType } yyVAL.union = yyLOCAL - case 521: + case 522: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2798 +//line sql.y:2806 { yyLOCAL = AnalyzeType } yyVAL.union = yyLOCAL - case 522: + case 523: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2804 +//line sql.y:2812 { yyVAL.str = yyDollar[1].str } - case 523: + case 524: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2808 +//line sql.y:2816 { yyVAL.str = yyDollar[1].str } - case 524: + case 525: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2812 +//line sql.y:2820 { yyVAL.str = yyDollar[1].str } - case 525: + case 526: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2818 +//line sql.y:2826 { yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 526: + case 527: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2822 +//line sql.y:2830 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 527: + case 528: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2826 +//line sql.y:2834 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 528: + case 529: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2830 +//line sql.y:2838 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 529: + case 530: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2835 +//line sql.y:2843 { yyVAL.str = "" } - case 530: + case 531: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2839 +//line sql.y:2847 { yyVAL.str = yyDollar[1].colIdent.val } - case 531: + case 532: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2843 +//line sql.y:2851 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 532: + case 533: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2849 +//line sql.y:2857 { yyLOCAL = &ExplainTab{Table: yyDollar[2].tableName, Wild: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 533: + case 534: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2853 +//line sql.y:2861 { yyLOCAL = &ExplainStmt{Type: yyDollar[2].explainTypeUnion(), Statement: yyDollar[3].statementUnion()} } yyVAL.union = yyLOCAL - case 534: + case 535: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2859 +//line sql.y:2867 { yyLOCAL = &OtherAdmin{} } yyVAL.union = yyLOCAL - case 535: + case 536: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2863 +//line sql.y:2871 { yyLOCAL = &OtherAdmin{} } yyVAL.union = yyLOCAL - case 536: + case 537: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2869 +//line sql.y:2877 { yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()} } yyVAL.union = yyLOCAL - case 537: + case 538: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableAndLockTypes -//line sql.y:2875 +//line sql.y:2883 { yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()} } yyVAL.union = yyLOCAL - case 538: + case 539: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2879 +//line sql.y:2887 { yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion()) } - case 539: + case 540: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *TableAndLockType -//line sql.y:2885 +//line sql.y:2893 { yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()} } yyVAL.union = yyLOCAL - case 540: + case 541: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2891 +//line sql.y:2899 { yyLOCAL = Read } yyVAL.union = yyLOCAL - case 541: + case 542: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:2895 +//line sql.y:2903 { yyLOCAL = ReadLocal } yyVAL.union = yyLOCAL - case 542: + case 543: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2899 +//line sql.y:2907 { yyLOCAL = Write } yyVAL.union = yyLOCAL - case 543: + case 544: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:2903 +//line sql.y:2911 { yyLOCAL = LowPriorityWrite } yyVAL.union = yyLOCAL - case 544: + case 545: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2909 +//line sql.y:2917 { yyLOCAL = &UnlockTables{} } yyVAL.union = yyLOCAL - case 545: + case 546: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2915 +//line sql.y:2923 { yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs), UUID: string(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 546: + case 547: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2921 +//line sql.y:2929 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs} } yyVAL.union = yyLOCAL - case 547: + case 548: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2925 +//line sql.y:2933 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()} } yyVAL.union = yyLOCAL - case 548: + case 549: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2929 +//line sql.y:2937 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true} } yyVAL.union = yyLOCAL - case 549: + case 550: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2933 +//line sql.y:2941 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 550: + case 551: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2937 +//line sql.y:2945 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true} } yyVAL.union = yyLOCAL - case 551: + case 552: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2941 +//line sql.y:2949 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true} } yyVAL.union = yyLOCAL - case 552: + case 553: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2947 +//line sql.y:2955 { yyVAL.strs = []string{yyDollar[1].str} } - case 553: + case 554: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2951 +//line sql.y:2959 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str) } - case 554: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2957 - { - yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) - } case 555: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2961 +//line sql.y:2965 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 556: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2965 +//line sql.y:2969 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 557: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2969 +//line sql.y:2973 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 558: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2973 + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:2977 { - yyVAL.str = string(yyDollar[1].str) + yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 559: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2977 +//line sql.y:2981 { yyVAL.str = string(yyDollar[1].str) } case 560: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2981 +//line sql.y:2985 { yyVAL.str = string(yyDollar[1].str) } case 561: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2989 + { + yyVAL.str = string(yyDollar[1].str) + } + case 562: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2985 +//line sql.y:2993 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str } - case 562: + case 563: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2989 +//line sql.y:2997 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 563: + case 564: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2993 +//line sql.y:3001 { yyVAL.str = string(yyDollar[1].str) } - case 564: + case 565: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2997 +//line sql.y:3005 { yyVAL.str = string(yyDollar[1].str) } - case 565: + case 566: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3001 +//line sql.y:3009 { yyVAL.str = string(yyDollar[1].str) } - case 566: + case 567: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3006 +//line sql.y:3014 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 567: + case 568: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3010 +//line sql.y:3018 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 568: + case 569: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3014 +//line sql.y:3022 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 569: + case 570: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3019 +//line sql.y:3027 { yyVAL.str = "" } - case 570: + case 571: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3023 +//line sql.y:3031 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].colIdent.String() } - case 571: + case 572: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3028 +//line sql.y:3036 { setAllowComments(yylex, true) } - case 572: + case 573: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3032 +//line sql.y:3040 { yyVAL.strs = yyDollar[2].strs setAllowComments(yylex, false) } - case 573: + case 574: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3038 +//line sql.y:3046 { yyVAL.strs = nil } - case 574: + case 575: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3042 +//line sql.y:3050 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str) } - case 575: + case 576: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3048 +//line sql.y:3056 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 576: + case 577: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3052 +//line sql.y:3060 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 577: + case 578: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3056 +//line sql.y:3064 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 578: + case 579: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3061 +//line sql.y:3069 { yyVAL.str = "" } - case 579: + case 580: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3065 +//line sql.y:3073 { yyVAL.str = SQLNoCacheStr } - case 580: + case 581: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3069 +//line sql.y:3077 { yyVAL.str = SQLCacheStr } - case 581: + case 582: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3074 +//line sql.y:3082 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 582: + case 583: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3078 +//line sql.y:3086 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 583: + case 584: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3082 +//line sql.y:3090 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 584: + case 585: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3087 +//line sql.y:3095 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 585: + case 586: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3091 +//line sql.y:3099 { yyLOCAL = yyDollar[1].selectExprsUnion() } yyVAL.union = yyLOCAL - case 586: + case 587: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3096 +//line sql.y:3104 { yyVAL.strs = nil } - case 587: + case 588: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3100 +//line sql.y:3108 { yyVAL.strs = []string{yyDollar[1].str} } - case 588: + case 589: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3104 +//line sql.y:3112 { // TODO: This is a hack since I couldn't get it to work in a nicer way. I got 'conflicts: 8 shift/reduce' yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str} } - case 589: + case 590: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3108 +//line sql.y:3116 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str} } - case 590: + case 591: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3112 +//line sql.y:3120 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str, yyDollar[4].str} } - case 591: + case 592: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3118 +//line sql.y:3126 { yyVAL.str = SQLNoCacheStr } - case 592: + case 593: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3122 +//line sql.y:3130 { yyVAL.str = SQLCacheStr } - case 593: + case 594: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3126 +//line sql.y:3134 { yyVAL.str = DistinctStr } - case 594: + case 595: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3130 +//line sql.y:3138 { yyVAL.str = DistinctStr } - case 595: + case 596: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3134 +//line sql.y:3142 { yyVAL.str = StraightJoinHint } - case 596: + case 597: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3138 +//line sql.y:3146 { yyVAL.str = SQLCalcFoundRowsStr } - case 597: + case 598: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3142 +//line sql.y:3150 { yyVAL.str = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway } - case 598: + case 599: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3148 +//line sql.y:3156 { yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()} } yyVAL.union = yyLOCAL - case 599: + case 600: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3152 +//line sql.y:3160 { yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion()) } - case 600: + case 601: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3158 +//line sql.y:3166 { yyLOCAL = &StarExpr{} } yyVAL.union = yyLOCAL - case 601: + case 602: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3162 +//line sql.y:3170 { yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].colIdent} } yyVAL.union = yyLOCAL - case 602: + case 603: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3166 +//line sql.y:3174 { yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } yyVAL.union = yyLOCAL - case 603: + case 604: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3170 +//line sql.y:3178 { yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL - case 604: + case 605: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3175 +//line sql.y:3183 { yyVAL.colIdent = ColIdent{} } - case 605: + case 606: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3179 +//line sql.y:3187 { yyVAL.colIdent = yyDollar[1].colIdent } - case 606: + case 607: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3183 +//line sql.y:3191 { yyVAL.colIdent = yyDollar[2].colIdent } - case 608: + case 609: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3190 +//line sql.y:3198 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 609: + case 610: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3195 +//line sql.y:3203 { yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } yyVAL.union = yyLOCAL - case 610: + case 611: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3199 +//line sql.y:3207 { yyLOCAL = yyDollar[2].tableExprsUnion() } yyVAL.union = yyLOCAL - case 611: + case 612: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3205 +//line sql.y:3213 { yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()} } yyVAL.union = yyLOCAL - case 612: + case 613: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3209 +//line sql.y:3217 { yySLICE := (*TableExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion()) } - case 615: + case 616: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3219 +//line sql.y:3227 { yyLOCAL = yyDollar[1].aliasedTableNameUnion() } yyVAL.union = yyLOCAL - case 616: + case 617: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3223 +//line sql.y:3231 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].tableIdent} } yyVAL.union = yyLOCAL - case 617: + case 618: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3227 +//line sql.y:3235 { yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()} } yyVAL.union = yyLOCAL - case 618: + case 619: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:3233 +//line sql.y:3241 { yyLOCAL = &DerivedTable{yyDollar[2].selStmtUnion()} } yyVAL.union = yyLOCAL - case 619: + case 620: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3239 +//line sql.y:3247 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHintsUnion()} } yyVAL.union = yyLOCAL - case 620: + case 621: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3243 +//line sql.y:3251 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHintsUnion()} } yyVAL.union = yyLOCAL - case 621: + case 622: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:3248 +//line sql.y:3256 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 622: + case 623: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:3252 +//line sql.y:3260 { yyLOCAL = yyDollar[2].columnsUnion() } yyVAL.union = yyLOCAL - case 623: + case 624: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:3258 +//line sql.y:3266 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 624: + case 625: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3262 +//line sql.y:3270 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 625: + case 626: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Partitions -//line sql.y:3268 +//line sql.y:3276 { yyLOCAL = Partitions{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 626: + case 627: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3272 +//line sql.y:3280 { yySLICE := (*Partitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 627: + case 628: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3285 +//line sql.y:3293 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 628: + case 629: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3289 +//line sql.y:3297 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 629: + case 630: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3293 +//line sql.y:3301 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 630: + case 631: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3297 +//line sql.y:3305 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()} } yyVAL.union = yyLOCAL - case 631: + case 632: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3303 +//line sql.y:3311 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } - case 632: + case 633: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3305 +//line sql.y:3313 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columnsUnion()} } - case 633: + case 634: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3309 +//line sql.y:3317 { yyVAL.joinCondition = JoinCondition{} } - case 634: + case 635: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3311 +//line sql.y:3319 { yyVAL.joinCondition = yyDollar[1].joinCondition } - case 635: + case 636: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3315 +//line sql.y:3323 { yyVAL.joinCondition = JoinCondition{} } - case 636: + case 637: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3317 +//line sql.y:3325 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } - case 637: + case 638: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3320 +//line sql.y:3328 { yyVAL.empty = struct{}{} } - case 638: + case 639: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3322 +//line sql.y:3330 { yyVAL.empty = struct{}{} } - case 639: + case 640: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3325 +//line sql.y:3333 { yyVAL.tableIdent = NewTableIdent("") } - case 640: + case 641: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3329 +//line sql.y:3337 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 641: + case 642: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3333 +//line sql.y:3341 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 643: + case 644: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3340 +//line sql.y:3348 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 644: + case 645: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3346 +//line sql.y:3354 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 645: + case 646: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3350 +//line sql.y:3358 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 646: + case 647: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3354 +//line sql.y:3362 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 647: + case 648: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3360 +//line sql.y:3368 { yyLOCAL = StraightJoinType } yyVAL.union = yyLOCAL - case 648: + case 649: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3366 +//line sql.y:3374 { yyLOCAL = LeftJoinType } yyVAL.union = yyLOCAL - case 649: + case 650: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3370 +//line sql.y:3378 { yyLOCAL = LeftJoinType } yyVAL.union = yyLOCAL - case 650: + case 651: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3374 +//line sql.y:3382 { yyLOCAL = RightJoinType } yyVAL.union = yyLOCAL - case 651: + case 652: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3378 +//line sql.y:3386 { yyLOCAL = RightJoinType } yyVAL.union = yyLOCAL - case 652: + case 653: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3384 +//line sql.y:3392 { yyLOCAL = NaturalJoinType } yyVAL.union = yyLOCAL - case 653: + case 654: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3388 +//line sql.y:3396 { if yyDollar[2].joinTypeUnion() == LeftJoinType { yyLOCAL = NaturalLeftJoinType @@ -10443,668 +10496,668 @@ yydefault: } } yyVAL.union = yyLOCAL - case 654: + case 655: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3398 +//line sql.y:3406 { yyVAL.tableName = yyDollar[2].tableName } - case 655: + case 656: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3402 +//line sql.y:3410 { yyVAL.tableName = yyDollar[1].tableName } - case 656: + case 657: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3408 +//line sql.y:3416 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 657: + case 658: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3412 +//line sql.y:3420 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } - case 658: + case 659: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3418 +//line sql.y:3426 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 659: + case 660: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3423 +//line sql.y:3431 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 660: + case 661: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3427 +//line sql.y:3435 { yyLOCAL = &IndexHints{Type: UseOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 661: + case 662: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3431 +//line sql.y:3439 { yyLOCAL = &IndexHints{Type: UseOp} } yyVAL.union = yyLOCAL - case 662: + case 663: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3435 +//line sql.y:3443 { yyLOCAL = &IndexHints{Type: IgnoreOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 663: + case 664: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3439 +//line sql.y:3447 { yyLOCAL = &IndexHints{Type: ForceOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 664: + case 665: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3444 +//line sql.y:3452 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 665: + case 666: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3448 +//line sql.y:3456 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 666: + case 667: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3454 +//line sql.y:3462 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 667: + case 668: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3458 +//line sql.y:3466 { yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 668: + case 669: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3462 +//line sql.y:3470 { yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 669: + case 670: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3466 +//line sql.y:3474 { yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 670: + case 671: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3470 +//line sql.y:3478 { yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 671: + case 672: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3474 +//line sql.y:3482 { yyLOCAL = &IsExpr{Operator: yyDollar[3].isExprOperatorUnion(), Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 672: + case 673: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3478 +//line sql.y:3486 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 673: + case 674: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3482 +//line sql.y:3490 { yyLOCAL = &Default{ColName: yyDollar[2].str} } yyVAL.union = yyLOCAL - case 674: + case 675: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3488 +//line sql.y:3496 { yyVAL.str = "" } - case 675: + case 676: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3492 +//line sql.y:3500 { yyVAL.str = string(yyDollar[2].colIdent.String()) } - case 676: + case 677: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3498 +//line sql.y:3506 { yyLOCAL = BoolVal(true) } yyVAL.union = yyLOCAL - case 677: + case 678: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3502 +//line sql.y:3510 { yyLOCAL = BoolVal(false) } yyVAL.union = yyLOCAL - case 678: + case 679: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3508 +//line sql.y:3516 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 679: + case 680: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3512 +//line sql.y:3520 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()} } yyVAL.union = yyLOCAL - case 680: + case 681: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3516 +//line sql.y:3524 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()} } yyVAL.union = yyLOCAL - case 681: + case 682: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3520 +//line sql.y:3528 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 682: + case 683: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3524 +//line sql.y:3532 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 683: + case 684: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3528 +//line sql.y:3536 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 684: + case 685: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3532 +//line sql.y:3540 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 685: + case 686: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3536 +//line sql.y:3544 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: BetweenOp, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 686: + case 687: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3540 +//line sql.y:3548 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: NotBetweenOp, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 687: + case 688: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3544 +//line sql.y:3552 { yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()} } yyVAL.union = yyLOCAL - case 688: + case 689: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3550 +//line sql.y:3558 { yyLOCAL = IsNullOp } yyVAL.union = yyLOCAL - case 689: + case 690: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3554 +//line sql.y:3562 { yyLOCAL = IsNotNullOp } yyVAL.union = yyLOCAL - case 690: + case 691: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3558 +//line sql.y:3566 { yyLOCAL = IsTrueOp } yyVAL.union = yyLOCAL - case 691: + case 692: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3562 +//line sql.y:3570 { yyLOCAL = IsNotTrueOp } yyVAL.union = yyLOCAL - case 692: + case 693: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3566 +//line sql.y:3574 { yyLOCAL = IsFalseOp } yyVAL.union = yyLOCAL - case 693: + case 694: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3570 +//line sql.y:3578 { yyLOCAL = IsNotFalseOp } yyVAL.union = yyLOCAL - case 694: + case 695: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3576 +//line sql.y:3584 { yyLOCAL = EqualOp } yyVAL.union = yyLOCAL - case 695: + case 696: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3580 +//line sql.y:3588 { yyLOCAL = LessThanOp } yyVAL.union = yyLOCAL - case 696: + case 697: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3584 +//line sql.y:3592 { yyLOCAL = GreaterThanOp } yyVAL.union = yyLOCAL - case 697: + case 698: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3588 +//line sql.y:3596 { yyLOCAL = LessEqualOp } yyVAL.union = yyLOCAL - case 698: + case 699: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3592 +//line sql.y:3600 { yyLOCAL = GreaterEqualOp } yyVAL.union = yyLOCAL - case 699: + case 700: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3596 +//line sql.y:3604 { yyLOCAL = NotEqualOp } yyVAL.union = yyLOCAL - case 700: + case 701: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3600 +//line sql.y:3608 { yyLOCAL = NullSafeEqualOp } yyVAL.union = yyLOCAL - case 701: + case 702: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3605 +//line sql.y:3613 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 702: + case 703: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3609 +//line sql.y:3617 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 703: + case 704: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3615 +//line sql.y:3623 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 704: + case 705: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3619 +//line sql.y:3627 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 705: + case 706: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3623 +//line sql.y:3631 { yyLOCAL = ListArg(yyDollar[1].str[2:]) bindVariable(yylex, yyDollar[1].str[2:]) } yyVAL.union = yyLOCAL - case 706: + case 707: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Subquery -//line sql.y:3630 +//line sql.y:3638 { yyLOCAL = &Subquery{yyDollar[2].selStmtUnion()} } yyVAL.union = yyLOCAL - case 707: + case 708: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:3636 +//line sql.y:3644 { yyLOCAL = Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 708: + case 709: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3640 +//line sql.y:3648 { yySLICE := (*Exprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].exprUnion()) } - case 709: + case 710: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3646 +//line sql.y:3654 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 710: + case 711: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3650 +//line sql.y:3658 { yyLOCAL = yyDollar[1].boolValUnion() } yyVAL.union = yyLOCAL - case 711: + case 712: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3654 +//line sql.y:3662 { yyLOCAL = yyDollar[1].colNameUnion() } yyVAL.union = yyLOCAL - case 712: + case 713: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3658 +//line sql.y:3666 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 713: + case 714: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3662 +//line sql.y:3670 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 714: + case 715: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3666 +//line sql.y:3674 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 715: + case 716: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3670 +//line sql.y:3678 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 716: + case 717: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3674 +//line sql.y:3682 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 717: + case 718: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3678 +//line sql.y:3686 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 718: + case 719: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3682 +//line sql.y:3690 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 719: + case 720: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3686 +//line sql.y:3694 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 720: + case 721: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3690 +//line sql.y:3698 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 721: + case 722: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3694 +//line sql.y:3702 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 722: + case 723: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3698 +//line sql.y:3706 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 723: + case 724: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3702 +//line sql.y:3710 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 724: + case 725: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3706 +//line sql.y:3714 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 725: + case 726: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3710 +//line sql.y:3718 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 726: + case 727: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3714 +//line sql.y:3722 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONExtractOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 727: + case 728: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3718 +//line sql.y:3726 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONUnquoteExtractOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 728: + case 729: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3722 +//line sql.y:3730 { yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Charset: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 729: + case 730: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3726 +//line sql.y:3734 { yyLOCAL = &UnaryExpr{Operator: BinaryOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 730: + case 731: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3730 +//line sql.y:3738 { yyLOCAL = &UnaryExpr{Operator: UBinaryOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 731: + case 732: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3734 +//line sql.y:3742 { yyLOCAL = &UnaryExpr{Operator: Utf8Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 732: + case 733: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3738 +//line sql.y:3746 { yyLOCAL = &UnaryExpr{Operator: Utf8mb4Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 733: + case 734: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3742 +//line sql.y:3750 { yyLOCAL = &UnaryExpr{Operator: Latin1Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 734: + case 735: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3746 +//line sql.y:3754 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 735: + case 736: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3750 +//line sql.y:3758 { yyLOCAL = handleUnaryMinus(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 736: + case 737: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3754 +//line sql.y:3762 { yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 737: + case 738: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3758 +//line sql.y:3766 { yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 738: + case 739: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3762 +//line sql.y:3770 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -11113,666 +11166,666 @@ yydefault: yyLOCAL = &IntervalExpr{Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 743: + case 744: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3780 +//line sql.y:3788 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 744: + case 745: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3784 +//line sql.y:3792 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 745: + case 746: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3788 +//line sql.y:3796 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 746: + case 747: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3792 +//line sql.y:3800 { yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 747: + case 748: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3802 +//line sql.y:3810 { yyLOCAL = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 748: + case 749: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3806 +//line sql.y:3814 { yyLOCAL = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 749: + case 750: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3810 +//line sql.y:3818 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 750: + case 751: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3814 +//line sql.y:3822 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 751: + case 752: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3818 +//line sql.y:3826 { yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 752: + case 753: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3822 +//line sql.y:3830 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 753: + case 754: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3826 +//line sql.y:3834 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 754: + case 755: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3830 +//line sql.y:3838 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 755: + case 756: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3834 +//line sql.y:3842 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 756: + case 757: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:3838 +//line sql.y:3846 { yyLOCAL = &MatchExpr{Columns: yyDollar[3].selectExprsUnion(), Expr: yyDollar[7].exprUnion(), Option: yyDollar[8].matchExprOptionUnion()} } yyVAL.union = yyLOCAL - case 757: + case 758: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3842 +//line sql.y:3850 { yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].selectExprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()} } yyVAL.union = yyLOCAL - case 758: + case 759: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3846 +//line sql.y:3854 { yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 759: + case 760: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3850 +//line sql.y:3858 { yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()} } yyVAL.union = yyLOCAL - case 760: + case 761: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3854 +//line sql.y:3862 { yyLOCAL = &FuncExpr{Name: NewColIdent(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 761: + case 762: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3864 +//line sql.y:3872 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_timestamp")} } yyVAL.union = yyLOCAL - case 762: + case 763: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3868 +//line sql.y:3876 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_timestamp")} } yyVAL.union = yyLOCAL - case 763: + case 764: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3872 +//line sql.y:3880 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_time")} } yyVAL.union = yyLOCAL - case 764: + case 765: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3877 +//line sql.y:3885 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_date")} } yyVAL.union = yyLOCAL - case 765: + case 766: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3882 +//line sql.y:3890 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtime")} } yyVAL.union = yyLOCAL - case 766: + case 767: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3887 +//line sql.y:3895 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtimestamp")} } yyVAL.union = yyLOCAL - case 767: + case 768: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3893 +//line sql.y:3901 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_date")} } yyVAL.union = yyLOCAL - case 768: + case 769: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3898 +//line sql.y:3906 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_time")} } yyVAL.union = yyLOCAL - case 769: + case 770: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3903 +//line sql.y:3911 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 770: + case 771: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3907 +//line sql.y:3915 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 771: + case 772: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3911 +//line sql.y:3919 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 772: + case 773: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3916 +//line sql.y:3924 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 773: + case 774: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3921 +//line sql.y:3929 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 774: + case 775: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3926 +//line sql.y:3934 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 775: + case 776: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3930 +//line sql.y:3938 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 776: + case 777: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3934 +//line sql.y:3942 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 779: + case 780: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3944 +//line sql.y:3952 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 780: + case 781: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3954 +//line sql.y:3962 { yyLOCAL = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 781: + case 782: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3958 +//line sql.y:3966 { yyLOCAL = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 782: + case 783: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3962 +//line sql.y:3970 { yyLOCAL = &FuncExpr{Name: NewColIdent("schema"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 783: + case 784: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3966 +//line sql.y:3974 { yyLOCAL = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 784: + case 785: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3970 +//line sql.y:3978 { yyLOCAL = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 785: + case 786: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3974 +//line sql.y:3982 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 786: + case 787: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3978 +//line sql.y:3986 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 787: + case 788: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3984 +//line sql.y:3992 { yyLOCAL = NoOption } yyVAL.union = yyLOCAL - case 788: + case 789: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3988 +//line sql.y:3996 { yyLOCAL = BooleanModeOpt } yyVAL.union = yyLOCAL - case 789: + case 790: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3992 +//line sql.y:4000 { yyLOCAL = NaturalLanguageModeOpt } yyVAL.union = yyLOCAL - case 790: + case 791: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3996 +//line sql.y:4004 { yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt } yyVAL.union = yyLOCAL - case 791: + case 792: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:4000 +//line sql.y:4008 { yyLOCAL = QueryExpansionOpt } yyVAL.union = yyLOCAL - case 792: + case 793: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4006 +//line sql.y:4014 { yyVAL.str = string(yyDollar[1].colIdent.String()) } - case 793: + case 794: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4010 +//line sql.y:4018 { yyVAL.str = string(yyDollar[1].str) } - case 794: + case 795: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4014 +//line sql.y:4022 { yyVAL.str = string(yyDollar[1].str) } - case 795: + case 796: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4020 +//line sql.y:4028 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 796: + case 797: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4024 +//line sql.y:4032 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Operator: CharacterSetOp} } yyVAL.union = yyLOCAL - case 797: + case 798: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4028 +//line sql.y:4036 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: string(yyDollar[3].colIdent.String())} } yyVAL.union = yyLOCAL - case 798: + case 799: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4032 +//line sql.y:4040 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 799: + case 800: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4036 +//line sql.y:4044 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 800: + case 801: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4040 +//line sql.y:4048 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length yyLOCAL.Scale = yyDollar[2].LengthScaleOption.Scale } yyVAL.union = yyLOCAL - case 801: + case 802: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4046 +//line sql.y:4054 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 802: + case 803: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4050 +//line sql.y:4058 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 803: + case 804: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4054 +//line sql.y:4062 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 804: + case 805: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4058 +//line sql.y:4066 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 805: + case 806: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4062 +//line sql.y:4070 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 806: + case 807: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4066 +//line sql.y:4074 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 807: + case 808: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4070 +//line sql.y:4078 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 808: + case 809: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4075 +//line sql.y:4083 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 809: + case 810: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4079 +//line sql.y:4087 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 810: + case 811: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4084 +//line sql.y:4092 { yyVAL.str = string("") } - case 811: + case 812: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4088 +//line sql.y:4096 { yyVAL.str = " separator " + encodeSQLString(yyDollar[2].str) } - case 812: + case 813: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*When -//line sql.y:4094 +//line sql.y:4102 { yyLOCAL = []*When{yyDollar[1].whenUnion()} } yyVAL.union = yyLOCAL - case 813: + case 814: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4098 +//line sql.y:4106 { yySLICE := (*[]*When)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].whenUnion()) } - case 814: + case 815: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *When -//line sql.y:4104 +//line sql.y:4112 { yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 815: + case 816: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4109 +//line sql.y:4117 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 816: + case 817: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4113 +//line sql.y:4121 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 817: + case 818: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ColName -//line sql.y:4119 +//line sql.y:4127 { yyLOCAL = &ColName{Name: yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 818: + case 819: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColName -//line sql.y:4123 +//line sql.y:4131 { yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 819: + case 820: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColName -//line sql.y:4127 +//line sql.y:4135 { yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 820: + case 821: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4133 +//line sql.y:4141 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 821: + case 822: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4137 +//line sql.y:4145 { yyLOCAL = NewHexLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 822: + case 823: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4141 +//line sql.y:4149 { yyLOCAL = NewBitLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 823: + case 824: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4145 +//line sql.y:4153 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 824: + case 825: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4149 +//line sql.y:4157 { yyLOCAL = NewFloatLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 825: + case 826: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4153 +//line sql.y:4161 { yyLOCAL = NewHexNumLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 826: + case 827: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4157 +//line sql.y:4165 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 827: + case 828: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4162 +//line sql.y:4170 { yyLOCAL = &NullVal{} } yyVAL.union = yyLOCAL - case 828: + case 829: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4168 +//line sql.y:4176 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -11782,707 +11835,707 @@ yydefault: yyLOCAL = NewIntLiteral("1") } yyVAL.union = yyLOCAL - case 829: + case 830: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4177 +//line sql.y:4185 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 830: + case 831: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4181 +//line sql.y:4189 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 831: + case 832: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4187 +//line sql.y:4195 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 832: + case 833: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Exprs -//line sql.y:4191 +//line sql.y:4199 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 833: + case 834: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4196 +//line sql.y:4204 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 834: + case 835: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4200 +//line sql.y:4208 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 835: + case 836: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4205 +//line sql.y:4213 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 836: + case 837: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4209 +//line sql.y:4217 { yyLOCAL = yyDollar[3].orderByUnion() } yyVAL.union = yyLOCAL - case 837: + case 838: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4215 +//line sql.y:4223 { yyLOCAL = OrderBy{yyDollar[1].orderUnion()} } yyVAL.union = yyLOCAL - case 838: + case 839: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4219 +//line sql.y:4227 { yySLICE := (*OrderBy)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].orderUnion()) } - case 839: + case 840: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Order -//line sql.y:4225 +//line sql.y:4233 { yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()} } yyVAL.union = yyLOCAL - case 840: + case 841: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4230 +//line sql.y:4238 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 841: + case 842: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4234 +//line sql.y:4242 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 842: + case 843: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4238 +//line sql.y:4246 { yyLOCAL = DescOrder } yyVAL.union = yyLOCAL - case 843: + case 844: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Limit -//line sql.y:4243 +//line sql.y:4251 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 844: + case 845: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Limit -//line sql.y:4247 +//line sql.y:4255 { yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 845: + case 846: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4251 +//line sql.y:4259 { yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 846: + case 847: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4255 +//line sql.y:4263 { yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 847: + case 848: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4260 +//line sql.y:4268 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 848: + case 849: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4264 +//line sql.y:4272 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 849: + case 850: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4268 +//line sql.y:4276 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 850: + case 851: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4272 +//line sql.y:4280 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 851: + case 852: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4276 +//line sql.y:4284 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 852: + case 853: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4283 +//line sql.y:4291 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.union = yyLOCAL - case 853: + case 854: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4287 +//line sql.y:4295 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.union = yyLOCAL - case 854: + case 855: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4291 +//line sql.y:4299 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.union = yyLOCAL - case 855: + case 856: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4295 +//line sql.y:4303 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.union = yyLOCAL - case 856: + case 857: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4301 +//line sql.y:4309 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 857: + case 858: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4305 +//line sql.y:4313 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 858: + case 859: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4309 +//line sql.y:4317 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 859: + case 860: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4314 +//line sql.y:4322 { yyVAL.str = "" } - case 860: + case 861: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4318 +//line sql.y:4326 { yyVAL.str = string(yyDollar[3].str) } - case 861: + case 862: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4322 +//line sql.y:4330 { yyVAL.str = string(yyDollar[3].str) } - case 862: + case 863: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4326 +//line sql.y:4334 { yyVAL.str = string(yyDollar[3].str) } - case 863: + case 864: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4331 +//line sql.y:4339 { yyVAL.str = "" } - case 864: + case 865: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4335 +//line sql.y:4343 { yyVAL.str = yyDollar[3].str } - case 865: + case 866: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4341 +//line sql.y:4349 { yyVAL.str = string(yyDollar[1].str) } - case 866: + case 867: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4345 +//line sql.y:4353 { yyVAL.str = string(yyDollar[1].str) } - case 867: + case 868: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4350 +//line sql.y:4358 { yyVAL.str = "" } - case 868: + case 869: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4354 +//line sql.y:4362 { yyVAL.str = yyDollar[2].str } - case 869: + case 870: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4359 +//line sql.y:4367 { yyVAL.str = "cascaded" } - case 870: + case 871: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4363 +//line sql.y:4371 { yyVAL.str = string(yyDollar[1].str) } - case 871: + case 872: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4367 +//line sql.y:4375 { yyVAL.str = string(yyDollar[1].str) } - case 872: + case 873: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4372 +//line sql.y:4380 { yyVAL.str = "" } - case 873: + case 874: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4376 +//line sql.y:4384 { yyVAL.str = yyDollar[3].str } - case 874: + case 875: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4382 +//line sql.y:4390 { yyVAL.str = string(yyDollar[1].str) } - case 875: + case 876: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4386 +//line sql.y:4394 { yyVAL.str = string(yyDollar[1].str) } - case 876: + case 877: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4390 +//line sql.y:4398 { yyVAL.str = encodeSQLString(yyDollar[1].str) + "@" + string(yyDollar[2].str) } - case 877: + case 878: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4394 +//line sql.y:4402 { yyVAL.str = string(yyDollar[1].str) } - case 878: + case 879: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Lock -//line sql.y:4399 +//line sql.y:4407 { yyLOCAL = NoLock } yyVAL.union = yyLOCAL - case 879: + case 880: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Lock -//line sql.y:4403 +//line sql.y:4411 { yyLOCAL = ForUpdateLock } yyVAL.union = yyLOCAL - case 880: + case 881: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:4407 +//line sql.y:4415 { yyLOCAL = ShareModeLock } yyVAL.union = yyLOCAL - case 881: + case 882: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4412 +//line sql.y:4420 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 882: + case 883: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4416 +//line sql.y:4424 { yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].str, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str} } yyVAL.union = yyLOCAL - case 883: + case 884: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4420 +//line sql.y:4428 { yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: "", FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 884: + case 885: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4424 +//line sql.y:4432 { yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].str, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 885: + case 886: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4429 +//line sql.y:4437 { yyVAL.str = "" } - case 886: + case 887: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4433 +//line sql.y:4441 { yyVAL.str = " format csv" + yyDollar[3].str } - case 887: + case 888: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4437 +//line sql.y:4445 { yyVAL.str = " format text" + yyDollar[3].str } - case 888: + case 889: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4442 +//line sql.y:4450 { yyVAL.str = "" } - case 889: + case 890: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4446 +//line sql.y:4454 { yyVAL.str = " header" } - case 890: + case 891: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4451 +//line sql.y:4459 { yyVAL.str = "" } - case 891: + case 892: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4455 +//line sql.y:4463 { yyVAL.str = " manifest on" } - case 892: + case 893: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4459 +//line sql.y:4467 { yyVAL.str = " manifest off" } - case 893: + case 894: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4464 +//line sql.y:4472 { yyVAL.str = "" } - case 894: + case 895: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4468 +//line sql.y:4476 { yyVAL.str = " overwrite on" } - case 895: + case 896: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4472 +//line sql.y:4480 { yyVAL.str = " overwrite off" } - case 896: + case 897: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4478 +//line sql.y:4486 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 897: + case 898: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4483 +//line sql.y:4491 { yyVAL.str = "" } - case 898: + case 899: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4487 +//line sql.y:4495 { yyVAL.str = " lines" + yyDollar[2].str } - case 899: + case 900: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4493 +//line sql.y:4501 { yyVAL.str = yyDollar[1].str } - case 900: + case 901: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4497 +//line sql.y:4505 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 901: + case 902: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4503 +//line sql.y:4511 { yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str) } - case 902: + case 903: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4507 +//line sql.y:4515 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 903: + case 904: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4512 +//line sql.y:4520 { yyVAL.str = "" } - case 904: + case 905: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4516 +//line sql.y:4524 { yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str } - case 905: + case 906: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4522 +//line sql.y:4530 { yyVAL.str = yyDollar[1].str } - case 906: + case 907: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4526 +//line sql.y:4534 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 907: + case 908: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4532 +//line sql.y:4540 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 908: + case 909: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4536 +//line sql.y:4544 { yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str) } - case 909: + case 910: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4540 +//line sql.y:4548 { yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str) } - case 910: + case 911: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4545 +//line sql.y:4553 { yyVAL.str = "" } - case 911: + case 912: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4549 +//line sql.y:4557 { yyVAL.str = " optionally" } - case 912: + case 913: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Insert -//line sql.y:4562 +//line sql.y:4570 { yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion()} } yyVAL.union = yyLOCAL - case 913: + case 914: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Insert -//line sql.y:4566 +//line sql.y:4574 { yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()} } yyVAL.union = yyLOCAL - case 914: + case 915: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *Insert -//line sql.y:4570 +//line sql.y:4578 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion()} } yyVAL.union = yyLOCAL - case 915: + case 916: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4574 +//line sql.y:4582 { yyLOCAL = &Insert{Rows: yyDollar[4].valuesUnion()} } yyVAL.union = yyLOCAL - case 916: + case 917: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4578 +//line sql.y:4586 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()} } yyVAL.union = yyLOCAL - case 917: + case 918: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:4584 +//line sql.y:4592 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 918: + case 919: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:4588 +//line sql.y:4596 { yyLOCAL = Columns{yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 919: + case 920: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4592 +//line sql.y:4600 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 920: + case 921: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4596 +//line sql.y:4604 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[5].colIdent) } - case 921: + case 922: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4601 +//line sql.y:4609 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 922: + case 923: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4605 +//line sql.y:4613 { yyLOCAL = yyDollar[5].updateExprsUnion() } yyVAL.union = yyLOCAL - case 923: + case 924: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Values -//line sql.y:4611 +//line sql.y:4619 { yyLOCAL = Values{yyDollar[1].valTupleUnion()} } yyVAL.union = yyLOCAL - case 924: + case 925: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4615 +//line sql.y:4623 { yySLICE := (*Values)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion()) } - case 925: + case 926: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4621 +//line sql.y:4629 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 926: + case 927: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4625 +//line sql.y:4633 { yyLOCAL = ValTuple{} } yyVAL.union = yyLOCAL - case 927: + case 928: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4631 +//line sql.y:4639 { yyLOCAL = ValTuple(yyDollar[2].exprsUnion()) } yyVAL.union = yyLOCAL - case 928: + case 929: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4637 +//line sql.y:4645 { if len(yyDollar[1].valTupleUnion()) == 1 { yyLOCAL = yyDollar[1].valTupleUnion()[0] @@ -12491,329 +12544,329 @@ yydefault: } } yyVAL.union = yyLOCAL - case 929: + case 930: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4647 +//line sql.y:4655 { yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()} } yyVAL.union = yyLOCAL - case 930: + case 931: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4651 +//line sql.y:4659 { yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion()) } - case 931: + case 932: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *UpdateExpr -//line sql.y:4657 +//line sql.y:4665 { yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 932: + case 933: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SetExprs -//line sql.y:4663 +//line sql.y:4671 { yyLOCAL = SetExprs{yyDollar[1].setExprUnion()} } yyVAL.union = yyLOCAL - case 933: + case 934: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4667 +//line sql.y:4675 { yySLICE := (*SetExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].setExprUnion()) } - case 934: + case 935: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4673 +//line sql.y:4681 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("on")} } yyVAL.union = yyLOCAL - case 935: + case 936: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4677 +//line sql.y:4685 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("off")} } yyVAL.union = yyLOCAL - case 936: + case 937: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4681 +//line sql.y:4689 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 937: + case 938: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4685 +//line sql.y:4693 { yyLOCAL = &SetExpr{Name: NewColIdent(string(yyDollar[1].str)), Scope: ImplicitScope, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 938: + case 939: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4689 +//line sql.y:4697 { yyDollar[2].setExprUnion().Scope = yyDollar[1].scopeUnion() yyLOCAL = yyDollar[2].setExprUnion() } yyVAL.union = yyLOCAL - case 940: + case 941: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4697 +//line sql.y:4705 { yyVAL.str = "charset" } - case 943: + case 944: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4707 +//line sql.y:4715 { yyLOCAL = NewStrLiteral(yyDollar[1].colIdent.String()) } yyVAL.union = yyLOCAL - case 944: + case 945: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4711 +//line sql.y:4719 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 945: + case 946: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4715 +//line sql.y:4723 { yyLOCAL = &Default{} } yyVAL.union = yyLOCAL - case 948: + case 949: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4724 +//line sql.y:4732 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 949: + case 950: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4726 +//line sql.y:4734 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 950: + case 951: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4729 +//line sql.y:4737 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 951: + case 952: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4731 +//line sql.y:4739 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 952: + case 953: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4734 +//line sql.y:4742 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 953: + case 954: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line sql.y:4736 +//line sql.y:4744 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 954: + case 955: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Ignore -//line sql.y:4739 +//line sql.y:4747 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 955: + case 956: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Ignore -//line sql.y:4741 +//line sql.y:4749 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 956: + case 957: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4744 +//line sql.y:4752 { yyVAL.empty = struct{}{} } - case 957: + case 958: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4746 +//line sql.y:4754 { yyVAL.empty = struct{}{} } - case 958: + case 959: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4748 +//line sql.y:4756 { yyVAL.empty = struct{}{} } - case 959: + case 960: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4752 +//line sql.y:4760 { yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()} } yyVAL.union = yyLOCAL - case 960: + case 961: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4757 +//line sql.y:4765 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 961: + case 962: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:4761 +//line sql.y:4769 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 962: + case 963: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4766 +//line sql.y:4774 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 963: + case 964: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4768 +//line sql.y:4776 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL - case 964: + case 965: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:4772 +//line sql.y:4780 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].colIdent.String())} } yyVAL.union = yyLOCAL - case 965: + case 966: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4778 +//line sql.y:4786 { yyVAL.colIdent = yyDollar[1].colIdent } - case 966: + case 967: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4782 +//line sql.y:4790 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 968: + case 969: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4789 +//line sql.y:4797 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 969: + case 970: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4795 +//line sql.y:4803 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].colIdent.String())) } - case 970: + case 971: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4799 +//line sql.y:4807 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 971: + case 972: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4804 +//line sql.y:4812 { yyVAL.tableIdent = NewTableIdent("") } - case 972: + case 973: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4808 +//line sql.y:4816 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 974: + case 975: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4815 +//line sql.y:4823 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 1384: + case 1385: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5249 +//line sql.y:5257 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 1385: + case 1386: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5258 +//line sql.y:5266 { decNesting(yylex) } - case 1386: + case 1387: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5263 +//line sql.y:5271 { skipToEnd(yylex) } - case 1387: + case 1388: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5268 +//line sql.y:5276 { skipToEnd(yylex) } - case 1388: + case 1389: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5272 +//line sql.y:5280 { skipToEnd(yylex) } - case 1389: + case 1390: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5276 +//line sql.y:5284 { skipToEnd(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index c9283c92bd8..8314fe53f9e 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -153,6 +153,7 @@ func bindVariable(yylex yyLexer, bvar string) { orderDirection OrderDirection explainType ExplainType lockType LockType + referenceDefinition *ReferenceDefinition columnStorage ColumnStorage @@ -419,6 +420,7 @@ func bindVariable(yylex yyLexer, bvar string) { %type session_or_local_opt %type column_storage %type keys +%type reference_definition %start any_command @@ -1631,21 +1633,27 @@ check_constraint_definition: } constraint_info: - FOREIGN KEY name_opt '(' column_list ')' REFERENCES table_name '(' column_list ')' + FOREIGN KEY name_opt '(' column_list ')' reference_definition { - $$ = &ForeignKeyDefinition{IndexName: NewColIdent($3), Source: $5, ReferencedTable: $8, ReferencedColumns: $10} + $$ = &ForeignKeyDefinition{IndexName: NewColIdent($3), Source: $5, ReferenceDefinition: $7} } -| FOREIGN KEY name_opt '(' column_list ')' REFERENCES table_name '(' column_list ')' fk_on_delete + +reference_definition: + REFERENCES table_name '(' column_list ')' + { + $$ = &ReferenceDefinition{ReferencedTable: $2, ReferencedColumns: $4} + } +| REFERENCES table_name '(' column_list ')' fk_on_delete { - $$ = &ForeignKeyDefinition{IndexName: NewColIdent($3), Source: $5, ReferencedTable: $8, ReferencedColumns: $10, OnDelete: $12} + $$ = &ReferenceDefinition{ReferencedTable: $2, ReferencedColumns: $4, OnDelete: $6} } -| FOREIGN KEY name_opt '(' column_list ')' REFERENCES table_name '(' column_list ')' fk_on_update +| REFERENCES table_name '(' column_list ')' fk_on_update { - $$ = &ForeignKeyDefinition{IndexName: NewColIdent($3), Source: $5, ReferencedTable: $8, ReferencedColumns: $10, OnUpdate: $12} + $$ = &ReferenceDefinition{ReferencedTable: $2, ReferencedColumns: $4, OnUpdate: $6} } -| FOREIGN KEY name_opt '(' column_list ')' REFERENCES table_name '(' column_list ')' fk_on_delete fk_on_update +| REFERENCES table_name '(' column_list ')' fk_on_delete fk_on_update { - $$ = &ForeignKeyDefinition{IndexName: NewColIdent($3), Source: $5, ReferencedTable: $8, ReferencedColumns: $10, OnDelete: $12, OnUpdate: $13} + $$ = &ReferenceDefinition{ReferencedTable: $2, ReferencedColumns: $4, OnDelete: $6, OnUpdate: $7} } check_constraint_info: From 1a8d9b18208f5f4e896bd7b9d017a0db7152d576 Mon Sep 17 00:00:00 2001 From: GuptaManan100 Date: Mon, 17 May 2021 15:24:36 +0530 Subject: [PATCH 58/63] added a failing test Signed-off-by: GuptaManan100 --- go/vt/sqlparser/parse_test.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index 43e89240e6b..696bb6359b1 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -2723,6 +2723,14 @@ func TestCreateTable(t *testing.T) { Z int, primary key (id, username), key by_email (email(10), username), + newCol int references simple (a), + newCol int references simple (a) on delete restrict, + newCol int references simple (a) on delete no action, + newCol int references simple (a) on delete cascade on update set default, + newCol int references simple (a) on delete set default on update set null, + newCol int references simple (a) on delete set null on update restrict, + newCol int references simple (a) on update no action, + newCol int references simple (a) on update cascade, constraint second_ibfk_1 foreign key (k, j) references simple (a, b), constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on delete restrict, constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on delete no action, From d5e3eb2790237e395a7654801e9ce92398291e27 Mon Sep 17 00:00:00 2001 From: GuptaManan100 Date: Mon, 17 May 2021 15:37:04 +0530 Subject: [PATCH 59/63] added parsing support for inline reference definition with column definitions Signed-off-by: GuptaManan100 --- go/vt/sqlparser/ast.go | 2 + go/vt/sqlparser/ast_clone.go | 1 + go/vt/sqlparser/ast_equals.go | 1 + go/vt/sqlparser/ast_format.go | 3 + go/vt/sqlparser/ast_format_fast.go | 4 + go/vt/sqlparser/cached_size.go | 4 +- go/vt/sqlparser/parse_test.go | 4 +- go/vt/sqlparser/sql.go | 5812 ++++++++++++++-------------- go/vt/sqlparser/sql.y | 17 +- 9 files changed, 2920 insertions(+), 2928 deletions(-) diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index bf259cc09a3..6fbecdf7462 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -1520,6 +1520,8 @@ type ColumnTypeOptions struct { As Expr Comment *Literal Storage ColumnStorage + // Reference stores a foreign key constraint for the given column + Reference *ReferenceDefinition // Key specification KeyOpt ColumnKeyOption diff --git a/go/vt/sqlparser/ast_clone.go b/go/vt/sqlparser/ast_clone.go index e456ea9dfda..bc8d8ca456b 100644 --- a/go/vt/sqlparser/ast_clone.go +++ b/go/vt/sqlparser/ast_clone.go @@ -2290,6 +2290,7 @@ func CloneRefOfColumnTypeOptions(n *ColumnTypeOptions) *ColumnTypeOptions { out.OnUpdate = CloneExpr(n.OnUpdate) out.As = CloneExpr(n.As) out.Comment = CloneRefOfLiteral(n.Comment) + out.Reference = CloneRefOfReferenceDefinition(n.Reference) return &out } diff --git a/go/vt/sqlparser/ast_equals.go b/go/vt/sqlparser/ast_equals.go index 67c3b0ddc8b..48239b83dba 100644 --- a/go/vt/sqlparser/ast_equals.go +++ b/go/vt/sqlparser/ast_equals.go @@ -3785,6 +3785,7 @@ func EqualsRefOfColumnTypeOptions(a, b *ColumnTypeOptions) bool { EqualsExpr(a.As, b.As) && EqualsRefOfLiteral(a.Comment, b.Comment) && a.Storage == b.Storage && + EqualsRefOfReferenceDefinition(a.Reference, b.Reference) && a.KeyOpt == b.KeyOpt } diff --git a/go/vt/sqlparser/ast_format.go b/go/vt/sqlparser/ast_format.go index dfa96ecb0f5..dfe328c9e7b 100644 --- a/go/vt/sqlparser/ast_format.go +++ b/go/vt/sqlparser/ast_format.go @@ -509,6 +509,9 @@ func (ct *ColumnType) Format(buf *TrackedBuffer) { if ct.Options.KeyOpt == colKey { buf.astPrintf(ct, " %s", keywordStrings[KEY]) } + if ct.Options.Reference != nil { + buf.astPrintf(ct, " %v", ct.Options.Reference) + } } // Format formats the node. diff --git a/go/vt/sqlparser/ast_format_fast.go b/go/vt/sqlparser/ast_format_fast.go index 83e3aeb7909..6585d9bb905 100644 --- a/go/vt/sqlparser/ast_format_fast.go +++ b/go/vt/sqlparser/ast_format_fast.go @@ -746,6 +746,10 @@ func (ct *ColumnType) formatFast(buf *TrackedBuffer) { buf.WriteByte(' ') buf.WriteString(keywordStrings[KEY]) } + if ct.Options.Reference != nil { + buf.WriteByte(' ') + ct.Options.Reference.formatFast(buf) + } } // formatFast formats the node. diff --git a/go/vt/sqlparser/cached_size.go b/go/vt/sqlparser/cached_size.go index ca64fbc6c00..a983fddb4d3 100644 --- a/go/vt/sqlparser/cached_size.go +++ b/go/vt/sqlparser/cached_size.go @@ -516,7 +516,7 @@ func (cached *ColumnTypeOptions) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(88) + size += int64(96) } // field Null *bool size += int64(1) @@ -534,6 +534,8 @@ func (cached *ColumnTypeOptions) CachedSize(alloc bool) int64 { } // field Comment *vitess.io/vitess/go/vt/sqlparser.Literal size += cached.Comment.CachedSize(true) + // field Reference *vitess.io/vitess/go/vt/sqlparser.ReferenceDefinition + size += cached.Reference.CachedSize(true) return size } func (cached *ComparisonExpr) CachedSize(alloc bool) int64 { diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index 696bb6359b1..baffca2168b 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -2721,8 +2721,6 @@ func TestCreateTable(t *testing.T) { username varchar, k int, Z int, - primary key (id, username), - key by_email (email(10), username), newCol int references simple (a), newCol int references simple (a) on delete restrict, newCol int references simple (a) on delete no action, @@ -2731,6 +2729,8 @@ func TestCreateTable(t *testing.T) { newCol int references simple (a) on delete set null on update restrict, newCol int references simple (a) on update no action, newCol int references simple (a) on update cascade, + primary key (id, username), + key by_email (email(10), username), constraint second_ibfk_1 foreign key (k, j) references simple (a, b), constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on delete restrict, constraint second_ibfk_1 foreign key (k, j) references simple (a, b) on delete no action, diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index 66cefb645a1..a44bbed4ccb 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -1007,22 +1007,22 @@ var yyExca = [...]int{ 147, 118, 263, 118, 318, 118, - -2, 339, + -2, 341, -1, 53, - 34, 487, - 169, 487, - 181, 487, - 214, 501, - 215, 501, - -2, 489, + 34, 489, + 169, 489, + 181, 489, + 214, 503, + 215, 503, + -2, 491, -1, 58, - 171, 511, - -2, 509, + 171, 513, + -2, 511, -1, 84, - 58, 579, - -2, 587, + 58, 581, + -2, 589, -1, 97, - 168, 949, + 168, 951, -2, 91, -1, 99, 1, 113, @@ -1031,47 +1031,47 @@ var yyExca = [...]int{ -1, 109, 174, 243, 175, 243, - -2, 333, + -2, 335, -1, 128, 147, 118, 263, 118, 318, 118, - -2, 348, + -2, 350, -1, 564, - 154, 970, - -2, 966, + 154, 972, + -2, 968, -1, 565, - 154, 971, - -2, 967, + 154, 973, + -2, 969, -1, 584, - 58, 580, - -2, 592, + 58, 582, + -2, 594, -1, 585, - 58, 581, - -2, 593, + 58, 583, + -2, 595, -1, 606, - 122, 1319, + 122, 1321, -2, 84, -1, 607, - 122, 1200, + 122, 1202, -2, 85, -1, 613, - 122, 1251, - -2, 943, + 122, 1253, + -2, 945, -1, 754, - 122, 1137, - -2, 940, + 122, 1139, + -2, 942, -1, 790, 180, 38, 185, 38, -2, 254, -1, 867, - 1, 386, - 480, 386, + 1, 388, + 480, 388, -2, 118, -1, 1108, - 1, 282, - 480, 282, + 1, 284, + 480, 284, -2, 118, -1, 1111, 23, 137, @@ -1079,590 +1079,586 @@ var yyExca = [...]int{ -1, 1184, 174, 243, 175, 243, - -2, 333, + -2, 335, -1, 1193, 180, 39, 185, 39, -2, 255, -1, 1401, - 154, 975, - -2, 969, + 154, 977, + -2, 971, -1, 1494, 76, 66, 84, 66, -2, 70, -1, 1515, - 1, 283, - 480, 283, + 1, 285, + 480, 285, -2, 118, - -1, 1943, - 5, 836, - 18, 836, - 20, 836, - 32, 836, - 85, 836, - -2, 619, - -1, 2172, - 48, 911, - -2, 905, + -1, 1946, + 5, 838, + 18, 838, + 20, 838, + 32, 838, + 85, 838, + -2, 621, + -1, 2177, + 48, 913, + -2, 907, } const yyPrivate = 57344 -const yyLast = 28642 +const yyLast = 28141 var yyAct = [...]int{ - 564, 2276, 2267, 2095, 2220, 2200, 2173, 2233, 2001, 927, - 1777, 2150, 83, 3, 2120, 1733, 1700, 1820, 536, 1582, - 1923, 1512, 1009, 1924, 2092, 1438, 1734, 1920, 1800, 505, - 522, 1063, 1532, 1547, 1863, 1824, 757, 1801, 1552, 820, - 507, 1935, 1720, 1802, 1491, 1387, 1567, 1882, 1056, 165, - 1395, 137, 165, 577, 470, 165, 1660, 1090, 1580, 878, - 486, 1299, 165, 123, 1613, 81, 1566, 1191, 907, 1554, - 165, 1794, 611, 785, 1100, 1093, 1473, 1480, 1440, 1209, - 586, 1061, 1086, 1421, 1048, 1165, 571, 1066, 498, 33, - 945, 1364, 486, 509, 1084, 486, 165, 486, 1564, 788, - 764, 608, 765, 1198, 1083, 1282, 786, 791, 798, 761, - 1296, 1456, 1533, 1073, 787, 1099, 79, 1097, 1304, 925, - 100, 1543, 1496, 101, 106, 140, 1022, 8, 7, 6, - 1160, 863, 78, 1025, 1843, 1842, 1611, 1268, 1183, 107, - 1870, 493, 1871, 167, 168, 169, 2122, 1353, 1435, 1436, - 1352, 1351, 1350, 1349, 1348, 496, 1341, 497, 2249, 1698, - 2169, 1970, 2071, 2146, 773, 822, 445, 768, 758, 572, - 2145, 102, 824, 2090, 593, 597, 2091, 946, 836, 837, - 825, 840, 841, 842, 843, 108, 823, 846, 847, 848, - 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, - 859, 860, 2275, 2230, 612, 494, 2270, 2195, 80, 605, - 801, 1559, 1650, 2263, 1398, 780, 2096, 1599, 2229, 802, - 779, 84, 2194, 778, 1899, 102, 2034, 1174, 774, 826, - 827, 828, 1557, 1950, 1951, 35, 1699, 946, 72, 39, - 40, 1949, 161, 956, 1850, 833, 1869, 549, 1849, 555, - 556, 553, 554, 838, 552, 551, 550, 1648, 86, 87, - 88, 89, 90, 91, 557, 558, 97, 103, 1764, 162, - 1437, 1763, 440, 1506, 1765, 161, 1497, 1507, 1508, 1101, - 145, 1102, 474, 839, 777, 781, 769, 902, 903, 102, - 897, 772, 570, 923, 771, 770, 885, 568, 567, 885, - 103, 886, 125, 956, 886, 898, 866, 1784, 891, 884, - 1526, 883, 71, 145, 1556, 2003, 2197, 2025, 2023, 484, - 1340, 1768, 488, 1342, 1343, 1344, 1258, 862, 1288, 777, - 482, 872, 873, 952, 142, 1052, 143, 473, 167, 168, - 169, 775, 1825, 1581, 135, 160, 1624, 1622, 1623, 124, - 2159, 971, 970, 980, 981, 973, 974, 975, 976, 977, - 978, 979, 972, 1997, 1846, 982, 1619, 142, 1259, 143, - 1260, 1998, 1614, 904, 112, 113, 134, 133, 160, 2269, - 920, 899, 1283, 905, 892, 2250, 775, 914, 906, 916, - 922, 2004, 868, 952, 777, 861, 944, 1858, 1626, 474, - 1627, 474, 1628, 900, 901, 1629, 146, 845, 844, 2005, - 1618, 1616, 2141, 2085, 1583, 1474, 151, 809, 807, 818, - 1620, 502, 1497, 817, 816, 815, 913, 915, 129, 110, - 136, 117, 109, 800, 130, 131, 814, 1969, 813, 146, - 165, 2143, 165, 812, 811, 165, 806, 782, 776, 151, - 118, 1617, 2261, 1177, 473, 819, 473, 2280, 865, 2282, - 1862, 762, 793, 918, 121, 119, 114, 115, 116, 120, - 1289, 486, 486, 486, 111, 1297, 951, 948, 949, 950, - 955, 957, 954, 122, 953, 1197, 1196, 895, 1558, 486, - 486, 947, 800, 776, 1848, 762, 800, 1565, 762, 599, - 794, 2193, 760, 938, 919, 1859, 881, 1605, 887, 888, - 889, 890, 810, 808, 911, 474, 1701, 1703, 912, 1293, - 932, 1865, 138, 1883, 835, 829, 1864, 1977, 917, 924, - 800, 1845, 2198, 800, 1908, 921, 951, 948, 949, 950, - 955, 957, 954, 864, 953, 1649, 1907, 1906, 1172, 1171, - 910, 947, 1170, 1835, 1294, 138, 2221, 1168, 776, 1865, - 444, 439, 99, 1601, 1864, 994, 995, 1885, 165, 73, - 473, 2160, 2180, 799, 1679, 1270, 1269, 1271, 1272, 1273, - 793, 796, 797, 2054, 762, 1948, 1054, 1287, 790, 794, - 595, 929, 930, 1725, 882, 1668, 486, 1513, 992, 165, - 800, 165, 165, 1053, 486, 874, 1591, 789, 871, 2278, - 486, 132, 2279, 608, 2277, 1702, 982, 1760, 941, 939, - 940, 1857, 894, 126, 1856, 1676, 127, 1010, 1502, 1887, - 1077, 1891, 799, 1886, 896, 1884, 799, 1007, 803, 793, - 1889, 876, 803, 793, 972, 1082, 1452, 982, 804, 1888, - 1049, 908, 804, 167, 168, 169, 499, 1389, 1305, 1336, - 94, 2189, 1890, 1892, 962, 821, 805, 1067, 1933, 1284, - 799, 1285, 834, 799, 1286, 880, 1024, 1027, 1029, 1031, - 1032, 1034, 1036, 1037, 1028, 1030, 1615, 1033, 1035, 1901, - 1038, 1600, 1780, 1773, 139, 144, 141, 147, 148, 149, - 150, 152, 153, 154, 155, 1780, 1371, 95, 1046, 1290, - 156, 157, 158, 159, 1103, 1390, 612, 994, 995, 942, - 1369, 1370, 1368, 960, 961, 959, 867, 139, 144, 141, - 147, 148, 149, 150, 152, 153, 154, 155, 1774, 1422, - 799, 962, 959, 156, 157, 158, 159, 793, 796, 797, - 1422, 762, 1686, 2283, 1070, 790, 794, 165, 962, 1813, - 1776, 1161, 1598, 1771, 1593, 1596, 1457, 1458, 994, 995, - 1169, 909, 809, 2212, 807, 2242, 2210, 1772, 1306, 975, - 976, 977, 978, 979, 972, 2214, 2215, 982, 1597, 486, - 2211, 1193, 879, 167, 168, 169, 1055, 1789, 1065, 1202, - 1799, 1953, 2070, 1206, 2069, 1975, 486, 486, 1593, 486, - 1098, 486, 486, 2264, 486, 486, 486, 486, 486, 486, - 1175, 1176, 1674, 2284, 1910, 1189, 960, 961, 959, 486, - 1673, 71, 1595, 165, 1242, 598, 2255, 1779, 1778, 2259, - 1675, 2265, 1203, 1367, 962, 1798, 961, 959, 1182, 1255, - 1779, 1778, 960, 961, 959, 1790, 1797, 960, 961, 959, - 486, 1562, 165, 962, 2256, 1239, 1201, 1237, 1238, 1278, - 962, 2258, 1911, 1295, 1263, 962, 1262, 165, 1245, 1246, - 1653, 1654, 1655, 1277, 1251, 1252, 1211, 1261, 1212, 1275, - 1214, 1216, 1253, 165, 1220, 1222, 1224, 1226, 1228, 1167, - 165, 1200, 603, 1265, 1454, 1199, 1199, 1247, 1180, 165, + 564, 2100, 2228, 2271, 2005, 2205, 2155, 2241, 1771, 2215, + 1778, 83, 3, 2178, 2125, 1779, 2097, 1582, 1733, 536, + 1926, 1700, 1438, 1923, 577, 1927, 1056, 1734, 1424, 1532, + 1547, 927, 522, 1063, 1827, 1009, 1803, 505, 757, 1866, + 820, 1552, 1938, 1720, 1804, 1387, 1805, 502, 1567, 165, + 1491, 1395, 165, 1885, 470, 165, 1660, 1090, 878, 1191, + 486, 1580, 165, 1512, 1613, 1299, 123, 81, 1554, 507, + 165, 1566, 1797, 1100, 137, 1093, 1473, 785, 1480, 1061, + 1440, 586, 1084, 1165, 1823, 1083, 1066, 1421, 33, 1086, + 611, 1048, 486, 571, 1364, 486, 165, 486, 1296, 788, + 945, 498, 907, 509, 1198, 764, 1564, 1282, 798, 765, + 1456, 761, 580, 1543, 791, 786, 787, 1533, 1099, 1496, + 79, 1097, 1073, 608, 1209, 100, 101, 863, 1022, 8, + 1160, 7, 6, 78, 925, 140, 1304, 1025, 106, 1183, + 107, 493, 1846, 1845, 1611, 1873, 1874, 1353, 1268, 2127, + 946, 167, 168, 169, 1435, 1436, 1352, 1351, 1350, 1349, + 1348, 496, 1341, 497, 2260, 1698, 822, 2174, 572, 2076, + 773, 445, 758, 593, 597, 768, 2151, 2150, 946, 836, + 837, 102, 840, 841, 842, 843, 108, 824, 846, 847, + 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, + 858, 859, 860, 825, 2095, 494, 823, 2096, 1974, 612, + 801, 1559, 2287, 605, 2238, 84, 956, 1398, 1650, 802, + 780, 2286, 2200, 80, 2279, 779, 778, 2101, 1599, 826, + 827, 828, 1557, 2237, 2199, 102, 1902, 2038, 1174, 914, + 1101, 916, 1102, 161, 956, 833, 35, 1953, 1954, 72, + 39, 40, 86, 87, 88, 89, 90, 91, 838, 1699, + 97, 1853, 1952, 162, 1872, 1852, 440, 777, 103, 872, + 873, 1764, 1648, 161, 1763, 1506, 1437, 1765, 913, 915, + 897, 145, 1497, 474, 1822, 568, 570, 1507, 1508, 866, + 167, 168, 169, 923, 161, 839, 567, 885, 103, 102, + 125, 1787, 886, 781, 2202, 898, 952, 891, 885, 944, + 884, 145, 883, 886, 1556, 1526, 2029, 2027, 2007, 103, + 902, 903, 1768, 71, 775, 1581, 774, 484, 1340, 1342, + 1343, 1344, 145, 862, 952, 142, 488, 143, 473, 482, + 1849, 1052, 135, 1624, 1622, 1623, 160, 124, 1828, 2164, + 971, 970, 980, 981, 973, 974, 975, 976, 977, 978, + 979, 972, 1288, 2001, 982, 142, 911, 143, 1258, 1619, + 912, 2002, 1185, 1186, 134, 133, 160, 777, 861, 1614, + 917, 899, 777, 892, 769, 2285, 142, 1283, 143, 772, + 922, 2261, 771, 770, 2008, 920, 549, 160, 555, 556, + 553, 554, 910, 552, 551, 550, 904, 146, 900, 901, + 1259, 474, 1260, 557, 558, 868, 905, 151, 1626, 474, + 1627, 906, 1628, 1620, 1861, 1629, 129, 1187, 136, 1618, + 1184, 776, 130, 131, 845, 844, 2009, 146, 1616, 775, + 165, 865, 165, 2147, 2090, 165, 1583, 151, 809, 951, + 948, 949, 950, 955, 957, 954, 1474, 953, 146, 807, + 818, 817, 816, 918, 947, 815, 473, 474, 151, 814, + 1617, 486, 486, 486, 473, 782, 813, 951, 948, 949, + 950, 955, 957, 954, 1973, 953, 812, 811, 1558, 486, + 486, 806, 947, 1177, 819, 1783, 762, 2282, 895, 800, + 2277, 794, 938, 762, 1289, 881, 793, 887, 888, 889, + 890, 1851, 919, 2198, 1497, 1865, 1297, 762, 1565, 800, + 2203, 760, 473, 138, 1197, 1196, 864, 599, 924, 1862, + 800, 1605, 1886, 1701, 1703, 1293, 932, 829, 1981, 1848, + 1911, 776, 1910, 810, 1909, 1172, 776, 800, 1171, 1170, + 1838, 1649, 99, 138, 808, 1294, 1168, 444, 996, 997, + 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 165, 921, + 2165, 2229, 835, 439, 138, 2185, 1888, 2058, 800, 1860, + 73, 1601, 1859, 994, 995, 1054, 1270, 1269, 1271, 1272, + 1273, 1951, 1725, 1679, 1668, 595, 486, 882, 1591, 165, + 1502, 165, 165, 1077, 486, 1053, 929, 930, 992, 132, + 486, 874, 1007, 1868, 1868, 1676, 871, 876, 1867, 1867, + 941, 126, 939, 940, 127, 972, 1010, 1513, 982, 982, + 1760, 2275, 1702, 894, 1452, 608, 961, 959, 1890, 799, + 1894, 1336, 1889, 880, 1887, 896, 793, 796, 797, 1892, + 762, 1082, 962, 962, 790, 794, 2194, 1049, 1891, 799, + 94, 499, 821, 1936, 908, 803, 793, 1305, 1067, 1615, + 799, 1893, 1895, 789, 1290, 804, 803, 793, 1024, 1027, + 1029, 1031, 1032, 1034, 1036, 1037, 804, 799, 1028, 1030, + 800, 1033, 1035, 805, 1038, 139, 144, 141, 147, 148, + 149, 150, 152, 153, 154, 155, 959, 95, 1046, 1600, + 1287, 156, 157, 158, 159, 1904, 867, 1103, 799, 942, + 834, 612, 962, 1422, 1371, 139, 144, 141, 147, 148, + 149, 150, 152, 153, 154, 155, 994, 995, 1369, 1370, + 1368, 156, 157, 158, 159, 1816, 139, 144, 141, 147, + 148, 149, 150, 152, 153, 154, 155, 165, 994, 995, + 879, 1161, 156, 157, 158, 159, 1457, 1458, 1598, 2254, + 1169, 971, 970, 980, 981, 973, 974, 975, 976, 977, + 978, 979, 972, 2273, 909, 982, 2274, 1306, 2272, 486, + 1055, 1193, 1284, 1422, 1285, 1686, 1593, 1286, 1596, 1202, + 809, 1065, 807, 1206, 1593, 1956, 486, 486, 2075, 486, + 1070, 486, 486, 1277, 486, 486, 486, 486, 486, 486, + 1597, 1175, 1176, 1275, 960, 961, 959, 1189, 1595, 486, + 799, 1661, 1906, 165, 1242, 2280, 1454, 793, 796, 797, + 1098, 762, 962, 2074, 2266, 790, 794, 71, 1979, 1255, + 1913, 1182, 960, 961, 959, 1802, 1801, 2283, 1201, 1367, + 486, 2270, 165, 2281, 167, 168, 169, 1239, 1389, 2269, + 962, 1203, 2267, 1295, 1276, 1675, 1265, 165, 2268, 1245, + 1246, 960, 961, 959, 1274, 1251, 1252, 1653, 1654, 1655, + 167, 168, 169, 165, 1792, 1167, 1237, 1238, 1914, 962, + 165, 1453, 1200, 1782, 1774, 1199, 1199, 1800, 2255, 165, 165, 165, 165, 165, 165, 165, 165, 165, 486, 486, - 486, 1192, 1179, 1178, 1244, 600, 601, 1243, 960, 961, - 959, 1218, 996, 997, 998, 999, 1000, 1001, 1002, 1003, - 1004, 1005, 1240, 2000, 1276, 165, 962, 2257, 1775, 1301, - 1274, 1309, 1307, 1308, 1359, 1361, 1362, 2243, 1313, 2241, - 1315, 1316, 1317, 1318, 1264, 2239, 1312, 1322, 1360, 1453, - 2111, 2067, 2042, 1319, 1320, 1321, 167, 168, 169, 581, - 1767, 1337, 1932, 1388, 1365, 1298, 1956, 1912, 779, 1807, - 1795, 778, 1391, 102, 1644, 1173, 960, 961, 959, 167, - 168, 169, 1347, 960, 961, 959, 486, 1609, 1608, 1446, - 1302, 1903, 1311, 1266, 962, 1254, 1250, 1399, 167, 168, - 169, 962, 1575, 1249, 1392, 1393, 973, 974, 975, 976, - 977, 978, 979, 972, 1248, 2139, 982, 1332, 1333, 1334, - 486, 486, 1405, 525, 524, 527, 528, 529, 530, 1984, - 2260, 165, 526, 80, 531, 2138, 1410, 1413, 2094, 1366, - 1984, 2227, 1423, 1984, 2187, 486, 167, 168, 169, 1400, - 1573, 1827, 165, 1810, 1445, 486, 1984, 2181, 1721, 165, - 1401, 165, 1521, 1010, 167, 168, 169, 1399, 1256, 165, - 165, 1498, 963, 1429, 1430, 1921, 486, 1984, 581, 486, - 82, 1492, 2088, 581, 1932, 608, 1466, 1447, 608, 35, - 486, 1984, 2086, 1593, 581, 2052, 581, 1459, 1967, 1966, - 1963, 1964, 1963, 1962, 1594, 1402, 1465, 581, 499, 1497, - 1844, 1164, 1829, 581, 1822, 1823, 2049, 1020, 1476, 1471, - 1477, 581, 35, 958, 581, 2188, 1517, 1495, 1467, 1477, - 1401, 1164, 1163, 1109, 1108, 1499, 1534, 1535, 1536, 2127, - 1516, 35, 1721, 1501, 1498, 486, 1754, 1728, 1465, 1059, - 1062, 1568, 1569, 1570, 1497, 958, 1572, 1574, 1465, 1984, - 1965, 1593, 1477, 1520, 1505, 1691, 71, 574, 1469, 486, - 1690, 1477, 1729, 1549, 1465, 486, 1202, 1593, 2072, 1202, - 1576, 1202, 1527, 1233, 1528, 1529, 1530, 1531, 612, 1592, - 1555, 612, 1504, 1503, 1500, 1455, 1519, 1433, 1345, 71, - 1539, 1540, 1541, 1542, 1518, 1579, 1406, 1407, 1499, 1292, - 1412, 1415, 1416, 1932, 1095, 784, 1497, 783, 71, 486, - 2219, 1388, 71, 2152, 2093, 2060, 1388, 1388, 2073, 2074, - 2075, 1804, 1166, 1234, 1235, 1236, 1428, 1548, 1999, 1431, - 1432, 1959, 1830, 1586, 71, 2002, 1589, 1560, 1590, 1544, - 1550, 1538, 1571, 1563, 1537, 1602, 1280, 1561, 1545, 1546, - 1194, 165, 1190, 1162, 96, 2076, 1604, 801, 165, 1803, - 866, 1606, 1607, 165, 165, 1585, 802, 165, 1603, 165, - 1584, 1588, 1550, 581, 2153, 165, 1199, 1936, 1937, 1559, - 2272, 2268, 165, 1982, 565, 971, 970, 980, 981, 973, - 974, 975, 976, 977, 978, 979, 972, 1981, 1980, 982, - 1230, 1939, 2077, 2078, 1921, 1814, 1804, 1633, 1612, 165, - 486, 1482, 1485, 1486, 1487, 1483, 1338, 1484, 1488, 1942, - 1941, 971, 970, 980, 981, 973, 974, 975, 976, 977, - 978, 979, 972, 166, 2135, 982, 166, 1639, 1640, 166, - 1742, 1741, 1642, 2252, 487, 1661, 166, 1231, 1232, 1710, - 1745, 1643, 2228, 1743, 166, 1746, 1363, 1365, 1744, 1372, - 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, - 1383, 1384, 1385, 1386, 1913, 1632, 487, 1064, 2053, 487, - 166, 487, 971, 970, 980, 981, 973, 974, 975, 976, - 977, 978, 979, 972, 1987, 1747, 982, 1486, 1487, 2174, - 2176, 1719, 1718, 534, 165, 2254, 1647, 2232, 2177, 2234, - 2205, 2171, 165, 1482, 1485, 1486, 1487, 1483, 1425, 1484, - 1488, 1424, 1782, 1936, 1937, 2202, 1708, 1291, 1524, 1670, - 1656, 566, 1366, 2201, 1709, 1808, 831, 165, 1418, 830, - 2012, 1303, 1057, 1803, 1868, 931, 2047, 1837, 165, 165, - 165, 165, 165, 1419, 1058, 1836, 1730, 103, 2125, 1669, - 165, 1958, 572, 485, 165, 1957, 1707, 165, 165, 1587, - 1208, 165, 165, 165, 1685, 1207, 1752, 1195, 1714, 1457, - 1458, 1723, 1450, 1978, 1766, 1726, 1049, 1735, 1697, 1636, - 1705, 2183, 2147, 1781, 1490, 610, 575, 576, 759, 1652, - 766, 1717, 1625, 578, 1788, 580, 82, 1713, 2240, 1716, - 2238, 1755, 2237, 2206, 2204, 1757, 2046, 1983, 1724, 1354, - 1355, 1356, 1357, 1722, 1787, 1577, 1791, 1792, 1793, 579, - 486, 1785, 1786, 2045, 1916, 165, 1748, 1769, 1721, 2274, - 2273, 1753, 165, 1737, 1738, 1301, 1740, 1758, 486, 1680, - 1761, 1677, 1736, 1078, 486, 1739, 1071, 2274, 2178, 1202, - 1955, 1770, 1451, 574, 486, 80, 1806, 85, 77, 1, - 1555, 1832, 2142, 2209, 1408, 1409, 1841, 457, 1434, 1047, - 1796, 1665, 1666, 469, 2266, 1267, 1257, 165, 165, 165, - 165, 165, 1826, 1805, 2097, 2149, 1840, 1990, 1811, 1553, - 792, 128, 1683, 165, 165, 1815, 1816, 1817, 1514, 1839, - 1182, 1515, 499, 980, 981, 973, 974, 975, 976, 977, - 978, 979, 972, 1400, 2223, 982, 1831, 591, 587, 93, - 755, 1838, 92, 795, 1401, 893, 1578, 2089, 1783, 486, - 1525, 1115, 1113, 588, 1114, 1388, 1112, 1117, 1879, 970, + 486, 1192, 1180, 1179, 1178, 1562, 1390, 2284, 960, 961, + 959, 1211, 603, 1212, 2249, 1214, 1216, 1264, 1278, 1220, + 1222, 1224, 1226, 1228, 598, 165, 962, 1240, 1263, 1775, + 1309, 1262, 1793, 1261, 960, 961, 959, 1313, 1253, 1315, + 1316, 1317, 1318, 960, 961, 959, 1322, 1301, 1359, 1361, + 1362, 1777, 962, 1298, 1772, 1247, 1244, 1243, 1218, 1782, + 1337, 962, 1360, 1388, 2247, 1365, 1307, 1308, 1773, 1173, + 2116, 2072, 1391, 779, 778, 167, 168, 169, 2046, 1767, + 1312, 1959, 1347, 102, 1915, 1810, 486, 1319, 1320, 1321, + 1798, 1644, 1363, 1609, 1608, 1372, 1373, 1374, 1375, 1376, + 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, + 1311, 1446, 1392, 1393, 600, 601, 1302, 1403, 1404, 1399, + 486, 486, 1266, 1254, 1405, 1250, 1249, 2221, 1781, 1780, + 2219, 165, 1332, 1333, 1334, 167, 168, 169, 1248, 2223, + 2224, 1783, 2004, 2041, 2220, 486, 167, 168, 169, 1366, + 1575, 581, 165, 1400, 1425, 486, 1988, 2235, 1447, 165, + 2145, 165, 1010, 1448, 2144, 1410, 1413, 1445, 1459, 165, + 165, 1423, 1988, 2192, 1429, 1430, 486, 963, 1401, 486, + 1492, 973, 974, 975, 976, 977, 978, 979, 972, 1399, + 486, 982, 971, 970, 980, 981, 973, 974, 975, 976, + 977, 978, 979, 972, 1781, 1780, 982, 608, 80, 1402, + 608, 1988, 2187, 499, 167, 168, 169, 1783, 1573, 1988, + 2186, 2099, 1020, 1471, 1988, 581, 82, 1495, 1517, 1467, + 2093, 581, 1830, 1534, 1535, 1536, 167, 168, 169, 1776, + 1256, 1988, 2091, 1593, 581, 486, 2056, 581, 1401, 1971, + 1970, 1568, 1569, 1570, 1059, 1062, 1572, 1574, 1967, 1968, + 1967, 1966, 1813, 1516, 1465, 581, 1721, 1520, 1521, 486, + 1549, 1497, 1847, 71, 1466, 486, 1202, 1469, 1935, 1202, + 1527, 1202, 1528, 1529, 1530, 1531, 1164, 1832, 581, 1592, + 2053, 1500, 1555, 612, 1465, 1504, 612, 1503, 1539, 1540, + 1541, 1542, 1825, 1826, 1721, 1519, 1518, 1579, 2193, 1406, + 1407, 1476, 1674, 1412, 1415, 1416, 1477, 581, 958, 486, + 1673, 1388, 958, 581, 1164, 1163, 1388, 1388, 975, 976, + 977, 978, 979, 972, 1594, 1586, 982, 1477, 1589, 1428, + 1590, 1988, 1431, 1432, 1498, 581, 1465, 960, 961, 959, + 1545, 1546, 1550, 1969, 1560, 1563, 1561, 1602, 1109, 1108, + 1571, 165, 35, 35, 1477, 962, 1604, 801, 165, 1477, + 1505, 1606, 1607, 165, 165, 1935, 802, 165, 1498, 165, + 1585, 1603, 1588, 565, 1550, 165, 1199, 1584, 1728, 35, + 1691, 1593, 165, 971, 970, 980, 981, 973, 974, 975, + 976, 977, 978, 979, 972, 1924, 1690, 982, 1499, 1754, + 1465, 1593, 2132, 1729, 1935, 1576, 1501, 1497, 1612, 165, + 486, 970, 980, 981, 973, 974, 975, 976, 977, 978, + 979, 972, 166, 2141, 982, 166, 1455, 1433, 166, 71, + 71, 2157, 1499, 487, 1345, 166, 1639, 1640, 1292, 1807, + 1497, 1642, 574, 166, 525, 524, 527, 528, 529, 530, + 1643, 2077, 1095, 526, 784, 531, 71, 1233, 1365, 783, + 2098, 2069, 2064, 1632, 1166, 487, 1548, 2003, 487, 166, + 487, 971, 970, 980, 981, 973, 974, 975, 976, 977, + 978, 979, 972, 1963, 1833, 982, 1544, 1657, 1658, 1659, + 1663, 1538, 1537, 1280, 1664, 1194, 1190, 1162, 96, 866, + 1670, 2078, 2079, 2080, 165, 1671, 1672, 1234, 1235, 1236, + 2081, 1678, 165, 2006, 1681, 1682, 1647, 2158, 1806, 71, + 1939, 1940, 1688, 1559, 1689, 2251, 2216, 1692, 1693, 1694, + 1695, 1696, 1230, 1656, 1986, 1985, 1984, 165, 1942, 1924, + 1817, 1633, 1366, 1706, 1707, 1338, 1303, 1945, 165, 165, + 165, 165, 165, 1944, 1745, 1730, 1714, 2082, 2083, 1746, + 165, 572, 1742, 1741, 165, 1807, 1669, 165, 165, 1743, + 2263, 165, 165, 165, 1744, 1752, 2236, 1916, 1685, 1231, + 1232, 1710, 1064, 2057, 1766, 1991, 1726, 1723, 1719, 1718, + 1750, 1751, 1705, 1049, 2265, 1697, 1482, 1485, 1486, 1487, + 1483, 2240, 1484, 1488, 1791, 1713, 980, 981, 973, 974, + 975, 976, 977, 978, 979, 972, 1735, 1755, 982, 1724, + 2242, 1757, 1722, 2210, 1354, 1355, 1356, 1357, 1788, 1789, + 486, 1737, 1738, 1736, 1740, 165, 1739, 1748, 2176, 1291, + 566, 1753, 165, 1747, 1524, 1486, 1487, 1758, 486, 1761, + 2207, 1785, 2179, 2181, 486, 1811, 1418, 831, 2206, 1202, + 1769, 2182, 830, 1301, 486, 1770, 1790, 1809, 1794, 1795, + 1796, 1419, 1555, 2016, 1708, 1806, 1844, 1871, 931, 1408, + 1409, 1799, 1709, 1057, 1665, 1666, 1840, 165, 165, 165, + 165, 165, 1808, 1835, 1839, 1058, 103, 2130, 1814, 591, + 587, 1961, 1960, 165, 165, 1683, 1587, 2051, 1842, 1208, + 1818, 1819, 1820, 1182, 1207, 588, 1195, 499, 1834, 1457, + 1458, 1829, 1482, 1485, 1486, 1487, 1483, 1400, 1484, 1488, + 1450, 1982, 1939, 1940, 1841, 1636, 2189, 2152, 1843, 486, + 1068, 1069, 590, 1784, 589, 1388, 1490, 575, 576, 1717, + 1625, 1652, 1401, 578, 1919, 2248, 2246, 1716, 2245, 2211, + 1863, 2209, 2050, 1987, 1879, 1880, 1577, 1884, 579, 1511, + 1882, 82, 2049, 1883, 1721, 486, 2253, 2252, 2253, 1877, + 1878, 1680, 2183, 1677, 1875, 1078, 165, 1903, 1071, 1881, + 1896, 591, 587, 1958, 1898, 1899, 486, 1900, 1901, 1897, + 1451, 574, 486, 486, 80, 85, 77, 588, 1907, 1908, + 1, 1869, 2218, 166, 1870, 166, 457, 1925, 166, 1928, + 1434, 1922, 1047, 469, 2214, 165, 1267, 1882, 1551, 1257, + 1931, 2102, 584, 585, 590, 2154, 589, 1994, 1553, 792, + 128, 1514, 1515, 2231, 487, 487, 487, 1934, 93, 755, + 92, 1946, 1943, 795, 165, 893, 1578, 2094, 1786, 1525, + 1115, 1113, 487, 487, 1114, 1112, 1117, 1947, 1735, 1949, + 1116, 1950, 1111, 1339, 483, 1948, 1489, 163, 1104, 1072, + 832, 447, 1980, 1972, 1335, 1610, 453, 990, 165, 1715, + 1762, 609, 1957, 602, 1930, 2204, 486, 2175, 2177, 1912, + 2126, 2180, 2173, 2040, 486, 2264, 2239, 2188, 1522, 165, + 1449, 1060, 2048, 1955, 1918, 1684, 1019, 1977, 1978, 165, + 1976, 1975, 1964, 1965, 1420, 1995, 1087, 1933, 508, 1444, + 1358, 523, 520, 165, 1989, 521, 165, 1460, 1727, 964, + 506, 166, 500, 1079, 1992, 2017, 1998, 1481, 1997, 1479, + 1478, 1555, 971, 970, 980, 981, 973, 974, 975, 976, + 977, 978, 979, 972, 1634, 1091, 982, 1941, 1990, 487, + 1937, 2012, 166, 2011, 166, 166, 1085, 487, 2020, 1464, + 2019, 1523, 2035, 487, 2021, 1850, 2000, 943, 1993, 583, + 495, 2025, 767, 1417, 2018, 2030, 2031, 2163, 2014, 2015, + 1651, 2037, 582, 61, 38, 490, 2259, 934, 592, 32, + 31, 2045, 30, 29, 2047, 28, 23, 22, 21, 2052, + 20, 19, 25, 18, 17, 16, 98, 48, 2054, 2055, + 45, 43, 2059, 2061, 105, 104, 46, 42, 2060, 869, + 2022, 2023, 27, 2024, 26, 15, 2026, 14, 2028, 13, + 12, 2066, 165, 11, 10, 165, 165, 165, 486, 486, + 9, 2068, 2067, 5, 4, 937, 2071, 24, 2073, 1008, + 2, 0, 0, 0, 0, 1735, 0, 2103, 486, 486, + 486, 2070, 0, 0, 0, 0, 0, 0, 1687, 0, + 0, 0, 0, 2092, 2109, 971, 970, 980, 981, 973, + 974, 975, 976, 977, 978, 979, 972, 0, 535, 982, + 0, 0, 0, 486, 486, 486, 165, 2107, 0, 1711, + 1712, 1062, 0, 2108, 2034, 0, 0, 486, 0, 486, + 166, 0, 2115, 0, 0, 486, 0, 2133, 2123, 0, + 486, 2120, 2088, 1928, 0, 0, 2124, 1928, 2135, 2131, + 2110, 2111, 2112, 2113, 2114, 2137, 2129, 164, 2117, 2118, + 443, 2139, 487, 481, 0, 0, 0, 0, 0, 486, + 443, 2146, 486, 0, 0, 0, 0, 2148, 443, 487, + 487, 2149, 487, 0, 487, 487, 0, 487, 487, 487, + 487, 487, 487, 0, 0, 596, 596, 2119, 2121, 2122, + 0, 0, 487, 2156, 443, 2142, 166, 2143, 0, 2159, + 2160, 2161, 2162, 0, 2166, 2172, 2167, 2168, 2169, 2138, + 2170, 2171, 1928, 2184, 2140, 0, 0, 0, 486, 165, + 0, 0, 0, 487, 2191, 166, 0, 971, 970, 980, + 981, 973, 974, 975, 976, 977, 978, 979, 972, 0, + 166, 982, 0, 2153, 0, 0, 486, 0, 2201, 0, + 0, 2208, 2197, 0, 486, 486, 166, 2217, 0, 2222, + 2230, 2225, 2212, 166, 0, 2033, 0, 0, 0, 0, + 2244, 2243, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 487, 487, 487, 2250, 2156, 2232, 0, 2256, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2226, 0, + 2262, 0, 2195, 0, 0, 0, 0, 0, 166, 0, + 0, 0, 0, 1735, 0, 2257, 2258, 2276, 0, 0, + 0, 0, 0, 0, 2278, 0, 0, 966, 0, 969, + 0, 0, 0, 0, 0, 983, 984, 985, 986, 987, + 988, 989, 1905, 967, 968, 965, 971, 970, 980, 981, + 973, 974, 975, 976, 977, 978, 979, 972, 0, 0, + 982, 0, 0, 0, 0, 0, 0, 0, 0, 487, + 0, 0, 0, 0, 0, 0, 0, 1920, 971, 970, 980, 981, 973, 974, 975, 976, 977, 978, 979, 972, - 1860, 1116, 982, 1111, 1511, 591, 587, 1339, 1068, 1069, - 590, 1880, 589, 483, 1489, 486, 163, 1866, 1104, 1072, - 1867, 588, 832, 447, 1872, 1900, 165, 1968, 1878, 1881, - 1893, 1335, 1610, 1894, 453, 990, 486, 1715, 1762, 609, - 602, 1927, 486, 486, 2199, 1879, 584, 585, 590, 2170, - 589, 2172, 2121, 2175, 1922, 2168, 2253, 2231, 1925, 2182, - 1522, 1449, 1060, 1551, 166, 165, 166, 2044, 1915, 166, - 1684, 1019, 1420, 1087, 508, 1444, 1358, 523, 520, 1735, - 521, 1460, 1727, 964, 506, 500, 1931, 1079, 1481, 1479, - 1919, 1940, 1478, 1634, 1909, 487, 487, 487, 1091, 1938, - 1934, 1657, 1658, 1659, 1085, 1464, 1944, 1523, 1946, 1945, - 1947, 1847, 1996, 487, 487, 943, 583, 1960, 1961, 1976, - 495, 767, 1930, 1417, 2158, 165, 1651, 2033, 582, 61, - 1952, 38, 490, 486, 2248, 934, 592, 32, 31, 30, - 29, 486, 28, 23, 22, 21, 165, 20, 19, 25, - 1972, 18, 17, 1973, 1974, 1971, 165, 16, 1989, 98, - 48, 45, 43, 105, 1991, 104, 46, 42, 869, 1985, - 165, 27, 26, 165, 15, 14, 1986, 1993, 1988, 13, - 12, 11, 2013, 10, 1994, 9, 1555, 5, 4, 937, - 24, 1008, 166, 2, 0, 0, 0, 0, 0, 0, - 2008, 0, 0, 0, 0, 2007, 0, 0, 0, 0, - 0, 0, 0, 0, 610, 610, 610, 0, 0, 0, - 487, 0, 0, 166, 0, 166, 166, 0, 487, 0, - 0, 2021, 933, 935, 487, 0, 2010, 2011, 0, 0, - 0, 0, 0, 0, 2016, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2043, 0, 0, 0, 0, 0, - 2048, 0, 0, 0, 0, 0, 0, 0, 0, 2057, - 0, 0, 0, 2056, 0, 0, 0, 0, 0, 2018, - 2019, 0, 2020, 1735, 0, 2022, 2062, 2024, 165, 0, - 0, 165, 165, 165, 486, 486, 2064, 0, 2063, 0, - 0, 0, 0, 0, 0, 2066, 0, 2068, 0, 0, - 0, 2083, 0, 2098, 486, 486, 486, 0, 0, 0, - 0, 0, 0, 1687, 0, 0, 0, 0, 0, 0, - 2104, 0, 0, 0, 0, 0, 0, 0, 0, 1075, - 0, 0, 0, 0, 0, 0, 0, 610, 0, 486, - 486, 486, 165, 1105, 1711, 1712, 1062, 0, 0, 0, - 0, 0, 2103, 486, 0, 486, 2114, 2116, 2117, 0, - 0, 486, 0, 0, 2128, 2102, 0, 2118, 1925, 2124, - 0, 166, 1925, 2126, 2130, 2119, 0, 0, 2133, 0, - 0, 0, 0, 1874, 1875, 0, 0, 2110, 2136, 0, - 2137, 0, 0, 0, 486, 0, 0, 486, 1895, 1896, - 0, 1897, 1898, 487, 2140, 0, 2151, 0, 2144, 0, - 2132, 2148, 1904, 1905, 0, 0, 2134, 0, 0, 0, - 487, 487, 0, 487, 0, 487, 487, 0, 487, 487, - 487, 487, 487, 487, 0, 2167, 0, 0, 0, 0, - 0, 0, 0, 487, 165, 0, 1925, 166, 2179, 0, - 0, 0, 0, 486, 165, 0, 0, 0, 0, 0, - 2186, 0, 0, 0, 0, 2031, 0, 0, 0, 0, - 2190, 0, 0, 0, 487, 0, 166, 0, 0, 2203, - 0, 486, 0, 2196, 0, 0, 0, 0, 0, 486, - 486, 166, 0, 2213, 2207, 1954, 2216, 0, 2151, 2224, - 2222, 0, 0, 0, 0, 2236, 2235, 166, 0, 0, - 0, 0, 0, 0, 166, 0, 0, 0, 0, 1735, - 486, 2244, 759, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 487, 487, 487, 1204, 2251, 2247, 0, 1210, - 1210, 0, 1210, 0, 1210, 1210, 0, 1219, 1210, 1210, - 1210, 1210, 1210, 2030, 0, 2262, 0, 0, 0, 166, - 1204, 1204, 759, 0, 0, 0, 0, 0, 0, 2271, - 0, 0, 0, 0, 0, 0, 2281, 1902, 971, 970, - 980, 981, 973, 974, 975, 976, 977, 978, 979, 972, - 0, 0, 982, 1279, 0, 2014, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 966, 0, 969, 0, 0, - 0, 0, 1917, 983, 984, 985, 986, 987, 988, 989, - 487, 967, 968, 965, 971, 970, 980, 981, 973, 974, - 975, 976, 977, 978, 979, 972, 0, 0, 982, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 610, 610, 610, 487, 487, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 166, 971, 970, 980, 981, - 973, 974, 975, 976, 977, 978, 979, 972, 0, 487, - 982, 2065, 0, 0, 0, 0, 166, 0, 0, 487, - 0, 0, 0, 166, 0, 166, 0, 0, 0, 0, - 0, 0, 0, 166, 166, 0, 0, 0, 0, 0, - 487, 0, 0, 487, 0, 0, 0, 0, 462, 0, - 0, 0, 0, 0, 487, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 459, 1394, - 0, 610, 0, 0, 0, 0, 0, 0, 0, 0, - 2105, 2106, 2107, 2108, 2109, 1204, 0, 0, 2112, 2113, - 1403, 1404, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1426, 1427, 0, 0, 456, 0, 487, - 0, 0, 0, 0, 0, 0, 468, 0, 0, 0, - 0, 0, 0, 0, 2035, 0, 0, 0, 1461, 0, - 161, 0, 0, 487, 0, 0, 1448, 0, 1075, 487, - 0, 610, 0, 0, 0, 0, 0, 499, 0, 0, - 0, 0, 0, 0, 2058, 103, 0, 2059, 2029, 610, - 2061, 0, 610, 474, 0, 0, 0, 0, 145, 0, - 0, 0, 0, 759, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, - 0, 446, 0, 448, 463, 0, 476, 0, 475, 452, - 0, 450, 454, 464, 455, 0, 449, 0, 460, 0, - 0, 451, 465, 466, 480, 479, 467, 0, 473, 458, - 477, 0, 142, 0, 143, 166, 0, 0, 766, 0, - 0, 0, 166, 160, 0, 0, 2217, 166, 166, 0, - 0, 166, 0, 166, 0, 0, 0, 0, 0, 166, - 0, 0, 759, 0, 0, 0, 166, 0, 766, 0, - 0, 0, 0, 0, 0, 0, 2123, 499, 535, 0, - 0, 971, 970, 980, 981, 973, 974, 975, 976, 977, - 978, 979, 972, 166, 487, 982, 0, 0, 0, 0, - 0, 0, 0, 0, 146, 0, 0, 0, 0, 0, - 0, 0, 759, 0, 151, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2037, 164, 0, 0, - 443, 0, 0, 481, 0, 0, 0, 0, 0, 0, - 443, 0, 0, 0, 0, 0, 0, 0, 443, 2036, - 0, 0, 0, 0, 478, 0, 0, 0, 2028, 0, - 0, 0, 0, 0, 0, 596, 596, 0, 0, 0, - 0, 0, 471, 0, 443, 971, 970, 980, 981, 973, - 974, 975, 976, 977, 978, 979, 972, 472, 166, 982, - 0, 0, 0, 0, 0, 0, 166, 0, 971, 970, - 980, 981, 973, 974, 975, 976, 977, 978, 979, 972, - 0, 0, 982, 1646, 0, 0, 0, 0, 0, 0, - 138, 166, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 166, 166, 166, 166, 166, 0, 0, 0, - 0, 0, 0, 0, 166, 0, 0, 0, 166, 0, - 0, 166, 166, 0, 0, 166, 166, 166, 0, 0, - 0, 0, 0, 0, 35, 36, 37, 72, 39, 40, - 0, 971, 970, 980, 981, 973, 974, 975, 976, 977, - 978, 979, 972, 1663, 76, 982, 0, 1664, 0, 41, - 67, 68, 0, 65, 69, 0, 0, 0, 1671, 1672, - 0, 0, 66, 0, 1678, 0, 0, 1681, 1682, 0, - 0, 0, 0, 0, 487, 1688, 0, 1689, 0, 166, - 1692, 1693, 1694, 1695, 1696, 0, 166, 0, 0, 0, - 0, 54, 487, 1873, 0, 0, 1706, 0, 487, 0, - 0, 71, 0, 0, 0, 0, 0, 0, 487, 0, - 1204, 0, 0, 971, 970, 980, 981, 973, 974, 975, - 976, 977, 978, 979, 972, 0, 0, 982, 0, 0, - 0, 166, 166, 166, 166, 166, 0, 0, 0, 0, - 0, 0, 0, 1750, 1751, 0, 0, 166, 166, 0, - 0, 0, 139, 144, 141, 147, 148, 149, 150, 152, - 153, 154, 155, 0, 0, 0, 0, 0, 156, 157, - 158, 159, 0, 0, 0, 44, 47, 50, 49, 52, - 0, 64, 0, 487, 70, 0, 0, 0, 0, 0, - 0, 0, 0, 1809, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 53, 75, 74, - 0, 1821, 62, 63, 51, 1204, 0, 1828, 0, 487, - 0, 0, 0, 0, 0, 610, 0, 1833, 0, 0, - 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 487, 0, 0, 0, 0, 0, 487, 487, 0, 0, - 0, 0, 0, 55, 56, 0, 57, 58, 59, 60, - 0, 0, 0, 0, 1662, 0, 0, 0, 0, 166, - 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, - 443, 0, 0, 443, 971, 970, 980, 981, 973, 974, - 975, 976, 977, 978, 979, 972, 0, 0, 982, 0, - 0, 0, 610, 0, 0, 971, 970, 980, 981, 973, - 974, 975, 976, 977, 978, 979, 972, 1876, 1877, 982, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, - 0, 0, 0, 0, 0, 0, 0, 487, 1210, 0, - 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, - 166, 0, 0, 0, 0, 0, 0, 0, 73, 610, - 166, 0, 1204, 0, 0, 1929, 1210, 0, 0, 0, - 0, 0, 0, 0, 166, 0, 0, 166, 0, 0, - 0, 0, 0, 1928, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 537, 34, 0, 0, 0, 0, - 0, 0, 0, 0, 1943, 0, 443, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 596, 0, 0, 0, 0, 0, 0, 34, - 0, 0, 0, 0, 0, 0, 0, 443, 0, 443, - 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 759, 0, 0, 1204, - 0, 0, 0, 0, 1821, 0, 0, 0, 0, 1050, - 0, 0, 0, 0, 573, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 166, 0, 0, 166, 166, 166, 487, 487, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 487, 487, - 487, 442, 0, 0, 0, 0, 0, 0, 0, 0, - 2015, 489, 0, 0, 2017, 0, 0, 0, 0, 569, - 0, 0, 0, 0, 0, 2026, 2027, 0, 0, 0, - 0, 0, 0, 487, 487, 487, 166, 0, 0, 0, - 0, 2041, 0, 0, 0, 763, 1204, 487, 0, 487, - 0, 0, 0, 0, 0, 487, 0, 0, 2050, 2051, - 0, 0, 2055, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, + 0, 0, 982, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 487, 487, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 166, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 487, 0, - 0, 487, 0, 0, 0, 0, 0, 1821, 2084, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2099, 2100, 2101, - 1205, 0, 2087, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, - 0, 0, 0, 0, 0, 1205, 1205, 487, 166, 0, - 0, 443, 1821, 1821, 1821, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2129, 0, 2131, 0, - 2115, 0, 0, 0, 1821, 487, 0, 0, 0, 0, - 443, 0, 0, 487, 487, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1300, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1821, 0, 0, - 610, 443, 0, 0, 487, 0, 0, 0, 443, 0, - 0, 0, 0, 0, 0, 0, 0, 1323, 1324, 443, - 443, 443, 443, 443, 443, 443, 0, 2154, 2155, 2156, - 2157, 0, 2161, 0, 2162, 2163, 2164, 0, 2165, 2166, + 0, 0, 0, 0, 0, 166, 0, 0, 487, 0, + 0, 103, 166, 125, 166, 0, 0, 0, 0, 534, + 0, 0, 166, 166, 145, 0, 0, 0, 0, 487, + 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, + 0, 1876, 0, 487, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, + 124, 971, 970, 980, 981, 973, 974, 975, 976, 977, + 978, 979, 972, 0, 0, 982, 0, 0, 142, 485, + 143, 0, 2032, 0, 0, 112, 113, 134, 133, 160, + 0, 0, 0, 0, 0, 0, 0, 0, 487, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, + 443, 610, 0, 443, 759, 0, 766, 0, 0, 0, + 0, 0, 487, 0, 0, 0, 0, 0, 487, 0, + 0, 0, 2039, 0, 0, 0, 0, 0, 0, 129, + 110, 136, 117, 109, 0, 130, 131, 0, 0, 0, + 146, 0, 0, 0, 0, 499, 0, 0, 0, 0, + 151, 118, 2062, 0, 0, 2063, 0, 0, 2065, 0, + 0, 0, 487, 0, 0, 121, 119, 114, 115, 116, + 120, 0, 0, 0, 0, 111, 0, 0, 0, 0, + 0, 0, 0, 0, 122, 971, 970, 980, 981, 973, + 974, 975, 976, 977, 978, 979, 972, 0, 0, 982, + 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, + 0, 166, 0, 0, 0, 0, 166, 166, 0, 0, + 166, 0, 166, 0, 1662, 0, 443, 0, 166, 0, + 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, + 0, 0, 596, 0, 971, 970, 980, 981, 973, 974, + 975, 976, 977, 978, 979, 972, 138, 443, 982, 443, + 1094, 0, 166, 487, 0, 2128, 499, 0, 0, 0, + 0, 1050, 971, 970, 980, 981, 973, 974, 975, 976, + 977, 978, 979, 972, 0, 0, 982, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 442, 126, 0, 0, 127, 0, 0, + 0, 0, 0, 489, 0, 0, 0, 0, 0, 0, + 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, + 0, 0, 0, 0, 0, 166, 0, 763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 443, 0, 0, 1821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 166, 166, 166, 166, 166, 0, 0, 0, 0, + 0, 0, 0, 166, 0, 443, 0, 166, 0, 0, + 166, 166, 0, 0, 166, 166, 166, 0, 139, 144, + 141, 147, 148, 149, 150, 152, 153, 154, 155, 0, + 0, 0, 0, 0, 156, 157, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2192, 0, 1204, 0, 2208, 0, 0, 0, 0, 0, - 0, 0, 610, 610, 0, 0, 0, 0, 0, 0, + 1205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 596, 1300, 0, 0, 0, - 596, 596, 0, 1821, 596, 596, 596, 0, 0, 0, - 1205, 0, 0, 0, 0, 926, 926, 926, 0, 2245, - 2246, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 596, 596, 596, 596, 596, 34, 0, 0, 0, 1442, - 0, 0, 0, 0, 0, 0, 0, 0, 991, 993, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, - 443, 875, 0, 0, 877, 0, 1300, 443, 0, 443, - 0, 0, 0, 0, 0, 0, 0, 443, 443, 1006, - 0, 0, 0, 1011, 1012, 1013, 1014, 1015, 1016, 1017, - 1018, 0, 1021, 1023, 1026, 1026, 1026, 1023, 1026, 1026, - 1023, 1026, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 0, - 0, 0, 0, 0, 1051, 0, 0, 0, 34, 0, - 0, 0, 1132, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 161, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1819, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 103, 0, 125, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1081, 0, - 0, 1092, 0, 0, 0, 0, 0, 135, 0, 0, - 0, 0, 124, 0, 0, 0, 0, 0, 0, 1120, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 142, 0, 143, 0, 0, 0, 0, 1185, 1186, 134, - 133, 160, 0, 0, 0, 0, 0, 0, 0, 443, - 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, - 0, 443, 443, 1133, 0, 443, 0, 1637, 0, 0, - 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, + 610, 610, 610, 487, 0, 1205, 1205, 0, 166, 0, + 0, 443, 0, 0, 0, 166, 0, 0, 933, 935, + 0, 487, 0, 0, 0, 0, 0, 487, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 129, 1187, 136, 0, 1184, 0, 130, 131, 0, - 0, 0, 146, 0, 0, 0, 0, 443, 0, 0, - 0, 0, 151, 0, 1146, 1149, 1150, 1151, 1152, 1153, - 1154, 0, 1155, 1156, 1157, 1158, 1159, 1134, 1135, 1136, - 1137, 1118, 1119, 1147, 0, 1121, 0, 1122, 1123, 1124, - 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1138, 1139, 1140, - 1141, 1142, 1143, 1144, 1145, 0, 1110, 0, 0, 0, - 0, 0, 0, 0, 0, 596, 596, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 596, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, - 1442, 0, 0, 0, 0, 0, 0, 0, 138, 0, - 0, 0, 1148, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1241, 0, 596, 443, 0, 0, 0, 0, - 0, 0, 926, 926, 926, 1205, 443, 443, 443, 443, - 443, 0, 0, 0, 0, 0, 0, 0, 1749, 0, - 0, 1281, 443, 0, 0, 443, 443, 0, 0, 443, - 1759, 1300, 0, 0, 132, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 126, 0, 0, 127, - 0, 0, 1310, 0, 0, 0, 0, 0, 0, 1314, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1325, 1326, 1327, 1328, 1329, 1330, 1331, 0, 0, 0, + 0, 0, 0, 0, 0, 1300, 0, 0, 0, 0, + 166, 166, 166, 166, 166, 0, 0, 0, 0, 0, + 0, 443, 0, 0, 0, 0, 166, 166, 443, 0, + 0, 0, 0, 0, 0, 0, 0, 1323, 1324, 443, + 443, 443, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, - 1818, 0, 0, 0, 1092, 0, 0, 0, 0, 0, + 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 443, 0, 1075, 0, 0, 0, 0, + 0, 0, 0, 610, 0, 0, 0, 0, 0, 1105, + 0, 0, 0, 0, 0, 0, 0, 0, 487, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 487, + 0, 0, 0, 0, 0, 487, 487, 0, 0, 0, + 0, 0, 0, 0, 0, 596, 1300, 0, 0, 0, + 596, 596, 0, 0, 596, 596, 596, 0, 166, 0, 1205, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1300, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, - 139, 144, 141, 147, 148, 149, 150, 152, 153, 154, - 155, 443, 443, 0, 0, 0, 156, 157, 158, 159, - 0, 0, 0, 1493, 0, 0, 0, 161, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1181, 0, - 0, 0, 0, 0, 0, 0, 596, 0, 0, 0, - 0, 0, 103, 0, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1468, 0, 0, 0, 0, 0, 0, 1472, 0, - 1475, 0, 0, 0, 443, 0, 135, 0, 0, 1494, - 0, 124, 0, 0, 0, 0, 0, 1205, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, - 0, 143, 0, 0, 0, 0, 1185, 1186, 134, 133, - 160, 0, 0, 443, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 129, 1187, 136, 0, 1184, 0, 130, 131, 0, 0, - 0, 146, 0, 443, 0, 0, 0, 0, 0, 0, - 0, 151, 0, 0, 1205, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, - 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 596, 596, 596, 596, 596, 0, 0, 166, 0, 1442, + 0, 870, 0, 875, 0, 0, 877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 443, 0, 0, 0, 0, 0, 1300, 443, 0, 443, + 0, 166, 0, 0, 0, 0, 0, 443, 443, 487, + 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, + 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 166, 0, 0, 166, + 0, 0, 0, 0, 0, 0, 0, 0, 759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1092, 0, 0, 0, 0, 0, 0, 1621, 0, 0, - 0, 0, 1630, 1631, 0, 0, 1635, 138, 0, 0, - 0, 1205, 0, 0, 1638, 0, 0, 0, 0, 0, - 0, 1641, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1667, 0, 0, 573, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1645, 0, - 0, 0, 0, 0, 0, 0, 443, 0, 0, 443, - 443, 443, 0, 132, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1704, 126, 0, 0, 127, 0, + 0, 1204, 0, 0, 0, 1210, 1210, 0, 1210, 0, + 1210, 1210, 0, 1219, 1210, 1210, 1210, 1210, 1210, 0, + 0, 0, 0, 0, 0, 0, 1204, 1204, 759, 0, + 537, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1088, 0, 0, 0, 0, 0, 0, 1731, 1732, - 0, 0, 1088, 1088, 1088, 1088, 1088, 0, 0, 0, - 1442, 0, 0, 0, 0, 0, 0, 0, 1493, 0, - 0, 1088, 0, 0, 0, 1088, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1279, + 1081, 0, 0, 1092, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 166, 0, 0, 166, 166, + 166, 487, 487, 0, 0, 0, 0, 0, 0, 0, + 573, 0, 0, 0, 0, 0, 0, 610, 610, 610, + 0, 487, 487, 487, 0, 0, 0, 0, 0, 443, + 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, + 0, 443, 443, 0, 0, 443, 0, 1637, 0, 0, + 0, 0, 0, 443, 0, 0, 487, 487, 487, 166, + 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 487, 0, 487, 0, 0, 0, 0, 0, 487, 0, + 0, 0, 0, 487, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, - 144, 141, 147, 148, 149, 150, 152, 153, 154, 155, - 0, 0, 0, 0, 0, 156, 157, 158, 159, 0, - 0, 0, 0, 0, 0, 0, 0, 1756, 0, 0, + 0, 0, 0, 0, 0, 1394, 0, 610, 0, 0, + 0, 0, 487, 0, 0, 487, 0, 0, 1110, 0, + 0, 1204, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1426, + 1427, 0, 0, 0, 0, 596, 596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 443, 0, 0, 0, 0, 0, 0, 1834, + 0, 0, 0, 0, 1461, 0, 596, 0, 0, 0, + 0, 487, 166, 0, 1075, 0, 0, 610, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, + 1442, 0, 0, 0, 1241, 610, 0, 0, 610, 487, + 0, 0, 0, 0, 0, 0, 0, 487, 487, 759, + 0, 0, 0, 0, 596, 443, 0, 0, 0, 0, + 0, 0, 0, 1281, 0, 1205, 443, 443, 443, 443, + 443, 0, 0, 0, 0, 0, 0, 0, 1749, 0, + 0, 0, 443, 0, 0, 443, 443, 0, 0, 443, + 1759, 1300, 0, 0, 1310, 161, 0, 0, 0, 0, + 0, 1314, 0, 0, 766, 0, 1181, 0, 0, 0, + 0, 0, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 0, + 103, 0, 125, 0, 0, 0, 0, 0, 759, 0, + 0, 0, 0, 145, 766, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, + 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, + 1821, 0, 0, 0, 135, 0, 0, 0, 0, 124, + 1205, 0, 0, 0, 0, 0, 0, 0, 759, 0, + 1300, 0, 0, 0, 0, 0, 0, 142, 0, 143, + 0, 0, 0, 0, 1185, 1186, 134, 133, 160, 0, + 0, 0, 0, 0, 0, 443, 443, 443, 443, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1205, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 443, 443, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 926, 926, 926, 0, 0, 0, 0, 129, 1187, + 136, 0, 1184, 0, 130, 131, 596, 0, 0, 146, + 0, 34, 0, 0, 0, 0, 0, 0, 0, 151, + 0, 0, 0, 1468, 991, 993, 0, 0, 0, 1646, + 1472, 0, 1475, 0, 0, 0, 0, 0, 0, 0, + 0, 1494, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 443, 1006, 0, 0, 0, 1011, + 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1205, 1021, 1023, + 1026, 1026, 1026, 1023, 1026, 1026, 1023, 1026, 1039, 1040, + 1041, 1042, 1043, 1044, 1045, 0, 0, 0, 0, 0, + 1051, 0, 0, 443, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1088, 443, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1851, 1852, 1853, 1854, - 1855, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1092, 1861, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, + 168, 169, 0, 0, 0, 0, 443, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1204, 1205, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, + 0, 132, 0, 0, 0, 0, 0, 443, 0, 0, + 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, + 0, 443, 0, 0, 443, 0, 0, 0, 0, 0, + 0, 462, 0, 0, 0, 0, 0, 0, 0, 0, + 461, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1132, 459, 1092, 0, 0, 0, 0, 0, 0, 1621, + 0, 0, 0, 0, 1630, 1631, 0, 0, 1635, 1812, + 0, 0, 0, 0, 0, 0, 1638, 0, 0, 0, + 0, 0, 0, 1641, 0, 0, 0, 1824, 0, 0, + 456, 1204, 0, 1831, 1205, 0, 0, 0, 0, 468, + 0, 610, 0, 1836, 0, 0, 0, 0, 0, 0, + 1645, 0, 0, 0, 0, 0, 0, 139, 144, 141, + 147, 148, 149, 150, 152, 153, 154, 155, 0, 0, + 0, 0, 0, 156, 157, 158, 159, 0, 0, 0, + 443, 0, 0, 443, 443, 443, 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1926, 0, 34, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1120, 0, 0, + 0, 0, 0, 0, 446, 0, 448, 463, 610, 476, + 0, 475, 452, 0, 450, 454, 464, 455, 0, 449, + 0, 460, 0, 0, 451, 465, 466, 480, 479, 467, + 0, 473, 458, 477, 1442, 0, 0, 0, 0, 0, + 0, 1133, 0, 0, 1210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, + 0, 0, 0, 0, 0, 610, 0, 0, 1204, 0, + 0, 1932, 1210, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 926, 926, + 926, 0, 1146, 1149, 1150, 1151, 1152, 1153, 1154, 1756, + 1155, 1156, 1157, 1158, 1159, 1134, 1135, 1136, 1137, 1118, + 1119, 1147, 0, 1121, 0, 1122, 1123, 1124, 1125, 1126, + 1127, 1128, 1129, 1130, 1131, 1138, 1139, 1140, 1141, 1142, + 1143, 1144, 1145, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 478, 0, 0, + 0, 0, 0, 0, 0, 759, 1815, 0, 1204, 0, + 0, 0, 1205, 1824, 0, 471, 0, 0, 35, 36, + 37, 72, 39, 40, 0, 0, 0, 0, 0, 0, + 472, 0, 0, 0, 0, 0, 0, 0, 76, 0, + 1148, 0, 0, 41, 67, 68, 0, 65, 69, 0, + 0, 0, 0, 0, 0, 0, 66, 0, 1854, 1855, + 1856, 1857, 1858, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1092, 1864, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 71, 0, 0, 0, 1493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1917, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1824, 2089, 44, + 47, 50, 49, 52, 0, 64, 0, 0, 70, 0, + 0, 0, 0, 0, 0, 0, 0, 2104, 2105, 2106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 53, 75, 74, 0, 0, 62, 63, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1824, 1824, 1824, 1962, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2134, 0, 2136, 0, + 0, 0, 0, 0, 1824, 0, 0, 55, 56, 1824, + 57, 58, 59, 60, 0, 0, 0, 0, 0, 1983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1824, 0, + 1996, 610, 0, 0, 0, 0, 0, 0, 0, 0, + 1999, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2010, 0, 0, 2013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1204, 0, 2213, 0, 0, 0, 0, + 0, 0, 0, 610, 610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1979, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2032, 0, 0, 0, 0, 0, - 0, 2038, 2039, 2040, 0, 1992, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1995, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2006, - 0, 0, 2009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1667, 0, 0, 573, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2084, 0, 0, 2085, 2086, 2087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, + 0, 0, 0, 0, 1731, 1732, 0, 0, 1088, 1088, + 1088, 1088, 1088, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1493, 0, 0, 1088, 0, 0, + 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1926, 0, 34, 2079, 1926, 0, - 2080, 2081, 2082, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, + 2196, 0, 223, 0, 0, 1837, 0, 0, 272, 0, + 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, + 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, + 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, + 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 971, 970, 980, + 981, 973, 974, 975, 976, 977, 978, 979, 972, 0, + 0, 982, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, + 1929, 0, 34, 0, 423, 0, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, + 310, 349, 355, 0, 0, 1088, 210, 0, 353, 324, + 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, + 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, + 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, + 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, + 383, 404, 199, 364, 0, 0, 0, 181, 402, 380, + 294, 264, 265, 180, 0, 345, 221, 241, 212, 313, + 399, 400, 211, 437, 190, 419, 183, 0, 418, 306, + 395, 403, 295, 286, 182, 401, 293, 285, 270, 231, + 251, 339, 280, 340, 252, 302, 301, 303, 0, 177, + 0, 377, 412, 438, 195, 196, 197, 0, 230, 234, + 240, 242, 0, 248, 255, 273, 317, 338, 336, 342, + 0, 390, 407, 415, 422, 428, 429, 433, 430, 431, + 434, 305, 191, 254, 373, 269, 278, 0, 0, 323, + 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2036, 0, 0, 0, 0, 0, 0, + 2042, 2043, 2044, 0, 170, 184, 274, 0, 343, 238, + 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 228, 236, 246, 250, 253, 257, + 258, 261, 266, 283, 288, 289, 290, 291, 307, 308, + 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, + 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, + 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, + 398, 409, 421, 426, 247, 405, 427, 0, 282, 0, + 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, + 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, + 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, + 387, 389, 296, 220, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1929, 0, 34, 0, 1929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1926, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2184, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2185, 0, 0, 0, 0, 0, 0, - 737, 723, 0, 2191, 672, 740, 642, 660, 750, 663, + 0, 0, 0, 1929, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2190, 0, + 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, + 737, 723, 0, 0, 672, 740, 642, 660, 750, 663, 666, 706, 621, 685, 314, 657, 0, 646, 617, 653, 618, 644, 674, 223, 678, 641, 725, 688, 739, 272, - 0, 623, 647, 328, 662, 176, 708, 366, 209, 281, + 34, 623, 647, 328, 662, 176, 708, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 746, 276, 695, 0, 375, 299, 0, 0, 0, 676, 729, 683, 719, 671, 707, 631, 694, 741, 658, 703, 742, 262, 207, 175, 311, 376, 237, 0, 0, - 0, 167, 168, 169, 0, 2225, 2226, 0, 0, 0, + 0, 167, 168, 169, 0, 2233, 2234, 0, 0, 0, 0, 0, 198, 0, 205, 700, 736, 655, 702, 219, 260, 225, 218, 391, 747, 728, 705, 753, 616, 697, 0, 619, 622, 749, 732, 650, 651, 0, 0, 0, @@ -1714,7 +1710,7 @@ var yyAct = [...]int{ 700, 736, 655, 702, 219, 260, 225, 218, 391, 747, 728, 705, 753, 616, 697, 0, 619, 622, 749, 732, 650, 651, 0, 0, 0, 0, 0, 0, 0, 675, - 684, 716, 669, 0, 0, 0, 0, 0, 0, 1918, + 684, 716, 669, 0, 0, 0, 0, 0, 0, 1921, 0, 648, 0, 693, 0, 0, 0, 627, 620, 0, 0, 0, 0, 673, 0, 0, 0, 630, 0, 649, 717, 0, 614, 245, 624, 300, 0, 721, 731, 670, @@ -2469,7 +2465,7 @@ var yyAct = [...]int{ 245, 0, 300, 0, 561, 0, 0, 423, 0, 0, 559, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, - 0, 353, 324, 408, 194, 235, 346, 329, 351, 2218, + 0, 353, 324, 408, 194, 235, 346, 329, 351, 2227, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, @@ -2590,7 +2586,7 @@ var yyAct = [...]int{ 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 223, 800, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, @@ -2601,12 +2597,12 @@ var yyAct = [...]int{ 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 971, 970, 980, 981, 973, 974, 975, - 976, 977, 978, 979, 972, 0, 0, 982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, - 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, - 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 300, 0, 0, 0, 799, + 423, 0, 0, 0, 0, 0, 0, 796, 797, 271, + 762, 268, 171, 187, 790, 794, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, @@ -2636,23 +2632,23 @@ var yyAct = [...]int{ 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, - 800, 0, 0, 0, 0, 272, 0, 0, 0, 328, + 314, 0, 0, 0, 1074, 0, 0, 0, 0, 223, + 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 0, 1076, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, + 0, 0, 960, 961, 959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, - 799, 423, 0, 0, 0, 0, 0, 0, 796, 797, - 271, 762, 268, 171, 187, 790, 794, 310, 349, 355, + 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, + 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, @@ -2682,61 +2678,61 @@ var yyAct = [...]int{ 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 0, 0, 1074, 0, 0, 0, 0, - 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, - 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, - 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, - 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, - 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, - 169, 0, 1076, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, - 391, 0, 0, 960, 961, 959, 0, 0, 0, 0, + 220, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, + 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, + 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, + 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, + 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 962, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 207, 175, 311, 376, 237, 71, 0, + 581, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, + 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, - 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, - 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, - 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, - 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, - 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, - 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, - 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, - 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 35, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, + 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, + 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, + 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, + 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, + 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, + 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, + 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, + 179, 383, 404, 199, 364, 0, 0, 0, 181, 402, + 380, 294, 264, 265, 180, 0, 345, 221, 241, 212, + 313, 399, 400, 211, 437, 190, 419, 183, 0, 418, + 306, 395, 403, 295, 286, 182, 401, 293, 285, 270, + 231, 251, 339, 280, 340, 252, 302, 301, 303, 0, + 177, 0, 377, 412, 438, 195, 196, 197, 0, 230, + 234, 240, 242, 0, 248, 255, 273, 317, 338, 336, + 342, 0, 390, 407, 415, 422, 428, 429, 433, 430, + 431, 434, 305, 191, 254, 373, 269, 278, 0, 0, + 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 184, 274, 0, 343, + 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 228, 236, 246, 250, 253, + 257, 258, 261, 266, 283, 288, 289, 290, 291, 307, + 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, + 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, + 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, + 397, 398, 409, 421, 426, 247, 405, 427, 0, 282, + 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, + 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, + 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, + 386, 387, 389, 296, 220, 314, 0, 0, 0, 1441, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, - 0, 581, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, + 0, 0, 167, 168, 169, 0, 1443, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2747,7 +2743,7 @@ var yyAct = [...]int{ 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, - 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, + 353, 324, 408, 194, 235, 346, 329, 351, 0, 1439, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, @@ -2776,25 +2772,25 @@ var yyAct = [...]int{ 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, - 1441, 0, 0, 0, 0, 223, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, - 0, 0, 0, 167, 168, 169, 0, 1443, 0, 0, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, - 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, - 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, + 0, 0, 0, 0, 0, 0, 271, 762, 268, 171, + 187, 760, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, - 1439, 352, 277, 396, 341, 406, 424, 425, 217, 304, + 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, 0, 0, @@ -2822,23 +2818,23 @@ var yyAct = [...]int{ 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, - 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, + 0, 1441, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, - 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, + 237, 0, 0, 0, 167, 168, 169, 0, 1443, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 756, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, - 0, 0, 0, 0, 0, 0, 0, 271, 762, 268, - 171, 187, 760, 0, 310, 349, 355, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, + 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, 411, @@ -2867,62 +2863,62 @@ var yyAct = [...]int{ 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, - 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, - 0, 0, 1441, 0, 0, 0, 0, 223, 0, 0, - 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, - 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, - 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, - 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 0, 0, 0, 167, 168, 169, 0, 1443, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 201, 365, 385, 386, 387, 389, 296, 220, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 314, 0, 0, 0, 0, 0, 0, 0, 0, + 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, + 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, + 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, + 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, + 207, 175, 311, 376, 237, 71, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, + 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, - 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, - 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, - 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, - 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, - 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, + 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, + 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, + 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, + 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, + 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, + 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, + 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, + 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, + 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, + 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, + 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, + 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, + 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, + 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, + 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, + 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, - 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 35, + 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, + 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, - 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, + 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, + 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, + 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, + 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, + 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, + 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, + 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, + 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, + 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, + 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 262, 207, 175, 311, 376, 237, 71, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 262, 207, 175, 311, 376, 237, 0, 0, 0, 167, + 168, 169, 0, 0, 1462, 0, 0, 1463, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2962,13 +2958,13 @@ var yyAct = [...]int{ 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, - 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, + 0, 0, 223, 0, 1107, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, 0, - 167, 168, 169, 0, 0, 1462, 0, 0, 1463, 0, + 167, 168, 169, 0, 1106, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3008,13 +3004,13 @@ var yyAct = [...]int{ 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, - 0, 0, 0, 223, 0, 1107, 0, 0, 0, 272, + 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, 0, - 0, 167, 168, 169, 0, 1106, 0, 0, 0, 0, + 581, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3059,8 +3055,8 @@ var yyAct = [...]int{ 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, - 0, 581, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 71, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3106,7 +3102,7 @@ var yyAct = [...]int{ 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, 237, - 71, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 167, 168, 169, 0, 1443, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3152,7 +3148,7 @@ var yyAct = [...]int{ 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, - 237, 0, 0, 0, 167, 168, 169, 0, 1443, 0, + 237, 0, 0, 0, 167, 168, 169, 0, 1076, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3198,7 +3194,7 @@ var yyAct = [...]int{ 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 0, 0, 0, 167, 168, 169, 0, 1076, + 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3225,7 +3221,7 @@ var yyAct = [...]int{ 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, + 184, 274, 1346, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, @@ -3238,7 +3234,7 @@ var yyAct = [...]int{ 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, - 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 1229, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, @@ -3271,7 +3267,7 @@ var yyAct = [...]int{ 373, 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 184, 274, 1346, 343, 238, 436, 417, 413, 0, + 170, 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, @@ -3284,7 +3280,7 @@ var yyAct = [...]int{ 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, - 314, 0, 1229, 0, 0, 0, 0, 0, 0, 223, + 314, 0, 1227, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, @@ -3330,7 +3326,7 @@ var yyAct = [...]int{ 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 1227, 0, 0, 0, 0, 0, 0, + 220, 314, 0, 1225, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, @@ -3376,7 +3372,7 @@ var yyAct = [...]int{ 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, 314, 0, 1225, 0, 0, 0, 0, 0, + 296, 220, 314, 0, 1223, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, @@ -3422,7 +3418,7 @@ var yyAct = [...]int{ 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, - 389, 296, 220, 314, 0, 1223, 0, 0, 0, 0, + 389, 296, 220, 314, 0, 1221, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, @@ -3468,7 +3464,7 @@ var yyAct = [...]int{ 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, - 387, 389, 296, 220, 314, 0, 1221, 0, 0, 0, + 387, 389, 296, 220, 314, 0, 1217, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, @@ -3514,7 +3510,7 @@ var yyAct = [...]int{ 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, - 386, 387, 389, 296, 220, 314, 0, 1217, 0, 0, + 386, 387, 389, 296, 220, 314, 0, 1215, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, @@ -3560,7 +3556,7 @@ var yyAct = [...]int{ 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, - 385, 386, 387, 389, 296, 220, 314, 0, 1215, 0, + 385, 386, 387, 389, 296, 220, 314, 0, 1213, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, @@ -3606,14 +3602,14 @@ var yyAct = [...]int{ 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, - 365, 385, 386, 387, 389, 296, 220, 314, 0, 1213, + 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, - 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, + 237, 1188, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3652,55 +3648,55 @@ var yyAct = [...]int{ 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, - 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, - 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, - 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, - 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, - 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, - 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 1188, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, + 201, 365, 385, 386, 387, 389, 296, 220, 1089, 0, + 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, + 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, + 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, + 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, + 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 207, 175, 311, 376, 237, 0, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, - 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, - 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, - 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, - 351, 0, 0, 352, 277, 396, 341, 406, 424, 425, - 217, 304, 414, 388, 420, 435, 188, 214, 318, 381, - 411, 372, 297, 392, 393, 267, 371, 243, 174, 275, - 432, 186, 361, 202, 179, 383, 404, 199, 364, 0, - 0, 0, 181, 402, 380, 294, 264, 265, 180, 0, - 345, 221, 241, 212, 313, 399, 400, 211, 437, 190, - 419, 183, 0, 418, 306, 395, 403, 295, 286, 182, - 401, 293, 285, 270, 231, 251, 339, 280, 340, 252, - 302, 301, 303, 0, 177, 0, 377, 412, 438, 195, - 196, 197, 0, 230, 234, 240, 242, 0, 248, 255, - 273, 317, 338, 336, 342, 0, 390, 407, 415, 422, - 428, 429, 433, 430, 431, 434, 305, 191, 254, 373, - 269, 278, 0, 0, 323, 354, 200, 410, 374, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, + 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, + 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, + 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, + 353, 324, 408, 194, 235, 346, 329, 351, 0, 0, + 352, 277, 396, 341, 406, 424, 425, 217, 304, 414, + 388, 420, 435, 188, 214, 318, 381, 411, 372, 297, + 392, 393, 267, 371, 243, 174, 275, 432, 186, 361, + 202, 179, 383, 404, 199, 364, 0, 0, 0, 181, + 402, 380, 294, 264, 265, 180, 0, 345, 221, 241, + 212, 313, 399, 400, 211, 437, 190, 419, 183, 0, + 418, 306, 395, 403, 295, 286, 182, 401, 293, 285, + 270, 231, 251, 339, 280, 340, 252, 302, 301, 303, + 0, 177, 0, 377, 412, 438, 195, 196, 197, 0, + 230, 234, 240, 242, 0, 248, 255, 273, 317, 338, + 336, 342, 0, 390, 407, 415, 422, 428, 429, 433, + 430, 431, 434, 305, 191, 254, 373, 269, 278, 0, + 0, 323, 354, 200, 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 274, 0, 343, 238, 436, 417, 413, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 274, 0, + 343, 238, 436, 417, 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 228, - 236, 246, 250, 253, 257, 258, 261, 266, 283, 288, - 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, - 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, - 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, - 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, - 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, - 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, - 347, 201, 365, 385, 386, 387, 389, 296, 220, 1089, - 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, - 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 228, 236, 246, 250, + 253, 257, 258, 261, 266, 283, 288, 289, 290, 291, + 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, + 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, + 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, + 382, 397, 398, 409, 421, 426, 247, 405, 427, 0, + 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, + 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, + 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, + 385, 386, 387, 389, 296, 220, 314, 0, 0, 0, + 0, 0, 0, 0, 1080, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, @@ -3746,13 +3742,13 @@ var yyAct = [...]int{ 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, 314, 0, 0, - 0, 0, 0, 0, 0, 1080, 223, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, 376, - 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, + 237, 0, 0, 0, 167, 168, 169, 0, 936, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3798,7 +3794,7 @@ var yyAct = [...]int{ 256, 287, 326, 384, 320, 0, 276, 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 207, 175, 311, - 376, 237, 0, 0, 0, 167, 168, 169, 0, 936, + 376, 237, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3806,7 +3802,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, + 492, 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, 329, @@ -3833,7 +3829,7 @@ var yyAct = [...]int{ 289, 290, 291, 307, 308, 309, 312, 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, - 369, 370, 378, 382, 397, 398, 409, 421, 426, 247, + 369, 370, 378, 382, 397, 398, 409, 421, 426, 491, 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, @@ -3852,7 +3848,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 492, 0, 245, 0, 300, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 300, 0, 0, 441, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, 346, @@ -3880,7 +3876,7 @@ var yyAct = [...]int{ 319, 321, 322, 325, 331, 332, 333, 334, 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, 421, 426, - 491, 405, 427, 0, 282, 0, 0, 284, 232, 249, + 247, 405, 427, 0, 282, 0, 0, 284, 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, 220, @@ -3898,7 +3894,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 245, 0, 300, 0, 0, 441, + 0, 0, 0, 0, 245, 0, 300, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, 235, @@ -3930,73 +3926,27 @@ var yyAct = [...]int{ 249, 259, 0, 416, 379, 189, 350, 239, 178, 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, 296, - 220, 314, 0, 0, 0, 0, 0, 0, 0, 0, - 223, 0, 0, 0, 0, 0, 272, 0, 0, 0, - 328, 0, 176, 0, 366, 209, 281, 279, 394, 233, - 226, 222, 208, 256, 287, 326, 384, 320, 0, 276, - 0, 0, 375, 299, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, - 207, 175, 311, 376, 237, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 260, 225, 218, - 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 245, 0, 300, 0, 0, - 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, - 0, 271, 0, 268, 171, 187, 0, 0, 310, 349, - 355, 0, 0, 0, 210, 0, 353, 324, 408, 194, - 235, 346, 329, 351, 0, 0, 352, 277, 396, 341, - 406, 424, 425, 217, 304, 414, 388, 420, 435, 188, - 214, 318, 381, 411, 372, 297, 392, 393, 267, 371, - 243, 174, 275, 432, 186, 361, 202, 179, 383, 404, - 199, 364, 0, 0, 0, 181, 402, 380, 294, 264, - 265, 180, 0, 345, 221, 241, 212, 313, 399, 400, - 211, 437, 190, 419, 183, 0, 418, 306, 395, 403, - 295, 286, 182, 401, 293, 285, 270, 231, 251, 339, - 280, 340, 252, 302, 301, 303, 0, 177, 0, 377, - 412, 438, 195, 196, 197, 0, 230, 234, 240, 242, - 0, 248, 255, 273, 317, 338, 336, 342, 0, 390, - 407, 415, 422, 428, 429, 433, 430, 431, 434, 305, - 191, 254, 373, 269, 278, 0, 0, 323, 354, 200, - 410, 374, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 184, 274, 0, 343, 238, 436, 417, - 413, 0, 0, 216, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 228, 236, 246, 250, 253, 257, 258, 261, - 266, 283, 288, 289, 290, 291, 307, 308, 309, 312, - 315, 316, 319, 321, 322, 325, 331, 332, 333, 334, - 335, 337, 344, 348, 356, 357, 358, 359, 360, 362, - 363, 367, 368, 369, 370, 378, 382, 397, 398, 409, - 421, 426, 247, 405, 427, 0, 282, 0, 0, 284, - 232, 249, 259, 0, 416, 379, 189, 350, 239, 178, - 206, 192, 213, 227, 229, 263, 292, 298, 327, 330, - 244, 224, 204, 347, 201, 365, 385, 386, 387, 389, - 296, 220, + 220, } var yyPact = [...]int{ - 2818, -1000, -348, 1590, -1000, -1000, -1000, -1000, -1000, -1000, + 4222, -1000, -347, 1729, -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, 1520, 1155, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 577, 1201, -1000, 1457, 270, -1000, 28162, 393, - -1000, 27701, 392, 2270, 28162, -1000, 93, -1000, 77, 28162, - 82, 27240, -1000, -1000, -289, 12916, 1418, -9, -10, 28162, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1181, - 1505, 1515, 1542, 1048, 1674, -1000, 11059, 11059, 327, 327, - 327, 9215, -1000, -1000, 17078, 28162, 28162, 117, -1000, 1457, - -1000, -1000, 138, -1000, 246, 1153, -1000, 1151, -1000, 404, - 463, 243, 310, 309, 241, 240, 235, 233, 222, 221, - 220, 216, 255, -1000, 543, 543, -171, -185, 2495, 286, - 286, 286, 354, 1435, 1432, -1000, 501, -1000, 543, 543, - 136, 543, 543, 543, 543, 197, 196, 543, 543, 543, - 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, - 543, 543, 227, 1457, 179, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1685, 1303, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 577, 1345, -1000, 1596, 2351, -1000, 27661, 405, + -1000, 27200, 389, 3763, 27661, -1000, 102, -1000, 85, 27661, + 96, 26739, -1000, -1000, -283, 12876, 1527, -11, -22, 27661, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1366, + 1656, 1665, 1681, 1123, 1700, -1000, 11019, 11019, 355, 355, + 355, 9175, -1000, -1000, 16577, 27661, 27661, 215, -1000, 1596, + -1000, -1000, 156, -1000, 274, 1305, -1000, 1300, -1000, 470, + 490, 288, 351, 340, 284, 283, 273, 266, 262, 259, + 258, 257, 294, -1000, 540, 540, -151, -170, 289, 330, + 330, 330, 366, 1558, 1553, -1000, 549, -1000, 540, 540, + 148, 540, 540, 540, 540, 224, 223, 540, 540, 540, + 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, + 540, 540, 210, 1596, 202, -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, @@ -4023,26 +3973,26 @@ 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, -1000, -1000, 28162, - 162, 28162, -1000, 487, 28162, 662, 662, 4, 662, 662, - 662, 662, 94, 453, -17, -1000, 91, 189, 73, 174, - 639, 219, 57, -1000, -1000, 165, 639, 83, -1000, 662, - 7315, 7315, 7315, -1000, 1444, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 349, -1000, -1000, -1000, -1000, 28162, 26779, - 229, 597, -1000, -1000, -1000, 89, -1000, -1000, 1091, 612, - -1000, 12916, 2191, 1159, 1159, -1000, -1000, 410, -1000, -1000, - 14299, 14299, 14299, 14299, 14299, 14299, 14299, 14299, 14299, 14299, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 27661, + 100, 27661, -1000, 463, 27661, 630, 630, 5, 630, 630, + 630, 630, 93, 464, -27, -1000, 91, 194, 106, 207, + 652, 71, 65, -1000, -1000, 180, 652, 83, -1000, 630, + 7275, 7275, 7275, -1000, 1577, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 365, -1000, -1000, -1000, -1000, 27661, 26278, + 240, 597, -1000, -1000, -1000, 2, -1000, -1000, 1154, 843, + -1000, 12876, 2153, 1110, 1110, -1000, -1000, 428, -1000, -1000, + 14259, 14259, 14259, 14259, 14259, 14259, 14259, 14259, 14259, 14259, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1159, 483, -1000, 12455, 1159, 1159, - 1159, 1159, 1159, 1159, 1159, 1159, 12916, 1159, 1159, 1159, - 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, - 1159, 1159, 1159, 1159, -1000, -1000, -1000, 28162, -1000, 1159, - 104, 1520, -1000, 1155, -1000, -1000, -1000, 1452, 12916, 12916, - 1520, -1000, 1349, 11059, -1000, -1000, 1636, -1000, -1000, -1000, - -1000, -1000, 658, 1574, -1000, 15682, 476, 1571, 26318, -1000, - 19857, 25857, 1150, 8740, -42, -1000, -1000, -1000, 592, 18935, + -1000, -1000, -1000, -1000, 1110, 458, -1000, 12415, 1110, 1110, + 1110, 1110, 1110, 1110, 1110, 1110, 12876, 1110, 1110, 1110, + 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, + 1110, 1110, 1110, 1110, -1000, -1000, -1000, 27661, -1000, 1110, + 110, 1685, -1000, 1303, -1000, -1000, -1000, 1593, 12876, 12876, + 1685, -1000, 1454, 11019, -1000, -1000, 1608, -1000, -1000, -1000, + -1000, -1000, 714, 1706, -1000, 15181, 449, 1703, 25817, -1000, + 19356, 25356, 1298, 8700, -81, -1000, -1000, -1000, 595, 18434, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1444, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1577, -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, @@ -4055,195 +4005,195 @@ 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, 1069, 28162, -1000, -1000, 3741, - 913, -1000, 1200, -1000, 1067, -1000, 1169, 1211, 389, 913, - 383, 380, 379, -1000, -113, -1000, -1000, -1000, -1000, -1000, - 543, 543, 253, 270, 4282, -1000, -1000, -1000, 25389, 1199, - 913, -1000, 1197, -1000, 1478, 311, 504, 504, 913, -1000, - -1000, 28162, 913, 1476, 1471, 28162, 28162, -1000, 24928, -1000, - 24467, 24006, 840, 28162, 23545, 23084, 22623, 22162, 21701, -1000, - 1300, -1000, 1173, -1000, -1000, -1000, 28162, 28162, 28162, 19, - -1000, -1000, 28162, 913, -1000, -1000, 836, 833, 543, 543, - 816, 944, 933, 926, 543, 543, 801, 925, 998, 140, - 796, 785, 783, 873, 923, 107, 859, 853, 778, 28162, - 1193, 28162, -1000, 164, 512, 238, 587, 1457, 1414, 1145, - 348, 386, 913, 302, 302, -1000, 7790, -1000, -1000, 920, - 12916, -1000, 646, 639, 639, -1000, -1000, -1000, -1000, -1000, - -1000, 662, 28162, 646, -1000, -1000, -1000, 639, 662, 28162, - 662, 662, 662, 662, 639, 639, 639, 662, 28162, 28162, - 28162, 28162, 28162, 28162, 28162, 28162, 28162, 7315, 7315, 7315, - 529, 662, -1000, 1271, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 80, -1000, -1000, -1000, -1000, -1000, 1590, -1000, - -1000, -1000, -118, 1134, 21240, -1000, -293, -294, -295, -296, - -1000, -1000, -1000, -297, -300, -1000, -1000, -1000, 12916, 12916, - 12916, 12916, 854, 535, 14299, 748, 590, 14299, 14299, 14299, - 14299, 14299, 14299, 14299, 14299, 14299, 14299, 14299, 14299, 14299, - 14299, 14299, 567, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 913, -1000, 1587, 954, 954, 469, 469, 469, 469, - 469, 469, 469, 469, 469, 14760, 9676, 7790, 1048, 1059, - 1520, 11059, 11059, 12916, 12916, 11981, 11520, 11059, 1446, 621, - 612, 28162, -1000, 894, -1000, -1000, 13838, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 28162, - 28162, 11059, 11059, 11059, 11059, 11059, -1000, 1133, -1000, -175, - 16617, 12916, 919, 1515, 1048, 1636, 1485, 1582, 514, 885, - 1131, -1000, 741, 1515, 18474, 1094, -1000, 1636, -1000, -1000, - -1000, 28162, -1000, -1000, 20779, -1000, -1000, 6840, 28162, 212, - 28162, -1000, 1107, 1276, -1000, -1000, -1000, 1501, 18013, 28162, - 1152, 1079, -1000, -1000, 474, 8265, -42, -1000, 8265, 1100, - -1000, -49, -47, 10137, 450, -1000, -1000, -1000, 2495, 15221, - 997, 1419, 22, -1000, -1000, -1000, 1169, -1000, 1169, 1169, - 1169, 1169, 19, 19, 19, 19, -1000, -1000, -1000, -1000, - -1000, 1191, 1188, -1000, 1169, 1169, 1169, 1169, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1194, 27661, -1000, -1000, 3899, + 969, -1000, 1344, -1000, 1160, -1000, 1311, 1350, 388, 969, + 380, 379, 376, -1000, -102, -1000, -1000, -1000, -1000, -1000, + 540, 540, 293, 2351, 3540, -1000, -1000, -1000, 24888, 1343, + 969, -1000, 1342, -1000, 1617, 350, 518, 518, 969, -1000, + -1000, 27661, 969, 1615, 1610, 27661, 27661, -1000, 24427, -1000, + 23966, 23505, 887, 27661, 23044, 22583, 22122, 21661, 21200, -1000, + 1432, -1000, 1357, -1000, -1000, -1000, 27661, 27661, 27661, 20, + -1000, -1000, 27661, 969, -1000, -1000, 886, 885, 540, 540, + 884, 968, 956, 955, 540, 540, 867, 953, 1070, 182, + 862, 860, 857, 846, 952, 118, 793, 783, 847, 27661, + 1340, 27661, -1000, 169, 635, 272, 552, 1596, 1526, 1284, + 364, 387, 969, 343, 343, -1000, 7750, -1000, -1000, 946, + 12876, -1000, 655, 652, 652, -1000, -1000, -1000, -1000, -1000, + -1000, 630, 27661, 655, -1000, -1000, -1000, 652, 630, 27661, + 630, 630, 630, 630, 652, 652, 652, 630, 27661, 27661, + 27661, 27661, 27661, 27661, 27661, 27661, 27661, 7275, 7275, 7275, + 511, 630, -1000, 1400, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 88, -1000, -1000, -1000, -1000, -1000, 1729, -1000, + -1000, -1000, -112, 1280, 20739, -1000, -287, -288, -289, -290, + -1000, -1000, -1000, -291, -300, -1000, -1000, -1000, 12876, 12876, + 12876, 12876, 868, 523, 14259, 764, 608, 14259, 14259, 14259, + 14259, 14259, 14259, 14259, 14259, 14259, 14259, 14259, 14259, 14259, + 14259, 14259, 778, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 969, -1000, 1725, 1285, 1285, 482, 482, 482, 482, + 482, 482, 482, 482, 482, 4784, 9636, 7750, 1123, 1158, + 1685, 11019, 11019, 12876, 12876, 11941, 11480, 11019, 1564, 605, + 843, 27661, -1000, 986, -1000, -1000, 13798, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 27661, + 27661, 11019, 11019, 11019, 11019, 11019, -1000, 1273, -1000, -169, + 16116, 12876, 941, 1665, 1123, 1608, 1633, 1720, 502, 817, + 1272, -1000, 741, 1665, 17973, 1182, -1000, 1608, -1000, -1000, + -1000, 27661, -1000, -1000, 20278, -1000, -1000, 6800, 27661, 253, + 27661, -1000, 1200, 1461, -1000, -1000, -1000, 1653, 17512, 27661, + 1286, 1252, -1000, -1000, 446, 8225, -81, -1000, 8225, 1206, + -1000, -47, -37, 10097, 480, -1000, -1000, -1000, 289, 14720, + 1103, 1535, 27, -1000, -1000, -1000, 1311, -1000, 1311, 1311, + 1311, 1311, 20, 20, 20, 20, -1000, -1000, -1000, -1000, + -1000, 1339, 1338, -1000, 1311, 1311, 1311, 1311, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1186, 1186, 1186, 1174, 1174, - 281, -1000, 12916, 135, 28162, 1484, 770, 164, 324, 1233, - 913, 913, 913, 324, -1000, 980, 932, -1000, 1116, -1000, - -1000, 1538, -1000, -1000, 571, 666, 664, 467, 28162, 115, - 211, -1000, 315, -1000, 28162, 913, 1470, 504, 913, -1000, - 913, -1000, -1000, -1000, -1000, 452, -1000, -1000, 913, 1113, - -1000, 1097, 724, 657, 680, 654, 1113, -1000, -1000, -136, - 1113, -1000, 1113, -1000, 1113, -1000, 1113, -1000, 1113, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 532, 28162, 115, - 567, -1000, 336, -1000, -1000, 567, 567, -1000, -1000, -1000, - -1000, 918, 917, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1333, 1333, 1333, 1313, 1313, + 323, -1000, 12876, 135, 27661, 1624, 834, 169, 345, 1377, + 969, 969, 969, 345, -1000, 1048, 980, -1000, 1251, -1000, + -1000, 1679, -1000, -1000, 661, 694, 692, 501, 27661, 97, + 243, -1000, 316, -1000, 27661, 969, 1607, 518, 969, -1000, + 969, -1000, -1000, -1000, -1000, 444, -1000, -1000, 969, 1247, + -1000, 1227, 720, 690, 712, 660, 1247, -1000, -1000, -125, + 1247, -1000, 1247, -1000, 1247, -1000, 1247, -1000, 1247, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 550, 27661, 97, + 778, -1000, 360, -1000, -1000, 778, 778, -1000, -1000, -1000, + -1000, 924, 923, -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, -341, - 28162, -1000, 152, 564, 202, 242, 198, 28162, 114, 1511, - 177, 194, 28162, 28162, 302, 1262, 28162, 1495, 28162, -1000, - -1000, -1000, -1000, 612, 28162, -1000, -1000, 662, 662, -1000, - -1000, 28162, 662, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 662, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 904, -1000, 28162, 28162, - -1000, -1000, -1000, -1000, -1000, 29, -66, 192, -1000, -1000, - -1000, -1000, 1509, -1000, 612, 535, 734, 629, -1000, -1000, - 780, -1000, -1000, 2972, -1000, -1000, -1000, -1000, 748, 14299, - 14299, 14299, 1182, 2972, 2951, 1508, 1545, 469, 640, 640, - 500, 500, 500, 500, 500, 889, 889, -1000, -1000, -1000, - -1000, 894, -1000, -1000, -1000, 894, 11059, 11059, 1110, 1159, - 441, -1000, 1181, -1000, -1000, 1515, 1042, 1042, 746, 817, - 613, 1569, 1042, 562, 1567, 1042, 1042, 11059, -1000, -1000, - 632, -1000, 12916, 894, -1000, 1218, 1106, 1101, 1042, 894, - 894, 1042, 1042, 28162, -1000, -285, -1000, -88, 443, 1159, - -1000, 20318, -1000, -1000, 894, 1091, -1000, 1452, -1000, -1000, - 1415, -1000, 1319, 12916, 12916, 12916, -1000, -1000, -1000, 1452, - 1519, -1000, 1376, 1375, 1555, 11059, 19857, 1636, -1000, -1000, - -1000, 439, 1555, 1136, 1159, -1000, 28162, 19857, 19857, 19857, - 19857, 19857, -1000, 1306, 1305, -1000, 1318, 1315, 1360, 28162, - -1000, 1056, 1048, 18013, 212, 1090, 19857, 28162, -1000, -1000, - 19857, 28162, 6365, -1000, 1100, -42, -55, -1000, -1000, -1000, - -1000, 612, -1000, 890, -1000, 237, -1000, 318, -1000, -1000, - -1000, -1000, 663, 1500, 1412, 18, -1000, -1000, 19, 19, - -1000, -1000, 450, 707, 450, 450, 450, 900, 900, -1000, - -1000, -1000, -1000, -1000, 765, -1000, -1000, -1000, 754, -1000, - -1000, 715, 1257, 135, -1000, -1000, 543, 899, 1427, 28162, - -1000, -1000, 988, 152, 28162, 645, 1260, -1000, 1233, 1233, - 1233, 28162, -1000, -1000, -1000, -1000, 3803, 28162, 1050, -1000, - 113, 28162, 986, 28162, -1000, 1047, 1179, -1000, 913, -1000, - -1000, 7790, -1000, 28162, 1159, -1000, -1000, -1000, -1000, 385, - 1455, 1447, 115, 113, 450, 913, -1000, -1000, -1000, -1000, - -1000, -344, 1045, 361, 137, 158, 28162, 28162, 28162, 28162, - 28162, 462, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 185, - 334, -1000, 28162, 28162, 376, -1000, -1000, -1000, 639, -1000, - -1000, 639, -1000, -1000, -1000, -1000, -1000, -1000, 1442, -77, - -316, -1000, -312, -1000, -1000, -1000, -1000, 1182, 2972, 2780, - -1000, 14299, 14299, -1000, -1000, 1042, 1042, 11059, 7790, 1520, - 1452, -1000, -1000, 375, 567, 375, 14299, 14299, -1000, 14299, - 14299, -1000, -126, 1084, 568, -1000, 12916, 892, -1000, -1000, - 14299, 14299, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 378, 377, 365, 28162, -1000, -1000, -1000, 782, 897, - 1343, 612, 612, -1000, -1000, 28162, -1000, -1000, -1000, -1000, - 1550, 12916, -1000, 1098, -1000, 5890, 1515, 1259, 28162, 1159, - 1590, 16156, 28162, 1149, -1000, 546, 1276, 1232, 1256, 1378, - -1000, -1000, -1000, -1000, 1285, -1000, 1284, -1000, -1000, -1000, - -1000, -1000, 1048, 1555, 19857, 1065, -1000, 1065, -1000, 431, - -1000, -1000, -1000, -82, -94, -1000, -1000, -1000, 2495, -1000, - -1000, -1000, 701, 14299, 1580, -1000, 896, -1000, 1466, 1462, - -1000, 1178, -1000, -1000, -1000, 450, 450, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1038, -1000, 1036, 1096, 1034, 47, - -1000, 1172, 1441, 543, 543, -1000, 714, -1000, 913, -1000, - -1000, 357, -1000, 1489, 28162, 1253, 1252, 1238, -1000, 1530, - 1095, -1000, 28162, -1000, -1000, 28162, -1000, -1000, 1368, 135, - 28162, -1000, -1000, -1000, 211, 28162, -1000, 954, 113, -1000, - -1000, -1000, -1000, -1000, -1000, 28162, 145, -1000, 1175, 856, - -1000, 1189, -1000, -1000, -1000, -1000, 106, 200, -1000, 28162, - 338, 1257, 28162, -1000, -1000, -1000, 662, 662, -1000, 1438, - -1000, 913, -1000, 14299, 2972, 2972, -1000, -1000, 894, -1000, - 1515, -1000, 894, 1169, 1169, -1000, 1169, 1174, -1000, 1169, - 70, 1169, 69, 894, 894, 2698, 2508, 2233, 2145, 1159, - -120, -1000, 612, 12916, 2625, 2602, 1159, 1159, 1159, 1029, - 882, 19, -1000, -1000, -1000, 1548, 1529, 612, -1000, -1000, - -1000, 1448, 1020, 1052, -1000, -1000, 10598, 1031, 1352, 429, - 1029, 1520, 28162, 12916, -1000, -1000, 12916, 1162, -1000, 12916, - -1000, -1000, -1000, 1520, 1520, 1065, -1000, -1000, 478, -1000, - -1000, -1000, -1000, -1000, 2972, -83, -1000, -1000, -1000, 14299, - -1000, -1000, 19, 881, 19, 713, -1000, 711, -1000, -1000, - -228, -1000, -1000, 1168, 1255, -1000, -1000, 28162, -1000, -1000, - 28162, 28162, 28162, 28162, 28162, -1000, -1000, 208, -1000, 1027, - 1018, -1000, -180, -1000, -1000, 1161, -1000, -1000, -1000, 973, - -1000, -137, 913, 28162, 28162, 28162, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 2972, -1000, 1452, -1000, -1000, 252, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 14299, 14299, - 14299, 14299, 14299, 1515, 880, 612, 14299, 14299, 19396, 28162, - 28162, 17539, 19, 7, -1000, 12916, 12916, 1459, -1000, 1159, - -1000, 1103, 28162, 1159, 28162, -1000, 1515, -1000, 612, 612, - 28162, 612, 1515, -1000, -1000, 1279, 450, -1000, 450, 970, - 950, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1161, - -1000, -1000, -1000, 1095, -1000, 206, 254, -1000, 211, -1000, - -187, -194, 1499, 28162, -1000, -1000, 7790, -1000, -1000, 1160, - 1228, -1000, -1000, -1000, -1000, 1218, 1218, 1218, 1218, 218, - 894, -1000, 1218, 1218, 1013, -1000, 1013, 1013, 443, -280, - -1000, 1396, 1383, 612, 1091, 1578, -1000, 1159, 1590, 418, - 1052, -1000, -1000, 992, -1000, -1000, -1000, -1000, -1000, -1000, - 1498, 1159, -1000, 28162, -1000, -1000, -1000, 1155, 979, 1061, - -1000, 539, 28162, 28162, -1000, -1000, -1000, -1000, 894, 150, - -147, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 7, 266, - -1000, 1409, 1383, -1000, 1527, 1392, 1526, -1000, 28162, 1052, - 28162, -1000, 676, 1155, 13377, 1157, 203, -1000, 7790, 5415, - 976, -1000, -1000, 1321, -134, -152, 1385, 1388, 1388, 1409, - -1000, 1525, 1523, -1000, 875, 1521, 869, 898, -1000, -1000, - -1000, 675, 867, -1000, -1000, -1000, 203, 1218, 894, 28162, - -1000, -59, -1000, -1000, -1000, -1000, -1000, 1189, -1000, 1312, - -1000, 1382, 761, -1000, -1000, -1000, -1000, 857, 781, -1000, - 749, -1000, -1000, -1000, -1000, -1000, -1000, 965, 272, -1000, - -1000, -137, -140, -1000, 738, -1000, -1000, -1000, -1000, -1000, - 1236, 160, -1000, -148, -1000, -1000, 1235, -1000, 1559, -1000, - -153, -1000, 1577, 426, 426, -1000, -1000, -1000, -1000, 277, - 723, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -333, + 27661, -1000, 159, 547, 229, 261, 201, 27661, 111, 1659, + 197, 214, 27661, 27661, 343, 1396, 27661, 1641, 27661, -1000, + -1000, -1000, -1000, 843, 27661, -1000, -1000, 630, 630, -1000, + -1000, 27661, 630, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 630, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 921, -1000, 27661, 27661, + -1000, -1000, -1000, -1000, -1000, 30, -51, 198, -1000, -1000, + -1000, -1000, 1661, -1000, 843, 523, 524, 593, -1000, -1000, + 787, -1000, -1000, 2519, -1000, -1000, -1000, -1000, 764, 14259, + 14259, 14259, 638, 2519, 2491, 1401, 1207, 482, 1109, 1109, + 481, 481, 481, 481, 481, 964, 964, -1000, -1000, -1000, + -1000, 986, -1000, -1000, -1000, 986, 11019, 11019, 1246, 1110, + 440, -1000, 1366, -1000, -1000, 1665, 1100, 1100, 1156, 852, + 603, 1701, 1100, 581, 1699, 1100, 1100, 11019, -1000, -1000, + 675, -1000, 12876, 986, -1000, 1180, 1242, 1226, 1100, 986, + 986, 1100, 1100, 27661, -1000, -279, -1000, -65, 460, 1110, + -1000, 19817, -1000, -1000, 986, 1154, -1000, 1593, -1000, -1000, + 1563, -1000, 1451, 12876, 12876, 12876, -1000, -1000, -1000, 1593, + 1667, -1000, 1463, 1462, 1691, 11019, 19356, 1608, -1000, -1000, + -1000, 438, 1691, 1277, 1110, -1000, 27661, 19356, 19356, 19356, + 19356, 19356, -1000, 1428, 1427, -1000, 1434, 1419, 1508, 27661, + -1000, 1152, 1123, 17512, 253, 1253, 19356, 27661, -1000, -1000, + 19356, 27661, 6325, -1000, 1206, -81, -52, -1000, -1000, -1000, + -1000, 843, -1000, 909, -1000, 238, -1000, 337, -1000, -1000, + -1000, -1000, 874, 1650, 1541, 12, -1000, -1000, 20, 20, + -1000, -1000, 480, 804, 480, 480, 480, 920, 920, -1000, + -1000, -1000, -1000, -1000, 816, -1000, -1000, -1000, 765, -1000, + -1000, 770, 1416, 135, -1000, -1000, 540, 915, 1547, 27661, + -1000, -1000, 1097, 159, 27661, 631, 1395, -1000, 1377, 1377, + 1377, 27661, -1000, -1000, -1000, -1000, 268, 27661, 1138, -1000, + 119, 27661, 1067, 27661, -1000, 1122, 1331, -1000, 969, -1000, + -1000, 7750, -1000, 27661, 1110, -1000, -1000, -1000, -1000, 382, + 1594, 1586, 97, 119, 480, 969, -1000, -1000, -1000, -1000, + -1000, -336, 1107, 369, 113, 175, 27661, 27661, 27661, 27661, + 27661, 420, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 212, + 358, -1000, 27661, 27661, 431, -1000, -1000, -1000, 652, -1000, + -1000, 652, -1000, -1000, -1000, -1000, -1000, -1000, 1575, -59, + -311, -1000, -308, -1000, -1000, -1000, -1000, 638, 2519, 2298, + -1000, 14259, 14259, -1000, -1000, 1100, 1100, 11019, 7750, 1685, + 1593, -1000, -1000, 384, 778, 384, 14259, 14259, -1000, 14259, + 14259, -1000, -114, 1130, 594, -1000, 12876, 713, -1000, -1000, + 14259, 14259, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 375, 373, 371, 27661, -1000, -1000, -1000, 808, 914, + 1446, 843, 843, -1000, -1000, 27661, -1000, -1000, -1000, -1000, + 1670, 12876, -1000, 1205, -1000, 5850, 1665, 1394, 27661, 1110, + 1729, 15655, 27661, 1211, -1000, 541, 1461, 1375, 1393, 1587, + -1000, -1000, -1000, -1000, 1418, -1000, 1412, -1000, -1000, -1000, + -1000, -1000, 1123, 1691, 19356, 1173, -1000, 1173, -1000, 437, + -1000, -1000, -1000, -61, -80, -1000, -1000, -1000, 289, -1000, + -1000, -1000, -1000, 705, 14259, 1713, -1000, 911, -1000, -1000, + 1603, 1602, -1000, 27661, 1330, -1000, -1000, -1000, 480, 480, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1096, -1000, 1094, + 1189, 1085, 94, -1000, 1290, 1573, 540, 540, -1000, 757, + -1000, 969, -1000, -1000, 368, -1000, 1637, 27661, 1391, 1390, + 1389, -1000, 1676, 1177, -1000, 27661, -1000, -1000, 27661, -1000, + -1000, 1459, 135, 27661, -1000, -1000, -1000, 243, 27661, -1000, + 1285, 119, -1000, -1000, -1000, -1000, -1000, -1000, 27661, 145, + -1000, 1314, 975, -1000, 1367, -1000, -1000, -1000, -1000, 109, + 227, -1000, 27661, 430, 1416, 27661, -1000, -1000, -1000, 630, + 630, -1000, 1571, -1000, 969, -1000, 14259, 2519, 2519, -1000, + -1000, 986, -1000, 1665, -1000, 986, 1311, 1311, -1000, 1311, + 1313, -1000, 1311, 69, 1311, 68, 986, 986, 2432, 2185, + 2034, 1892, 1110, -109, -1000, 843, 12876, 1749, 979, 1110, + 1110, 1110, 1079, 908, 20, -1000, -1000, -1000, 1687, 1675, + 843, -1000, -1000, -1000, 1609, 1250, 1126, -1000, -1000, 10558, + 1082, 1457, 423, 1079, 1685, 27661, 12876, -1000, -1000, 12876, + 1309, -1000, 12876, -1000, -1000, -1000, 1685, 1685, 1173, -1000, + -1000, 491, -1000, -1000, -1000, -1000, -1000, 2519, 66, -1000, + -1000, -1000, 1308, 14259, -1000, -1000, 20, 901, 20, 752, + -1000, 717, -1000, -1000, -221, -1000, -1000, 1351, 1410, -1000, + -1000, 27661, -1000, -1000, 27661, 27661, 27661, 27661, 27661, -1000, + -1000, 239, -1000, 1077, 1066, -1000, -149, -1000, -1000, 1307, + -1000, -1000, -1000, 1056, -1000, -126, 969, 27661, 27661, 27661, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2519, -1000, + 1593, -1000, -1000, 204, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 14259, 14259, 14259, 14259, 14259, 1665, 900, 843, + 14259, 14259, 18895, 27661, 27661, 17038, 20, 16, -1000, 12876, + 12876, 1598, -1000, 1110, -1000, 1276, 27661, 1110, 27661, -1000, + 1665, -1000, 843, 843, 27661, 843, 1665, -1000, -1000, 27661, + 1268, 480, -1000, 480, 999, 995, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 1307, -1000, -1000, -1000, 1177, -1000, + 237, 308, -1000, 243, -1000, -180, -181, 1644, 27661, -1000, + -1000, 7750, -1000, -1000, 1278, 1371, -1000, -1000, -1000, -1000, + 1180, 1180, 1180, 1180, 217, 986, -1000, 1180, 1180, 1060, + -1000, 1060, 1060, 460, -273, -1000, 1523, 1536, 843, 1154, + 1702, -1000, 1110, 1729, 421, 1126, -1000, -1000, 1055, -1000, + 1047, -1000, -1000, -1000, -1000, -1000, 1643, 1110, -1000, -1000, + -1000, -1000, 1303, 1008, 1144, -1000, 534, 27661, 27661, -1000, + -1000, -1000, -1000, 986, 162, -132, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 16, 254, -1000, 1534, 1536, -1000, 1674, + 1505, 1672, -1000, 27661, 1126, 27661, -1000, 1381, 950, 1303, + 13337, 218, -1000, 7750, 5375, 992, -1000, -1000, 1445, -119, + -141, 1479, 1499, 1499, 1534, -1000, 1671, 1669, -1000, 894, + 1668, 844, 1114, -1000, 1380, -1000, 1696, -1000, -1000, -1000, + 669, 818, -1000, -1000, -1000, 218, 1180, 986, -1000, -53, + -1000, -1000, -1000, -1000, -1000, 1367, -1000, 1439, -1000, 1471, + 769, -1000, -1000, -1000, -1000, 788, 779, -1000, 771, -1000, + -1000, 1698, 600, 600, -1000, -1000, -1000, -1000, -1000, 320, + -1000, -1000, -126, -129, -1000, 760, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 315, 827, -1000, 166, -1000, -133, + -1000, -1000, -1000, -1000, -1000, -1000, -143, -1000, } var yyPgo = [...]int{ - 0, 1883, 1881, 12, 89, 86, 1880, 1879, 1878, 1877, - 129, 128, 127, 1875, 1873, 1871, 1870, 1869, 1865, 1864, - 1862, 1861, 1858, 1857, 1856, 63, 138, 37, 43, 139, - 1855, 1853, 28, 1852, 1851, 1850, 123, 120, 562, 1849, - 125, 1847, 1842, 1841, 1839, 1838, 1837, 1835, 1834, 1833, - 1832, 1830, 1829, 1828, 1827, 221, 1826, 1825, 4, 1824, - 34, 1822, 1821, 1819, 1818, 1817, 90, 1816, 1814, 1813, - 116, 1811, 1810, 56, 214, 50, 87, 1806, 1805, 80, - 131, 1802, 64, 105, 1801, 1797, 590, 1795, 44, 104, - 94, 1794, 41, 1790, 1789, 57, 1788, 1783, 1782, 77, - 1779, 1778, 3269, 1777, 75, 82, 16, 42, 1775, 1774, - 1773, 1772, 29, 421, 1771, 1770, 30, 1768, 1767, 133, - 1766, 91, 22, 1765, 20, 18, 23, 1764, 93, 1763, - 40, 58, 35, 1762, 83, 1761, 1760, 1758, 1757, 31, - 1752, 81, 111, 53, 1751, 1750, 1749, 7, 14, 1747, - 1746, 1745, 1743, 1742, 1741, 6, 1739, 5, 1734, 48, - 1731, 17, 24, 76, 79, 27, 15, 1730, 112, 1729, - 26, 117, 74, 115, 1728, 1727, 1725, 835, 146, 1724, - 1722, 59, 1721, 110, 98, 1717, 167, 1713, 1712, 72, - 1314, 1433, 9, 113, 1709, 1708, 2638, 61, 78, 25, - 1706, 68, 1704, 1703, 1697, 141, 119, 45, 810, 47, - 1693, 1691, 1677, 1676, 1674, 1672, 1671, 85, 32, 21, - 121, 33, 1670, 1668, 1667, 71, 36, 1666, 114, 106, - 73, 108, 1665, 118, 103, 67, 1663, 39, 1662, 1660, - 1659, 1654, 51, 1641, 1638, 1631, 1630, 102, 100, 69, - 46, 1629, 38, 66, 107, 109, 1627, 19, 124, 11, - 1625, 3, 0, 1624, 8, 130, 164, 99, 1616, 1615, - 1, 1614, 2, 1613, 1609, 84, 1608, 1607, 1603, 10, - 1602, 1599, 1598, 3194, 1451, 122, 1597, 126, + 0, 2000, 1999, 11, 88, 93, 1997, 1995, 1994, 1993, + 132, 131, 129, 1990, 1984, 1983, 1980, 1979, 1977, 1975, + 1974, 1972, 1969, 1967, 1966, 66, 139, 44, 46, 140, + 1965, 1964, 36, 1961, 1960, 1957, 126, 125, 552, 1956, + 135, 1955, 1954, 1953, 1952, 1951, 1950, 1948, 1947, 1946, + 1945, 1943, 1942, 1940, 1939, 215, 1938, 1937, 2, 1936, + 39, 1935, 1934, 1933, 1932, 1931, 100, 1930, 1927, 1923, + 120, 1922, 1920, 56, 217, 51, 86, 1919, 1917, 81, + 127, 1916, 64, 107, 1915, 1911, 595, 1909, 50, 85, + 82, 1906, 42, 1900, 1897, 57, 1895, 1894, 1880, 78, + 1879, 1877, 2651, 1873, 75, 89, 21, 43, 1872, 1870, + 1869, 1868, 37, 47, 1867, 1865, 32, 1862, 1861, 137, + 1860, 94, 35, 1859, 20, 19, 25, 1858, 103, 1856, + 69, 61, 34, 1854, 87, 1846, 1845, 1844, 1842, 33, + 1841, 79, 110, 24, 1840, 1838, 1837, 7, 14, 1836, + 1835, 1832, 1831, 1830, 1828, 13, 1827, 5, 1825, 26, + 1824, 84, 16, 76, 124, 23, 18, 1823, 117, 1821, + 27, 121, 73, 118, 1820, 1819, 1817, 944, 149, 1816, + 1815, 58, 1814, 98, 106, 1813, 175, 1811, 1810, 90, + 1303, 2389, 31, 122, 1809, 1808, 2038, 65, 80, 22, + 1807, 102, 1806, 1804, 1803, 141, 134, 45, 840, 53, + 1802, 1800, 1796, 1795, 1794, 1791, 1790, 83, 29, 63, + 113, 30, 1789, 1788, 1787, 72, 38, 1786, 116, 115, + 77, 108, 1785, 136, 104, 59, 1783, 40, 1780, 1779, + 1778, 1773, 74, 1772, 1771, 1770, 1769, 109, 105, 68, + 48, 1768, 41, 71, 114, 111, 1767, 17, 138, 6, + 1765, 1, 0, 1761, 4, 130, 170, 99, 1759, 1756, + 3, 1754, 9, 1753, 1752, 91, 1750, 1746, 1742, 10, + 15, 8, 1740, 1736, 3220, 28, 119, 1735, 128, } -//line sql.y:5287 +//line sql.y:5298 type yySymType struct { union interface{} empty struct{} @@ -4691,13 +4641,13 @@ func (st *yySymType) whensUnion() []*When { } var yyR1 = [...]int{ - 0, 281, 282, 282, 1, 1, 1, 1, 1, 1, + 0, 282, 283, 283, 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, 262, 262, 262, 265, 265, 21, 50, 3, 3, 3, 3, 2, 2, 8, 9, 4, 5, 5, 10, 10, 62, 62, 11, 12, 12, - 12, 12, 285, 285, 97, 97, 95, 95, 96, 96, + 12, 12, 286, 286, 97, 97, 95, 95, 96, 96, 163, 163, 13, 14, 14, 173, 173, 172, 172, 172, 174, 174, 174, 174, 208, 208, 15, 15, 15, 15, 15, 71, 71, 264, 264, 263, 261, 261, 260, 260, @@ -4717,78 +4667,78 @@ var yyR1 = [...]int{ 251, 251, 249, 249, 249, 249, 237, 237, 246, 246, 246, 246, 246, 236, 236, 232, 232, 232, 233, 233, 234, 234, 231, 231, 235, 235, 248, 248, 247, 229, - 229, 230, 230, 254, 280, 280, 280, 280, 255, 271, - 272, 270, 270, 270, 270, 270, 60, 60, 60, 185, - 185, 185, 244, 244, 243, 243, 243, 245, 245, 242, + 229, 230, 230, 254, 280, 280, 280, 280, 281, 281, + 255, 271, 272, 270, 270, 270, 270, 270, 60, 60, + 60, 185, 185, 185, 244, 244, 243, 243, 243, 245, + 245, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, 180, 180, - 180, 269, 269, 269, 269, 269, 269, 268, 268, 268, - 241, 241, 241, 267, 267, 131, 131, 132, 132, 30, - 30, 30, 30, 30, 30, 29, 29, 29, 25, 25, + 180, 180, 180, 269, 269, 269, 269, 269, 269, 268, + 268, 268, 241, 241, 241, 267, 267, 131, 131, 132, + 132, 30, 30, 30, 30, 30, 30, 29, 29, 29, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 31, 31, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 25, 25, 31, 31, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 224, 224, 224, 256, 256, 257, 257, 17, - 22, 22, 18, 18, 18, 18, 19, 19, 41, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 258, 258, 258, 258, 224, 224, 224, 256, 256, 257, + 257, 17, 22, 22, 18, 18, 18, 18, 19, 19, + 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 273, 273, 179, 179, 187, - 187, 178, 178, 201, 201, 201, 181, 181, 181, 182, - 182, 277, 277, 277, 43, 43, 45, 45, 46, 47, - 47, 203, 203, 204, 204, 48, 49, 61, 61, 61, - 61, 61, 61, 63, 63, 63, 7, 7, 7, 7, - 57, 57, 57, 6, 6, 44, 44, 51, 274, 274, - 275, 276, 276, 276, 276, 52, 54, 20, 20, 20, - 20, 20, 20, 78, 78, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 72, 72, 72, - 67, 67, 286, 55, 56, 56, 70, 70, 70, 64, - 64, 64, 69, 69, 69, 75, 75, 77, 77, 77, - 77, 77, 79, 79, 79, 79, 79, 79, 79, 74, - 74, 76, 76, 76, 76, 194, 194, 194, 193, 193, - 87, 87, 88, 88, 89, 89, 90, 90, 90, 129, - 105, 105, 162, 162, 161, 161, 164, 164, 91, 91, - 91, 91, 92, 92, 93, 93, 94, 94, 202, 202, - 199, 199, 199, 198, 198, 98, 98, 98, 100, 99, - 99, 99, 99, 101, 101, 103, 103, 102, 102, 104, - 106, 106, 106, 106, 106, 107, 107, 86, 86, 86, - 86, 86, 86, 86, 86, 176, 176, 109, 109, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 120, - 120, 120, 120, 120, 120, 110, 110, 110, 110, 110, - 110, 110, 73, 73, 121, 121, 121, 128, 122, 122, + 42, 42, 42, 42, 42, 42, 42, 273, 273, 179, + 179, 187, 187, 178, 178, 201, 201, 201, 181, 181, + 181, 182, 182, 277, 277, 277, 43, 43, 45, 45, + 46, 47, 47, 203, 203, 204, 204, 48, 49, 61, + 61, 61, 61, 61, 61, 63, 63, 63, 7, 7, + 7, 7, 57, 57, 57, 6, 6, 44, 44, 51, + 274, 274, 275, 276, 276, 276, 276, 52, 54, 20, + 20, 20, 20, 20, 20, 78, 78, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 72, + 72, 72, 67, 67, 287, 55, 56, 56, 70, 70, + 70, 64, 64, 64, 69, 69, 69, 75, 75, 77, + 77, 77, 77, 77, 79, 79, 79, 79, 79, 79, + 79, 74, 74, 76, 76, 76, 76, 194, 194, 194, + 193, 193, 87, 87, 88, 88, 89, 89, 90, 90, + 90, 129, 105, 105, 162, 162, 161, 161, 164, 164, + 91, 91, 91, 91, 92, 92, 93, 93, 94, 94, + 202, 202, 199, 199, 199, 198, 198, 98, 98, 98, + 100, 99, 99, 99, 99, 101, 101, 103, 103, 102, + 102, 104, 106, 106, 106, 106, 106, 107, 107, 86, + 86, 86, 86, 86, 86, 86, 86, 176, 176, 109, + 109, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 120, 120, 120, 120, 120, 120, 110, 110, 110, + 110, 110, 110, 110, 73, 73, 121, 121, 121, 128, + 122, 122, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 117, 117, 117, 117, 115, 115, + 113, 113, 113, 113, 113, 113, 117, 117, 117, 117, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 116, 116, 116, 116, 116, 116, 287, 287, - 119, 118, 118, 118, 118, 118, 118, 118, 68, 68, - 68, 68, 68, 207, 207, 207, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 135, - 135, 65, 65, 133, 133, 134, 136, 136, 130, 130, - 130, 112, 112, 112, 112, 112, 112, 112, 112, 114, - 114, 114, 137, 137, 138, 138, 139, 139, 140, 140, - 141, 142, 142, 142, 143, 143, 143, 143, 32, 32, - 32, 32, 32, 27, 27, 27, 27, 28, 28, 28, - 80, 80, 80, 80, 82, 82, 81, 81, 58, 58, - 59, 59, 59, 83, 83, 84, 84, 84, 84, 159, - 159, 159, 144, 144, 144, 144, 151, 151, 151, 147, - 147, 149, 149, 149, 150, 150, 150, 148, 156, 156, - 158, 158, 157, 157, 153, 153, 154, 154, 155, 155, - 155, 152, 152, 111, 111, 111, 111, 111, 160, 160, - 160, 160, 165, 165, 124, 124, 126, 126, 125, 127, - 166, 166, 170, 167, 167, 171, 171, 171, 171, 171, - 168, 168, 169, 169, 195, 195, 195, 175, 175, 186, - 186, 183, 183, 184, 184, 177, 177, 188, 188, 188, - 53, 123, 123, 253, 253, 250, 191, 191, 192, 192, - 196, 196, 200, 200, 197, 197, 189, 189, 189, 189, + 115, 115, 115, 115, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 288, 288, 119, 118, 118, 118, 118, 118, 118, 118, + 68, 68, 68, 68, 68, 207, 207, 207, 209, 209, + 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, + 209, 135, 135, 65, 65, 133, 133, 134, 136, 136, + 130, 130, 130, 112, 112, 112, 112, 112, 112, 112, + 112, 114, 114, 114, 137, 137, 138, 138, 139, 139, + 140, 140, 141, 142, 142, 142, 143, 143, 143, 143, + 32, 32, 32, 32, 32, 27, 27, 27, 27, 28, + 28, 28, 80, 80, 80, 80, 82, 82, 81, 81, + 58, 58, 59, 59, 59, 83, 83, 84, 84, 84, + 84, 159, 159, 159, 144, 144, 144, 144, 151, 151, + 151, 147, 147, 149, 149, 149, 150, 150, 150, 148, + 156, 156, 158, 158, 157, 157, 153, 153, 154, 154, + 155, 155, 155, 152, 152, 111, 111, 111, 111, 111, + 160, 160, 160, 160, 165, 165, 124, 124, 126, 126, + 125, 127, 166, 166, 170, 167, 167, 171, 171, 171, + 171, 171, 168, 168, 169, 169, 195, 195, 195, 175, + 175, 186, 186, 183, 183, 184, 184, 177, 177, 188, + 188, 188, 53, 123, 123, 253, 253, 250, 191, 191, + 192, 192, 196, 196, 200, 200, 197, 197, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, @@ -4802,7 +4752,7 @@ var yyR1 = [...]int{ 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 190, 190, 190, 190, + 189, 189, 189, 189, 189, 189, 189, 189, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, @@ -4829,8 +4779,8 @@ var yyR1 = [...]int{ 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 283, 284, 205, 206, 206, - 206, + 190, 190, 190, 190, 190, 190, 190, 284, 285, 205, + 206, 206, 206, } var yyR2 = [...]int{ @@ -4847,7 +4797,7 @@ var yyR2 = [...]int{ 3, 6, 4, 7, 8, 8, 8, 6, 3, 1, 1, 4, 0, 1, 1, 1, 2, 2, 0, 1, 4, 4, 4, 4, 2, 4, 1, 3, 1, 1, - 3, 4, 3, 3, 3, 3, 8, 0, 2, 0, + 3, 4, 3, 3, 3, 4, 9, 0, 2, 0, 2, 3, 3, 4, 2, 3, 2, 1, 1, 0, 2, 2, 3, 3, 2, 2, 1, 2, 1, 3, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, @@ -4860,78 +4810,78 @@ var yyR2 = [...]int{ 1, 2, 1, 3, 2, 3, 0, 1, 3, 3, 3, 4, 2, 0, 2, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 3, 3, 3, - 1, 3, 1, 7, 5, 6, 6, 7, 5, 3, - 3, 1, 1, 2, 2, 2, 0, 1, 1, 0, - 1, 2, 0, 1, 1, 3, 2, 1, 2, 3, - 3, 4, 4, 3, 3, 3, 3, 4, 4, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 4, 5, 0, 2, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 1, 0, 2, 0, 2, 0, - 1, 5, 1, 3, 7, 1, 3, 3, 1, 2, - 2, 2, 5, 5, 5, 6, 6, 5, 5, 2, - 2, 2, 2, 3, 3, 3, 4, 1, 3, 5, - 1, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 2, 2, 4, 4, 2, 11, 3, 6, 8, 6, - 6, 6, 13, 8, 6, 10, 5, 5, 5, 5, - 5, 3, 7, 4, 4, 4, 4, 3, 3, 3, - 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 2, 0, 2, 2, 1, 3, 8, 8, 3, - 3, 5, 7, 7, 6, 5, 3, 2, 3, 3, - 3, 7, 3, 3, 3, 3, 4, 7, 5, 2, - 4, 4, 4, 4, 4, 5, 5, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, - 2, 4, 5, 4, 4, 4, 4, 3, 3, 5, - 2, 3, 3, 3, 3, 1, 1, 0, 1, 0, - 1, 1, 1, 0, 2, 2, 0, 2, 2, 0, - 2, 0, 1, 1, 2, 1, 1, 2, 1, 1, - 5, 0, 1, 0, 1, 2, 3, 0, 3, 3, - 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 3, 3, 2, 2, 3, 1, 3, - 2, 1, 2, 1, 2, 2, 4, 3, 3, 6, - 4, 7, 6, 1, 3, 2, 2, 2, 2, 1, - 1, 1, 3, 2, 1, 1, 1, 0, 1, 1, - 0, 3, 0, 2, 0, 2, 1, 2, 2, 0, - 1, 1, 0, 1, 1, 0, 1, 0, 1, 2, - 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 1, 2, 3, 5, 0, 1, 2, 1, 1, - 0, 2, 1, 3, 1, 1, 1, 3, 3, 3, - 3, 7, 0, 3, 1, 3, 1, 3, 4, 4, - 4, 3, 2, 4, 0, 1, 0, 2, 0, 1, - 0, 1, 2, 1, 1, 1, 2, 2, 1, 2, - 3, 2, 3, 2, 2, 2, 1, 1, 3, 3, - 0, 5, 4, 5, 5, 0, 2, 1, 3, 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, + 1, 3, 1, 7, 5, 6, 6, 7, 0, 1, + 5, 3, 3, 1, 1, 2, 2, 2, 0, 1, + 1, 0, 1, 2, 0, 1, 1, 3, 2, 1, + 2, 3, 3, 4, 4, 3, 3, 3, 3, 4, + 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 4, 5, + 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 1, 0, 2, 0, + 2, 0, 1, 5, 1, 3, 7, 1, 3, 3, + 1, 2, 2, 2, 5, 5, 5, 6, 6, 5, + 5, 2, 2, 2, 2, 3, 3, 3, 4, 1, + 3, 5, 1, 3, 3, 3, 3, 3, 3, 3, + 3, 2, 2, 2, 4, 4, 2, 11, 3, 6, + 8, 6, 6, 6, 13, 8, 6, 10, 5, 5, + 5, 5, 5, 3, 7, 4, 4, 4, 4, 3, + 3, 3, 7, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 2, 0, 2, 2, 1, 3, 8, + 8, 3, 3, 5, 7, 7, 6, 5, 3, 2, + 3, 3, 3, 7, 3, 3, 3, 3, 4, 7, + 5, 2, 4, 4, 4, 4, 4, 5, 5, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 4, 2, 4, 5, 4, 4, 4, 4, 3, + 3, 5, 2, 3, 3, 3, 3, 1, 1, 0, + 1, 0, 1, 1, 1, 0, 2, 2, 0, 2, + 2, 0, 2, 0, 1, 1, 2, 1, 1, 2, + 1, 1, 5, 0, 1, 0, 1, 2, 3, 0, + 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 1, 1, 3, 3, 2, 2, 3, + 1, 3, 2, 1, 2, 1, 2, 2, 4, 3, + 3, 6, 4, 7, 6, 1, 3, 2, 2, 2, + 2, 1, 1, 1, 3, 2, 1, 1, 1, 0, + 1, 1, 0, 3, 0, 2, 0, 2, 1, 2, + 2, 0, 1, 1, 0, 1, 1, 0, 1, 0, + 1, 2, 3, 4, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 1, 2, 3, 5, 0, 1, 2, + 1, 1, 0, 2, 1, 3, 1, 1, 1, 3, + 3, 3, 3, 7, 0, 3, 1, 3, 1, 3, + 4, 4, 4, 3, 2, 4, 0, 1, 0, 2, + 0, 1, 0, 1, 2, 1, 1, 1, 2, 2, + 1, 2, 3, 2, 3, 2, 2, 2, 1, 1, + 3, 3, 0, 5, 4, 5, 5, 0, 2, 1, + 3, 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, 2, 2, 2, 2, 3, - 1, 1, 1, 1, 4, 5, 5, 6, 4, 4, - 6, 6, 6, 8, 8, 8, 8, 9, 8, 5, - 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 8, 8, 0, 2, - 3, 4, 4, 4, 4, 4, 4, 4, 0, 3, - 4, 7, 3, 1, 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, 1, - 2, 2, 0, 3, 0, 2, 0, 3, 1, 3, - 2, 0, 1, 1, 0, 2, 4, 4, 0, 2, - 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, - 0, 3, 3, 3, 0, 3, 1, 1, 0, 4, - 0, 1, 1, 0, 3, 1, 3, 2, 1, 0, - 2, 4, 0, 9, 3, 5, 0, 3, 3, 0, - 1, 0, 2, 2, 0, 2, 2, 2, 0, 2, - 1, 2, 3, 3, 0, 2, 1, 2, 3, 4, - 3, 0, 1, 2, 1, 5, 4, 4, 1, 3, - 3, 5, 0, 5, 1, 3, 1, 2, 3, 1, - 1, 3, 3, 1, 3, 3, 3, 3, 3, 2, - 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 0, 2, 0, 3, 0, 1, 0, 1, 1, - 5, 0, 1, 0, 1, 2, 1, 1, 1, 1, - 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 3, 1, 1, 1, 1, 4, 5, 5, 6, + 4, 4, 6, 6, 6, 8, 8, 8, 8, 9, + 8, 5, 4, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, + 0, 2, 3, 4, 4, 4, 4, 4, 4, 4, + 0, 3, 4, 7, 3, 1, 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, 1, 2, 2, 0, 3, 0, 2, 0, 3, + 1, 3, 2, 0, 1, 1, 0, 2, 4, 4, + 0, 2, 2, 1, 1, 3, 3, 3, 3, 3, + 3, 3, 0, 3, 3, 3, 0, 3, 1, 1, + 0, 4, 0, 1, 1, 0, 3, 1, 3, 2, + 1, 0, 2, 4, 0, 9, 3, 5, 0, 3, + 3, 0, 1, 0, 2, 2, 0, 2, 2, 2, + 0, 2, 1, 2, 3, 3, 0, 2, 1, 2, + 3, 4, 3, 0, 1, 2, 1, 5, 4, 4, + 1, 3, 3, 5, 0, 5, 1, 3, 1, 2, + 3, 1, 1, 3, 3, 1, 3, 3, 3, 3, + 3, 2, 1, 2, 1, 1, 1, 1, 1, 1, + 1, 0, 1, 0, 2, 0, 3, 0, 1, 0, + 1, 1, 5, 0, 1, 0, 1, 2, 1, 1, + 1, 1, 1, 1, 0, 1, 1, 1, 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, @@ -4972,20 +4922,20 @@ 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, 0, 0, 1, - 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 0, 1, 1, } var yyChk = [...]int{ - -1000, -281, -1, -3, -8, -9, -10, -11, -12, -13, + -1000, -282, -1, -3, -8, -9, -10, -11, -12, -13, -14, -15, -16, -17, -18, -19, -41, -42, -43, -45, -46, -47, -48, -49, -6, -44, -20, -21, -50, -51, - -52, -53, -54, -4, -283, 6, 7, 8, -62, 10, + -52, -53, -54, -4, -284, 6, 7, 8, -62, 10, 11, 31, -23, -33, 157, -34, -24, 158, -35, 160, 159, 196, 161, 189, 73, 235, 236, 238, 239, 240, 241, -63, 194, 195, 163, 35, 44, 32, 33, 36, - 166, 83, 9, 340, 191, 190, 26, -282, 480, -70, - 5, -139, 16, -3, -55, -286, -55, -55, -55, -55, + 166, 83, 9, 340, 191, 190, 26, -283, 480, -70, + 5, -139, 16, -3, -55, -287, -55, -55, -55, -55, -55, -55, -238, -240, 83, 130, 83, -55, -39, -38, -37, -36, -40, 30, -30, -31, -258, -29, -26, 162, 159, 204, 104, 105, 196, 197, 198, 161, 180, 195, @@ -5030,12 +4980,12 @@ var yyChk = [...]int{ -108, 114, -113, 30, 24, -112, -109, -130, -127, -128, 148, 149, 151, 150, 152, 137, 138, 145, 115, 153, -117, -115, -116, -118, 90, 89, 98, 91, 92, 93, - 94, 100, 101, 102, -191, -196, -125, -283, 67, 68, + 94, 100, 101, 102, -191, -196, -125, -284, 67, 68, 341, 342, 343, 344, 349, 345, 117, 56, 336, 330, 339, 338, 337, 334, 335, 332, 333, 347, 348, 173, 331, 167, 143, 340, -262, -190, 43, 307, 307, -102, - -55, -5, -4, -283, 6, 21, 22, -143, 18, 17, - -284, 85, -64, -77, 62, 63, -79, 22, 37, 66, + -55, -5, -4, -284, 6, 21, 22, -143, 18, 17, + -285, 85, -64, -77, 62, 63, -79, 22, 37, 66, 64, 21, -56, -76, 139, -86, -196, -76, -177, 172, -177, -177, -167, -208, 237, -171, 320, 319, -192, -169, -191, -189, -168, 317, 162, 359, 113, 23, 25, 116, @@ -5069,23 +5019,23 @@ var yyChk = [...]int{ -181, 214, 290, -232, 169, 34, 181, 307, 214, 290, 214, 215, 214, 215, 300, 310, 214, -201, 12, 132, 331, 295, 299, 207, 168, 208, 170, 309, -262, 447, - 215, -201, 307, 210, -181, -206, -283, -192, 263, -206, + 215, -201, 307, 210, -181, -206, -284, -192, 263, -206, -206, 31, 171, -191, -57, -191, 90, -7, -3, -11, -10, -12, 122, -78, 307, -66, 148, 462, 448, 449, 450, 447, 304, 455, 453, 451, 214, 452, 84, 113, 111, 112, 129, -86, -110, 132, 114, 130, 131, 116, 134, 133, 144, 137, 138, 139, 140, 141, 142, 143, 135, 136, 147, 122, 123, 124, 125, 126, 127, 128, - -176, -283, -128, -283, 155, 156, -113, -113, -113, -113, - -113, -113, -113, -113, -113, -113, -283, 154, -2, -122, - -4, -283, -283, -283, -283, -283, -283, -283, -283, -135, - -86, -283, -287, -283, -287, -119, -283, -287, -119, -287, - -119, -287, -287, -119, -287, -119, -287, -287, -119, -283, - -283, -283, -283, -283, -283, -283, -205, -274, -275, -105, - -102, -283, 231, -139, -3, -55, -159, 20, 32, -86, + -176, -284, -128, -284, 155, 156, -113, -113, -113, -113, + -113, -113, -113, -113, -113, -113, -284, 154, -2, -122, + -4, -284, -284, -284, -284, -284, -284, -284, -284, -135, + -86, -284, -288, -284, -288, -119, -284, -288, -119, -288, + -119, -288, -288, -119, -288, -119, -288, -288, -119, -284, + -284, -284, -284, -284, -284, -284, -205, -274, -275, -105, + -102, -284, 231, -139, -3, -55, -159, 20, 32, -86, -140, -141, -86, -139, 58, -74, -76, -79, 62, 63, 96, 12, -194, -193, 23, -191, 90, 154, 12, -103, - 27, -102, -88, -89, -90, -91, -105, -129, -283, 12, + 27, -102, -88, -89, -90, -91, -105, -129, -284, 12, -95, -96, -102, -104, -196, 84, 237, -171, -208, -173, -172, 321, 323, 122, -195, -191, 90, 30, 85, 84, -102, -210, -213, -215, -214, -216, -211, -212, 260, 261, @@ -5117,17 +5067,17 @@ var yyChk = [...]int{ 131, 116, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -207, -262, 90, 148, -262, -112, -112, -191, -75, 22, 37, -74, -192, - -197, -189, -70, -284, -284, -139, -74, -74, -86, -86, + -197, -189, -70, -285, -285, -139, -74, -74, -86, -86, -130, 90, -74, -130, 90, -74, -74, -69, 22, 37, - -133, -134, 118, -130, -284, -113, -191, -191, -74, -75, + -133, -134, 118, -130, -285, -113, -191, -191, -74, -75, -75, -74, -74, 84, -276, 323, 324, 445, -199, 203, - -198, 23, -196, 90, -123, -122, 90, -143, -284, -144, + -198, 23, -196, 90, -123, -122, 90, -143, -285, -144, 27, 10, 132, 84, 19, 84, -142, 25, 26, -143, -114, -191, 91, 94, -87, 84, 12, -79, -102, -193, 139, -197, -102, -163, 203, -102, 31, 84, -98, -100, -99, -101, 65, 69, 71, 66, 67, 68, 72, -202, - 23, -88, -3, -283, -102, -95, -285, 84, 12, 76, - -285, 84, 154, -171, -173, 84, 322, 324, 325, 75, + 23, -88, -3, -284, -102, -95, -286, 84, 12, 76, + -286, 84, 154, -171, -173, 84, 322, 324, 325, 75, 103, -86, -219, 147, -244, -243, -242, -226, -228, -229, -230, 85, -145, -85, 39, -222, 288, -217, -217, -217, -217, -217, -218, -168, -218, -218, -218, 83, 83, -217, @@ -5143,301 +5093,301 @@ var yyChk = [...]int{ -102, -102, -183, 75, -97, -102, 24, -196, -102, -181, -181, -102, -181, -181, 90, -102, -191, -66, 323, 353, 20, -67, 20, 100, 101, 102, -121, -113, -113, -113, - -73, 193, 113, -284, -284, -74, -74, -283, 154, -5, - -143, -284, -284, 84, 76, 23, 12, 12, -284, 12, - 12, -284, -284, -74, -136, -134, 120, -86, -284, -284, - 84, 84, -284, -284, -284, -284, -284, -275, 444, 324, - -106, 73, 172, 74, -283, -198, -284, -159, 41, 49, + -73, 193, 113, -285, -285, -74, -74, -284, 154, -5, + -143, -285, -285, 84, 76, 23, 12, 12, -285, 12, + 12, -285, -285, -74, -136, -134, 120, -86, -285, -285, + 84, 84, -285, -285, -285, -285, -285, -275, 444, 324, + -106, 73, 172, 74, -284, -198, -285, -159, 41, 49, 60, -86, -86, -141, -159, -175, 20, 12, 56, 56, -107, 13, -76, -88, -79, 154, -107, -111, 31, 56, - -3, -283, -283, -166, -170, -130, -89, -90, -90, -89, + -3, -284, -284, -166, -170, -130, -89, -90, -90, -89, -90, 65, 65, 65, 70, 65, 70, 65, -99, -196, - -284, -284, -3, -163, 76, -88, -102, -88, -104, -196, + -285, -285, -3, -163, 76, -88, -102, -88, -104, -196, 139, -172, -174, 326, 323, 329, -262, 90, 84, -242, - -230, 100, 114, 30, 75, 285, 97, -279, 175, 174, - 29, 23, 40, -223, 289, -218, -218, -219, -262, 90, - 148, -219, -219, -219, -225, 90, -225, 91, 91, 85, - -32, -27, -28, 32, 79, -249, -237, 90, 38, -191, - 85, -82, -102, 114, 75, -253, -253, -253, -196, 16, - -161, -191, 84, 85, -132, 229, -130, 85, -191, 85, - 83, -235, -192, -191, -283, 168, 30, 30, -131, -132, - -219, -262, 479, 478, 85, 170, 227, -84, 336, 90, - 86, -102, -102, -102, -102, -102, 162, 159, 212, 171, - -95, -102, 84, -60, 188, 183, -201, -201, 32, 323, - 456, 454, -73, 113, -113, -113, -284, -284, -75, -192, - -139, -159, -209, 148, 260, 192, 258, 254, 274, 265, - 287, 256, 288, -207, -209, -113, -113, -113, -113, 350, - -139, 121, -86, 119, -113, -113, 169, 169, 169, -164, - 42, 90, 90, 61, -102, -137, 14, -86, 139, -143, - -165, 75, -166, -124, -126, -125, -283, -160, -284, -191, - -164, -107, 84, 122, -93, -92, 75, 76, -94, 75, - -92, 65, 65, -284, -107, -88, -107, -107, 154, 323, - 327, 328, -242, 100, -113, 10, 90, 29, 29, 83, - -219, -219, 85, 84, 85, 84, 85, 84, -185, 390, - 114, -28, -27, -237, -237, 91, -262, 170, 24, -102, - 75, 75, 75, 17, 84, -226, -130, 56, -252, -161, - -256, -257, -102, -112, -132, -102, -81, 218, 226, 83, - 87, -264, 76, 209, 285, 209, -102, -60, -32, -102, - -181, -181, 32, -262, -113, -284, -143, -284, -217, -217, - -217, -221, -217, 248, -217, 248, -284, -284, 20, 20, - 20, 20, -283, -65, 346, -86, 84, 84, -283, -283, - -283, -284, 90, -218, -138, 15, 17, 28, -165, 84, - -284, -284, 84, 56, 154, -284, -139, -170, -86, -86, - 83, -86, -139, -107, -116, -113, -218, 90, -218, 91, - 91, 390, 30, 80, 81, 82, 30, 77, 78, -102, - -102, -102, -102, -161, -191, 205, 85, -284, 84, -224, - 353, 356, -162, 83, 85, -261, 353, -263, -262, -191, - -191, -191, -159, -218, -262, -113, -113, -113, -113, -113, - -143, 90, -113, -113, -161, -284, -161, -161, -199, -218, - -148, -153, -178, -86, -122, 29, -126, 56, -3, -191, - -124, -191, -143, -161, -143, 85, -219, -219, 85, 85, - -162, 206, -280, 187, -257, 357, 357, 23, -161, -260, - -259, -192, 83, 76, -284, -284, -284, -284, -68, 132, - 353, -284, -284, -284, -284, -284, -284, -106, -151, 440, - -156, 45, -154, -155, 46, -152, 47, 55, 10, -124, - 154, 85, -146, 23, -283, -102, -3, 85, 84, 122, - -161, -102, -284, 351, 72, 354, -148, 50, 266, -158, - -157, 54, 46, -155, 17, 48, 17, -166, -191, -278, - 100, 114, 97, -279, 109, 110, -3, -113, 202, 83, - -58, 353, -259, -241, -192, 90, 91, 85, 61, 352, - 355, -149, 52, -147, 51, -147, -157, 17, 17, 90, - 17, 90, 100, 90, -58, -284, -284, -161, -59, 217, - 444, -264, 61, -150, 53, 75, 103, 90, 90, 90, - 85, 180, -261, 353, 75, 103, -271, -272, 75, 219, - 354, -272, 75, 11, 10, 355, -270, 188, 183, 186, - 31, -270, 182, 30, 100, + -230, -281, 100, 114, 30, 75, 285, 97, -279, -280, + 175, 174, 29, 187, 23, 40, -223, 289, -218, -218, + -219, -262, 90, 148, -219, -219, -219, -225, 90, -225, + 91, 91, 85, -32, -27, -28, 32, 79, -249, -237, + 90, 38, -191, 85, -82, -102, 114, 75, -253, -253, + -253, -196, 16, -161, -191, 84, 85, -132, 229, -130, + 85, -191, 85, 83, -235, -192, -191, -284, 168, 30, + 30, -131, -132, -219, -262, 479, 478, 85, 170, 227, + -84, 336, 90, 86, -102, -102, -102, -102, -102, 162, + 159, 212, 171, -95, -102, 84, -60, 188, 183, -201, + -201, 32, 323, 456, 454, -73, 113, -113, -113, -285, + -285, -75, -192, -139, -159, -209, 148, 260, 192, 258, + 254, 274, 265, 287, 256, 288, -207, -209, -113, -113, + -113, -113, 350, -139, 121, -86, 119, -113, -113, 169, + 169, 169, -164, 42, 90, 90, 61, -102, -137, 14, + -86, 139, -143, -165, 75, -166, -124, -126, -125, -284, + -160, -285, -191, -164, -107, 84, 122, -93, -92, 75, + 76, -94, 75, -92, 65, 65, -285, -107, -88, -107, + -107, 154, 323, 327, 328, -242, 100, -113, 10, 90, + 29, 29, -102, 83, -219, -219, 85, 84, 85, 84, + 85, 84, -185, 390, 114, -28, -27, -237, -237, 91, + -262, 170, 24, -102, 75, 75, 75, 17, 84, -226, + -130, 56, -252, -161, -256, -257, -102, -112, -132, -102, + -81, 218, 226, 83, 87, -264, 76, 209, 285, 209, + -102, -60, -32, -102, -181, -181, 32, -262, -113, -285, + -143, -285, -217, -217, -217, -221, -217, 248, -217, 248, + -285, -285, 20, 20, 20, 20, -284, -65, 346, -86, + 84, 84, -284, -284, -284, -285, 90, -218, -138, 15, + 17, 28, -165, 84, -285, -285, 84, 56, 154, -285, + -139, -170, -86, -86, 83, -86, -139, -107, -116, 83, + -113, -218, 90, -218, 91, 91, 390, 30, 80, 81, + 82, 30, 77, 78, -102, -102, -102, -102, -161, -191, + 205, 85, -285, 84, -224, 353, 356, -162, 83, 85, + -261, 353, -263, -262, -191, -191, -191, -159, -218, -262, + -113, -113, -113, -113, -113, -143, 90, -113, -113, -161, + -285, -161, -161, -199, -218, -148, -153, -178, -86, -122, + 29, -126, 56, -3, -191, -124, -191, -143, -161, -143, + -161, 85, -219, -219, 85, 85, -162, 206, -280, -257, + 357, 357, 23, -161, -260, -259, -192, 83, 76, -285, + -285, -285, -285, -68, 132, 353, -285, -285, -285, -285, + -285, -285, -106, -151, 440, -156, 45, -154, -155, 46, + -152, 47, 55, 10, -124, 154, 85, 85, -146, 23, + -284, -3, 85, 84, 122, -161, -102, -285, 351, 72, + 354, -148, 50, 266, -158, -157, 54, 46, -155, 17, + 48, 17, -166, -191, -271, -272, 75, -281, -278, 100, + 114, 97, -279, 109, 110, -3, -113, 202, -58, 353, + -259, -241, -192, 90, 91, 85, 61, 352, 355, -149, + 52, -147, 51, -147, -157, 17, 17, 90, 17, 90, + -272, 75, 11, 10, 100, 90, -58, -285, -285, -59, + 217, 444, -264, 61, -150, 53, 75, 103, 90, 90, + 90, -270, 188, 183, 186, 31, -270, 180, -261, 353, + 75, 103, 182, 30, 100, 219, 354, 355, } var yyDef = [...]int{ 34, -2, 2, 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, 32, 33, 836, 0, 572, 572, 572, 572, 572, - 572, 572, 0, 0, 572, -2, -2, 572, 972, 0, - 572, 0, 0, -2, 505, 506, 0, 508, -2, 0, - 0, 517, 1387, 1387, 567, 0, 0, 0, 0, 0, - 572, 1385, 55, 56, 523, 524, 525, 1, 3, 0, - 576, 844, 0, 0, -2, 574, 0, 0, 955, 955, - 955, 0, 86, 87, 0, 0, 0, -2, 90, -2, - 114, 115, 0, 119, 381, 342, 384, 340, 370, -2, - 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 345, 236, 236, 0, 0, -2, 333, - 333, 333, 0, 0, 0, 367, 957, 287, 236, 236, + 31, 32, 33, 838, 0, 574, 574, 574, 574, 574, + 574, 574, 0, 0, 574, -2, -2, 574, 974, 0, + 574, 0, 0, -2, 507, 508, 0, 510, -2, 0, + 0, 519, 1389, 1389, 569, 0, 0, 0, 0, 0, + 574, 1387, 55, 56, 525, 526, 527, 1, 3, 0, + 578, 846, 0, 0, -2, 576, 0, 0, 957, 957, + 957, 0, 86, 87, 0, 0, 0, -2, 90, -2, + 114, 115, 0, 119, 383, 344, 386, 342, 372, -2, + 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 347, 236, 236, 0, 0, -2, 335, + 335, 335, 0, 0, 0, 369, 959, 289, 236, 236, 0, 236, 236, 236, 236, 0, 0, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 860, 118, 973, 970, 971, 35, 36, 37, - 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, - 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, - 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, - 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, - 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, - 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, - 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, - 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, - 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, - 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, - 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, - 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, - 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, - 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, - 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, - 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, - 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, - 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, - 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, - 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, - 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, - 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, - 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, - 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, - 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, - 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, - 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 0, - 949, 0, 437, 657, 0, 496, 496, 0, 496, 496, - 496, 496, 0, 0, 0, 449, 0, 0, 0, 0, - 493, 0, 0, 468, 470, 0, 493, 0, 480, 496, - 1388, 1388, 1388, 940, 0, 490, 488, 502, 503, 485, - 486, 504, 507, 0, 512, 515, 966, 967, 0, 530, - 0, 1193, 522, 535, 536, 0, 568, 569, 40, 708, - 667, 0, 673, 675, 0, 710, 711, 712, 713, 714, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 740, 741, 742, 743, 821, 822, 823, 824, 825, 826, - 827, 828, 677, 678, 818, 0, 929, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 809, 0, 778, 778, - 778, 778, 778, 778, 778, 778, 778, 0, 0, 0, - 0, 0, 0, 0, -2, -2, 1387, 0, 545, 0, - 0, 836, 51, 0, 572, 577, 578, 879, 0, 0, - 836, 1386, 0, 0, -2, -2, 588, 594, 595, 596, - 597, 598, 573, 0, 601, 605, 0, 0, 0, 956, - 0, 0, 72, 0, 1350, 933, -2, -2, 0, 0, - 968, 969, 942, -2, 976, 977, 978, 979, 980, 981, - 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, - 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, - 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, - 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, - 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, - 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, - 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, - 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, - 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, - 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, - 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, - 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, - 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, - 1112, 1113, 1114, 1115, -2, 0, 0, 128, 129, 0, - 38, 262, 0, 124, 0, 256, 209, 860, 0, 0, - 0, 0, 0, 572, 0, 950, 109, 110, 116, 117, - 236, 236, 0, 118, 118, 349, 350, 351, 0, 0, - -2, 260, 0, 334, 0, 0, 250, 250, 254, 252, - 253, 0, 0, 0, 0, 0, 0, 361, 0, 362, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, - 0, 237, 0, 379, 380, 288, 0, 0, 0, 0, - 359, 360, 0, 0, 958, 959, 0, 0, 236, 236, + 236, 236, 862, 118, 975, 972, 973, 35, 36, 37, + 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, + 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, + 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, + 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, + 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, + 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, + 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, + 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, + 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, + 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, + 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, + 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, + 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, + 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, + 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, + 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, + 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, + 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, + 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, + 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, + 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, + 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, + 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, + 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, + 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, + 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, + 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 0, + 951, 0, 439, 659, 0, 498, 498, 0, 498, 498, + 498, 498, 0, 0, 0, 451, 0, 0, 0, 0, + 495, 0, 0, 470, 472, 0, 495, 0, 482, 498, + 1390, 1390, 1390, 942, 0, 492, 490, 504, 505, 487, + 488, 506, 509, 0, 514, 517, 968, 969, 0, 532, + 0, 1195, 524, 537, 538, 0, 570, 571, 40, 710, + 669, 0, 675, 677, 0, 712, 713, 714, 715, 716, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 742, 743, 744, 745, 823, 824, 825, 826, 827, 828, + 829, 830, 679, 680, 820, 0, 931, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 811, 0, 780, 780, + 780, 780, 780, 780, 780, 780, 780, 0, 0, 0, + 0, 0, 0, 0, -2, -2, 1389, 0, 547, 0, + 0, 838, 51, 0, 574, 579, 580, 881, 0, 0, + 838, 1388, 0, 0, -2, -2, 590, 596, 597, 598, + 599, 600, 575, 0, 603, 607, 0, 0, 0, 958, + 0, 0, 72, 0, 1352, 935, -2, -2, 0, 0, + 970, 971, 944, -2, 978, 979, 980, 981, 982, 983, + 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, + 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, + 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, + 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, + 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, + 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, + 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, + 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, + 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, + 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, + 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, + 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, + 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, + 1114, 1115, 1116, 1117, -2, 0, 0, 128, 129, 0, + 38, 262, 0, 124, 0, 256, 209, 862, 0, 0, + 0, 0, 0, 574, 0, 952, 109, 110, 116, 117, + 236, 236, 0, 118, 118, 351, 352, 353, 0, 0, + -2, 260, 0, 336, 0, 0, 250, 250, 254, 252, + 253, 0, 0, 0, 0, 0, 0, 363, 0, 364, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 423, + 0, 237, 0, 381, 382, 290, 0, 0, 0, 0, + 361, 362, 0, 0, 960, 961, 0, 0, 236, 236, 0, 0, 0, 0, 236, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 108, 873, 0, 0, 0, -2, 0, 429, - 0, 0, 0, 951, 951, 436, 0, 438, 439, 0, - 0, 440, 0, 493, 493, 491, 492, 442, 443, 444, - 445, 496, 0, 0, 245, 246, 247, 493, 496, 0, - 496, 496, 496, 496, 493, 493, 493, 496, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1388, 1388, 1388, - 499, 496, 477, 478, 481, 482, 1389, 1390, 987, 483, - 484, 941, 513, 516, 533, 531, 532, 534, 526, 527, - 528, 529, 0, 547, 548, 553, 0, 0, 0, 0, - 559, 560, 561, 0, 0, 564, 565, 566, 0, 0, - 0, 0, 0, 671, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 695, 696, 697, 698, 699, 700, 701, - 674, 0, 688, 0, 0, 0, 730, 731, 732, 733, - 734, 735, 736, 737, 738, 0, 585, 0, 0, 0, - 836, 0, 0, 0, 0, 0, 0, 0, 582, 0, - 810, 0, 761, 0, 762, 770, 0, 763, 771, 764, - 772, 765, 766, 773, 767, 774, 768, 769, 775, 0, - 0, 0, 585, 585, 0, 0, 41, 537, 538, 0, - 640, 961, 0, 844, 0, 587, 882, 0, 0, 845, - 837, 838, 841, 844, 0, 610, 599, 589, 592, 593, - 575, 0, 602, 606, 0, 608, 609, 0, 0, 70, - 0, 656, 0, 612, 614, 615, 616, 638, 0, 0, - 0, 0, 66, 68, 657, 0, 1350, 939, 0, 74, - 75, 0, 0, 0, 224, 944, 945, 946, -2, 243, + 0, 0, 108, 875, 0, 0, 0, -2, 0, 431, + 0, 0, 0, 953, 953, 438, 0, 440, 441, 0, + 0, 442, 0, 495, 495, 493, 494, 444, 445, 446, + 447, 498, 0, 0, 245, 246, 247, 495, 498, 0, + 498, 498, 498, 498, 495, 495, 495, 498, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1390, 1390, 1390, + 501, 498, 479, 480, 483, 484, 1391, 1392, 989, 485, + 486, 943, 515, 518, 535, 533, 534, 536, 528, 529, + 530, 531, 0, 549, 550, 555, 0, 0, 0, 0, + 561, 562, 563, 0, 0, 566, 567, 568, 0, 0, + 0, 0, 0, 673, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 697, 698, 699, 700, 701, 702, 703, + 676, 0, 690, 0, 0, 0, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 0, 587, 0, 0, 0, + 838, 0, 0, 0, 0, 0, 0, 0, 584, 0, + 812, 0, 763, 0, 764, 772, 0, 765, 773, 766, + 774, 767, 768, 775, 769, 776, 770, 771, 777, 0, + 0, 0, 587, 587, 0, 0, 41, 539, 540, 0, + 642, 963, 0, 846, 0, 589, 884, 0, 0, 847, + 839, 840, 843, 846, 0, 612, 601, 591, 594, 595, + 577, 0, 604, 608, 0, 610, 611, 0, 0, 70, + 0, 658, 0, 614, 616, 617, 618, 640, 0, 0, + 0, 0, 66, 68, 659, 0, 1352, 941, 0, 74, + 75, 0, 0, 0, 224, 946, 947, 948, -2, 243, 0, -2, 216, 160, 161, 162, 209, 164, 209, 209, 209, 209, 220, 220, 220, 220, 192, 193, 194, 195, 196, 0, 0, 179, 209, 209, 209, 209, 199, 200, 201, 202, 203, 204, 205, 206, 165, 166, 167, 168, 169, 170, 171, 172, 173, 211, 211, 211, 213, 213, - 0, 39, 0, 228, 0, 841, 0, 873, 953, 963, - 0, 0, 0, 953, 92, 0, 0, 382, 343, 371, - 383, 0, 346, 347, -2, 0, 0, 333, 0, 335, + 0, 39, 0, 228, 0, 843, 0, 875, 955, 965, + 0, 0, 0, 955, 92, 0, 0, 384, 345, 373, + 385, 0, 348, 349, -2, 0, 0, 335, 0, 337, 0, 244, 0, -2, 0, 254, 0, 250, 254, 251, - 254, 242, 255, 363, 818, 0, 364, 365, 0, 401, - 626, 0, 0, 0, 0, 0, 407, 408, 409, 0, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 372, 373, 374, 375, 376, 377, 378, 0, 0, 335, - 0, 368, 0, 289, 290, 0, 0, 293, 294, 295, - 296, 0, 0, 299, 300, 301, 302, 303, 327, 328, - 329, 304, 305, 306, 307, 308, 309, 310, 321, 322, - 323, 324, 325, 326, 311, 312, 313, 314, 315, 318, - 0, 102, 864, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 951, 0, 0, 0, 0, 658, - 974, 975, 497, 498, 0, 248, 249, 496, 496, 446, - 469, 0, 496, 450, 471, 451, 453, 452, 454, 473, - 474, 496, 457, 494, 495, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 475, 0, 476, 0, 0, - 514, 518, 519, 520, 521, 0, 0, 550, 555, 556, - 557, 558, 570, 563, 709, 668, 669, 670, 672, 689, - 0, 691, 693, 679, 680, 704, 705, 706, 0, 0, - 0, 0, 702, 684, 0, 715, 716, 717, 718, 719, - 720, 721, 722, 723, 724, 725, 726, 729, 793, 794, - 795, 0, 727, 728, 739, 0, 0, 0, 586, 819, - 0, -2, 0, 707, 928, 844, 0, 0, 0, 0, - 712, 821, 0, 712, 821, 0, 0, 0, 583, 584, - 816, 813, 0, 0, 779, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 540, 541, 543, 0, 660, 0, - 641, 0, 643, 644, 0, 962, 546, 879, 52, 42, - 0, 880, 0, 0, 0, 0, 840, 842, 843, 879, - 0, 829, 0, 0, 665, 0, 0, 590, 48, 607, - 603, 0, 665, 0, 0, 655, 0, 0, 0, 0, - 0, 0, 645, 0, 0, 648, 0, 0, 0, 0, - 639, 0, 0, 0, -2, 0, 0, 0, 62, 63, - 0, 0, 0, 934, 73, 0, 0, 78, 79, 935, - 936, 937, 938, 0, 111, -2, 284, 130, 132, 133, - 134, 125, 135, 0, 0, 218, 217, 163, 220, 220, + 254, 242, 255, 365, 820, 0, 366, 367, 0, 403, + 628, 0, 0, 0, 0, 0, 409, 410, 411, 0, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 374, 375, 376, 377, 378, 379, 380, 0, 0, 337, + 0, 370, 0, 291, 292, 0, 0, 295, 296, 297, + 298, 0, 0, 301, 302, 303, 304, 305, 329, 330, + 331, 306, 307, 308, 309, 310, 311, 312, 323, 324, + 325, 326, 327, 328, 313, 314, 315, 316, 317, 320, + 0, 102, 866, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 953, 0, 0, 0, 0, 660, + 976, 977, 499, 500, 0, 248, 249, 498, 498, 448, + 471, 0, 498, 452, 473, 453, 455, 454, 456, 475, + 476, 498, 459, 496, 497, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 477, 0, 478, 0, 0, + 516, 520, 521, 522, 523, 0, 0, 552, 557, 558, + 559, 560, 572, 565, 711, 670, 671, 672, 674, 691, + 0, 693, 695, 681, 682, 706, 707, 708, 0, 0, + 0, 0, 704, 686, 0, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 731, 795, 796, + 797, 0, 729, 730, 741, 0, 0, 0, 588, 821, + 0, -2, 0, 709, 930, 846, 0, 0, 0, 0, + 714, 823, 0, 714, 823, 0, 0, 0, 585, 586, + 818, 815, 0, 0, 781, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 542, 543, 545, 0, 662, 0, + 643, 0, 645, 646, 0, 964, 548, 881, 52, 42, + 0, 882, 0, 0, 0, 0, 842, 844, 845, 881, + 0, 831, 0, 0, 667, 0, 0, 592, 48, 609, + 605, 0, 667, 0, 0, 657, 0, 0, 0, 0, + 0, 0, 647, 0, 0, 650, 0, 0, 0, 0, + 641, 0, 0, 0, -2, 0, 0, 0, 62, 63, + 0, 0, 0, 936, 73, 0, 0, 78, 79, 937, + 938, 939, 940, 0, 111, -2, 286, 130, 132, 133, + 134, 125, 268, 0, 0, 218, 217, 163, 220, 220, 186, 187, 224, 0, 224, 224, 224, 0, 0, 180, 181, 182, 183, 174, 0, 175, 176, 177, 0, 178, - 261, 0, 848, 229, 230, 232, 236, 0, 0, 0, - 257, 258, 0, 864, 0, 0, 0, 964, 963, 963, - 963, 0, 120, 121, 122, 123, 118, 0, 0, 126, - 337, 0, 0, 0, 259, 0, 0, 238, 254, 239, - 240, 0, 366, 0, 0, 403, 404, 405, 406, 0, - 0, 0, 335, 337, 224, 0, 291, 292, 297, 298, - 316, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 396, 397, 398, 399, 861, 862, 863, 0, - 0, 430, 0, 0, 276, 64, 952, 435, 493, 456, - 472, 493, 448, 455, 500, 479, 510, 554, 0, 0, - 0, 562, 0, 690, 692, 694, 681, 702, 685, 0, - 682, 0, 0, 676, 744, 0, 0, 585, 0, 836, - 879, 748, 749, 0, 0, 0, 0, 0, 786, 0, - 0, 787, 0, 836, 0, 814, 0, 0, 760, 780, - 0, 0, 781, 782, 783, 784, 785, 539, 542, 544, - 620, 0, 0, 0, 0, 642, 960, 44, 0, 0, - 0, 846, 847, 839, 43, 0, 947, 948, 830, 831, - 832, 0, 600, 611, 591, 0, 844, 922, 0, 0, - 914, 0, 0, 665, 930, 0, 613, 634, 636, 0, - 631, 646, 647, 649, 0, 651, 0, 653, 654, 617, - 618, 619, 0, 665, 0, 665, 67, 665, 69, 0, - 659, 76, 77, 0, 0, 83, 225, 226, 118, 286, - 131, 140, 0, 0, 0, 144, 0, 146, 0, 156, - 158, 0, 138, 159, 219, 224, 224, 188, 221, 222, - 223, 189, 190, 191, 0, 207, 0, 0, 0, 279, - 88, 852, 851, 236, 236, 231, 0, 234, 0, 965, - 210, 0, 101, 0, 0, 0, 0, 0, 107, 0, - 341, 624, 0, 352, 353, 0, 336, 400, 0, 228, - 0, 241, 819, 627, 0, 0, 354, 0, 337, 357, - 358, 369, 319, 320, 317, 0, 0, 874, 875, 0, - 878, 93, 389, 391, 390, 394, 0, 0, 387, 0, - 276, 848, 0, 434, 277, 278, 496, 496, 549, 0, - 552, 0, 683, 0, 703, 686, 745, 746, 0, 820, - 844, 46, 0, 209, 209, 799, 209, 213, 802, 209, - 804, 209, 807, 0, 0, 0, 0, 0, 0, 0, - 811, 759, 817, 0, 0, 0, 0, 0, 0, 0, - 0, 220, 884, 881, 45, 834, 0, 666, 604, 49, - 53, 0, 922, 913, 924, 926, 0, 0, 0, 918, - 0, 836, 0, 0, 628, 635, 0, 0, 629, 0, - 630, 650, 652, -2, 836, 665, 60, 61, 0, 80, - 81, 82, 285, 141, 142, 0, 145, 155, 157, 0, - 184, 185, 220, 0, 220, 0, 214, 0, 268, 280, - 0, 849, 850, 0, 0, 233, 235, 0, 954, 103, - 0, 0, 0, 0, 0, 127, 338, 0, 227, 0, - 0, 425, 422, 355, 356, 622, 865, 866, 867, 0, - 877, 96, 0, 0, 0, 0, 431, 432, 433, 65, - 441, 447, 551, 571, 687, 747, 879, 750, 796, 220, - 800, 801, 803, 805, 806, 808, 752, 751, 0, 0, - 0, 0, 0, 844, 0, 815, 0, 0, 0, 0, - 0, 640, 220, 904, 50, 0, 0, 0, 54, 0, - 927, 0, 0, 0, 0, 71, 844, 931, 932, 632, - 0, 637, 844, 59, 143, 0, 224, 208, 224, 0, - 0, 281, 853, 854, 855, 856, 857, 858, 859, 622, - 104, 105, 106, 344, 625, 0, 0, 402, 0, 410, - 0, 0, 0, 0, 876, 388, 0, 94, 95, 0, - 0, 393, 47, 797, 798, 0, 0, 0, 0, 788, - 0, 812, 0, 0, 0, 662, 0, 0, 660, 886, - 885, 898, 911, 835, 833, 0, 925, 0, 917, 920, - 916, 919, 57, 0, 58, 149, 197, 198, 212, 215, - 0, 0, 263, 0, 426, 423, 424, 0, 0, 97, - 98, 0, 0, 0, 753, 755, 754, 756, 0, 0, - 0, 758, 776, 777, 661, 663, 664, 621, 904, 0, - 897, 0, -2, 906, 0, 0, 0, 912, 0, 915, - 0, 633, 136, 0, 0, 0, 868, 623, 0, 0, - 0, 395, 757, 0, 0, 0, 891, 889, 889, 899, - 900, 0, 0, 907, 0, 0, 0, 923, 921, 150, - 151, 0, 0, 154, 147, 148, 868, 0, 0, 0, - 385, 870, 99, 100, 330, 331, 332, 93, 789, 0, - 792, 894, 0, 887, 890, 888, 901, 0, 0, 908, - 0, 910, 152, 153, 89, 427, 428, 0, 0, 871, - 872, 96, 790, 883, 0, 892, 893, 902, 903, 909, - 264, 0, 392, 0, 895, 896, 265, 266, 0, 869, - 0, 267, 0, 0, 0, 791, 269, 271, 272, 0, - 0, 270, 273, 274, 275, + 261, 0, 850, 229, 230, 232, 236, 0, 0, 0, + 257, 258, 0, 866, 0, 0, 0, 966, 965, 965, + 965, 0, 120, 121, 122, 123, 118, 0, 0, 126, + 339, 0, 0, 0, 259, 0, 0, 238, 254, 239, + 240, 0, 368, 0, 0, 405, 406, 407, 408, 0, + 0, 0, 337, 339, 224, 0, 293, 294, 299, 300, + 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 398, 399, 400, 401, 863, 864, 865, 0, + 0, 432, 0, 0, 278, 64, 954, 437, 495, 458, + 474, 495, 450, 457, 502, 481, 512, 556, 0, 0, + 0, 564, 0, 692, 694, 696, 683, 704, 687, 0, + 684, 0, 0, 678, 746, 0, 0, 587, 0, 838, + 881, 750, 751, 0, 0, 0, 0, 0, 788, 0, + 0, 789, 0, 838, 0, 816, 0, 0, 762, 782, + 0, 0, 783, 784, 785, 786, 787, 541, 544, 546, + 622, 0, 0, 0, 0, 644, 962, 44, 0, 0, + 0, 848, 849, 841, 43, 0, 949, 950, 832, 833, + 834, 0, 602, 613, 593, 0, 846, 924, 0, 0, + 916, 0, 0, 667, 932, 0, 615, 636, 638, 0, + 633, 648, 649, 651, 0, 653, 0, 655, 656, 619, + 620, 621, 0, 667, 0, 667, 67, 667, 69, 0, + 661, 76, 77, 0, 0, 83, 225, 226, 118, 288, + 131, 135, 140, 0, 0, 0, 144, 0, 146, 269, + 0, 156, 158, 0, 0, 138, 159, 219, 224, 224, + 188, 221, 222, 223, 189, 190, 191, 0, 207, 0, + 0, 0, 281, 88, 854, 853, 236, 236, 231, 0, + 234, 0, 967, 210, 0, 101, 0, 0, 0, 0, + 0, 107, 0, 343, 626, 0, 354, 355, 0, 338, + 402, 0, 228, 0, 241, 821, 629, 0, 0, 356, + 0, 339, 359, 360, 371, 321, 322, 319, 0, 0, + 876, 877, 0, 880, 93, 391, 393, 392, 396, 0, + 0, 389, 0, 278, 850, 0, 436, 279, 280, 498, + 498, 551, 0, 554, 0, 685, 0, 705, 688, 747, + 748, 0, 822, 846, 46, 0, 209, 209, 801, 209, + 213, 804, 209, 806, 209, 809, 0, 0, 0, 0, + 0, 0, 0, 813, 761, 819, 0, 0, 0, 0, + 0, 0, 0, 0, 220, 886, 883, 45, 836, 0, + 668, 606, 49, 53, 0, 924, 915, 926, 928, 0, + 0, 0, 920, 0, 838, 0, 0, 630, 637, 0, + 0, 631, 0, 632, 652, 654, -2, 838, 667, 60, + 61, 0, 80, 81, 82, 287, 141, 142, 0, 145, + 155, 157, 0, 0, 184, 185, 220, 0, 220, 0, + 214, 0, 270, 282, 0, 851, 852, 0, 0, 233, + 235, 0, 956, 103, 0, 0, 0, 0, 0, 127, + 340, 0, 227, 0, 0, 427, 424, 357, 358, 624, + 867, 868, 869, 0, 879, 96, 0, 0, 0, 0, + 433, 434, 435, 65, 443, 449, 553, 573, 689, 749, + 881, 752, 798, 220, 802, 803, 805, 807, 808, 810, + 754, 753, 0, 0, 0, 0, 0, 846, 0, 817, + 0, 0, 0, 0, 0, 642, 220, 906, 50, 0, + 0, 0, 54, 0, 929, 0, 0, 0, 0, 71, + 846, 933, 934, 634, 0, 639, 846, 59, 143, 0, + 0, 224, 208, 224, 0, 0, 283, 855, 856, 857, + 858, 859, 860, 861, 624, 104, 105, 106, 346, 627, + 0, 0, 404, 0, 412, 0, 0, 0, 0, 878, + 390, 0, 94, 95, 0, 0, 395, 47, 799, 800, + 0, 0, 0, 0, 790, 0, 814, 0, 0, 0, + 664, 0, 0, 662, 888, 887, 900, 913, 837, 835, + 0, 927, 0, 919, 922, 918, 921, 57, 0, 58, + 0, 149, 197, 198, 212, 215, 0, 0, 263, 428, + 425, 426, 0, 0, 97, 98, 0, 0, 0, 755, + 757, 756, 758, 0, 0, 0, 760, 778, 779, 663, + 665, 666, 623, 906, 0, 899, 0, -2, 908, 0, + 0, 0, 914, 0, 917, 0, 635, 264, 268, 0, + 0, 870, 625, 0, 0, 0, 397, 759, 0, 0, + 0, 893, 891, 891, 901, 902, 0, 0, 909, 0, + 0, 0, 925, 923, 265, 266, 0, 136, 150, 151, + 0, 0, 154, 147, 148, 870, 0, 0, 387, 872, + 99, 100, 332, 333, 334, 93, 791, 0, 794, 896, + 0, 889, 892, 890, 903, 0, 0, 910, 0, 912, + 267, 0, 0, 0, 152, 153, 89, 429, 430, 0, + 873, 874, 96, 792, 885, 0, 894, 895, 904, 905, + 911, 271, 273, 274, 0, 0, 272, 0, 394, 0, + 897, 898, 275, 276, 277, 871, 0, 793, } var yyTok1 = [...]int{ @@ -6689,40 +6639,42 @@ yydefault: yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion()) } case 135: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *ColumnDefinition //line sql.y:1025 { yyDollar[2].columnType.Options = yyDollar[3].columnTypeOptionsUnion() + yyDollar[2].columnType.Options.Reference = yyDollar[4].referenceDefinitionUnion() yyLOCAL = &ColumnDefinition{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType} } yyVAL.union = yyLOCAL case 136: - yyDollar = yyS[yypt-8 : yypt+1] + yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *ColumnDefinition -//line sql.y:1030 +//line sql.y:1031 { yyDollar[2].columnType.Options = yyDollar[8].columnTypeOptionsUnion() yyDollar[2].columnType.Options.As = yyDollar[6].exprUnion() + yyDollar[2].columnType.Options.Reference = yyDollar[9].referenceDefinitionUnion() yyLOCAL = &ColumnDefinition{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType} } yyVAL.union = yyLOCAL case 137: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1037 +//line sql.y:1039 { yyVAL.str = "" } case 138: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1041 +//line sql.y:1043 { yyVAL.str = "" } case 139: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1050 +//line sql.y:1052 { yyLOCAL = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil, As: nil} } @@ -6730,7 +6682,7 @@ yydefault: case 140: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1054 +//line sql.y:1056 { val := true yyDollar[1].columnTypeOptionsUnion().Null = &val @@ -6740,7 +6692,7 @@ yydefault: case 141: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1060 +//line sql.y:1062 { val := false yyDollar[1].columnTypeOptionsUnion().Null = &val @@ -6750,7 +6702,7 @@ yydefault: case 142: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1066 +//line sql.y:1068 { yyDollar[1].columnTypeOptionsUnion().Default = yyDollar[3].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6759,7 +6711,7 @@ yydefault: case 143: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1071 +//line sql.y:1073 { yyDollar[1].columnTypeOptionsUnion().OnUpdate = yyDollar[4].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6768,7 +6720,7 @@ yydefault: case 144: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1076 +//line sql.y:1078 { yyDollar[1].columnTypeOptionsUnion().Autoincrement = true yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6777,7 +6729,7 @@ yydefault: case 145: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1081 +//line sql.y:1083 { yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6786,7 +6738,7 @@ yydefault: case 146: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1086 +//line sql.y:1088 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6795,7 +6747,7 @@ yydefault: case 147: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnStorage -//line sql.y:1093 +//line sql.y:1095 { yyLOCAL = VirtualStorage } @@ -6803,7 +6755,7 @@ yydefault: case 148: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnStorage -//line sql.y:1097 +//line sql.y:1099 { yyLOCAL = StoredStorage } @@ -6811,7 +6763,7 @@ yydefault: case 149: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1102 +//line sql.y:1104 { yyLOCAL = &ColumnTypeOptions{} } @@ -6819,7 +6771,7 @@ yydefault: case 150: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1106 +//line sql.y:1108 { yyDollar[1].columnTypeOptionsUnion().Storage = yyDollar[2].columnStorageUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6828,7 +6780,7 @@ yydefault: case 151: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1111 +//line sql.y:1113 { val := true yyDollar[1].columnTypeOptionsUnion().Null = &val @@ -6838,7 +6790,7 @@ yydefault: case 152: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1117 +//line sql.y:1119 { val := false yyDollar[1].columnTypeOptionsUnion().Null = &val @@ -6848,7 +6800,7 @@ yydefault: case 153: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1123 +//line sql.y:1125 { yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6857,7 +6809,7 @@ yydefault: case 154: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1128 +//line sql.y:1130 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -6866,7 +6818,7 @@ yydefault: case 155: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1135 +//line sql.y:1137 { yyLOCAL = colKeyPrimary } @@ -6874,7 +6826,7 @@ yydefault: case 156: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1139 +//line sql.y:1141 { yyLOCAL = colKeyUnique } @@ -6882,7 +6834,7 @@ yydefault: case 157: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1143 +//line sql.y:1145 { yyLOCAL = colKeyUniqueKey } @@ -6890,14 +6842,14 @@ yydefault: case 158: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1147 +//line sql.y:1149 { yyLOCAL = colKey } yyVAL.union = yyLOCAL case 159: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1153 +//line sql.y:1155 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].booleanUnion() @@ -6905,74 +6857,74 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1164 +//line sql.y:1166 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].literalUnion() } case 164: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1169 +//line sql.y:1171 { yyVAL.columnType = yyDollar[1].columnType } case 165: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1175 +//line sql.y:1177 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 166: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1179 +//line sql.y:1181 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 167: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1183 +//line sql.y:1185 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 168: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1187 +//line sql.y:1189 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 169: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1191 +//line sql.y:1193 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 170: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1195 +//line sql.y:1197 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 171: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1199 +//line sql.y:1201 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 172: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1203 +//line sql.y:1205 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 173: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1207 +//line sql.y:1209 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 174: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1213 +//line sql.y:1215 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6980,7 +6932,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1219 +//line sql.y:1221 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6988,7 +6940,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1225 +//line sql.y:1227 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6996,7 +6948,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1231 +//line sql.y:1233 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -7004,7 +6956,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1237 +//line sql.y:1239 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -7012,189 +6964,189 @@ yydefault: } case 179: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1245 +//line sql.y:1247 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 180: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1249 +//line sql.y:1251 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 181: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1253 +//line sql.y:1255 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 182: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1257 +//line sql.y:1259 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1261 +//line sql.y:1263 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 184: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1267 +//line sql.y:1269 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 185: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1271 +//line sql.y:1273 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 186: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1275 +//line sql.y:1277 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 187: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1279 +//line sql.y:1281 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1283 +//line sql.y:1285 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 189: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1287 +//line sql.y:1289 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 190: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1291 +//line sql.y:1293 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 191: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1295 +//line sql.y:1297 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 192: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1299 +//line sql.y:1301 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 193: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1303 +//line sql.y:1305 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 194: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1307 +//line sql.y:1309 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 195: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1311 +//line sql.y:1313 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 196: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1315 +//line sql.y:1317 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 197: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1319 +//line sql.y:1321 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 198: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1324 +//line sql.y:1326 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 199: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1330 +//line sql.y:1332 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 200: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1334 +//line sql.y:1336 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 201: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1338 +//line sql.y:1340 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 202: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1342 +//line sql.y:1344 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 203: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1346 +//line sql.y:1348 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 204: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1350 +//line sql.y:1352 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 205: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1354 +//line sql.y:1356 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 206: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1358 +//line sql.y:1360 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 207: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1364 +//line sql.y:1366 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, encodeSQLString(yyDollar[1].str)) } case 208: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1369 +//line sql.y:1371 { yyVAL.strs = append(yyDollar[1].strs, encodeSQLString(yyDollar[3].str)) } case 209: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Literal -//line sql.y:1374 +//line sql.y:1376 { yyLOCAL = nil } @@ -7202,20 +7154,20 @@ yydefault: case 210: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Literal -//line sql.y:1378 +//line sql.y:1380 { yyLOCAL = NewIntLiteral(yyDollar[2].str) } yyVAL.union = yyLOCAL case 211: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1383 +//line sql.y:1385 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 212: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1387 +//line sql.y:1389 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), @@ -7224,13 +7176,13 @@ yydefault: } case 213: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1395 +//line sql.y:1397 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 214: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1399 +//line sql.y:1401 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), @@ -7238,7 +7190,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1405 +//line sql.y:1407 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), @@ -7248,7 +7200,7 @@ yydefault: case 216: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1413 +//line sql.y:1415 { yyLOCAL = false } @@ -7256,7 +7208,7 @@ yydefault: case 217: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1417 +//line sql.y:1419 { yyLOCAL = true } @@ -7264,7 +7216,7 @@ yydefault: case 218: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1422 +//line sql.y:1424 { yyLOCAL = false } @@ -7272,57 +7224,57 @@ yydefault: case 219: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1426 +//line sql.y:1428 { yyLOCAL = true } yyVAL.union = yyLOCAL case 220: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1431 +//line sql.y:1433 { yyVAL.str = "" } case 221: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1435 +//line sql.y:1437 { yyVAL.str = string(yyDollar[2].colIdent.String()) } case 222: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1439 +//line sql.y:1441 { yyVAL.str = encodeSQLString(yyDollar[2].str) } case 223: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1443 +//line sql.y:1445 { yyVAL.str = string(yyDollar[2].str) } case 224: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1448 +//line sql.y:1450 { yyVAL.str = "" } case 225: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1452 +//line sql.y:1454 { yyVAL.str = string(yyDollar[2].colIdent.String()) } case 226: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1456 +//line sql.y:1458 { yyVAL.str = encodeSQLString(yyDollar[2].str) } case 227: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexDefinition -//line sql.y:1463 +//line sql.y:1465 { yyLOCAL = &IndexDefinition{Info: yyDollar[1].indexInfoUnion(), Columns: yyDollar[3].indexColumnsUnion(), Options: yyDollar[5].indexOptionsUnion()} } @@ -7330,7 +7282,7 @@ yydefault: case 228: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1468 +//line sql.y:1470 { yyLOCAL = nil } @@ -7338,7 +7290,7 @@ yydefault: case 229: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1472 +//line sql.y:1474 { yyLOCAL = yyDollar[1].indexOptionsUnion() } @@ -7346,14 +7298,14 @@ yydefault: case 230: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1478 +//line sql.y:1480 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL case 231: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1482 +//line sql.y:1484 { yySLICE := (*[]*IndexOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].indexOptionUnion()) @@ -7361,7 +7313,7 @@ yydefault: case 232: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1488 +//line sql.y:1490 { yyLOCAL = yyDollar[1].indexOptionUnion() } @@ -7369,7 +7321,7 @@ yydefault: case 233: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1492 +//line sql.y:1494 { // should not be string yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} @@ -7378,7 +7330,7 @@ yydefault: case 234: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1497 +//line sql.y:1499 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[2].str)} } @@ -7386,27 +7338,27 @@ yydefault: case 235: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1501 +//line sql.y:1503 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str) + " " + string(yyDollar[2].str), String: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL case 236: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1507 +//line sql.y:1509 { yyVAL.str = "" } case 237: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1511 +//line sql.y:1513 { yyVAL.str = string(yyDollar[1].str) } case 238: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1517 +//line sql.y:1519 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} } @@ -7414,7 +7366,7 @@ yydefault: case 239: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1521 +//line sql.y:1523 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Spatial: true, Unique: false} } @@ -7422,7 +7374,7 @@ yydefault: case 240: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1525 +//line sql.y:1527 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Fulltext: true, Unique: false} } @@ -7430,7 +7382,7 @@ yydefault: case 241: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1529 +//line sql.y:1531 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent(yyDollar[4].str), Unique: true} } @@ -7438,100 +7390,100 @@ yydefault: case 242: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1533 +//line sql.y:1535 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(yyDollar[2].str), Unique: false} } yyVAL.union = yyLOCAL case 243: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1538 +//line sql.y:1540 { yyVAL.str = "" } case 244: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1542 +//line sql.y:1544 { yyVAL.str = yyDollar[2].str } case 245: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1548 +//line sql.y:1550 { yyVAL.str = string(yyDollar[1].str) } case 246: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1552 +//line sql.y:1554 { yyVAL.str = string(yyDollar[1].str) } case 247: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1556 +//line sql.y:1558 { yyVAL.str = string(yyDollar[1].str) } case 248: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1563 +//line sql.y:1565 { yyVAL.str = string(yyDollar[1].str) } case 249: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1567 +//line sql.y:1569 { yyVAL.str = string(yyDollar[1].str) } case 250: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1572 +//line sql.y:1574 { yyVAL.str = "key" } case 251: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1576 +//line sql.y:1578 { yyVAL.str = yyDollar[1].str } case 252: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1582 +//line sql.y:1584 { yyVAL.str = string(yyDollar[1].str) } case 253: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1586 +//line sql.y:1588 { yyVAL.str = string(yyDollar[1].str) } case 254: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1591 +//line sql.y:1593 { yyVAL.str = "" } case 255: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1595 +//line sql.y:1597 { yyVAL.str = string(yyDollar[1].colIdent.String()) } case 256: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexColumn -//line sql.y:1601 +//line sql.y:1603 { yyLOCAL = []*IndexColumn{yyDollar[1].indexColumnUnion()} } yyVAL.union = yyLOCAL case 257: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1605 +//line sql.y:1607 { yySLICE := (*[]*IndexColumn)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].indexColumnUnion()) @@ -7539,7 +7491,7 @@ yydefault: case 258: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexColumn -//line sql.y:1611 +//line sql.y:1613 { yyLOCAL = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].literalUnion(), Direction: yyDollar[3].orderDirectionUnion()} } @@ -7547,7 +7499,7 @@ yydefault: case 259: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1617 +//line sql.y:1619 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } @@ -7555,7 +7507,7 @@ yydefault: case 260: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1621 +//line sql.y:1623 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } @@ -7563,7 +7515,7 @@ yydefault: case 261: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1627 +//line sql.y:1629 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } @@ -7571,7 +7523,7 @@ yydefault: case 262: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1631 +//line sql.y:1633 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } @@ -7579,7 +7531,7 @@ yydefault: case 263: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1637 +//line sql.y:1639 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferenceDefinition: yyDollar[7].referenceDefinitionUnion()} } @@ -7587,7 +7539,7 @@ yydefault: case 264: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:1643 +//line sql.y:1645 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion()} } @@ -7595,7 +7547,7 @@ yydefault: case 265: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:1647 +//line sql.y:1649 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnDelete: yyDollar[6].ReferenceActionUnion()} } @@ -7603,7 +7555,7 @@ yydefault: case 266: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:1651 +//line sql.y:1653 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnUpdate: yyDollar[6].ReferenceActionUnion()} } @@ -7611,821 +7563,837 @@ yydefault: case 267: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:1655 +//line sql.y:1657 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnDelete: yyDollar[6].ReferenceActionUnion(), OnUpdate: yyDollar[7].ReferenceActionUnion()} } yyVAL.union = yyLOCAL case 268: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL *ReferenceDefinition +//line sql.y:1662 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 269: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL *ReferenceDefinition +//line sql.y:1666 + { + yyLOCAL = yyDollar[1].referenceDefinitionUnion() + } + yyVAL.union = yyLOCAL + case 270: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1661 +//line sql.y:1672 { yyLOCAL = &CheckConstraintDefinition{Expr: yyDollar[3].exprUnion(), Enforced: yyDollar[5].booleanUnion()} } yyVAL.union = yyLOCAL - case 269: + case 271: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1667 +//line sql.y:1678 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } yyVAL.union = yyLOCAL - case 270: + case 272: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1673 +//line sql.y:1684 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } yyVAL.union = yyLOCAL - case 271: + case 273: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1679 +//line sql.y:1690 { yyLOCAL = Restrict } yyVAL.union = yyLOCAL - case 272: + case 274: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1683 +//line sql.y:1694 { yyLOCAL = Cascade } yyVAL.union = yyLOCAL - case 273: + case 275: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1687 +//line sql.y:1698 { yyLOCAL = NoAction } yyVAL.union = yyLOCAL - case 274: + case 276: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1691 +//line sql.y:1702 { yyLOCAL = SetDefault } yyVAL.union = yyLOCAL - case 275: + case 277: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1695 +//line sql.y:1706 { yyLOCAL = SetNull } yyVAL.union = yyLOCAL - case 276: + case 278: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1700 +//line sql.y:1711 { yyVAL.str = "" } - case 277: + case 279: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1704 +//line sql.y:1715 { yyVAL.str = string(yyDollar[1].str) } - case 278: + case 280: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1708 +//line sql.y:1719 { yyVAL.str = string(yyDollar[1].str) } - case 279: + case 281: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1713 +//line sql.y:1724 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 280: + case 282: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1717 +//line sql.y:1728 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 281: + case 283: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:1721 +//line sql.y:1732 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 282: + case 284: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1726 +//line sql.y:1737 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 283: + case 285: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1730 +//line sql.y:1741 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 284: + case 286: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1736 +//line sql.y:1747 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 285: + case 287: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1740 +//line sql.y:1751 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableOptionUnion()) } - case 286: + case 288: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1744 +//line sql.y:1755 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) } - case 287: + case 289: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1750 +//line sql.y:1761 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 288: + case 290: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1754 +//line sql.y:1765 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) } - case 289: + case 291: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1760 +//line sql.y:1771 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 290: + case 292: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1764 +//line sql.y:1775 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 291: + case 293: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1768 +//line sql.y:1779 { yyLOCAL = &TableOption{Name: (string(yyDollar[2].str)), String: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 292: + case 294: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1772 +//line sql.y:1783 { yyLOCAL = &TableOption{Name: string(yyDollar[2].str), String: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 293: + case 295: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1776 +//line sql.y:1787 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 294: + case 296: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1780 +//line sql.y:1791 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 295: + case 297: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1784 +//line sql.y:1795 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 296: + case 298: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1788 +//line sql.y:1799 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 297: + case 299: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1792 +//line sql.y:1803 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 298: + case 300: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1796 +//line sql.y:1807 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 299: + case 301: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1800 +//line sql.y:1811 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 300: + case 302: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1804 +//line sql.y:1815 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 301: + case 303: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1808 +//line sql.y:1819 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 302: + case 304: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1812 +//line sql.y:1823 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 303: + case 305: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1816 +//line sql.y:1827 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 304: + case 306: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1820 +//line sql.y:1831 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 305: + case 307: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1824 +//line sql.y:1835 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 306: + case 308: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1828 +//line sql.y:1839 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 307: + case 309: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1832 +//line sql.y:1843 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 308: + case 310: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1836 +//line sql.y:1847 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 309: + case 311: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1840 +//line sql.y:1851 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 310: + case 312: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1844 +//line sql.y:1855 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 311: + case 313: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1848 +//line sql.y:1859 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 312: + case 314: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1852 +//line sql.y:1863 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 313: + case 315: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1856 +//line sql.y:1867 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 314: + case 316: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1860 +//line sql.y:1871 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 315: + case 317: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1864 +//line sql.y:1875 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 316: + case 318: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1868 +//line sql.y:1879 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: (yyDollar[3].colIdent.String() + yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 317: + case 319: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1872 +//line sql.y:1883 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Tables: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 318: + case 320: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1877 +//line sql.y:1888 { yyVAL.str = "" } - case 319: + case 321: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1881 +//line sql.y:1892 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 320: + case 322: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1885 +//line sql.y:1896 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 330: + case 332: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1904 +//line sql.y:1915 { yyVAL.str = yyDollar[1].colIdent.String() } - case 331: + case 333: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1908 +//line sql.y:1919 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 332: + case 334: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1912 +//line sql.y:1923 { yyVAL.str = string(yyDollar[1].str) } - case 333: + case 335: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1917 +//line sql.y:1928 { yyVAL.str = "" } - case 335: + case 337: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:1923 +//line sql.y:1934 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 336: + case 338: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:1927 +//line sql.y:1938 { yyLOCAL = yyDollar[2].colNameUnion() } yyVAL.union = yyLOCAL - case 337: + case 339: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:1932 +//line sql.y:1943 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 338: + case 340: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:1936 +//line sql.y:1947 { yyLOCAL = yyDollar[2].colNameUnion() } yyVAL.union = yyLOCAL - case 339: + case 341: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1941 +//line sql.y:1952 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 340: + case 342: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1945 +//line sql.y:1956 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL - case 341: + case 343: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1949 +//line sql.y:1960 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &OrderByOption{Cols: yyDollar[5].columnsUnion()}) } - case 342: + case 344: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1953 +//line sql.y:1964 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL - case 343: + case 345: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1957 +//line sql.y:1968 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionsUnion()...) } - case 344: + case 346: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1961 +//line sql.y:1972 { yyLOCAL = append(append(yyDollar[1].alterOptionsUnion(), yyDollar[3].alterOptionsUnion()...), &OrderByOption{Cols: yyDollar[7].columnsUnion()}) } yyVAL.union = yyLOCAL - case 345: + case 347: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:1967 +//line sql.y:1978 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 346: + case 348: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1971 +//line sql.y:1982 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 347: + case 349: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1975 +//line sql.y:1986 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 348: + case 350: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1981 +//line sql.y:1992 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 349: + case 351: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1985 +//line sql.y:1996 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } yyVAL.union = yyLOCAL - case 350: + case 352: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1989 +//line sql.y:2000 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } yyVAL.union = yyLOCAL - case 351: + case 353: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1993 +//line sql.y:2004 { yyLOCAL = &AddIndexDefinition{IndexDefinition: yyDollar[2].indexDefinitionUnion()} } yyVAL.union = yyLOCAL - case 352: + case 354: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:1997 +//line sql.y:2008 { yyLOCAL = &AddColumns{Columns: yyDollar[4].columnDefinitionsUnion()} } yyVAL.union = yyLOCAL - case 353: + case 355: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2001 +//line sql.y:2012 { yyLOCAL = &AddColumns{Columns: []*ColumnDefinition{yyDollar[3].columnDefinitionUnion()}, First: yyDollar[4].colNameUnion(), After: yyDollar[5].colNameUnion()} } yyVAL.union = yyLOCAL - case 354: + case 356: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2005 +//line sql.y:2016 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: true} } yyVAL.union = yyLOCAL - case 355: + case 357: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2009 +//line sql.y:2020 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 356: + case 358: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2013 +//line sql.y:2024 { yyLOCAL = &ChangeColumn{OldColumn: yyDollar[3].colNameUnion(), NewColDefinition: yyDollar[4].columnDefinitionUnion(), First: yyDollar[5].colNameUnion(), After: yyDollar[6].colNameUnion()} } yyVAL.union = yyLOCAL - case 357: + case 359: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2017 +//line sql.y:2028 { yyLOCAL = &ModifyColumn{NewColDefinition: yyDollar[3].columnDefinitionUnion(), First: yyDollar[4].colNameUnion(), After: yyDollar[5].colNameUnion()} } yyVAL.union = yyLOCAL - case 358: + case 360: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2021 +//line sql.y:2032 { yyLOCAL = &AlterCharset{CharacterSet: yyDollar[4].str, Collate: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 359: + case 361: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2025 +//line sql.y:2036 { yyLOCAL = &KeyState{Enable: false} } yyVAL.union = yyLOCAL - case 360: + case 362: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2029 +//line sql.y:2040 { yyLOCAL = &KeyState{Enable: true} } yyVAL.union = yyLOCAL - case 361: + case 363: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2033 +//line sql.y:2044 { yyLOCAL = &TablespaceOperation{Import: false} } yyVAL.union = yyLOCAL - case 362: + case 364: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2037 +//line sql.y:2048 { yyLOCAL = &TablespaceOperation{Import: true} } yyVAL.union = yyLOCAL - case 363: + case 365: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2041 +//line sql.y:2052 { yyLOCAL = &DropColumn{Name: yyDollar[3].colNameUnion()} } yyVAL.union = yyLOCAL - case 364: + case 366: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2045 +//line sql.y:2056 { yyLOCAL = &DropKey{Type: NormalKeyType, Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 365: + case 367: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2049 +//line sql.y:2060 { yyLOCAL = &DropKey{Type: PrimaryKeyType} } yyVAL.union = yyLOCAL - case 366: + case 368: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2053 +//line sql.y:2064 { yyLOCAL = &DropKey{Type: ForeignKeyType, Name: yyDollar[4].colIdent} } yyVAL.union = yyLOCAL - case 367: + case 369: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2057 +//line sql.y:2068 { yyLOCAL = &Force{} } yyVAL.union = yyLOCAL - case 368: + case 370: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2061 +//line sql.y:2072 { yyLOCAL = &RenameTableName{Table: yyDollar[3].tableName} } yyVAL.union = yyLOCAL - case 369: + case 371: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2065 +//line sql.y:2076 { yyLOCAL = &RenameIndex{OldName: yyDollar[3].colIdent, NewName: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 370: + case 372: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2071 +//line sql.y:2082 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 371: + case 373: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2075 +//line sql.y:2086 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 372: + case 374: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2081 +//line sql.y:2092 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 373: + case 375: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2085 +//line sql.y:2096 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 374: + case 376: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2089 +//line sql.y:2100 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 375: + case 377: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2093 +//line sql.y:2104 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.union = yyLOCAL - case 376: + case 378: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2097 +//line sql.y:2108 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.union = yyLOCAL - case 377: + case 379: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2101 +//line sql.y:2112 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.union = yyLOCAL - case 378: + case 380: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2105 +//line sql.y:2116 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.union = yyLOCAL - case 379: + case 381: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2109 +//line sql.y:2120 { yyLOCAL = &Validation{With: true} } yyVAL.union = yyLOCAL - case 380: + case 382: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2113 +//line sql.y:2124 { yyLOCAL = &Validation{With: false} } yyVAL.union = yyLOCAL - case 381: + case 383: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2119 +//line sql.y:2130 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 382: + case 384: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2125 +//line sql.y:2136 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8433,10 +8401,10 @@ yydefault: yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 383: + case 385: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2132 +//line sql.y:2143 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8444,28 +8412,28 @@ yydefault: yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 384: + case 386: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2139 +//line sql.y:2150 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[2].partSpecUnion() yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 385: + case 387: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL Statement -//line sql.y:2145 +//line sql.y:2156 { yyLOCAL = &AlterView{ViewName: yyDollar[7].tableName.ToViewName(), Algorithm: yyDollar[3].str, Definer: yyDollar[4].str, Security: yyDollar[5].str, Columns: yyDollar[8].columnsUnion(), Select: yyDollar[10].selStmtUnion(), CheckOption: yyDollar[11].str} } yyVAL.union = yyLOCAL - case 386: + case 388: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2149 +//line sql.y:2160 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8473,10 +8441,10 @@ yydefault: yyLOCAL = yyDollar[1].alterDatabaseUnion() } yyVAL.union = yyLOCAL - case 387: + case 389: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2156 +//line sql.y:2167 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8484,10 +8452,10 @@ yydefault: yyLOCAL = yyDollar[1].alterDatabaseUnion() } yyVAL.union = yyLOCAL - case 388: + case 390: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2163 +//line sql.y:2174 { yyLOCAL = &AlterVschema{ Action: CreateVindexDDLAction, @@ -8500,10 +8468,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 389: + case 391: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2175 +//line sql.y:2186 { yyLOCAL = &AlterVschema{ Action: DropVindexDDLAction, @@ -8514,26 +8482,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 390: + case 392: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2185 +//line sql.y:2196 { yyLOCAL = &AlterVschema{Action: AddVschemaTableDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 391: + case 393: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2189 +//line sql.y:2200 { yyLOCAL = &AlterVschema{Action: DropVschemaTableDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 392: + case 394: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL Statement -//line sql.y:2193 +//line sql.y:2204 { yyLOCAL = &AlterVschema{ Action: AddColVindexDDLAction, @@ -8547,10 +8515,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 393: + case 395: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2206 +//line sql.y:2217 { yyLOCAL = &AlterVschema{ Action: DropColVindexDDLAction, @@ -8561,18 +8529,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 394: + case 396: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2216 +//line sql.y:2227 { yyLOCAL = &AlterVschema{Action: AddSequenceDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 395: + case 397: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Statement -//line sql.y:2220 +//line sql.y:2231 { yyLOCAL = &AlterVschema{ Action: AddAutoIncDDLAction, @@ -8584,10 +8552,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 396: + case 398: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2231 +//line sql.y:2242 { yyLOCAL = &AlterMigration{ Type: RetryMigrationType, @@ -8595,10 +8563,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 397: + case 399: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2238 +//line sql.y:2249 { yyLOCAL = &AlterMigration{ Type: CompleteMigrationType, @@ -8606,10 +8574,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 398: + case 400: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2245 +//line sql.y:2256 { yyLOCAL = &AlterMigration{ Type: CancelMigrationType, @@ -8617,282 +8585,282 @@ yydefault: } } yyVAL.union = yyLOCAL - case 399: + case 401: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2252 +//line sql.y:2263 { yyLOCAL = &AlterMigration{ Type: CancelAllMigrationType, } } yyVAL.union = yyLOCAL - case 400: + case 402: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2260 +//line sql.y:2271 { yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}} } yyVAL.union = yyLOCAL - case 401: + case 403: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2264 +//line sql.y:2275 { yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 402: + case 404: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2268 +//line sql.y:2279 { yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()} } yyVAL.union = yyLOCAL - case 403: + case 405: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2272 +//line sql.y:2283 { yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 404: + case 406: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2276 +//line sql.y:2287 { yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true} } yyVAL.union = yyLOCAL - case 405: + case 407: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2280 +//line sql.y:2291 { yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 406: + case 408: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2284 +//line sql.y:2295 { yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true} } yyVAL.union = yyLOCAL - case 407: + case 409: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2288 +//line sql.y:2299 { yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 408: + case 410: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2292 +//line sql.y:2303 { yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true} } yyVAL.union = yyLOCAL - case 409: + case 411: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2296 +//line sql.y:2307 { yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 410: + case 412: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2300 +//line sql.y:2311 { yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].colIdent}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()} } yyVAL.union = yyLOCAL - case 411: + case 413: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2304 +//line sql.y:2315 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 412: + case 414: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2308 +//line sql.y:2319 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true} } yyVAL.union = yyLOCAL - case 413: + case 415: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2312 +//line sql.y:2323 { yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 414: + case 416: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2316 +//line sql.y:2327 { yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true} } yyVAL.union = yyLOCAL - case 415: + case 417: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2320 +//line sql.y:2331 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 416: + case 418: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2324 +//line sql.y:2335 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true} } yyVAL.union = yyLOCAL - case 417: + case 419: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2328 +//line sql.y:2339 { yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 418: + case 420: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2332 +//line sql.y:2343 { yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true} } yyVAL.union = yyLOCAL - case 419: + case 421: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2336 +//line sql.y:2347 { yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 420: + case 422: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2340 +//line sql.y:2351 { yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true} } yyVAL.union = yyLOCAL - case 421: + case 423: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2344 +//line sql.y:2355 { yyLOCAL = &PartitionSpec{Action: UpgradeAction} } yyVAL.union = yyLOCAL - case 422: + case 424: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2349 +//line sql.y:2360 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 423: + case 425: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2353 +//line sql.y:2364 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 424: + case 426: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2357 +//line sql.y:2368 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 425: + case 427: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:2364 +//line sql.y:2375 { yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()} } yyVAL.union = yyLOCAL - case 426: + case 428: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2368 +//line sql.y:2379 { yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].partDefUnion()) } - case 427: + case 429: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2374 +//line sql.y:2385 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 428: + case 430: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2378 +//line sql.y:2389 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} } yyVAL.union = yyLOCAL - case 429: + case 431: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2384 +//line sql.y:2395 { yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()} } yyVAL.union = yyLOCAL - case 430: + case 432: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*RenameTablePair -//line sql.y:2390 +//line sql.y:2401 { yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}} } yyVAL.union = yyLOCAL - case 431: + case 433: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2394 +//line sql.y:2405 { yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName}) } - case 432: + case 434: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2400 +//line sql.y:2411 { yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs), Temp: yyDollar[3].booleanUnion()} } yyVAL.union = yyLOCAL - case 433: + case 435: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2404 +//line sql.y:2415 { // Change this to an alter statement if yyDollar[4].colIdent.Lowered() == "primary" { @@ -8902,387 +8870,387 @@ yydefault: } } yyVAL.union = yyLOCAL - case 434: + case 436: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2413 +//line sql.y:2424 { yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), IfExists: yyDollar[4].booleanUnion()} } yyVAL.union = yyLOCAL - case 435: + case 437: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2417 +//line sql.y:2428 { yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs), DBName: yyDollar[5].tableIdent, IfExists: yyDollar[4].booleanUnion()} } yyVAL.union = yyLOCAL - case 436: + case 438: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2423 +//line sql.y:2434 { yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName} } yyVAL.union = yyLOCAL - case 437: + case 439: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2427 +//line sql.y:2438 { yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName} } yyVAL.union = yyLOCAL - case 438: + case 440: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2432 +//line sql.y:2443 { yyLOCAL = &OtherRead{} } yyVAL.union = yyLOCAL - case 439: + case 441: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2438 +//line sql.y:2449 { yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 440: + case 442: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2442 +//line sql.y:2453 { yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 441: + case 443: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2446 +//line sql.y:2457 { yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 442: + case 444: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2450 +//line sql.y:2461 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 443: + case 445: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2454 +//line sql.y:2465 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 444: + case 446: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2458 +//line sql.y:2469 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 445: + case 447: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2462 +//line sql.y:2473 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 446: + case 448: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2466 +//line sql.y:2477 { yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 447: + case 449: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2470 +//line sql.y:2481 { yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 448: + case 450: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2474 +//line sql.y:2485 { yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 449: + case 451: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2478 +//line sql.y:2489 { yyLOCAL = &Show{&ShowBasic{Command: Privilege}} } yyVAL.union = yyLOCAL - case 450: + case 452: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2482 +//line sql.y:2493 { yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 451: + case 453: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2486 +//line sql.y:2497 { yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 452: + case 454: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2490 +//line sql.y:2501 { yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 453: + case 455: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2494 +//line sql.y:2505 { yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 454: + case 456: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2498 +//line sql.y:2509 { yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 455: + case 457: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2502 +//line sql.y:2513 { yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 456: + case 458: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2506 +//line sql.y:2517 { yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 457: + case 459: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2510 +//line sql.y:2521 { yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].tableIdent, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 458: + case 460: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2514 +//line sql.y:2525 { yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 459: + case 461: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2518 +//line sql.y:2529 { yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 460: + case 462: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2522 +//line sql.y:2533 { yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 461: + case 463: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2526 +//line sql.y:2537 { yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 462: + case 464: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2530 +//line sql.y:2541 { yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 463: + case 465: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2534 +//line sql.y:2545 { yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 464: + case 466: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2538 +//line sql.y:2549 { yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 465: + case 467: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2542 +//line sql.y:2553 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 466: + case 468: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2546 +//line sql.y:2557 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].colIdent.String()), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 467: + case 469: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2550 +//line sql.y:2561 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 468: + case 470: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2554 +//line sql.y:2565 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 469: + case 471: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2558 +//line sql.y:2569 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 470: + case 472: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2562 +//line sql.y:2573 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 471: + case 473: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2566 +//line sql.y:2577 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 472: + case 474: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2570 +//line sql.y:2581 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 473: + case 475: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2574 +//line sql.y:2585 { yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].tableIdent}} } yyVAL.union = yyLOCAL - case 474: + case 476: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2578 +//line sql.y:2589 { yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].tableIdent}} } yyVAL.union = yyLOCAL - case 475: + case 477: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2582 +//line sql.y:2593 { showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilterUnion()} yyLOCAL = &Show{&ShowLegacy{Scope: VitessMetadataScope, Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt}} } yyVAL.union = yyLOCAL - case 476: + case 478: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2587 +//line sql.y:2598 { yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL - case 477: + case 479: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2591 +//line sql.y:2602 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 478: + case 480: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2595 +//line sql.y:2606 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 479: + case 481: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2599 +//line sql.y:2610 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), OnTable: yyDollar[5].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 480: + case 482: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2603 +//line sql.y:2614 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 481: + case 483: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2608 +//line sql.y:2619 { // This should probably be a different type (ShowVitessTopoOpt), but // just getting the thing working for now @@ -9290,1204 +9258,1204 @@ yydefault: yyLOCAL = &Show{&ShowLegacy{Type: yyDollar[2].str, ShowTablesOpt: showTablesOpt}} } yyVAL.union = yyLOCAL - case 482: + case 484: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2622 +//line sql.y:2633 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].colIdent.String()), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 483: + case 485: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2626 +//line sql.y:2637 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 484: + case 486: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2630 +//line sql.y:2641 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 485: + case 487: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2636 +//line sql.y:2647 { yyVAL.str = string(yyDollar[1].str) } - case 486: + case 488: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2640 +//line sql.y:2651 { yyVAL.str = string(yyDollar[1].str) } - case 487: + case 489: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2646 +//line sql.y:2657 { yyVAL.str = "" } - case 488: + case 490: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2650 +//line sql.y:2661 { yyVAL.str = "extended " } - case 489: + case 491: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2656 +//line sql.y:2667 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 490: + case 492: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2660 +//line sql.y:2671 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 491: + case 493: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2666 +//line sql.y:2677 { yyVAL.str = string(yyDollar[1].str) } - case 492: + case 494: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2670 +//line sql.y:2681 { yyVAL.str = string(yyDollar[1].str) } - case 493: + case 495: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2676 +//line sql.y:2687 { yyVAL.tableIdent = NewTableIdent("") } - case 494: + case 496: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2680 +//line sql.y:2691 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 495: + case 497: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2684 +//line sql.y:2695 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 496: + case 498: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2690 +//line sql.y:2701 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 497: + case 499: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2694 +//line sql.y:2705 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 498: + case 500: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2698 +//line sql.y:2709 { yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 499: + case 501: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2704 +//line sql.y:2715 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 500: + case 502: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2708 +//line sql.y:2719 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 501: + case 503: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2714 +//line sql.y:2725 { yyVAL.empty = struct{}{} } - case 502: + case 504: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2718 +//line sql.y:2729 { yyVAL.empty = struct{}{} } - case 503: + case 505: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2722 +//line sql.y:2733 { yyVAL.empty = struct{}{} } - case 504: + case 506: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2728 +//line sql.y:2739 { yyLOCAL = &Use{DBName: yyDollar[2].tableIdent} } yyVAL.union = yyLOCAL - case 505: + case 507: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2732 +//line sql.y:2743 { yyLOCAL = &Use{DBName: TableIdent{v: ""}} } yyVAL.union = yyLOCAL - case 506: + case 508: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2738 +//line sql.y:2749 { yyLOCAL = &Begin{} } yyVAL.union = yyLOCAL - case 507: + case 509: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2742 +//line sql.y:2753 { yyLOCAL = &Begin{} } yyVAL.union = yyLOCAL - case 508: + case 510: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2748 +//line sql.y:2759 { yyLOCAL = &Commit{} } yyVAL.union = yyLOCAL - case 509: + case 511: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2754 +//line sql.y:2765 { yyLOCAL = &Rollback{} } yyVAL.union = yyLOCAL - case 510: + case 512: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2758 +//line sql.y:2769 { yyLOCAL = &SRollback{Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 511: + case 513: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2763 +//line sql.y:2774 { yyVAL.empty = struct{}{} } - case 512: + case 514: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2765 +//line sql.y:2776 { yyVAL.empty = struct{}{} } - case 513: + case 515: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2768 +//line sql.y:2779 { yyVAL.empty = struct{}{} } - case 514: + case 516: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2770 +//line sql.y:2781 { yyVAL.empty = struct{}{} } - case 515: + case 517: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2775 +//line sql.y:2786 { yyLOCAL = &Savepoint{Name: yyDollar[2].colIdent} } yyVAL.union = yyLOCAL - case 516: + case 518: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2781 +//line sql.y:2792 { yyLOCAL = &Release{Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 517: + case 519: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2786 +//line sql.y:2797 { yyLOCAL = EmptyType } yyVAL.union = yyLOCAL - case 518: + case 520: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2790 +//line sql.y:2801 { yyLOCAL = JSONType } yyVAL.union = yyLOCAL - case 519: + case 521: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2794 +//line sql.y:2805 { yyLOCAL = TreeType } yyVAL.union = yyLOCAL - case 520: + case 522: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2798 +//line sql.y:2809 { yyLOCAL = VitessType } yyVAL.union = yyLOCAL - case 521: + case 523: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2802 +//line sql.y:2813 { yyLOCAL = TraditionalType } yyVAL.union = yyLOCAL - case 522: + case 524: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2806 +//line sql.y:2817 { yyLOCAL = AnalyzeType } yyVAL.union = yyLOCAL - case 523: + case 525: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2812 +//line sql.y:2823 { yyVAL.str = yyDollar[1].str } - case 524: + case 526: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2816 +//line sql.y:2827 { yyVAL.str = yyDollar[1].str } - case 525: + case 527: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2820 +//line sql.y:2831 { yyVAL.str = yyDollar[1].str } - case 526: + case 528: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2826 +//line sql.y:2837 { yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 527: + case 529: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2830 +//line sql.y:2841 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 528: + case 530: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2834 +//line sql.y:2845 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 529: + case 531: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2838 +//line sql.y:2849 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 530: + case 532: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2843 +//line sql.y:2854 { yyVAL.str = "" } - case 531: + case 533: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2847 +//line sql.y:2858 { yyVAL.str = yyDollar[1].colIdent.val } - case 532: + case 534: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2851 +//line sql.y:2862 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 533: + case 535: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2857 +//line sql.y:2868 { yyLOCAL = &ExplainTab{Table: yyDollar[2].tableName, Wild: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 534: + case 536: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2861 +//line sql.y:2872 { yyLOCAL = &ExplainStmt{Type: yyDollar[2].explainTypeUnion(), Statement: yyDollar[3].statementUnion()} } yyVAL.union = yyLOCAL - case 535: + case 537: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2867 +//line sql.y:2878 { yyLOCAL = &OtherAdmin{} } yyVAL.union = yyLOCAL - case 536: + case 538: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2871 +//line sql.y:2882 { yyLOCAL = &OtherAdmin{} } yyVAL.union = yyLOCAL - case 537: + case 539: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2877 +//line sql.y:2888 { yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()} } yyVAL.union = yyLOCAL - case 538: + case 540: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableAndLockTypes -//line sql.y:2883 +//line sql.y:2894 { yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()} } yyVAL.union = yyLOCAL - case 539: + case 541: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2887 +//line sql.y:2898 { yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion()) } - case 540: + case 542: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *TableAndLockType -//line sql.y:2893 +//line sql.y:2904 { yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()} } yyVAL.union = yyLOCAL - case 541: + case 543: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2899 +//line sql.y:2910 { yyLOCAL = Read } yyVAL.union = yyLOCAL - case 542: + case 544: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:2903 +//line sql.y:2914 { yyLOCAL = ReadLocal } yyVAL.union = yyLOCAL - case 543: + case 545: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2907 +//line sql.y:2918 { yyLOCAL = Write } yyVAL.union = yyLOCAL - case 544: + case 546: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:2911 +//line sql.y:2922 { yyLOCAL = LowPriorityWrite } yyVAL.union = yyLOCAL - case 545: + case 547: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2917 +//line sql.y:2928 { yyLOCAL = &UnlockTables{} } yyVAL.union = yyLOCAL - case 546: + case 548: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2923 +//line sql.y:2934 { yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs), UUID: string(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 547: + case 549: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2929 +//line sql.y:2940 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs} } yyVAL.union = yyLOCAL - case 548: + case 550: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2933 +//line sql.y:2944 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()} } yyVAL.union = yyLOCAL - case 549: + case 551: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2937 +//line sql.y:2948 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true} } yyVAL.union = yyLOCAL - case 550: + case 552: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2941 +//line sql.y:2952 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 551: + case 553: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2945 +//line sql.y:2956 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true} } yyVAL.union = yyLOCAL - case 552: + case 554: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2949 +//line sql.y:2960 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true} } yyVAL.union = yyLOCAL - case 553: + case 555: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2955 +//line sql.y:2966 { yyVAL.strs = []string{yyDollar[1].str} } - case 554: + case 556: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2959 +//line sql.y:2970 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str) } - case 555: + case 557: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2965 +//line sql.y:2976 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 556: + case 558: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2969 +//line sql.y:2980 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 557: + case 559: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2973 +//line sql.y:2984 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 558: + case 560: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2977 +//line sql.y:2988 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 559: + case 561: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2981 +//line sql.y:2992 { yyVAL.str = string(yyDollar[1].str) } - case 560: + case 562: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2985 +//line sql.y:2996 { yyVAL.str = string(yyDollar[1].str) } - case 561: + case 563: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2989 +//line sql.y:3000 { yyVAL.str = string(yyDollar[1].str) } - case 562: + case 564: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2993 +//line sql.y:3004 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str } - case 563: + case 565: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2997 +//line sql.y:3008 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 564: + case 566: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3001 +//line sql.y:3012 { yyVAL.str = string(yyDollar[1].str) } - case 565: + case 567: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3005 +//line sql.y:3016 { yyVAL.str = string(yyDollar[1].str) } - case 566: + case 568: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3009 +//line sql.y:3020 { yyVAL.str = string(yyDollar[1].str) } - case 567: + case 569: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3014 +//line sql.y:3025 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 568: + case 570: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3018 +//line sql.y:3029 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 569: + case 571: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3022 +//line sql.y:3033 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 570: + case 572: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3027 +//line sql.y:3038 { yyVAL.str = "" } - case 571: + case 573: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3031 +//line sql.y:3042 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].colIdent.String() } - case 572: + case 574: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3036 +//line sql.y:3047 { setAllowComments(yylex, true) } - case 573: + case 575: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3040 +//line sql.y:3051 { yyVAL.strs = yyDollar[2].strs setAllowComments(yylex, false) } - case 574: + case 576: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3046 +//line sql.y:3057 { yyVAL.strs = nil } - case 575: + case 577: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3050 +//line sql.y:3061 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str) } - case 576: + case 578: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3056 +//line sql.y:3067 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 577: + case 579: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3060 +//line sql.y:3071 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 578: + case 580: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3064 +//line sql.y:3075 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 579: + case 581: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3069 +//line sql.y:3080 { yyVAL.str = "" } - case 580: + case 582: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3073 +//line sql.y:3084 { yyVAL.str = SQLNoCacheStr } - case 581: + case 583: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3077 +//line sql.y:3088 { yyVAL.str = SQLCacheStr } - case 582: + case 584: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3082 +//line sql.y:3093 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 583: + case 585: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3086 +//line sql.y:3097 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 584: + case 586: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3090 +//line sql.y:3101 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 585: + case 587: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3095 +//line sql.y:3106 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 586: + case 588: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3099 +//line sql.y:3110 { yyLOCAL = yyDollar[1].selectExprsUnion() } yyVAL.union = yyLOCAL - case 587: + case 589: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3104 +//line sql.y:3115 { yyVAL.strs = nil } - case 588: + case 590: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3108 +//line sql.y:3119 { yyVAL.strs = []string{yyDollar[1].str} } - case 589: + case 591: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3112 +//line sql.y:3123 { // TODO: This is a hack since I couldn't get it to work in a nicer way. I got 'conflicts: 8 shift/reduce' yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str} } - case 590: + case 592: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3116 +//line sql.y:3127 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str} } - case 591: + case 593: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3120 +//line sql.y:3131 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str, yyDollar[4].str} } - case 592: + case 594: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3126 +//line sql.y:3137 { yyVAL.str = SQLNoCacheStr } - case 593: + case 595: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3130 +//line sql.y:3141 { yyVAL.str = SQLCacheStr } - case 594: + case 596: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3134 +//line sql.y:3145 { yyVAL.str = DistinctStr } - case 595: + case 597: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3138 +//line sql.y:3149 { yyVAL.str = DistinctStr } - case 596: + case 598: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3142 +//line sql.y:3153 { yyVAL.str = StraightJoinHint } - case 597: + case 599: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3146 +//line sql.y:3157 { yyVAL.str = SQLCalcFoundRowsStr } - case 598: + case 600: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3150 +//line sql.y:3161 { yyVAL.str = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway } - case 599: + case 601: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3156 +//line sql.y:3167 { yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()} } yyVAL.union = yyLOCAL - case 600: + case 602: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3160 +//line sql.y:3171 { yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion()) } - case 601: + case 603: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3166 +//line sql.y:3177 { yyLOCAL = &StarExpr{} } yyVAL.union = yyLOCAL - case 602: + case 604: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3170 +//line sql.y:3181 { yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].colIdent} } yyVAL.union = yyLOCAL - case 603: + case 605: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3174 +//line sql.y:3185 { yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } yyVAL.union = yyLOCAL - case 604: + case 606: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3178 +//line sql.y:3189 { yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL - case 605: + case 607: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3183 +//line sql.y:3194 { yyVAL.colIdent = ColIdent{} } - case 606: + case 608: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3187 +//line sql.y:3198 { yyVAL.colIdent = yyDollar[1].colIdent } - case 607: + case 609: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3191 +//line sql.y:3202 { yyVAL.colIdent = yyDollar[2].colIdent } - case 609: + case 611: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3198 +//line sql.y:3209 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 610: + case 612: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3203 +//line sql.y:3214 { yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } yyVAL.union = yyLOCAL - case 611: + case 613: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3207 +//line sql.y:3218 { yyLOCAL = yyDollar[2].tableExprsUnion() } yyVAL.union = yyLOCAL - case 612: + case 614: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3213 +//line sql.y:3224 { yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()} } yyVAL.union = yyLOCAL - case 613: + case 615: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3217 +//line sql.y:3228 { yySLICE := (*TableExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion()) } - case 616: + case 618: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3227 +//line sql.y:3238 { yyLOCAL = yyDollar[1].aliasedTableNameUnion() } yyVAL.union = yyLOCAL - case 617: + case 619: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3231 +//line sql.y:3242 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].tableIdent} } yyVAL.union = yyLOCAL - case 618: + case 620: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3235 +//line sql.y:3246 { yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()} } yyVAL.union = yyLOCAL - case 619: + case 621: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:3241 +//line sql.y:3252 { yyLOCAL = &DerivedTable{yyDollar[2].selStmtUnion()} } yyVAL.union = yyLOCAL - case 620: + case 622: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3247 +//line sql.y:3258 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHintsUnion()} } yyVAL.union = yyLOCAL - case 621: + case 623: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3251 +//line sql.y:3262 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHintsUnion()} } yyVAL.union = yyLOCAL - case 622: + case 624: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:3256 +//line sql.y:3267 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 623: + case 625: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:3260 +//line sql.y:3271 { yyLOCAL = yyDollar[2].columnsUnion() } yyVAL.union = yyLOCAL - case 624: + case 626: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:3266 +//line sql.y:3277 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 625: + case 627: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3270 +//line sql.y:3281 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 626: + case 628: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Partitions -//line sql.y:3276 +//line sql.y:3287 { yyLOCAL = Partitions{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 627: + case 629: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3280 +//line sql.y:3291 { yySLICE := (*Partitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 628: + case 630: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3293 +//line sql.y:3304 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 629: + case 631: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3297 +//line sql.y:3308 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 630: + case 632: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3301 +//line sql.y:3312 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 631: + case 633: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3305 +//line sql.y:3316 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()} } yyVAL.union = yyLOCAL - case 632: + case 634: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3311 +//line sql.y:3322 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } - case 633: + case 635: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3313 +//line sql.y:3324 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columnsUnion()} } - case 634: + case 636: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3317 +//line sql.y:3328 { yyVAL.joinCondition = JoinCondition{} } - case 635: + case 637: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3319 +//line sql.y:3330 { yyVAL.joinCondition = yyDollar[1].joinCondition } - case 636: + case 638: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3323 +//line sql.y:3334 { yyVAL.joinCondition = JoinCondition{} } - case 637: + case 639: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3325 +//line sql.y:3336 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } - case 638: + case 640: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3328 +//line sql.y:3339 { yyVAL.empty = struct{}{} } - case 639: + case 641: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3330 +//line sql.y:3341 { yyVAL.empty = struct{}{} } - case 640: + case 642: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3333 +//line sql.y:3344 { yyVAL.tableIdent = NewTableIdent("") } - case 641: + case 643: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3337 +//line sql.y:3348 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 642: + case 644: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3341 +//line sql.y:3352 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 644: + case 646: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3348 +//line sql.y:3359 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 645: + case 647: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3354 +//line sql.y:3365 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 646: + case 648: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3358 +//line sql.y:3369 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 647: + case 649: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3362 +//line sql.y:3373 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 648: + case 650: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3368 +//line sql.y:3379 { yyLOCAL = StraightJoinType } yyVAL.union = yyLOCAL - case 649: + case 651: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3374 +//line sql.y:3385 { yyLOCAL = LeftJoinType } yyVAL.union = yyLOCAL - case 650: + case 652: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3378 +//line sql.y:3389 { yyLOCAL = LeftJoinType } yyVAL.union = yyLOCAL - case 651: + case 653: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3382 +//line sql.y:3393 { yyLOCAL = RightJoinType } yyVAL.union = yyLOCAL - case 652: + case 654: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3386 +//line sql.y:3397 { yyLOCAL = RightJoinType } yyVAL.union = yyLOCAL - case 653: + case 655: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3392 +//line sql.y:3403 { yyLOCAL = NaturalJoinType } yyVAL.union = yyLOCAL - case 654: + case 656: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3396 +//line sql.y:3407 { if yyDollar[2].joinTypeUnion() == LeftJoinType { yyLOCAL = NaturalLeftJoinType @@ -10496,668 +10464,668 @@ yydefault: } } yyVAL.union = yyLOCAL - case 655: + case 657: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3406 +//line sql.y:3417 { yyVAL.tableName = yyDollar[2].tableName } - case 656: + case 658: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3410 +//line sql.y:3421 { yyVAL.tableName = yyDollar[1].tableName } - case 657: + case 659: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3416 +//line sql.y:3427 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 658: + case 660: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3420 +//line sql.y:3431 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } - case 659: + case 661: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3426 +//line sql.y:3437 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 660: + case 662: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3431 +//line sql.y:3442 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 661: + case 663: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3435 +//line sql.y:3446 { yyLOCAL = &IndexHints{Type: UseOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 662: + case 664: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3439 +//line sql.y:3450 { yyLOCAL = &IndexHints{Type: UseOp} } yyVAL.union = yyLOCAL - case 663: + case 665: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3443 +//line sql.y:3454 { yyLOCAL = &IndexHints{Type: IgnoreOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 664: + case 666: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3447 +//line sql.y:3458 { yyLOCAL = &IndexHints{Type: ForceOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 665: + case 667: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3452 +//line sql.y:3463 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 666: + case 668: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3456 +//line sql.y:3467 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 667: + case 669: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3462 +//line sql.y:3473 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 668: + case 670: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3466 +//line sql.y:3477 { yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 669: + case 671: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3470 +//line sql.y:3481 { yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 670: + case 672: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3474 +//line sql.y:3485 { yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 671: + case 673: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3478 +//line sql.y:3489 { yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 672: + case 674: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3482 +//line sql.y:3493 { yyLOCAL = &IsExpr{Operator: yyDollar[3].isExprOperatorUnion(), Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 673: + case 675: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3486 +//line sql.y:3497 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 674: + case 676: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3490 +//line sql.y:3501 { yyLOCAL = &Default{ColName: yyDollar[2].str} } yyVAL.union = yyLOCAL - case 675: + case 677: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3496 +//line sql.y:3507 { yyVAL.str = "" } - case 676: + case 678: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3500 +//line sql.y:3511 { yyVAL.str = string(yyDollar[2].colIdent.String()) } - case 677: + case 679: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3506 +//line sql.y:3517 { yyLOCAL = BoolVal(true) } yyVAL.union = yyLOCAL - case 678: + case 680: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3510 +//line sql.y:3521 { yyLOCAL = BoolVal(false) } yyVAL.union = yyLOCAL - case 679: + case 681: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3516 +//line sql.y:3527 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 680: + case 682: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3520 +//line sql.y:3531 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()} } yyVAL.union = yyLOCAL - case 681: + case 683: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3524 +//line sql.y:3535 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()} } yyVAL.union = yyLOCAL - case 682: + case 684: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3528 +//line sql.y:3539 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 683: + case 685: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3532 +//line sql.y:3543 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 684: + case 686: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3536 +//line sql.y:3547 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 685: + case 687: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3540 +//line sql.y:3551 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 686: + case 688: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3544 +//line sql.y:3555 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: BetweenOp, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 687: + case 689: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3548 +//line sql.y:3559 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: NotBetweenOp, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 688: + case 690: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3552 +//line sql.y:3563 { yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()} } yyVAL.union = yyLOCAL - case 689: + case 691: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3558 +//line sql.y:3569 { yyLOCAL = IsNullOp } yyVAL.union = yyLOCAL - case 690: + case 692: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3562 +//line sql.y:3573 { yyLOCAL = IsNotNullOp } yyVAL.union = yyLOCAL - case 691: + case 693: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3566 +//line sql.y:3577 { yyLOCAL = IsTrueOp } yyVAL.union = yyLOCAL - case 692: + case 694: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3570 +//line sql.y:3581 { yyLOCAL = IsNotTrueOp } yyVAL.union = yyLOCAL - case 693: + case 695: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3574 +//line sql.y:3585 { yyLOCAL = IsFalseOp } yyVAL.union = yyLOCAL - case 694: + case 696: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3578 +//line sql.y:3589 { yyLOCAL = IsNotFalseOp } yyVAL.union = yyLOCAL - case 695: + case 697: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3584 +//line sql.y:3595 { yyLOCAL = EqualOp } yyVAL.union = yyLOCAL - case 696: + case 698: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3588 +//line sql.y:3599 { yyLOCAL = LessThanOp } yyVAL.union = yyLOCAL - case 697: + case 699: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3592 +//line sql.y:3603 { yyLOCAL = GreaterThanOp } yyVAL.union = yyLOCAL - case 698: + case 700: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3596 +//line sql.y:3607 { yyLOCAL = LessEqualOp } yyVAL.union = yyLOCAL - case 699: + case 701: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3600 +//line sql.y:3611 { yyLOCAL = GreaterEqualOp } yyVAL.union = yyLOCAL - case 700: + case 702: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3604 +//line sql.y:3615 { yyLOCAL = NotEqualOp } yyVAL.union = yyLOCAL - case 701: + case 703: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3608 +//line sql.y:3619 { yyLOCAL = NullSafeEqualOp } yyVAL.union = yyLOCAL - case 702: + case 704: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3613 +//line sql.y:3624 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 703: + case 705: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3617 +//line sql.y:3628 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 704: + case 706: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3623 +//line sql.y:3634 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 705: + case 707: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3627 +//line sql.y:3638 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 706: + case 708: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3631 +//line sql.y:3642 { yyLOCAL = ListArg(yyDollar[1].str[2:]) bindVariable(yylex, yyDollar[1].str[2:]) } yyVAL.union = yyLOCAL - case 707: + case 709: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Subquery -//line sql.y:3638 +//line sql.y:3649 { yyLOCAL = &Subquery{yyDollar[2].selStmtUnion()} } yyVAL.union = yyLOCAL - case 708: + case 710: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:3644 +//line sql.y:3655 { yyLOCAL = Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 709: + case 711: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3648 +//line sql.y:3659 { yySLICE := (*Exprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].exprUnion()) } - case 710: + case 712: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3654 +//line sql.y:3665 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 711: + case 713: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3658 +//line sql.y:3669 { yyLOCAL = yyDollar[1].boolValUnion() } yyVAL.union = yyLOCAL - case 712: + case 714: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3662 +//line sql.y:3673 { yyLOCAL = yyDollar[1].colNameUnion() } yyVAL.union = yyLOCAL - case 713: + case 715: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3666 +//line sql.y:3677 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 714: + case 716: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3670 +//line sql.y:3681 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 715: + case 717: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3674 +//line sql.y:3685 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 716: + case 718: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3678 +//line sql.y:3689 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 717: + case 719: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3682 +//line sql.y:3693 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 718: + case 720: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3686 +//line sql.y:3697 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 719: + case 721: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3690 +//line sql.y:3701 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 720: + case 722: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3694 +//line sql.y:3705 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 721: + case 723: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3698 +//line sql.y:3709 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 722: + case 724: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3702 +//line sql.y:3713 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 723: + case 725: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3706 +//line sql.y:3717 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 724: + case 726: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3710 +//line sql.y:3721 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 725: + case 727: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3714 +//line sql.y:3725 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 726: + case 728: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3718 +//line sql.y:3729 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 727: + case 729: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3722 +//line sql.y:3733 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONExtractOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 728: + case 730: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3726 +//line sql.y:3737 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONUnquoteExtractOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 729: + case 731: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3730 +//line sql.y:3741 { yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Charset: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 730: + case 732: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3734 +//line sql.y:3745 { yyLOCAL = &UnaryExpr{Operator: BinaryOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 731: + case 733: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3738 +//line sql.y:3749 { yyLOCAL = &UnaryExpr{Operator: UBinaryOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 732: + case 734: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3742 +//line sql.y:3753 { yyLOCAL = &UnaryExpr{Operator: Utf8Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 733: + case 735: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3746 +//line sql.y:3757 { yyLOCAL = &UnaryExpr{Operator: Utf8mb4Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 734: + case 736: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3750 +//line sql.y:3761 { yyLOCAL = &UnaryExpr{Operator: Latin1Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 735: + case 737: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3754 +//line sql.y:3765 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 736: + case 738: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3758 +//line sql.y:3769 { yyLOCAL = handleUnaryMinus(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 737: + case 739: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3762 +//line sql.y:3773 { yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 738: + case 740: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3766 +//line sql.y:3777 { yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 739: + case 741: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3770 +//line sql.y:3781 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -11166,666 +11134,666 @@ yydefault: yyLOCAL = &IntervalExpr{Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 744: + case 746: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3788 +//line sql.y:3799 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 745: + case 747: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3792 +//line sql.y:3803 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 746: + case 748: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3796 +//line sql.y:3807 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 747: + case 749: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3800 +//line sql.y:3811 { yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 748: + case 750: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3810 +//line sql.y:3821 { yyLOCAL = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 749: + case 751: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3814 +//line sql.y:3825 { yyLOCAL = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 750: + case 752: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3818 +//line sql.y:3829 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 751: + case 753: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3822 +//line sql.y:3833 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 752: + case 754: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3826 +//line sql.y:3837 { yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 753: + case 755: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3830 +//line sql.y:3841 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 754: + case 756: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3834 +//line sql.y:3845 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 755: + case 757: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3838 +//line sql.y:3849 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 756: + case 758: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3842 +//line sql.y:3853 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 757: + case 759: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:3846 +//line sql.y:3857 { yyLOCAL = &MatchExpr{Columns: yyDollar[3].selectExprsUnion(), Expr: yyDollar[7].exprUnion(), Option: yyDollar[8].matchExprOptionUnion()} } yyVAL.union = yyLOCAL - case 758: + case 760: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3850 +//line sql.y:3861 { yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].selectExprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()} } yyVAL.union = yyLOCAL - case 759: + case 761: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3854 +//line sql.y:3865 { yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 760: + case 762: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3858 +//line sql.y:3869 { yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()} } yyVAL.union = yyLOCAL - case 761: + case 763: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3862 +//line sql.y:3873 { yyLOCAL = &FuncExpr{Name: NewColIdent(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 762: + case 764: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3872 +//line sql.y:3883 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_timestamp")} } yyVAL.union = yyLOCAL - case 763: + case 765: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3876 +//line sql.y:3887 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_timestamp")} } yyVAL.union = yyLOCAL - case 764: + case 766: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3880 +//line sql.y:3891 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_time")} } yyVAL.union = yyLOCAL - case 765: + case 767: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3885 +//line sql.y:3896 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_date")} } yyVAL.union = yyLOCAL - case 766: + case 768: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3890 +//line sql.y:3901 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtime")} } yyVAL.union = yyLOCAL - case 767: + case 769: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3895 +//line sql.y:3906 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtimestamp")} } yyVAL.union = yyLOCAL - case 768: + case 770: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3901 +//line sql.y:3912 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_date")} } yyVAL.union = yyLOCAL - case 769: + case 771: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3906 +//line sql.y:3917 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_time")} } yyVAL.union = yyLOCAL - case 770: + case 772: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3911 +//line sql.y:3922 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 771: + case 773: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3915 +//line sql.y:3926 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 772: + case 774: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3919 +//line sql.y:3930 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 773: + case 775: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3924 +//line sql.y:3935 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 774: + case 776: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3929 +//line sql.y:3940 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 775: + case 777: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3934 +//line sql.y:3945 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 776: + case 778: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3938 +//line sql.y:3949 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 777: + case 779: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3942 +//line sql.y:3953 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 780: + case 782: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3952 +//line sql.y:3963 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 781: + case 783: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3962 +//line sql.y:3973 { yyLOCAL = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 782: + case 784: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3966 +//line sql.y:3977 { yyLOCAL = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 783: + case 785: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3970 +//line sql.y:3981 { yyLOCAL = &FuncExpr{Name: NewColIdent("schema"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 784: + case 786: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3974 +//line sql.y:3985 { yyLOCAL = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 785: + case 787: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3978 +//line sql.y:3989 { yyLOCAL = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 786: + case 788: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3982 +//line sql.y:3993 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 787: + case 789: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3986 +//line sql.y:3997 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 788: + case 790: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3992 +//line sql.y:4003 { yyLOCAL = NoOption } yyVAL.union = yyLOCAL - case 789: + case 791: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:3996 +//line sql.y:4007 { yyLOCAL = BooleanModeOpt } yyVAL.union = yyLOCAL - case 790: + case 792: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:4000 +//line sql.y:4011 { yyLOCAL = NaturalLanguageModeOpt } yyVAL.union = yyLOCAL - case 791: + case 793: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:4004 +//line sql.y:4015 { yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt } yyVAL.union = yyLOCAL - case 792: + case 794: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:4008 +//line sql.y:4019 { yyLOCAL = QueryExpansionOpt } yyVAL.union = yyLOCAL - case 793: + case 795: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4014 +//line sql.y:4025 { yyVAL.str = string(yyDollar[1].colIdent.String()) } - case 794: + case 796: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4018 +//line sql.y:4029 { yyVAL.str = string(yyDollar[1].str) } - case 795: + case 797: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4022 +//line sql.y:4033 { yyVAL.str = string(yyDollar[1].str) } - case 796: + case 798: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4028 +//line sql.y:4039 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 797: + case 799: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4032 +//line sql.y:4043 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Operator: CharacterSetOp} } yyVAL.union = yyLOCAL - case 798: + case 800: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4036 +//line sql.y:4047 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: string(yyDollar[3].colIdent.String())} } yyVAL.union = yyLOCAL - case 799: + case 801: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4040 +//line sql.y:4051 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 800: + case 802: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4044 +//line sql.y:4055 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 801: + case 803: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4048 +//line sql.y:4059 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length yyLOCAL.Scale = yyDollar[2].LengthScaleOption.Scale } yyVAL.union = yyLOCAL - case 802: + case 804: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4054 +//line sql.y:4065 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 803: + case 805: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4058 +//line sql.y:4069 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 804: + case 806: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4062 +//line sql.y:4073 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 805: + case 807: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4066 +//line sql.y:4077 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 806: + case 808: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4070 +//line sql.y:4081 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 807: + case 809: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4074 +//line sql.y:4085 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 808: + case 810: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4078 +//line sql.y:4089 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 809: + case 811: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4083 +//line sql.y:4094 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 810: + case 812: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4087 +//line sql.y:4098 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 811: + case 813: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4092 +//line sql.y:4103 { yyVAL.str = string("") } - case 812: + case 814: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4096 +//line sql.y:4107 { yyVAL.str = " separator " + encodeSQLString(yyDollar[2].str) } - case 813: + case 815: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*When -//line sql.y:4102 +//line sql.y:4113 { yyLOCAL = []*When{yyDollar[1].whenUnion()} } yyVAL.union = yyLOCAL - case 814: + case 816: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4106 +//line sql.y:4117 { yySLICE := (*[]*When)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].whenUnion()) } - case 815: + case 817: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *When -//line sql.y:4112 +//line sql.y:4123 { yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 816: + case 818: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4117 +//line sql.y:4128 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 817: + case 819: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4121 +//line sql.y:4132 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 818: + case 820: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ColName -//line sql.y:4127 +//line sql.y:4138 { yyLOCAL = &ColName{Name: yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 819: + case 821: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColName -//line sql.y:4131 +//line sql.y:4142 { yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 820: + case 822: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColName -//line sql.y:4135 +//line sql.y:4146 { yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 821: + case 823: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4141 +//line sql.y:4152 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 822: + case 824: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4145 +//line sql.y:4156 { yyLOCAL = NewHexLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 823: + case 825: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4149 +//line sql.y:4160 { yyLOCAL = NewBitLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 824: + case 826: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4153 +//line sql.y:4164 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 825: + case 827: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4157 +//line sql.y:4168 { yyLOCAL = NewFloatLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 826: + case 828: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4161 +//line sql.y:4172 { yyLOCAL = NewHexNumLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 827: + case 829: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4165 +//line sql.y:4176 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 828: + case 830: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4170 +//line sql.y:4181 { yyLOCAL = &NullVal{} } yyVAL.union = yyLOCAL - case 829: + case 831: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4176 +//line sql.y:4187 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -11835,707 +11803,707 @@ yydefault: yyLOCAL = NewIntLiteral("1") } yyVAL.union = yyLOCAL - case 830: + case 832: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4185 +//line sql.y:4196 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 831: + case 833: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4189 +//line sql.y:4200 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 832: + case 834: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4195 +//line sql.y:4206 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 833: + case 835: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Exprs -//line sql.y:4199 +//line sql.y:4210 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 834: + case 836: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4204 +//line sql.y:4215 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 835: + case 837: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4208 +//line sql.y:4219 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 836: + case 838: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4213 +//line sql.y:4224 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 837: + case 839: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4217 +//line sql.y:4228 { yyLOCAL = yyDollar[3].orderByUnion() } yyVAL.union = yyLOCAL - case 838: + case 840: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4223 +//line sql.y:4234 { yyLOCAL = OrderBy{yyDollar[1].orderUnion()} } yyVAL.union = yyLOCAL - case 839: + case 841: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4227 +//line sql.y:4238 { yySLICE := (*OrderBy)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].orderUnion()) } - case 840: + case 842: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Order -//line sql.y:4233 +//line sql.y:4244 { yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()} } yyVAL.union = yyLOCAL - case 841: + case 843: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4238 +//line sql.y:4249 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 842: + case 844: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4242 +//line sql.y:4253 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 843: + case 845: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4246 +//line sql.y:4257 { yyLOCAL = DescOrder } yyVAL.union = yyLOCAL - case 844: + case 846: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Limit -//line sql.y:4251 +//line sql.y:4262 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 845: + case 847: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Limit -//line sql.y:4255 +//line sql.y:4266 { yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 846: + case 848: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4259 +//line sql.y:4270 { yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 847: + case 849: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4263 +//line sql.y:4274 { yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 848: + case 850: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4268 +//line sql.y:4279 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 849: + case 851: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4272 +//line sql.y:4283 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 850: + case 852: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4276 +//line sql.y:4287 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 851: + case 853: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4280 +//line sql.y:4291 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 852: + case 854: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4284 +//line sql.y:4295 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 853: + case 855: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4291 +//line sql.y:4302 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.union = yyLOCAL - case 854: + case 856: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4295 +//line sql.y:4306 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.union = yyLOCAL - case 855: + case 857: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4299 +//line sql.y:4310 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.union = yyLOCAL - case 856: + case 858: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4303 +//line sql.y:4314 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.union = yyLOCAL - case 857: + case 859: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4309 +//line sql.y:4320 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 858: + case 860: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4313 +//line sql.y:4324 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 859: + case 861: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4317 +//line sql.y:4328 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 860: + case 862: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4322 +//line sql.y:4333 { yyVAL.str = "" } - case 861: + case 863: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4326 +//line sql.y:4337 { yyVAL.str = string(yyDollar[3].str) } - case 862: + case 864: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4330 +//line sql.y:4341 { yyVAL.str = string(yyDollar[3].str) } - case 863: + case 865: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4334 +//line sql.y:4345 { yyVAL.str = string(yyDollar[3].str) } - case 864: + case 866: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4339 +//line sql.y:4350 { yyVAL.str = "" } - case 865: + case 867: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4343 +//line sql.y:4354 { yyVAL.str = yyDollar[3].str } - case 866: + case 868: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4349 +//line sql.y:4360 { yyVAL.str = string(yyDollar[1].str) } - case 867: + case 869: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4353 +//line sql.y:4364 { yyVAL.str = string(yyDollar[1].str) } - case 868: + case 870: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4358 +//line sql.y:4369 { yyVAL.str = "" } - case 869: + case 871: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4362 +//line sql.y:4373 { yyVAL.str = yyDollar[2].str } - case 870: + case 872: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4367 +//line sql.y:4378 { yyVAL.str = "cascaded" } - case 871: + case 873: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4371 +//line sql.y:4382 { yyVAL.str = string(yyDollar[1].str) } - case 872: + case 874: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4375 +//line sql.y:4386 { yyVAL.str = string(yyDollar[1].str) } - case 873: + case 875: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4380 +//line sql.y:4391 { yyVAL.str = "" } - case 874: + case 876: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4384 +//line sql.y:4395 { yyVAL.str = yyDollar[3].str } - case 875: + case 877: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4390 +//line sql.y:4401 { yyVAL.str = string(yyDollar[1].str) } - case 876: + case 878: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4394 +//line sql.y:4405 { yyVAL.str = string(yyDollar[1].str) } - case 877: + case 879: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4398 +//line sql.y:4409 { yyVAL.str = encodeSQLString(yyDollar[1].str) + "@" + string(yyDollar[2].str) } - case 878: + case 880: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4402 +//line sql.y:4413 { yyVAL.str = string(yyDollar[1].str) } - case 879: + case 881: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Lock -//line sql.y:4407 +//line sql.y:4418 { yyLOCAL = NoLock } yyVAL.union = yyLOCAL - case 880: + case 882: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Lock -//line sql.y:4411 +//line sql.y:4422 { yyLOCAL = ForUpdateLock } yyVAL.union = yyLOCAL - case 881: + case 883: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:4415 +//line sql.y:4426 { yyLOCAL = ShareModeLock } yyVAL.union = yyLOCAL - case 882: + case 884: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4420 +//line sql.y:4431 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 883: + case 885: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4424 +//line sql.y:4435 { yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].str, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str} } yyVAL.union = yyLOCAL - case 884: + case 886: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4428 +//line sql.y:4439 { yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: "", FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 885: + case 887: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4432 +//line sql.y:4443 { yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].str, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 886: + case 888: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4437 +//line sql.y:4448 { yyVAL.str = "" } - case 887: + case 889: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4441 +//line sql.y:4452 { yyVAL.str = " format csv" + yyDollar[3].str } - case 888: + case 890: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4445 +//line sql.y:4456 { yyVAL.str = " format text" + yyDollar[3].str } - case 889: + case 891: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4450 +//line sql.y:4461 { yyVAL.str = "" } - case 890: + case 892: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4454 +//line sql.y:4465 { yyVAL.str = " header" } - case 891: + case 893: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4459 +//line sql.y:4470 { yyVAL.str = "" } - case 892: + case 894: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4463 +//line sql.y:4474 { yyVAL.str = " manifest on" } - case 893: + case 895: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4467 +//line sql.y:4478 { yyVAL.str = " manifest off" } - case 894: + case 896: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4472 +//line sql.y:4483 { yyVAL.str = "" } - case 895: + case 897: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4476 +//line sql.y:4487 { yyVAL.str = " overwrite on" } - case 896: + case 898: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4480 +//line sql.y:4491 { yyVAL.str = " overwrite off" } - case 897: + case 899: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4486 +//line sql.y:4497 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 898: + case 900: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4491 +//line sql.y:4502 { yyVAL.str = "" } - case 899: + case 901: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4495 +//line sql.y:4506 { yyVAL.str = " lines" + yyDollar[2].str } - case 900: + case 902: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4501 +//line sql.y:4512 { yyVAL.str = yyDollar[1].str } - case 901: + case 903: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4505 +//line sql.y:4516 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 902: + case 904: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4511 +//line sql.y:4522 { yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str) } - case 903: + case 905: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4515 +//line sql.y:4526 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 904: + case 906: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4520 +//line sql.y:4531 { yyVAL.str = "" } - case 905: + case 907: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4524 +//line sql.y:4535 { yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str } - case 906: + case 908: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4530 +//line sql.y:4541 { yyVAL.str = yyDollar[1].str } - case 907: + case 909: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4534 +//line sql.y:4545 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 908: + case 910: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4540 +//line sql.y:4551 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 909: + case 911: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4544 +//line sql.y:4555 { yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str) } - case 910: + case 912: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4548 +//line sql.y:4559 { yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str) } - case 911: + case 913: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4553 +//line sql.y:4564 { yyVAL.str = "" } - case 912: + case 914: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4557 +//line sql.y:4568 { yyVAL.str = " optionally" } - case 913: + case 915: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Insert -//line sql.y:4570 +//line sql.y:4581 { yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion()} } yyVAL.union = yyLOCAL - case 914: + case 916: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Insert -//line sql.y:4574 +//line sql.y:4585 { yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()} } yyVAL.union = yyLOCAL - case 915: + case 917: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *Insert -//line sql.y:4578 +//line sql.y:4589 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion()} } yyVAL.union = yyLOCAL - case 916: + case 918: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4582 +//line sql.y:4593 { yyLOCAL = &Insert{Rows: yyDollar[4].valuesUnion()} } yyVAL.union = yyLOCAL - case 917: + case 919: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4586 +//line sql.y:4597 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()} } yyVAL.union = yyLOCAL - case 918: + case 920: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:4592 +//line sql.y:4603 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 919: + case 921: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:4596 +//line sql.y:4607 { yyLOCAL = Columns{yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 920: + case 922: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4600 +//line sql.y:4611 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 921: + case 923: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4604 +//line sql.y:4615 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[5].colIdent) } - case 922: + case 924: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4609 +//line sql.y:4620 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 923: + case 925: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4613 +//line sql.y:4624 { yyLOCAL = yyDollar[5].updateExprsUnion() } yyVAL.union = yyLOCAL - case 924: + case 926: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Values -//line sql.y:4619 +//line sql.y:4630 { yyLOCAL = Values{yyDollar[1].valTupleUnion()} } yyVAL.union = yyLOCAL - case 925: + case 927: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4623 +//line sql.y:4634 { yySLICE := (*Values)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion()) } - case 926: + case 928: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4629 +//line sql.y:4640 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 927: + case 929: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4633 +//line sql.y:4644 { yyLOCAL = ValTuple{} } yyVAL.union = yyLOCAL - case 928: + case 930: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4639 +//line sql.y:4650 { yyLOCAL = ValTuple(yyDollar[2].exprsUnion()) } yyVAL.union = yyLOCAL - case 929: + case 931: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4645 +//line sql.y:4656 { if len(yyDollar[1].valTupleUnion()) == 1 { yyLOCAL = yyDollar[1].valTupleUnion()[0] @@ -12544,329 +12512,329 @@ yydefault: } } yyVAL.union = yyLOCAL - case 930: + case 932: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4655 +//line sql.y:4666 { yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()} } yyVAL.union = yyLOCAL - case 931: + case 933: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4659 +//line sql.y:4670 { yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion()) } - case 932: + case 934: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *UpdateExpr -//line sql.y:4665 +//line sql.y:4676 { yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 933: + case 935: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SetExprs -//line sql.y:4671 +//line sql.y:4682 { yyLOCAL = SetExprs{yyDollar[1].setExprUnion()} } yyVAL.union = yyLOCAL - case 934: + case 936: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4675 +//line sql.y:4686 { yySLICE := (*SetExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].setExprUnion()) } - case 935: + case 937: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4681 +//line sql.y:4692 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("on")} } yyVAL.union = yyLOCAL - case 936: + case 938: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4685 +//line sql.y:4696 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("off")} } yyVAL.union = yyLOCAL - case 937: + case 939: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4689 +//line sql.y:4700 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 938: + case 940: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4693 +//line sql.y:4704 { yyLOCAL = &SetExpr{Name: NewColIdent(string(yyDollar[1].str)), Scope: ImplicitScope, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 939: + case 941: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4697 +//line sql.y:4708 { yyDollar[2].setExprUnion().Scope = yyDollar[1].scopeUnion() yyLOCAL = yyDollar[2].setExprUnion() } yyVAL.union = yyLOCAL - case 941: + case 943: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4705 +//line sql.y:4716 { yyVAL.str = "charset" } - case 944: + case 946: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4715 +//line sql.y:4726 { yyLOCAL = NewStrLiteral(yyDollar[1].colIdent.String()) } yyVAL.union = yyLOCAL - case 945: + case 947: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4719 +//line sql.y:4730 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 946: + case 948: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4723 +//line sql.y:4734 { yyLOCAL = &Default{} } yyVAL.union = yyLOCAL - case 949: + case 951: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4732 +//line sql.y:4743 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 950: + case 952: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4734 +//line sql.y:4745 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 951: + case 953: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4737 +//line sql.y:4748 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 952: + case 954: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4739 +//line sql.y:4750 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 953: + case 955: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4742 +//line sql.y:4753 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 954: + case 956: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line sql.y:4744 +//line sql.y:4755 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 955: + case 957: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Ignore -//line sql.y:4747 +//line sql.y:4758 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 956: + case 958: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Ignore -//line sql.y:4749 +//line sql.y:4760 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 957: + case 959: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4752 +//line sql.y:4763 { yyVAL.empty = struct{}{} } - case 958: + case 960: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4754 +//line sql.y:4765 { yyVAL.empty = struct{}{} } - case 959: + case 961: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4756 +//line sql.y:4767 { yyVAL.empty = struct{}{} } - case 960: + case 962: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4760 +//line sql.y:4771 { yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()} } yyVAL.union = yyLOCAL - case 961: + case 963: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4765 +//line sql.y:4776 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 962: + case 964: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:4769 +//line sql.y:4780 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 963: + case 965: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4774 +//line sql.y:4785 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 964: + case 966: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4776 +//line sql.y:4787 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL - case 965: + case 967: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:4780 +//line sql.y:4791 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].colIdent.String())} } yyVAL.union = yyLOCAL - case 966: + case 968: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4786 +//line sql.y:4797 { yyVAL.colIdent = yyDollar[1].colIdent } - case 967: + case 969: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4790 +//line sql.y:4801 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 969: + case 971: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4797 +//line sql.y:4808 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 970: + case 972: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4803 +//line sql.y:4814 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].colIdent.String())) } - case 971: + case 973: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4807 +//line sql.y:4818 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 972: + case 974: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4812 +//line sql.y:4823 { yyVAL.tableIdent = NewTableIdent("") } - case 973: + case 975: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4816 +//line sql.y:4827 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 975: + case 977: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4823 +//line sql.y:4834 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 1385: + case 1387: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5257 +//line sql.y:5268 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 1386: + case 1388: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5266 +//line sql.y:5277 { decNesting(yylex) } - case 1387: + case 1389: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5271 +//line sql.y:5282 { skipToEnd(yylex) } - case 1388: + case 1390: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5276 +//line sql.y:5287 { skipToEnd(yylex) } - case 1389: + case 1391: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5280 +//line sql.y:5291 { skipToEnd(yylex) } - case 1390: + case 1392: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5284 +//line sql.y:5295 { skipToEnd(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index 8314fe53f9e..65cbacd321d 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -420,7 +420,7 @@ func bindVariable(yylex yyLexer, bvar string) { %type session_or_local_opt %type column_storage %type keys -%type reference_definition +%type reference_definition reference_definition_opt %start any_command @@ -1021,15 +1021,17 @@ table_column_list: } column_definition: - sql_id column_type column_attribute_list_opt + sql_id column_type column_attribute_list_opt reference_definition_opt { $2.Options = $3 + $2.Options.Reference = $4 $$ = &ColumnDefinition{Name: $1, Type: $2} } -| sql_id column_type generated_always_opt AS '(' value_expression ')' generated_column_attribute_list_opt +| sql_id column_type generated_always_opt AS '(' value_expression ')' generated_column_attribute_list_opt reference_definition_opt { $2.Options = $8 $2.Options.As = $6 + $2.Options.Reference = $9 $$ = &ColumnDefinition{Name: $1, Type: $2} } @@ -1656,6 +1658,15 @@ reference_definition: $$ = &ReferenceDefinition{ReferencedTable: $2, ReferencedColumns: $4, OnDelete: $6, OnUpdate: $7} } +reference_definition_opt: + { + $$ = nil + } +| reference_definition + { + $$ = $1 + } + check_constraint_info: CHECK '(' expression ')' enforced_opt { From 25f928fe95791f4b1a1704806b9b10b2bbd1a676 Mon Sep 17 00:00:00 2001 From: GuptaManan100 Date: Mon, 17 May 2021 15:39:35 +0530 Subject: [PATCH 60/63] added more test cases Signed-off-by: GuptaManan100 --- go/vt/sqlparser/parse_test.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index baffca2168b..a056163a3c1 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -924,8 +924,8 @@ var ( input: "set S= +- - - - -(4+1)", output: "set S = -(4 + 1)", }, { - input: "alter table a add foo int first v", - output: "alter table a add column foo int first v", + input: "alter table a add foo int references simple (a) on delete restrict first v", + output: "alter table a add column foo int references simple (a) on delete restrict first v", }, { input: "alter table a lock default, lock = none, lock shared, lock exclusive", output: "alter table a lock default, lock none, lock shared, lock exclusive", @@ -1182,8 +1182,8 @@ var ( input: "create table a (b1 bool not null primary key, b2 boolean not null)", output: "create table a (\n\tb1 bool not null primary key,\n\tb2 boolean not null\n)", }, { - input: "create table a (b1 bool NOT NULL PRIMARY KEY, b2 boolean not null, KEY b2_idx(b))", - output: "create table a (\n\tb1 bool not null primary key,\n\tb2 boolean not null,\n\tKEY b2_idx (b)\n)", + input: "create table a (b1 bool NOT NULL PRIMARY KEY, b2 boolean not null references simple (a) on delete restrict, KEY b2_idx(b))", + output: "create table a (\n\tb1 bool not null primary key,\n\tb2 boolean not null references simple (a) on delete restrict,\n\tKEY b2_idx (b)\n)", }, { input: "create temporary table a (\n\tid bigint\n)", }, { From 2df3c1c5accc5e0e1b89d8c8c9ca0beeb07031c6 Mon Sep 17 00:00:00 2001 From: Guido Iaquinti Date: Mon, 17 May 2021 12:10:47 +0200 Subject: [PATCH 61/63] vtctl.generateShardRanges -> key.GenerateShardRanges Signed-off-by: Guido Iaquinti --- go/vt/key/key.go | 72 +++++++++++++++++++++++++++++++++++ go/vt/key/key_test.go | 72 +++++++++++++++++++++++++++++++++++ go/vt/vtctl/vtctl.go | 72 +---------------------------------- go/vt/vtctl/vtctl_test.go | 79 --------------------------------------- 4 files changed, 145 insertions(+), 150 deletions(-) diff --git a/go/vt/key/key.go b/go/vt/key/key.go index 9cedad6f409..be54b522b84 100644 --- a/go/vt/key/key.go +++ b/go/vt/key/key.go @@ -20,6 +20,7 @@ import ( "bytes" "encoding/binary" "encoding/hex" + "errors" "fmt" "math" "regexp" @@ -346,3 +347,74 @@ var krRegexp = regexp.MustCompile(`^[0-9a-fA-F]*-[0-9a-fA-F]*$`) func IsKeyRange(kr string) bool { return krRegexp.MatchString(kr) } + +// GenerateShardRanges returns shard ranges assuming a keyspace with N shards. +func GenerateShardRanges(shards int) ([]string, error) { + var format string + var maxShards int + + switch { + case shards <= 0: + return nil, errors.New("shards must be greater than zero") + case shards <= 256: + format = "%02x" + maxShards = 256 + case shards <= 65536: + format = "%04x" + maxShards = 65536 + default: + return nil, errors.New("this function does not support more than 65336 shards in a single keyspace") + } + + rangeFormatter := func(start, end int) string { + var ( + startKid string + endKid string + ) + + if start != 0 { + startKid = fmt.Sprintf(format, start) + } + + if end != maxShards { + endKid = fmt.Sprintf(format, end) + } + + return fmt.Sprintf("%s-%s", startKid, endKid) + } + + start := 0 + end := 0 + + // If shards does not divide evenly into maxShards, then there is some lossiness, + // where each shard is smaller than it should technically be (if, for example, size == 25.6). + // If we choose to keep everything in ints, then we have two choices: + // - Have every shard in #numshards be a uniform size, tack on an additional shard + // at the end of the range to account for the loss. This is bad because if you ask for + // 7 shards, you'll actually get 7 uniform shards with 1 small shard, for 8 total shards. + // It's also bad because one shard will have much different data distribution than the rest. + // - Expand the final shard to include whatever is left in the keyrange. This will give the + // correct number of shards, which is good, but depending on how lossy each individual shard is, + // you could end with that final shard being significantly larger than the rest of the shards, + // so this doesn't solve the data distribution problem. + // + // By tracking the "real" end (both in the real number sense, and in the truthfulness of the value sense), + // we can re-truncate the integer end on each iteration, which spreads the lossiness more + // evenly across the shards. + // + // This implementation has no impact on shard numbers that are powers of 2, even at large numbers, + // which you can see in the tests. + size := float64(maxShards) / float64(shards) + realEnd := float64(0) + shardRanges := make([]string, 0, shards) + + for i := 1; i <= shards; i++ { + realEnd = float64(i) * size + + end = int(realEnd) + shardRanges = append(shardRanges, rangeFormatter(start, end)) + start = end + } + + return shardRanges, nil +} diff --git a/go/vt/key/key_test.go b/go/vt/key/key_test.go index 8643d0bcc73..935e51082b7 100644 --- a/go/vt/key/key_test.go +++ b/go/vt/key/key_test.go @@ -579,3 +579,75 @@ func TestIsKeyRange(t *testing.T) { assert.Equal(t, IsKeyRange(tcase.in), tcase.out, tcase.in) } } + +func TestGenerateShardRanges(t *testing.T) { + type args struct { + shards int + } + + tests := []struct { + name string + args args + want []string + wantErr bool + }{ + { + "errors for shards less than 0", + args{0}, + nil, + true, + }, + { + "errors for shards more than 65536", + args{65537}, + nil, + true, + }, + { + "works for a single shard", + args{1}, + []string{"-"}, + false, + }, + { + "works for more than one shard", + args{2}, + []string{"-80", "80-"}, + false, + }, + { + "works for an odd number of shards", + args{7}, + []string{"-24", "24-49", "49-6d", "6d-92", "92-b6", "b6-db", "db-"}, + false, + }, + { + "works for large number of shards", + args{256}, + []string{"-01", "01-02", "02-03", "03-04", "04-05", "05-06", "06-07", "07-08", "08-09", "09-0a", "0a-0b", "0b-0c", "0c-0d", "0d-0e", "0e-0f", "0f-10", "10-11", "11-12", "12-13", "13-14", "14-15", "15-16", "16-17", "17-18", "18-19", "19-1a", "1a-1b", "1b-1c", "1c-1d", "1d-1e", "1e-1f", "1f-20", "20-21", "21-22", "22-23", "23-24", "24-25", "25-26", "26-27", "27-28", "28-29", "29-2a", "2a-2b", "2b-2c", "2c-2d", "2d-2e", "2e-2f", "2f-30", "30-31", "31-32", "32-33", "33-34", "34-35", "35-36", "36-37", "37-38", "38-39", "39-3a", "3a-3b", "3b-3c", "3c-3d", "3d-3e", "3e-3f", "3f-40", "40-41", "41-42", "42-43", "43-44", "44-45", "45-46", "46-47", "47-48", "48-49", "49-4a", "4a-4b", "4b-4c", "4c-4d", "4d-4e", "4e-4f", "4f-50", "50-51", "51-52", "52-53", "53-54", "54-55", "55-56", "56-57", "57-58", "58-59", "59-5a", "5a-5b", "5b-5c", "5c-5d", "5d-5e", "5e-5f", "5f-60", "60-61", "61-62", "62-63", "63-64", "64-65", "65-66", "66-67", "67-68", "68-69", "69-6a", "6a-6b", "6b-6c", "6c-6d", "6d-6e", "6e-6f", "6f-70", "70-71", "71-72", "72-73", "73-74", "74-75", "75-76", "76-77", "77-78", "78-79", "79-7a", "7a-7b", "7b-7c", "7c-7d", "7d-7e", "7e-7f", "7f-80", "80-81", "81-82", "82-83", "83-84", "84-85", "85-86", "86-87", "87-88", "88-89", "89-8a", "8a-8b", "8b-8c", "8c-8d", "8d-8e", "8e-8f", "8f-90", "90-91", "91-92", "92-93", "93-94", "94-95", "95-96", "96-97", "97-98", "98-99", "99-9a", "9a-9b", "9b-9c", "9c-9d", "9d-9e", "9e-9f", "9f-a0", "a0-a1", "a1-a2", "a2-a3", "a3-a4", "a4-a5", "a5-a6", "a6-a7", "a7-a8", "a8-a9", "a9-aa", "aa-ab", "ab-ac", "ac-ad", "ad-ae", "ae-af", "af-b0", "b0-b1", "b1-b2", "b2-b3", "b3-b4", "b4-b5", "b5-b6", "b6-b7", "b7-b8", "b8-b9", "b9-ba", "ba-bb", "bb-bc", "bc-bd", "bd-be", "be-bf", "bf-c0", "c0-c1", "c1-c2", "c2-c3", "c3-c4", "c4-c5", "c5-c6", "c6-c7", "c7-c8", "c8-c9", "c9-ca", "ca-cb", "cb-cc", "cc-cd", "cd-ce", "ce-cf", "cf-d0", "d0-d1", "d1-d2", "d2-d3", "d3-d4", "d4-d5", "d5-d6", "d6-d7", "d7-d8", "d8-d9", "d9-da", "da-db", "db-dc", "dc-dd", "dd-de", "de-df", "df-e0", "e0-e1", "e1-e2", "e2-e3", "e3-e4", "e4-e5", "e5-e6", "e6-e7", "e7-e8", "e8-e9", "e9-ea", "ea-eb", "eb-ec", "ec-ed", "ed-ee", "ee-ef", "ef-f0", "f0-f1", "f1-f2", "f2-f3", "f3-f4", "f4-f5", "f5-f6", "f6-f7", "f7-f8", "f8-f9", "f9-fa", "fa-fb", "fb-fc", "fc-fd", "fd-fe", "fe-ff", "ff-"}, + false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := GenerateShardRanges(tt.args.shards) + if tt.wantErr { + assert.Error(t, err) + } else { + assert.NoError(t, err) + } + + assert.Equal(t, got, tt.want) + }) + } +} + +func TestShardCalculatorForShardsGreaterThan512(t *testing.T) { + got, err := GenerateShardRanges(512) + assert.NoError(t, err) + + want := "ff80-" + + assert.Equal(t, want, got[511], "Invalid mapping for a 512-shard keyspace. Expected %v, got %v", want, got[511]) +} diff --git a/go/vt/vtctl/vtctl.go b/go/vt/vtctl/vtctl.go index 30ae2a4cc75..db146f444af 100644 --- a/go/vt/vtctl/vtctl.go +++ b/go/vt/vtctl/vtctl.go @@ -3532,7 +3532,7 @@ func commandGenerateShardRanges(ctx context.Context, wr *wrangler.Wrangler, subF return err } - shardRanges, err := generateShardRanges(*numShards) + shardRanges, err := key.GenerateShardRanges(*numShards) if err != nil { return err } @@ -3540,76 +3540,6 @@ func commandGenerateShardRanges(ctx context.Context, wr *wrangler.Wrangler, subF return printJSON(wr.Logger(), shardRanges) } -func generateShardRanges(shards int) ([]string, error) { - var format string - var maxShards int - - switch { - case shards <= 0: - return nil, errors.New("shards must be greater than zero") - case shards <= 256: - format = "%02x" - maxShards = 256 - case shards <= 65536: - format = "%04x" - maxShards = 65536 - default: - return nil, errors.New("this tool does not support more than 65336 shards in a single keyspace") - } - - rangeFormatter := func(start, end int) string { - var ( - startKid string - endKid string - ) - - if start != 0 { - startKid = fmt.Sprintf(format, start) - } - - if end != maxShards { - endKid = fmt.Sprintf(format, end) - } - - return fmt.Sprintf("%s-%s", startKid, endKid) - } - - start := 0 - end := 0 - - // If shards does not divide evenly into maxShards, then there is some lossiness, - // where each shard is smaller than it should technically be (if, for example, size == 25.6). - // If we choose to keep everything in ints, then we have two choices: - // - Have every shard in #numshards be a uniform size, tack on an additional shard - // at the end of the range to account for the loss. This is bad because if you ask for - // 7 shards, you'll actually get 7 uniform shards with 1 small shard, for 8 total shards. - // It's also bad because one shard will have much different data distribution than the rest. - // - Expand the final shard to include whatever is left in the keyrange. This will give the - // correct number of shards, which is good, but depending on how lossy each individual shard is, - // you could end with that final shard being significantly larger than the rest of the shards, - // so this doesn't solve the data distribution problem. - // - // By tracking the "real" end (both in the real number sense, and in the truthfulness of the value sense), - // we can re-truncate the integer end on each iteration, which spreads the lossiness more - // evenly across the shards. - // - // This implementation has no impact on shard numbers that are powers of 2, even at large numbers, - // which you can see in the tests. - size := float64(maxShards) / float64(shards) - realEnd := float64(0) - shardRanges := make([]string, 0, shards) - - for i := 1; i <= shards; i++ { - realEnd = float64(i) * size - - end = int(realEnd) - shardRanges = append(shardRanges, rangeFormatter(start, end)) - start = end - } - - return shardRanges, nil -} - func commandPanic(ctx context.Context, wr *wrangler.Wrangler, subFlags *flag.FlagSet, args []string) error { panic(fmt.Errorf("this command panics on purpose")) } diff --git a/go/vt/vtctl/vtctl_test.go b/go/vt/vtctl/vtctl_test.go index 40ebf065bf1..8179a2383da 100644 --- a/go/vt/vtctl/vtctl_test.go +++ b/go/vt/vtctl/vtctl_test.go @@ -1,80 +1 @@ package vtctl - -import ( - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestGenerateShardRanges(t *testing.T) { - type args struct { - shards int - } - - tests := []struct { - name string - args args - want []string - wantErr bool - }{ - { - "errors for shards less than 0", - args{0}, - nil, - true, - }, - { - "errors for shards more than 65536", - args{65537}, - nil, - true, - }, - { - "works for a single shard", - args{1}, - []string{"-"}, - false, - }, - { - "works for more than one shard", - args{2}, - []string{"-80", "80-"}, - false, - }, - { - "works for an odd number of shards", - args{7}, - []string{"-24", "24-49", "49-6d", "6d-92", "92-b6", "b6-db", "db-"}, - false, - }, - { - "works for large number of shards", - args{256}, - []string{"-01", "01-02", "02-03", "03-04", "04-05", "05-06", "06-07", "07-08", "08-09", "09-0a", "0a-0b", "0b-0c", "0c-0d", "0d-0e", "0e-0f", "0f-10", "10-11", "11-12", "12-13", "13-14", "14-15", "15-16", "16-17", "17-18", "18-19", "19-1a", "1a-1b", "1b-1c", "1c-1d", "1d-1e", "1e-1f", "1f-20", "20-21", "21-22", "22-23", "23-24", "24-25", "25-26", "26-27", "27-28", "28-29", "29-2a", "2a-2b", "2b-2c", "2c-2d", "2d-2e", "2e-2f", "2f-30", "30-31", "31-32", "32-33", "33-34", "34-35", "35-36", "36-37", "37-38", "38-39", "39-3a", "3a-3b", "3b-3c", "3c-3d", "3d-3e", "3e-3f", "3f-40", "40-41", "41-42", "42-43", "43-44", "44-45", "45-46", "46-47", "47-48", "48-49", "49-4a", "4a-4b", "4b-4c", "4c-4d", "4d-4e", "4e-4f", "4f-50", "50-51", "51-52", "52-53", "53-54", "54-55", "55-56", "56-57", "57-58", "58-59", "59-5a", "5a-5b", "5b-5c", "5c-5d", "5d-5e", "5e-5f", "5f-60", "60-61", "61-62", "62-63", "63-64", "64-65", "65-66", "66-67", "67-68", "68-69", "69-6a", "6a-6b", "6b-6c", "6c-6d", "6d-6e", "6e-6f", "6f-70", "70-71", "71-72", "72-73", "73-74", "74-75", "75-76", "76-77", "77-78", "78-79", "79-7a", "7a-7b", "7b-7c", "7c-7d", "7d-7e", "7e-7f", "7f-80", "80-81", "81-82", "82-83", "83-84", "84-85", "85-86", "86-87", "87-88", "88-89", "89-8a", "8a-8b", "8b-8c", "8c-8d", "8d-8e", "8e-8f", "8f-90", "90-91", "91-92", "92-93", "93-94", "94-95", "95-96", "96-97", "97-98", "98-99", "99-9a", "9a-9b", "9b-9c", "9c-9d", "9d-9e", "9e-9f", "9f-a0", "a0-a1", "a1-a2", "a2-a3", "a3-a4", "a4-a5", "a5-a6", "a6-a7", "a7-a8", "a8-a9", "a9-aa", "aa-ab", "ab-ac", "ac-ad", "ad-ae", "ae-af", "af-b0", "b0-b1", "b1-b2", "b2-b3", "b3-b4", "b4-b5", "b5-b6", "b6-b7", "b7-b8", "b8-b9", "b9-ba", "ba-bb", "bb-bc", "bc-bd", "bd-be", "be-bf", "bf-c0", "c0-c1", "c1-c2", "c2-c3", "c3-c4", "c4-c5", "c5-c6", "c6-c7", "c7-c8", "c8-c9", "c9-ca", "ca-cb", "cb-cc", "cc-cd", "cd-ce", "ce-cf", "cf-d0", "d0-d1", "d1-d2", "d2-d3", "d3-d4", "d4-d5", "d5-d6", "d6-d7", "d7-d8", "d8-d9", "d9-da", "da-db", "db-dc", "dc-dd", "dd-de", "de-df", "df-e0", "e0-e1", "e1-e2", "e2-e3", "e3-e4", "e4-e5", "e5-e6", "e6-e7", "e7-e8", "e8-e9", "e9-ea", "ea-eb", "eb-ec", "ec-ed", "ed-ee", "ee-ef", "ef-f0", "f0-f1", "f1-f2", "f2-f3", "f3-f4", "f4-f5", "f5-f6", "f6-f7", "f7-f8", "f8-f9", "f9-fa", "fa-fb", "fb-fc", "fc-fd", "fd-fe", "fe-ff", "ff-"}, - false, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - got, err := generateShardRanges(tt.args.shards) - if tt.wantErr { - require.Error(t, err) - } else { - require.NoError(t, err) - } - - assert.Equal(t, got, tt.want) - }) - } -} - -func TestShardCalculatorForShardsGreaterThan512(t *testing.T) { - got, err := generateShardRanges(512) - require.NoError(t, err) - - want := "ff80-" - - assert.Equal(t, want, got[511], "Invalid mapping for a 512-shard keyspace. Expected %v, got %v", want, got[511]) -} From d83ebb63c0382a5fa8ab5cad0dbcfe056c9ed144 Mon Sep 17 00:00:00 2001 From: Guido Iaquinti Date: Mon, 17 May 2021 14:48:25 +0200 Subject: [PATCH 62/63] Use require instead of assert Signed-off-by: Guido Iaquinti --- go/vt/key/key_test.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/go/vt/key/key_test.go b/go/vt/key/key_test.go index 935e51082b7..ff363b7f673 100644 --- a/go/vt/key/key_test.go +++ b/go/vt/key/key_test.go @@ -23,6 +23,7 @@ import ( "github.com/golang/protobuf/proto" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" topodatapb "vitess.io/vitess/go/vt/proto/topodata" ) @@ -633,9 +634,9 @@ func TestGenerateShardRanges(t *testing.T) { t.Run(tt.name, func(t *testing.T) { got, err := GenerateShardRanges(tt.args.shards) if tt.wantErr { - assert.Error(t, err) + require.Error(t, err) } else { - assert.NoError(t, err) + require.NoError(t, err) } assert.Equal(t, got, tt.want) From 8faf89628a36c4a05d145a66a3194926abbe5f09 Mon Sep 17 00:00:00 2001 From: Guido Iaquinti Date: Mon, 17 May 2021 17:24:47 +0200 Subject: [PATCH 63/63] Remove useless else in test Signed-off-by: Guido Iaquinti --- go/vt/key/key_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/go/vt/key/key_test.go b/go/vt/key/key_test.go index ff363b7f673..7191edf939c 100644 --- a/go/vt/key/key_test.go +++ b/go/vt/key/key_test.go @@ -634,11 +634,11 @@ func TestGenerateShardRanges(t *testing.T) { t.Run(tt.name, func(t *testing.T) { got, err := GenerateShardRanges(tt.args.shards) if tt.wantErr { - require.Error(t, err) - } else { - require.NoError(t, err) + assert.Error(t, err) + return } + require.NoError(t, err) assert.Equal(t, got, tt.want) }) }